+ + Coding Period Week 4: June 18 ~ June 24 + + +
+ + + + + +In the fourth week’s Monday meeting, I showed a working demo and discussed the previous week’s tasks. The mentors suggested working on block composition for ...
+From 7cece80f55e3af33acf3d1598d9539a23d97e569 Mon Sep 17 00:00:00 2001
From: BkPankaj
I first tried putting the circuit file in the Selenium Docker container through a Python script, but it wasn’t a great solution, so I decided to put the circuit file through YAML using Docker commands. After solving this, I needed to open the file from a particular directory in the file manager dialog box. For this, OS-level control was needed, so I used the pyautogui library for opening the file in Visual Circuit.
+There were many errors when building the project as the backend was running on localhost on the local machine and had to be accessed from the Docker container, resulting in fetch errors. These were resolved after modifying setting.py and .env. After that, the browser wasn’t allowing downloads as Chrome considered the HTTP frontend insecure. After some Googling and searching on StackOverflow, I found a solution. Finally, the whole process was completed automatically by Selenium. The complete process is shown in the GIF below. +Selenium based first automated global test:
+In the previous week, I was able to fetch the port data from all blocks, but it was using more iterations and not proper internal functions for fetching the data. So I improved the global input/output function and also added the submit and checklist handlers to pass data to other scripts.
+Depending on the port chosen by the user, the particular global input/output block is generated automatically. It checks the port type, and according to that, the input or output block is generated with the same name. Initially, the global input/output block position is the same as the initial position, and the links are null.
+I researched the internal structure of the model and tried to access the links and respective link IDs of each block. After this, I wrote down all possible cases for creating a circuit by the user. One case is where the global input/output has zero links, so one link has to be created, and the source and target assigned. Another case is that there is already a link connected with the block, so according to the port type, the particular source or target has to be removed and a new one assigned. Apart from that, there are other cases that need to be tested in the future, such as if there are two links at the same port, which one to choose. I want to ask the mentors about these cases.
+Before generating the .vc3 composed block file, the old model has to be saved so the user can continue working on the circuit without worrying about the blocks global input/output. The model and project info are saved in the stack, and whenever the build is completed, the old model is loaded. There were constant errors, such as storing the data in the stack but it was changing with changes, as I was storing this.activModel directly in the stack, causing changes in the stack. For that, I tried several methods using deepCopy, custom functions, and cloneDeep. Both deepCopy and custom functions didn’t work, so I used the cloneDeep library, which worked without any errors. Similar to the “Save as” functionality, I used that part of the code for generating .vc3 file.
+Normal circuit to be converted for block: +
+ +Global input ouput port selection : +
+ +Generated block: +
+ +Internal block structure: +
+ +In the fourth week’s Monday meeting, I showed a working demo and discussed the previous week’s tasks. The mentors suggested working on block composition for ...
+?GWXMm-8!XHeCyp&C-1rfqhC9%*^sjU;I{FLjcR#)c@uG4%SS`yY7#!24 zIj)NzfB6FADWwU-aB!P>mV!3t*$zdt0#oS@MWo_UWT>-5Ok{B9X4BHOBrV>JB5_IZk>?*}yA34iB;)D}(SVdgQ z$y-Z+2LNeby~zUEK`Q^6iklgQVYw-bENvp6RQf>m5DNqLt0lga@MEsQakFL0+o^I- z#&e1(wW1$?$N*{pR29Nfm_3dgVQSRpIIpjs=j9Ti(6o#pA@jdR_Mog%+VVCyrV}TE zqx8R|%g+plSO%Riv2>XJuoUj+XT-HGY=KvNye*XtBe{t%*oB_rZn{d6wFpGRC;$}w zUW}k(_`IdVikA_zd#1bct$Nxz{*9lr^AmEPrQw2ANOfO6cgy|vNHLJ(P``j%Opd|e zjiLF(cXs2VX81(hCRVD?wfK60>agT_L&)I@m9Wu?2xHQ`aT;h+Pvvn*iZDQKDaCNA zh%!#x-Oj+V;G^|mMHsyhO<%BTk>yy;D`i }SN;GmTMmjbPK%;l z0ekH!_}k#>z{AwT%fT|B>ttO*Q3{0U>;M$y0~WW@Er^UAySfm &+%{LqbCi1s(AVMOJDb%%Jx)7nv_$N<+M$GRgTYUW+ze z-?|+t*je5PiEXcQJE~z|KFKFW+~^oP!Tu-~j`&08Ol2xL&qOn<73>^9(Jv+&ITM LQ69Qyc8*a4XH2?bl7pd&-MRV@Bmkc zK5rtW_~by1Y*S* cG#lA(W)=!3kW;KE64zloQO0PLn%Co^mAy z3i}=NCjIuZ2<5iEj}2(aZSFvQsUsMk VO(^}w@4UVFGAQNA7|x9$z_$a>4GMAv}A5eICsTe9zAar0wL$0 z+*;-#EL4ino|gemVX%r`hK8y7wG{f1_SxUg#ETxgaHv<-jaZrXZXgI&Bgf`rVu&Wq zI+2B3R!SA9B(ALeb)M}RoCHiEcnK0C$z=yR+Y}(-`^d_zC&QTGwa4QV2UgGqbUIy7 z;3htrUX$k3|ANZ)Aj(ppj8QQ+SwjQJp_Le3(HO%jLNy`8 %Sj6BL-&bPzBU*?#wQlD@bc+Jb3JuVyW^glritYM9iI z8_hMnvVzUnb%W{*nlwEJw0jU;<;LLY?wyp{K7)9z=FB6w{lYmj8=v`nGG!dV5XJbw z 8bVA0$Pu<{{E(6xFiFVhYBS~AN(sa`&?)qiTh9W2UON!2le8!)u !gYDyGPm9j0-_1Ih{@=NWRzkP!Oi+oi943OlZ3rOr(;FB+I4ND))EXQBX zgYKD`DlVD7Yg)63lJ&0_^#yo+4K h_xuXm zNsDGz^a=RP$5{0Nqb{z}YzzScap-y+xIfAq`c|N=W$K`#`*`KW@r|ny6b*wet?)!` z|4!Nm&E4^{wY6hiG`OOPt2Vtq*)2WXVaE=l;=DhfF$lgAHbwI(R?zDjcDtN}RLdPj z9~t*gnGH|R-+8HT8_sYT6+9Ad4?su7ef7o%@t2$x8w2du^n{c47`f4E^(^teA$P-7 zJTj@DIm;6=&MiILGHMWeIaR31$vW##SMRDR{ELv|6#Pd(S~2b(V9$jxL=?$0RN?0W z&pjF1e(N2pcn)wWc`WGN(h5zsOBR}X&Ba?waIuCf%DjT7I%Bc>P_x&=Mp^(n!)&8M zhsvt>Hq&OfiFUn$8YHK6q2d)Kla{CT86$Bq|IW`A*8NQD@a7EWIwq53l6vy65!_|{ zF2n!FufM%;c(LvdD)jw8(XsuQoc{B8i%~%U&{L{v2ExTT8g}8E7N9%*H}&Rbi6W(; zMrTy+xy-^1I&7l8*zTH7+5A#X%hSOZv^PS|!eQBg@Ye-Qh&h14qKT?w#vL2TemU!} z%k6 nYz27j#v3A^q;w|naqstJ`ROI zXz5v+W*>iQcXUL`j6tXyuQ91x5U~WJ4x1sevLxgws<1@55(^oAoDd^4NwLChTCj={ zL&W!`5SBCqJ`^Kb*|dY94St?Gbe7W{ITm4NTf}c_%Z{e%Gc7foH-dGoM(^P)KcEB5 zR2~iUJAzt^r0Pehw5A4;u^(yirkhipis7J!j-6Y1c(k9mjN75VCvo1{i4|eFBibA{ zmec3?3Ehge)2s0rt?S!b|3K@SF3eBX^uyRy&BRx7+*Qn;3o>otgT)`f#IxJNB;1}y zPLMKvp|q^ySh*!pPH7aj1*bnn(`7bzDs}SjVuxnVlLenLM5 48wn%7#b zdHUtwRiD(10|R*`V~j9S>-jqci;SqrQ2EB`fs3UTWrhi+-V&S@ymRUbdMwwIjbe-q z_HOu}^o=$?v5P@HrE-R=Uh>&9JFJVxe3`KtLVe#x({rMRn*RX;*eL-p{-dI^7};F$ zK>V=L !UB1ez_0cFi}qx&a^q9UEfC88^%XjH2E z&W+Sj3hsvm!jt`yi1H-V{#`*+lX4%eENetHPW#IG+a6m)sg2d#XMSnEGxs20d$;Zl z4IHBIt*#k`5K_hPoVH9-V^zeSmTdCKT4UK-BX_r`c;?V!&7b>oLSo1Ec~7h=&3L3J zV!bC&lH}x>*~}+%0%8kH;z;;n2$m$v;fZM>NeYdrOeZ^dTzqW9E8Dg=Wr|S`I(vxU z_?2KbX1}|y*F^<4O8dO$N8=MN6}hP~wF3(F*t;}`3&aAu+4{a`(ODu6r7%}s65Y7I zq*(Z$W_!(AS33ej|6s#Fo^aT%O;lSi)p>x8a(wS_qL`ziV~ncFBj|wMQOv}2S|@zE zhRzE?{n&wXp6F4yoP3$;wGO!Yu5*5JHY2MOovS@Z1TU;L&up(AE%z&2XWl%`qsu@n zv=dMEO*WI4q6A0d=H`hab`GM$#8#k>qK%ysAkF4EW9{C&f+H)3I=Ave@!F@eZZN}r zz)7ZLOFB9++*|$=U2u+$^Rn~#ezV7gWLU7trdi3Q3o*Gz{?U_TdBM dbTYH{$fEs;`CPttNk|;nS+FEFTsC zN^>hY&JWh`?2P_y8O9)LRwz<#VAYVZz%(O_NFX7wrVMI;50wJ1`qMm9CyN1j6H^48 zI2(c!6DEk{i_!xw3AYo*v!>P(;~S?Quc{ptp@)iv#Pa1|E~)g%TME}5G?6%Uxl^OH zIWE_hget5ssW-4^e;OURL_kJIkvBt`GQw*P%qEodK!oSGjLExBWq;MME?>sez=Nkr z^=#>`#}I0JZTV>3%=f IQhe&h^ICwd@0{Y$(P+#gaxyXA@~nau>L9P&Cn=i@aj`zzQ_|r# z)pS2U{fhYoMUGcj?hy#Eqtu=$W$?-{u8?!ieZV;2=jgopx*QcXlM$p4c^nkIqIM*- zcs$|Z$C-LJwFBJ0#vx&nNQZyGMqB+-99Yesg{NWQBoYcY_4FAKfg7l!j(GW0W>^ zOowM=j06*z! oal~7n!6tOTn&d{8s~z@Z=vAuVwjCr^kcXcS=d~>e;80flwS9u-s`y^Gp4i2 zG7oQMkwz5o^-HfbdUGye3pAV$U>kn`1^K0@8`ug}XtuNA4CAzZGn;6Reb^%9s@80{ z(MTPd|29wm=gA!7f(EyaskC(e!|VK!&*pJ~;s{Mx&0Z+gNLe#8Dua1LRQO!JtcjxE zSBhCRj6ezCQ`t6fCn7Co#`P^6jO?IFMiBXG3{Oa8<^sY#_*HVfhw6~cX2aNsr9YU3 zq0X$OIkr^IEBVo$O3f{R3lB0i55g!LS-eokebnZ>(-^~K#N)+Wd)0A8LHYVprA|+A zG>=hIQ%626vB=`1XGXa1ep>#Y9dzZ=?L;^8+w~vRvMHuX iobp9X(;}+YvNt!yWil zTyfy_;mwciR)PiVq;qu4*M&hxZZko3B8xY*NN@kou)f0PJ(M%I+^XuVp0F%+Icq0d z|77ZY-Fb^=n+*|?Ku2 nHqCPxeXTxUn}&;GNUCX`JRxmKZoD@;Y#r3tNzOlRyx1EoZfsH&NEFO zx@LmY%_Rz<_vr^<;au|r*S==)lMi@u-`WldX^vno_yYLIqx}D9>kP~>Q4@~CFF*aj z*JlE=e-*`yT`i$3P7xzR8-puCeNHwO
p0!iD&3;m9 zNv|>PEz$b{JPkB>Jx?;^B&zkU`{}|nokeCWNxvT;7KoVY$n_6HxKL9+JVY7UjkS_( zSF4)!))1@b_oHQEdsZu{X4u)_caWy$P+`*Wu-p3HmpQUNY-w~+kA2B5P;X!0OCQn8 z=XB>j=y7Fio(pCzkeSgRR@@P0N1fqFkx$haK+x^qq?{)C(w2twC#NU3hq`Ka<%g3j z xeW7TQ+aj&bNKdz519pI?vZkT|Ij=7 4bEo=6XW&jm5FK{lbPvMO@fJ${uj*D^X6OG?NuOq(j@b zBe>UH7Fo>hUFwaO?ff44 N^MON|kmD@R@Dk zHUAP=(-aEHKE3}HhA94SNfw4x)oj7Pn1Qa<)n!4QjD-nLp;X4Pq!Y>&i`okpA01}H z)}6KFQK)^bWqf5i;FtdLNt@lS45u0l+*h=Ny%-P}XbUekFmfHdvrB8i=u;SH5l<=R z0wIIvr(WNjO5pZ3)=}l{UAmI5LP3ZZHnk%9GOB#nGPMEi+dPxo+}GB7yn^ST128q! z!xpt3)5k1K$^T#GfBuyvB+1o?=t$9J@w7jcdmoQ9ak!Ix w5ee@39`Ft(lPLR6#&ShPpD%t-ijgh2P$?2;V(y`NU zkhkP$@E%MaZZ&+&oXxG2+1+qdRMgc (4C>{Q6E*$2uLO84c9xOW33=n#%FLrLIXkD>0gIXt@S8du?Ok!DKaCMMZm}QPSF< zKGvHMp>wt)B(jur^K7*xEK3>lRRXSBD~M%$>_*RiJ&P7qM>2FMecqwt>zW#9r!vb^ zgnwneKBH< ^qg2siTFyR{Kw_*LKhEugg(_R6tp2f1Iux!sXM9D641t2MVezC6(p_1^jqi zF2w-TML)4zo{6f|n8v+~WF4mgC5E =(oDSRI8LF4I|I={cj;?Km7@2lRe`p*rg-6y=mI-vXKk7IDvZ|NU0Tx7m~ zAOHLXRilCV=O7vMP?|yDU}y3rGECpsh6lK~xQ~K;;?b{CMW1#ci6Qs6R-DMt@hMTj zki6jm_3K#fs~d}|y0_2S&UYDsp`Mz~)m?X{XI%&D<`>tmF7L-#jf~b++{ ^k*IX3+gCBZuvkv?v22C7 qSnpepudzt_J$;-#V3em3L?Yk64zbfaLOcMbP GZFXARIkMWn+2~uW$?=i*SY6ail<`!-L_b`N^+jVn(G)RB4n5y(Zu_+qh z%=4gU1plTHSm5;uXa%=Ve&z8F>i+yxd*`742&I=cl8viZK0?b3s1CR% ) zDo)l*o-W2E&$=7UkYqZmiX^@8)So*(${rE@-)ku-u2h0kmNN)_pgU=b`Y6XY9PaZe zgTI*UcjTL$%X(PC8+xB20zc3Y)Wsdr!} {xyHeMeV5rLlOik^cpAs%RU zllz9`@D<96|J>%QNGvB4z>Pp)0n6k4oZRpJoE+#syB)|I>W#ujby>y_!H;f y>>DKO)7vK2rKSm4qIxSOB))te?#C(WkZ$4u?LQDO|6F zZAX8p%^nyzzRd3&5Z4X0cSW>kBlD)S(}afGM7l*8! _D~!Tbl-yQGfo9^@r-M7`pcB4jLy;UX6DTQNjx5o@DxgS|#F*-5hB z3Ih0hW$ocwy%J6B9&6^SjK*WLckyEP85CsyTMDx9pW}&WKF2ZmPy%6zuWq-(oj}rm z)^a;!PGI(R62FvJfAgyOJ}2l0VPD )QQGl6L^5gPD3bdQWua RykVpaC5gS~4Ni_mULe1cNVw$xa{NmhiOzqWxE_dFsue z`AspMcTb{8yU~vzqiX2&(^NNjN`nWLcY>wrq7pl$?;8KTxh#7ZDLco`AeDD2edf&s z#Q(Ljk%jHPcHJOU4b@k+q}`DG`^|QO8b4EYeX|-H36tWY6d6_nmQ%AadIXsNC1*e0 zsL6yJt#K0RE$x#bq 3%ZK>}4x)fg8un3y z83yLBL;ug8NJz(QXrBhrjsudpB?=L=GOa7Or8h2=Yf3)^xHXPSpXOPc9AzA;mU1gA zWt&Osp0&*IX(vca%1w@6*O(wt`Z}p|oO-#Py5e+HFSC9zp>+DTndd+J%7Jt01>GQA z1oIJ0g Xn!GwmEe(vj=9 zbtb0 UEpTIEHrp(L?SuyM*=&qW(&5!`! zNap<9wI 0g@2{?I#=x|JLaN3+Sgvgp`}?K7ex&V^{#JkJ#z|QY6)HAy zoy5I(&mdxEa(#`L^1%#8NXR3JVgz~l__evIz@@m(`MZjh_pHiR(3o9CtM=W&I<}hT z`MO6JNn?w8APBmt)i>abVfN0-xby3;Fp`xY^UEmumD=0QHuqh4?0o_Mg9Ye5U2{8_ zaMk{M-U}80b+G(>&QgB-@%%L9q|RVpjXmL)pF01ybkDhk&bv}WTek?CGD1CYe$_^r ztucJsGhcveR`{)|tM%upj*W>2>u~O;SrRpC*7}6%h8)6K_+{Yox6{bc(?oBJlkV`d zZmpNgUpf!<)2noPcqF3xg)#-!MDF!&+LDfs1{GQzhYEzJ%frr^Ynu#{r1%NGRlxH^ z>#&NBI4zDDbd=u}cKb1?8=V(^P-gs}kYY9R(h-$J2Yv}2{joyq-ToZhH}eesr7^Jj zIWF1gyvrEb05ofkDHsQoOLd>>dww$zZ>bbwkaYR{>mCY({}Uo}a<^=P9eNDQBn{`u zFVN&u@xAq^EI#L_TnR(y+)Ba7LCj@)dd?>K(C&-R3$AIU)0S&k6TW6R*H5`$_zZjR zdErMe5_J6%_BOpzPWY$ME!brK3S*Ng;aKy22jX?q!1;P#hz~m<^fyMB-VZcZF|^Jg z5&eZV*>{|mAFf+z{R(w~fcaNC9fDW?&;$@82IT-a$7iV;t9O!`A^P^C&eJETqr+IE zgPJw)gvaB;@Xg5!Zeekws@1IU%}thIZS^AE_Ex^KJ^+{#c){P%$@?i}vLsY(iRcsQ z-|-SR7xKqq;DKLlfDY?;b`Xy`K<{2N<#TFzwx+h7!y$U+WJ$*xe2g)y&qS*InNw@S z#=UHv&gRs53XH+{dqug3wC_~2#hLS$G~bkFG>p!h7PE%R D42UQa4El2>y4Y^yF1qr1U!f2CAYZ|d7~*m zeF4tRklW!|zQy6uXifZd`!RM4hzHY1eihWz;gwlKU?g r-AAoTr%y!zd|!zjtg6@2PXjZIkqQ{b)@)b5#qlf=UOpl?C@$0h6ta zMJtEgQE{e)j#BjAEbkV)TuZ&$ENxgahFZhuAh+Fh?#gF# H8B>`Tyjd*+C1R%JjxL5biy++nV>uG$A|>Wo1jaw-D$3NpYkSSCRyFtK>KE{ zg_+Go*xilTUK8kvREuEtl+x(olld7N` %Gs}_uX^fePev@4=}pRi>fti)?BMxD^^$7+6=BG zROy%J2ViKa$7Ra#!b&w26;kV)LL@)KahUW_oqnpeS)n>anNKTbc)uIQP=NThI hU<9sxgUL7a1ArTPoj?8PsJ7( zk`DAbH~_HhF?P&U86UIaNxg&}ni5#mVH3tT-l~`upJ#zXAKTL~b9r&UP565rfR%Ms z9B;a?Ft@<&v)E}Z4xt{U=QiEXjeFw}?|45=^k_{XW^Z6iXGy#KRPf)L!Q+F;jqP1L zEnQ{XLd!pOvvApd&Gij(8_K9UT!t8AS6sr-z9 zq6ItjoQs(Z|i 8%1lOsko!NNF`L>_FBaHU?Nm=mZ0mzrR>ZFc3eWJPi zkAhRLg&&g=oa|^a@69obd%^Ed#-05>mP?(mmmZeS#B3w(=1ntm=_JA)ARn|2ZwwfO zXJMT%qYjQv!-p}pcE oMWh{10Kk79W>%k2(=a`WHaoe9FvkGK zme)ST3FkaOpJ?IuA;gR?f>TxaB3OUx(-`Lc?XYMeyZmjeqsFI&yfabU(wQo6{I*jD zA~*Osp9ggnbi@2L>k)ThUGe*fE9j)#DRRTl<%j{FTBi-xD{Gvb*ncWX1o>3fXlT@( z79Nd{YYB#xQok-}(p2dvc_-XmDs_ffP7`s6zh*|8LR$|DbnVdRY`c+QxE2QIK>Prw zZ3l?3BkPqjd87L`1!m_2x1&^;dm3v(+Fx0br{=Ai3R6+O&92Y_pkv1P?k7&i6B3-L z^LYd7BoTj9y8*-4CL7=7L#TFet^HTS0lHgxiCdP%wMAQ|G+_NZyc=#FPeu1`s_=o% zuenE*)UQEF-1et;fJ}Q8n&b*@9j5z&{*S+`ZN=M+Y?fg|N;&*h!2nATM_cZLu{N`% z9u?rAwcELaL;t7+_4Df57Uu+~2e`{#9K|uEajt;Y4Iee3ZO*U7n5#e)qnR@*gHveV z`m;x+hlcxzLa?S|u3CznyJk%=c4 T!$bQu3YqpKAU3Ti?ohZE1R3!XoB0TF>zVW&wk?7Mxov~qth6~<(X4sNvS1F#{ z6Ot$HKQ~w1Pcuk)QUu@V22{6joGmnyJ?6v3V1j1E@K2GJx2^mq5XV4GOl_Gn@On^v zal5%>-0|_^Vr$qzAxTR7^fZipm%VYj>E+i?7t6@U0+h-RF|#iG<>f$K?cH;*Pv g|br=eDLN&KaZd4@s88mQ#xRLBb}D<6nzChW>U`yudM+!Df0M>iti zD3|*eEo 3iKCz%Kt>`Vs!IO!N&m(12i zW9|V|o?lFh8H(H)Xszdl9;|tmZEIEAQDl8m7IiPa&`_WfDr{nettSAv$=0yo3O X0FGAR^U!&9o!cz(9`l-E+GzA=5Z*ZPJ2s*_wA zBuUz6#_K`OLKKc G2$oYAv0b9%t&v2}M^?4Ys znWqvc>9W0Gpoug?gPf^tn2Rl1we#?xxZfx(PRX}DtMzyuJ$6nWWvX_eS$EVbM33>B zNvhph@y9|f0q*)Xha2M#*s^m{T>HngQ1A%AX}Gi(L?v{EcsSQ~^Hw5b`f*GVsgRt^ zcTiOp>h$^bYg$$SsXM#kF4M-xMfSr+vWF0@s*zh@pd#2whOEdb_P0t;B_HB~MHoC` z&$h$~1EN}XjQiX2+4cMZ9!lzW*ci5^izpFJ8-Q-6hjLPXWlH#?FLTS69@hEQTku&i zKFW)!D>Nfa%8wj+LAZyF1{F>bU%$*-+3)K@HekExrqzw>#s1Iu8I~Pxp3nXUpYyRD zI$ZYA?6(T1y3~`uREGdxT)ZfCG)3L+JX;+eQY0OCrR9{Pp`sOu^|3#P-~86BJ=bgk z)*x$}QhZ_vG}@1H7*~fM9RQg0mE(=4F %XdFmF=UF9W{LVsYXr?%V`>gM8>V%Y`oaOW zWi`mA>vR-SPSqs-SbE1d_Bq-~ZV;{sgxJJVKx7T*&N6*R>W>S ^bDeFem0&AMq#HwbNiC zX#Z-)aob$RLRr=jrFu#v=79IgkrAi9yUtv H#a zG%}33R_27o{kG$@!?6Q$3smN Z!0c=hT}wv3?VoU+fZF`nd{Pn6~}j#<2Z33|)D2y7#>V zIJmLo@D6j{KtkHB7JY8c4P5f&;&p#3J*ql+AKaBr>N78gq#n;y+CHDFT?>@(oY}e2 z@qdZ$8Kx2Z%cm9+*H1TvU8-AB)P8Bp) V1MXv&)bi0bYrVOq6<>H zStcnTclCESeq>?Eu^V?!$FtTf0XX{{o@yx`r N4b*vW2Tsv;vIBK0`yDGuG@1Q5EKYWpzOhh^vRH@ujr>M2*yI}=+55Ss(awFEV zPaTVes1HHyGEf7bHV%Q)G^111oDo+uoAJ`Sci5eMWx>RwS|vihN|%>@Ewsa@n{~e_ zO&6@;iI}~WizLoP1%r30c8I`t(48%F-}^H+cBqso{v=IrOX&Cos3JbOG7RFQBHnqo zI$)8RS)O13eu8h4T_n|xgAx5i7(id+kKCX_o!n-XHqswWT5}4UR;mS($D@;G@2)(k z5@rn+Yq9W~5J~LiiBu~i=?PAIqe6VIn#9|j%^;b^*k(&iGb+##P==jh1G_*d_LWx$ z7^6D^N*b|OIX$;fZwuQ&v4lEIEt{R4{iJNmZLexI7k>aUMNulUZ0jK|ui+`}h%Z7R z-jQsJ1BOQx D_-7* zBb+Gv;FDG=L?%Xe3;a1h&C1#7HBdm|c7D2HLy_$%3_@k{1~hqR3!xg=1TN6s`}HYZ z@QX2X{le+?fl8mIFnbrdrmLyxuIGMuU-#i~0d|h)hkY5Nrm7<@-FV8iEZLgv6c3)T zu&_CCW4!ZC8rTD9y_x`-xA9c8@a>4C%s{QMqAPENz> |H`v)12eK-yE7YT2LVx1Z?!RPC;>aH_%JsSw(UB z#4UrOYauU<$H#e(ugaB_XQlhWG4SA4revd^i&txgI)U$60>WG8?Q-=ra8DDW4kdVv zlTo|sQ{OXF&oQ|@wf{_sqWhWfAAh68CvI>30(Wj=@<%6h1(UU?wWFc+`nUrM>9vgo zL(EN#;XT7%daisO95Td0iCI(uo8FvOD^&@EX@ud5791B>gNK?5uM+FI+P#0R57rYL zG2Cjrr!hwSh$LZd3Y2-wH`9~!k8jv5)c3HD==@ecsd7B(d61>Qx?c6nV%MppZhax` zV=NOv^Th5v#&(AAW2 -(*qMx~z(n zR19aodinlIV{9S6^kb=r$y;L?50yW!4i`e4u-Oidzm`5`U*8T1iM9qP#JD-)8D9hX zZVmjG3~rX7CVGQKCqyGFo9Fjlva09zN52>~;p=$yF1vHjwZqpy?+))GAS{muw^tu+ z{#1$8r>?%+cZ_1x5>#XwmIJo{srYY~`eE3MoX60mg|g~n_dW&H1B!}c)`6HBCr}3@ z?fOGjOuT9--Yof} #4eJ1};%jt4m4J!0#y#Z3-8W7&k_l^enRWi&aW-3R zLaa+UF11)YT{f5U_!J*Djx_6!XbEI4&mY;9S0o>L9Yjjt4sI;Iw;FN~Y^;wjZUfP* z4F8lBD@l{kz|FHzzlziKwU~Zk=CLtM9Bu!4@MO$i*r>TRBi7dHofjl!AxE(x$Gzq| zM?mufuiENL|8v5Wh2>ZbWj >;PQ_l%86Lh_q{k&CNUY29CzMHGfuWd0+8g<`Z{L_Adv=}T^bIDdA+YX_F@ zwU8499KF>7?~_xOm1j0+El2py&*d#UOt#NGk3h%bCR0C+R_C #3myMPl zoKE2_w&$QFLqCJEyHT_Gy0#v^Ru}0EwiI)RYy;9eNUOc~B)r3RqJI+yYG h zK7*lsX}f$^O`>M@{ijg4GTpGGU;s8$Aj8MEF2|8MNF~BktfPDGjSd0g3$s_o7yL^r zJt5hYa(0|##7YKrb#0$#^GgNf6K6}i;hpAn1>b7f7QS|s3w2|gi0))k{fdz%vwF?7 za(Y<*)*xhNQY&!DFCIdOEs(TcmzF`^>G N+O8RMTEp`@Ti=tW#V0A7UY@W zURz1HD!P*U6H`0HM2r5IchY=d3_H4uuBA`u;lTaeJ>b`Lh;Gh)XCgwfz}_s^uL^*| z#;=li%r;vJdMiUSN)FKTRwGL;tIFy|HUzuC$_c*eR`{mMJg1VYV?CBjLXZUK^L?)z z8)8+z6d@FU-$}y(JVpF2l(2h7eD?N;=8nMs{=u@87h5I}&;f3pY zb{%(&o33w6k580X6d@1vtlEja#P@}vZG|WQfO>sOuZysF+dv0H22Eqardh~utByKU zV5KWLC3{oo%3kxW|GrrKSOb*{4yJ?O9~ns kk^Bil?}(>9I#A$yQXdMV3FfjBnN$u|#)t)ifI z2SBNPW`m&WsmUK3i$(eA>Z9JuH>%Smb$*S6z4}Z)TM`H$=XNg#32IlTOX`hPx{`Og zw>u|ycsD*LFzY&t|GDQ@%h!C@FlpA8@uUD7`EvNP&0sLugn0a>3%_@EsdHFuZL!2_ zrtmM75$%iLRYAK&zqM)3Sw8A2nvmrt WX!rojW1xVmbUvP@?=|)`&KQ7OgGi(wG+y#A3t;!7KBZuNcDJ#C~ z#DCU2UCM_?1HXDeg`;*~KVy|C64jNp*vYMMJ?Y~~IT$U~hu7g|0g*}!W>c5&)dycM z^JyBl!;T^``akP(E(vi@vFnF)iMeJ59gj!P1M|*=FN3^wF01aCs|)287`oY2m`tHW zXc5E7!FPN^qcKRAkTYnT*Bxl|^ES6NN3cSH*{) }TcGA~j7w%5ih*%{lF$d?ndl82eKJ=r|POw;aOU3IAMok6?_(}g;#3@0` zmIyTsqg>e0iOQ!Cgm7gA%X7*@mvbBj48OiJ&`3I5GkkmR7Yba+I?G>nCbdG)kN-HW zu=Z-|d&?Dqd0BZ^Z!H33#nAzCOvw~_>X$dRRc|2rCf2&_J(8Uix3{%!GwL~0Oz`oD zi&v4jJzrrNYrGp~#>l`LR+X5Z*YW$#o8mkz+w{<>DO?b8*(+X7?U;>mV)0E)H9O|9 zMaLf`=E*ZkOru&>ks>1ZL{F-Xn=v{=+1e%xoyOgx%QLEdr(mb^dzr|%JL7MqNXA>k zbX)mxP&(@2Jk&Po!u!fq1NKk`t}7vQD;pgRpi%u*Meq3VLBXUL@m)s9aP3nE!}`Tt z1{1~^^}DxmSc0LJr{%|3pO<7aDzGW9na+YVrvT9ykfJXs&Q$H$wiz^!QBV)9mbI b;18BK*h6+S+%q7xFEWFVYg z7K)JyT=pIWkX5ujeL0xu?cK{7U~%@rqr+P%E2=94zS4JzyLQ!Cr$Ra8_@?A8264*M z(sy?ym}bpcUBY-7^oHY*-}va2v52gP`ovF(7~Q8?@wtLxc@=c#w^QmHqSY1p0Up%I z*t%j#;buKzw%*2I@}1DLBIzFwhgEzdLZto6l5bE&uPm2+;E4$g7rw&_MocbgVmJww zF=^}`22?N(iw~1P_#@+G%zc%a0T>_{Zb?}Lynfz-r?B-cw+R-NB!8P(@%?S7Qhc)3 zFL(^{SeT%?@Y#LLaW~91E!qPwH728x`4g^tm|B)TH2T;ut_eQ&1U9SSJ=7#GRMxVg z_}D|Pm>r|`1*`viXr a*taK&9ya{E@3tcD@+Id*M{ zs?U_5zn%H()i*4(S-K{;gt{()X1a9H84`Jun1Q1-grTa1Ik2&Q 0AHe6R~B#^}Y3W^TXg7$)XH-kftP+J40 z0z=xmtjx;!wBr7@zSwq=-(yuz>usFcrt!kJw5r=WyV@qk;i5c&>bCT>T)CV^)xjs+ z_PC-j@W9lsHagT2T#I4(jhi(os_jmpbrp}6iQS}Lgv~-GvuEl_GNA*i39F+{V*ITqBM?NQ&AEsbUj>t!Vt@AxBRO*F07_2OdI!=s&(I^J+% z4@;gizfT|N*HBukMxj5;guZU*E+vhS6Hf1Xs#b4 +belAzGxN%xmHOnRyJ85`=gQTQhGTN>b-yx+p8p|;+0d|k8(2W zK aE)diVQdRh!X`t0JEjI8eKlI+`cU)QzAgl^_ zzD`ta86cV^zrG@R=W9E6qK+z+DJ^aO^9Xa{sy{rp-d^VhknHyS{Zz{@_7r#~mK<0m zy;&$pv$8#8(#{6|?febjmJkX2Mz&|s>a2)}!9X)CsQcJO65o-toSFAPnJh!OQ?F4h z?|37!P&4wD<=JFCkgENi!tef0)eio+Gz%Z^pQ=9DNg#p2PVD*7wBrh{;s#|Sn;c&1 z9<_{DcV&R&s9n44)%}w(-d^ILa}xdE9J{44N!#z9kue6J+3Iw^l4$F&)vuJ3HMq3< zM+< *h$jLBc)J)?SIqtZnYG`fC=+1WNZWRQG( zxeg0xJF-KxL62v9@+yi5V+WUi+-P-rDv3US=j<)eFn*Ijxa%2AjRT&Xl8q@ZvF7PR z&
&52)aK>c{9PzSn}m)`Wvf!cIf>8^- q&$xSSuAI1AkFwoy%-dHlA z9#}Kf^V7Y!p @PH`+-cE(QA9pQWQO&NV%3{*kE|2J?~stq@TB#a-mVB;c8s2(}~k%P%`w$9-b03 z-pkwEO2j9ngfDLsT8CK|Z?0XpVMK |qkbW0LbnWR zuCQxgU4U*M*`*nYKZq&RFxpoglQV@!Jr!vjdGWQ-7GSG3Kg}G+ {(1jph% z&UZWZM4w$O-R4o}QuZjyX^b}x&UEXb&RG>!&Y5X;_gXdjkR#3TTEj$OnUCRf{A%sf z8YByM^PFs5cfMDwS*eaKs>rv~Ct2)=>Y;146rtf8rR6GW!3>2PlNI B^4|_mI^Bv`_I|gaAX6Sud!9kEV)i=o@DG*HjG5kel5#Z@$iYT! zc2CUq89`_kv%!7lI=lF!hm-Xi!_nnG<^-Eu{PXcnHf~2-wD($uHi_*wl;w-nw5mf6 zckE%C4kz!gQayY!{EU*^#u|zzlEGdH^60@01COeS_H9hU3%z}gnaB201)VhV8PoG{ zdC{@`vr}JT)9ju*7HX{k3FQ`g<#Ipu-a9dbxgj$4##6_F;EMktOB-ToP(f?lVX;am zmha$n_CS4~KK_#7ODwDpu=cxjqvOk%BKU6Q^iE@=1A^$7^Lz{L(s=+M-yp?I*W?Zh zvjkUO$}NgjjiF+VRof@pr%pS`m*3V11ETA)-J@rBlFP^cU7?luSaXHS(x#&adH{(S z%~z~`=msV2yxfz9CDhLekQzbaaLj5Iyf; &hbm-=8PU0 DfFyp`T-Xv>y5O^CS}L}!Knr9xj= MgEsG`(GkMBMv2xe^UHYOnJyK=f5-k`y+h!My}=m6yqWVhsjkBmZ#6` z!mAY%p#LQNC*O`&>j739fysYL8IjBiAFi|I$5hqN|D#fTcRMc|lK)Xki$Ut~{}4mc z>S87Qhx!^>;f}re|I#nk1QM%3amk5Y0v`s+M@D2rk}U;TB4Qi4cvIEApVOvD(nzY_ z+2HTMhG7bSDO^=B<7mlh`pmc06c^0Gry((c%=pigD&%R#$2KFoKj>p%NLAtS25WjA zKxw|j9wu%leeE54N;<&FYbbiIVFEQX@84^duR?kG+$o5ffVPm^E>r7eA#H*s48#NJ zh{t&+qWjnAWMVXNGyIQX(N*+3prC0|O?_$7Nyl~NYa3q8%@#fS=Rej`EHsR*?SIHd zhvs{&NNCZGaQ;Je|HX&|Ijb7oQsDnA;3&w}BQE0$TLZEbBYMg% DW#Rpd>c;rH9NedrXgJsovmq9S-5Z#o!HxnAVOD_DZO2;V^b*bql| z!6+ejZq1u0)BMg_NaAIusiPk9Y!kunb2PpwlmhB8o9~-I-Xok-YOjpR;Nv{9qsVP= zc5e$|UP&yJ5~MU}BWF@mq`ko{6=?Q7Z+)+G4W*fhP70tM3S0i}EWFs`>tI2FmiHNm z`_p><7C?3O4r&$u^biHbusRd5qT(f*_?8h58{}B??rI%?8Q9&RoiCZo+Hz%AR9^+; z;uUN@yj>sixWlOTxPoSeUV3ZG{is!vnL>yS9UFkWP}uh?%22`f%-_X^6|@Vwrf`)# zD(}Yq63vxLT^5<3oXfr`=Ya7h-{N7I2s1b3YRvYTH%`th{>l<(uPcioHx_2fV2!4r zmF?bLMD2=i>59%6_PWR%OJ?iTM)931+{+_MISX36Z2x2$EY?MXtgROiw!+(@L1ncu zxwDhn-+6TAqp7|1Zr@=%-sj4j@+nsxp8ai$W==h%T^f0n7d<)q8;OSA#hBWhv#p#l z7KtT^*+$mR+EMam+5Exl)_*(^YuJa%ki#?G9G`=oOm%ev%d{>4cca++#R7PkB<@d> ztdlJjoZ1|6CR++~ObG(guK-s^MBXY$G0xfe{J{c$DDu^L^!QsTSab)*Dcn7{U56JD zy37|O)Ymsli`~Cqlx5-ga|kcT!!spw(fz1iJ$T*dfs +Soq13R@h;q_>J{ zjk3cdFy)NRmScNFt5ldZR9MP4cvv|s`{sII!?^8PVLWw6s}ZrF@dxKbjuR#_>t(u= z;|?syI8!2FCV8|q>Tu7uI@Qlh!?)Y0TYZxYKG2yDb}Lj-A;!HhX(^~^V* R|_{o04y`iM>4~CR>wn0M DS#JRBcVR&-HqW8?{F<()J#o$*az4s5a(J5JIndS;hURji=nC-Y8 zH+TZ$*o%RRi?q^)+JA3i2I6Yx%2VDIFV!x|S7C5~h?Q}v^_S)tcfGi 0gSCU>QzfYkD&~|XuW0k8!ELD(scB^UpJY2 z7cang5A4ten)B0QgE#iQ;TF4`D~|NUHk)kx8J+rT5zjJP4lNbzfJIg{cVc7xm8`sv zoub)=!>?|3EFF$30L~H5=6)*t4i(B+dRKF206n$7pL1xq5s^Mjs&8Nv$mkr_Gp@ST z!4exO-ax_lx=^`o)piHoV6RDj$R`%cKw@$TG`X}bb8@*NQ{WKD^yh6QgEqynLGHR2 zUC0KY0;BAY$T)T<$@PlB6(Dftb$uLIEr}~J@9YSX$unKBGU@KlAP@3ZR4aq9#3y z+@YF_+x!dtZxZ6z)bMM(BKks_@j`Qf4- Mq>Ow%;+T@^d zoJ=99CF1Ai~EKa zOOdTl<}+Wmrj&%J|2ASfLM=B8e>=DQWmMQk9_!?=>XLsvf()mGs)-4FGUdJ48U)`Y z;7ewsZf}AGJDZFWj023ek(LrOBb!@UGZ24<6#k|uWH;~!Y4%@U9213DmaHGNG`< nejP^;0uq6~S;@ zR5CA4eA+^smW|qr7ONfjn;hf1@KE3$CrB4r_RvkA6Sh1dn$d;y- 2{W%}PO@82o^>&O2!UO5;MzolwqPjdOMtp6VB*rHFf zBp!_I|8Lx*isNi4_wVNXldFpO|8KKmEnjBaDE-r`XlHnD=8>#tOlIU3kB=2eto+~K zIO7G<{Lc9|P#hvGAT&$O`gm3PMCjAbtBNUR-qCR8QV|M%;|*+l?nIWiyydK2juJ(b z&}qm-ymkwFVP_SA #){RKSU9#N z=ofh9%=NgPx_FXPbkd6OLZ1K$LrU^iLxUUo$*UXfUFgYiW+{5cda<36?mcb;Pe>$E zTe-8}XpqEY?D)hUjBuvE_!2uX^`V7>0gt`+oDw;Z?o5VIQUZ-& *)F&KB|d zzoL2Pqe4;2TJNYA6EixNN_h yag3xYu`IEh$WMv_iC96Kh z7MYYE9?98kqbVQ30P)M;Un^`Ef6Yz#$Tk;`K5VSAZ{IXnb7*N>|GVS(jvObQ^m@ z2a)Sxsi0r%27T4wRWZTBPtgT>>p)N7$e|usmcMa*zGsf{eW7}L;qipg8seNmas!~a z5b>LMqlnVj>Y=vW1!>qwNM#g*vC>hDO0~BOg>3xl*{EbuEvyM<9VK5j38u2*=kF^U zLYH)8YWfDZ#?dA(6vxaVtg#U?{Ox$b-r@a~RLl6GL;Vl+U=4BMEg8o$#0R hIf&z#L>E3j(x-rCo;&x$LwXVI)vB1DE+LwYk4gSoCJ zSc7E5MGX6a!zKg(3ld9p;Kx!nt}q17Tkk&6L$^ScTJzz!VHj4qY}eNo)zB6M?H9c^ zsW?Gn!0bRG%2`^{Dc1W+maRDq7k+zYj?j_^cEg)`brS%_yMthceYJQ{SwABm1D)$3 zQeNJcY2Ag{FbgfLM?qQK^Jb#r;q4|Lj+&em-l%YvVVJ8<(ME`x&gmY=MWcGCd3Bj| zoC24M9|J>7%g9DCy6tLY=1BNI7GXNnvX^l`TT!!3h+dZ5V|2Xx64BeAkGlxvHrAfL zqd@6Nh7duAI5mV_4})+4k^Dgt(&e`wN&{4Vps1jps++@%dnC_raWi
|+;on5h!c1S})Yq-2lZjxLy&$3*bhZi*J=sou?|eHL!F{}1 zciLw9#2u=IgI8a?Pz=k;VSME;6OOoMnXmK--2DQz&;O7bB4$f|r*Jk;lcEY@DDV+~ zcL8wVuG^KdpyOVWbU0KS)-p|)T(&sY`qKaP`+H?zU&D)8tP!3vR+^7{z+`uAqP_Bn zQNejuF&O8_?Lmi&4Q8~Z-_7pHB_L)0gtpC$!DRrZRK2(ZxX)Cfk``&-fN%?=c;CwL zWGl=lU~mV@|8jliuXXyqqqlDmgM^TXLqzy>T~*7|N_I_}bFs0|XS`ArfOukTZPVJp z^+OEo+S>avDE^M(Aes-Z&5skjvcov@kFRw)jofr-(S8<{PNX;K K32Ce2H?dGU)F8aVLYn@^sX$mplo3Syo zVc%-FgdXfPC2KotKS~U)d|!7$eO-dQx&eKkTP%|>6;B*SfS|jaXz{upj2UmMj|pD; z6&cilU6~Sa7ErlaMwW`Ry6F#{DAGvo02HE=4tIdNwW>jex3S;}tCUQ35G+BSn*c>B z6AkBjAykb2(dF5@oJAP*Oy6-y1t}ZgQ(H@g4Kwp4@hVP@CA;Afe0Lt=Sp8rG6YKbC zTzCPv@sxp9Bp @#{~-M#UzRkTKM(_+SOKfmE%Gs4jXbA--88jv z>)k%)2db_4Pr9A!t+!6PM+unzfUSn4ehE)HmkNN=4eLa)R6gA6=gcNwL$Jhzw}DLF zd@Z1ydWIjt?1K)NKlwwGpSA&s)HxL$Kv%@JJec2LMpB^Xc8qFB=NdWO`hIpF`ayaz z)ia7u*>+^k=9G) *vZ-G`dO z2Y3PI=rcU4I**Q3y3gwjZX`6Km|-H5j7_W-=VI6193y~=iRS?VvxeA)b~oeK9;w5@ zBQb+CK(FM=Lw+Y;{HQV^9*#e@OA+#nDqMQJJ;{Fv-wew1+ ze4&x+S-;=MbT+8ORpF*bR$ fUciXSKtUB z3_>D8J}9B#5D_ GZ9?i493- zLf+u#NLP;S>&jCV I0k%3961Lyk$#Z%x&uMqa_v4>P3{`T0M5KGg z9-5jt 6fH
(5xWH9WdAO6-t=wHw!cT2C=Jksd-f!giQkjOPGJ5@VNymIa;MNDU33nLNcR*~rM zX{K|XCIT5aT5HM(|81a>3rTQ@v>Lokou?M;zEE(Z<*RZc{_PXBeK}D5Ijt2=b2RP0 z=Hd&b#EMF!L=Lp~?K932+cV#92!yZSB^*= 9#ILId0TegLv@m6DD#j!fn zPCKU?IGf`}@IAzcC>$L7gD9eJf}^Pic! ?VYj4qtiU0EJRz#s^Y#AM@!?;uPo2?=YJlAy^boIR622KzchUL zZxvzQNA-9SkM#A?i^0$7{Se#V-hv%`Tcm3qG@ig6RIw?gj(8v{w?-PLMI#3JK5T3) zsFU&moQzG7F;%hOXzRY8sz%F^=Zc+DpkV>azlRLJjxMO7Qt#LOuU}vP>cy{LUc=D8 zP-fXQg8JLHZ(ge+m)E?KL-XB8;_qMo==eOrU*Bu}^manQ-WQ;7 IN2g2WeE&A61=qLeldIA;~(u_f_OP&JWwp$Lx zA{^C!L*yMmoJ|w+j7}&%Cr4;$QW~j!r3?E?JlH{ued8(?V}F@h_fuC?OaL!vD4O z{=wO?|F_KY-{+c0Zc@B$roXyTFDXqkQlI`;F_(UufTS;(xKLGJB*6^)_W4^#Y+ovw zboK{SIhwq_+mz0Kob-{2>-aObm7cZm|An#TD=&_Y4~8y`=z>Luu*JvyOhR4}Xe{P* zDqE9QSJ~IEC`g+{BLdYp#fM6M$W%q$^D7R`=2DW#yt2vbsswl>FRCoQwVtzQE6RMA z?P^3j7=J^IkyIlQ`rdh 6r8d}&drZz>M;1Ca(JyGUx=U~X; z-RFE9TX3b2lB`Nq#MCih?)Ya^kg)}@B=f`Z>oQ}nEe?zLD%>P>=*BMFuZ{m3SMN@} z`uI5(WM*iO`G3iOk7VgSN49d}8R4@gr@w~r8SP|@8Qv`Zzy97SotCf~)q;t|e=)*j zx&QQ{Y?Rm|)S31cCmz?})h)^28FuvDVsKQD4K<>myn9BwC@D}ehaydM^_a4=IR5F? zs#sGWZ@p`We7liW9xJ}OASoIu=*1Q2>Cxf4b=^0*PTu(4rB9_lYmwl%PM|Nl8iKmW zH7d{|!sD)e8-0>Am>G4BaxIBLrNoD?jFEJzxDWW`Qo$g>4yDjBr#92~`psfbFN7_A z{#6;Oc1W2{<>UoUA%b+oq^;xYvrJ&kk{sFxhP$0>e|3hr(lcML1Z$@&=@x6~mv{SD z`AVRbcj~O<*}HG#4b}bZ3rd|cqF7MB3w?iv{h19*ucgBJXPd_wQ<@4@`_=f~0&@pZ zg3sf6VGiMQkF?VF54~dM;Y$`-0ba?L;7V?f2wB7Tu~3_3=D9igm&4Z1)@R`_<^U*p zP79}4vivDzW4ewk2^WI^%=cz{ (y#8fC*NGnAjefCb zAWDR2`TpBPx`ICxD-qPEVfijEsnMDJk;||}8S=9;WSld98KzWhg7v30X;ObBbpjx` zxRE>wh|`73d{{gpbE{@(YStpml+BrKyaNRCU%Y)O0c-vBAtTjp<$|Vv{jukavX5Kr zy;nB14b(f@=xHbzZwY^H(oCo7T+o!!=|i`{7z*M0(D#u)tYowuo2%b6mI>CX-C4*R zP}s5zRUBnLf5#vjf%4ufhG?`{pMm!uEr6YMch!_Gg_Z7+ypvo-^kHM@I`Qt85Sqd* zuMTCQrms75mPQlALKKC?PrST3LXPJI$b(KP69GQHa?+=d3VzN6i65`oNmlpi(&Vd@ zeml=#E}vIx=cK^f=9t;5Hj0+G;?PKuF6G`oeinuwyV7h(fm%qd_@BemqM$Zx8set% z#Y zxnfv!0wDZ_?C7XnMNLQWE;`h=v|BqJF7d~#%mI~g#{_W&*~9OW)n@KH-zIwRS^V&@ zzOX;vTWmbAB@Zp_$&l#CMY Bh!vzs`pvPM%iNHD4Wdrn;n9L1YF7)sQWI|y=AK;qPMT_ zPV5@ $dUfn5KYzgHDN3-L&1KAAh6sQDic+Tb z@i>@&+$IAhFABV&n}XT@xg2HPu%e{(5%K-c(-%}_EWFCuYA6^vhmgxC>e)nB@hUun zr!S>8*x;QX&Y=5h1}$6Tn{30BQ8GJ3%|T|KPRfPfX-H6%Fz7|@YKaC^w4=-E8K6nC zzjJN8Wgg^Q9KJErB`2shA`HTV7@#JQ#-Dy*@8F>CtbPq^4l47GYm+gDd`SQdI(x|E zv?$Fl8D(8r1mspCeK-@|u~Nv5Eu48>`Pnpc`mY^JL;$`nHE%|@3_C`=b6#i+F@R?l zMVEpDfMPJMY)zDDOrxKK9MR&+yO48Dh}FOn;=S>P`7zLW6d-#WFL+qV&=x~`Zwll- zaDL;dAZIqptt{I?!_W-cWrrI{Xi1*)p{Hx(l$ra6r+>HCk_?wfC5|!HL#@aM*>)3u zblh2g&{tIbMrR_94pC~b??}e|IHMoAs}$Hs9+l#qVi;7l;f*^g4d$$tw9v;pa#Gmi zWF(OaMUdJ+sIMMp56yk<-P_XAGppH7AWR(As9{Gw2K>CEP7UaJE_acWF~UjjvXLQz zo_n8kzIAp>iYJa{QY);TrNO7dcucoW67=`3Z@$rbbYm1%RS(RM!=*ipy?YPphz{qB ztC9JN`8oYYXx(0~zH>lK;&6ZJBjUx&@2wA>#-j1PxJchfd98R-(85@*PFM9fM55uw z{;sj;q^Rt({Z93zI1$N$F;y;wITY1THZ233$msdZ~7(aaoo6& z2Ttf@iQLh&Q