I~%j21`HxSx_bjK_J#BTz!gXG%mQ?^ahfi03MU?R+pICq`mSNU6>K z<$^-|beuFw$+h#mP*pF&a$W{|z5RzsvndiYa5NW?zRIHD5^Xw)C2>8q_J2oTbRPmxh#@crmJX4><$B5tk(=!n5?xN zWG#s&*H=BULbRg{M;dsXKz+Hw%-J!E$&XhNmWY~N(vZ&~A|hpjT0V(Db%AKjx^Z#L z%+_#JYRMIAicy6#I^v J $;4qtrM<@zbOw`OA=GcX7b?RaD>Mg6r+X^No7%TBhipuJ%C#?!jT>za%B#8wKhyR zQ;LLkFpT9JD2mh|HcvgvsMlG}sv2_$Zvy6H=y8-naHe$l0_V|tKkCcx;hV#GhVtS< z$ze%G_|M9Ua6UmvAI4+6$K(22&63U0JOlR#Y#+<9IcpBITux!iifBH;DiR^Eb@$Yz z7~%J+*{I0 ZEAtAA5{`9{N zymQB?l>2|}@w~_JA0F#)Tj#cG`actSVpq=AK&R>clV8tO#`WU^>}|1aSt)Of;=7g9 z{=B!87%2t|KE}a91Lbsjn4ZjSyWr&_d-X0jSnGmEwd#U*g2vqi2lYn(V=OR&14ag| z3P|6uD&Vu#FmWVFYWve<7X59yA27yZ)L|bwvRxl~Lal6MQ66=g$~y`CGxTpMLX7*M zU+ZT*gi0GZSCi2S_Fy!;YU|W~jI-2X?vPg9m@$AfBlmauF|&_xESU&9wIL|=YQC-O zc+XY9={>M9+HhAi<;8K5qsw~GU85SH>@1VIJ2UnVQBsC+vxRzGTN|$b2JW>GHL;Cc z<6T@WRM7ldN9#KZF^;6EQmS!U3%?GY26P*=vl5&m+0C>#s*K8!hM4aps3b=UcCP=p zulK{adPJjiKJjse*mG5W%aNkg-Pfqo+J0=_=}|+7?H3yHmpFd~|26zK8jji`>i&t& z*?8JvA>cw?{sAo6E7;@|jvDEtd6!;<+VwgZtbwh|5mR@0NBf|Qi7 fo!CqFCrj$ bSs5>^jAIM_e^D^NsNqEvjAz_eQ_vw4T*yw)b`Po@ z>LX2G$h`&Fp}`*m*49kfCxBBl{QH2jHTW~Y`pEu6z_T^{2Y~ZbSZ43wqDTv%!d|Aq zZv#*BD{@BxS84FOfNM1PJ;1dZd<^gw4L%OIUV}dZyhDRe0Nx4MQ)P>zbHe`ED`|$b z%}l%P+5l7Ryc3MV?1CKzSad>FHX50T&N_OK+F2h(JHKlPV>b Z8 --)c;d$%)YeZ|sjdA(*;!pr2jVvD>*4;m-r(F&q=FKs)ymg~cY) zCQHhb7E0GhB~qC*MoN)rjDmIWPGjaF+{RMS6&(ZAK*HcW!OM>8i^bgGifQY`*giF4 z` h`j^>F<3I`u5w ztN~ZNZh{!`k?l$|R+GeSHcD^`AJy}uCXGgbM4PuhSF-nE?3l7Rg$IQmZWHY7KSQd8 zGWxPo=%^+bOHNlti_o&u#If9BVJRY1EJzAvy!~fNc~DehnmNgbu{^y4{q`b_Qs=PG zB%y$0p-`x9lh#_Kte-5*IipNU X#QvD)Cp?rj%yvt-BQ9ruiMk~_^NFKA?AkG6|>m$V!)yJ#^( zN7?(SBy9^QGj~CHTE+etQMhv{R-(I*y X>Bvp{SBUC`>QpF>!o^BHXn_H zd+jv}jT;qjKeG?kz-zGCq`FNK<9n+z`Fd{lZ5OE-tSC}2!ZzTSBMK7~rbxNt_+8xG zwOyo>D9#kgj Ml`RFoY%!QJ}dVzcHc> zQpJ+i#p`CfT9wTc^+shUSi7nuHA+O9vi=c?*flD5kLN*rr}BFyYUUQ=4(FyiEZH$t zsZxe!A-G5lH3UB?*$|woT!moV>o_zUC%bYBu0lkg*NWG(QWGRLT~PLC@g5<^XkO4N zyg}NB@P-S@)j7O}*`KM&;LfTdEJ;!f2f{Yux6fey-i92?s(^NplF)5Yq$Gq*!*47a zI&zyZ!`xdtnQ!9eZmg}OU<~glQVPPR;#X&kRF+GTa8H$54_vGG%~-*sNZAORj^D?| zNV(G}QulU|j$wb8BIP3N8vGK_q>vNpIc9LP6dGAIMzUe7RRlDVrck(W+8zKXQlunM zYyp-iYD6eaq1_Z|QV}Q`HHyQ6f|ioq6dBSMP&8{4!J>3h>!VZ5tI86k%Z?C|qV`YJ zs%jLp7hw)3RVi3^RP7ot^{+?rq >|x|fz&fsAz8__U42opElPL<@7|jttgVk0Mrnny z1 <`_nN}U~g_B#7 z=oIc|Tm+`Xz({BZ&Ovl=`uIv?&=RGhTj6s-@2BC73hw~E*-*XhwBJi~B#_oq$PwdO zQlb^1iYMB}PVhTB!P9t!91Sw<;GYejCS|B?gqp1=586)Fv2NLDTl3&4%5t1{^wxJY zf@Oz>r?7=mmUM&41PoCS;Po_VCIUEPTGb-%NfqtN6rH}Y6a3EBcv%Q&Af>bbs%mzF z;QBUrTO_Ip8scMUKZ|gt;9TG|vX+y;CBZkt=W5{;Rt0#Ac5MfJZ5ZgnF<7O*9btNk zgv!eiKsa*I(pHS%&$AuUi&D1qiWt9>g$ >~fVX#muL_qj*6JW&Cn7Y_eSvUB%bI~d)&af@ zdDzea{v_!4X?SBw_>W;bnMZKokPDbin8g@U -@Wdgi1N<@2`*nbC0=^kzKXTqO zDxaRzggB`OxbV+QJ5i4t4R|EH$g(8V>jn+4w~cy(w67gLNA!j?=p;v3Lwsg6ad-V! zgD@-Z07vs)J=`XtI>GDL`njQxinI08+ZVGuTf^xzbf!7)4)`SaY*V&S4Bfoo=PlNZ z$iQsLhVV05L{gaA`fT7RzV6BZ6P@lT0jhAVwaBs<%-9jS1xQjx?=Xn)46YkUK)5>S zA-ZG05d)o$g2zZHQkvf5fQE*0dP?gpxn9_5$C=`*y`iiU`T9T>_LPX(ix+LHzzD}2?U1KIM94S%;TrI_e)A`o`mo4LfuGmGm1J^Y~749b70vs{W z=^C_a6fal2!@yNhJUCsz8Q_Q?{w_KSUrvW`l`h$ipk`1I1D%k<=~|y9>PeYL0dOKI z_5M6)dH?n$t+u~j!UE+yL- AIW`{$7b;$IhdV92<~991>iOgTEqhE9e_1L8`%ihn}smD3j2ky zQR<3ywaw3ld%1Eoyo8DNY>i%mj64;#(OofOF}liA6noMaJTb8fQx~IUO)#|rx?r)o ztO;(=1d!mv8cc$lG?)Z8YjH`iNIvisx8qP!YQln5SQzP0VPT}4tzD3nc`7Wd6g!NX zl{Do5BR>+hMWZKS^(ric?NDK1nV4m2h8@=EDMiJ!Kr>8?3af3h5awr61(0PlSI~te zsjxQ*OHpAVEL(-mgrBX!-bm^^jfNK9%M3Kj0joDA`LZg)S7E>g*V3Z+%;o_~=|A`o zr6rkLds {LYy|JatxDPmK0PLoooqt|jnS}Ss$~XSz#-UMv#GEtl-;hp zJc194=^-X;ZsDRV@IaQs4y&X*0Pq %Yhf;n!VQ+$DvdcBaUg;Ccgm*bOVU&gMbm zUuF)fLnzP`Ezbbg8sG+kt2`+Uk-chd^F`5U(r5rH-+&!fz5F~~ZA7p#_HrI##wMkP zTX{M6#f_0SUe1T%^t5_9ixWynFiilF8^L(i)DBoLA+cAWg!m~l)zkG?h^P-;!LI`{ z@=888)XMgC5!#V*LOU%gYv`h?^30XoH{QyQ5m~j( f? zKW~>M-pYVEr25{(Iee}a=gsr@NIJh&guCs0tgLys;LZJ*Lpi^g-zEn#zho6fx1|MZ z@Ot(GkJ8}2SXSJr!NIsA_LvGIxdK^}28RG{HsFIt2%dt*uECSpYb=Uj6bWe0mJ@8P zwppTBnc`c@cbiLC%@}2LA@A*hWkNeUJVrUUfCuuv%7s!Mw7{D+jS*bAH_B|Y3QLK& z$KN(q#ZwEFqQYjvXS?uLRz+|X9=(Bcmkc|r(dfyVEn}645xj?TTN(E O2Y=jhMg(Ou0=d>`~$2}#d?zR zO)Bi2#$I9AQ6hexq Yx$~yG$4q8kA&|7-xt0ge1G@>@KNvs;Rh-A*Ya>V7GNBFJbVH?&5VcRObd6( z@FU d+_$lzY@KZU~ zlBNNe4nG6_GWePBv*1aQ5}dDqzY=~9{8jMt;OD~AKqeoa=;q_R621U_A$%b`4Q`6z zuYq3#e>MCX_$BbA@MZ8zIcjP-0Af;!^D_8r;je>V4!;8adicfgtKe6|SHZ7`r p>2V3k*xAj> zid(%hKE^LDGb@=5iHpHT?$G$Oq~SxcgBzDLG&OTLc5V~15|h(2Go{r&3&xd{&dbNW z<2Ow&%b(9nv+`{v6$Rcmrk5Aw`&H)8E9oAdTV7yaP%ytl`L+-DkdMwNU*?mRxx6g6 zw4#9f`a5P6EM{dT`IQA31?A@AYc~g^FRQ35wJk2b{-%tK;>C70 QJpEX@k=TT3Jc2ZY``nO??1ll>nGWcw?5tT;>%61uxH=eedym$ zzvQ#lE1eD4_sjm{=$#LI+;H;n>rcOKIw++|d-ptZ?7eqieDV$M>*JM+TTUi2d)Bfg z^DB!>Q |@8_61eeSIq-`O1$hSm05Ce&46*11@m9+ zQq!fPbkSt*bsohr)z;B=N4hDUk6+kek6bV>HnL&;i~Y)G6csFa!J2Ak`|VOO^KjT_ zl-iS{lRd25!xS;v $yNloO|H1(m0mWyhzFpJp#T%%(4!XHPF(Jdc&8l`fB+n_gtkUs6~Q zRlnZH%Ol^T-gMA1VE2!&Jj Hcgu~ zzxZVFk_83J&(1i=H{@iEKf&etCFP~pg_)KtShjcs_wm|RR97_G&z@)>aJuk`xA(C3 z6W`i>;GtKZ{XE~>X=8nTyb>-SW{xmh%C1OFDZI8|R%tm~G_SODQS|g8R!~q`5uIMT z%zH_tG&!MLOmyl3$Aa;d1v@>%O_ddSQN;tJm!#Cjm z#;2b1iJX>R%?FG%MJ}AWjmP;%X5Y?d+v3K~vZc@ZueFhv-C7Ha>;qnT>g^Y*2OK=? zx9e*kua`VxqNn$*Tyf987B0S>Wys~Mv@E0ax+OWq=88&xhkd|%Up&p;Jn-GSdtNzY zpPtIs^?!FyvN`Q!=z@my(voG1m()&4S-q{%r^Q0QUo5fF7c5tO+9mGWF7&g1VTtqq z)-qt{k?CFkd*)sC!W$3mdH=0v_MQCcwI5$RFuv;{zgov@_5o>qf9A2#=lMo14~n~m z50G{j)ZSx{>gkLcY>%00OMmw5qXEa>x!cEU@YvDzIG^$m`}g bUNkx>Obx4C( zG@F@UvaG;9YRqr;$o!~UYvPlKE!A7(yok?BEv1%XOYFe;mXu)@%YjcejJ3R<`MB2u zUSlnDUs$nnm}Quyvi?7B4ST=qFw5MnlkQnem|>RE>mvU9<{e#|yQaQ6&k{4RYj^YH zU*(WxAqic(dv+gd`Sgme-G8@sj~{EXbtm$ri@dt;j~k|4MOzXFSz1ipGs*%Tfm7MZ z#6JA{*r{xOByVyQELo7B6vymq2F&|9x9H8FcMAUPQRa*pdxOXIRVQbcKRmc9Wzyn& zwq!xtvdYTRB`jv|RbJA)!=0A>eRt>X@6Kg2>xqpo)tOl_-7_VenI)r3*WrO7Zn!5F z{dIh?-3=%Aal->KTvi?U4|K!7406LghXR(xwVC}AZ3u{Q!@tD3;hqU@_=`k0+>=JZ z!kO8PVjjZS5bazjmi}dHp@c~j=3Kj^!|2}%B@8pz&z2Y_e=Z0z*dfUqonN6uQ>`-V zHt8hDzP8L~H&_|~Sw)xwVRa&;jyKVCkEyFPx0#9nhe{ILXd>*3(lH@~5={~C=XfL; zgAGVIi*ung3df%<{aBssVh0JGu*>C3O|&-mq(lojswGQZme9EVWl2?#rikhjC8`1U z3FRjUiZf76w>y^UX3K{psNJF6TOjPWKd^fXSYMjmCj}>$-MZPb#b|eHc9&wes$hG& zN%<78epxcw9p|$9kkl;9mfPnyEh>H|0z1#|#!I&QUBRiH-MZOS{% 5W?oWBXL2Nxh=``Gc*8?q za$jl!;5N}>1)R>0ti9H%Hc{J6cIe@51u5GLrRAVd!>dL3B2y9Y+eFH2lW5C#o3u|H zsS!MZ8@8@6dt#lUR>ULR54=joEqhx9*$+Gq%b~Z6h$W^f1b<~Qi){&Fa+4(qN18wt zO1Fc-IZpfU+aw3D^_s{(6lRds$V`yyXpvi5j#&J_#EWf{qHsQF`hnYVGu>8k^#iZR zBf4K%Y%WDeAkm$Lauko$&|A$jxc;|Lv>qxJN;xh?FIcu9tP2}&r8wIp^@uc(g}^8w zP)!mNxZgx@YY}akdADcw7kJ64W S8^X+PL*z@f#2D#fag55fk3-|A3XDFEiS)yj%qm@j5q*%=C;}f4`F0ralO`#p z*-`|EvtE)~=j#NEMJB3Ng!?OXzoq3Zi?H7h4NskwYO+6C_(q%q*h|tJ)O)OUK>#s# zz#A*%A?aqcn1#~I9jGZ?x|(v^2C;)Siu9x;H>#OuE;Q|cqID9bR%av1C(x-e_MD*X z*ce%F!7kN~^2-_oQ(~;Tls0GWQuI6oyJiTjV7%Ld`Zje4ukI$&sNCO _~riz(LnU109V4ju`BwnQDOR zjBvD@=AZ#SXMp`3E*hCtyCy6c1`Kcouyc`a_@Ha@0?VjJ*W5u`lGmJniVk6ynUYp> z?&LSKgRTh?o}d=6mi|0WC&vPy0j@SE6k$+essXMuz)M}TDNJ?@@Gb*s3 z2Kbx-j&P?lLyZ(J-w u!Yy1DpClLcjdj_ufO9M0z zCwf#%_Z*EI4KPi41FbrRS${ZaIB}(A?KWy@gq&?RaHWU7G;h$#M=X0A-;Hnz{8Wdx zDH!5^g7~`Uj9!;O&larcu2bt;je@OyVzHce)5EZSPi6>*H!c|P^vId+Ra@yk{9;#o zp>v%9u0CRky)#|&4P5ErHQlSa(o+n@!Kwz>>d;bf6jIPn+)U7!uIJEA=#CzP)4Y~~ zWg>naQmnK1bq1~I(K*fQ@r6~iuHTteG5Y @rBtH{`&nZsIK&cu~}O6m@#AW`(**4^}#t^+Gq=GU!aVBQ(p<96j-;dsR1j+9lbg zz0Q?NhmY8B=!`3Ol_>SuL3)0WyvmiHgc;~6m94qfTtwFx16O(qQTHlWdU7LqfM$v- z1yo&YFTyq7z?Gh7)V<1;o_|T!??-ZTMVYaQryc7Iv9}v?=b!;kPey89D>DuezaCn3 z7XOqXK0QsTc|E?!fgKmIiqm^ZG)GTh>Rz>qp3NB;riZuAft?rOiaRn~j-KVzy~>rI z+gTBz6S%l4RWrF+?tzy~pK~P;mKDVU91&yL(ltHCvZbrCn%O|#zc;ir4B2Ecw7mG3 zZ3~p4)v!Mvv;Em28)lh*XNYXD;}Xnh?8prHA_M8aJ%ql55w!g0htSO(+3}~%u&6Tu z$j3;XCOv kDj`n7676 zXX;X`iam@vQYg`Y tS<|f;9A`t+9ow4Y20gSboB#Y zjyJeeTCL`KTx}NnG_9A2X| u zLP_xMoKrOvYubxCDgwmVB-kSF0C%2u4SzP7I?XzIywB+VFu^ zA9HH8*?_2eAs{Zzyoyf3>6|*v7xe{mGHsHQdqO?A_zl6ex+Ur^RC!{xSS?gl=6J1u z6iU-TyG?3BK6XsoWDdb5f*MZsoeHSR>&!K{{DGH&8SN|(Ya%F=sL*uG%x+0=2_~JJ zxr0u^(MuD_kWP&*u&abPx<;Nts!8nim^y7j4!h>*Dg$ag^k#;V+UPF+=Dzwi
E&n0jGbC=`PRV}>8b6UJ(bpl-W0TWGD5 zGdztga*U>p7X+?1w&EHE?gtdEZ6f?hlXpt9Y$*~^sH5Bh=#<#1UnG`730DuCn(1wK zrnE9A`bnbtfvdw7;_{Xy2}gAy)&_{yi|shmdU3jVRBp3Sq1hrI!}JXQ=EDju1b?DwZQYRQ^s3S`=!~ -R z(bHg*Ff+t+UV|Au)Ky~r3VBaSOi4>gO7@XmWDkiT*2MBGZZM_9revlxBumLgAqe4z zq$-rGLTMAqg3&xJ+hy27>|OQ&{=dxkC#5Ygf)>?{#yo2xl?$aYw6NVI_UShZLbbHw zPGZprPq7kNv!x10e5*&QXKKVlQX0bbt>zsFrLAV_5skQTSDB}J;I13TglG*%Q% C6(<>)|!(AoF3hepf*gC#U+PfLJ z?WH ZuDS)-9TFf}fPCfS`d0sZ8{R5)FFP!Hk-X5x85ILN^OVr*M*RLCEWk z6vbnTD3CHmZ87&i%e`5MRa=57+#!Teo}R_FvMz*JkoZE$E`(7#r{`>=pi e)oxs<05{N6^Tw-c==~a-cI*Nwd+-6iWL9BT`3Y6sg%}tWs1K)S1&3 zKzfa$!rOU`5>pPU8hVpK^<8f=h|OCTvRQ31D6RY Y*I&(ZV;1RoPPn#xV1vMYhKw_sR|KrO+#oVZ z{y*;TZnaYK`$ME!u!B&r(OV$n)Z(3I_A=Acwm)0?;uf}sUuCLp^jPlqcx@n+RW)zv z!P_rUxhRClJ4zwSV-iM!3MIApQoPnBy&mh$g%aHXuXe%xTBioJe}?4vKTeH0Ej6Za zQu2c37>>QQ0<30=EJh)s*H>rjwII=}&KAJ`m%aWJPA#L__xFbyXi;UfWRz%MS@6gq zDil>eDj3G@*4V|89S(TPCI+uIwKNjdvw*7QX2DZ!{hri1rUyDGh#pKP`$S3n|0wCz zTpu9Xz4oQZEQ>~yiqRp-iY8faSlumMl-AN+%nqAaX!$E<$m&8%`&N%icgF)r^@amu zX6fCKYQ}kQcVscrtt z5;n11{g-N^dVE*UK{Ta 0@{B)Cn-`P9{ke>QTh;xgy|zBg4J=M%2*#rcQm?J z7o$6|TQ^&7bHCxG+D!@Vk8yJ@bZc8ob){y)6nzv)blW7=l%8U+NALxU82=7&4X}x= zalGHUW_x2Qtv9pB1mzAKIoh^47}KR-4^(fyXs)aFgF{`-mpcDdOV0x$m4TuBr$MCJ z4N-AvKY}A6f2YQirN*XA?F}(}hg`XB;u$U0tuflFk9Y{DkBgoZ){q%`Tc=Xde3}|D zbsD<`klwSpDm(T6f29UcMi~dCYV$?I>yDadtE-ox!hT440~z_Ul#L;}tlKa_&k-%( zqFqx2O1}2x- Z)F!6v`y&97o-3)@&iH@uXI}E`DH;Rd)I%3HeLq>HmrtL~l zJp}#0X(i}6lR8pV*X#(d4_rtb^%caI6f+E5F#m8huXd4e?TeAVoP>S`xpuXPfrDYY zA(-WvX#tCxp*Cx2*iqJ<>mCL1ej0pF1qmYKI}XrDVw6;pw){+ug}w+)gEQRkEodkg zCALKz8w93Ez)9k07e{o!x;*ijF!h2mh%-tbd>RgPCh^886Wc=NA3GUH7!%tmj yio|G0;XaJoyCz7R1!;8l4$F(a49e}8kEFJk|bXKBZ*h~U`Iq4aZ((!HT6&h z;PBkKz9mBMv@^QDz6wci#WOk*rHX5xJr`dYZ7|$zMI8S+CwlFl(fxH!`aAt}Zhy!L zF9Q%xXi(=`WHvJt1mXIt;l9jV$|M^cbrNu{h#a?+9dzw_nAs7rJVhjCEXN3Ukx#M6 ztQ$T}!~I<~!z{j4t;RFc`!&ePc5%YxMZW1`!n4VzTx-l`=1+A}xVDODW)fGb<2qYC zDa?3A`3Nn+2xn%eT!pVKBfCnXsim{k`B-p^k^5dhq>QV;xcSHzvk31%;r<#oO3nz^ zJvDzWWjrwcJJmzgmH7Bm^$`wp9J>m&v7t3qx5$Q ?E zsD3b%;)?V~()6Yaa_*$LSju?e)?a_Sh#=xbM7ZHUQ)arzxJmF-q&u?vCgHY<=r-6@ zVlBP&l<~$Z<&X4p^Esu}n?Ev0*4gTesN5Zlax>EFVP9RWsYujAot~`SKIo6>+g4j@ z1`iH#-8}8C@SO>wreu5cpBF@h{-C3?c=VCMHWs0;WZPrgN6>P~mr3~|1yl-GJ47wm z!T3Lnrl%X7>k{#CJk`1FZzD!)P+VfD3LZ?-VxhF^`O_v^hDsstPTfD8xB6^K0)43j zFNnb>q2fGl0NF$Mve(LCJX?8ToD}1IH!!ZxDrHHP)&*FeIu)c`pCw(N`zQjZX>IK( zt>n;6iQKi#-}+-v;rLcyF2353WcX;78T6(+yfo3IeRC>=zBzSDD<4!|=~hg7wX88b z#?Y|R4WEoPv!kO{9S5qEFaIL~) zwEU&`baOBR&`Q3c?$eE&7) fDPNaCJF-|2=Y;tD28Hi$J|3M7* zgA`^)@2xhoTr~#TNn@@OPtwXYG$I7tJoO~w3wmLH_}Q>T{&zkb*5Sv|(xne%KKY3% z4vXovy^e<_SZgII+mkf}TC;5?GzB;Bz+DvhtZ?YewA9@4Qu{Rp^D8a%bm>DWl9yHT z8ZCKwNafvmpv@ZKDFxu$Yq@xxjJGsll;qU|Pd_AAR4ynjDZp1OdRE}`sSEIy7`#QR z0F}V2i1oXgrJ4rK8Ml%-9FAB=e4OLjp{O|Kbmk@b@&J53Cq8j?pV(-8FUQd*eZ-tu z#dwoI>2(!zrmv`~s4Q3<7dyvPpjfk|Ms8N#%$9ojnd!wF;=LPD$MTq`dGGmb=^W?g zy dPt$%Ckz#7f&{~;} $0e;hnuk8PwbjY%Nsus% zv-Bc*d|r@|c%~q4$)C*OU~zJsI|D*tr=63-gziR9^EuDB0Y!x!2~G&z)4f;OnwH z<|k-cS~M)ZTc==h{^ElBdl2nJ4V_+8K4)Ye-if7M=cMOX6byJYk9BPweL;R@ekER1 z^B7{gh%Y1J{5O=A$ )VBt1Pjmn#`h2{B+?OCk2q@ZFBij-|}=@PSbQt^De!=$2A zURY_zOIY&D3l_|ol9k2Ar)S0_&Y3j5VM=sHPEMbVe(NSNdrV@q!#-smuRdtcDV|rJ zU!JuB@9e>S@g7yuBsQH&Sj8BY=F6>kUsV=+u)F~uOsHUSRc2Ejb7aIP#Aas3*oS61 zlCroXb*PlY%tIZqiH@YIbU8l5k(L(kIh~E4oH1qA^f?vzmg!lOVjVdH(t6wPZJ7I7 z|6yz-i;QVt;TcP%MQay(^Yo<-$Lh*Hj _d9qp)^FC|46EML&IW G~c(&MHT)Gy3jP+Vy$p4Om5Eo7Mu&lRT}h-21ORlYAyh>cH(8GgEEeD1R` z(Xr{zPQ2rmTjYj0<)x*SbJo?SC{@!kvobTr&zP5Fsq(jP_s6SymQ*&EmzIo8v?r_$ z7?HR 3E#Xe?wDD-2m?0Z Y$ zF=iYKILNC;7Cgbq`|pWiU0*TB9yLb{8 L++brYbN=L`?wOR79o^M-4}G^%GL@I1`>e zCPi!$0i{C)^@@Zh;yM<;ROQ?pDM)!ESMqktQohKQ4y00Ys9z@4rwsa;M#MTyH}km1 z@U+fG?+7MmRR+$L;{4lv WT_(IEn3r>#oeT&aII{d>@{=y8(~JX{J^ zTEciwtO`DMLd~FHqEAQDNN)?CjxT5w;8zLiK%@eF=B^bFrB|L5$ zetNzX*-aHs$-wze7*;FkZ#TYKDVQ$>)|FK%ug{ZgCZrZUeixzqm@fs_mD!XP^CfTP zm8nu_U75FX)jTOfzV0i}v;F#oP24af@0q-_A;$$*q*ddO-~417x+iPr_s5@#vlO}T z&W+vcAMGbieDb~OkAGZm4%F$-En50&d{$oiUH{vE=#7b2Y}WDB|IF(@hku>%;D=v5 zd**{@Khg0wB+Y##=IZrVr)>HzedeTp4tQD*ShecxcZ-)jk+FAE#P8 WK$ zR*4L~o!`Q&{KXWySj)^+ei)wM^?c}UE#9JGts0!iOy0`81ya^{Z*^2hgS!0((C6FK z(V8=l;3?D%7Ia^h$2@G4)cz*DD=up6U}<5~3PhuO14cPkZ@jis8o|AlAq7(EVDA}4 z#TELPY1L^87bC3XCXBE&IQ9zxD_aVrqHdMc2h1>j&(q=lo+ob7VBK4P&$DL*CdHez zr`n9sVhoe(E(Z{CH o TpbQ)UAAlFKG{9G|4y(mq>CD6!8mq3(!2{dt+K$F;>M%drVvf(O` zp18D u$=_1OAGfflO9 zo>aP^c;O12q>TW)d{PbXtMc`gu#g{Uvq?7Ef`;>%!RZ~LjqvoHBHa}M5YtuX;k+Qc z3s(E~V1!-~3N%8ScHZ(Q=^OtfeRIe3a%cKzmY4$Yu3K^q;>fae{QuhEH9PRGmm{vF zAaupyYBV}hGfPfOV7WgbQ96B1(qdYWG}7u)-ftsC#BoQN8bLf%r$>3OO%$#Cdep_~ zlx|h>B)N-Wp#ytRdUAkPTTxT>bjv>E;uyg1#oxCRkv#8N)PvxSqjFSUx)D0<1m> zr|F}$PHM{Fg9TC-!=?Zh`P9T0F|>5+LW`$%jF+ZiFqg_^;E4C60!qUZSp<*AD8SAp zV_Y}`=S(&mnCXD0 Urn;8=Tu;ArA;qIy z_TfrqehxI! XZ_v5ER(Dd2|`@E;{C5{Ftt3IwZY z+PWp@E34TezPy0zE|fjF$Z4Zt?p&bIfsh`BGhCNVIM6j|H4bHEGN92oFTt-ACZ-`w zGt^~gI?EO%YC33VFnKg;TqRqGIbcVmQ$)(Ct(=>3F4`EZWFiK&gRK*0G;jl4#fB6f zfRz|+_rhJRw3Z^qQ2+FjNkx%bu~=6YPz9lRRX&@K!dKwpt`^D)tx&dZg(PG3)3$l# zzF-9BYvK!0&WIvS#o&WLDqzsZWN*`xX$qQ>n$~6?oluuiy)S&jbGPlnNIOM#P8_rc z&&Yxa&46hRO!Hn9q9Zx=)hsHc4Ne43T~+4@P$dwZ4$-%KjX%7X{IV)dkrZMDm!c2y z00^g5<_?!GKyb-;tz}-LpS42SF20vqjoBJq@E@FAi5#gZ>~37SNJ9-xZ-RHZF+W*$ z))l>+R_(v!vK{xou$^Ni8!3ibjhpN91sQ#}M|B=--HrL!sL`Fo+#7iA;fKTy>f>h+ z)_LgEY9>}2gqytRTaTg0U&wViH}*(-EQ~y7z_!-M%C--4v2kgw%JtWhnZnmq8Lhz9 zlWQB$ZAA~3kA_rtbvjImd_=zhY&6wBNGHc@j|^~~0X|}Y-8Wo-UTeaLL!ALWVt^?r zU75^XTbtNaGQjx;xXu6{G{EN!aE$9_4ZPvs0B<+IROMpS^iy+F%Odm$?pOCPG%QO^ zm_mn0=gi_1VWkuIrw^O=l2Sbd(%+j-`V9`QOwlSIwv<%oUV+d^B(3x_v1Smb(`&sv zGp;Rk7$dnAmXc90ifx6~v91X`tum0)r`cL6u-4k>pPn^+izyMg261Fr+F)BsQ?D5| ztFT*!O#m6Y0Qx2X_5idC+6cftfY=5Qy8uXqIq<`yV{lRjAiBPK?}uPbidVH3M#A(e zOZ)a@#4bbFRFk_Hp<8V0w4^n4Ytv9`BXucRi{LUwx5cf#x<;g~rmHYEGBRhUXXZp_ z&d!7?q8LkR6OB(<(8|8X-pgN;Pf~O%&?*U`sfMs42DnU9$$ip|aJ0!0ef%bcYqVnj zP~Se(b`RC%F0mP;C%0bu)F55gYTW`b({ MHIov$-{FS}@ zp8FJYl#Gw2X=0?Y8fCi_rwM=Or3ZUR`WBMdK{D8)%2%^S(@pAdy$ByFpe;;|#$*mG zpRs!Fsqz2$>7RiU4;{NxPl#Ox1KkOsCiW>q*ix-G5b}4r5 DRE;ci);jWzx;_Kb%_qpW!!aqge4^0+B;ovA?D7Zeepv7Q0*e=2n@uw-xQc zZlBn}qwOtS<0A$oI#Sp*)q^Ob!c8PwbEL37{9&e`Os)NGP=m8HQPN0_yj?;2gQ~4< zmUWc;+Ip~_D_W(Hnb>aEP4w3n%^=?h>tnlAL--K`>}MDX5a`Ym$NBCxwX4pL-+RN0 zd#i7FevqCg+U!y8C{x qu>jwI7v5dhrUD~`IDnO9tRAotXUl)FY+z6kjDFCIGH z`?)E{ZW(pU zYwpyT?1>u9olh2(`bAN&O*a 8@{d{L%hB^M_36nX@O**VN_0QzLbJY?~zu4ev@`G}B@g-<41i@|mHJ+>`jG zf7Ntajq*INSA<>e!F9V1MQ>M)b==RLB3jCHCOfuO0NJl= 3F^TX2oT!z+P7I zd_5iM9jCg}(~YiaVnf$59o#oj?MJ=HsYG`(A6U74+_*KTSlMX8D73b (fB-?T&; z!b|lnSF?qt&OKXi`SN4RvW3!g9?}MVM)`4}B=fV%vO;N!g{JpCT2mx{3!I+*v?j3@ zejWS<_ ;&8|CEC=olgLh;pKUPZLdBoro zb&1I_$~ViT8 zX72dR^h~DoULhsfYCjcQ>?Y?Cb04K@g;ce9mDI5LdZ|+C0-LUv)>wkUpcq*{QAvqF d+jBUD+mzgu(oWoFWZwJYDruC-nY+K?{{e=qaYX xwZx(H z!){) yDITdlgU{UGZp_5%KqVp76bz;)X8i6!v<9%>&9bs%MwiX1r5M%u*59%^o; zlc%RZeOU?ebRyE1*{7+qZRZdu|1kyK`=NZHzWh*U!dU=y52mLB&X!OA;!JdTif!o; zJ)&vr9?>;xddMhOj6PLiD4Hy=LX!oc`@{7bl}P{2uUY9Twx_=fG{-OLl|kL;tVj`l zMQ8NsTC+(u#yWlYY{E}roSMl@L*^)MA$jNG8H!Q4&t{uu6I#JC9j#DNFly4|*~x@< zc)N~veGnes{YyeKMPFPXG!D+K5KpmAn}$r#_t)qt!?WBj^Rqvx8HLOcYB|a$%>0&h z0C6k_orAZtHKt#z;M3bP><#h_2$Q1bOoj_5x)qj+7#Xy@1W0ikW(_O$86bEuDfySC z 1xbsp5W^|u!{70PkfSmOKJKr826d!Mvbx}2~ z-?iuw8L>moIIA6A IP| H0`B`Jx48zs4dIs=|CyR)@BO{}k{@Oi-TlL?--8i*dRuM~ zj#z7*TsxiWR8y`QdCPZPdBhO6jHDFj?su8ti-(tn_`QC6^T5l) 1|NJ{wiQKg}F1yXoZaFERV$diw z;e2PIt&LIaI9X1XtXAZ@gpQkVjiN ztB!Scxo(l4a%K3vM#td>lX|QV7KEnlyLV|!YwhnN*I($fXvOQ@JCeUyzk2D`k)3Dn z8?$qtUzuOpKEB258~c3;$H>LZ>)k)^{bt7(k);!FDm%xY9(=PbcDYsHn)C1CpP4>= zApTJ`YFF~ToyoTpD>hBtx8bCwEZqz}7SO?lrz_STV0S+jM!JRl<*ElS8&uO?p=M zaufgYL3DfY&BrNO`;I&f9>m#~ZnXXTXQ$1UXN{crXmkA1N5NOWeEM?qyDfdLi(a0Q zod_-Mo6 tgzRaq7=_d(Ebci`FFnd|}F|nTKAb?p(g>?%}>CzdmD J>vDk%m4Dw-p(nSTzJv;+ht=ftyUS-@1KP(zU1tz z530Tzb>qpCX&a{)&wPEV=;)92Zx%1vey!{2#p}C{>Ed~F`vc`m;SmoAzE|N)}>k q0-w4Ku)9roi$xukp(};kaOyRMUzq zu>gISj=;nq 4hZmXfR@<^P2?do6X0WjDLDw$gS9EmMd+3RLXLR| zm4jXS5ny-N+=hRN&;fuq0LH@pP&yj;01i|lRAY?L3xFe`z*(Angq{E*EkJ0o5SRcC zGDT>Z3QP{b-2g>kzTUv@oe3NJ0NA5<0Ne?%iv>cxV6R>PPz&%5Kw1qI?u1ZT2|{ LjtY}Dc75n2zMb@Bv+>g*7*Nt}q#PhkFsPJ$N0{+c)$-W_Vr&56eg zrsr~r13@dPU>&ll4Y@zvmlkmZI;uNIpRH^|Hq8hVf*#iWC CB3*MasccSx# z)w4TaMx+J%!3T4P)?WE|)7~q43on0sM_1@CR|eoKbi)m6x^|@lO|1%~aWtJL+uc zgjF*BsBd7}ErDUI#|E@^lV45c>H(Cd8N2|Z-x8h}HGgvR**=1qgRYV7pXI^8bM2Fx z&(@5L!l%@0FsP))q-WdH$pqj)x(Xf%=oGWB#_)O-29XGnne&+tJ?VQt;pdcn-$%Bi z2-mi!j9A-VYQ;Y&SJ(P!KGUqPIIN)0>!7ETN!JlS8KREpq-#5(lkU{hHF`wXW28?y z5&)CaA)Sm`NBm@FcSI*M`Ez=ju3)fT?J{(9a_IP6Ku0GBk&ftK>prK~6tCZlNk70v z<`P_dI%MN`ql)DSC2U6M%(j}kjc++2*HIV9YnzBSP}_YI`kqW0B76&V)$@>vc>BYB zr{>jGD|5c$971lt!3 @YKGC>f82&2wBJKN>p3y4x$aPN z==x=BRMLdd%VvabUj@D67TogX5nElw1jS;9E)4LCp<;^wE{60iBoVxmy=@~s=9U99 zCl)*6CG`4R1Mz hy zu@@eq6?z`h3y(hBE%chdCgI0)_xp+X30-nO9-fEqN5a$a0eQx;&-w6tN}q@4GrIFb zC;XfadFVuc_sEhidT7bQDm~l-upH9mhnB$mSkKiHI0^RvJuCo7xE4GjTx%W?jmOyM z19-lmEn1xLU$kF~6Ybk#Nq^a5iSN@>fOel=$vzM3bKbBy!pCbNXXj%b_r1rK_yPUy z@qJ@5p`&;h4L8Sh{l+Eqyr+EYK_~&mAaCT4f{-5y04PGP^unhuHNQSp3N>+FoNzmX zmevgwKbL*ipNTpUw|djK?i+vlVZLO*HSN@GUscSS^
eldWDvC zTAsH@Ief{!iVLkOpJh2YIeX~+Cu7%|N$bZZ?J?#D$1S*gT3g}ef1_!`$glUFKl>xE zQ^qRS+QpmeXU{9RVtLVf>0riSLe->un&7$raTK{6JN(Aw&lRP%`&(tL%<|1i9xraq z8L;L_)g!t6AF|OUwf0+<4w`n!D|e((uM5SaET`Hvpr~JGWZWGy Dcxh`V3yb-;SHC{8r2lSyPw|`1 z&o0mCx>aL6ciU`^qm!qiPiR^1366b_c2D!TQWec8n-k_vSzqJ!c>4{RtZvEsD~XTF zZkW9^{_#NN;= #g85Ug~M{=xb7>w769D!2cn z?LI8uB`ekIz`KRXb4q)@KmO*5GVsZz6$f|Bp^Wxf{{AH9PW+Kg!KXCiZdcrytyuWY zj+)*t&TQJbbVt(n#cwCx`g3yOfZCT%+YdkfaXSB}n?Kboce%al?=jCdtRBDmocdzX zj(bzr_7v+bqvuA(Y06VIS6{>$)wH}A$*-;Hgq >Kn7u+KuuO?rv4CCm6_YE%1Mw^72N9M+o~b_1lFfStdFDFe1=I^I1^+S^ zGj2VxGn3I1566hv+Y`ImS|Z}FVAx0jGq|a@Scu`c;LBC6I2JZt61UkFk;2Ap3T=l2 zWQttzU_ UQhAo@OjmMUnXo|26+qdn1Kk$pvEn%Zw=`In6ojKCj~-oXmH +sHHX$b414l7`7GVLS-AM_UXMM1%F_(2sSslzH4{Q%^O!tQ1koU(i^s2Z_ zz&4A`2Ap&P=`k+g#PuMS9cfAb={#ILKl9KN2k}%W2Nf~yUf2Q9Vx+2#^}@cGc5UcQ zYb&_+s0D=1fEL&~*jOH^ wZZ0#BQXxxn{?~C^`52CU8e=RN;U&H@HQT>?j`r)PE!~ge^!mt=u1z{N$ zGG)WC1B45$czvPfSC|PwcmRcsKah &fg1!PEb@wnYA)+QN*KVXxY+gK^FO(sj3>*LeSRe14?FSOd*WfK`La z1m XscvSM3An^p8?Wafc%@#J;Oq1_aWLz3xH+5>QKKFw zidq2Iv=#hHFF*=r7eSeTEm%MZ`oipVxPTNuPJci*A$YVNCxxZ!aJH~QJx&U%)Z+v! z(&40$8dR-&VGCQQ!`YVY*3(G=jXIny?2aBMg|UVLdXBUV%m&+wq%esdC#-=wobAyt z9nO{&&EkFnE@4X1WpLRR=$VM3LOq@Ej0aqAAsDR|C&J;of@FVUDB7~`Yq1lUaq}{q zC`G8b9T#*PYi?MB2so*|fSgjw1RO_L77NR;7l_pp(kIFx8(RUXQOAl&$K285;N~;W zKn#{h0x{aa3fYY0E9?ZMMLH5O^i29!*cNIoB4!=R?gc=i$4Pc2WXHg0eIy|goh7WK zZ*~(L>IBt9N3jhwjF`J!&;nxaVxgOeQQHUaisL|F#7US932Y=0fSJtv|KJ`PV)P&n zCfT=0f+m5#6^NqPTLRxd{E!Edf#($k9}YZ_FFa+y h&+YS}OPd%v(;8<=$Rz$9+>l*+E8oUj6v6RsLAtIaFZ>ydAf#k~-P}FL93A zu8(@FC}Kg{*MXSKw(BGBQfhn$yu^~UT_1V9sm2a?b*`9>`y=l}su~LXSO@1eb*`*8 zr5otBl}GXxk||%GfgNj|M`CcfKg`4rlCMBv+XR``rtUMzXK7g5kz_OUQ=4RdJIPuo zQ`wQwBCx4#LKE8wu@z+&jspMreg>Y18=0*m@df@Ysu_Yk9aKFRVj^w2W^|;hHcQcQ zqXS|0Xp TWWNxV%w@!!SYe%Y~j z69k&t#J~J^@jsQg8S`v_6*1eV;7(nMOgfnLHd*Z_dKTF-W#=iIkH-m99hXl16+<{m z^bI0Mi4|O=6+nnlf9Y}E@j*wIkSsktT8CGa;(p*9gq7mH(B3ANXvnTeQVQ&}To@13 zOz7Z)kzKw;hqLaFK<}rK-B_f Wj>xKS zS5e}JnFF1fuf@KMupHZiwMfwu9GRGM3`cDyr5t+!sL+Ak0Knt1BZdt8A~HH6!1cab z)il;sbJl_AX{_Y!00VP%6}IArfh=ReU pRNg4gTl0#cu59d5|ZE e+|~U!ljdfoc3q zwax2hlK;s qSXNdk02EMM)yyKqK>yl6v^UNk-xk7$}p&VJ09-8YuCHvx|R}&y-32aA@%f zhzRiYfYXX!xQB04L^#HlK^}f`xg1U=kwH;G5dl-mgjxNSs>}=}o^763m@x{gqB4}+ zVui^p=22hVS#wU1R8%62kdH4^nG`Fqsf8p-kza_E8ES=0QItoGt+I?PDORiUxp@<3 z%Vc@^q9imdL7pay@ODK~iNsyx?Ito0FBT=DT?IKp%4oV-{E+a-Sb4a;MO W#AvxZDP|Co$y3sj!XskC R5 z(9bQ$_o6d3N7nB-EHny_L@v8u@4r+gsMB7nZ*Kf$&o2!W4yS5&{?v5gw_Ta1u&L09 z#Nh{uP*h35D0QByKqSghsAVWOX+nLW!Zj;Xt;GgmcJ87qE&l}9O=z@B1j|$tl~>`? zpO Ef(RZ*hJ3p&m(rxr%~={BRN4FUo_E zphT3U5(Nd>8t}0Jr+bLOxIA~!dr7%xgFyqB*=dH;gJ# IhBS*1FEb4h_fQ>ZP zra@TlD?QO8oS!ZqpQqM{!n_9Z<)VTtQB3v`?jXgs@oG`t5snjT|`ZdchH=8OEA^&fT392%bDQ=bPgEmg3?u$}8f_;;9qr#I1E=JbHFi zw($xvPka@v5dXcByFff)g;=XvA-=|}5Vx)nSBe#ot!Z#nKz?`LqgmoRN>N^qd7^<| zxR-`q(OeZM)K?L2-Oa7n(cz7Ws3cPqsmjk(p$OG@@3hF=jLL!>g==-W&?v)zQ_X4M zxzs#AzV|2X*3$>-H`hJsU&F~T=<#=2OhKMHuP{TIH}M*0Nb;z>yuyMk#rS(k4R~5? zjMEhjt}ZB2jqA!ODDlqkgM~&ba_8rUhy?y3m+Lt{oZWd*>wl)EZo~1t875C@0df`^ z`3>{pcIOrjr^3T>#wwCkMWa!sN;TRuF;{^U>SE7GRY?I~O%3wvB=ro>%Cd`5E4CSS z Wx8=Ec7KBwwIWFmm4@HxC*U=fC#`DkuM~XHG7{h&n&v$c4@A}*%PxRJ9boC1f z4tHo6HqE)vfb(0IDkE{eqBtw_;7V~F7AMOFuE39luHqq)W!R-3M?AP@1@^HJM=!uB z0-t0-x5(sU{G+&VZY8wH#r*h>XAhRSG&F7(JP;ZkHjsKIsx2q1`Zha%0n*5dRH#s< z8dngTS4^obBqEm!clVsu);;-c=kX(=aO^g<=WjcMxDm~cS&_{uWl4TPWqjC_qr%gz zJaWJ0d3(O+-8A0f^T?RoqPskwM?8VcwqFy?j@|j~AUd^S=fyKW?S4^s^7)~<7_%eh zl@d|5ON8@F?Ctpm&(L6>Z@$JZRE?r?mB^KLHR&yq4i-f2J$tTc=J{npqu%{OL_S6K ze9_ZYxcbEFa~B&c8ihu`0@e2hKAeMG9tZn2Ha-o09M-TSSZI`-o3~9g&xa@K>pI-P z%`;M=bX69+n)BW3jXZ~<3}uNz6dWpgFV1kS c>kvIKhh-;>A-}?>OUi(aejN7I%78z88<&s&U v42-$?`LLhXx)!@bGVr`-@4SdA5UOS*vE`Evi7;+rGN9}`S;>+tmUnR zRuZehsM+5MKlL6A-%+J45=B8)MxYN8xzuGoNXR{HdtR~LppceMH|RD|+niFgv9~rX zE 6en*_Byo~B zMfOQeMtKEUs&U1siD*KxT9NPLor*aMZ%?%{( R74;I_Ix8f{34 Ek_k>?COSoK9-6ygptPRzDD*J=_%8~^7@;R&sQp+;b8A(<9 zsiWZB9@|ejm?PFs5;N)Al#UEh?X&&VV+dc?-m0gp@Pb=`>@TU9;8^Ug!<4but_yJq zR)fm#AQAj~fNLSGgS4Jr2_NkVl_dJ)EjufM`~+EhA?<_2X1uy3F(k-ILYSX%nt9Ve zLAaneNiklHx}+l>VwNAELNS-Qbb#v0hX@zO>&UOft(k^H)DF6(xq!(&L-iVb4`RHj z2*w$a(5M6=o&IcC)rSp F$UKs|tq@B~0^IABDA@B{)S2p|M&nMc1;PG(XF zosvjv5M-AkDRcES<;KX)P*o6rgKs%8WGWI2n$XIH8O}#MCcKpDp`j4T&|NTepIoYJ zHMkzR8AXb$)Od&p$3)7d{;6@=#CT6xY^>7^b38RpB=z@{h~lZtvIbFXUS?6ooT3S6 zAi_4tKue*x#3)r!esO3yd~xNYM2P0Dg&)}E!)H1lEf;grB{E-)pSN5dCiRd@0;8}b zoa+&YxE>O3e`so?uS^mV;XBPdv6z<_73VF9b@@7?i>N;BWKS>D7l})y^++~`8vRwi z362~iX_QQHl0=MgsyET1Uzhty&_=D{*Yzme4n>7a{3YIgGUOqV1<5>oq2mHPA|mBc z(5IRxzo^KlAYVabxc9M{|0z}!q2g5CZ|V{Js6I8kuuz6z8m7joMr9ynDskab<=XM1 z6v{wPi8kvh738THpH-o-4y|{>T6EP@E}YkFkIbieQt5NzjQKy{vyr|-6xs4Dt2{O5 z%OUlPvXT67{r (bGF}-@tFbo|{^vvQw#3r_K*s zG(;Y?O)iT`x)!Ll5UsR8;4BoVi&V;ab^g_UUs?VDeMN`aQ6-1$A_65+e~8ihc=$^E zr5;+}2&vp7LQ-vy!X<$ciGN@~eUQI*;1s8y?WTGosb8Q^P>Q5fdUcHV& N%5yS5lU(ssIr#-Hn)S(%tytx%|a`UBQHcY~r?sz%xN z>p0$9I2# NY#i&Bm0Lu?>9V^ 3JPs8z4^C0z2HWGd^%=#kIDc4B-mth} z_5db>1x7GmcJ+}}83BhrIm~RbKBIsy3f{?A3txcYAnDKSJWV-S6hIl7thrZ$?afB& zT3Dg`@c(b-01ld%aX3r)SOkJ~@kJT1KLx-O5|eh8av(7vau$8XWoDnHdI~@1*ngJt z#6HXeU~HFTeU1{l`G8$-Z8ZTykPB)Rum^fWuucNSv@a^XV|IU*-R~dl8-X3lJ#~)i zVnIGZeO{}#=O|Y H00~6-k!GZSbC$|e9M>dyObL`kM;k#C#w*; zZ` es#l_7ojk|BYnpu{QcN&jtBOBYzpR|J=Fk zu7A!bYNLO#2uqKg*dpI)^2@2`>y(W^_h= @zufx5{qWrp9Hv_nW#cjlk41dEDHsINSBR@MN96Av1sVAY9#>9Gowj#6;&7SN zCMqh1%ep_T_p`q)9X1lytx?eF1ZRB=g>^|fGHA2@k!J9sg+Af%5NikX)YG}Z%Vqv* zqWZvw+4FZQyf-%~H?No+Imn4)@^z9A#}0)$sKx#R?tPcVnFYU7xmd-N{Xs {^$L*AR z-;f!^;fNT24#$eJFJodkoOc}f1j?jS9Q)dAE{BUL(?Ukc<1DQDn{vU4jO*W&7d03$ z!~Ui`iNs8RK;8{xJeavdKq6!JmO2ei4EzF+5bfTv#OQZaFAli5OvyVC1r=)m0`s|d zl>06|CyY~N#EIsTUv7S=F>ejLb!R3RaVFs%%yT1-hN?l#SYyr*E(xA};4|3+Z#N*3 ziwQI2Y>JWj$fS`0QtyaxssE=*EHsiOM1+VV!y_RW;vFIL^^Vjf$mt&m8PZ4}nV-yG zcY6mhAtszB2Ht`0q5!`j#$U*p1>T&1sTYDxHRmKzh9CZt#*DD!1PVNT*dIi3z!W<% z^_CoMl@&)#?T2bxaY}h7pn`ey)#icB@fd8%l=@*l`R$PaJf^Jnq-vgs3G2kE-(>@x G^Zx*~)z=*W diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoUpdateDeviceOnline.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoUpdateDeviceOnline.java new file mode 100644 index 00000000..48ff3a2d --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoUpdateDeviceOnline.java @@ -0,0 +1,103 @@ +package org.nl.modules.quartz.task; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_machine.HailiangEngravingMachineDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_packer_station.HailiangPackerStationDeviceDriver; +import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_device.HailiangSpecialDeviceDriver; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceAppService; +import org.nl.wql.core.bean.WQLObject; +import org.springframework.stereotype.Component; + +/** + * @author geng by + * 自动查询强制完成时,设备处于关机状态下的 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoUpdateDeviceOnline { + + private final DeviceAppService deviceAppService; + + public void run() throws Exception { + try { + //海亮专机 + HailiangSpecialDeviceDriver hailiangSpecialDeviceDriver; + //刻字机 + HailiangEngravingMachineDeviceDriver hailiangEngravingMachineDeviceDriver; + //包装机 + HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; + + String now = DateUtil.now(); + + WQLObject wo = WQLObject.getWQLObject("acs_deviceisonline"); + JSONArray jsonArray = wo.query("online_status = '0'").getResultJSONArray(0); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + String deviceCode = jsonObject.getString("device_code"); + Device device = deviceAppService.findDeviceByCode(deviceCode); + String order_code = wo.query("device_code = '" + deviceCode + "'").uniqueResult(0).getString("order_code"); + if (device.getDeviceDriver() instanceof HailiangSpecialDeviceDriver) { + hailiangSpecialDeviceDriver = (HailiangSpecialDeviceDriver) device.getDeviceDriver(); + if (hailiangSpecialDeviceDriver.getStatus_type() != 1) { + String order = String.valueOf(hailiangSpecialDeviceDriver.getOrder()); + if (order.equals(order_code)) { + hailiangSpecialDeviceDriver.writing("to_order_compel_finished", "1"); + hailiangSpecialDeviceDriver.writing("to_confirm_finished", "1"); + hailiangSpecialDeviceDriver.writing("to_order", "0"); + hailiangSpecialDeviceDriver.writing("to_clear", "1"); + } + JSONObject map = new JSONObject(); + map.put("update_time",now); + map.put("online_status", "1"); + wo.update(map, "device_code = '" + deviceCode + "' and online_status = '0'"); + System.out.println("设备:" + deviceCode + ",工单:" + order + " 复位成功!"); + } + } + + if (device.getDeviceDriver() instanceof HailiangPackerStationDeviceDriver) { + hailiangPackerStationDeviceDriver = (HailiangPackerStationDeviceDriver) device.getDeviceDriver(); + if (hailiangPackerStationDeviceDriver.getStatus_type() != 1) { + String order = String.valueOf(hailiangPackerStationDeviceDriver.getOrder()); + if (order.equals(order_code)) { + hailiangPackerStationDeviceDriver.writing("to_order_compel_finished", "1"); + hailiangPackerStationDeviceDriver.writing("to_confirm_finished", "1"); + hailiangPackerStationDeviceDriver.writing("to_order", "0"); + hailiangPackerStationDeviceDriver.writing("to_clear", "1"); + } + JSONObject map = new JSONObject(); + map.put("update_time",now); + map.put("online_status", "1"); + wo.update(map, "device_code = '" + deviceCode + "' and online_status = '0'"); + System.out.println("设备:" + deviceCode + ",工单:" + order + " 复位成功!"); + } + } + + if (device.getDeviceDriver() instanceof HailiangEngravingMachineDeviceDriver) { + hailiangEngravingMachineDeviceDriver = (HailiangEngravingMachineDeviceDriver) device.getDeviceDriver(); + if (hailiangEngravingMachineDeviceDriver.getStatus_type() != 1) { + String order = String.valueOf(hailiangEngravingMachineDeviceDriver.getOrder()); + if (order.equals(order_code)) { + hailiangEngravingMachineDeviceDriver.writing("to_order_compel_finished", "1"); + hailiangEngravingMachineDeviceDriver.writing("to_confirm_finished", "1"); + hailiangEngravingMachineDeviceDriver.writing("to_order", "0"); + hailiangEngravingMachineDeviceDriver.writing("to_clear", "1"); + } + JSONObject map = new JSONObject(); + map.put("update_time",now); + map.put("online_status", "1"); + wo.update(map, "device_code = '" + deviceCode + "' and online_status = '0'"); + System.out.println("设备:" + deviceCode + ",工单:" + order + " 复位成功!"); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java b/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java index 8d0cebe1..9d3fdb73 100644 --- a/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java +++ b/wcs/hd/nladmin-system/src/test/java/org/nl/Test3.java @@ -46,19 +46,14 @@ public class Test3 extends BaseTest { String now = DateUtil.now(); WQLObject tab= WQLObject.getWQLObject("acs_opc"); - for (int i = 5; i < 29; i++) { + for (int i = 3; i <= 6; i++) { JSONObject map = new JSONObject(); map.put("opc_id",IdUtil.simpleUUID()); - if (i < 10){ - map.put("opc_code","TW0"+i); - map.put("opc_name","TW0"+i); - } else { - map.put("opc_code","TW"+i); - map.put("opc_name","TW"+i); - } - map.put("opc_host","127.0.0.1"); + map.put("opc_code","TW5"+i); + map.put("opc_name","TW5"+i); + map.put("opc_host","192.168.46.225"); map.put("user","administrator"); - map.put("password","damien"); + map.put("password","nl123"); map.put("prog_id","Kepware.KEPServerEX.V6"); map.put("remark","Kepware.KEPServerEX.V6"); map.put("cls_id","7bc0cc8e-482c-47ca-abdc-0fe7f9c6e729"); diff --git a/wcs/qd/src/views/acs/order/index.vue b/wcs/qd/src/views/acs/order/index.vue index 8f8c6c94..bc7935fa 100644 --- a/wcs/qd/src/views/acs/order/index.vue +++ b/wcs/qd/src/views/acs/order/index.vue @@ -94,7 +94,12 @@ - + + + 搬运 + 不搬运 + +