From 2a2a3cd3499e35fac3faf6173711761f56dbf456 Mon Sep 17 00:00:00 2001 From: jiegeaiai Date: Wed, 4 Dec 2024 02:07:18 +0800 Subject: [PATCH] add modify human render --- human/human_render.py | 2 +- ipc/ipc.dll | Bin 73728 -> 74240 bytes ipc/ipc.exp | Bin 2234 -> 2338 bytes ipc/ipc.lib | Bin 4212 -> 4378 bytes ipc/ipc.pdb | Bin 1044480 -> 1077248 bytes ipc/ipc_util.py | 9 +++--- main.py | 5 ++-- ui/__init__.py | 2 +- ui/ipc_render.py | 62 ++++++++++++++++++++++++++++-------------- 9 files changed, 52 insertions(+), 28 deletions(-) diff --git a/human/human_render.py b/human/human_render.py index 186ddbc..8e08171 100644 --- a/human/human_render.py +++ b/human/human_render.py @@ -48,7 +48,7 @@ class HumanRender(AudioHandler): logging.info('human render run') while self._exit_event.is_set() and self._is_running: self._run_step() - delay = 0.04 + delay = 0.075 time.sleep(delay) logging.info('human render exit') diff --git a/ipc/ipc.dll b/ipc/ipc.dll index d9bb9187c19068173bb0d8e91ee2c04ca3156aa5..a12ee07f7cd782b1aaf0bab3ff10ccf7cbaf8829 100644 GIT binary patch delta 24215 zcmeIaX;c)~7B+mUpqXcBKtN~^6hs9D6$i8t&{k1VQHdJG8Ru5P5U0kV#BDC-_1C~6b?%~92X+dAX^OCncM)O)BOfR9NYVlQKSPPF(d90Pn8EUg!7Nz5G!&n7v1%{YGWPhikndR;ge(n~%hDIz zPZOC$ie`ay4Ay81lqf&-XDHFM{u=SssZ?m_rMf^g>?+UGbO?74n4u&yN++cpKqCDp zL-7Nh!E)1JIfc?*zrsJ#1h~K)65PGQFKZ%Dyk8)?EQ>Z?;oeSK;VT~P6rS=GW2c+4 zEPh~6%$~AZt%ee9qG-!!-v0m1M{|X*a7^qHu>hIA;i7 z@Ts@-rAH8EJ0yl^8*YPZ)x_p=6o(o(oQnIET<`YNQ>z6 zT<6+Ld|@Y_;5tyu*va2??I&E|Ke%=kf_acztT^P=iZr)aLDav(=eze4KH(p@5Agd0 z8Kj$+M8 z#@8oq=ZAa}gfm?7nJsR9hiCi7it*dH$v55U42($M^YgwTB72A5@trEZyoV3*OAf>m^ z%o1b!LB)6K2AKym-gh@xE=qHGMSuSVg4km-uh8}ps(6ETun^$e0+ZT4L;_37``|MYzyBEXh!rErdv!Inl%?A%kPpS^Z`F`$ z9e{Flvp@j-<$z2}r|Ez}B_%~@Ypb@QQuSuV=dV=q>A{ggC0`d@kLRM0-rlXKJkhQS zxV7TPLXy1wWZ6Ll4*79wNPiPt*JZ3SN2W|djKMM~$57mx3QjL7PT{7BOU_ZIcZlKd_R96wD|i>r?6E zWSEI2I}@T3$VVs9Y-_N1-t-k%z5kC^D^0!zi{`v99~~MYbmz~6w$r_UNMum&y=F6* zBRbfW=B#IE(Z`tIg|qzQ(4g4M@aSs22j!G$HU=5YZkgsqE(S}R0Z45yYkSC`N%rOc zgeE@iKq1Txjty45i?@&FzK`7Q*8twW=_p&tt|C}M)hUR%WaOb1t)GbC1xs3H3OdwO z;A^dsr!sR|rd1nsh`-Qgq0cvusOOhQ#lVJD`^7=-9o9vB;LZDo^$1AA=%V$>HkfqC zO8SIv42u@t;0MC`iA4wb0%bD&zZbLd!X61ka5BL)gFvB=mM0yo6HSkoqj)rQNph@GcR;i#)YU zk}$PmNteZfAn|)$W8DrfR~=%y z!8dk0C~!WYdy+7bFYCTe7*XNaqpcvk%VU!Jx=o+27#lku#tw)T^Z3B-iNZ=gzUPi^ zx>wL{C7Kas=qoG}1AXB21<~q?=%7SSKqP8YfE^vRc)@ud+pArlvoFgjhf&J5hLZI_ zCaoI=9atEsS}0SLCMy>FR11FG(rd9WhFg1W4lI6&I_@Iu?~u0=*r!xWkE{8f-n)f$ zd~l!kZsTSv#m}70+Z2TJm-=jQ+BXY3%v3&qQH-#fk51_>PQJrSQo_YocJL2U0f`{bsoiKU+|2*! zA0dw3%p=mG#m<|#AuYGlwREz8`RDW|V*Z1*r{Fu9l@bh=VVE2zL?x5miLkqS6ThAo z>pILJr;y&_>ERBA$}IN_dH%NDuOkh6#CVOdIt2?fg!9l<76HU-AOgPCAz*^QFXp zIjEVxr0}v%|KTJbW|Vfw%EJn!ayb^v+X`cp!W5kxsX)=ml{P3*xl*yh4Rnm&e$MNYU!49FqVpV zGH~-q#o0mO0?wH~3|<-Ox}K!eSB>|@M64(Sf(&sd4evB!;mLQhYJV~FHA9X^#+v{C z)qKqr(=!_dCzA!eGooVZFjqmi&F2kY1V^tMzSU_a(n~!nmSw#mx-Fc^7|ov_t>dwy z<~zNLX#y~Mh)yskcse>?-nJmVF9D@QAQ&VSEI(4PGS!o)KMb4Glor5^hWi)Yu% zRFSEHm#89FaN;tQbaNv$bHOgE#*m@3G4Ni~h$xGu4`Sp!f%odo5TJOdiUnsZY1>)a z4|tvcZ)jU%a5#@$&Px=qEU!WDYL{H(ho4G|AC)WbGu#LDmXBj5m;0v>8A6IB-LlW4 zV!jBwE8+C>yu-M*A-h&lhna?kKg3R^11kT}+c(48`=F-X3Z6GETC85qH;!BD)&o9m zC>gq4>dV8&w>ACQS$6S3hLWf68j4p~y$#+2pT4Wk>j#!n!_hh%x17pYBgO5pT5)ti z@-9eNDyLX75d+~a&STG_Tq83PIh0PIqu)lQmtk)&ox4Pp4w94o*{LZRHXuWLB3(Js z&G25J@hOrkkn#JujJqh}kYvdV%9)l1YT(ZYQ#+nRl6XVn1<7#;|8so%obA=v2|B@} zq~{P%w-P-m!z|RXIHeOj@;DscZkhKhtC{8<5iebTQ&Z@xXZgPR-8R@k)sm4PL= zl#ie6DH=2Qv4W05f4+TkzOb8nOz9$o^S)EM31*%@CEcYAGrv{acQLP;lBydLOW9yS ze61bzF?NVIvF)owu9O!>Sj5y>m~Jdn|8Q??OERoTca41Gw0?mD7E)``zV5kiP3S`e2U3M;`RK8R4 zg=5yrtHRL3R&B-t-epD`&&SAw#)M?i{JM~jpV3V`W8|A>Jnxq{kT%nkvS?}6(c-<4 z$Ia}HMwv3RQ|{hKd4R;ILt@E%#)ir>b+%D1sr2Aw8WKq5)DQmOgSfx?Dpih%0AimM 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 jw;yhdPG1jf2K39O7_^#ZFz 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 JDth%yqaS@AQ_=tc diff --git a/ipc/ipc.lib b/ipc/ipc.lib index 13f374847cfd6208afa5f0d90ebf430a30bfbc1c..08169707e4dd55f74f3c22b062783b50948e0d07 100644 GIT binary patch delta 438 zcmYk2Jxjw-6o%inG3kx@LR+EY5S&6cU2M7(sSYg^i*|E}AITa)#kHH3Qbf6%^ar>~ zGW7>^bkVWDKq{y>iuI(CrWYR0Ih=dX``+_yKCIu_?b4N&g;QX+(e zA3I_$bK(3Qi-*F+!A3*>x79G&#K2-bZE(`{=t)u7a{QBjqo*kfdX7-}kU9@Pn;m2eNBbXD zE8lm(qo3h@$m43WinMHPb>ToTS|uZCE*N?30gpr{+jMPhwC4J%YjJpJa@W2+qPz9$ z(Wzfdd{U>lzK?b9)c3I-eLKZ=O^JW3U$>OluH9l@9aVf(t9@g4NXh5!s%^JgXz_g2 zT3%@HH!6L2%7|B=s$IO>wdA_{d$kE#2QMYw!O-jMtbWhVoS8K#7uW8fxd6|}nmHLr zX@zpLSBD*Ftv261<3NF1RfEb@O=->D|E_lALk{R|dHMy_&&#v5qNw0@SCSlq;UaJ> zx}Z+eqFeK?FQ|jPdYJVs@79C+EYH*&vJ6I3m6KmY!s+McIx4@cpCe)OW+St~YMysmBB&tJQw&UEa5fbY2B|CRb~3-!2h zZh=&J(M;|s$(gXpN=;3ycNZ+SsZ}K z<{j*sYbOV9%T=G4RA@KMZ2UZIkm{&LgK+_h@|xr^-md6utb+!U$B%KfWx*g^ zk2IS_D!yoT6U|1W*(9@>tJMdrnljWuK=mXx5B1qzq=&2ixU6?}*?6zZF=m%7n{)}8 z?n-aRot8Al-0Z1y6#fNQZE2*$dQ*uGrgsLZs&c?A+f1eMA@ph!rN%T-%Gq%?j5AS; zHJR__YD5f4Eik2sn0Qd?bx53yR&uEJWL_~|?U1OXk%JT+B#m_%fEfRV%E`cA z0+TPuyqaPMzwoQlmcRT@)mLrcTmGrGb2OO!H#0{y9Qu6C&;Cm|rxre|xRLTMY` z?6%q}B%zI>!x4JpIYS zVP>~O!PCtw*Qn${YgrQsg7dMt)R~^>6W4rxV}9y zAk}R}oq{?~S+}-%ln1I?Kya$#AS!RS<-6{v;dZm*cKowDYEShX_xV9>*ZH!k*ELg) zD`a>FD@qQ@Y36Dxa=7|ovY9r@C;7pA$`5Mnl)+F~RT2;wG|g2d$t;gmTtG`zM8K>A zzbj=tdB_k@={ zbxKZWP?wInC8En_MMEu)=7UgewV3X^j`}pzFE!h`K5jBlH7%mlsW&Qz02(l>h+c%m z?;MlUuGC3xJ07lTv1TZ_hVrLW&DUOxb}W=HP__5enJ*xb}-8Jv`C24B#&49SfI;!AF3$A(Xponr}!VuGax%ycaHO z9)(_f%y1tEdTA){uW8|JNLCQ~Xm_^{zbG=+X3zt|_=}p>%DxxZw?p}MO>1Lb`-Sn3 zH7&#(pJzD#ho;4bq?mJLxH*>xBHj;~ zs$>UuS4%fnJ%foN;baoN0gQe^xF2;&!XrRi*MYn12+%}a z=XKzbIvh^dr5*TST?-jb3YSMJN`h$Huc$^Sycs-kpgV)G=!B5D7xZY*J%qwVC!lZ# zsqjhEMMd)c)L$d6BO>`{I`ku1JJ3c3p&#`@`o)8`HIlbs;7`N#@<`s3K|i|Q9LdKr zEhL2Wi|crIF>ot-&NUicn=^V3_@X=V*Qw2MTt{`}`$<+Kt|L0~&zKf&r}oFYaJ!2( zxJ^9dct+h#?kx&;2|bpB?i$5sg2!HlYZk@#yJ&5O6Mr)JWpdUF-xi728?;1#NW6t_ zJCg)WUTTwvI%l#j{Jm&1koco`=VqF(sYe6K^MuU>62pq-226Psc3mE!tL z6n_!dJxQi_r@JyOg>^#aMeulnZt4N5Q;!g-M|~ImRWppk4?LKu${OmAx%Q@oh;&T= z{Wd@@v?iVWk`CHUfODaZAs=H8Ms?Fczut+DYOeKnEXQ>tz#(H{EFY$6EqP8HcKFdl zRI8mjKHP z>YUl{$0phDAnI-doJzGoI~P}lf9R_D^rX%T(Qutm!lUq8(U~h~`GECAw^|CnZ61ea zx|K#83i`M%+}#aPM%Q^=cxN}QO&gL`i}D5`%bf;fZjwRU+l5ba(_+opl^m@o=P3nR zUE6kp-emcc;7J7i^Cooa>ni98pv$GB8IKb<>{G3a;8f#a|XW&-TQk zhACJ9VG+%+GX%X_UT?!St!MF8ET({T@YD4&09lW&R{+RbbX^QsEBUA3`Z>_)uPcDo zdiv|HD7uno7WgNgT5LfIh_uiTWZ1S_6y;T1M?=Vypws4p=rzRt0Y5gW1!jZkZi+HgHhvB^qa6$V)vIEn z(e)u*FOZElqf8Trgu;{NzM2#of$Jes&O}%_P+mWc&YqOlWuQ~WCPgRO3KV5OMoWVJ z0qtsWO>TG(miQjmiie`$_E`C$$@PEX`X+dh7?rKKrnWh7;Q%RgOmmT?iqUBqZd4Y5 zPCOdqti?6a-^BVxGdiLGonh`PZDr#KXm`k^O#-_95OfM+ zx~5UmjH7EB{RPOO>vp)N$wAlIxc&p^G_Y~7Xu;Vgh1X@r=fGs(nl$YX*oJEwL36-p zDX2ZJ2g>W7u*NK06aQ3@VqL>f!Qw7pu3I2PCC;GvNn0Dl1JPLtB+n0Us4=QmBRN671$ zpug3mulI0WK!P{~{R0JR+zy@pxAPheXrn~*{{}rlUjGr-wDBc61t#q?=$di>ZJy|w zczl}h(Efqw6tGNQBVY^6%?MRc#QHU13YFJnMoPgZ4;tT)*EG%kF0U!L?BI7=f>JZ_ zleN~!YYN!ca82_cO_eJqeIPW3zrR9(ED?+Vq5Msa$&9r9b;beRtW##}g~oK#P6_83 zTwe!_cJQy?Q-|~G;aVC`*sVqw3BH=U7PK_1&nxSFZ$;_O zUVZ*(L)QhLUN)xrY2{jw*B7mC9`OH9kL|wYPyT1}pR66-%2Vfj(fRM`jbB=Z{=MXR zqi1WamCEx2AU(Mf((41X&bFXyuK8Zcb>)5jEBA2zU)Ypcsh5nIm;S@@{r2_kO4GkM zw$x}9qP=MCbrMrD$ntq{{^MOgUzqUK;nnY*pEQ1S?ej-B#3%IL?ztgw{?Uauk`(1T z3?v9Zf3Smsm{rPnQG2buTE@2lY4KJbxmWE@xLJhOSsTcBPheC}jnD?DH+e;b_88C= zfr2||eNdO#LF?#q+&ssSLSb3tJSBiTBDEHLPY2Cg%l70)J79wz4Z1kO5=UF)E=(#V z6hMDi%nIQs1*>u4V&Lw;q&OU@h(i%NdJ%3$wBVLr{K0F5bkzqK4ks^~a;Qv4REfa2 zH=k%SkigLZaS9?%Nk|cdkTL{7e|^yaHycVaaEL62$#O^F6wr48_Xpkwb3(zwgTRCN zrbw+N%u*An^()8&M*{RL1ndCR0xkjqpkp?GbUg|1MAzwnV!#=Ip9=yMuovJ7dn5y< z1BwBA0OtTV0iFo;M8I@FA)pL!5^x)UKjXQM+6DE!h8~{0xPh_VNyq=_vDO!b<3RkV8XH#oK0 zxm*q5`f@cG*VmS-Er5D0SK9$)E?1vWuM$H)AhYhOsJlvaUHP~bsvn}ql)zW0!9F() zio_tCn4~!96lyC}zR8cRfVi9d+6wgvtxYxW{i52pb(?D9Yi1)czWRMJ0}WncIw1N0E!OyB{)6M@G7X8}(E zo&x*{@YBHOfQi3R(%m%d<52bk&IZODG+ORgkEpanDiHvhd8kpA0?GjJg>oFw2=IfH zL_juxb`I45+C7qVPe_adqyzE*WdM5k(FpLipbjt&kPp}js0TCx0<7rMiX|!+7n=dc z0oMWEHmneU(SUqFDWDo~63_?;!UP@%m=2)rM?7F4U^F0+p>x0nOxy@e!qI@efCOaQ zG(a|>5U>tV4mj+J@n6P;E4&{C7y`%vlmf~D^?*hI&QFw3KpY?$Fd8r&upF=sumf-y za1L-4a2pVSeN!@EG$0$02UrQ%04N6>2AnIvzv}>o_0A7K4;kVC>43?AlYpgI7ilX} z4mb>G1Vm$xn*%5V90%M497Y(sBHbnfa9*Y)`@x$2unr&tuo6%YxD6PG?7A6Ha1#IM z(adPTI>1RlD30E90Gk0P0k;7Gfv5)@1Y87o;=G&Ayt4tNfLg#+0BZ{?0Wtt|j=dRB z4`>7g1fdR42q**82O+H(*_yV_ZS8RtInYzf_ozz4x#iogiJB*O&CphI&qOWWIG(5_ zcyQMoZMjjJrsd(XP)pOY-ZY*n)HGF_@Ft&Fq%F|KyvaW&JmO70cCj{FOMR1nyjc4| z8}O#_@e=JdRZDu)n6^y&XDfdG4l?kZa&3lMZ(JzXo>A3$p8B5FmC^a4YZ$g|8EIM^ z&+xP{tNEe8N+#HTS({nW9Bh z8H=u2zVp_Cs`$(g)mD6^-5LNY-)^_|EFk0lD~2V9ka7P9hBfUfZCdb9qf+MhCBr_- zpp;P_ZPfd1n(m1#K!$B<)RmF&R%AtzomF{SR;sRhdm=Odl$yBbY-^BFeN7waUX^GG zRki7F^6(@}XMOscWOkkZSgr-~yd+BiYK*l>7P}X*ygtGbXIvq}RT6`t?{-tm} z44&%%ItWe&ECuWVTm*PSS338+4oK*TIzTPpHXtDikqD>-xOPG~kM4v)04@STJ0q+C zn*kRAQC+|cs0LgI#6=_I0kr_n81Mqh0XWuH1_Fu!hXFSMpgVF?BKVrlTUx9r#N3<4*v+_#q|VLO23anv z)%;43<#C{}V9W2+Gkj;TWrTXuP(v(}d_c{5%+d$cEst4#`)|!v+6DY8^VMl*vN0uS zBtqwW#dZXRhb6(L^OaWnN7?s5+fw!?+tO};Y)dBewQF8H91N&8hCOe2 z*IJPlp{=de8Z>JaM-FVsw=<7s+)}57Y0ay6WF2lKy{n9|b(-DB#cC!__=!8Z+gtGb z)0(%7x1_lW+K$tj=Y3A_qZJEL|4XY8&5Q)_jwXOZelGa)z(XrjDX?>OYT}fF2fgx8 zr?Bo#BA*Nl2nEgQm^fTN82rhgk%KaT?^~(hB$@>Ipx+K3ch6f7^VB*p?SUr`0vnVHm}%+isCkD{>lpJPBE1`f8=Fka620Ce z`|wxxTLL+oXo(J~H7U5k_o6Ln4~MdY8r~~=?cif4S~_b1JNSzeEwNrj2Q*E35ZI8 znE=Ir`jm>Kw_K_`t)8l$Tt&fJ$alGU1RL=VYn+FcjQv`WHMZcF;)SvcZR2R2b;cb- zSI$i1-1|EBz0s&^y7z68U7DtQXJRS1Z_oSSwk*BxPcz9n#LiDrJ!pyO_`yA|Gg&mv z?6h3o%j(zwq@m%`-|?4cStE_(n=EnehBeySs506cM-7DQZ&z5X?p5WMVpR{?EDZU5 z6bs~gDl9=-&&~XFg=LXCj&Cw7KD>+7qXl31o@KXMEC}CNJ-qqY-In3%RzcV|n|bk* zyDg*D<97+odB!-V^YlHIboH{JKFK^B{4aYffnJx*KHHj^gied}E&PW)mXMZ$9$?bF z5u(;Dq+2wfaKh@((<&`ihh|a|OpY|Pyv(yIE$tmYngWwe@-UOUvC`579UrT-JO*T| zviw~O+QPrBLOvU~g|{&*i?uuxhwy`jWt_T_U#PbD@$wIumG`Q)w9{5@;S;N2g~L=a zz;W2@*aHVpNe)u&Q{JP-GC&*g7GGRr8LFqhC9Ig??$MtAP-AK15R?G30lm9)fp>Zz z+4;97wQZ{pLHhLg2$Hq94*W&tSCo$#ru{Kjs<2_hbDr2J^=amCfOA& zk{o!gLwTFe|G?74@wQ3sDJ?fPHth59d)` z7~?zlTH5=@m}Dh%$j}&UYblxA9Krke*LyAfaV!|K&(g<9VabAv~ipH_a`k=T#C)`z+(YkKo9_Ptp6 zXn*D0TU`bd?X7MC=K()>bFmeIn(nWhHyErpa2 zYai>{2Fp41q;bB%(pFVZ@;etSU0E8Ea2_S%`0p%--PRUcE^0T+`PV`A&bXEFDY5+4 z8^`9ewpcpew|)Mlg^d<8THKrq*{?asak`e=+SHxWmG>`ZcW(~irlu|=_ce9h!xpm# z7qSQ4({w?*=MC(oo!j2RWSl3|4!6V^=X|Z9E^8C54R};>A<^0=q+vUyn=WROpqHaP z%$==RM^cd+6W-x{ldR!hf-l(Q8v;J{9lii`#}8)vAd^n3N&~M*vUYI@_SPnO6v+SN z*OIIsYVq&z_xf5ptGoDxzSa>y-TGPE0gVx8VLxj}l(zM=wg)S6#xMbxZVoBSQHJ}ahPK6>YPsTJhW59%JiHxOa>#lJK+`TR7p>F}C+G!%|{xeH;zua@N`mMKKlD#M&@J zOtPOzrU`YEpNh40^zqwD(eb(RzT#(2o)pZ%PqwM_}WVbVQm3j)K?3wbuj?@XFGo4P4HsmjuhN5|Qs)B}8coUMx% zw~xOZXM3tc;@xnJ!Qq-{+Up(-2XTUSgZp%|J&$}_(#!vB(&D>U{U_`cU{OfME zSgqqW-ln_lDXsZ7zNovcbL4Z|Xo#j_xJ4C`CYm%;vAfcTZsVuB+oowxm|C^sY4J8M zKJzhKY~=WRy5OEsNJzg&yQ}ka+xXGPAYt-73CaB20IRpxjJw=DOv8Zl{djQZZR6oR zY_TDEramEe^Ve%;xlxu?rFc7E(8Crf`NVeI51Me3@4rkwKa3K59}(XglYYabQ+^Th z1I_Xf_!4|xJ#CTdLEfvU?LYC*w8P`Je%g!M`OL>{vqL^ITjPC^U)d8xd(jI{_l}la{y(Oi2L_` z51zB-K!GkfKtF7z(s(OIL%sXt17hSs(Qk^lopormmkB8Pic`g!Yjq3 zgqjg#-oU&|A4MA)JHVvl6_^&{lq^k_2gvC$N|s|}{nU5)(8boyTF$$C(PHatZPB~@ zJCyb0a_X^=7yEkn^TZ|AP_HLVO4i*Tlgs(MC0Oo9mh;z^V7K$ESuavBeac`bKe5Ex zo~plJVvQsmz7*`^%K2czPnGkTORcX53$b{$z^RZaMp2%Uk7{^i%KWB;vV8G4Qs&>vfAKn7qbfFgV|urtaJ(CvJ_W*PPXd3N9P?lTcyAj{?E{FCB&Lf{(@ZLKLM6^Hb6#3zs zgr7!xA%r#EBT&>k&xano`*~QzZ|w>JP49Y~hei)Zd^PwQ0M>z62+CSoHya77tOvEK zGMu^@o+Z}n?%Wz=zli(YD?#=yK>oq@c6bY>SFruh-YB|sxBq*0E&u9)|3eP@ovteQ z*<;%W?_%!x=;1DMCZeA^t-XKChTwAE-aO0~&PUWgw_n@Qt0L(|wzk~Ly1UdO=sf`k z09HVgzaY$u&a)?H=4Rrxc;qLg0f6q6k9hBLYulJ;RWxY^+~hA28Le}UXht{X<{LTG zg*$&4&0J`8*HCQ3tEiYEi$TWc<<@WyZf&%l(}q;>FB_3B##eFoYrr$Bc+YD{P|K_M zG%BwbbalH?cg^~tH}NmF+lEs8CwAN5`|fPZ5Ny?e}1@V&-Vw<|2%g5V7>T36-h7XYiq5wMs1@t(W9!&7D~qtVVi7Sy-x0; zHN!`)5USGST|RA-EmG3OVH=%7g8tSfTZp8KH7pG)2I!w{!nVufU2=U85BY;_xEA!T zG4Bty7rg0=qssQ%f~djbnBBRX8HjQQfR5VpfOG$Mef;b1^Zr#I|J-KfUXIAd0aJL> zCxJh`uWNcr_3!41;=vV3ef6qBdwC0UMv+yE0XqN(0p|eM0ZuRc+I=Jq(z%M#Ig%?p z_ORo^CJX4lHlrTQ!tpTHK){1D=+~bmMPWw%vpsE# zS+qg3!mjYT0@i|iIBc_A21=5`>$l_mpv?|jy*35xUbYvs41<5~Wm~NEHTa?yw$&`b z+1&8~3*zzKkUZ4j+r4csYv~5>>0|p+>u&Hiz9^41_%2`DY$IrZt%0o#vQ-<2Us^9( zj1B3wBh8JhGW)9@|JHViwnu(XAe#fG1J(f!18xK2hQOhKe84(DHQ)^3HXtY!Z2*%2 z%KApD5Bc>0y!J+yXV- z{5yl7>4~Cqx8poaOv6BoT0E$*7}>eD4b8drxb-6L=B^yKc5K;DNrB*hH$C1m%guP( z-nKwT(@M&bxA>S7R($%uNgGO$xA>|P*5}p#GF(2fw)Lj_#ILOV?pyQd?(Wyl#-=mT zY4@Kyw131+n|MX1$dm z2aZ|}C<9ajjsq?O=wokwfPXcwJ#@E#T=x*G7ASP5&?LeAU*0iH|LI+T^A6xaQ~ytQ zo3(>@@9y?pJb#QW)EH82^Jo0X*UW?GW>}}=wT%lIIK-}blV(L%B?$kW-@8)IgEOsd z)em@5rgZ=||0^+N)db8`HeR9}vbLX$h@hra~pyhVQ0qW`dT z?@Tk!l>gve??H6jH1(fDnRy0?g97Ip!OrJ<^lYzju<`MCw(fWvyB4R%TImiRTW5>) zD&0YG?tJ2`Ds6W1d3Cl(hoJW}&$=n`f66QBZ0+wOQ{w-WU#Y`6w{<5;X=QTLIrpbL z>;TTWKQV<5F((i`nS$`K2W+j>vwZFWTY-9w-#CCH?1Y^>{Eyg=CzwLonA~($Id&(X z_(z;0uH0!v9<)vIA)QyBwJo9sUZ2?(+_%2`lH*HrtgD0UxU2wyyQ`P?Vp|w-a8z8a7Xy)d#cHgzNc!s82!6@ZPyX7!ib6_FY6xN zRn?RV?yl;+)sJ|ps&`b6@cBU6s0#j;s)t0zR!{)=BLMn2=(8@2Zl_I}!=z0E%@wrZ z3jUp{$7mHtSnRFo zi_1D&>@BSgh$mx^#opYC-Q`H#-mXX5V{~fMc`BXjgvN@-^eiJ0x1sbd}Zq_F{Pl`yH<-Ca5gYY4=KQQ|UYlf;UFm5q> zbKS5u*mkJ4V%j9|{azle_+KvAZ2nu!O@lH#YfkR7v$KXz%7Z$s@CZt>bxpUf@o@Q1Kgc6)5`soO{Jh$E zqY#bybjWkA4raf`#!~y!xS0#m&6~L({V~jq;9&h3yx_GeSnuMvY-UsO^v@gS{*fOG zMk;N#hyNoO{vWo7qAJPsGd&tvy@$t!z|Xz+@UbEKOfUCJs&|<64qUaZ=jQ1h>N~RBUe>cp zV}GdrgAazcuO~)%ncwKC@4j#SA2{OI-(OPL(c5G6T!o%2IG?T1n`EQA-5+`nyiI1l zOh(UH@IqO^!)~L@C4fTlQBM{V5Qffhq-QQUP@JAJJ{X!0d-k#%y!W2JAp9PDQDZ9@ z?tknkPBffh<9yrfr!Q*UAG);reDE0zy^+#1oD;|3`03|v#kOK}O`pLuy#aQvE!9w% zcBk}~KfUI19OdiSbS&1^ChF6*P=n7*)B}tcYwaZ-eB)x)oG(h#yYq2r`cuaH$L)i0 zI$x-d!zT(e3-xE!Z~2KreGbASr3j@jd1aCQ0dqAM8oR=0&BS8G7wehoY2(&ny@jgT z4eq{Fe?h}zao|?Ge5pQ}eP2aU5B|C#tR?Td4E*Q#nq_)BUfj{LhaXS2hvIn@V zE!L}fVj7+qoVh(6edGe( zvHiY7!LCN`{-$NPaobmCE`~M3?yBn1l@yVM{D)q6%pRR-574434Sf1wlou}eTXXD@ zzqtFQUGHA(U@rn5y#IBstW9>a=4RG&n0RvhD>k$L_wIX}-t#)2EJj5{HvLEdMhMOG z0A+xBz)e5|Zu-Uncv_mZlw-y=8u{JzwC`n^gwf4QL zR*27p)Y(sKIR;;Qz#eH&$0|I16z@6F*4?;0QMcl=*Y@dJ8ziaY_63@s!M{Fk|3r&K zs}uHCJZFyWrg40>9__ZaOlJl3B{JU4@U2!u$eZ|jCG2xPiO$?Pc4K#6qG9Qx(dtjwokf@+9 z{~?C+l70kvn94S6mVAK2@Ny3EA89A(fq{}AXC)TU$KZg6_`~`MTm!{gqkKcshe^4! za4MltIgF;p=4#0fmeU*HZfxoJWSlLYw75v>9rS!9fd zz}MtJt_Tw=xQ#XWU0^wCSA)z!7CC~^6%b*(G}TTplAuj6HPN?$k??#eXd^mcD4%LC z1xP`?Itsod86(GJj2rgruxk8!WHYG zHkCJa5_qSyz&7c^6-k1=Ny^!27v(E5rn*VXosxWNEcqV-Hzf-^Oe%678j^{wVRleG zy#PdbmNe~rIr5TNL0=Ui@EGZHH))|t?A>U@Zqfo3vb~$cXXz8Z)X{qB`w|(Q!E)Nv zbP<9(Nu1SLlwF`O2|gw*b3~fH!*Ef5r@6pM(ArcyN#GUIGJ!#&T(D4T*h`L}haADI zCk4ZnRsvVb5v@oSBybXGT6nVAaTTqvXegmldj8MN!A<<^7=MT=zcc0+7nu*!JE z5_D8fNtdaz{U8k3od1KI(J4nf6?Y$`xl3DtZE_?fvf&BTQGE~ak>Ejc7Tl5weIpgx zDTA2464~UJ)Abml-%9Oh{!E-8hQW4$M@nDL3Kr$L5J>HdWQP^f zg)vgm8FE%^k_l-Bf}Cbs1^h<}orr_|NkECz%tr>>CTXhklDVQrcaxS2)J1urwCEUV;nV@5-$4Z-(r1!!J*E*U)IkbL@eu;?1X-#QY|DSXY5l z<%r#+sc#^{sJ^bRz?D+)c}c&9(NO)RVA0PVIZc;ggrFBFH{cUu@OKe-q^M9XN!&^L z?2ugNYa#{TEd(V6(Xk*=j!6{w7=)Sfo)CDxv`nukQQjzH=z@vi|B<6a#d;}VpR~XU z>0>Bt3haRf?OvlO*_N$rO7-rs7WR#mH0pi25;|1U^MBNB_z;Y3fzd zH>YF=XJta6@8zTsUBPsM8;tQ0fo{9pM zZ^=cf2bmn@)OKQ^gL=dMM3@T~5bhv-pW-LV3(*15hslI8W{4C5?20Y{7w;3I?P z5IP`%!{ltpOcCW{5-;m0$|X|4RZs+DQfj2HsV%`yDSw6x?h?W@|2z2#hGp%=w5X85 z)=37{PU+(!Y0?vNgbwNB3vh+mi5&5kwxa9?SJJGgkg;oN!@g%&~qa!m~iR2~Vl5FRA? z#?v>NlBs6M;HZ

>;D`&J&`+csX76NfR$aG?U;YX_*x4ph)mFo4_|@>|B!_U$P5& z31W%(Zb=s;CBy!pDPv@Gmq?Qa!iQwKZxAdL%{^ctQq*6L_y#IT&>=a$Z%GB#%i!uX zSk$|95_kp_p!SF0Vsxdffjnxzra+GD6nY^-ja*E8WG1`?6B2!@G})?1QC=S?>5^}x zbkQ(bz9tp$ftjfNc!{@3JW>v%AZCtCaJ-8-_swGi3+B}N0LK=^OV9Xfh4n}|~Wqy

dS?M`|8CQk2ij`al^}*I-&7@NJSVIx7><78zT|q~fz+2^#1(P^dRWV=rh(1b>N- zNWsB!dQHU$slJCC!4YqvKvH|&>OK8AHO*N4o<7gQJx}BCX{jAg$^aVxdw8eQ__?U~ zDm@f$B8{)opHz47omKkdYd_Vk{A!gR6nqi6<~D%Npn?EV0Q!2?G{87OHt%HUt$7YL z7-Hy&_}tbiLx0>Q11`z~EafK*y$g>%qg!q9ZfMJs&gd<9P_^#ra~S2TfSUkMj41#R z!IP@>7A`rsq(`fzeB&AY34ZmAzJaeit0(j2HG16I&(K+IjXv6izJ)OWqmARi@9WR` z?16df0T%&{0Qw;fZ@%+={S|zNL9Y+=uC_dE95(P{f7KuJ8Rrk}0l9!e0DW8II$rmI z-hxM;gSIzO#`j#DgMn^;pvP%`tt*l~vbcmRx`Vy|QsF1+bbtO)tsceQ>-6b-b)EhK zpMF4J=@J4K7ieYWnFsY2M%o|sQk8oj(sTL2L;5&A`Xl`+U-~Bu#`UnCz?UD^v;A73 ziHatQIw3VTZ^G=XNpok^XJvgk0`> zKp(|#9)Kzr59-k^NO(Ibyn7sa!%%;BNbkjiKGNeoNR=GOn3p+W`qVkOyx*VnBz~9% zGw`sU$P@mo2l2+kdOFWJqQ~*-Bl-{?a1{U69YwL>sP4xb{;d0@`YK^G*%kU7ulOcE zcSfC0!16UGcQRDWojrBt(-^JbrC)}Mmp_BnM$+h)YvTE=z8)=Fw~{3KosD>9?#!t( zr{+%0oIZ6ymcpCY!&P~I*0YV!di|iqTvhA-B4$a&OLDek3w&vxz#GR2eEzh+E@K7m zwN&6tScay3k2eHfA?Y=%M0waWf!BN>@G{AF_651CuB;Fh+b#-R^hbe@tQEM2Y?$@5 zC=aU_|PbUZ~ax$3tkZyVf6y{lA4WtQt%vfQDxLAt(+K{0 zx@tVFPqt+vN9OVv133>l(vOcbP*eP=Ud*rJ%7-EKc>{s~Q2>!5d!2zuq)5gy&gcm) z`R*bamhmlT^#8QwVCLlW)Ed1XFRjrdkPVqXeMRkUfHyKz5FiQ=4@l-0YS8uV8a*I} zlBLxfsTL3chyx@7h5#l5asc^&<$zK^8Bcm2$#C6g`bi$}0hG!8s~&2@$JG^AKI{Xe z#l3&kGi>XSCO7lob9&2r8M8}4Su0o#a1d}DaE<_Rx@R)_KZq93B1^;DiKSR306XB2 zi0#lh3;jNiWg!n4d^dDLnH7Pr3~&rIOv=#*@RI#X$b$Ey#^Vzah@!m+&8;)A7$9P9 zzJv+3?g*Gr5rA3kx)G10(0N)RjI#`{PJp(#SWz+%hGm!}i3pSBXc+MvJ{tzX0c-F$ zxf(Cm?Sa8&;mIrDI40>$Ojy6);hFbBCJLHb23X`X z$e4ts3ia_-XaftSV=pvyq;z z(qN!?)Vmm5F2V+V7Q=!C4KrafFfV-rS`|XWS1~$Rq8^Pxr$X5K7}Yt%AV!&nasWm; z8H((M&%L2c#%fp!Zn}tptJzNd06C5Y}jbWph4+ z|IdLj9e&wd360RnRs`8nWaJ=NB)t}$fmVi5tV0ZJK7o!7Vni^dEBG>Cg=Cnq`UO~V z9{6BE<PB5C#!YjM2e*OHuZI1{lf@ft!-SlaBg4xOWEzoCDfAC|GbE zquPVc>!H=ScVRY|t{$E5odS2Dlfy7$1gtRx9d89aZxZ4HX7(;YXHeh_EVu!RZM_If zVE{MDeVBUXkmb4`Qx4_&d`xRxTem}5$WPycSVPR5+z$V5#^@L{x(*Yi18+cpW$(sl zFtTD&4qA^!!)lnk8bT(69ttILs}OjIgM+}w--p#;xl*_<8KW8vrS~3#i;iQYucK2~ z<0ASg#Xzc8LCL?OPYgI`2DFbykR&3g5@4!x0EW?Be+PhoiAU$@Z$f+c`7o5*jG58! z9IhcS>RF5)k$nbA?u9?gcEY4zfEP-HBD$}GCyxdLSwqlq`AaCHeh8G0{{YHhnjb89 z3XBkZI1d$Qu=zujH^Q#~zpnr=mFuT46-*n4V9YK82CRhA^u6`;9`}%QuoSF!6&+89 z!pmW;Jao1W{DtGegU(ihr*R3~Q~=(E7%W_#0i_EjLyOW;=oFeIJcGuwV4nA&&^s_C z6j+XqR~i^4m_w1Zj@KiKq4Z(og5%F)B-OaaC{Mx~qcMfg!0&08>)FVdevo|~GSg9) zkAXBULm3L^VsK^Upy$E=*Yly}bZ8GH_P|Ux7h$Tv%y}GKlM$`>&6y3f!CBTg(qdyFyLf zm;VT*q3jMQT91y)q3CUL*F0Dfv!xjHhy&;YL0OAwpFsKlCd}yv%~ry6H_>@AI*%BO zh~0-^MAQbs%yDqTUYKt=I@}AB#>1EN5@-fSQVqf5V5#MB*#^j(3@c#EV_>Nd=djTju1EQMtT zz6$^QeF#mUecDqU=Lnny5QvTuNEG0JLMUN(4rWZ|qUd!Pn_CQMVIT0M5lA2a=U=9dHZ-+S3M_ZpO4(1cBx73k2+$ zg;B%wiD+ajJ*4M1v(s1p-()38zUG@AjSgtn42Nc5P|;BqB8~7=n2fLsv?N>v4GDjP zVH2*vkO|*{nFwFQNC=;*6u1XEr}D^JiT4Y93nL=>rBx;_P{fCq@MZ@bOBLf`KEhdW zsEH9Igy}~U3134X5MCwg=a-6dlB7G}L#m(81@2HG@Eur&=-Uu9gtJV=QRsoFB*L&l zfjc}WaM&S%SIiMO>o)>tA{vRm1WAPO8ac8Hvfb3vf*vFJE8zm-TX9t2`3NK`-y)3u zl|X6oTe7412oPdO{Ycea;|;0tAX$;}nP6}kC-52>8#koDsV_^q^lg$1sw>FLB(F}I-hZhm z-;ptu`K2hAEEYKB{Q_}uVu`?;kex`tRB6iKH$*u}23e)_?G_o`CDNDOkPxU{H|gUQ zGHA!VF6b9l3Vcdh#$PI0QXqqAOPyd?FQa_cK2hF+6iR~Uzbf#o4+RdB0>h-hOL971 zLH;NHLsG$RMWXzTGZ-h!`ZEF-978&z2DfBKHPU1i$lpXi=5&D+a0D5Q=r^Q=Y-OT6 zSK=Eo7>~(V>VbuW_%BJ9&94{b^TM(PN+)T7U}>sea)g0Wp<^3GgDX<8ZpTG=n_GC?0ta?!t%DowjnM&%3{gf7yAJ9mf% zNz%vTrE7}D3%V*zUMVebM2>uw2nibGoJhK!j_($`z$fWEmT_=6?AV6HUjH961E%Mo0W zKC_J$4dzRFmK;H9g`oG!5x7F~Uy+tNGF{LE^95eGMBvJO0?#cpae)#jO?X3^XrJt8 z%d>*xdPO?zyX z^MB1pg25r@{$Q>CH{ z3uHo>FFUfyjyB1R=q61**Qr>w5U@(-co(_z*-|Lzw<-kgBs=IPgHM&IyJ)kh_mQ|@ z{c1s2CKFA~98u1c3OJ;xXUGv=kg+gBc68yq;J@^yz^A0bB`c*I>4I(2!Zp&>l_Izc zloJ;PW5_t>@z{&4r2w* zT1*)JUnPCDQM$lQnsT3X1{b7nk4TG5mBD&U3cMhv*EJa%!^{pa9iI~I9nzv( zvPAjVOTg$~k>A*>q-+osHTwm=B~3n3X2Ney2zr=Q?8@t++(ULa9>QpL)a?}5rAXjo zG9#Xna@?dVMnb;1|3CGGVC*Crj!hQjebN;0?(zUf{6h0d~xJ+!8b?- zY2X}D&dd?mMNZESWuiP11MN9+?i8;n6LRtKEb;7h4xU<0$TfcWQGd~!H@0L^e7QGE z|nPRU^MGn(?wAc8+fiX6ZaAkXem@5R*3)-_umx zj!ow~!Wf?2wqrJ46bhl&L)kcfy&Y(!VJw4>3ukfe&d1b!pL}u%9vZ(K&U|@jDD&o< z!yzTvkA?Deek_3}__KhP^tAf*7C4|8F=Wt)^a%q~l9E$~qgDF|mdW=7Lh!h@EXcnV z*!Fwk9mr8BL(?ZDr;O+~d{A2YlfxB0KNug(yB&;C=C{MY_)ylF9}Q)ZJS`0N8q%Jf zW7K#R8uJTb__nGyBG@2)Fq|#tiIL3j?nCvo)c!*;SIvj&&_@~atHf zC&BMVqkG1In}nFy_#~bZjozc9(DCGGIAsT2t&C=S_?a$jh;ccBjaK>SND!CPziRq- zHIm)r2|ZW{|3^pGlMjhv8OGr#)~Ip6Se9XL1(!bU#XlbhtL4SAbn{U=y=yu!^~vOs zLsIykWAW=Fc`+=&xE#wis607_#qrV@#6@)%7GxC0Ar98YLg(^AYql|@JKL(-Lm>2G zEB@_pFnGl?yV}b6n7kH4^;DkC$(o&skDUk2%zBRR@4?#evIMq)kL$rE^K(5QKdvW? zS=N(97`c6zpVg@E$5yI%2guFw42)Gs)0|iIW362xC8>;8^kRMZ=oA)ieAkO5tNh!? z*?T-ch1GLU$l;TF;%mST_hjKJzH^xM<#By5f`R?f*UEml%J0u==~p0n4`9A}EoEk< z4_{S?Zx)+3fb~=xdBp(M4?nY#G!Bk2e`Y0cAnU4SEaSrmvWa+&rE(zqR4ZJ{UmnC_ z@!Ch-Aoi-gx}4i2x#5caCg{Ixz_5spC1PGvz_ z;auazRJK6Xat0dqC)vxI=DC`$9R?N8@ms^#8@B1D?Jl@`(DPsX2Hw4nhqLYXYTNLa zMlcsGqmQw61Z<`iuIBsG*$?>C>b{X|juzdT$BtqPNU>d`7``ZB8UK6~`-q?Xn6={j zf5W^q&k6jK->|1(ikQ*tZ!U$xq)m5$KbH}n*Y<!#_;7+(B;^%_^qQq{Fc3r z{@|hy=(C1DjDzAQjj-|Tcjh;O?0SlYxFnj3d7nNpJh7HM`4sa|FB^BBV!EnXcUS%;1jjeGZ?drubQLpnQO&MGg!HnG0*6q$(pHThT#+0B7D^Q#6M@w_a26}WcREd-!rH2PnnY9UGOMexZwh-> zg-V^W*(>zbp8K=eS~G$MV?Z;evftXSzC{B}>Vj|a{&p&RioQ2*=rp!genrHGULO9g z_d+8mjk`a?cJbWBtOI}2-K9Bie1^HIhxwgn*k9=Lgdb05zW5$JzRltDIc%`zS;8Z8*;6+2w|w{ncaI2OnTx>0Pr|sb#JHZA z%Qn$>?|eI#O~dRQGmky4o1w2v;3tMNAESI8@|KqKq~V*#KDW@1i2m>lQea{@3qVp4 z7H{M+`K%*MIX<6_Xr5?pv--@*nmL)PA0gvk0@ZegHe0;naV&{x3t1e-7Qh#sL`K`Z z2w4bUTepZk>7Qz@zUDht)1RI648CVWba0aoD`3xP(U{%^tgn_aoNI+_vF2IKUnpes zlkiAt?f98OHo6(TAd1P-XTktJVP^9Ve8PI>#&e1ovzb4zZoZ7fi;Gwe`cxOQCo$+@ zi&;BlE@!d{*AiFos>O&zd_Q8VC2Tc*SeNfw!dlTU`W#(?FmB|7ma=y+g@U)i3EsVcP8EPWm0KVF6<8hF?%>^JliK8s#qFNe?+p?sO>M}5!E>i6u-nOT!^l?9rlw>5l= zk)HVG-(b#eU(K5F%d3$;_pC;~XRoqq_lyaqIVa=WPi8+mpZpoSwv;igwh#aOFybJn zlug!@_QngP>@BONwC0`Hv+uPaGrxx$X|FMFP0LwgOxb_|!C(~|+4EY)^Stxx?1g59 z=5Dsn(^)5Z3Fog}tifB=Q4W*k@W!U;g@AY&d=> z+4$})_LT~=nhTcs`(8h6MJ{bL;9KOn!k2jDcJ`4>+LfljXT(5 zwxMRKE%&yy%5H#E;A{`pS!qE^glZSd!bxy*&9jYcM3w~Iw- zIji|cyD-S0b^QBXY__Ik@tNrQ|T+-27kzg zV(CJbY-!-P%Mw(0`I}nShkmuXa~-UFn$N9cZMDQ;V{IK9YlT&>9b$7_a*9p6V5N-7 z#VlO;5i8RQb9v`KVKJv!_$TzA^d|rIPnc508+oh4FtKM(KJ+l^bJkPz9)SNg9l^j0 zXYh}Yut;0|ZirkH-wBVSHamb@?w z*YS_zIXv$1U=ln+4{KoU0yB^YY3C9Yot6Qly!pXw+`rRb3#E`>`;v9!#SJVzkX~|0 z0hRbv;Aw5=;q;0AJe+)<7g&N;yo?XMfSty~25jU@FR*yZk{@4SF9c>FKz*SRNwA{b zV*#si6hVK!P6->nWbv)ZVK@dd`E0<(9QFxu;k9f2f4*c(EUldEWq(75H46aBR} zp7;t|05#Nj=I^Wyvl^jwh54yTe83fU4cVb6+7$XYAMrK2fgQs}QSQbk{U^JFsLs5~ z{MB~+`K#!8he77C%%jTdm)x94zkNq?RBtKYC|t&88reG`hrK({QVMOnCgroUMJ z#Tw21nfQg#<0zduDTVGHkykXA&;~Lb&F9mls)g1Ky z^mZk1T~*ot{ScJ*ehZuIf`H(zfZ~RTfTH4p2<}!tP*F(*1YBEwXqlQ?sOf3bv>LNr zn?~BxrfJWtsir-(WwIQ%nf{eo{lDM$xbTy-Y$kgj4)?ux_jA7I+;i`Hzjx*1lcfBq^=vv~}v|LWiV(LOB_v_0~}fBb9YivRQ9XtPVmHz?*!v89>C;B&Cw z`k&x#2eD~-m~{Nk|39`zWS$k-QTm+n{|=*1>i1}3ij4T)|LbUN7xwfsMV(R{hk9xk zuEG)sk4%|z8fCvC2d(V!GV=$st{<%HWU2lU#T}5jKcTq6vf?NI@1pq)42aU~KqA83 zFCRI=!tgDVjkoAu(>j#*(!-D>L+-WdV4Q68(IajBGMyACFwLW+wkDDGw!p#BZ4?{DbgwiY?s4M3(;+Vw3h zMmC;1q`07^pA2y5Yi+~iHJ9F1;EV=|JwPvziBA0`TOaE#JV=ji2+!~Lxxr^$c9e7t z(w%a;mk}s`3DA?HIS4A|^+M$buf1=d)rKzhKLzLkHhZM`x+Cx1Adx}(%ue);y5N$U z+6Uq43Mz5)RnEqJIe(<~{3Xe+(EFNf8((r$TR?7mA zXAN|0TW>ua>4s_#`!$plB7GhDJS?8*k8rZErH>wl1iiI3tyERwj@0MJB!U&HhCyf4 zklR>8D<*CD+)%eDeF8mlS6@@o`Epy7{-7dJ61V+k7ae5T}pi>CbQ^3r4uPi>-T|8W6IhTQERh7|_AFoHj z+LguY(J{qsVA^q?tzz~^zvTButeTI@HYD+>jFqR5!zZh)yoWG-XIs3P_Q=JF zkdu}rOIS>0mZouxQq76HdgD=*v=(vkUU4sX+eQU9o3m41MKLghhY_S7M@m|LRmz&z zUc%bAl`=3JFNk@?9lLAJaTQmYEtyGVPPR-&7{fh+ygT*AgpH;pC3AMlx+F9_YmhvE zq_(Z{A}(XJA)5BFSLxq9m4_8st7c5B+M|ti5`zE>EE3xu0w~DSw7XECYU}ua58tbD zXd~cmcnR6hKm8FE7dQ$_m1t|_Xt{?W=Gi|YjLpIjtK1HzU6OSC4wVNJM5ghnEtIGZ z;P!zc45wao@4Ef(52&;Srvd!}gG(_Tp*9I&Gi zi?!f&uvc8?%{L&m#gMJ?A&aTJL{71oKsQEcucSvmi@8)K<$Mc&jjaj2c>iJ*w?{^G zG-Y3gpkG!o-mCOV>3IJ}b10+CvPv}V8n3uWQpa{k3a4y*HDGs5)R%V51Q z3aGTB3X>X5x3&y!saNa%^5;&us;aE3;-bR8#K)#s)5jQ^YI{e)X7y4(O}JyaL3v@{0TOw%!v}99Bv%=|aXXmn94>zdOv2 z)nRoNMf+r3Bl{4AxyE7EbO4IS-moU?fu zuu3K)Oh1<&&ziX`smzrxu3PrZJf_OQWa|OshrxcaD=fqQHF)t9acmC5^)JoKQAuGL zx&guaB?bYPZ_>L#AByXmq|6*wR~MG69Os%euu+(6v9#lIH-hxQb@Uyqdi@ak4M{SmF;G(4(1T2s3otw8~7Kg;=`qV!#rwoc$OdX;nN@mpvQ zG`0q=ZFh7Ev-oRKOl%UDn%u=rZ$#Lcgly%h8gN9WQ#ez1uv)~9kUT4 z-+iC?naXC)eWEdI7?o^xy9@!RxKAac`9mARQ4Jwx&*pv1`OVPX5W*`nujkw$!&8vY znhL45U>+20O@E@TSx>m^PtkqT&o$>^$1l1Q@8p_Iw&p{#*6+?zO|H9BT&cju4(XIi zY#?c<{pN z5ZhIv*W8ScP74d?I5_-@n`l7H!p+Gczp}hG4KOjMhT*a&P4|sC*Tj$&nRCKu?y1CF z<_s`gQhEVZ{FLo5Bw=0ckaG8DiH)*7*W8dLTJu7hT1*GSWh=|_1*ctzV_6*#s>vYJ zw?>?01+BQkr2D4fw%I3Zju^#-?Nhy=w}X+^8gkB@A+j86au~(cE=&?>fXjNLOK)@P z5{(B(W^l*~zOaI$R$$Ie;wnF;CQ%Jjl&IKq&2QKy ztN@#7u{MtRQIroh=rKbq!I@!BLpZD<#D+fReQfAshFCc^!{UYz&p3D;d#>pv>%?66 zl77^bdhEUm%E(VpPA(m`LRE;ZnZ)fv-ouI z4lAVyq;G${t8>@75udBv$7LPv`)H5K1L?>W_^7;uuyx#{)>lqgA(O7TX_H%?=&wh( zl7rvvr!p5jDzT_bA~N(q8JVs-`tjErYB*%7k4No*wYM5thq!JyS7ok!s9mFN-y>`L zqZ#`jl}uDGD^-CQdk!)}d(7%p;A0Y%fuS@G`WWI>*3LT?->&M(LY!ruthS%HcWrkS zSNWKfBfn4WV{$FRm^!5OZd3ZlPrRkl?!luku7OQX1NGLjBU2CbseM8oLlH3typnMQKNC|{A7z$0E9}SLMRFuixa)DxCm2Q=It&Dk@rs-M^e4r*G>h9)e{q)HCrker8krTR zWu?iZwZOw8wR)g!y1a<)$QGDWIf!Sltlpm0zzF?WYs)dv-N8FL+h?}zEa+H>M zjec12u0d4X3Pg>(28Cy=Kv8>h^^p3BEA)7qbXtMvH7gO_bp`9jS+F^2U>9-FVf9a! z>sF!}2Ua3)=}=@iy;4t-!z=X=G~?h(R8_DFCA>2fCCuU3e{hCYj9G;i-nmL2V3QYD zA@L5`i#rmy8s%)vLpfbnqnyaqhg0BfHiDp#l`J$nq0U3k@pd@4jFCT<$mTLhLqT5 z;W{*e>m|YFsjW(E*CWkJna5zg72IkC+s(jlXJbZmo2mUi!kt(v|7khMjBVrx1}PF* zhxi;!oPuRu9T+iI#^8=^hRkI|Eh6yi_H}5(8l1K_Pi+s$UZ#0WK4kE$nKb4j#B&_a zN{QPus9DE8m(+DgdD1M~&vzgua#o?SI8Cq$&5~_QbCDVNEkZ~&C04LVN;aVI z8?w+36FYvl;xx>H(L+|`KHO<--8p3D@;lvhCs1Bz0bR4nY{J=ZI8LqPewQ?!LWE|z z>zeM|F1v0(&L?muOqOndrRO#LYcrvLPD3+7c5l@0^9|Ma;MZ?94Tq1$2UI+ZmAyCV z9c(M>58tFuv8^lc^%UVQP2o2nPQ}-PJ^}RyKW+fM3W{j~QwVwv6z_{iS)f-z_^g4p z9P|%R>z4RQ8t5rdWGg%d18oI;2P%ZX?*x4f>Zv0S=70^&!lYCsQwJ_Yp+!~#0#V^HrPO}iHKJ}4Ed zKx;vtfYLEutOY$0;=vj_283y#n?OfELopM&3G@|cU>JT426_(E4uj1i(5s->2viDs z8Pp*X+b4k@1$_e=8HHc=g8mPb7p-YqK;M9dx6!oQKwpDK$ABZC(;oaQip6KtK(4lM zk3lbh+Q(sX4|*Sz8jnR;(BD823E&WDKd5s%{2&vwpM+~wA+ISq9!k6vEgQh}6fwn^ zl!)h4lp%YfX@JL)A7!WH{0-Pf87rVr11Mjm0hBS2Ysy&RgfgX^30`7^a;A(4)W3kE--3E4 zY1(z5e}c$WYD7;DSf^M?cGsduWG7ioHY>K0&17w2d%U3nB8#^o{0KxgbH5?Q=E*p} z5kzpljj(~$CNNufgy#aHN|NiII$V4LqFRyt?K@d)S7N}^DN_{f(J;kkvR#RV>P6sE zd&qXOpW>kklKm6|MMOMN6chu+(I5(smn?oRf*q(_iGhZNVjzf=2q+q=ni2y=M2t`z zG*-mO*~Ica${pRA;(`3{!^t5~M3*zwh`mF#k3IwCRLUyr+`V-qeZ3I2u=k`1x5mKbTM zj8cBrBhhmpVt`E?G{N^#{-5J!aEW$%2p_GD1a$(P!!Y>Wh;pO23z4VjRoaI74kM1WEVL=SrI%$t}-43QiB0$v>ya4 z!AP+w01_8UY~H{l-Yl#^{{O8JQF5g*p-gE|XiJEvU$ZBT*g^fK+vPnrQ-28#WjK^w zPzHv2OpFi<1fn^R=uNf)YGtZ%ZCuk>axP4G&IXF#iV3QcGBjWR0xqac&9LDy)$11k z@~ikrPx)Uk0{#;u)XQH6$_2s+_5YU!o<^Yj7dWBSBbKOkw0u-KY7@0gc|;y%Y^Y9@ zBW<~|`&2p0O|rP8)Jj=Js+0*V6iAo45~85dAwZRLLbas2aX40EgfjCxQegk-si;As zxy@Jh-rJ@643$KuS|Xc>kk*eXN3_!zDbLBy$du7SK#{l%zRU>Zfdo=l3uo|AP%_^8dY!$SsiTxdxZB7?JGPKtUcxUxokw%RN%D8as;Go07 zhGPQ<8xAyT3a8vInrxb9n0rs--0f^rXb#Qve^$BtQDTAo&nlM-AQpukHI+;5iMJ9w_}4r_`DR4Bk}VNV=Yuj< z@}+ht=i}_N8w;QWr?+QC4WhQ)kGeg|#iFj$&7x<*skAwx0hrY42*(0CsZ%qV z=vS&mNpp1NPAT;BF3|9*@hkk^_N4h5kcX}HHYfxgSx#2}0c$`WjUFmBfJW$#Uju^t zscuBH(o1hdU+^^`5A>QUrlw(hVnGoo^-)77!NOH*Vuh+oRV3#)08wSB<5XEJshe0L zsHx{1Q@EhT@rCw+YDZ6-OFQJchb(9BsYZNSp}4>iipw%wgi!N6Hk8^x14I;4r)ijo zAr3sm5l7EbG>A(z)DEheTFT*5lm~FlCo5D(*c*?zQc3;i8ZMDa%fw}LH7HS+X}ze& z=8y{`MXN}gK=BZ)G-6aaf|jbLY=k-6#eGgt_;A8>Mr^1D*Osk-{MBlQnuMz97V>Fb}%9?%ZZ$)N7jub{foMAK5zs&f61eg%&rP?9IjT6U+GL)%W3YrY=v zOJ8o%egvl_ ze`TSFNHy;xFq^YkncMf#Fg1@S_{egCPnlf;mm1@}o=7YZh-wXyBK>EQ$5J;n%o6=X zGzT6f4ub5r4!PdLEmc!Z@ziMBxS+x3f6C21*FvHa57A8#ar9GSBKs*SBAVjj5(`zC zqa%UMk&&aH8WD+l0-f5#C0-BpuxU8_7ODjtC^&UTzH9e;adthLc4twh_(W&&8Mn~!F?>#k8Mo03j1H=U$A3VP@Kzs$2<6~Lx@u7P!3ux2~f|nvvKx=+og|rGg%8q!OdCwnY z=gnyzpC57h&1KsLlkd?UK?{{ZIUjp}jt5ERkW0HyqvUNr6t-wXs8uG{;GEDG_?i8u z?WYbaqe2(!d~82gzSXKW$9%e2bj{8*HfOOl9@ydLFAbb)JWy^J4UJkGK3`))r$sIG zc-xzwz5k)s{?6uv(gCGoshmvO4sVgs(d4kqia4$)Z-|CXc|>$P*#QC-X4})~coM~Q zI*DYCbR2>?($N9sxXzJ|z8yz8%90};W!T((^L9|r=A6=}I-1i}L&b8&O>DB?gM%Y-YF7>hk>`%9Myd-)Hs;@f~#~l9&zCU2C=WI(o z9@DyUs_i{g(jDi(qFnLc?|mOj)XH1hp8)xv&-*@nJ%^7{IECgx6TBVdy~0UQ(rj}a zq1{l!I2{lUzh}Jn0~};STpK+2M+0#bp&As_+^*3`TtFLP`u_xvnu3q+`*S040d0h* znLl<`BXI$31mu6d?$-se5!C-b(&cJCRC|;voX1#wA%<$tZ(j5JJ%{Q)^@aSE%fzwz zoOb$mG}DKnVM^O#JXpOrA3IH3a3RdJ$65x%Y$Y5H2&P4R9{2|?$y@LLsmCL95;=9E zqeyjA;Pjs5aIHtpgy^QJCt#fAcIaoBX}%N2vlg|E%jjJ z`>p;QIivt|33}Yzr&H#dTxz~z%9mNaT{{n#PKo;F%cs9>8h!p|yV;vEo<`8A^?uHF zen0>2*W5eEpEH$nuFnBr-qYoC`FD3h4BqefA8U4?z#GDWGZ_vbn*u@K^WkGzPdQfCG3J3iK6qSRuVi31v ze;(9z5SCp*Ux6+jj30l4!gI0ydl~-i17!@+wA(?hq4=&DXbVUihW*PxyFq#$)Cu$# zkTx7qpc_G7feJ@x+B2Z|k@!dih+A}LjMB7wK_7w~`Piibv>T+4Mgu_GL9Gff|1T)O zFF`>eV-Nv)5EM{|5B7jw2DO0_*MhzPrH#c`sX?EDipJryY@lPH?D5zi9Mob0K9mPK z01B80Zh*K$X!}X96QIb+*xm;8C5YQnJ~9RJ&$!6iG_egr+r`KPdJe>m(Kdj-22FH> zJD?WDO_i~5vYnN(5;l&kX9HLv8_7nqQdZ7}v*Jfk@vW$9I?B4ngMVxhTSFPK63T@v zqbw;3Vu2VT9*70vfVdzQh>IO4gQB6Rhyf)YB?fjz%K|4+DLci^u+tQuM**ZcIEV{k zg4iGqhzDYT@~4~$E@FjpZIGoYUnNR%lHw#cmCT8iXN#La4l#R7&{57rGyy|YQ}zUo zk}qYgKt_O>7y-*E9)eS0grXvzTA-3;;F!`X;$cjdr4?r`YAw)5{u;>u)sEBDVh73ihWZnyfpm=Siz7;~9K_--wdR z!GBh*79~+m*_$5Z1nPFokGE8z9JT13zhIWYUescB#C=xL@`!Y)FAJ0_B#Qj0D-*!RRYjEiy(**H+%yqk@bN zW#3?KMwsl6 zMD^DN8uKJB%jhTH2N@A&&Gml`Hn7zJ>Yp#0PwB~0cbPFzX0yV_+V6e_i@1vT@!)}{67_EV0zYt%y9Q@>SEJY+Z_a7ca}>e$*9X92eXLi;uwDON>Mhjl{+p4Nw0El%kO zj=pxIf!=naAY#$w;_Hzk`FdlvJedTgJsxi4cy<21FHpcnQC%3`0ZmgC4PYH}<+6B4 z4ULSJmP3u6k`)03zNUjw&3jRDxD8NiDr(>+qt~Y8sBu;&qcaN$kRdmNXC_CIVvLea zw*V4m;jvvIfd_6iT1#LGsy^KviW>MmzFIKl7UMFh>1ON{cN&^q-Py>M_Xip6B(O8; zy5yjrE(3c3+7G7~_0q4G5iVhaP?Q<_NM{%X^K9++_`1Q?W#FxO*}f;(W!5|KHnglR z#R!$kWFu2v3^xYIo^X_x+}Ri`52oQB@^+Tvn~h@mSDG=v>`&%4@X~D0)}F{PD;59H zgWceHnC}W0H9t5EGeTr{{m}Tuhgb0{jUDjM|OqJDd z;XC~&MnE2qe5Nmwg3t8>((7aWlKPZ?>VvT9%5Y=4RUhE;M*V@q_^zpp9$}P7-3Pj# z-13!vu}nOo7tw};mxu5T3bS=r&VkTy)`NKVm(a;D+h|h0q!q(rKRq6jGg}i{V%%u9 zX46z-n(Qkyob|p(^%XYp%tj8>K0>;ErmtkXBIMy?`Y^?zpTTHDJ}dy3*~0p@|EDjsS!IO1sn3+-Z^5A6 z`I#PM)>S|ATRqe!SG=j}LA1Y=zpXEk{rRw{W?}dL1I2#-o?c>IUiYq!jb`4*w>r?W z5pwKZK(X!T_cQvZkQBp2H~5zW_?x zZ4UHHb+V;=`W?R6VRi?)u1m&OfWwB5k(dJZDXWkx-$T_8OfkApo^2%Tpe2k{zmn?e z(ke*}hB6g*2IrkcFm^|JLj9n5{xYLG&gT4GFWL}L*RErqe!T|gr1k9Gtw+k>e%;b~ z_sHqix9^bbZhg{v>aaVXP=hX%fc0FOWR=U zAF^RtdK=%7*+YvYzSPy$)>lUD#pm8rI{CNU5Imr5mR4OeJw4r>SH7TPc4-x~1Y5(D z&Rndy$1bic9b8&Ht*WdNd&Ow(aYea>?(9Kh^Ty|mo#ZYk%q_~zAC#*}r-zK#K+RoI zUb?8P#$8h~bq;nhl5I2Wv8_}4Y3|WQ<8up(@{XYxeLdRbep>Zg}C!ZWe-K+c_VYxCPebn zbCB=4S5aQ<3r2*)OkGqsVdUsRBgFPNYA8Hp1jm}(np!g5J*}j=#^T+qlImF*Gv-v3 z)MQGx7onmF-=L(bw~cW7*g4gM!Myy6>7}yvT_CT==lFN%Wk;~Ae-9&l_J{BYaF!u& z{KFAqAC{L79)PQEwDS;@D(F)nYrv;Qbbx!#^s)umEXs`yk;dlbNc>?V(%(JDx+`n{ zX(Y6Ao0}AAGUABQCQ@^|Y4ot)MG53Fy`-kZT{(a1oU&Kq0=(Svg#-NL;5p_-S73P$IluEHYCY-&l>%mvI@ zDtrCx(Kfd%P4{mz)Ll)WR4mLZpHZQ?&0V8%^T!rW(sGC8s+Jd)POGSz-qax0TQ;3F zPsqz3j2;cnl`A6c@oiCx;-o~uPED{Jw7{cWOh#8NNATzvHd6mX1Xdu4o7HS8;zVi5fs`&Ud;)JsQ>Fs zSDCGCgcj^GKM7_M$HrhRTxfZf)3ojbv&SRM%G#Cvw^rNhT*XFBT<5rH73I~?)OGpx zVOGUo47G;@(K-xr=T=ogTj$T63e%2u_mWo%&_=YoS4($U1vYGxy+!tJ5?6$~&+x3% zczYMwJkB2PS5`SKJzZ{@Y;PmUQ|$4QagjZ4hd4NV$E6J1R&B}vLVsHE_H zdqO{}(QJ{$f40kF&76vvWz*cHM38l(vI4bnNG+LBTC-TP52CV@tL>rk(*t&0ww2h* zTUrUl@fBFeI{l_rRLsegy+`e_671t2EL)Ns{pE&9j!>`5w|pI8a%F&{P2;@``Dn8} ziX|k5m<_C0P+EodEwq{=@jV;^<;&iVu5zf4BT7zoawW>X3`ZbL*4~}4H>+|S;nrF9 zNR)kOl%tzeMfkVzNy(JO1y)5vWYZ)^2&){jaVvK8*}BtV@M^HU?%@4oM~uH4hNFf$ z|9Z7!tQ=bCh?SFzA$^pEPd8oZhz_*aH;NLrT z1N;}^*M&AbM#r*WptttlH9TnfsV}$7$rG`fPnZiS&a@7F{xkgkq>mQ|S@GY8W9c}N z`JwpcHbs}tkKOEhGJ2F1KOJ$i&WIn|D)f`bAA0Y@lffqfwN_yZU{_Y75CvRc!oS7%@(sp{FoU6UD?*)=s&;^*62`=<85CRfEd{%u?I#vrn^4*h#@rNc$= zMzok-nkn-(L8j|AIU;0UTW6SfZg%KWxY>~`V>Ubbk`0q({hf|D$$8#UAafps?9DS% z>^K`EQ-?UCf=y1=z(mwkaFm}7pXDwr1wx;5r`dV1M(iH~%K$ka$@w4BUwc5Fd@pnr*mna9%U_;$`P3j%O5%PKN@ zrk)98!1D{HD`Z%1di^!U;qLL^1V(Js!GmitvvKCKk$S2ELTgQ;@vX&kNQ zz2oR1Q+qliC1E}kZR$~b7fT`B1vOPB;4&~EWJ*c8vyB`Y=bYlOdNjXsPH9G_EX{OA zSa-@Qs5;ZAIUU87?TlcjI?F?Yo!H4>s58d05J!hOTgu7dDC>b^FwU@Vp>ja%{<5mT z885+OphoML+mklcI1(h@&pArgj{|!SE^wAe%pFki>lQ=Ix3_eZOW~#H>qE1h$+By< zv#&f>iF7_S&QN(~fpd9~*~khQ-ijISs*>`Vr4p3v2=!98`St`kQSC^T%}d#_t00N| zYn(9_ud&tRTv#SDOx7*8x0klpI{V8T*E)mQ;vOvkUVPln-Y&qb#*$1b1rzg%1Hue& zlvvWKnqN)>-C$EtQn(!5>@2ccXH}BXV80fi7H>Qg#KoI>{Ep<LwS;z)4>g)JIPGx@OBWQ7HUS zoC}H(k2Az}lzoXVgTp|cvU#E5E&vLrl68TJzU|I zkv94DN}4Op#1Gl$Pg4^tA7r@TKW}y<%JlRn<}AV(xU`QWM&77~8(<11 zcpx+h8Zt+o8iB$O{Rs&68SQE#N5{BgWZyVf0`|E?Pf<`ulLN4jopOQKhVm@^C%YGv zRF#!rY%iHMt+cut_wgBQg0;G`beiTKHI+B8K^`2X5)4pfJ$qP_;XVxFC1(aWxvdm+ z;;ggXnwr+ohm?{sSA3}H*i@CyL80a;=E&vMvd-U;Xg9Cn7|wv3HfDjVV}M+oRD zRATqp2TGS$?8XL1U3<^@E(BC+9ewe5s}_$}rs09m3Op>@#F5ZC?!F2?r>n+evpM+r zR8Kq|L;Sk6_0Asdz(<{S2cL27mrF$U5af8@FeTh z8Z-cvey|0NDaPxO*IH$&|Ic^93re7u+Ty8r6*|O-L{v0rx|L+pY&?^T)wCICbr32X zhx1qQXsiX&+=EA8TkzyDwAf0!W(gjz^}=Jd`FH@_(z?h0Z=fTm*5OGf8p#(8F%{G< z?}~Ezpx3o{#EN`89Iddk(d$dsWhZ#PXpfiS8v5^?gU^C4wvzDwu~kjyFT~+_Hh96~ zuUA;%>z%An_s8$nz;t!2D?*vz>ysdLJa_}13W9%Y@MJF$&AWAwroDG5*kHI+61-~; zY2_o)t=C)kZtDPst+dYnbDb4F-5E{@7+7;#Q@&Nv*7-s7Ic+8?Y10%}08YQr5zjgi z_n93C2?7f67}7eB@J)C$MHArBK&t9^bS|D%&s~=t+kJ1Tb*~V8iMbM=oQGT^AoDwK zR%tbDN<$NknbL(|3%&7-bA@%?1KjEYfviO3FV3>=ooFbXS3gx~+F~ql zT?&RIAj9-CnX)5x5bcDyf z;NDVjGQALcRfIroI^eaG7T6dI4{Dc=#kHYnug^Atjh_}kL_DUTF&^-XM^Y+&2|&2_ z#A^m<(A#LpNA0k=#$Y@L?~H~(1v&#q$Hnq9ccFpBXh<4*e0zXdgf^-FY8}8kT!a~ZeqUXZv&Z)J|pP6TcZ(o9qUC@v#QUHE%Xk`+<0swu?{}vTIi(clA z(zLtL^05H(-H_E7uxSzE+9AVu^zc$}Y69f>8Q86k9Zu`4D>xI3`^)+PgRaZLlQL90 zZXl2fR3>;{9AKq8lBjZ8VGCeL9blC9IU2;njfTDl5xINeHJMuTmKKc;^SB$*cx{4p z?m(JDNZTLK*}V})1aSEh9s35-n!Fy^gAv-kMVqPZ2EIOpRXRCb)AlAqOu)hEF?h|P z1RA>tA7J-GQzyd=BD^UQ^NQQ>i$oBQj?EgKn-9*XT51g^UFmUH8bPZ`cqP%Os-hQ~>E(}_N`|4Z8OkoJJQu%3^t;Y;M-JD76l)dwzC#=s7O17XNJ3FTe}&Ev6tx*1sYzc39059ID^-PCT*N9$2g#6>VMsBAX?v@rnZ0~*h~YE2QKj#hE6;#j%x%a+=h2yK!PQqtpj2#hS=g@z79jhZx2!tRyb~r6;1^V zCZTsnpf&$SL%Kmrvv0%eI#)EMe|&Y*`SecEJfxl1AMO$wKMCUI@zfY>zyL{Zh5gAL zjxBCIOCUtx?p-AM5yDD<05^bLM@FJiZBYq&SdPry!KF#axT!tf6+@4jA74OpF}Gk? z2|F{UWfrs^98||_h;-^uypab*Yl#l^W`wJkrY#%*){O!x;vruEvlV*BV{T_S6p-Cp zHvDFEuyt?EDj=s{TS$B$koqq$oX5W!n5;+P$0Fcm^5xcj{y(zNI-eDcbJ@1QFT`^b zk~BY}eVXpf-Q0A}v)f@sU&^%Z&1e9sO5uZUWZw#{++y8X3eNEuJ{G-gXx`kb08n)9 zKHN{N0`PXASJwh4*ShgiD*7@G*PjFR)tAA70+4rtij!eifR8=s)1Y$LqzI(ziJbs} z2Z&Nz*%Gh+0l4h}+Ebu$;72^b6^Dl0x(pRXBR|fs1{SWa!JF3&7>S(cfk8utOVDZ_ z&Oj?v|3AR>Hvq{D6t+JFFC$+HQGh$e=)vcZ^Qs9j3n1^~Y6Bi3Y!#3Cez49B+_3Hd zLk%3=2kupPpgwKUg*#S3)@b$a4e*ziVnWjgy@l*&Wdvqt|3h=X`qHg2Ru+iuMgmfwHPo9GD9sDZ8Tn51o-UA&J0Mkzm#h0%S?gL-y{rPU$oGQu!(^$ZvFIA z3&v<4piYuzLs*}B!1a%SP~b>AyyL?!l6KseEsMVP?EmKKBhw}3xNEXpdfYWCkhp@V z&EtbHJ#Bw}Go^1p`z5WROkm--W;J{fgvkl0Bhm*3*Y~IkxIMJx$z3*0zo`C=KLxZm zcJB;$(-wT{%NE+2e`5#A7huIO&v5JYZ|n+)a(Td1?G-fXO@tZfLE8y7?Pk=Yj%RlQ zl@Z_~ZtOw$0orjK=fglF(JO-LM&xgk4}HWruSx2hA+>B4>=Wj>o-F&8H&Vkh|0%89WFxpJJI3ONc(IT3}eW*1CYO=EtI`8 z@&Idit3y@QG}P~p{(|JKiO6UPVRtuPRka7zmwyn|vi8`2XC_adMv zyk8dY4LIgUwOA{q&jb|t_}Ju`X95yRZpW=ZfwqJ00__0Z4Y~t#40Iaw1L#K(iw9se zhyXjgTlq2jIklVs delta 48241 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 JS>AB>zX8|A%4Glm diff --git a/ipc/ipc_util.py b/ipc/ipc_util.py index ac45d20..798536a 100644 --- a/ipc/ipc_util.py +++ b/ipc/ipc_util.py @@ -38,12 +38,13 @@ class IPCUtil: self.__ipc_obj.send.restype = c_bool send_data = data.encode('utf-8') send_len = len(send_data) + 1 - return self.__ipc_obj.send(send_data, send_len) + if not self.__ipc_obj.send(send_data, send_len): + self.__ipc_obj.reConnect() + return True def send_binary(self, data, size): if not self.__init: return False - print('send_binary', size) self.__ipc_obj.send.argtypes = [c_char_p, c_uint] self.__ipc_obj.send.restype = c_bool data_ptr = cast(data, c_char_p) @@ -58,9 +59,9 @@ class IPCUtil: self.__ipc_obj.setReaderCallback.restype = c_bool return self.__ipc_obj.setReaderCallback(self.c_callback) -# + # def ipc_log_callback(log, size): -# print(f'log={log}, len={size}') +# print(f'log={log.decode("utf-8")}, len={size}') # # # util = IPCUtil('ipc_sender', 'ipc_sender') diff --git a/main.py b/main.py index ac45dd5..258f3da 100644 --- a/main.py +++ b/main.py @@ -3,6 +3,7 @@ import logging import os +from ui import IpcRender from utils import config_logging logger = logging.getLogger(__name__) @@ -12,6 +13,6 @@ if __name__ == '__main__': config_logging('./logs/info.log', logging.INFO, logging.INFO) logger.info('------------start------------') - ui = PyGameUI() - ui.run() + render = IpcRender() + render.run() logger.info('------------finish------------') \ No newline at end of file diff --git a/ui/__init__.py b/ui/__init__.py index 865208a..d16e6ce 100644 --- a/ui/__init__.py +++ b/ui/__init__.py @@ -1,3 +1,3 @@ #encoding = utf8 - +from .ipc_render import IpcRender diff --git a/ui/ipc_render.py b/ui/ipc_render.py index bbd1c68..ac0c90a 100644 --- a/ui/ipc_render.py +++ b/ui/ipc_render.py @@ -2,10 +2,12 @@ import os import logging +import time from queue import Queue from human import HumanContext from ipc import IPCUtil +from utils import render_image logger = logging.getLogger(__name__) current_file_path = os.path.dirname(os.path.abspath(__file__)) @@ -15,35 +17,55 @@ class IpcRender: def __init__(self): self._human_context = None self._queue = None - self._ipc = IPCUtil('ipc_sender', 'ipc_sender') + self._exit = False + self._ipc = None + + def _send_image(self, identifier, image): + height, width, channels = image.shape + + width_bytes = width.to_bytes(4, byteorder='little') + height_bytes = height.to_bytes(4, byteorder='little') + bit_depth_bytes = channels.to_bytes(4, byteorder='little') + + img_bytes = image.tobytes() + data = identifier + width_bytes + height_bytes + bit_depth_bytes + img_bytes + self._ipc.send_binary(data, len(data)) + + def _on_reader_callback(self, data_str, size): + data_str = data_str.decode('utf-8') + print(f'on_reader_callback: {data_str}, size:{size}') + if 'quit' == data_str: + self._exit = True + elif 'heartbeat' == data_str: + pass def run(self): self._queue = Queue() self._human_context = HumanContext() self._human_context.build() + self._ipc = IPCUtil('human_product', 'human_render') + self._ipc.set_reader_callback(self._on_reader_callback) + logger.info(f'ipc listen:{self._ipc.listen()}') + render = self._human_context.render_handler render.set_image_render(self) + while not self._exit: + if not self._queue.empty(): + while self._queue.qsize() > 5: + self._queue.get() + print('render queue is slower') + + image = self._queue.get() + image = render_image(self._human_context, image) + self._send_image(b'\x01', image) + else: + time.sleep(0.02) + logger.info('ipc render exit') + def stop(self): pass - def get_image(self): - pass + def on_render(self, image): + self._queue.put(image) - def get_audio(self): - pass - - def send_audio(self, audio): - pass - - def send_image(self, image): - pass - - def send_text(self, text): - pass - - def send_command(self, command): - pass - - def send_binary(self, data, length): - pass