From d5bb10924b6e123b8c6c99f5ff4d28ac110eec9c Mon Sep 17 00:00:00 2001 From: Michiel van Turnhout Date: Sat, 19 Oct 2019 16:04:41 -0400 Subject: [PATCH] SX1509 device documentation (#315) * add sx1509 docs * add table * sx1509 docs * added to index * fixed table * text fixes * Formatting * Use standardized section header keys * Spelling * Properly size index file * Use short name for index page (table view) * fixed review issues * Add API Reference Co-authored-by: Otto Winter --- .vscode/settings.json | 3 + components/images/sx1509-full.jpg | Bin 0 -> 42920 bytes components/images/sx1509-keypad.jpg | Bin 0 -> 11820 bytes components/sx1509.rst | 189 ++++++++++++++++++++++++++++ images/sx1509.jpg | Bin 0 -> 19951 bytes index.rst | 1 + 6 files changed, 193 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 components/images/sx1509-full.jpg create mode 100644 components/images/sx1509-keypad.jpg create mode 100644 components/sx1509.rst create mode 100644 images/sx1509.jpg diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..d5d660bd6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "restructuredtext.confPath": "${workspaceFolder}" +} \ No newline at end of file diff --git a/components/images/sx1509-full.jpg b/components/images/sx1509-full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..41b91bda392fbc49418d6e13fa278970860d9542 GIT binary patch literal 42920 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 KgMWbU=l%~l;v4w@ literal 0 HcmV?d00001 diff --git a/components/sx1509.rst b/components/sx1509.rst new file mode 100644 index 000000000..59501b685 --- /dev/null +++ b/components/sx1509.rst @@ -0,0 +1,189 @@ +SX1509 16 channel I/O Expander with LED driver and keypad engine +================================================================ + +.. seo:: + :description: Instructions for setting up SX1509 16 channel I/O expander in ESPHome. + :image: sx1509.jpg + +The SX1509 component allows you to expand your I/O capabilities: +(`datasheet `__, +`Sparkfun`_) in ESPHome. It uses :ref:`I²C Bus ` for communication. + +Once configured, you can use any of the 16 pins as pins for your projects. +Within ESPHome they emulate a real internal GPIO pin +and can therefore be used with many of ESPHome's components such as the GPIO +binary sensor or GPIO switch. +The SX1509 can do much more than just simple digital pin control. It can produce PWM signals. +And, with a built-in keypad engine, it can interface with up to 64 buttons set up in an 8x8 matrix. + +Any option accepting a :ref:`Pin Schema ` can theoretically be used, but some more +complicated components that use the pin schema will not work. For example the I2C or SPI pins. + +.. figure:: images/sx1509-full.jpg + :align: center + :width: 80.0% + + SX1509 16 channel I/O Expander. + +.. _Sparkfun: https://learn.sparkfun.com/tutorials/sx1509-io-expander-breakout-hookup-guide/all + +.. code-block:: yaml + + # Example configuration entry for the SX1509 device + sx1509: + - id: sx1509_hub1 + address: 0x3E + # If you need a keypad + keypad: + key_rows: 3 + key_columns: 4 + sleep_time: 256 + scan_time: 2 + debounce_time: 1 + +Configuration variables for the SX1509 device: +---------------------------------------------- + +- **id** (**Required**, :ref:`config-id`): The id to use for this SX1509 component. +- **address** (*Optional*, int): The I²C address of the driver. + Defaults to ``0x3E``. + +The SX1509 integrates a fully programmable keypad scanning engine to implement keypad applications. +up to 8x8 matrix (i.e. 64 keys). + +- **keypad** (*Optional*): Add this to enable the keypad. + + - **key_row** (*Required*, int): The number of keypad rows to use. This enables any number of the first 7 pins. + So a value of 3 enables pins 0,1,2 to be used as the rows for the keypad matrix. This value must be between 1 and 8. + - **key_columns** (*Required*, int): The number of keypad columns to use. This enables any number of the last 7 pins. + So a value of 4 enables pins 8,9,10,11 to be used as the columns for the keypad matrix. This value must be between 1 and 8. + - **sleep_time** (*Optional*, int): No key press within this time will set keypad engine to sleep. + - **scan_time** (*Optional*, int): Scan time per row (must be set above debounce time). + - **debounce_time** (*Optional*, int): The debounce time is common to all IOs. + +.. figure:: images/sx1509-keypad.jpg + :align: center + :width: 80.0% + + SX1509 pins for keypad setup (image from the datasheet). + +Attention should be paid to the capabilities of the I/O pins. + ++-----+------------------+--------------+ +| # | pin function | Keypad | +| | | + ++=====+==================+=====+========+ +| I/O | input output pwm | Row | Column | ++-----+------------------+-----+--------+ +| 0 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 1 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 2 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 3 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 4 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 5 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 6 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 7 | ✓ | ✓ | | ++-----+------------------+-----+--------+ +| 8 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 9 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 10 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 11 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 12 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 13 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 14 | ✓ | | ✓ | ++-----+------------------+-----+--------+ +| 15 | ✓ | | ✓ | ++-----+------------------+-----+--------+ + +To use the individual keys on the keypad you need to add individual binary_sensor entries in the config. + +.. code-block:: yaml + + # individual binary_sensor for keypad keys + binary_sensor: + - platform: sx1509 + sx1509_id: sx1509_hub1 + name: "keypadkey_0" + row: 0 + col: 0 + - platform: sx1509 + sx1509_id: sx1509_hub1 + name: "keypadkey_1" + row: 0 + col: 1 + +Configuration variables for the SX1509 keypad keys: +--------------------------------------------------- + +- **row** (**Required**, int): The row number for this key on the keypad. +- **col** (**Required**, int): The column number for this key on the keypad. + +With the following configuration items you may use the individual pins of the SX1509 as the pins for binary_sensor, switch, or output. +The outputs can in turn be used to add pwm enabled lights like the monochromatic light. + +.. code-block:: yaml + + # individual binary_sensor inputs + binary_sensor: + - platform: gpio + name: "SX1509 Pin #0" + pin: + sx1509: sx1509_hub1 + # Use pin number 0 on the sx1509 + number: 0 + mode: INPUT_PULLUP + inverted: True + + # Individual binary outputs + switch: + - platform: gpio + name: "SX1509 Pin #1" + pin: + sx1509: sx1509_hub1 + # Use pin number 1 on the sx1509 + number: 1 + # use as output for switch + mode: OUTPUT + inverted: False + + # Individual outputs + output: + - platform: sx1509 + sx1509_id: sx1509_hub1 + id: 'sx1509_output' + # Use pin number 2 on the sx1509 + pin: 2 + + # lights can then use the configured output + light: + - platform: monochromatic + id: light0 + name: "light0" + output: sx1509_output + +- All other options from :ref:`Output `. + +And naturally you may use all automation functions with these SX1509 binary_sensors, switches and output (lights). + +See Also +-------- + +- :ref:`i2c` +- :doc:`switch/gpio` +- :doc:`binary_sensor/gpio` +- :doc:`/components/light/monochromatic` +- :apiref:`sx1509/sx1509.h` +- :ghedit:`Edit` diff --git a/images/sx1509.jpg b/images/sx1509.jpg new file mode 100644 index 0000000000000000000000000000000000000000..586195e318301136cb3de857f3db67632c82c058 GIT binary patch literal 19951 zcmb5V1CV4*w>DaB+qP}nw(ag|+qP|6)3$9)+wN)Gnx6jqeZOfiW*B}515{MRv76gbG0E`3#f&}z648ZxGBrwQ7)BT?U1`YxW0R;R# zi2dFFJ@)?|1Of*6Ud-1902bu?LPQY6?{%IB{Li)j*NTw*V&!7_3*J2QO_{X3bE;QR zJV!b1In23pwg@@7;w}@5rGXN2*n3JR${7o#y)ilB7l3quV0gOFHzQNTL(V9;YO%~< zD{bRK_C5E+_3V7z^_iPjjQvQqT(Q#!frr3N$k1OZ;HZsAk$yu}#EJ{^tHmbj;M?c`<(*84GkpXmew)AB>D zx6d(_7aoU+fr$Z^Y{zo-{Orjwo8uD+k(0qiId9J@x87UFN%9wf>N$O-V~|#DHd!&J zxYXU;Jg4?d?~H9Tec~uTdT`}kk1(&oRT`{mG2x7DRk8Y+^;TA<0qTPf**0;UB3EGs5iV{P4whVL#=G5f$M4gsa5d2O<>3;1d<@k0>(=wYp7{lk{Jq$wO=^Dj111Tj z=6U|*$xDxf4chz18yecnX+gS>CAOB`B<$(g$27L4=F)%ZC$zdtZnt0Y zZpzzmH6N;7p`EUv;B8Rw*V@wv6zacv`k=Wf!1~q!8whx!G~8?j>Rdp^>0CmWO6&%*9fATgj*7JeLeUf*80q9@=|ivq@l`s!ZTGUHV z(M8_TYD=;HNPf9V4cgh*v8vmF%|VvuL-H|!${b7j!{bXc2SpN!y~@_7?Ti9{^3g)J zVITP?_p%z3%-A}Kf~)hm^}+IGDnpK6*lL$#W*dcUNX_x$c%SJ|wmp}A{mP*hXHFLC z20P8RZjXOt4b0`y6#LJp8$7thw?7NU6oo3~a0=PDK~`_Bb*IILGe+7Sg&vh7&&Hh^ z0^$bIelaKNnXB!nQX5wXRv=-*;OsBn7NWgFpO$AQI*rCt<=CmNC5yGyzsE$T<_}&! z1ej{y`7{!>$g|&wQBp7R><`4=(;tGY_-JH4#LLACEus$^)%nv}mY83oclmb)YpSKe z*q*P%XVBw%Re7VOm!6xgPc@0`)opoeWgh0amU%j7b+x>DU8Or0&X(EOWIE;0Xe@YY z6SfV~beyjfrl6AkxOu&dg6b5px|&n8(cll6kEpE6`<`E`l^-6Cw`$y36aOkjyOokv z>pkYbWYbNw&EkE8=P%cLrdO#u**f@~c6{v2ll5eOK;2Bkz8EX7yX?VtZ}6Go`bgNF z{%>?cyMXR=s^mFj5Xmq;&s#Nc^1P9VLH_U2|NHMZw9+F2fPsNPfq_6kK*0V5*l!dD z1p^=oXUl2FmtkZ0 z@_*Ow8*w@9p2y_+>b786Eu18He2TmpS9*(=0*8+4gcGS-^_Ce#ttOz0nu1&GM$GR7 z#Jh`lK|>Id)%m#7%&~B|&20xE^^zg^c%t1QXU`*Dk70hdJWPA;jyMj8?O_pmaK!F1 z&6SKeu2Yjn=CB|!BRZtqKnK;AeE0plkx+|;=q?2?{eGV7^#qJQdI+gBaeoO$v8Jw9bOfeYN_63pP3{lC})~b z_wpZr38gAPj+5rZM5VGbTT{|h;Q6ZIg5OJCn5Ok;j#qZ_Oa$jNw!;l0u1?aLkR*fy ze(mCz(`qcjs-x%bnh_v;-z`RdA*UsEBqlc;evum}iTX9Q-?ZZWeRTfW<&X4lFfn>{ zGDR$GzXlUa_t>9`4#HBku*x0=m28=DVVxbH#aX1 zcVu*AW2zp~e`C*LmrXpyltfidbC3>R)kZK{&j@({gp*4xl3CJ4uWG-+XN9%z=W{ls zK+leleuYqr^UECZ& z$#Zs1ox~Pz{-e+AJzBK{7Wz1N7}S5bf1^>Mf~=jtNwAFrRXFubuYjG$ep@;vpHHN= zGOn5{YDG3$nu^%kJ`JaI^g|$L0#-Br80|cOe$dEPW9*RXC2Lh(#BEwYZv4*G!=jGL z9-*wM%HQYjwAC=USdf$+dtL{7F;FX(_>RRA# zymGxg#|jN`kf7VDNgPWGm+{?`air>ItcznRf|nSgKUKaTknIQyj_EjYhtCw7eEH#L zpY5PPnwmqaZB2{7n4|%%8{2JW@4U&vN*TeZo=D8nMB4b>7eHsW*jI(0y&%*KnY5k} zt;!^J9pCy7uUSlJsacCA9Y-{5Oy4Wb?`c~E1c<6lUmg?^>~4XjFfGm&*z2ED#$9-I zrL7}XO@EWtY+f-@e;o<+J8b?i2jehCIOh;q9x-vp`jb)zK zU7c5nsq8O6GD>UP((HSkz*WW})ADmBdmo9~;O{>+%_?>SPriI{%T=BWFVfpQ*2EQYe#nPI z?>_ITAf2}PizPzH2Frzp>iR#x+&df5{pNtlzNnF{L!D>4%Pw2I2*f|%KzNP0F<(xk zq_N-B7T%!%JtWTuQp2c5L3sF$TaUD_HS1}##r4)PlxAW zoBVlU>rCfNXQxu}@go};&C*b_`o~4<&WSqqdHIjYNW{fp+Snjy7Cxo*QNp9=H|$S| zfh!%Q4Xi_l*p(>d}>BP~(peSs6$S@(BTmu2z8IH$Q?>&c;I~_ zcc~fM7_HF?H;eS?HaeWzTW;h%Xmp-lh6O_l=x|xm#*5n086OkeP8dhsJdyS_V>4Z`xVV?`Uo-I1YyOaX)T>U3q{XpBjeK5qpdf#1kv7gR|90G z*U{zi*Ic$*n?qp`vqcO^nODSSMz%oYh4-j5yAac70{4>|;2VTbnY3gKsfO248`6X^ z?8a<6)73|g>|kqPQ(Je0bt{xE)_kn%*Q8(n_!X~^hu6z!{?rfcc2XlRE@F+bp61V) z{Z-b~ur>ymWi7ynb_qDtBE>vL!HfOzIBgXWN413!$C7%OVZLPztblD)SIQA!B00i& z%pwuT#4?7NXuLVhv=yj%jH_KW`5tS+v8|m0ne@dX>~K@YGl)0<8bf=Kh^OWs}0?8 z!R;{p@SK>#KBq*~^joez#eTw793FD~z+Y0cIdCasjWEeH9X0DQykKNvHwtnC z-Ez}HR!9ujIsh|;k}xG(G|D2b*S>BUaW-Uas>kMPG&eIWiTj0^4S=B$LSHu9AWBVz zAu;0i4umlwTfz9gi3ow^4w)7YP55s8>8R2T6DH&rfP_d?n+Z;8RCs5WgIkco;SVqN z@Y7t63xgiaTnNIOuSspgs^-PFMR55A_%@OlkpTagNWfsgV4xuXnpMC6AP`U_WFizM zFk)sQCDcSjmcYVW5=A3N#)g4^&7^OCRRHMkgCgcJ5}9RHzc!@V5}fw0WIZVokDJcZD?l#VutJ`UTd1~#_<~46ROiJJP8HwrZnn2P_)iMTk z*W^UKTeV$Ab=So}bKiHlsS+g+`X)w4@^Ihw`<3mC_sCbFH?eeb9i%=nDNCY>SdQq| z+YFV%oRhuleJ)cS5z#(`Do>ZP<1MX}S+%=*4HwAH45kgw=qem(G|&tx+*Yim{2uC6 z(ax^<0z_R!itB0J)+kU8!*7{+xR#&!Yb{-=%j=2R5#7TOUl-V96IK~t`i)be^ORMl z&7Dh$5?2`oK#ijgL=NZuAR#(W66d1an#Q!9HB+CLZ_NoC!D zpP8&P)a6JH^~hOoh~X|h^M9@rH;3(?s9Jkf5j5AOqQ(TlX^b)3O*w}cXhn4^aWZ^X zH+xUC-E0iXAP|7m6M&kiFY6$}fX|wad7BKT7~9O#`^I+H9ng#kF6G?PgQl$_Q5zo0qN6nTz83B1IVtwXk%ZkS%~h*VXpQlVJ4(()4AFHAIbz`n`S?TO*!9$454lZ^E-oA#)Z*+qTf>E z30a1Vlg5*OO!3Rs_KeM{A*Y1CR~f*rKU;|G>%NFVNaI1I(t1X?+EhXf64}ibSJK`k zqrAK+NK2AT$5p?$;)wQday&e#7exje2{Kwt{`ms%Q2giN9DE$X(eqRoS$cC@IZTvn zuAAv!9Oa=AEIr}u^DwnSfv~XutYhJ1H-H)1Rn#Xj3uB)mYzBTaQdYORwL70dM|7UV z&f;H}FMMi@A+=&Y=Pdin-6kN5iO@+CIJd3ZOoq}nSZx-ieuQ^y#r6fDo*qK_Q=VZG zp}>ER1FV=xoff9@iRv~~G4xk$3V5uzniMGLmn--&o*+GvwDQ=IAF5I|fj}t1FEryV z2mAsqSM}T3_dfW#A*{Wa`sTWYGn)eFyXd#3R8X}8zL!}fA>ESM^Kp&LwYI?oniOBY zF3O;G@%=VeO`5@vo0K^XEB18-JWmDR+j8uC81}WnYFHs~u>0A(-wvL{_-Imxx$QRG ze&_KgQO%&p$;btu&g^{Y5o1f_jxM+SohL6sAWiO{bLwt>S1$@$TV0Jw!1PYLE^52F zX1%A@z3r3G*StsHwJv<;kD^+I>s=QIo;J6SDy0jUFi#iZz4y-B_KBHa>jJL&`Y|y- z6p*3}bUnomfCqk()ct9gR6-w&9tM0m9&tp~w_*zP{0m5=NZ(%DKjr_4m;nKQ!x0D* zq7X4N3ZWvS(!U@C{4WUoBB@AJPH#AZi%z1Q!6IQbkD1S65x1PdDrS{QrH>f3w@seq zA9nJUSH@jjjdbBI?hVU7!!kCjLT)G`9cRs(J`k6}g0CL##Kkc6BQ0A!!=z>u zO_h9>Xw-XCY7ljh@gtj$zO<~HcRet0bfcf3@glkNW;VE$9v{hQIncu(=J`OtzEgUX z?tw{*pVaF@S!FLak82y%8px+bC>L zi0y%9pr%02WRo0NPShfrGaTU>>bpz+3pNaDXLuN0yp(UL#udjQpovYR@3O2lq>J02e0DsF1td<<~y06)j~u&uePwO8itm zP^E!2y?Y~qQ5wNI2JaB?2T#^jsncPVk?YpsWuR3W9@-OB)253jGr`(*DEqm(9Ytqk zS}rsi^)wzpY{^`F1RU({O&vEj3ZaH;jrg4hjF>q-RX`P0#p1FTpE4~ zG>hRyn$6DRKO7FW0#Rlh_xrks0d;O5k^Ax)OQvNKgM>vdmPiB<4%Rx^;wpGs6v-RB za?uMXv(`6JLn$?nDfJy_ct9n1=@^rD-HS|LHYRxeMk?ca*yD@Hw zr@go5c$&-RW8d;nLTwy(b&}&OD+!A9l!JrgMVv{p;e4v1>>9^yw(c?h%pKRgmBp&P zdwA4jGInaG&*hv|u0$^C#0j!nAHvP5>}+P-O0IOAFe#PgdrIB=OW^vlmnJ+u?c27D z=Pv;CheYy`VL6c6HYsG6*=i!_AaD8o@mjbMPH>LV=)FtmqxC0y7nmO9liqx5WV;bRQ5QB0m<;vH81beCPgstYS~MKWuTgL^41oJDcBZ#GY;0C z`vZ?GAM`guk_+eKPy5Gj(XENeLSfa}M5lo3Rbx<=bjSO9rX z0_n#7Hpdv^oYAmLZ4vh8#wEQPGTv)$J!F)Y+1PQQiIq$}+*IX>g zTkWW{v&hDQ9$jpZIiO2`RGV8GzUU&KOVF2c==u!rHT(1d*PTpn()c5;qHQT#5f0j@ z3Z&+`GGPvc6>2|>de;MQMbhfhO?c?phJ$OOm$SZmNGGYI1%ciLa-qsRRw2elB^$-w zO#ZxtllwH(rE_9sL{;Bx!{nmji8|o~3V8YSkHCGr`0N)TM1`@{RIDVzId)0BoVLXJnOh9X%u;QQAAiSjnOK|(bAne%pZUuTQ2jMjprn}Xn>^kwLLZa?v;>m>bC=S(?7Hh5&wuw5O_UI5SadXU<&YwFMgZo0Afc?#h7lOi$tS?t%-cLlWNzQef~aWmcO*CAftGM z0a0ZfMt~5b8U_D#N55E1qIVYbC`6;lW-xo#w;ZB3o;ruizNjy=^ZtNtOgzK#eula> z!S*VxrOqyk*d#HaS(S#66(>@yc>hV(t?fAj?-r{*e&3O^VxlydXe-V(&;jW^c3r-f zKku3V8c3at{oJ!)j&g?H9h?_>N*4f%+W)R5H`59p%Drzsr{dWs)plR4qk-X-Doszh zROx7mpQ`n!6EsivR{U&-KXpbvR4`a>!bjn<38H1^r8a9V8PR5D7}kw=jBwf+Tf2pd z&wmsq)0MJ|t9hQ61~qz-sk_O|)>QgQpiM3b&*F5o>`u2tQ+h8pzfh$QJ+=v7#@F&RUY#zvxKBB=zUb=aA05thN3} zoQsklFHPl=qq`kMnz6g!60=|&@uZEng;SGQ>}FqQaI<2qRWxCx$;HH9>;FU-{;VTHH$sLRlzT*4X!e1egxH>M8Uf?B7ZGC~Lmkg~^< zp4E%o-AE06>wfTcO%)72+h8DF(N@oIijKezW>QlcFZl&=6)WxO$C(aAOoWbY=#&t1 zNZpMfZ!q)#?-0rx#sWqHO8)%PO~RK*GQ^dzE=!@f$Lr#>HQ@ytx5!$Lblelu3$a?P z(F^{>r0;I^wgo42v9Ye?yaDU%9O4rK`Rx_W-6Yn5+kgQ1-?g^1T-oH{!&f0cbjKos z=+uo;={riSsPV^IHXkR^@L{Ox4_qDP?naXW)#eIky$8qRVEv6tOAtF`na!n-I0vw4 z@!`XQzEzPyJ7qun3Aww>s4*+_8=|*xh zardQpX?sM8Zu?vXK`+KU#H)Keu4FSHlWaI;Q%d{jj8nOFjn-j>P8(AeYD96L7&`(_ z!Y?RC9Anth@A+;5uCSJt&q`_q)vi`^x0$ecrwy}~Zae3r9VIuHWqbSGG&ADbB^@=- zVx=<(IK(R*Wo&#Y>A>5+%s85#U-Vmp*AaDB+J8V3#Ut{Q(mS->5v?r92iW!4=1tuI zNEF?aap`Wh0VfgMT;N*^hxM8c6pejZYrE@m{T!wYb2t5}Rb(f>pqb(OEnQHdDIN^ekVO zQrMe0lz^VIq{5ZkyIPQd$Z4oCD)Cnbp{i_O^gT9sm(aL7;?yyDwk_*{c>q z6n{SwOX9cwDIz}S0m5gZ)Zbe;=sf%H{tHKTO$MFf1$CB}P+A85CGE&?O4~wcjQj#D z%L$(l1%=}m(kx(`e4gvo~?N~kr(H5XBcQ(j* z)%DdlN@FL;cmhUu5ryz=g4P{Z2KAnPsE0Jw3x})#>ko*CvHu(2VSo|Y*eAy#ffy3P z66h^7|3{#^k-+t!jaD6k&w|4zA@T`5Ny}AJb0j6c6X6kA9L~j#!eYjG!C=s?UxL znx%UvxM{cXOt{E$m*%DR5NN|)k6!@r%rdQsfdSOqJt@%&rnrt7Iit$0oGF_)rfK!& z3~zUaG~zZ}!H4N7MTrP!8tRQ^r)i^ty9@{EzarC4>85sTf)8sX{U31%)S1CsbPj+g z!)&yCiHqkouhyZwUy2!B5{y?1TA&+gZdhKazyB`TB#R@M@>_t-@g0%ujHG*pjKAg< z8_;ahELf1=9I(%@RtOU5&(zvcFujodA`)NT7(G6I=|<*iMZM+4o2I&CbP*x@sEm`6 zD^LrgH~O6;2_G(mb3ao4M#0`IHHJ2a3)+!A6ouqYfpIuz5-PCmg*_c=avmC7vdbjXD2}cY0Zax`+q-?Qod8 zaS2DPDx-lmK!wd)NTZidST|4d*Q8P?g?Ft{eClanwZ$x{49l8Kdq=EhtUH6WDje5o z25joAg%#_wbWwC;6<#O55bIzOZcJ_Ub4))joELxJ(|IkXk0rvC2ank$#4?2BOmJDb zsru(zWNSbeQ2-6GGp1%qcyLCkiO||qi=~;a?5f*tq+I?3b7HTH$YN5_Io66vLG<}P z*d;Nd#jS4J$h<4Mto_uI=>zB+T17l`i93)cIQg*_kAwi>YqW?x3Xq^qX8??8r^}nZ zNyg|wrU*37JbVkOPf)tC6-h#4D^<2M*?OO0}+%S?Gdw zjai;-&UkyFE%oZjRy1SEg~AWujo;nZwn1tuymuH>?Dd{<$M3P6n5OF>+z7*<^xfqC zN+6A%bfbm+=YL+q06eXx2i%hxLBfUB2Kf=Ck>jv1PUD#yq@4K2>RLd}&N!G@vGW|0 zBi4F5M=X?y%9iKQilI%gE~V?IF2cScC7D6f&0*i0qeRPkEZ2 zxfzarWNaTh+2zDx{1}(vCcRH!tAS&Se23hh>G_MvTBrV7*}h*ZV{K1UyJ(_r}PO(cR*jx2e;n2J?(?+4izI${7 zCb-YC`S=)KDf|!R;I?>EF|L(93_=uHW>%aH6g@gTs2|AV0NA~R=@zZ4te8cpG?-QXG_R^`PD&eu9 zZYK&FS>CZ9NJWMwbal+jL4m)(hCdq9DOcrbew5b!Sg&?yUJv~OlvHI7TT0`#FlN^1 zFc3_lMd9LXVm0Dxhrf_PJ~0K6O}k;0Mzr*61SwlyaN1Vwr_yr5tgzAajOnBk(hD8X z6lpn#Rw=L?6EL!3fI!D+9;>I^3c0~v^b^kfnyv_tXYwXgeB}GlTH=qH9hvJb3sk}{ zC0?>n)K2A{gB1C^AJ&91_&p1ub{9nCg$Lz&3RLXp3VMebLa$a;GP1N9C&zYVRMciW z@(v*LvuTn7y}sM@M6=#_7DgLs^4aELVZxMwi1 zj+)c4)ZA{fK&@So=%pL%nR>9U%kDTSu98`%x;P~Ilq;?;P|J+g}&4>ouaH}Ee9YB zi5{_VzfCmE1upO^4CJbkW1eNS<^zKS^iG)$b&%cyQYDKn6dsi^B;7clq$v|z*x`K+ z8QwAII%zaL3F@eTV<)4?zyqc;N@LnVK0d}8vW7d*_jrx@_L;_|=@mxSgQE*r#aghb z)JeERt~7Me1#?3Ur#~By$)*p~d$f8=VP5I#2XCoB)+NJw;z)dXUQ4Xc&To;H60MME z73t&@Bzvh9Lky&9ZbG8~h#=}VtEC}o#aW^BG_#<6?P+_x2Z`__y8<@sI|&PGmBhHA z5P*U5L+uoTh*dS+f~|rp3z!A3&yH=FLUEt1d-{ThPLcGx}(+9_q5@% zB6!%Md7N~kYl`&eeqiphE@tF#AGxz8SSlF}Z#{4|953@yJEWpzh#+49WgQJ&(E}q) z45f7p=)k#a-9j#{Ym1H)&%9%_t0F5utU(1Y60irmPR!h zXy5*r7H%x9gb&MfcUAj7=1LlkD#r{4n2BA(Fm_s;|9!$`NA zV08VH(ZK`5tdbZ%-0^=K<@VkIw}JQUqCjJ1I9S^mE%CXzr%Yqoix7h7#1CVGt8Ga# zYn()!h&*FBTaU_Yvw;f-1stGrlKn9aZ&77&153(1xU5SN;MRBf*z2W5BBc9D!-sXM0)(FO`hG!VF=EgVnzvz0 zcjx6DE0*_R2TNsS@k$3dZ6+y?o7XV~-8Op|o-evXAX&0G_A^$FB+e*qrUrQ)9swE@ zKuu5oWFV?XR%a5c+KxOIG%cMD1r`1&wQ#xy0CTmQjDfhs)uPd3?P3`RDk=nmmu{6M z!OfC{tYw>x>Lt5l8}gveS9O;aytn)+c>1ep>-%(lj?TEJs;#j}smo6WVm6_ zN#k$_ZRlCnvj|ykP97)I_`tm9WWoLDELze5o5J`jhbeaId$pTBAv?UmLSd@E&v0tkI08G6X_t5kV)Q zdj(q%C}Ph+>LW@_71>v!?tb=G`(w8%xfEd-=3r>vXS#6g^I;3CXFvq3f1!q#fnfTU z_ZK1ItN*w{-u9chORB=4x^|=gPT@tR+{NbAFvU#rHmT<7Nc!&d?RgnUVE9L83K%0l z@&%i&A96{bMcoJ0;Q?sO-RA>%R7Xb*zhZci{R42ke!tdB@hf1Mm$3GJE(7o_6vdbV+-b>Tvg|GC5 zCzF<+q>PAnL_@I>h1xi%Rq-fAIGiORbF9-JUUjVDeyjGvN z6JX)yc%1l~F6;`bB$4mLf<{_Qaz&tQO2HD%0XtmimlEG$BFc}k%fdh5 zms4%!m-lt+GH(d$Ck9REfAbs5A3w7U4A$WO`dg&LufZ)@Z!#_vlV$h-hlwyM1$N{; zoFlX(c?H9G$?y>wNx`*+b6MLt90fM1#d#T{N7bwt1<4HPlhMLvE=~{L)Pv_47Z{39 zsYN};)pEx0O5zdwml>+SgGTUp9adg~s_+$v`0sSg&9`LE-E{#o?eHJiOQY^Zn*m zfxz1RBxuYXu@gYk`WkK#wT@B6!veXV!>cI@{Q;xEp$%YOK-N!DM-RgPu zM5~(ke5F0;`mDWe(}>hmaDBun{6q;g7kNQI0hC7wKEu}#g1H|pWw%I7AZEE23W2~5 z+6yp*ni%}ZX24{+4Y>r2&zMw1pf=#kFT6CNXBot4U#OguzBe#p>mAV+;UB3vJj+ z%x%K`4Gj8R9<}WVUIdr!LAmYxhVa9+`sAA&aKNa-i35aSje8@ z{QKX2F)Rb6ew12KiTU|ZX`XTJQ4nPES)LRAgab78#o10V)42dZT1OZ}DhYUPp>ri5 zmZHUdy6G9`n!R`K4>&gH>E-?%RXj}nDg=Q8xqH3+_!q$3Gz8M4KpRcHExe5$h@dSL zA9qe#F+?BVa~k+)LVe*EBWOuBM7(A!Cp;)94)i+hAK_FyX%62jAr!1Lz+b>CatX9* zOC}M9tNQ2=tus6cGV9LyGteJ6Lt;^6Q3_WG|J4WpY^s__To_WY9v)vInTvHgHZml# z{+5sK3)faCD6CMh*cSElhA8K7em*ar|I(;8lGN_iPP?67I;j&2kwB;tl2wZhwB>N zv%5111)u(&7XVkr0%ARL0xUl#|8qCfA<_1)ZH7euDDRGyi}uT{(9d{3k8C`K3&cfD zSZZyMBxfkdfrRh|71Fk_WW6AT!cblt!(kgx5nu{AxJ+BmpS_{CKXddSOU&$j8=T4j6i}0 z=98TOS7oE&6GEJsUlNw0{Q{g4x`?Wa>bw$Pg9LvHYxzI-ePbO3(mz>Q-}wXI^tk^J z(AGo-9BV~zdxF9A9rBC`)|oEYX!IGD2Nf?nosy|kl)RkF!yNj*LKxq zhUhcKKs>`chvaN=2_R< zgnbH-wyw@^AaX5gXo0Ny+u#visK)bJ-HA|fJ)wqk=USXl?&E6DTnB06FQ243br4(4 zqQluGayL6{Na7uF2XsG{8X+$h2;YQsIRIW{Y0OD~iN-2CHQf;(P4zO|-9YfhG+ZLf zO3-l?zF4TAOwYTfY`bfMs)6FGhpqshTYtY z5kAyS7iD`yPb{GuJme2g8wn>W48;d&}SU*DizUa(x@I;fzGvat5I1rm(_dt08=++Li(d;~3D!t5k1-?!_ES-7z96q* znqAx6ZL)k&{s(*tB4>T#5n$?wP`%g;cT|8&`vXq3-kT>l7=H!i=iMy?Rm!VBW350Y zz6!^XfP(6WX}j)f2T!~Nlo<;6e9~3C6s6<0819VnYZHeO`+diWQmU3)U7uUvtUm8R zOYh~d(f0bf9SbQBOfTn%l$<5H2Mvs|1+vbrieg#x_8`W@O9+9CvP{W+PMKh!(9~`B zj>aUxS96%UdVudyiIs=zOE}ve6nPnklOyKlzf(#z;RfJ=c zB>R9O@1B6Vq6Z zKe4P)P`xo8kPIOm5(VXv7aNOnDbhTm95{e+Xe%o5VogKoGbpdW0CVZi#qvMf_E(#S zTuWJwR=b_T+E9knVJ#o9`EkV!Rl39pLqsO8d}K-#m(mr$*Id~xSoY5;z3&2@cq~^U zNQ{vSZI3}pLQ|~?<+`wCfRvksq&=2*ossGMOT9u+Ohjrtby}4U=A^kflZYZMHMVp+ zTeUl|aZztMBYQE(s|U~B@Wmq~?{=N`UPFtlZSz_=<5n<|t zkVK@nFcF&nE|%9FiHNI3EHKKrA{@a^d%;j~>-EortI|^&0*=f*3~Nq`JJNnAM0gYb zfaM>Lvx=$F;}e2y^+&G|Jg^}ElhMVbEl#;_kHPr`sv}!ZG;%xnL(f32t{K1O5h17r zWc&y0+;5)*&Z`c|E3bH^*i+f&7yP8>9`tox%Eyz=suU2+O@WM6uv$(U5K{D&H`pP$ z!A_3{s(_zpO}{hKJXkjrJViVPVFq9D*oL@QO(xJzcxPmkn-6%D`vwJ}(9a;&m{9yE zotp}bI6cJmsvbUH{J_?wEu00o+amq_Y0)r`m% z6yydWhJmfo&jiLo(|QL&bbjGG98pmP4*Cm=fRx;Pt33FUj46XsVOW#4Q{Y_L;KJSV z%{#O|tZ&~c7hj)XbaV;yvxnLn%{R03rM>vlxClFbnC&gIA9UQo`Jh&*V@1fw&W8Yr zM&DL|h0D1;I};8)MgSolX~Uh7Z{J2!V=IV9owDBnOhaxeEnuU{qJug$aMSy> z1hfFRJruicc)||u8qbsGM<4<2v5FNsx#5T<=(v%XX>=`FO`QhPTvIq>)Dm{BJmzbd z>J__apUtqH>j+nSjhb$C#(m6TXr=Q!nzrGD;=x%7n+ho=yr8SLHfPGJY*n-H^k-3Y zMhZDNx~B14R5w32096{?23P}g%$8;ja;!iCd4!U921?*%=>PO%WK@~sH&M+ z=5f=QT$=DmnRr{4li>EfG|Z7`H!gi>6s6%Mmi3?^hSIEJ9`WXD0655&rX1qpI;^BA z0Kpi+fV2g2KFnWf9cG*k>BAFoz9^V2b}CQ`F4$xXy-XQkA#Keoh!uod$XV4R(+(t$ zN5Le2<47>pT*S&509I%zXxTH>i%4b)WB-H{09h#IG0Im2C3eFw?Bn9W6+W)JF{ju) zPm4Z|AY`j}l%|ec7H+n&Z9E|&A1`gEWutk1NM_y$Yhw7{y>D05l z{2nv7;J5P=)qt#2={OC^5_49ql}T?O$_kDrq{bxa!fZ`vxQPR#fsCl};sH>AV@GY^ z4zrvJ2Yidf5{G6^@P=inO{IyJskKEAp3g*EJqBADVL_ps8%44WN;qqqVl(D_fODLL zyLVVY`JFsK&K0IGY#rt4Os@mF&>8A8_1E%#=K&oQS$R`q#J4DIzy-El8=^#;;F4m( z+!gM=9h|YfkFgR~zbdNy zGWipj67eQk1JW&k56TIqaL!JCBWo)Qc&L|1cp~Si?KVdnr~+hb1*Jm@yW5mJmB9w* zha*P}M_oknyHuuYOl4-WcIG&&v^ooAxAdZ#pF1bQ1hXl9^Aoc>`ZnA(d+RIim^#;0ZMg|d%n*34@G={<|2@SN2wpFG?6+SFFh2DD@<8V#5Ou)z9I2N(itbEyXq7)dy zQ^C?boduKn77U`O_~F%^eC1g@-kvJg1oHT%!AKl0d)DJeY`kTPuZ}X*Sr|n*r6VpFsv2Z5GFZEx0z!{JhZ_`Cg!MQd$2%|0HC4|OratBEF&r|O@L2f zy^mI_CQ=@DNe5j!jDbjMfs#FhWRdQSFtJ-&Dfp9AHE#eVywx+(vdZeFEWl`-g)fTK z9|+rtzr$Bc(jcf$uOxji^?Izb^O>|jN}&f^WA`0&L}l5_Rhr!a zyDr_$Fy*rsh%`fu>g6*yRs5a9A>FfxM#T+NGq3g*Q9Vw`3L%Xvt*&XC=oM1(0F@49 z)(y~cpOGkxsapDJ=MuaYg}2H=HJ%%KNBgN+Qk~?uKRwGUgK26{c6$tYbdBbEMeo(v zBIHf2GskAC^m9cjwpNX@+S6nT&|!Ui>Sx4nLHd6J-U}i0^{jc90t1RCg-8#Lts`1o z%%{67Dxt1JnOj9$0Q|zbsvaj|_=Kk#)IN2J#8}0-+H~J$jHA%l7OA%!)6}Bfq5x2@ zHD+a98fDJ>#0@A@c)NeS%$LSjpe-VWjO)jD1iK0;JFBR7RyYmci7pTxrT0~e@B#Tw*XBp_5*A)cYuz*&zZ+45oq&8`#ql(B2Rs#C=LqBc!919qrrY>RJa0vY*0oCPc4715GkDye|dvC+g^r3Av}*N7OqS4^zDTu^it zB2`1}XZIOe2=5fDYfuPeyL4!Bh6}v^0H_?=U@f5TDh8sXic7Fut+3~IL;y|S!)!uDmQ4fTP>}zM)L(wA7Tv)z-F<29(5BCQ_Nv~ z@f?~M01qt>6EK^9e$f)PbmAUk&j~{SZVo5i{^fJcTBh@3S6cUqpoB?AX?p4}61uKI zMYnOS1;PL|++$@{S9u78#Q-g|mz>Pp%U~_LD-3*JTY&DFrO?o}m>F|CZYLmIpa_&S zGF&KClHm@|F+P<6DSq6P06n;%2JQhB<|pa4;uMbpQxZ0DO9d zaqI*To-U)RjJZQ-^&C|b*shO~C(TKhm3VWjrV>ac5y?(Gkp8yv7YLay*fj9CF^~$- zV204)lr5?NIhi(#EXKv+n8h;Nv-W()__3C!V}$b+2JE`8cyO*NUnY#TDJjA?gSIet z1yiH;Fkn9ATI%&taoNKZqM*8Bvb)uNs_zw;U1lQdptZ{xvK|UZ={uE_bPxp=)?Q%U zk||m4yJ2AzK#S8kj}~-WV&b^e%s#T+9M^s#_P-bo3N>J3%)jsvU2Y8i`02txbzVg@FoE5db*@~28mM5wWXE=#ja>EOPyWaN!i>kxPUFIT#jjR+8nVSCq zO7$Wg!x#grQ!uQ>E>Y1tYJ27gLL8nYjX_9x`%F-3G;lX=e{pM`vrXZx{P7urvkWCt z-!-^9B7s;lI&N=lHj6Z`Uh^2*7+B97ed9E?neolcl(>I!C|nM%TWBho{{TadqU}?K zUn8f?cA^wqp+)&3Aa&)G_AvzIgzGZA(#G)pN@k**1-zPGW0+LUv{8O>n09~`#BsXT zb1{ys63gIsDGC`2F77e2*nmfuajMr{9W}l#d|(^7zxfQ=Wh+9~czJ?U1Z#M#1&mc) zgAIN7sZ@98TUFe|j>#9J&~qCSVvh!TmTV-|(K#7(Y!An!!>;|5ERU=AnBZn85Z?i_ z?JGWIWEKM+Bt}-EGS|s$mZVoYieE-t?qrlH<(21tVAN4{?`$uimAO!&i?hr*+gHz1 zCjtejz<-P}qkPMVvVm9~{{YCbCLdNbuk$QuhsGdDkN{{rE}#VoDzX0AvX}l!h-uH5 zg-L{LJeGqMf|JV?Oh95a<}JawpyyUWu3&+Lrmx|dFX8_BWpyiC?Jtm>OklCY#g3JR zSin>_V(Rr1&IoOw-MhVIm=$}w-;yjCMY79gOXKP)1o>;&`18cdR0rOJ$agQ;%n@gj zI*5?xAy~c#xBZL%00;es@%tcwKMcWy{6Hrgz1eu;pgo9D-bdOHb;c!YjAB}J^$ufa zJUkVMxDJ73?dELYfGbWF+4hQoqj786YI%)Dwb?3f#?tc8!k`9?R(#jIw;~a{OCBL@ z4Qy!vh1D)4uT}DE4hw+tk3(8yD-yw2w!ZK~2HZs)46elSUBvQ2q8$oCPyXy@_VGWe z>(%fcoq&xzSv{jjQMK)gCWMFryWC}>lf@c7ZQz6j6_}uR)^jlvvM*tXXsAG~fm&ZO zf?!&fHh^v(%;F9Ml?-xm9Osxw*&>vS)5|Mh(cl}Skls6p2UGy5n+y(=JBz} zj`sE&sP_d}+N$MJZ^Q?R@o+9^XcVY3dRwArf0~$5)!ol+FHhh~TyRv#0ZItu25zis zDQJ1-3lnGvA?o6@#J=$LU8eKR;}N|JWkqysFC>0>T~4zO={x2-5HLcEHs{)LwF3b# zUP3?!<`EL7}1^9gs5zHhirD^s@|nfHZo;w9o^SIid5SxUHczc3pA0GCQ# z1^I+dfrWM7EBTcmtJc!%;fv%#3oKn45CPXg&crLUOp-N|j7Kjrkf#3Wh0zZSqy0|M zD4tY0ApSQf%h6!sT_5ky1x7M%X(Spwvb0NpQxr^4!<9i9xvS97KD{b$Te^%vRsh zyLq{*X&&&#N?pq&--i7X;yj3OOm`%ww@u*gRisuDZNNxMnv9CSY!eJ>7~Ay+b>!q^by6 zSuHcg&+9t%&~`@a2pE5f+!*yhA;R*7r;v6_XonkmuLLmlifnleLbR4@oXQS5 z+(2}-An|9Ht;?TuSe{zi9wxDHxt6G`uTb()Vz1`40ZLkLfea)7MgeD->vJIy+){I$lln zby23kC>tO5A1btD@^3jHAW zjV+CBI`GV8GHMVN9b)Sp%0L64s6bhCmi5?)uKRF}Pw6`KI8jnee59||nJ#$+U+Nu& z?7euJ@meTSfg_O`dsH~ZT<6aRwN*e;4bX8D7tctwd|n?AZx?1GYesWo-;09gqN{ey zyx;KyrglcK&A`g7@Ll5k@suiI%PX;=e2o0v)XMu8m(BUPfv4c<{J@aUK}vrI#5VgW zYS||(+g0*@CY+yX#G&gb?UtTyp`q2D81eU9Y5YC-n>l@*kHuUoFuz=UM8^l^`1rX; z^&Z4R0Kj1MWn$WgVRQP9zJ{lQOsg&Xxr9&^pf><@fz+F?2BHDEDZhLWlzm*@>dIO_ zmr{2}C%BG^tco=Be8H@Amd=Mr8F;e_XgsenooPa`@`P2Xlmgub6E7P==r}*QUG@eY zv>wrXs6@=tLGk|ph%dT;pr-9cfEW&0}%wP>Z3(Dwnv1+VuOTqT3{YPGeN`>YR+7>1ejZ&~@efJVE zs)C+tFj{Ffv&K4vNB|1-sZh)zDp#dSmGo3S2~hOcpb!yY!sR^nbMFm|;FA2ElPVuU z{UsM&Rj*;9B_W3{=l0!8^hjW$mp}NZ{{X}x{{Suira597@hTtVzgOvgkOXw$owoO2 zTxW+4yZ{OeA5}{9BM5pB`bc_eZV;M>p$z(v^dag^`V!&v9*5BX0D$y9gX(^x(DWho zo`?8PMjnhll3&t#9*3r(>Ut3RtI&i!IX}ch{2Tfh{Ws`(pGoRU^nD*g(E8t2F!g?; J>OCJ{|Ji+#W