From 86e79c059d9fa7be33889ac372d02b83e5924261 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Fri, 15 Jan 2016 12:49:02 +0800 Subject: [PATCH] *fixed an invalid gc table iteration bug. --- HISTORY | 1 + core/my_basic.c | 10 ++++++++-- output/my_basic.exe | Bin 348672 -> 348672 bytes 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/HISTORY b/HISTORY index 6e536e7..80b59ba 100755 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,7 @@ Jan. 15 2016 Fixed some crash bugs with invalid syntax Fixed some memory leak with invalid syntax +Fixed an invalid GC table iteration bug Jan. 14 2016 Fixed a collection accessing bug in an assignment statement diff --git a/core/my_basic.c b/core/my_basic.c index aeb4ae4..635cb21 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -4670,12 +4670,18 @@ void _gc_add(_ref_t* ref, void* data, _gc_t* gc) { void _gc_remove(_ref_t* ref, void* data) { /* Remove a referenced object from GC */ + _ht_node_t* table = 0; mb_unrefvar(data); mb_assert(ref && data); - if(ref->s->gc.table) - _ht_remove(ref->s->gc.table, ref, 0); + if(ref->s->gc.collecting) + table = ref->s->gc.recursive_table; + else + table = ref->s->gc.table; + + if(table) + _ht_remove(table, ref, 0); } int _gc_add_reachable(void* data, void* extra, void* ht) { diff --git a/output/my_basic.exe b/output/my_basic.exe index 11bc217a06f605764c583c719b254b7e2b09856b..09788d6f09ccfe2b7eb4d69864cb336844480eba 100755 GIT binary patch delta 24174 zcma)k33yG%`~R6Mi6C+lS%gFcu?KhGmt3+TksxAEVvpE@#7?3~5Jw1y9#vXYH$`a> zTQy3>E|#LDEv@AcG+MP4_y3u5?+uOb?|J?_lXuR{oSDzO^Ugc(yff$KZ3@WS6tLZs z)G3>}nrlFsNn$T>9muSDoBS9?_Agl;oC|#`=sW z65sE*UA_-;OKwIo(t>3S!_0r~bBo6F#W-^}lF6Pu|GDfQ=+ybov#LPHq0B?j5%Zr% zR)Y?n|2+K>Xy5tIuT$D{{`0)YpxsdZIj9lzHK=m_^Q1a9Cc7i*^8{@L+7L8&e(v+I zMu_;$e_rhe+5iaks|`ST>%QjG9@SwXQ@GfxSCQRW;CF|=&=?QfPHkJ09?)e z;U~+byi=A}L~o~ztBBr7`Bo9VhqA3A`T*rxMRYl3T1E5`%Cm~-W0YkT(WmGLR76)& zMpZ;#q6VjWDZrcW7NOa~$*&j&iG}NcO4!Dw zwG5Rs&*gGkHYe$&AGh=%xSUB_V%tv)ibAhfb%JdET8=hhZ|A{=$UP z@-|l`WIeaG{rWCh-$XL|d^Sfig~ziSr`V@^*|kE*95fjf9-n{2%aL_H+t-n^ksH^c zb6w{<-1-jw((8CtsPl{64tx>&u5*VwbdxM!RqEL>mXHTrQbZflhMOMIio7cQFycK4 zIm?B1X-%@Ys4i_K5zDy=UBZZ+TiQiV%v^aF8~Kov$U1^Yon>LK@gDCf?I2CK@z!x)(#|@yK5cc9cH9&T$PA#{LKxDZ0_AEn!e$Ke&da! z+``DIbvHtkgoXn+VoN4>xD;D^QqASrI+IlHYum_r&mn>oO+68fqU&cwRr*ucHH0K_ z*->)x5BFKreX^#Mi|$UR(=RdIFm^3sqsV1$bgWFmSh&@(J3vZ%#&wZ2sJ7XdoG`Tf zrILFU-&n%*;6Cc1Amh1nJ;EhnM($}3Rci`5yA@0FpLt3PuR-y#Ha9lX&77yFomq_p zGfF1){DZ!rj{mlPmf2ZpZ|-G$P{^WKys~g96lP(0b`a~C|J*aj3l+?t;dY&qCB%i$ z`N!p#3n(jyA`J8%qKV4hu zmKf}A9oipF#JKfMu~$+7vM@O<*ch+;83|0bI~x~WRfmnUVYYZdoGuB~d+c^PKow}w zp~AUd$rH#q?m%*T->199%(T>@hsDBL?n!bSIlx)_wH?$3d2}j+iwxV>jXl#x7~v?c zEJt0yo&#w_j_`7qqol{1l6sV6ySdSZBYoH`&%!6tf;*I%Lw&yU;mZ3(_^)@qw3((l zs{dt0N^9c7wMiL7ytw%({>@`i##syVrk=mSTSq-RQ#uE3-sxz3Cr#}Jn5<79;THES zr7fxo>)$uEiC7?~t+SCqcw~FJ?eiHH31yR#$z<9yB9}u)>}XH5P*7T`vK*b0HfJWF z#5W@%nLeO2&Lb2Kk7WJ^y#q?~W^w2GQ_N5M$K!9*fJhR-6%H8Y7TAqpxE+fER}2i1 z|2;C2d4aInNojnu^Z6SmJ>blv=|{PQfx)Dl8#{2ETf45P$M<+sF6*PZ-1C8c4_8VUCm1_!8&yMkn3k%%kbM5ei463__Tb(zwj|9OI-(&ODkv z2*I`d_hav;usNRnS##EP8^dy42Cv2xIyQKi+Xbr=R<|Kd6q<}k#*A=vjDynn1H|d` zKTc|Q=F#+e8Qjt#jfsr=Y)CKs{bz_aF!C$AJ;pfQYf4o`tPjSQVWXezlW|>#T60&9 zk7V+5y-02}dyY+X6aL*w#UMw^4)tWaIV3LIuqO}fls1nN=b~SK`!p}RM%eL!%Dk7D z$4-M}=KNmegV*-SzKUeno<2h5msCQ0ghiV{6Fe(yp|t6{{UF_9i=)wE7@90{G&ule zSesA&41Xp&Re4oEz-wCned%0SY6mE!o~a@AvYhooXQp<<#9N!%1^qjf+8KZUP1ULl zXfMV%6}_abb#rvIyT8zq;-Ga0u~}hs0zIG{I3v_YIu|*$Bey(FhAO^KljHB>G%c}l z5$PJ^pufS1tJ%Jk6PMUT&%Qzi*oc{!mYRRe4$&@IH8zqN2>#X0bWj>Ug7|iBU3xy2 zjTXZ`#(*9g*25zUC55$|@9+*p&Y6ZMk{jHT;aviDd|G>4&I)F(a`-L)Suo;niEjos zdt?G0j*t9{Oy&-ZvPeosm%bd;hLAk2)tCq{CTYxwKx%bK3%)_GilZ;GXOfEh-4y=W z${io0Aq~IDh>}RUrEoEscN#X|WVff-l|^-vggK*14dZrW+2bCK5BH~LL4UTFkFazN zSe5Dn6&h9AenK=|3MNhLk5#c^qCOyy{IZ2qyRZhu(p4Lw_k{Mji z)GbocKq=4G_GLo>;&iDj8*8(bOU*H0E&L!S7{zwww1BB`IVZuF7N)54mIF1Yj#E$T zK_+l{(;Ab0-0EpPCC^uKx2Clxp`3JjXYw^?nV!~Q*(!$~KP&X(zL-9RoacgPq)6CS z+?Ufk`?38z3(sd`t<4T&8vv@iaF^RTBi_T&b7P*zDn6Gn+BYhDCl|solrr&GzU1nB9?d=A?7_p>w0=wDJoo zLbvAnu$M9zU&Io9gcaO}bL6l$PtP%?lrD;7&N{S!i5WV`yQI+nDKYm zM1Nt@BCvnDKW5aZMV#$q8?H-UgI08Ggt^7YNep7UdkWvvXslxfW~))wcM&)Fc-zu~ zJoh?8$t}*$icmD73x^L~D}SM~9H$ektlgfeW2>>i2$SOoWXMx_o~YcMe{<~7@xFMJ2Uj~UM#YV@H3}e z@X+@v6b!8*=Oybyd-xTnSlF8E;sz{?AQ@cY!cQ8DJXltU=6Z$E5*Hm&?onPCx82*l zM@$%Mg9L|*lGY=S7Ho%jT`<~ol0HS?sg00__o|x1+=Fa-34b+U0L`J@dijg5O1W)| zk|0C&ML|T(1r5l`;NqU8bW-=}@45AHHWsost*tl(xZHU++-&8PVHXXp6{ z$Lk^Pjq2o_d~<8=`iPcXUYfUepaZYs=!ePnkk%Vx7*WF4|AK@d6?|&m&8HIO<9sA{dXQRFnqoI z*~`MidEE6SdF@xNj%0Q?!&*?+vy0L^8vl|jDlR6KT;ruO{Eb`s1?-APOHE;CQ71&A zA|?cV!)oO(e2WyUUp@ViENm}LSe7Co7r9N#@57j0z9NpCFa3FiH-T|-m+OpC4qBPr zTpZtEz-D`S3L_|;7glJ`*05)VT~o2Pd_BD#cVXqOkmSd9dr?$)2pbz#5fvULwn$C6 z?3VktbDLJRaa%D(T#4FoPgVtZRAZSF)|UFd-$g=}l-gE9*=*+)e$b4x<39bMi{#lc z?$QTx(wg&J6A~#~02AbDwvT>FU7g9%ZT0QYtQcNelb{rcec;aeh^NeG?@p$M*L z7o~YLUB=B_KNyqsr}cxQC0iqz1caAJcL!~N;ET{0p&0_rqoEZ-dxS0sY6K$!O}8P$ zax*tHYc}WWNXi>%L9cIs(5z4O%+Wa#{@uZOtq%&gvEyCjr%SJIm_uUrp_)3|9N{S9 zu4fmec{Kepg3A(TNs97G{xe_c!ap$v_VB_z+{RCyMBfCCt=l7+i=Yn>ULiEZb2Efa z2sG~pq?thz5QZX5K$wd_^NJDHaldSuOTOm@f2xo)?#M0sG+nZ&Dfj48bztwNSkLIz zHQ{A&x$<=WF_J2no0ghBQUwrjnn%-1Io~f5JwyejwOyB_^mDHU(H>3g{eQq`UL39}w#} z!Zp~sy-@<4sB^-7lvi14QG9q%)mZNI))u+oA48{=w7>^3Juj;8761A#BJ}Bf!ytFd-S5~!f*b+4`66yH(*Z)(iBYdXH{B< z6FH|L8`B<*d*sjXB3RFt4;S}XfiPGvf88y3B^scPoGWZEv*?Bs`t--^z05*=PQ5)b zWOT{QeUVJ(y%0i#v55bU5U?N9Z-41W+u@wd;`Z$r0e4U6H_^VL)7anXH1>kem&^V} zPqIq4eKVwvBq@;d+I^5HxRbjTl7&q;`|b}Kr5}c@oe_RXM4M-X_mjk-?Z90uo9%m= zcH;^*i~a3cK7EBYL0tMC|6m^o8?<#*0z3C*jI`{i@o09#4B@Vg5hilW_Nd4q?#P~T zWG*M$JE57#h-#PxXN8@;#a{c;rJO!L?#=Dnn?m9_-+lfePkW%Hp45FK%t1M@gG9fi z373Ts&bBWNzLX97meNZ14-ajcjKZ|ilfrjE4bBE;g!!TuG$n!CzCVSeaCHxqVfXUg zfe$4cW4Mw%ZKV0-lA`FBDWi+BUiVKD9&^jTogdI60X03N#>Z?7f(Ss+l(s#XM?$C% zJKww#b~=;Ou6L&Uz5(}a%wGD8VLAMrjQmvk_`824l5zD)AAP@ykjm19M|u*;^{=?l zBVpX*9|m9pm~eC~JhWv;ONjrdZZKlhtMNLFg?;I$OX$N5KE?;oDaU37f%SP7fH@=R ztr&r``#X4TI6zBhbwV1$WgTzZ(3vn938yWvo;$_A#-hzOq~(NeSoxjNJ@31sYHod?znr$JNk|>I}_L}J(>x!P=mg?qh3)q+3sec#hXHA6gtmE zo@~plI1%Kt9jaeAZ9;qAur@B5xqT;kYbqgM!gwT#9*El*`R}^A5bdLHu-K!=Bj4FQ zx{-KgLc59H_lZXRTyusBP}j4I(mWc!$lX0RmrUcvobN+gmF_!VkB~39BNvYPi-Pt*f!Z5D&>kyk zgq!~{+S&33b!q==i#^F{?)RHlCDNGE?{2Ax zWaLjgtHGg!&z)dN#80K2?syVO%PXZ?VGtQ|^pc~~%5rhzRd_s2y0W~eo13y6j%%>y zw6LkBME-I6|HvKXl|HzOW2n2_q^bbPg^OHTwVW%fS|;(m$n|{G ziW_&|OLF}JH|J3*clmxdiTOfl$b(U2=%sVD07+Ln@K8^>2xw(}n!P&3^Q;#C)bSe8v&AU>{D*G^{% zKv0%rjjx@*@)Y;$!&Tg%#}_5-PtxWjekZx+_Ir}HCun<;C&$tArH$|!wkGB17=-=w zU?JsrX`QF3B)@IfsAkH2@7a12B3{ENAG4k?k`>UDw9Z(4vDA? zheWpYDi={TD_>6C+v0V9{(3_aE_t?)_wXj!B%Pn_ zO%f%=JNQ%HWKp9Tc(EwD8ZQ(_SJPc=TYj{ZM3MLSucRcD`0*#CWE~mBXZVngq=;YX z14eTE3m+nr{56J;@Fgus7rvJ-8Ax*YFMLTj+0LK#C9Oy#|Hv0_r1Q-hk)IXmTOE8Y zQH9!=zRq9-bv?T%&7<)+zP%smNpABwenf>@Hv17hxz6A8Bb_8CExeyU8BWUhY5ri& z*0S~fhWe8nGbOeT^nUJ*pJq!phTM9lTY+XUw_{WGfh9W=R`zZ*p4 z=w@&e5{OYF<}kDHP{twdY1jq$v+a5C0QoUG9U z_Ur(fknTvxD)SE}U)CYN@drbJtdbW(iII%u!<&OKNqqO_B#h!|PKJ2U+Y7*QsyVSp z64sY_g^@1ATfEXR4Clb~z&5$8dkeCcI7^m!wjy05x&5kN!x+R!!?R!L1_^ZSB5<(n zpFhJ5p7BEvOFa2FY=7q=qIfr=k680rA&mM2tLMKiq6Yj(cxJrjzoy2#wD23}yVxa{ z>tl!I)USvg22UAN6gx_JydrjN55$?G#0dwh>R_)>6gS`+`2)r&>*SNWu>(>q13!HEjf7+8EW{ga&Ujd8pn zb`X|98oV?|vAW06#r??#4kppoSO zz5W4zur1M%1^m;tWLQgDE`#1A0oEDt%Q}GgIe_>hu?|109ho9A@?{U(k$FT?e!XmB z2hxN{KK+R=>PYe+t@R^FaPZ}g;>@Ie-Xq|bJv%&%JwyKrTlvTc(nLxRkc5XngJoE? zKfB6jM37;URE|FxL9~+A9Pic%lWP*6+KIH6?0U@?bs`-bid(rG)XRHD7{VXwMA}Gh zjp6ThBJxHnJ{C6~dHpk(Jh0=8aHuSzGjtOs(bru_FkqeRLPDee7)4>h{haN|;*=Dc z!!v)jKLc;z-HWg7Mcw>yI6xhR!9TvXS8bsD>gS0wPrCPG&!BKow;&<0tTPml1U1i5 z5DjU{mnz6m$^Bk@BPB7Tp(G^qeJjy20uedA{63*`cXC|jFl9{gyqk2 zlT=_sjGc$OFaa|OF20aVOb#5oV~|4d;^+J&CFxAsmAR`(fdr~=v4&`aM??NZQ!v)k z9@86wa1J9GNp)BY{+fnN3s`gIwHkw zA08=89c#CvhB$hrlpG!|K=)}$bN@OYxJG}9@;nL#2{$J4ue4-Xqj?ii36=Z!@FAjg zxrfivkz>LB;(-U8pYU$M$ps;!v~NoPOaqs`%Rg6#%^5q_bFU7mRB6*HDn}Q^y@pr~ zq8k)igirpq6So>7%>j)1wp-%%8;}G zK11GWAk+HxgQm&1)RPv*BLeqX?@R`qc;nw~B>aV8#7y%B3NPP*$FNWR>iaJ_^e%suN;1X*9X9fHhu8R|6^K;RUfcpV*g6pHU$Uivhz!yOh%l!^3tDV;j*k z7|WU0)L{_J(rYCF6&_TV)5#8>Y)q~vy24a7rcIrt;Ow&EK0YbJ;GUwqi~Io`cCaTn zRG2~8+|R41Y0*Fxm_540#mg$1(VtG`SaB*BDKL#I;7WlcU_}tMkT4yCMVBplqoeRV z-hlbtRGhm|3=%485Dz=}CM~Eygz_%HM@&zk)qCEJqp3j_@;RByms`j%=$w{T5+`Xm zpC4}}s#cft&@ouJn7>}^g(M(cvy65F!w+pw#lyfKwvv`G8g5%jC%^WP1;9Zk{Q(7Q zN8dcYO(c1ZdLPXv3ckOM1WVj=`N;Q3myTY@ublT*1DBJaNjPzNq9R);o-AEPS{MF| zjm(#{o5%O=iUs{CKff!{2fl}mp=14^Qildn-9QkHV(Hs3f7-1&97 zh_XIKDMKS$rt_!cV2|1PhjFA`<2E?feKSTThfu^%|386jo%RMuyXn(v12Nzbvo?@R z`Fv0uq~lD^f03-s5s^sl7V>|_k+zKk7yJ(>rX1ef^BtZjs{T$*zF{ zcOvCUhx{5SRdo7Oo*d=1@!-k9sc(?bVP7(pe-KZ?n{_OB8-a6%^q%Udng6vb=~ioO zL>%8vc?-wFDYbF*aGrfaf}Xl?U~GEPv6=i|99t&yr*WI7vGu+Gfn(HU-anB}hD_^oZTHjD3?M7p7c1xcj&=!!Xxl}1e$$IHSM@#XAhqN))&`~)e^!SsShQPxva{k1dvbU&&ie)h(fAI}^lUpR7f7F`@WCZ_nAJYHr+4*Wb?WSXP zR*ZLc&#COrU^>?zsF|H@X7TMtV0Mldd0R6(?~il5{APA)p=4^!&hR<>_c0`@aSXct zW>z=_Vf;A0VLy`mHoDW9Z_x3Xwb2d2VX>1xHRzs9=Y?oYhKFNCc%5C!vzJXVFWNmmSro0Pp^kfR}JqR&fj%oxiVnl6p3D79DM%FOZfo{Rn z|AB7H@ORKP9R3E~9oo14Qd7X#-7v9VC+VI*>eg|IQWCy$ycmUp+7jx3z zf%i+=8+f0m)rOae{X^|};W5Dh?{(^bCGS*fZFugJ-huZQe{L8gug#?Yfi6Dv9duiV zzCkyAXl-+qi49^`<*o+zG4 zMwcumwu17U=N+kA!l!qiB;jwUru-w=ic;G&(^Hs@UErHx3~?;_8wT-LMiH9}O28lo zl-~x5P{?Y2*JxsB*l>)9L{psTF4*{&qp`DY%?FJk%_WfodHopDCfNJAgv@5`|}OPk{x6}|Ls^Z=>KZ9aZ0ULZ}j`WTV2DKW}?-B{Nqe`3hRyJqsL)C zKa0;FN1_$spT4F%%YTNeQYW#FV`C8xcG82G_M%ULn%vGYq20?(=3k5>nG(Nbe)M>v zCfE42cr5a3;Jz5zN`gcbiCBO6zWfBL%zWj)&PwVb(_e zcm@d}TlnP@!K%Z(MOI0Cdh=r^kvP`^My=KECj1dXE`Kl!g0Uu%|1FCINb(c; zCs}aeI=33jCS$8{x|d_CL65jr_o`{%VD-`qaKHocs z1WCMm^5b&g>?-Ad$RV1bIXxWs;2=Or+~mixJPLQ<{icx?l5RbC%`~#u^Zo)Gy?=3y zKQ;|M;rGfqPRGcS_I&mXGQBZ%*-8so0Cs*2l}DplyksW!=GXaznWUrhHK)= zZyKe(U1@U3PHrd;?H-v&Zog&>TBE_?J5HTyhaJlPZY14?2k{xXq+uk!Pw-M6?+@1;t(x^< z2Y9l6Z}amJb<)5gQZ*dTx32ocx14W@qu4sU%}PQWhB{=u9cJ>tNa~$vr3l5vH-Glf zn~YYGHA9g=5nW*~VE{vfFm#p2&IR1zEMX|H6DQBJ{+&t~QN z<7^<7RV@XH6faq3>m4^^A;Nv>70gOeC1f{5CVd58Mck?i6#09>ah)4CB+FT<3f;st z;sP2AqgUw%FMe&u-Fbgx)JOz;&Xnz!gxB#78OXRzoj>&U%uu9I-(F73z8MTI1B+uE zL1SQ>Oqd6uak`fv1TGm6IR*|!h@2aQGPGwWh3of48BmFzQ(=^5TX^rK@LsQ;PX;)Y zast`QTi+upzXG#koWS9DhboTc7raMK)!W<*EnXH%d+>wvaf}qn7w1EZ?+oKN=aU)n z_qsbefD0RT+|ddWcYe`gVoqx?0&5EWD@;MRL=NUiMb~n?kkk@y(95$fm-1qMV!@lW zqHZBt`OzS*6%ll;SZ}BS807#s0?jzrie=)46;f}H<#P+kZ1Rf#w~+K~zq=_K!6b$x zm{No*_r&oLAw>dKBo#oqLl=7SlNOM+xua=uNRQ*jgLL6qR@M|t`Yss9-9?r9r(_q5@g z_ul*Odk3BG3HR(ZP}2TeUvtpd0BrT*?nX^;LA^#bT614-x zTkmy!^WIy`2*GtTxh7K;-*72ObM@ilrRalM?ieH$ zCX=VUrXNm!;z?^wKSEvj#_)m5$WiYwUsOH^;*T#@c24K-Eh8Pmzld}Wf)j#DSl}2! z>S%^f5p9(7x)SjeUUW16RssmGI*V+KJl46Uc_$lLb4~LWG!F(OJ0|&*HyN#6xV-sE z%SpxXqu#&;eGef?#_@mKTjK1lYKmui%oQ(u`c?s9(eJPAPp`0Ng3F&?f#D{^S^nFD zc%hAdEheV(t5=W$7ZVdX^q@FGWMZq4=->dTTc^v~2{srP&YZ&Vql7=Z9?R_|j&znh z^Wr^Lk_A3lUgEhMv?R5)H|qJdD^ce^zwvull7xsS4aD4$j@&)^n!2XYj?<1tg%6(}AC9 z>jdbKm}KE`T@lDD74Q22HpZB{AK=b}ivQpP(xS`vIAnEL0sd${N^BA5giua*|G@H% zZy)F+T~Y^C)I~YocO6OLt!v1qE(SIJ5DfYuT$}@bCE+#9ajs{5`B@*5>|Aem5kq6# zg2Pbi@S*LS+3-CQMgHaVaY?=~5eMpYArsF6FAKlPMNXU)+0xbVK-q%BUiw#<1l(`0 z#8E;*eUUBxsBuVIY6u2yVXOb}B}$m>CSoe!i`L?{2adnjk|?j}OX86mzW5XB^L5sd zyRLqU>gL-Pq98<2b+f2NOFz135roFBX?>?N&woUYCVx!O7`41_gW*+ykYOK8 zXO*zfmF|s((HEWABc0F%oqW4TDxo1A#;EW&x+s?4@i7_a!YAsY;^yKwv>VX82AgXZ zcdo&vbYUxt;49XX9(#PhMLbf->;5}v(u9#m&~(<5rW)h1#N9}@9jW=07HNexKH z9y^;a*n~Sn&P{#ePpMEheKXi4*xoqRqI0nOwyyyh;WE_zY|AhElNHh6jd;(z^`$oVbX zNLHx$=^$*n{*IR>C!@ZEmyk{6=``UWZ}^(D=j&`EjnuvAST&?A7-zakmvzNsUu^n7 ziVHC+_C#Fd5Yj{N7)z2I%{}hR$83Z5V`*RhH#C^5rf<^|?OvXd#zQ&HifukcF`kF6 zOOoswd%&FQFj>VSXdU;0Q{0S~=Sf+QVy}`OtnFnHF<#DnRJ@C}Rosg}$1L`U5j}{H zibKAIRmBv?NN}glS&^Bxg^KW*hFgQ;V)|ApTbK2(vzQcjCyOM-eF$Fu3rTKuj=Fi& zcSNFa1Y(bMOC6jBCg4J>TIv{MCwETvd7C>y&P?a0JN%jLxEqwvhnMdl-!^#I1R|L8 z3>zkY{`n5lEO&HoQ5Dl|CfJ>n5kUu}_kR-YIgc~qX|mxz$*xa>Tr}g_W0VO*nT(r= zWmMD0x;2jx|KRaik}EfvKHg2r#q*XbM1P|>i)iAHG`5n)PSTi|dx*v^(zG%fyH8_V zY0T#dVxQ1hI~x0d#^Pyg8DjZIA~VL*hxcgmA{v`PV_(qNL>jBkrO}Zzs(OmpAR0@j zu_PMXNnc{Ac7PtqU0zpqJP*{f3GMkFT#`8vBuN6ANl zylfZFpuPCsyGVfd=uiyk6$h7IB=Fh02q(Gqgs-=oOeZFO{%#V1dtlpk^gihRtGYK5h?bPTcv7JtSRnvj=}-4^d0D_TX`y@T_EQ zcmDidvbOO<&alOFwU#nKMCi9hA!l&g&G zwBV_CGuVF5;1*E|y&H=a`wE`0ztd91cSVWJNTzSDh~=-LYN)QZ2S|=&yAS`-0g^0P zpBYg*$aUg_Yr#liW)X+s-#S zNaiFQ#DXIf!PIbkq!zcjO1R=3l`e$s|P{LUZT|Xw%e!^6U{;e;5ArV3>?CSNOamq;2=>^e*6_ zx(qW=c<~Gk|3m*Ip@h&AuO|uf#VjfQ3I-(LN47HS3cYX!a!TlpQg{|VhG$G@R#tt4 zeB>q>dxScEDNy=DS(P;ZA--e)r9YK*1(aTJ zxduvaIMILfhitCnnf@f!O;GxKSpuc6Bboc4^cSkG2!$XG=e_Et*fHX zpgK_M+ckkE;bv|WeFlvOrI%Kdgyf}bbYjqDF==0VPlTu zBEs~vVW5F9-o{)6tp;rbmcj?bL?Xb)z+~M;Wkmo2TF#)mu+MEw=mDCs8Aw3Ww*Uy}_H8!i3aD&H*{|2h zYe_DXU}LUPq=~2vG_1Fcxk(ZCwK4ZW)B9miL9_Z}P-*%=l%*99#u$QT4Z#?K`lKPy z^kEo7nm)qD1c9y}g*rhi$Jm&5piCwj2bGP-Sl+euWzr{NFp*G_g~6l+rl1ng^r^U0 z4qBaqL8a+4F{q#=vu(@((6G4}Tbhq?P6thY533$1v#@O2O|rn#h~MZ-0ecx(Y9g=Q zUJ}ObA)!f(E6)pYe}pLHMZL-6Cp{od=#TvI>;sb1q`_sv^ywSb*ZPt*@(}k~LQaGUNvdz;dTN2zp$|WBZ447s8d$|k=wz< z+;%`PMK)dbzO0G7wOlUmB|j@yD-J8VDAy=IQyx&3D~~9TDNiXYl^2y)l-HEkl^&|T zs+FobYEN~jIzlZ|tJFHRNgb(3i#!>&x^P^f&cg41)~Q4Ob2Ijrqn!M&5YN zSjV)|wA!@RwBEGI^o41Q>6qz~>8k0vNibELUYI=1-e#FO)BLMB*z%9XE7#h{nr5A3 z&9SbsUbOyX6|77a!_YgC?y~x_5LvP;LpD*iUbbDfTXseES|*kI%T02de5`z;{HXk* z{I>kQysbi^Oj90K7HE%a&uCw2iLSS9h;AZaZ_=I7UDq-C)_RLRQJ<{O(a+Lv)PJtO zsQ+F6SWgU6L$1G}xuLB=ZqOUj4D$?|47&}N3_iw=Mw8KI9BZ6tTyFf_xYejLnN7*2 z$)<&-VpAhaV@qpGS4*rV#WK`7+&b9`w0R6u2_gsJfq*NE7?^+oy*^dIXF>VMMT(Ld1dHpCk*81ETh8{3&W znR=M!nC6?dn!YjpZ2HaQZT2&(%?9&oOJl3m8g1QYJ!(B~Wl9)kH6Z^fx69oXtrh1K zmy~yv50yIA5Y;f%3DsFuntG&qoH|=QTb-v~q+YH5NKG^Wxtd^2q$Wv|qM4?-t*O$y z&@_ewb<{4`<>?Fbi}XwMCHj^6)%vyi_4-ZvFZ4(Cm-N^4ul4Q*jbV&ogCW#7!8F&D zZ^|?WSc9#dtaGjJSy^j|b+vV)b+h$5%FFc(qr=qjlx@L~|026DbCcJT2g?u3DL>mw z6&)1;s^%)SYK&^8YMZKD<*RO?ZmXW6o~K@{{!AUE*{Zp$Nz+c?heo*vx4fwpwD+~u z+Q-^w5Di8bplhM)q>It5(tV-Z3Z~xB@oS>on+_86_x05fif8(lddA>p=weVAdKhvI z1qRNr%dpQ-X&^=qV~DYvG0r&DDeK#erN(1MH&eE01{j`aDljcFEisii<^M1w|C;HU zi9eR;9v;5iJja@6EwC=KE#duthiH$tGfX)MzbOd=>@Jte!{s^hd^s<_ zEdNw-K=Hlen!-!jNZDVxTvdhwz^jO4tl*lR-d3hpg*KPt4}gqGd?wr zG93ZpQ@N%}(?!!2K!0u?YWc+Sm8I13z(Vn1^TV{3>*ZGYBzd-cwmeT>C@+?;m2Z}B zmp4#^D#8`R6;l*56el1{Hx=$mKV@6xH05mNV&!^Ffc?;6Pn9o~4OFcF+N?URx~#gZ z`cu^sKsB02nkSlY?QN~EF1IBRt`8La))U(to1grQff=W4Lc{Gqy0cGa4`o zV~jJ6oN=9ThjE|rXX72?1LHH}D`Tjsy{WUQk7=N3qG>8dq|PQ&<9JvF%MZo zSpYOyxJ)JMB}Y`G@jN z@^9n^AonNb=jA`k@5$X1UW!JF2!%#rRzxe}70HT`ig}6!iY1EA6x$VLitiLh6=xK` zDxN^&D3k_e59I{qbmc00F9&keO&zA58Sgs%fe@s$$hD)ehD7 zs$;4fs=K)=cXcCmC$&P|T|G#hhIv)2UZMU}U9SE?{ge8p`cL%>wWlUf(@N7$qk<|( zfSBcIW@(mcIL&&^eylbZHTN_Pv_9JQ+Me1G&}BK=674GO7uu8B-=Uj>bV{907q1(t z8?Kw8Td3Qh`$|`)JFGj4$#`GqsW%4dgY~WS27R2qkG{WtsD7e;n*K|@!SI9Oj$xLu zz9|lK>ZOS>yO}-BUS=P&zd6VpVh%HpF(2TYCAl}w<*j$E%yoPog+XX1>m*B*ZI+#o zRe{TP*&X>T#cIV*itCD7iYmn;#Z$#AMIB{5rBta^nw8y@-IZg&w5iIO$~E`3+J&jMSi20m`K0!5ZF`+Y7pEJ511hE(?J-O)Q;1P(s~D6+-L>oZM{%^{ZQ78HbABn*Fh%devG{z|!KzxEHUR@cF}6Vpy>W_$=k z>$Ax=$dAi^R##~iy0-d#h7_aB5^0UH##!U7Nf5sQ)*;q(>qu*cbvo@b!-Nqg3GFkj zWb2e$m8HtbsynJ`RXg>1brqHz14c=%?W*moy`&Am2&~eb(go<_F}+UdU+LRo`95eo zZ1gZSFwHi1wZ>ZivC=6Yk9s3yIZ(z;gm06^&$FjL#W9BO}NSYrMb*pWfApyq@yx_nL$=04}kp6QfyYAR$ovz(v)c` zG^aIIZ9nZ`?K*9^&ZeuY57oEVtMpd=Mc5WLqnD|^Im*1#Qr~K$JxwAEJzVb~A0{6J zt(d9apq{1Op&bOfB=?me)|hSVW%|@~)_l+W4_-QHX=?3lWzq=)7d6vEK3_gdxkI^G zeM9{-G){ek&0xUdo@v=&VX_D#Lzy+Qld}2>y&_ZjiSmV7tEsQ=re6c&W|QfJse^fr zdAjv`>kA4bk5Ge!QOhzRQ+E^-l-aq;A|(g*S15l~-ckmsnyHMcv8nOd@3 z1K&KW(^fxNSIL{KuGWHdsn5 zObHQf*aTU+Y_zNc6mf!bkLmzwKZ2n+rK(irUQ}ICT~l4hau9|7nRF)%UdDT-cykZy z0g8A%Vc>>i2Eioh02`x+VTmErbilOF;$>yF6DoVmm$JRG?_>sffqXd(md{k%RePYX zD^)L5Qgw56dvy~94U0gnjnWRnv-!lEX#|rAb({2!nz9v z$Z_ih>o3+j)<@QVDYwcAlL3yn%cQa!;OfdufMjJ-|VQu8(e< z?o-_p-E3G~8}yS6TMQQrmkqxda&JIU+6~^u0AmNE(KyhUVVr>ZFx!}CTxcvduEvtN z$#~Xy+4#~JVCrg$HT5GCu3m-2>K{~9ZF;A#&=igKhf7sf>stY;mtlI20yeycjF%Dtfa6?*T9s)PDR z^<(vGwN%qgld2gB3EiPNqY1`##|%q*B(^(qv_;xI+H#miSG5vdJDpso)me2>x=h_9 zY4TuG!eLa&V62#W z>IcF=pAHN7p#BeiM}yK}#BkJw&C=aCz_=1hL~813nq*pFT58&5ItYbQi5=24)9=_J Rz0LYYSl7xj6Wtd}{vVobS#34Be*_rLQ*1d;c`iv%G->>+R8SCWVbi7mE>*dw+ev6E;L#1##fUX)r|OHra} z1yzkwu?w}erPY?Ygf?2WRlWar?t2N+-=ELq%$@Z+XU?2CbMD-i{ZT;nM*&4Xq?TnN z&($Z*B{MH^9m$-!YZ@_(;vd4KuV~qfJ4p=!Ev_fVKwp1#Px4>-jBzL>eu8 zUepM*J{k@Lt)(tKc7OoLv9oXgLxZiI)qsoI(YPD1qCM&Xa1o^xa0gHTE}|5G3nM@Q zSf&64;6h4!0%kb-*G7sg$~$#w zSyT~aTv^m-ly7BG2PoUhq7GB8l|_|OrjDQCq%i}9Ud5$te~^%DZhePM z5ec6Ln-;t1axfT&^2*X82 zw38$ia+4xL$yeO+2qkIGl}0$pTu!3s1Rix!gpwb*c*P>g-MQQ~#X{o64OR}2ogWEc zy+aH7hlS@Hl?zk2Bgzc#SR~#%#mls$8P`w6hAyZsq`|0ZIZFok?3YH;81}p{oO`8e zA}LzNHBt8p_-(D5pD!qDNI^dt3bf+psy`%0ibFJ=2}v*RrOhIwkUOWFCV4o8bLusc zzDu~7`p1x{i3TNkxA+6YFd})ry7*t?G$P4c#Z5JjlstX6_=?#nk^H!V3$i7WJ=_$V z5hC%itz+FLLl`E%RvA-|`?+gl?uOl$wBTH}QGSJ1h+Ez_0K%RTI&+LN`1b4*V5h8ZaKFY7iL~HyY5o>(Q4RM6{HHxA&WEeMUY~vO?rq_7~q9i;V z$Ps6MQpP1ZJ7D6oon45H+v^-%_q#+lnz|wyRo87qUi@9xb%ZFmj7TME!)=RvK!y}^ zQ9TH8a5tm7A){sYNK(R$?XHj%TDdjd_kk4mjERuc&vrVQ%uw{aR?Ynz7bv;agZm&> zMdG-Nv0;)T6ZbS$(}sf1Xw8zGXFk%r8&G_#(~EU@S!G5#m^DbSqGUqPUugwx+?Vwj z@I`FY$-RsV3Qp~gDvOsxVdj-)1hGCj&wVm|(ZIr4UYj^Yub5!EKG_q)lZUc*h8<%w z!em%mzU(Ji(_JxN%B+j}mAYcD_-3^utOLE zbKV1D$ZjrvK)WHj{Vo?>x(Yg9{k+)oeTC^rLNn@8Gy|-ekUr!HzMhiauS@no65Gv- z_UVwZ={|W+q`7w~^M=X3Vz}}F;qs!--OcZ$sqW?QanO8o~@ii7lfXOjl4EUyP7B(!u-+dJUB3rExzG zq?qdrio@UjgB(D~1fS5Q|p)aO)FuJD68T-_m!$Zf9qkO^KHPEY$=hP24KIL5(TN0{iLG(OMs zywXG0d-7=dHiXQvD1#vLP#O>QJnKBv;mM=vu?STg{s8ttBAe+mkhP}YaxyGuAG!uR z$MvBjypGvDu=*u6QMFBVFr5+3jB`^Ozlk_~zT=^Pc=Bla^Ksk}Me`^oZ zH%{2)az&eG`cA7T>n_6tGi=neL!n&XVfL)ti4G$Du@~8RFQNV(DhHW*c9;*_ z%`I~orUU6>n3>G9mZuRcf!)!olH098_8YpxBhUwCKmlgo2O%xw6|{Vf%cFKDvE=)9mJ-G z(k1kea^Sqs6zN>T^iJI7;R-ZyX}A)9y;Ag~4`)fynbZCPtRFJ`DJQP7@jm^8Szsg9 z;_&30lP<`1VcvKL(*yi_>Y+6LS(<~{#C?*ILrOX2h>c_(cX33lcM3`fySbJlI}#@s zH!_|);?|Fh2spa6=Db`GdU3Z#ehwh-jrvQ{XB@|l?uCc%M*m3`a%acbB;{j@eaE(? zT3J0V962fDMm45(mNfTMjH)2&GJ8IuV8Csm_8#uLaXQkxSe6m{E64UNBi1^6m zN_467>m&$=M;FIV*iW!4kV#>3Y6%Qvd&`6m)`3^aGHA{I#l}fdw4bcW1F`8{n`{hl z&`rN&jR*5@bZ+ZzEN(Le2FSkR@btQpdgGJ~BQ5Fns-P!#aa1#I$h3xlIBD9@pfD9! z-piMbdI@bR$tUQGy_O&paJQzVlFzsv)6FE6%bUJiD%vEa8Tx)~3xN2t*pY$lID(s; zX(Ex_$C=H@67HMKmZULvH?x;NElg1tt^jJ#7%pl?EE&cX&Ilw?+>RMNC3RPGf6wSZ zx^N*gyO51s@0r8vZ(J?TB6~rI;ttH5M!x1c%}SKaZOt8=*`*OXz$fog2DaCXP_{mx z))v0wj?aqob`PCvJi86)Q*4Lj%yN=PF9`XgrLY zI(MY+_~s0=c}b(L)YRh&=gPUi=5~TL5HfE72A4Unbt9jA3~RoOy_(ASBNi_cws5=V zDY5_GoM%q_aEXKY$`f{iRy|iynn&X$2;~T`JmJ(2vw^;?(g08Mi*`MYeqT*z7i_Ro}KNo6kK7M^L# z*|Y1nrgI|{6d)%)i0$DcT%ytL?j@L^McI~1xP7PE6|c&!U5j+%*5#y!w`xeY4jJ7p zZ&G27F$nRj%avweE3w50`??dzkdOKjTURLKbh&E6acQ}sWE#ijwzJLg_f*a_vIAbS z3xfJ2unh}(`Q%6W2wfU63^XkkaUv@dLKg!`v={p=+e_w3_hNhaV$oIRZXi>*<#{bh zC$1J2xg;Y!;@Xiuww_Y&oaVJuG^yD{m($d&?YipvNAftFSxFY z+mJjib#XWu#I0WZVW7x^jd|#dLSW%RHhqO(>N9}mR&TxKV$~4t$dUxekTgFCg5N%$0vM40E(zl9 zaJZjW zo-1P(=U_XCQRD_^@v{&Mr_EWSk8}r(J`q*7D z&y~4kcrv#sN6uYlGe`#4V_6JI;Z`miE^U_Oa=9>3z2)pR!7poNL3W4CH4bKlC(Hw_ zdaj~0kH+)4j|&R0+v}Gr@Hch&4j7>R?^;6tSO7j|`jkZni@feB7j7a2J5^6Pl7;f( zN$(~~NEml~#RH<}_N|N|t%_f)^dqoC>aOZSu5gA`86o0CnrG7)@ey(;T@VV!=%7Td zOvf(r)y($XU#mV39{t$m%8v{SX1j-$MTUinJyNqRqtzFM-0{_Iy*`~L?m6wb#_t7q zmt#W{4i_umi;$4r#Us{0s}yqE*ET0H+&60@BtECOCu@~N%e7w@>@s_v*XTsDKaVa@Tbr>D-=mE$e=HORRY)ox8p+ zJZlz8R?J6Lab3O0z}VuwprBy`##0kL-|1B`;vgN0&B5aY=W9dV}KaeAxW()#AsjKp?wFTiSxpq=jfTsdB1a?(c2wN&G5li zciJbQcM+C)o|$b9CI%r1;X8!;2z5R6)2iCx$oi-ztDu2$7Wm+Np`nae;KfQI-Sve9 z-0<~H$Y^f%`qf!K!ose|V0(KBUQlcmX*BlY5@IQAv=8i{!EB;e&KzHoS+5{gCKS=q z(MayiVu466EZNg>MQ9AT+%O@|&M-nMb16p_N}fVH;@Ga}}j|G`$3&%H(EAqWVeBGk@vgKQINZ zu)H z-lF~*$SvB@2A1dU9mng43FDHv#XG_pli@Y3(4IcRGH&0;eZ1Bsd(>5zoj<|~Z?H=* zd3K5O+trL4u`8qQ;}Qqu;e!(H$6aC4JB{4X#uk<${d>-T_Z--)%XT**UAb+$+rmwA zZg+H$3rlgVG$fZU0YjZiI@=?869Xbu?SA+UNn+p^v`Sr2ZK;6=b4{$(f6;Q0O{g`A3&Cnh%I~So=-_T zE^O}sqv%^`wD6yYFbgv3v!{h#iCC-8D)eqIZ)O8Fx&!t$@0?k_1iSBrk>dHJu`q)R zDC*X1B^srkmg{V9tLP^a3J0QkZ!65t=|%BP&4(O}-$4ixLMOyOLb!(T=b_>si{Lv{ za4+_a!WNbMX_UX{)0KOCy1ww~a-V%_B#PqSKTWD7DGlJ__8)FEmd;kLQJ}AUMHv&jOnwcFZbeL zB3Z`uIV2C(_e8m#)Vm@aMmaEpM7^X5*MuZ);i2K=CHM28<+RZ+Mz$Ez-_z(B!4*#% z&1jq&O3m7^gJnl#~38pUQ9P29B)J$gkK54ZN4Z81S4$^0#BUh_b zL7o?DO8=2ae()()9$SrVwz%wgPa-MZ#U&pPe%lOrJyZgCHMYGK7cM8Ha!TeFSP;8d11C4Gax<41Ubv)h4f4kL_z@{6~ z%^(}KzC+zzh@#2%unHqy7qX&IL$MHd>2#2+5V~4ufNWUybp^SNdvUstt`HI??6y=N z@-7Iju2ql@(Hbm{)XR|X88J2ctyXj#?-%}Ntt{@xGwqu{F~8AJ4>aVdH5j$laoK0u zaj|DNz{nELsx_3k`OaWZ3CiRPCiHw>Sb|2}gJOG373New3DO_9_;XF<$1xW*rfVNJ z?_6hy)XsB-IJ}zAFU8*z=SQi2tc2u17yl&bhE6=d z^(Y^Z)de;M9OS|IMsyPw7O6ffBx2(cH-mX_PxcR^qxAW2DMeK&I5G3R*`uf&2anoW zA<&cId&9xB_k>2ERnJwF=J|TzPbk;&qJm7|`d&0(b7C)s$QzaeRMd?(z?R&zj zS8;!Ea6ez&*!-hk9L!FHB82@2hY`L;IEm1f+i>j!xmP^;`srGvHy3eZtR(Y~V*bWb zA7bTN-T6WCQ&h3*j)q7sU+4ePVK+*++f1_ldhw*YK18zeTJcO_2uadibq`uyDxQ+^ zP7Rl?D$VZ(Uo9NVV9hx}UR@&RlM37$G7mqedJ~>yM z^ye578GW`Uh>bPc3iFfz1a&Dk>YDjpXSo)Ctmf7|zARaLnsz72In51s-IwsEXn&Hi zr!ey64N(opi&6{>!hUY3aN=Zfx2MS@ax6A-x@fAWMfyPv0Fj;&RRC({hn0x{<~+YF zIrxnT;KOe)1@|Q-$3*~(j*9?L?JWSm9V>4AGMOYT`no27wKV{Yt}fx8hMM`2o_y(s z8WlSg-~2ZXTT!WqYGXG*(*FNJ_^~t-WC;xSQ(t*hM2lYv` zw`>LWmH{OOUow`EBmBk&L_y~BpdpLP}bYZhSo% z*+BC69Wv619ON&{z{qcTlRr^NTBY(6{YgtQgdxmj{cPTrA7w(j6Z2a*kv`mgv}L1Z#f@Y8~bo{Zvm1`%sL@pb>j zG_@MO^%=7C=_Ww+|s^@-aU;1dNgK`5`2f z;t3&1-t>9_u=s`&o8-%lC2^r7g7}Gd4o2WbEq$Y!QIg-193-BSB{8i@gd}Tqg$iI*4Ji7j6c9MpqXx$sp!HQ=>y zuaqx*MU8oBUJmM3e2v;cv?yFLGWG&a0P+MOSnRl&*mDL~k(^3fOr>`tP%;Q6u7!8B zCGr7fOGS%T{iFgfT51%jj~x=$F3!>ZY4QY5z4zP|=sr(T4~OsM1Ri4OcD))enyKO{ z+1VCy<|p2`(4w9%*wdf?t{pKoqiLDL*zP_w8Gw=H1}yuX@6w(a$bNoYdorRGEtgsf zK!CafUQsuWMs6H(B&zxQ?a4IB5AT&EcOVOhMDcUUj~z)9A_@4Of8L2?L;B`~lV;88 zd?>Co>Sa9+Zn-kTLfP~5uW*wu3MWmZ^!<&H`~&6*+i>F>{Pl1$Lh@=QZ|+R=l5bY> z@W>A)U-9QVlMa$LF8+CE(y0Nx@sas6^|788mhs9iq^(4o$`9^BlnuY$C>|xU2c|OF z;Kq63QOWu)&^1^TAqvtAu*?e5B1%1$!h-WR!-vINN@xO~oVjuaF1o>2Ub*tS$>ExZ z&rV?RRI!=zYk&{lInuKndme@Jy9EhZB_AkAF9}+Hpdvbw#3qN7qZ zY1TkF%;hR%2hb^qp3Mtt60Q>8V4q+ULs?0FbZE{TFG-mMtYI>13twVo!0#5E#-!3x zn51A-yv9dsNEb4zBvV6jCB(+R&=Gwz?|k=c1Dq?m59Ht?X3{}*QXf7}Pi6$v`|gzs zzA*exP+!7a_eWFv`D=P&Yjbx3M7p~d%eZJCp#^ba4&m5%mkTY#&{sPB!@`77yvaa9 z=VcX$KXx7+f;SuWv*gTN{;8`nr()Rxq!kQY6i_W7Cp`@b8$&jD#_W=h*5>^O6vO zW2;XZ19r4WL+xpYY(pUcbB)UYK@jiu;J1R6l{rKncpUP7mqW^Gfu% zPp?b!sI!8t1%Yl3ai-_qv4vnA>kkIi&oRj}Vb?>GJfIDs=86@sYaXCAo8>1f@_vve z=dQ%))R*8iiNyQYOPPUeEs96xx%~h<(%dPO0czF{*CM2Oa5qs$yk}OVd56(j*Lx>D zXr#GI5rf-an!6AYKE*;}y}&X#zso|JG`&r|2#^7st((weJ~BL)DriYL|GR}W$l6Y? zU&OfkpbW{Z9h(m&N>f$T1B#0s;w_cj@6m&mE>UUj1sWA^yW~=}W2LJ}ntKpYDzQ1w z>t-r3g=|bH+mOC08GHT}^%Z2X^uot%dQvL$u1gC;GpONKjrPGP84>AFAFwHJ2Au+| z>I?Zz^OH5gxWd=$e1$B2uZ0Bk`vo43M7JKgAY^i$btKKZj}o3?Qv4TOibN_l1&K02 zO1S`ufWEEBqa8@77@k1|k%wRNG8<{`=cK*++_Qkd*T@@eWIGwg-?EVrP)5JaCz0Mh z*bate^NIyT(T>L3WdlC81}t!2_S*zVz?^p}9!Ltd11d{R`Csj%72$br2kG3XF609k zu(aufpn(sw_-F@th4xpxLsa}sCut@buzqi4Zf+Hd>1L(vW8N*upF zk|YI2E)xd}R(SfS1O9#vFO4F7G2pYKJq)$Zp&cv2Y1KM&-sl$$JueJ#+my6l1zi*0 zBJIgy{y-9TpV?x+5mo($&vsY-ODcmjN{5sR^P$WunvRuDrq4r5X;NA~FBwRp8oM|A zx54e6#ap|R{x!H$)E(SuFw4yyS9fsd+RSQ{8oU7qqK+_TJhLLBC@FVN@cI~Vr^`$c zWj%^gfg!$}!9R?F2^P=$^&ss7z46}FZ3a*-S=?f=e#ZX` z*`LE3Vjv$aGT%n>AVWkVG3N2o9;9916R|F}jNX8 z6PZ>GqhZ^rHBof*ysw1(Jgq{3ndwbuX6oB0UZ(R8dlN-q$UFZ7#pmg~CZ0GTxS8>! zyQEV(?X+FnMsNxp^_;(+O!0Ic^;qpnz?Lxo8LXQ5kA<#${REAOMIt3{?8FuoEZA+ zHQ^D1!)biy0i^$%=$fa!Mt667O>`!_;`Q*S8r{{IZgjTsBDyYBs>9b)`!zZ{lt~SA z;XIfV75GGKw`!Sq&@D^-54wlrUZX1+R})>mng2z%Et8^qhm3n0+>Nm{S*L~qssS#P zR}Kca6JoP9z$K0S54bPKyau-zrrn#n*m>c5ycDjMX8Z?T zX$JpGG>Hs+FY|xQZ20K^z$+N_8s5NBHR0`?_Fs6>Q{C|PjC>p3ypc8GZGb+h!Mvr@ z-0;Ru{~z#Pj`$C}VIy9{Yd4}MygBLrh1YnB8{UGHx8cR5)Py%X{Xg)=rc-!Pjd9}t z&$2i>{6FYA4}XpBX>v_;u{dAUoZH_fy3zGcep~W_J+)siivg4WgRU$82x~Ubd&>Vn zw|>}v(EXeA8eLgZO>|8s{ukZ;H2zsXEQ_SK!95sSlXab-p=!)*5Z`h%z+Dxat+6a7 z4&~>MCcWJnB}Ve?5DH8q*)W8U8$+5(ejCrHjv*b#rlpE%yDtn#UxOqw@BlsFP(#!0 zEYl5f!(dMr%qC+Cml9`gY3B1z)MFv*(>FormPTJS;-rf6i!9AY7>YyU>sbtTZ}^V} z^UuZ*XBCt&gWXUf28&S0EdI(^VruXZ$7}4)x`O!H!U#Ti91h;KdBZpoA}Jii4<1Ki z|GPW3^$x}U`p-bxo@m=OXh{>k8CcEuVD%5!Bd}G3VY5nt2f>fGr(&Z!$7iRKuEfM2 zONHMkiWgEzbE4F4KWZ{*C2h9_M^N~V zIvr!ng>_r_d#NOtEaUf02Co|R5qTv^N#OIR5LkY0%a@vh=i+I{3NwxK@zs55=uzUl za6h?vDXgWI3$=U~4Rad>OOQ|y6DmC67pKF|`6s_CowV^g%TYGT2ByJZAq?k#OowFL z@6Ef?Nr2?r-hAV!aM^lJ8hfYWq|v;$`=mkNX$ifm`?t95H#7S3D2hc@Htn^Nw$q3= zk$e%ycbSg0k{8F1o=)@uo5iwK>&yL`%fJ^+CwWyOJ-#O$tEQd0XLUbv_c#{~sqQC} z_Cv?nivJ;l7?L|A(JVA8&25XU*Ng6pSa&O6dXO;v{a3DpH0rf_KD4_06L9EtdA6!N zoQhb9=`FAj&+=09xviixE`;bL0U?<9(>{q zvef77A}75yahMlozz4jgq~}b`EUC+{nnh*?QWvc>mjz(Y=SkT#s^DAAhIe-pKWR4U zH@692FlF59q4=>;R_a!=IuVkqesY&ptmajDO^BuA-XNjaN9rU_OqM^;hTMAT^as- z7O9hktL5rb_y)jtAa%R3-s~(NHt(er86nMW%&*QSt+UR65gN)ePz9yJ*C^nb8Y-vQ z&%)i`;(Yu%;||T}A10@sH_TZWs9Z3H!Q}}bD-yzma6GWxWw`1iA4p3junr$rIZHp! zfzK$2jiHxcqu4Cp6`(eDD!pi_hOmksD9}>S^$l=Ak`~7233nYwl~+xWE{` zj4C}Z>P5nq5RBu_JZxpSZ+&d(E0?sSyBwL-64G4`pIApYL#aREPwMZXH(2uHTxz

tLKJOWn8qy>(Kh!)@Eu^PyA^6LlF$G24$(B~Z*}K^TXAkR zx}9&EL(bOi*aDqh6B_m8|H;8CpG|z{TxeiTOFlN2%!-SRbwd)xbRO739SB={h@#pC z!@_<*{|cAlL@dB672U>hLU}8+3%&xL+g&___se^&=eOsfm#rpI&xcbzpKhuK80iLh z4BdF<`Caj>NjHxeK4cM@3nSqDMWkm3T{CooC5c(JBnqh&ZjMt(4jSlsriW``4=-Iz z+GYLLRKz56Ur&%OUXMIz%b-D=A0NDgjFJd?e&G@lp)Aq6f$v-CWTH8D_#W}9=PF9`XnH;VXH1q7fSl~;B?ksLnX&fhatKR6WKe?8;ErfKV$DP*U>u=BoQ&_f zoOBOU*vYZUB8iV~^jG=+jJxLlYrt8p@o|Ci35!lI5 zJ&qPt_{#YG?~)UKoBYu@)F9PO{b%t@3rWW?ALrW;G=jH#3aPrWh_8PN`Rj$^8*|Y^ zoV5ZF&UF#l=vdRGx_b{BE3DPs+t582(BHktFTKvdH+pX2naoR9lCqJ}Qs4r+ASC_q zs=h>ImsdqoJkwWLaYCCn3J5{JzQW59_B?$(0;5aVVS9T7al$q_4R110!5cV|TgAjb zIE-LexX8rTqrt@X;nkz?fSrrmVIE<)BH^cOCPDm+Riuk#Rs(+9DzZpc=_|fdgO;Rr zvc$w&R-?_lTm0bFq*pjTY@=`7M!R!^aQ)2F)-*bBI?%|lB>FNgRXD?6S`DAhUwp^+ zaJb3iW8Nd?7SCT$dGW=*;}EZbn<^qatmrSyug`COk91ItY=ALR9sRLh)X_sASSjMd zN)fJ#J<@$kD{3`5#z`Hhy&TL3@g$((Mp-q3CW=$sfw%Ldpo&2*9)s!CUSv=!S~;kF zO$JRsubx4*;3sb;EqHbf=~*|rE=46o==h)35Od>Cb)Hh0<1u89glymyYe~~_pWYM) zNga#0_J*~wN*qoz_XFK>28qKNB*fr~+?%VUzYy&w;-_yY-T2GfdH}j5roWKkBLW$w z<@c?{sTON@E$%n0;*IM_%ZR>sf$HAZ<>>w+jeF&1C3I`s+r^2&x-k`>q$n|^4cPXnJU_Th5;Y3zFrNjaF0#o zUuNGb$roPXwlUqvs7V7{cClXO8Idhplp>EPTks;6{uM3&_nT~q6wcKX+2T5BHr0@?N)HUHY-(dr8X3XLHZ6J}pSFVb0$?z?mkj8(wf!wPar>JfUT8e@YPSwqz zmepg`xTSlS!ZQ$Q9_|Rcmv#3DUcZr?=pQ0MXVi|K0ftvJh78NFoHat7s`L-gF~(vL zM`RG*#US4tkwz$}BaY~`E(+xPY$6k?@QJ!;Sco_e?c0Y`W2;)lU8=FEtFQ%j=ErR& zr~DtdUePs5->U;x7_J*Qw~$6XPS!|Hefr9EK(y0w7XuT9&%w?M-6Gz`*@AVPA^Axh@^$)V@l_c-L4KQ5r`u$@Z z?8=LI!%p1BxD-&r?<5rx(vZ*j1ou>a;3a#AitOOEdq_m{S&8WLN2pNqPxAvd@5WW> zitGJSkN=4q*uxU}g?q@L1}mB~%)nHizmW8703TZfSHenoi;8ghDQ+)GZ?TJ-;jjV+ zx~usQK#RRzLORvwh6~I2@Ar}peG~iOEeieUn%+dpc}1kl40P%m&<@R0y`=AUz#}Yr z{4L0P2~qEjD;t6mb6*fm65O4y?vIA88oY~v+PTIj7Lisy*U(&o5YeB)QD#|bbM#;w z@8d8Z&1_!al;wB#IeJTy;L^JS=F$GeBEW{L$OFC1R~JaxIt9Lkv8?lDJ~3a-dQ?zA zdoSoiq#^hO%HtnAUEn0R8CRnTd@|v+&t0Ca!^(@s+TlErGS#P-tIlE0l4E2{Gh1F6?>&I8_!Atio zpOHqAb_rC<8kd~=jCc{r&_Mp%&q*gqm%#V-;|=k8zU6)r;P<2jChfYLai@Fpk^2cJ z33$qXx1Y=;6Zt+RB%EyI7nI-{=I{L866~`<{NE+GK~?WDA9;XGkPM6C_Z`5A@NYio zAPFH?c*8-GBKfQ*zwRK>O6K?EFCHWpBokx#Er-bZzy+{Bp#tg%cVG)wG)SHI9D_L6 zgCFn(*)JhI_y&hb?10Z>D7(E5U}=d?HpotD5iPj>zZvX+XYhNdg`eFG`wMG==sgXw zt|)b>{b|jSG5l^c4R!eRFv*lS{Q1dWlKzs8a{gx<45wRPl8efr(X`v3VV>Vxs`AFj z2MU|-!*K8|t4+Vi&fbsT8me80n2i7B2$|QbH%@p$6KuWWR|$t=UeMK^%A7lgg4uSk3?2VX|0JM<@DGfZ1Yx0=CBf4PNc`b$!`LFvy-36#Ea zFb_cK4^35q(%+qWOeub9>e*dr5&GLvFOfihZHf_`4E?z&FHrh3T|S_g;> zhiS&gKmuC23qU|+dz{R5(88jUA8(OYlB`=mbb})8jR4B@aWc0l;(ku%0jOgDCKWVc zASRWj4@Ma@5IPid2%3YN1j>(uzB&4TfGHHRS=oHj3-O0p&mS3?nUA@p`IzSvP{%vi z?m%xXD%o?JEb=kqr|lBKUIsRq$ZM~cgz@^F&?KfR&lhnyLL~AcU+3{t9+D>XxAA!P zA<1lFzDk(B{UZCxZ!Al=@TWEAv#-zhUs|G3)#jW0j!P$TXG=!@j*Bba%Pu&XjTiX) zm87Y+<`UpvT3qiDL69KSDyjF#>qvZ7I1r3fj8iO9)Kvy3TPkhJuas?6#i|hXQuTZ4 z-RdIsXX*p$!|GD?arH^{S#`PkiMpF6SM!(VnZ{2WtPRzMY1?bVwF<39YtUM>4sE11 zMjNM1)&8vgP5ZajSC^+-s@tq9(tV~opgXK9)g9NJ)ScCp>n`iA>u&INXYJ-$9relj zQTmm7USFoy8O(+xLyBRvA=NO^kZ#B@%reX~WE*k~OAN~lTMds5PUAx3cH=SQWn+jb z)-=v^#`MB8-8{>@*nHIdmpRw6#Inp%Xjx@hV_9!GU^!tqV=1>>x7@Paw>-1FvV>ZP zSkGJQ+wRz2+9dXP`*8c1EPI~)xc!v=kLVxhAL*TjI72dEuQD7llp87y z0md#yyD`!@#+YVYY2=N^jhBqKjgO2jqnAl)3N*DeWpyycn6?2bGTV) z9&AoFFEsP!4d(Wi&X!2a2+K^%e2c_Z#};5y+4Qz(TQ7TG`v~~$nQVqB2WbhwJpg&U zVzOesqC#1ztg8xBd8=1r`i^4a7HL?`It`<3qtodux-8vF-5T99ok4Huq<82e^)dQ5 zeS*Hfevm#%pQ6vu&($y2pVZ&fFEOk%oHh6ueT_1s+{k-%s~wg#+n8^B*SN=c%6QFq z)40uKF&{I3Z~omJWNB_OSteShS~gg=SWa6mfZ?^QZLA%wOKf%Q5q7P8r+vTuYdcfO zFlzw$C*>c?zm);1qpB0?@6DpP^CEDfMN7~xD z`Z|Tqp^MJajn!S%{h+(AtE2bTH`7lwq!>pVQ;idi>BbD>EaN<5wlUYZ#JJ74-+0*g zqw$Whv8lUhq3M;Wmt~k`lqJ^sx9uNW1N$)hNc#kPx_y@Y9s5%IM!R5VHZhC_OJbSg zfZ|KVS;cL|J;gtY50yVCZvkq3)!%BDIzSWAT{Bp-T(e2@NJF%Bw0*V7+BEGVZJ4e= zSE94)d+7`HtMqI1>-C%TAL)1Kck}U)wVSp2TTcuP3~ddWkmLfxVZ%|wD&rdCdgCVJ zN5&n--Nqs#zbvwL(^#oVZt7?nZW?WxZdz?xXDTxNZ2Hag($w1A-fT6GGN+nnnwOh7 z^A7WEbAQVqOOhqUGTM>~wx?S%EVC^0EFW5SSPnzx`Q!1m!&<#(O|qxhN83~F6EW5d zjCP(q+n#IRY^QQwifQ0CC16tTDE@$e4^WO$&Qz8t^Hl3qTU3Wt4^)4u^y;ZA?NcD~CTh(2aPHk4l zs#DZs)N|Eq)FoH~XVkx95dW(4HN56y&0ftf+Pm5(+I_nHy4$*K`iuIkU-WnNgP?UL zVd35|{A_q)7+@S_%rwq5Za3{V9mgyP&@?{gc4niwpLv*hs(Frioq4nv@HqP%`zrf-`xg6Q`w9Cw`xW~Q`)&JUsv4jda=|@6MPo&8-mfM%-Z9nBKWX3fW0nr}3hG!Hd@YU*m6YD2Ut zZ7-~>G1_cxo_4MFBkf-8A?-=+Rqd}@LHk(C=o;vn>a-BG-nxFe6y021wr-Vfr|t}P zmV3JT`qujPdM)(X0DY>S)o;-s)nC{DrGKXPH8eN0GN=sQ4I>N_3^NTmhIb9?4Z95| z4Ov$WKNx;Bynw1}XbdzqhuYQ|#~WW5^Gw@KCi7{t4|bEomQu@c%Sp>w>?xPA!fs$+ zX=j~hEwvuEp0u8|mSYmHTW?rzS#Mhf>p=U*&?yh?%q`eem<_2SO|ew53vB;Nv0Z6W z4N|RDZBlJj?NaSim1L>DR2@^DQe99zRsE}~rLL=P2R5qJMzup7sg6;{sT0)w)q~VY zSc2YQVpB~QO{QkICRQJh?UU6P>+k8G=zR=9cp=49G7S8|OcbW^uClo*7K*F8rjLG~ z;X8xg*wOMCAnNJrg5M()fBlv3tFn%%0@aVSbM+tUpX%?MGO&9-wJ^^p1y9@#uWDmB7+QaPa?Rt#)S346*m;}@trkN%u%6(Kph+r@w*;8GwELiorL_IKa5f_@(i#DaO3OoMS#=K4Ugp zCH6Y@&+QNFjDj$6Xi%$|sQ6wnMOmu+M)?Q=IRFXA>SxA1n7B}j#%i>7x6ZZ2+ds0OwlfaG#GtJv%B|SJ>#0nTvI*L(Pqi7kTo^0f z`o{WT{YY%(eukf*1qimjK;vho`=*xW2j=^hFzYHT#Flh@dP8bCW&4IAoS2j__s&mxeYXf!n4XurH%==*E?6lOgCPBcq*uNJ| z0K&{d`2a<%s#H~`>IF#|55^Z@=^asj1Bv-p-AvO%Ga7r=c1?xm3HGfx?5jE0SKVvt zoHlEXS*=Y;LK1&$**qB4AaP?9s z;GM14? zo7L6_YCXl4W}9N0ZChYlVq0ljZ`)=o%Ca4@9fyv;4%74x+jCnjdjor*y`{YqtR}m? z2Xy@~X!@xzRCd9JIty#H($16;CJCIx<9Bst-hrGUY&JMT~DLcbk&T6KK@#BUGrQc z)ppYM)=truXwPV+P`43KxZQN)bPHfR>hwdfM&8lCk2T!Zu**;idD(2dVXS4UV`^aX zhhZCGvYDbxLrfD)`KC3d4W^GwyI{+dn7%ZfG@UbDHn~i7VChDgr@@|CXlAn@T<6Tc zVu?L9zcRP5gjqUT6c(MuV(Dgy#kv?|8EzSCnPka?8JuTXVOeL{XxWOb^`PaHwbn$!0)7=USIxqg`*^V%=@sZ#{)0fZ8_Pw#RnV zcG-5zR%s*ltajK`yMfU|?PDO@-_oN%InHQcuSC&Iu|Tn1@k$Y{v?{wQyDL+{)H%vU zs#U7Jsza(C>b~kB>diPTm8c)$fK*H4rwP=wh2+=9@u-W|j;(CDc9r%94n?oDJ#`7X zNxCK2u0GW5)*aLdx=LMbef=!G3br?u%qg(G*XcLvkLyqC%k@|FH}t>g1^w^($NCp~ z#^7!6H8g~lZ(#^CbTlXoI>>NWLyV!fp}%1W4o+inY|1yRF>Hs`{=1=(aVU(K3C0MM z-jrsVZCV0DhM4UT;Em?}<|F1iFj`)i8H=~2v9G0}CCKt7