From f08ff77fc6bdd579046500462c5319750407021a Mon Sep 17 00:00:00 2001 From: leadnaut
+ +
+The following materials are required to construct this project. + +- 1x Raspberry Pi 3B +- 1x PiicoDev Adapter for Raspberry Pi +- 2x PiicoDev Connector 100mm, 1x PiicoDev Connector 200mm, 1x PiicoDev Connector 50mm +- 1x Raspberry Pi Camera Module +- 1x Vibrating Motor Disk +- 2x USB-C Power Supplis +- 1x PiicoDev Servo Driver, 1x PiicoDev OLED Display, 2x PiicoDev Button +- 1x FS90R Servo. + +The above wiring diagram shows how to connect these components. + ## Deployment ### Single command all-in-one To set up the Pi's environment, deploy the code base, and start the program follow the following steps. diff --git a/assets/wiring.png b/assets/wiring.png new file mode 100644 index 0000000000000000000000000000000000000000..f77549b16ae72223af29376eca71204a83a494a4 GIT binary patch literal 62451 zcmeFZXHZnzwm%Bk3XQ}@lq5NdNRp&v0g;?RG9n@%S(Mx$S(1q4EJ-q`Bqd1{P(URK zNNN!T0YRD^-e^60pL^?`TlKH^KD_s;_J?h4V68Fd9C`f4m@7g{<0>gJ9Wfpr9_ck@ z1syy*1PcDUL39FsL+d?Ah=<3FcTGV~&(r+Jm&>ahSG}j!Uc8!`3(xyH9{Nz31i$eC zsj{UtVft-+p?Fg9i2$m&K#PDj7E7+LyaFxV3AD_D?~X6rN)t|5xgR}*c65z=-=v?l zQa)~rvfEiL_s(2hEpmV5Us$~BQ*k&q^J=V3^d~3v2oarKqtowT=kqCD=Wy0IYM^vCSQ^3nJGm}$B!4QNqhuQhvVoy zXY%-kqBi_OP7SLYQs$iuoYycBn`0*QiRPM@oOtnwsiJ(K_s2)twsiPy_aPd22tmpK zZDTHsB4{paSUvZ!&)J-w%34zHb#>e6d3&24wea^vKGDH-HKC~)K0_;UBBzCE7iI3a zhkqu^Vp6T}BQe!6WM@dZI)6oOmq&lFr6p6ol+a$o6{50{G$!)>4kOAOaw zdE&w38k(Fc(i26McIqk(@`{>ng=f^!-p`{cYxZ`|ZkLwHiNh5aGcEt+1b+u5`FHjw zSKWBa_utk;MTkclrB#o}9QLj5_q7EEwKcD)BueNmo3mNnInk#+8CzPlRujEOuSU?! z$D67X9nAKNyV+O~@>Nw}+v1-x5OP>k{929FS*kB>d7g`s4<3CVrJ>O*ZS!c$yS3fn zw!G^Zi~Tv)U60(?QPZtjE_$Eb@lk=h$;s(s9k#NAW%JbJoPp_1oa0$4S5Ei&v+W*- z(CZF6syE1WDEQ=gKBTH@Za*mJC_h!IxO0}K%ldLDO|l8CVEH3GHmm5h!~~W(!y+O| z+5eiQ5OY@AJ~wc=q#jb^@$n+|bQpg7;BZ*Ig=801_8XGz8F2bPPc9F(`8A+e)h-SD z*E8Kn^>%2Z__TU3x#~ARGA>Asy^i&MaT5J5IT&7Ng@OrvK~==L-)twUCS0&VVA} ziv>|(^%2-7asncvFf^bQX~Ow|$J+Z^Vv*t7&iMTzSHYpoDmSaOCF1{vR0c}LS08eB z)BK%WO>;x8l&fry!+PEVNcITX;Pl7sgTysJ;+Lq+#~?`~0~5Mz+ylw`pRDY^ 7s?*3AK)h;Nk`XGE2%+ z)m2F?P&)D-&hq2ns$BqJCT~rI$;LzB%xRNw3J_38K_3X=&UX&n*)!9Yo;ES @)AamGwk^DpIh1r6a8=yg zN^sN=r`1!vvbzM$0Rd~S_&3d ev9!ZqG39? z&8PeCQIG%_KcPXszh
YLdH zsDUhRJx3&D!!$^ %j)BAZS5pN%6&((Q zQyb{{NZY5lz1MuS7v_%gpE={7^L!yBvZWqYb>FdvOk*7qv9Hz@wm6bFDC&xU{Y@@7 za>n$;@Nqcu$rO$V*(4nAdM?<(kt5*993o4-9STL#?-hK{0`D#jdjo>-7yg1H i;SoBJbL;{L z)TNm15rjvO1pdx6#xx8P#g;1AM%VhFF&*shqIvmBB$!;% ;h$g_Kl38`UHXEG%=8+eu9M}UjoG7rZvKa^Jjo3v<3=@B&fA0@X)5v zUt+cNy~|#sN4XFMXBB>v52)Us**iOR+7#}gyhNi4PD@`?byGCFObsvV=V4)|MClL- zTu?^uomg?2SO`5T+~RvLWL|$~Ji{_@61aILe=b564aYdJyI>96#H}DG$E(_ !0Cja*}LmSC{rb!Cv|Vo9-2?J#KF*r<%ghixp}KK1Iz!-;XYy z!{n-kM8yhuP*VRFT{$J!5@b&)
>=0Zq5OVlTB{QkkD$wr@^Es!yviknwD z%h2XK3mrlQ`X} 2zTcQjxh$h}Ko(=q?6_`H-tkSr1o!SRgw z1mr?6&!v6(hXMOd)40FDO39)(e@#I*|ElG0-e2F`9Cw!4-`bi&A8kU`*wKo_EJpG- z)k%48ETlPL?j_QVe(a)6So$?hQoJ{w*X4iDcH&wrSO8VvE7;NEu;vCZmk^&^>3+-Q znc>NeI-#jpnZxbPuif$L#eTcr3v0I~eVm8!Xy_3brBxA>ypO}d9Tm=*r@UA|3&&Nz zYbS1OaI2DkVAcX$=6~|cRln)4q4=H9y+MRugAPm6t%k?b@5QDXaDb|QS3Whe!o1PA z5nVT}B0O_Ws)x>F4kxsiIajZHho1;UfflG}$&tViVMqXB?)gzeu1Biz@1C 7TkQk3n@MjejIs*W8c!2J1s^jsz1lEMEVV*X zRWc3?nD}29aG7m}6-K3_D$4MTii2G*JCq!U(ks+cUdHfj)55QodAaL|o`;>=|CxP% z-e#z*yI1hWm^vytxVl!H!G=Bf#o3zj0;68* 9AbLyrUkK>3h~N znqXYMG^4VwUQYlPZGgsdfTMYm{eTAQ!jqsL*DL$)jioW#&cE(Z_Jo4lnct!*eUSYQ zPx3hMr6Vv-Yq+jhB=tqt)iP7J4)s{muh>XH^r5)4X9HYRJOv~dkIyAKg`?pEqt3W@ z9vN+4$YOWd+zyb6#*_N!Sx@)xc}BQuSp9%*VOb9Q!?$fSXiyl{d7}MePPDEGLyQnA zJx=RQwv=G|i>|JS9I?+ArBa{h>kv&Sg5x_QEe3$ydxRuSLcY1PcY4OEZI<6XpZ)E% zptn5Ej><4GU(@xQi2Um|UM`vapKYHav3I02G_$M77PJ$y{}*Zgb^)%6O+My1$@c8+ zyr)C29mR8LGG1h4YE53h)U!S2df8Tgnc6#@+9z`PWA1r ;?Nuf>KkWP%nsU35O^BOZM3 zC;FuSVNcx4Z@Am3+LS*}F>2CbM9qDctH 4E-j$MdRF_$D4|L)H$j%OR?I &4I04&%j)RKmUp&Wb95V73tE$aLSOR1lL7}krTyAi8BwlufFn8_P z;@}nYecsjd6pEwWi`bJ+4L^J*I)|^#W;_%7l4%mFF30GpUG6)tR#?BQQWRHID~`Bn z!sTsvwp?5czrl^VJ#cQ&RJRCYy;M)PMx0SM{B6 &|JieSxMz zHhFKAM=`$ms>(RbmIq$K9ez-K5Dt$QI6 *ljcK^U=n*w z F8Hj?U@*nL?*o2l#K>fhuo%pAah4KdDK0xap+4sgEH? z-lDdFNCZT*f1{w;!~_ydQNxV8op^2hDj331ON!D1715VsSmu; l&4}+gCnp`A$DGT}HgNL|=qZvYnN$ *f8;&)k*+0JUQ!96Gw3)>yo5cG6_Z)HT*7? zucvUaDqnpBg6tPi0gojvZ%~0C+=d6k-dA751l4tpT*&ZiQ8r@pnVfPTp7OdrG%h67 z^YMayEcBg>NJVd^d5_-MK5urZmJ|Cz3M=gCc=AfRMd|J0ZprdcJ*l2z&JU0l(*ku{ ztsze6qRBDO2Wc<1eKW{b4Sg^o +U}XW71NJ>UVIIgx}1QtmR7Gi0*^qS;_Z&*likYtGYg|eqq{2` zjR#-cEi|N7BH$WX T*gJEWXEKKp3*v;UJgimW&R z(QC8%#6ItX^`vTwew>4Tc?#r}x3KL1EZnCA@^`<|B2Adv$x}=ce>vIxT5xb%biI4Q zWNe9VicihW{7P*4M)UZ6(8F5McQz^Z>?F%-j;`Y4%E>UeUiv86*h{pX?p<)B34;!n zyChWsl5tyHF)XK_2AIb2z;tq@nH;B;9A^@j6@`^YZHZUt3mIi~(WIAkN7KF2Q$|e3 z8|Tu3Tvf6*lyf`|tBbt93ZPC9WBABy>ERB8tEq5d+x@rO%$;Q_1^>~iL8R4&9?`mK z lYO#)+bv@jYU6TtTLp6bxW zD%*`$182A(`N?<{0SGS{^P{~tw|&KpB;SyK4+(3VLH9cb5uJE5A>t~7u_@yruOei& zxWiftaZt>uIoMa1>{;5F^otFRy%Mj TxT0g-zdasQ)Z<9BWOCZ6~Tfom#)wHoIVbW{1{Vs%j^FSWg&aDX1*3WF!$ zbF>~1-+=ej5e5D>pYLLN6n!)*rJq_j`lhv9-%ae30AB+=mFCetM@OQO6Q8W?yRnIe ziRMLS71;Y67%9Iw1}2|bM=T>ISKnqXq{SZ&eDGre%=HYF_>x>_&|-&t-`)F(O*S{h zm=wVqwkp#Ip?B8j*aM!-joB`ZIvixY$4+j#$He+rJAe1b &y5H+kQs&7(>cC zKvv`7)YxjHNP-(0>7Ca;zFQ40*2?=ye%Nh_w@}YN`u!0J%QJzwOgCekoDFrHc0*;I zy`MZ<9j3wrDPu++ISHb^X+)CmB)J*LBfYo9xBqJb@(2JT7A`+ONG~rCT$Opt@MW?* zZ=zk<6MN2tIuE$)GX(uBcb|#2%@a!UqC1f*qx0_9*9UTc7dINf*+2J8UK24KFuULN zdHvXpiY EmGzzf@48@ z^wB#yGO6dYM;h~gva0`ls14G<$qjB63nc=!oWa;^ROi*AJ8tcYvA-MKDIi>%MOJXX zM$CWKpuQ_{H2q_T WH_+&y6ZFafRFv>@3LFI=Z+`| zC=-R$g7#^Ah?jt*!*Hf-H6q5pQu0-!{hQM$PiOCqL}wP8PGxSh@T_)Q-zOZW{@ChQ zc1wpV8oRrIJ)6M`k0f3-nq8~^P7i#8B0N9ol2ngQIO7I)WWa6QnST%B4WYz$->ffe z79TfJp8ow@$deRmWd2DjMfo`5od(?477LVx)X3|VOQ!wIFY#$U&b7Zc{m~(v z(S}EX-1~{5EQI4fgOPs@M>|$>S~)kc*&AE@;ayWk;x4c5H*-KPc4eY_wz+j#0Jtzy z2x&<`lq%Ofu4(!k);m3=%uim-sbZ6OgCA?i>8B+B{T0ZLmtFerQ9gLqlHe*mk}#}L z0^pNBjR|~2DxkKvjm^7R1~@@hX|H;4!^VI9noS1gap^7!02~ESuO1v8^jAZ}7k;rb zx C z052Md{J5_0*Dfizaj>p}etR$;K_t9K{CC#{)Z(AL{KJ=j^yMEr`r|AD|M4&X_}zcv z(Z7u0pV;_MZ2bRVY|J(#u<+lRTVAf6nmjd~=G^4vbGW}#;Go*L@Yk5{=9ojp7xM;B zZTsY~j)bSHg<1aI07`8&4Q&xJ`MUfbJpQXKGQ}|R7o=WW4xqvBQTZ Q+(c>q{^7NNtLnzLhAVZOXj6lFq#?7bBA{;8Cbe4TA^p*cyqP_fx5xCj`6 z$7Xes1BdcyL)NL-%|e5C#ZEzwR6QZLf6{%i;uA;U@@HijI_GzS4@aavVRNB9-2QNt z>5DXg_-4;LJcOLMeCLNuWnO33L5KDsB-`A^jBi*1THtEsgIBP-2}BJY@=E#|d)2T$ zGAh`P&1yibl)cV&sO9x)lMl??e|EH|zj6{A@6)gdLyR#nY$KjobQ-#}Hz7NZ$9G`F zM;IXUV9LyT#@%6MWVyZ!<* X;wctkU5$^^4(iKI%ww4oUgp-%CsASHJX)Z z68-wZ)}hVxL;moX{n{&>ixG#4YX&bo6;AT+8G-E!fls=>jPdtiuI<#-7PZk8lFdb~ zrU^5*BK&T ?GV&KNw@`63!DB<(bt#wswHo>s0EP@LS9C;~8GNDYfEkPtdrz z)na8=((-ZqqK*N3aMSE&jB#A09@7c9zQFw7>T$R-F**Td2q8+@&!KIiqT50BM;pR# zzvSQ}|B5QwL|F8M!pxy3ig8M;cFbzAsTzrej|UwV7*NBh7KA(eqIX(w+f9?IQgZOB zNSO6Z=ou>xuio5;fei}rRN&|Br(>X^p8z1#xLSG)N_v(@H`piKQ_)6VkDe1)@@#k# zNQ+5C*OE%25BGEGx0|ZnNoOs-jnvS*Q{NuhHQC#vaJLi_WgV^&fi4|ikd;$)$D|lv z@F=EfwJ4WQq7I;Z3S}6JQqGw(hC#9iP+JkvA_8Sc5Q#OSr3c1M$0xQeTdUyifjz~T zY1$npuf0}1C*5zY;;}`0t@GH#^uijQJ5u|u#RuCho$zroX;V}U@p(rFWf 1~ZX+|7{=Eex;mO~gN*^HVamyt2GpqTcB&&uJ3 z%B3Ckn_HtK;qSvMZ7kK}%S`CMsmv*}SuI#c#=Xe7V}_f0W55ka(WsDuIq8FW8paL7 z?XP!~M#At3s#(7khjF6LgW#q48quhVEFrdn#G%!U0Oypq7s`~CzhIhA&yP(V%UatE z h(`Aky?4n z6@d gfdx>js|noy=r%71_RvU73r z! 6TtZ!H-67;`PGHclDeb|mR@h+}+-Q8Za^s{|Ll5)hSmp56 z@Gtt|$tDW^Ba2?^76}{gV13#m+q0###~skIb7yJD4`iUj4({T`_*hNo%w!2zja{FM z@!np>+>d)uV>1IR&jJ%L@PA@Z={p_YfI)GG_?=`eUxK4;%O-)H%*$Arm%^DFVWNec z3+|3&j?v_H=|1%Bbzj!}Fx{TM&u*k!zq6b8_L1d*gVLL^DeFUwAx~eU2W!*3JsZo4 zv*}6K1GPrtPq%SpyBo!`PUTVWo)tXT6%Uy;oo1TN!LaqjpxDI3t+EJ-`(x|Fex4?? z^fyLlUsZG%FHPxgT;RJ(HD{yvlc(%PM-U9sKo_Py;rOxY`qknY=e3FjO!r*kh^B^m zG6uN~uFW=tUM9AE{B&p a74YSt+A#s&+z4y8~EaC+_&YJHDo!uQ<=cvukpx8>>9Cj=HzUl)zk)g6tlD8A# zVTAc;QMip`Rp nt5g{a`49U>w*nI npq9Z8swIT1LB^rXK& z< )_5Jg%RsOZXAW1`CgpT9L{9nLrDYCah02Mlm=&_l2GN2 zCuyd{!ldU^&%dmH`OtDH*el#tlIJXc3VnIRmUgJcM%Nxg(qsgKhJrs_T)Tng 2|beefiWFdLXBw-`Sei`clOnh$@^ZBd{auirisn)_AC87_I!AI$N-$k7wKKz zrpF(2syyXk)~6KVeG%1qzjI7j!NBS+?vsCdO4(j)Gxz=H?>jj+A8ZDlHz5~dDF1Rv zo1AK(x<=RF!kwa=vb7GSR?ElmmBgDhJC;x1rLehkDTEmf*Jz$U%Pk_N&2;D^K490& z_@<2aQYXbG#NNIv-}UbM$$fJ#u)AvtUVRg^mnMyaOcsk19cYl%+#DLq42PSm-3srAGPz2(WNK$(IcakqffVB#5 %E8Qkd7L~@$>B+6Y&zOP0Frw*dPEj>}lKEuZ1f7-|--{`UQ4crYddlt}X0kIr1 zR(17OoymulbAIhtHGSc>8t&dkao}1_2+O2rE4?$VC-{e2jq7Bb-Ka3nlGfa-u}#9# zod+RHTmC!!jpptPo+_(wt733Csi=%dwcyhr7UP{FOj1xIqULB;G s;zLkDHP}w6-?7M!7iM6vycX9V$K2W^2+>{u R?MGoOV Qh$Ss6r-xys%%yyyyl0AZlgCEqWs>gi90y7rT%;)K6>M3d;I4Xb_TVJYDUfQ zh01Z4 ~Uk#f&JatiHn)j6^=(V7BcxGp4c}Na*rHD zKD18N4!WQ8`fqS23aMw!o~M>Nd+oaT8rl(gH#sjPf6=6djO2mSm)s`NIEFJ_% YR??1?s=eCcU6+z#kAhz>yO*S^ z*||) W9vSajA_$sZrD^22BmmfLR=jst@GQr@8 z-NEa`x+Ei#OHoSY_ULl${oyW0;p@wD)LOz*en4y=GpsUJuw#20q ze Tp>crOA5>p#5Ls!_TPF}fLVe*=NR>m!v;R`RRkG4R|%^R fkW#>@h~D^2hj(b_6k2Div8 z!r}FdOD4Aa-|_}JC(ss4m}kw-?@JO_pAOE~aKxAx$};A6m|kWntQSt}Td~*!r_CQ& z92G2AATVR{_|D=<$6hP+T08$-8L4hTi>a?_1qaDiX$n!B2VCTH={KITc3L~LB3|(G zc Ot?^93{@KHVMQzp9c zPW@C;pJuW!VL{@!Gw6)Q-FeO-ljdOf_@nBNZ*?L3JlwCW)VWJW_Mb5b|HS4pR}= zKKRtx?lX(u-fLqz{5j*1q^i{AvI=uZO>zSIRIbv$S?Vlt#kz#C+Pq8onZAT8n-){x zHnyvcK5{rJIDd6*bYN<4--YANwvX%gopT-uvk4OIej&E0Gnf5FQ@#4Xro}x{RfOy6 zvOI`l5tIr(cZ@VLkM3;I2){Pp+zdzI`kyYItOcU=-t!rCMfamw @^xkFTDfVPzjySk&t73Lut z aAeV#h4pb-;6m`ljVljDL47;xA zN`x&_V(Lcv)>DnEDCv<`EZS-!i_orT`@Yl8UYk2hk7TK(xI$WDySP7y5+U$_%51PK zYeAS&S>%LH1ydolOmgXgP$IHB|BDdnLPwb}qL^7gY%TrL(YH2onSIW}{QQ}=o4??q zd=sCe1C8dT5&xM??=qLghr#)6k1(r|l|oj%Gu>AhF{8S0<9ds~(T3I6DYie~_>!#W z_ZR+mNX}D#AN(xuz)L4@7RB|!wc$#ZJE2GH`$D56_@-<@%jli(=*l(w`1;*1ZI@$$ zytF#HGMOpg!WH>P)XjZxRf!yOeMb8gIhbF!(xKL@nZ5S)r>e7L94XaYz9XqFp-}8K zCo?ElI5EiEa3|YFsa-HS=}VaZd>=p2NUXcM2 {~jxrwQHwe7(xVTCm;?e*`~ zf6Q}!au2&zUiO#>TmRDdX8GhdvgS-7)aH83FJqICPltsOB(OYuV!|p~iw!NdX0M=Z zCrP2zPYm6*0wOha$u=}Sr&27F%;B(!XKTBi{rc&{8XNh9-QBKwi@Dmvt-+wfZ=98Z zGZPY&xUa?%67 !&-f@wa#JJT*REU9KCx zWbvAY2#QgtqAH_xv4$z0`usWYiH61N5)jo-1@c%k`!BU_zp(xu(D}2LkE$5b;Nr$X zY9vqZF6P?m1iOdRb3gd7?N-kU4{4Wgs1GIqzetep;F64(t9e>DxocrEE#??`m&vJ- zn(HJ7@8_hbm&_+kW`A}EL6E}@A!^vaX)mG5xqMAm>OSksi KZejmFX+25s*UR58{<*c!O!Dg<#4#}6_uUmn9CK{m)1(U`C`BxgATSmeZ z=kkr^M{PN)kE4Q<#n`O62xCkr7H|XfRBP%DmndJwUmSAhl2@ey1n9wa0kubmBS*Uy z lJlk2j_>QLV;Q1hgC0Gt(K?z*M5$nx?)(qpN2vCKet@E>{2{ESnqP# z70+t~Cvp;8CPKWh6u|dCf^RnAYBuLdC5qL0rc}m5QJd4j7HPE_?d77V;XX+kYm?W9 z;lijyno?{t=dYhBGHM$~T}RtYzrXlBvkvEf5Tjahrl60@=>KBx&Euht+P`t8sb;bb z%FfuOM3QV_5JQBtkn9qYeP0JzBT_=ylT!BVWZ$x6DO>g>OZIKXI_5c}y1(~*f1l^| ze1HG^e$Vs!_D>_`^Eu~S+qtgmT<_~hU9_LWoOxGtd6rUb*x^!bk_b&Pld %kr|ZM4x^ziL Xyyu$4`i z>d9;h$K&*rUh)JhTe-MB&xbJbna)0IiirvnYkAfjvP`x H#A^r&A1$ZJSakNqp-RoF-AWs{tmF!2}2npA(51lSctA-2Ri zjOS1JsP-Q}V)WVZ6U4NQ5kB>Z_ucIi4gKL?{N4Pe#U_xp*9X>lpNNXE_c=e9WbJS1 zS-4V 0smSL*P+g6v-+3qwn)sW>( zA!82X?Ur_Y{D+p(BvV=wDqE$x4l0%sjxK)Ul =Pc|$dCoONg@69) z{J+f=%m%~}ew;u6A4gAbr>K1b?Y|qnpgoQ ~O-BMUM*w0}*lC@#|1qodiN^UuV<_kdcx zC#B6*4_M~Dh8+&=`ub1h6VCualUPsi`c^+ zeZK=xz-FeuZ2lu*r~k6~uQn4iC4aS<=w s& znxx01vzsr|6?VUxZtP;1An8G1tOw!~0w=HCgl3dXz_RPycfnpU^NN1|V&xxCuTUw; zzuaYG>+Pn^tv}Mk4uL}>a%R(pRFxakX`yr1Z{O)6Vv7G@i;16U*3zIH{imny#bfK1 z7NQBn@w}Wo8J}M4 ljxrKc`@lyn6m?VAV&<2abI&*iTwEE4G~ |88l>Hr7}51H~x za^+X^&)CdbREWjiDOncbe?B9Nv7nefeZ{hy;q$xHUb|xubpJ;8k{Rmj%~(+Ru6|f0 zZ>DJKMXZ)5eimjQ=Smgu)(C4t$xvhmi6F$wlOk<|jy!u?{sw)=;p<-({QrRkYfqw9 zg)FPioV^9G45%}H+PS+7O%spKzUUmpR<7Qidb+n_{xe=GcW_Tkrd6|R`?Nx^{Yjv^ zpxEDR4(R^-`a4rop!wB>qx7dhlXwsJrxFW~^5}i|MPEz}7HocrQdRY4LYie*0yFU_ zRO_WAcy4}jFO6Kkg9$mt01psUu(;0tRKDhG{z=`jN*AH(KbU^o`TcJivXzwpd_Pu> zdqgEu>b>5=SK>PAK8xF#O~!1Llo6`lr;*cF5-)}m8+Dt)?eA b0k{*kb>go zyBD^%7YjOVh{;U4=6-+=#!WVcDSWWXWeax7p`M!RV2Wcxu2d5amVSPF=UTj 1ec%Swd*^sP|J^G8Z_|XH*`{{u?6?(mGBOo zV}Sobn2)tAvH9WV?KP5@6Z!JABiWkK3{;L6-;p==3=U GkCW N~9Z4-L~iX^DMa?s=X$qKDlh3yAGX_et-y A+w_I;8&wwHdAFfSQ*obXc?|1P+f z4)mE({g}}d9%=0WRd>vM9>c3O 1mIlH=ac56Pr zM0V>O@%JlJTz1UiB@+VKm7NbwopJN|w`ao-Z~Q~mLOXViPK!?~C=9g;HPh=~j!O1F ze^4ZX-4)GCt<39}+6SpLrZNwLjTcM7sn96R6$YKh!`r18uK+{C$T)$e-n1|C?a93c z(jHz_CmuA8ogyZC*(g_}O&%s#UJ;>Lj})b5&x@}arJ5gMz2q`=C{e~(xyuvkAoIT^ zmQ>mt{3-AST(!S>mRTTiC68B>n6$@Z#AIeVWmT?=*?rooX{-bwxB0;(Anp^O3Xic_ zwRDA**<3xkSUcdXDcGb3x6p2HPc+p=@eaM50*$qYxxi&$mB^k`@4PJLJa??U5#fA0 zYmfavE49|}5V`Ozi`>fV9D0~eQf(q#^FIT++EynyM=D#Hilu)6!);C+4%fZ6)x1r? zx5Y4sR?{mvyWD#6aI|K(FcvP3^g%s<^QwRm<)!z|BQe0r-QAqE0BKNWB-L&$a7~=v zc-gLmt15*7PC*%R{c2OQ6|sZiBAw(xBQ~VvtAVr&-*}TE#1lJ*-{UekMNcy3iTK&o zVIUp7BSF;dsco1kr_9sMklDhs;g` 5DuM>bp0XK2@Em`2+`8({>v&0+Flf^% z)oW$ZpCdczdseCL)d?(NWP5 f^dBGFu(zV~DUqUpbqJbtzW9M4?E9cZ;GTRb?e#%t;|Y~$I4 z-ltsU!ucGx2UGM(pJ}nnWvh~{%I?2D#^Z_od_#I^t6V!Wsj2yEq-1yit~rF9`m;Jw z#c?%ca3i7W!Romz< YdV^-#D z;i*~rn1FBIJ-N#Ei=J5V!qXRV6hu{*l&O>H_e5^bTm@6Uy30bOytS9!ns i%bsEdOd0UTmmm`=h!K5>h(0+9vBw^$(GZTMTyCnm1NMnSOw{9Do zg}z#<9m!?d)u-{>))cLz6;<12msNT^v>tP|Byw_SJ1)(mfl5YuU(-}kez4R|6rxBy zuqUT~lZNrp_qLUJq4Lt|wJSVX 2{5N`i+`EZ<~8BQzQ+MQj~%5UFm76~jKtyVX=01hu~T7!$_QM1(=&l=0R}@% z&w;g)eA*+ bYE )NBqv1Y!eXVi( z1rOVQ^2mRA<`Pz3L`VM4MHn}=_`)L&{*cE)O}PSVbAKH1fBpP&2iVyE8R;VlW1~Y0 zUio@Ihww=a_wNq+rK|8l{C;r7k#ILtvNNha-GN@Fxnc*d0X^EHKH#UohiK=22;I3y z%b-5#J`$ Dk% zxY$m$sS{SC+r9Y;$pE+dsdf?ZnX}8v`11+*)!Nm&s+Twa_1VAQ|8Gp6h~)8;H-mf} z9n&rdS*i%j_T3EM$qy22j}&!+r5X8TrIKx!Qm}e-f~$)~oq5jyWdOz8bxs}#W_{Lb zgKP=vMa4_GhBIik-0Nr&S*55dwqWo)Wu;JbU%LZ7BMxcxpvQv%nv>ixf9;Q=Aq@}U zR-31KP1&QW=6?zrhdi}v@ga$1L!q*P8|G&NJx^1fnr;f) j}&N*2I_A z_rK93QI%1vpfF(ROT5?+F_`cM_?Vl4Qm)Gn4XeD$@WexU; t*Th+E0`)6<)<&;MkKFW%nE)Xpsij@?ZW)zInsV5*@< z$Ek`-Y{!T}nYtzCE`vJBm9~BXxA_#ttCCvEzB{R!H? toTrsJSQt}rGI8Q^< zIC1_IR2 qqi{T z-gebWU_^R;FD2VK`{<2^JH7z8+dfVbq;t);wK{wJxQjxZFOtqQTTF)Yg#yKRrrU7B zuLu@*p2md! NllD@pk&Z=P^>jXtBIDwSiA6>-ue7tTtvnnUN`J*; zT)|Z^d8Q+-CF(22B4*p&uyVyD`@Iew1s{poaADDF%0m9DGUtGv=ze`8WDOK+@FWis z7S3f ?VydP%2Wo!N{u`)V8FzV_0L9h=04*fd1IY}S5;8G$q zIcfm~vFLJ!`qGZcTIG;iB$$4bFRdKKnP&<@koHJ}dq1_0kj?}jJJmu8aU?FprO;ex zLds)tVv%zUJJAj!n27DCkBKovEJKI{a$h1yZK={!)zTC@M|v*egM{9HdN4b?B+kkR z&zGWRNnTy1A|z6wg*tzjg*npEC?%@;($<#kGkRNt;fk;v d*p8_+;BprrYi<^-bnnJQE+8+SSQx`W{CERy4_kbBO;>yd!tuYV%y$g zPNei`CjFHpZ_B!ua5Sb_`ROMXYS3C!9je;W-2nj$`X?!1Cm|I9#iU$h=8>0K^fSuC zCKB#Wj|6UaSJ3D(!E?fM$pbUPmJ1SC3Rb=0Xr;E^o9j;kh^@(oK>4B#m8^(_$$j5% zOLNkc`Ne~8FY}QMo;=qUEO~lL=`1r?%Oxk?whLfw7i =!JR-lCivb6_1>(wsnBb+ zmpQ47pxd4N6VpQK@hh6~uYY`d1~iA~+U{4N>#5hSulv=AL*6bc+qtrrlI>-ZnYbRW z^O?Zg5^%O9B~!scsKr>^Xym2R?M|7WbFtmsQ%u4NDb1|#WlD&cOUE9U*4v{>@+WvA zx|M*;SwDWJp$Z5UbMdDtGhopr#g^lcDOlVEntgiSa&v5CQo-1o)N>;Ob|0Yp21h@+ z7X;ETY75;M-m}B3IHT)cT&Irdii$#n5f)kD`7RR!XhZAO>MA>&n|#OK>ESpA_!J$L zl5Q{wpZ|h|9QOh>*dpJ-sk0S)ck(0Xu0TjFp=ylqiAKB)Wr8 eOua? z?Hrr)#D-N7#N~vzYOA?8amztzVFUw1YuK2y{XOn&-2kT2QWIV(p}YGS!^P5F$>2i8 zP`3@Z9cNr;IGqdF0~al>z1;!)*=e^RC57!j_mu!IQpT?XlnFMogz&W?GnXyFo2~oQ z9pVTKV}z~i;RjRjiNF#<$*T9!Wt-s2v933z4`$<;mnkDexN61j?pH|Xn8 Fd7?NpS<<3D%D{=n$Y-wSMb;oNa)lGhLWn%&nuI7sRsZ;WtR4Zkm$rr2 z#!!WsS6ftLKrT)7Xr$n3=kooK%98O6<@($!38&Vt=a{d!+j%$0P`F=;N#1xFl~*EN zvB!?1X)BOY(Zgu-M!XH}fcx@_wmGI!wtnx{k_Bw@dD4=X0Hh>=^&E#$B3R|beE()1 z!+zLzk@|@_|9*Y1 UQ!`QP7n-`l#XYmw7xz9lz*dY(FVJ|=p 1@lf8>Ud@R5{n3VaEYJk5iaA_KIhyUE+E1w=~Aq3{t2@DVad zVKCkrxUbO~Q;<6A#Q+uUdBB+-m8 (tb5nlO88pAdpd1N=0p3Fbh0=~gQF(3@3hyY1PdkG#=ec=OgTN<+@z+z( zaNu#B=N11s&k05qlvXWBrM&t-wLsy}2P6=GxE+LD=TlJXjpN|y7m{F1=V#9}6~GFD z&i@3Ri(y9G473SO&eUMk*rfFDn#a?BSeW~fY}EU={?NG!{HLoCE(l)|C5R{qX)W-s z5CR7EUGE=(r?0XC-bkvbWN?5LD8xA(B{c;E35Tnfm&5EJDXN`cA7(rPbSeN&m9d K9P(t6bY9fldrE4aKT`7xyExna^UIo2(Y^)zTxh93OLQ7R_^aB3<%N$< UIQ|m7bIeUFak2NLfL(zP!uTCc~W%}XjuPwr}-4{v=$mz6Ll?` z2f&l)M)2y()i98TLrwjk=LmvP=e`zPWS&p?r~O(LFbj|on7JC|lw<7dae(pujaCej z&RyW?_gppmntc3lQSO?33)u4 s6>WMjs?*OquPB@~0iEao>jg5@BGLh~ z02z;y0_tiWK_Jus<7+2H$rB}sPxk;Tk?}k_fC;RCC@_fgz$>kd8-J7eSKR(viyM~{ zPz?xBHYji)U@#uvDE6D;bwM@iKwl((|MvG6lxS;|8LlO)v3ETsQIbDYzJGr9S6J2{ zhtPRW0#cpjh*O8J{QdAn@Nid_VA*><& Uey0wfCM2vDvI~{P5KAw{753KZ|(e*7C@ZjQ4I&_UKC_>tnkK!J;ozNYTCKx (y1XPxhJgI?bch?mrHaGNJ=W7?%< z)RVbx^QD;iu;`EPEhY-<+*oOk?9D9m_R^g}D+l4zytBKwpaL{C%6S=*5}6#nQHa>D ziRYJiYXM$~ig}x!15MAecD;#>I%znG5uPLC^{obfq6p1W+$QbwurIvtk#Ee-#PSul z?bQj~@<>H)#=ZyDN<&Nb*6@_)oMN&m+~OrtMidvBFWO*%=u!hqC@BB&HVN=WZ!(&; zwlcP7YLW{lJvrC6#Kl#sj|!x}?db$i`-7uko5Zd?!H+pauEg_HMshyY-Fn~r #3 z<;tefC_AUNh3+YcPk;|$c`SF-7IA-8Fl6}Xw?rw|V$iGD%hkMgv?K96TP4**h|2Ps zU`! } zckX@S6tCkWPKTel3gs*-STgDuY3?%@XMQ*lSt}Y5x#nT+Fi}8|tkfgdQ7IvS_$+tl zLyg?>F)nC-OaexJax8Tf++X-`Yh|pOqJyy2b#E1uEhJG^R$dy~t2A(F%T3mWKnW$h z+?2*72QoX(<`GI{4e|-vUq>;NG6qLk?3GX(`*so) zFvllz5a8#_K zSLqOO#2f^#cT*6G$8Vs;+HC90t9J>o-I Oa{9C2ym|5H+maj)%X2X{lOZZ)h2(Z;h=Wk- JU?a>7EDhUK~)kK@AD{jeS@$e9Jxj z0?pNh_?;-NN_=GZW!VAQ-F_-A6iN#0qDv>9CqICc(HDI%PT-F9;G7fOtgkq+Pap)# z?i+iqj@OE<(1i$J>pqR!$9`wX2O2Q)y^ZCr^q`${>dA;iD{j4_W)K$|42~6bP!Xhg z(T?nwgkB;ov1$0z*&C+)Pw)z!*k?%SE-+JbopIFcT~APp_ezIq{3X@PoQE{fVNnPX zKHbWP)Le31_rzhhruOX?OghpeIhbaG7t3u bzMP+BCiD z;o4mKBVmplb!e`^q}$0G%WHb48+)SGT(51^X9pi>qdIPWCfbmf$P4qbbm?z*sApOa zsBa`!E092lu8*+%J}ZO_&>$r28+hyDMx-Y<+VE@~b_Xq+RM2@g$n_SBe#lO;<7VWn zJimb_O+?oPS(BiVC^`vjl2kHCjeU@1ON-gDkG5=`vh|e0MY<*0L7`bhL-^scdnWLk z5V85#&~cg9geTkQ{nMn#yf!9IPevPRs)9K;NtdTzoOKh7o-E> kNp~ch+}b5zq#44p|H6^=HpSp}75WmHa=?!I>b4 zQXb8X%u6s1u$TVRw)z8jc%M@n^AS4HU~7C`hoJlCt??wyHsQdY)FJJ>kk&3esg3u$ zlf=FFpPomh@PH-8T%=zl<1&`J4uk*4;KX?Vua*Js->3=)=iq@f%_!6*(wVY{_>d|g z;3OMXZ3@N%H@Dd53YFhWprQA_BF|r9ZXo$gPU_bJjhlUb)Mz^$xS}yJ!Q;HNMm}nE zz7rh48CCK(TGNs@f25q+AdGl=&DUM Kg zCTW0m#)4(&=(738tNHE-gCT (;gH4#=J`Gi;0W3y`Bc!=Kumk2rBEB998L*?CfllGF;z$uTB! zgrf)hSyN|3*-m2rcSVikRp-`xn)!4d2CJRod*=B<^Np|Pe gOBtadb-ZEs8$#r4fXrn=RrJMI(~~ zy$k7z5k5#TyDy!(n4U1v#+H%*Fgv)YoV5<@XsBYwbx4onN$TTn(5&9J)}38f&IZAc zcrsT)M?eqRt{u(xl8GtuT1tX_BDKT)=&Xx!+Bvao30c!ak5bcR-qWi-cy7fHQWIJZ z@`GTt)Q`_UhiP`I#EH)t5?}aXCr0lxVSl6Zu=?SJ6FotKe)E9)G$SF)dvS!k$n;6V zr_4T8p<{jPOO4%Et9!yurMDCWfeBJblUm<_9Syk>(gMwxy?2vkn+no5Z`SLTEbUob z>ArEl!Xs+(dTqJk)`%)O56C*P84qWwH{DuDrx&u?!A)AE8_qXA{`%t%ND!t5CHWQ$ z1VFBEHrxZNy>N!IL0RYRvEe}M?}{hBX6$@#=2BxAz2Vq9_D1E?qUz6TFG_X|dOSEc zretPP%sk(iwaJ|%2RL#hra|EjjOT+=yE)*<1Fl1kh>rcPqWZqCapvvZ9GmU-L@=_r zGg%h1!Pqpwb KNtn2By8rsZ_4UexB*}%w9fjsbKm!DE z1IpXku?AtWMP8ovg OmnQ$YiDmrkCPliK70>AVEvspH@_ryEC#T)7uR z7hTy4!9BKL!o3%V?aR1~Uw+-=Mc^Vuo$rXAnK!#-7GlK%Jg2ko sS z&U cOXb4lUiZHoYD{8*6o|D#dkw#(LzxzUbZua&{T1=({kK(P`34 zxYW`{s{7dnx4-mbF0x|-! q?RKZF NvT;q1SWm@JqpE^HrGBN;r)Mtt9{fKY zr!QsBE(m^f4Fct4BQn4=uy$mc-o8Xr=N`M^-g-y0$fL4w<^tE)^@TO+vtll8^j+Vp zOJ?-HjvbivAu;=FcGjnV=Dz(B?(se}wipp7hk6n f%To_Z0Z%YvQm3yR*@9?f6G-;GCd#a#%J0VIk ?Z8@&FTRn{Bpm zpoJ;IKB4EQmnqB2`a-L+lf-yJ`@Ui8;L?M8K~d~q;$m+Kl{pgTwi$QceiE5lyq+|e zz{3dVcRky?{@GeK&A`F*ha0RN97(NGan+tHM$`A0lX LqBhm6u)($E5JRc-2S;nEnfb%Rh)`P0q}uP_1yk`mqq-{A9f zC%4-4TLa56uag|K{h6ocwVw=M<1c1^H^Y&g*ExCZi&&3m(SEj#9ok*$5&P|hgV2rd zUYjcq?Or7(_LSMX(k}N`A7F{VwOq50@xkC6Z)f*=d7h8nP}e>3W(`pe{DEV5KqmIb znd-zba91 xRg_o}uNaX9dl2YEIuwXpxup-PrU-(` 3lVW=d(Nblq7zeqRSL-sXq ^%qlE}oYy=9kHe-^ prw%%ElGXL+8kXqE25p_H;7Z-3!w;mP(4uq93 Pfaz0*W=~6bk!oE^De`z3W&0t@ zt~e5qB0D_bnfGTg8r;u`j>fw84n@J`8^sC8qe^OxjMxjDLQTFXRmjYf01W7$HO6+? z&93d@EGM^1-QpDozMuJ3oq{)28`YoKf IgNLoRU v7T%JUFu8GGD%y>vtY zne&*jhVU6JG3@y*EpXwNJE8Z|{)#|y&s06da{KW2=4;utUv-(kFF!Qh!pNxzch<$} zSEsf(Vp}8$Zx%9eIqLHJQU*AkVWyK!%d%ojcNO&1!D4+5%#RrfR2R6scOL@>%L{|w zo>e5r7tzXD?L_E#UW_n1WVu6!JvPp=)gx&SR^PpLATF_|xjp)9^>XKv7Y;r_Q7QH> zIQW)`q8mwAiwIbSTr#UwEz|6DKeE&tXrw~@wgEH{{DBJQ!yc&SyUcDA$zW?MOBT7Y za&L9TXcc2U=8nX>ViPJ%r=$jb)ZWwU*bLKDsy+$mf=WmkuWqb~trbkw({je%C=CrR zVU6kedevG>P%Cn>(qrZ#4(k_9wv;Ai+(BNldXFDm;O7%7Gu`mb+{tBqCYJ)elW4E< zrGnlS+)>{wfBRKi!-eFUaI%G$cRD|d%^pof%ND=Mnmq>&Grdpaa #2L~1=dtCE_N0t;>(dqJr!Xbu6`5YL6vx)_+r!P z!A8ODNCO8~Y@5S;1)mnL_v6uY(5exaT1L~xcljX0AcD S@m%07^+Nf>^xLhp|` z>($Xlhd+AhKJO+tjJ@5}A+G%02p@K*xj~|Rk9T{kn&3TT=u(U Ng;jy~4F#&tf_wc|qCHxsBckk{`@b*^ zr_H#d!SgzvXd}ks;RgrNACn@_({$icUu~bK;qKrx392c9_AtOD=&v0pzVw{JEUrE3 z;=ktZWQ0!K4fj}-zaTK|t? zXS)WC&oOao8)Kl4DOH#k@#6=vy-P=#DiajrQKBpPimGQYuQ{($52fD6k zQ^(06$0sAy_V+>--IwUIG5b?UTUqB>Jtz8P&vuS!`n7@WRJL>_`S+vd;Fi}}9WQA% z>jB1{l~>#N6%1zY%iM76^$vsRoTh4zH(a<|Per&ma1Sk(j%LU6VGcHuL7X%(=lH?g zb!pQJUDvB(v*<64``9q}$*OF25q`GcOZ_3g=QVW Z-B+N<*Hqg{dD94s3ll> zbWT=-@$S%#4n}l)`+wMJ(DimezVs29P@O4X8>P#(Lv;@swnvI)KWrznnM4a2tNcW$ zT?qG45#zU24X?&bc3GPo4D1CyY&|;K8~-zsp-HgEl=;?T8%ye_`LTeCxbof0)5Jgu zKC2ub9eZxqG{M>~XQeU-CuEiNk)uSnFo*5uKy%1TUTs4XiOkRf(bxBu1`Mxw;BG~W zWPA7&O?+6<@e$^#O;*r$- Uz-E9eEqlCm0QOV^i)@e2c94 Oa#y+kQ+iP5J+~ywTlFfKA0Iozs{e^idT-gVW`(df$9XV!cbT7l{@~bC2jL~z zdT%F(rCIt4lv-$KGReU}ey41?hIo(=|E6jSX8E# znyHKk4Q|aV$-MLDUNS~a;$S|&VytkBfQvPM+mrYva8 ox8qgOX|YrKnVca;o%2 zF$Q?qi`F&7Qw7wEs65jxq0bKL_xH)h3S16M5;krH3 TG@Pz-%a|6YuLP6nc;{}=v5Y|jt;BR8BHra z3qtehWc$>@<2@f{v>u$fO~^iA^SuA5S6pQ8 D^PAGZ9dF)re6vUt2|SHGav~HrccKf+VhZ z&-9qK=)~-Ehy7mo^;W5iT3DT>(t*(NUX{Cx%zd6Y==%+KDh2|JJ3BDsbJ&IccRKZJ zj^X0{mh+)j53L_h$2xRtzuHPtC0ow-xRYIFHTCj^ZEIsg(%t362St}344QKHblojj z3g3w;XKVIhmz;0Tj?%8)P9Dj2b*4A$kcqyq1wzL!JE)ro3prGFR2PKO8 eZQ2J~_ZaMvv4 05~EKE8d z*y@W)0I7upYBY*H9+e~f)YFUMDdF{7ylwtaUjeP|8&c*yPI(x-UbnKnRjgTgK(#qr zd&1Pp95}+)>k4AUca`d7mJd#)rV%38(j-J^Oje8~%fE5DSZ!rhAn*6KWlh)XRuza_ zF~)jyzvgz| <1urB z5ALNFq4A@(A)EaRdV?Ryl@u7+gSp93v5Pqd59trSG`bgF>i^W4;iB~AL+oIw>d@V` zl4#nc0~KG7R2p^!sP{yeH&BD{mlHZLKu;~N%y3BeGNrojWX7H00nxE7tRuI^s{;?_ z(px+kE2=tWq!wi*sXd_+a|IrI3=y5(X(#h#Jk^WtV84pI%d7%EbXY-*{d@XzSD&FZ zK-?$&^Q#z?y(^l8+4Dxiyi~z$p@MZ*Gw#Ks@f*wZW6B}kGZ#PIP5oj2r~rKlS2{8# zU!Qg_;Wn-7?aIQ(vL#5XotgECZCkje&`l_Gl32qQE)IbpbOK2JiRvXKQFb`*y@3iN zljQRw;9hH70@?m5&r@{d`BI(z>Mved#+}}`E8BHtfGhI9pWYW>tj3}c2CKn=o;dy% zHo(ZnNY968;DSw26s >Z~(y}{wUg&J7I)zf-Sz(qtG}~+Upa? zY)&xS4V&AQo1b~oHLP|(i}pB2NDo;rsh>FT@x-|zK-n)HM@>^z2tvLN#G3`{UxaD) zP3yPl-Y~&^cJ#f=YO7aeJxl7ohan>c*E >Ss zMj(43!x2q+F)IQcx=rZ@g{M{6q`@LK->8lud{H+*M&z3PhZT?!ITUR1z33@}aI}(q z)=Fme9*_`o`_6VhErugb)NnGc{J1y%$|&hpRCdPr?D7&a+dYQw8Xg$Ba{NNs*Vi zecuH^>}y4p^*InHrt<0U29ZEt(HNQ9KEB~?ekgYNVff0feN!9(;}l%;ofY2UCBEzR zS_G2AW^EV9W-wk+jK&*`L?I%k$4=!(I-7BqZgG~zIaJAad(?G&i0yNKgEK!jc2khW zRSn4Zh5xmDr>Y>%MiyuYgYsT}JW?Mtvr*m#C>cu~^co8zJk@yIb#Bbe?%sn^Q+x&Y zeVM+zW|2$-6Kwaw%Ks$uHYiU5QGn;=Q#GFRIS*W`vt!X@_{unwlC|bhP~@q$N(KVl zkr8`DarFaF97BC~7@NMqvMt(Gd|SAp%Ji~_Mh#FNsoa8t|AO-Ltv@+s*Q(8I;=Q@O zcSbUs22It3_SS84J*k~Nr75KQf+sfyXbBOt2ScTt1#+0<*6R#xM%Fa**@06}p!DB* zM-cg+bnzp)l{#%Dw-R-hf<5v<{om}LIym2&n}G8-*20*FiC+=B{q!soTs`e~ab84v z7k1_F2vt9<88zDzMjEA({|XpLQF&rXx)QaKDN<3lS^V%T`DgSSm0{IAd37T&DJd%~ z$dnB1kFWGYGw9DiA@;yL*een1g$3k65|ElBAi((7MC)$>gryZ#W*m$Go ?D3Xu)KUBjz@9qS-oLJUX3RwU;F72k7xyTT} TbU|VP| zguv^F%hy)p5M;_Ao)oXVHsj+Jm{$zH36+cjrGi(s$tg%-Kfr=Jr_Asc#MK!tVD;mx ziC?z0_SUi0sMPsCe9|vc;Jbfn0sgOCz<+Jhg`)%d7*%dG!Vo?@JbW>=yWHRvv^SsD zYRBb@3#-hhbLo}e2HAhPC(+yxQan`Gb`kVQ=pzT6=LEB7(RWT3K9jFG zl#8pZIZS-mj~^~H6cJ(TFM8PNV5sqDsD&q$&X~{I=#(P1?7hsk9E=q>S>XHN2|XNT zq<2VGYCc`oROzV(7^N!c9)N}tN6Fq3;kxqf%H4(T@@jQUv4uX}sxLK+OP`5j^;_H# zQ;qkq40;xE64bbA3JAWJLoxgHF?%i?6t1x)YFJ6@Zi&4@FT3@vf0?dd8zW{S`_|J( z7hsw~&ifYDk3hjFMPdsL v!6P} zV1B!M@E9oVW|n-;0|g#iWq!%B#?c?4DusP%&KTNmZVKyjW89}%0zj8AP{+xuKnc9D zV7g{qfKf5J<-Q)|i-Kf};rj6KE9Ic78EY{zrj CBY#c;7yrDrKOJjW44~8)TKmUr z68y!>LgtH%&A<>IGreYdXbB#C=w&R^6cWi0d3zBk_t%qL1~3NRE)Ub{`IXNoShwsi zoH*9?F-SYm^DD_$!-qY5Hp8NmwAl|yQ6c|CCBn}mDvK>YlG8Wp{NsyLpzgPq$SpK} zhqs1pb*RLac*zZhb`NABiiyX22SZUWeWSp6ivHqJ*1{y@QI4)F2oP`s+aQ--dM~4= z?b$~}j|o^W9c_ReSnsx?MP~ES2=$W*DhN-niSGsGL-As^HjgN5zkxv3>T?>!lDQ;b z)zZrc%iV`^=eQK{`H2Uk+)Lp%Ko*|nu&*i9Ac(RsFb1v``XueX{v*cX@g4iwj>IK! zQZ+X60>K0atr-Ww6_#sHw9xclmwi`rU|TEsXnr4X;6y~8#@jlS7NcEnm)biF?SzUS zJE+#rpXv_sp)JPl&(ZTs=b{c}-ZhZvIm;0&=N)Miq#`JxKWW+IM*{r-2QpQEz$Wcc zSP5XBtM-8j g0P8)pVFjwycCRVOX8W)gutm6#Y20z zYq8P!!@?k4@*>*x;lfUom?T=2>yQCwv)Q!6Vm M{L0f}eGE4{--ae+VUGjD9>d?}fq|5Ka*{xHZy @6ph0f{*{5g4K7=!h!~|`HbPfAhfWCl z@fBx70Vl8#r*3iZ0vquZ*a+_c;Iaxr0YrI(YFY7V>YZ_Bhy 3R zcpQSr;C->fK?qJh|7-AimJ1KM -q9E^BCS62awp}xdY(BFNwi)7SH=R zZwg;Hspal)gp%gZfSUOqB58rFpdu`oRk5Y;SFQd}G6-VsYD$0LGt6td`;-BpJFZlE z-VwsHlzy3E566DQS#y_4iPd##ODaWt=^hiN*}WEJ0A|`ioatHmtL>4eK3p>(2k*RW z7UFgkEdOi M zg oag_0DkZQe$QNQOgnp5Jn+kG z>o%!?ho#Ey0Z9_i|CKRxQLHE#EU6Yov`Zlr*rEGVEIY7QHuChnC)-5~hhsq=X(L zg)wj=hK^Hka+twT>_GSAIZsmpeDfxN1wS} ;k;N6yg|23{ldagz+pM#GmjqljBRvS^c?35G(+ zlJ@E2nVxe%J%C`(DaQD4koZjlq;gTrmAU*Fwkt oTc&O5Zb>bl=xU766ukhw8Xut<-`LbHF;K(%;z)B!R|&Rxv%gG^x$H9ta93drC6N zLJq)>BOsL^+q}uCS`E0i4i)#)Rps2&QKfnf4B95G(MWHuFr$15JzxdsPeBiy!Xy$t zO)HfEHmjd<7Xhln2a;8>E6S??+XOp9SC{}E1OaUTsr}$wXxINM#Ica@D|ejjz=2ze zZIH4)dPzICe04Vw=O9G*%Uf99@~da@_c%b@tt5XV!3i)_nKNYqI{&)?NlAt4iV3&! z85t8mBKABIQi{ECKvq%+FOZ$M=)^aG0g1kwv>AVDMo!Uk`Mm-G8?ZQfkgr>{!(I|> z5QGI9(3w@$19Y7TpnmEFnKp6#EKCz{3ONDDfza{w{o!p#>J>mj`VEMOTARi?BJUb% z65jK>_sj5!lKA7*dm}401X(5jC0$-m7!Vj9DEIOs9`~<6zAS)`lq!A0BLKV~@zf16 z9UkyI3>h6JG%F*toC4qgjAO(Bq1mbpT%|q%RReqC`E#-@3N@EVDfl!Q;Kf#Pi$ugv z527oNs_%yes2NBh=5r*Zbio|!;1=S3b;<~XfB>K*C?ifHA+C4<$NryZTn|49rpNSa zdZN&ai;qNizJc0>(;$DM*%1)~ kK`nrEz9 SuN(T&4-cyDE2>5ME0BAtM(_;bbCQztFBxobSu6Y&c66kP1gs*{k zo3>UlfSsK9=Q>y(21Xlh$B~Bs<}R>-{p2q#6sHzQRbnRoj4&dA9tb3U|556KGNOhg zzyvv=#>77(lzj0DaYg}Tet}>G0^G+^iN8I~Q4?we7ab)2>`StD9Q2ETMFXtY@0Jgc zFvR#3J8BNt5h6 R3l5E zcB*X(cEsQON0QPPbrvEE>ez5UTAo|D0;KhDk}Rf5+7tKCb7STUZu952C6H(z!xJpf ztW+V>>$oN0u}(FQU0I!|4_>N$bbM@osN0^k{;d_TOr&54vJe!EIK%@mm!7V)b3{41 z49O3(ttQ%Yo9dk}wlShK2`% =$7Ml^#WvZfldPcIF8`x_?*zSvdoU^S+fD q #HzvqARc;3{V^IQK`^M zu8Fy*&;fvCCkS?(ykR8UHzI29Y#x~Wslsz&&KrhSODM}jRug8cwd<-?>se=;9Ps_c z@0@^LtO6|CT~BuMuhvryfmUa>6>BS61BRCv4@x4}4vTQQAFo!AsBO0akUCZ{ z_!(|Om6P8X$m+TO(cZPkL!Ezp#>9vimo)C 53)AFTGq`xz@nrQN9>m52UIh7q}u)jbNTT zO*PrVSq5UwB1`bY1v2kyc!YS}+Nik*emUra)6O}I$dVA*g|W&2n+Dd-&C8kfW@6R_ zfc59uX(f?*D(62vUU^p kde$4u zsoHzI*|!HWaw1-NHuSGsdY>WFS1rE$LNxGH5HW5LMs?3~GWTRQFc=4Wl+;v?UQCJw zL@ptEH%S2yGy>Ta^-Swliw1#!JUbfR)hO9#8~EK(I*-SjiM9MjTxs{hZ~Z7kX`OT7 z6Jdf64d-fON1ivCSF5Rf3KMxov|jLTPOr9g3H*eEV0D$HB2Eq2wz~WA!GRS)GiV@Q z0Z$1t*@y2Ct$jtGzq & zF%}vXAqvcM!|a&Eqxu26uQad76YDE`eAF=sQ0Xy9-Ek6_eh|TtCyvu>>#;XkS{@M_ zWseKqx8NbO^cmX CuWDTic0cOG4KIi}PF=Sa5wCG*L`hlWqwuSc( zK@@t#!-&qN+P2z`*RmV$gn1;&4}4E!uoCDrKajDCqhYq{*;nsNzl5gZglnvZW2v)l zG~T?L8h$y|N|&Q1H8SxwHPmbB&(!c*|G}DmCCl*T*AP@0{sE)tk6<6Ygc)J*i2r=m z>aRBNAJN9w CW0*;p-O^_p<= &Ua>4>jH1EwMMW>sbZCZ7lYtKyc1Z@OA(YgS;Re;_pvalBL_MDyCH`DOK zo{iV^L}J;4PDAX6CLeXul%SY}ut}(;1R _p~XKo ze!oTz;>xJ!dMGbxvF7G=CkkViO0RylYFrhH %al~CB}3sifv#3TNLsYK}gCXtlMwR;)4T0Ks8Nu)oxpl$^*?|jo{O} zjG48w$!p}*cI_qxMSXRFU%~>UI3$d~f ztg9d^0RL?TPbo-0jl*bzx#t3jBmDU{3H#5D1D*-f&by5G)lS?zogfOjWFhBM$ %FJ-YP Z1_KX8`dATg*2THy$Hn)cEeSY3YiX30x `wH?uSOHBAWeVhR`vnF)W=>2H8vylt z>Y=7GF%5@*FC6DirWfoYuS=>+AWCQkC8jzD;L&(2JbA7 Bz&j zLFi*u`qT&UhhH`y-4#A7E%e`m$S?n0qa(m5qSD|yRv8MA Bf}@n6(hpzLTVAQG&k{gu#3^3Nsj9g>wnt%r5f#xjtIrxz#<%kNvh zM?AN-28;V|MzgQC|Em1|P}8H~P*c%%jx2N)8X2M0_!W- ^@h;09D_8eyK4m704vl=SA}^*+J6g1_2)#W<#QBC{$nM9l~?E z&Ov>F6GqZ#87&sItdbBPW5?9h#0={qBgA`;VZg l^{R9>9nL>`qvp@hqnFw)<8zwB&*lIm8N RdF%6)8X9h*&=`>BZ-Hbg;D#U^1fx`Q&;y+2d%Oo z5q>(_O&on?hoR3HyqWuw3{uL2f-R(ZWe;5iOwq*|3hoLb{QYoM(0K1ID8+4eUVIA< z(JJrm2Q+^Hw830m->b8AtU$`GDuzZt-4jCD-oS0+Y?H9Ci3g?NiJMV?*mQT_p(~&| z9mKXK#Xv-LPpFFXZMGt( |vm`$ex& zuVHd-HG(I{s%@l0c=63dCt THb7X ziVcn0j8NpX?T4!>YVJSIBe_czSSG?%#&`EQVGqI(kLR7T?2g-{UG#$E7>qiLia%I> zS;bXfYS^e82d9U3zAC`nw8U(=mnsD2hqhncFl n*L!FE` szDXru99ZX3Ru+y9lh^_2?0 z #woO;oTMy+ &REf|GD||8t?wOpJQ8VH1GwaHh{X=2gsdNNKGbWD{2nb zAT=r=3f*cf*~(>Fa>^yX^a;!k8RV3c#*^d@>tA&4kV9R7qv_ShH|$kxR#?8;>_qR| zs%OtW>s7Dui#}VKSE{u?HFPMVIGXCLj}o>95IV0*V9F;(1^SWNCN!8J34rDz@Iw#ob zYgh71yz?=8d6X+A!Cf3i`4kCb;S2$X+l=#Txai 9>(U)9O=ic^XX@gHG?N445}l2wxfZideZw z@vj)%RXsRH4W5rWCqLjVpES5A(^uTRLClRwlFPT>1S(ObJC9qzyovIs(n$($sz_E& zu*P&!xnkOO$(Fh>_)eeaH)s-?ksSYKQkd%*?3a~gCy}K`3GuIdp+p?4+j*BH*^<$K zFH?t{S>u$7HoymQtTFj&p2*wxdz~HMKh7|&3bw2Lc|q_}L`P)~du8-ML{-@6$hBt@ zH}kWzQ%H%*EoZt0kCtW}^T2IF$p|A_Nkmt4#cEF4tKITp&L>7QlY;XW*|kSP;O+5l zS@%Ea#z2rJT@WXQ!gdq0F Q z-lm4`{>h>x!vf8{8-7WB3ghkS`bYucGn#l`NC)2d;JDxrdYLig`(by_P;%Pifmr=C z(UB0t@~Zf)!SkeWjr=FL!}@31&r74b;9M*#)Z4R;AESUxdGydL?8)$0Hl|hAB=mFF z`@t{(lYexXk9S%SabD2AWH$ARFW|IwOGXq&H%N!mk;Wee=^;-YcFW7pXB*ll7xQ3@ zjKlpI{ob?)r*mif=-f||t`-*)9*+>;IeeQ{9?Nos_{C_{Xa^dfVoT_03O}W-;F<8k zqJ5*qjj^Fd(g54<)`l0NUV$H*EUPs*6G!@VC4`i8?~?>?pU}o+BKs0*r%B;YluxOr zKbY4cTE$mm+;?wwbNv8Dt4Zv!Chvg7d%xZQ>Uk-SgvBN$Ig#N~-J?x5nC9BY!xJ%= z!*4MCdHEc+&-S^Fl60v)A44GpZ6-+&?~TD^s=y8GpS2C#GE=K)G?UDVGfm!s+-HgK zN;-LCw!i9!pDGQz{96ZMzdJc9h|u3bM0u|e^E;@&2wnco1b1&LZ#*K2F;t68yPvOk zSe3TzmnImQ4fcK}k{0-Cv&Ovw(vji4pl!#$Jix-~$XfAEkKzj0{9Q}e7hJ|(L@2lE zO4Yr|K44r_++=tJ_PpESn?FG?%PN+tb1^opxS+(G&Ye{?hdcZh6RJ7S?(Kj0yQ>r4 z;XTK 3#!K#5GoT5hZjx6&r!;%3aH103MPS^@sD$li72817rD)FD-I*6aF zEmX*U{> abbTta5rhg&u|4E}1qXF1a9NNGl7x-V4gq$P1rls@2u z{gh{3e{x$YInIN*-40GoEMv$qTGoqVvZctG N_{_eQ3i7erQyuZS zH)-jK{g%Q%Nq%H&I1M+3cXMB60a`g%qtMXpDNYH<36l$K{58!*f6F5^O^olVL4RHz zX vmPh>!Nzn*KsMH;EC27s+JDruUNl+#O6VM^nvZ2W~CfsYkw>kESDek?SAvXFJ zD(FKJpia>F!`_AD#eh)OJ2On{)RpS0<9ZaP{~7h?2^VT Z#YU5>RHf zCU;)Oqu6)?likM9#kWQBja!La30}-4A@5Z92x^CS4@d$==m?F<2Iq$xob~J1ss8{N z9E;k9Eu=pv-UK+RH$rxLHaZAUtOUq~Ev}R&1r%>m+?Bcx?T#gz`&zX-DR;&z-fu4d zrvo7h=^Pi-`@v+)7Qw6ligy#2t2b`j$nhrlxZH!X+QGyWF<5YC$T{s8U4~+u+ctKO zXao^RI=5=~j7Cu(=54?BBf!Gi6gvmV_zj@fxsDYhZpXxIN|{jsLhy0m(-*9|O%jcB zyz&lYxhv7Z50LK_=yTTY*wu84v uk-!4(bP&Yrg%bl|WPzWWiO=3>R-2 zMnN|L@YI|8V%`#t{;$p7o$+Fd%_!I#WlH6_zD43=jY(ZT?ogSzg}kzXk6s6|2nlSm zP~fO~5b9$IHXzG}6LRb;R73nWog*MiG0|QKwv;xc#(DPRxL9iYEwy8W+;#k2Q8Ln# zvsTRR_Un!<;6DCpn=r@(S;#~6v3aCu1itZwbQWm;1w5Vg1@~w+o(0$Z4l@dPAI=sQ zQ2LA_^vWZw$e40GEMVmAY>VPeX6|WcOkn{7gUg}cL{JJE*+o4T&UeP2=NDE6h`mh7 zIQmTPma#_K%Y3(gYQ=egEF`PmKdCTgi %gR{ffNdfW=U3kA)-MT$k y97-z^Wvk|cG1g>p+i}H=scy>z%>L`PXl{i6ZaKbe+c+E_{Oq-L+VjAg9Qj{07=6tE literal 0 HcmV?d00001 From e1483e091939bfc876c320564bf820ddd1fcbaa0 Mon Sep 17 00:00:00 2001 From: leadnaut Date: Wed, 16 Oct 2024 16:04:48 +1000 Subject: [PATCH 2/3] specified that components must be connected on boot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 02660f6..3d23735 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ The following materials are required to construct this project. - 1x PiicoDev Servo Driver, 1x PiicoDev OLED Display, 2x PiicoDev Button - 1x FS90R Servo. -The above wiring diagram shows how to connect these components. +The above wiring diagram shows how to connect these components. The components must be connected before turning on the Pi for the first time. ## Deployment ### Single command all-in-one From b8cc122d89bafdc6f100bbf9cf7aa15a97107a35 Mon Sep 17 00:00:00 2001 From: leadnaut Date: Thu, 17 Oct 2024 19:02:11 +1000 Subject: [PATCH 3/3] renamed run-garden.sh to be consistent --- run.sh | 2 +- scripts/{run-garden.sh => run_garden.sh} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename scripts/{run-garden.sh => run_garden.sh} (100%) diff --git a/run.sh b/run.sh index a94d2ef..e5a5836 100755 --- a/run.sh +++ b/run.sh @@ -21,4 +21,4 @@ if ! ./deploy.sh ../deploypaths.txt $SSHTARGET $SSHUSER; then fi echo -e $INFO -ssh $SSHUSER@$SSHTARGET 'bash -s' < run-garden.sh +ssh $SSHUSER@$SSHTARGET 'bash -s' < run_garden.sh diff --git a/scripts/run-garden.sh b/scripts/run_garden.sh similarity index 100% rename from scripts/run-garden.sh rename to scripts/run_garden.sh