From cdbb34e661bbc9c96e25e09194d80f8200392092 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 18 Sep 2020 14:17:40 -0500 Subject: [PATCH] code cleanup --- include/onyxastnodes.h | 7 +++++- onyx | Bin 479964 -> 479532 bytes src/onyxchecker.c | 8 ------ src/onyxwasm.c | 55 +++++++++++++++++++---------------------- 4 files changed, 32 insertions(+), 38 deletions(-) diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 02646b6b..603b5a26 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -429,7 +429,7 @@ struct AstBinOp { AstTyped_base; BinaryOp operation; AstTyped *left, *ri struct AstUnaryOp { AstTyped_base; UnaryOp operation; AstTyped *expr; }; struct AstNumLit { AstTyped_base; union { i32 i; i64 l; f32 f; f64 d; } value; }; struct AstStrLit { AstTyped_base; u64 addr; u64 length; }; -struct AstLocal { AstTyped_base; ParamPassType ppt; }; +struct AstLocal { AstTyped_base; }; struct AstCall { AstTyped_base; AstArgument *arguments; u64 arg_count; AstTyped *callee; }; struct AstIntrinsicCall { AstTyped_base; AstArgument *arguments; u64 arg_count; OnyxIntrinsic intrinsic; }; struct AstArgument { AstTyped_base; AstTyped *value; }; @@ -810,4 +810,9 @@ static inline CallingConvention type_function_get_cc(Type* type) { return CC_Return_Wasm; } +static inline ParamPassType type_get_param_pass(Type* type) { + if (type_is_structlike_strict(type) && !type_structlike_is_simple(type)) return Param_Pass_By_Implicit_Pointer; + return Param_Pass_By_Value; +} + #endif // #ifndef ONYXASTNODES_H diff --git a/onyx b/onyx index c41cd073c25e09d636b0bef226da90c1d0a137fd..ead1c3ce323fc67e9773ec9872641fdeb8c422f6 100755 GIT binary patch delta 74438 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

=; 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 KqoS@(&;J5)y*c;* delta 76167 zcmaHU2Ur!y_cn7b7ZCxe_X3K7f}nz8$BqRBd+!B1c5Jal!GeN_QAa)4H8wPMRIp=- zV%ONPcLgg(V@aZZXJ+=|n*Z|jJ!vWegtp+;{UfVA=lJ`dWua(tJ zy1I~~u#3EywaIJrIYnoI;@{B4nG`}>@D@Z@@2%*XB6T`k=_;%}>hQ@#538f->WZ}r z(dfOk`BtL$*Hd&kjc%pUxg+>pYZDY4!#`Lzg1*7LjCoiry|Z}=P=ljr^a&|@|08~mV+*=tX=`ZDcQErLy&ajSRywT%h- zROdDY8o_{WyhVXVUX`Y+5cX=y!3Gt`%jtY;0h3qL$%?K=nG{D0jh-FL?-rN?1;_JY zwk9x74N>-X!D~~UDa6z+IXiXKIx8`sHv9ea1^Bx5$fQaUNt6d{6+Zsyik*0M()2dyCI~FoQk5FE!&>XKFGgLWL0i{;UM)~T{ zg`Y2E^6HYT=zf}$UK*V{i+?R-@@%5Dwh~ah^)0jaCkR8eXNF!YgX}l{DPF ztHRSYyp@KZ)$oBD-k)%aHr6WpU4IFMXvBEUU~VJj=)8u{)bP&D6uwNuQNw4&DEyR$ zr)qfI2!&e`KB(bCh6y~@%4&sXa8@JQY6ig?en-RYhAT%yHT4S_%EF;UAkT zeJc$wR7jQd#}*2|FK|&A-WqYSlOnon36$0F$8Go_7n7G~Peli4{=zl7Oeg-D=;~pL z?xk7x)#w*tyqK%WD_0vB?rL?V9G(XHAl+E$|->{V7TbmVu5p3_dzvz4(`8IAU8&mG-NUPU@8x~oRF)aaufcpajH zJ1e@kMi0?w@3wpx(Z6W)3@vTc=n38V3ZjGBDC-Q(dap)@Me*}QU+$r3^{_fx{o3@Yu0~hbk}~ooV&?u@+C!&($X&Mpz?iW0PjKc?S6`WqS2)_dPx|cL-bg! zL0Jm5zDC>D=7)%Gov5r+H0wbcJ+v}^O>|6<>dx=A(2_OU^qdznnY^yIQr1}-y-TBg z`tla0LohX%JDN>iD{3h%^(eHm>g=d8u=*~qLv)iT;nMspJ@v#fOQQ>z`7olLv>`KWh=RRU|r{Vn%~NFy+r4H-Y>8t z+sY3H_H*JaaOr9+mG>(h;L9~`wsu{sUB!TNh|X;^?m~R;B1#p3X6JF6F&~T-z@uX%(Hr>5QUtBAx5${Ebd=^riC`I#<)V zfX%i25f(hx_v6N@mXzIyOtkmgEO3nIrvlY_^UC z9e!Vj8+3S%4)^EYmCcc*bnGV`8=%9j8mST%kz2Z=plx+{X+Ej4*|Ut!%0pvCy_Dr! zC@o7r6-t3RTdng;+Yp^qutd~9p*p-Acc@~HHR{+1oi~x5;a`Zgv=5BPClOmepR=;^(6J5p7GfLf*gzc{ z&hHT0NXLfi*v8x;)a)6dVM&=b_-Eb?hL%oY=t@w{#t+V~6l_#17T52|9Kd|3a*I zhFgvl9UH@gYneSqSSY%t>e!LIJF%m5Y=({<&69~8qhqsl>`(k4v14^?wvHXgUlBWA z$L46PDCY^>ySCYLqK^Hfv;CPjCw7vKwT=8<URDOrp zX*xDk$4=)CbDUB5l-NWa8?9q!@#Vx?<}gBOoQ|E%&k>uf zvrW*kbNH7!=2$Tgvm7ZpcCH1a>na^SPlu=K@cBA?yAJ0%JVS>sP&nsxojt`|%W`CC zI-)ig@q=~Eo@k-ynyvGY!e0?9=9-oxN5?MV-eG1>nrr7DpLFa}-kex5)wLY9O}@8; z<$MycVy0+0Jap_zzJ=IT7K*NcI(9X`6K0O2Sz-PWs$9o|aA^Pk#XRm7eCgBR^OKuv<9bO{{O zIf~ZdE_``IbF8b59j9a6baV zsQbG*Vw}$4o(_-G;rDfTf)0P6!{_SohdMk(hd;_Me^OYbBOdDvQg!$f9ll+MKh@zG zI{cXq&(z^L8ZOh%(h<2jgNr)+xem|Pa4}%M(Bb!W`Y&~Ojt+mN!}FRAQ27^*Uh9ZY zI)gVl+)8_2BC0G;huiA#w>sQOhySU=J@WA|E30=p!Y7}wvhvj7fjZnvhle!hHyZ|- zhgk(!MI<>4mzUZxbou5!(kg&^hliO5uPkL1nRqlJ$rvnYp;*!?0G&HBFW5SV&kZjM z8B6)r@a}GzD@s`GJKQ>G9p8c(qRlNiQ&MN>W-oLRat!X2F8@p~PrK}2LH_9eVUiGYmW-uGb1gfxiy2#c)p@V7)*}m_gln(eSBJ*mdgNu^9pUexLq56 zI5nTdhA=~1y!gB}WuTD~uM=sfM31)q>^u)?Q-pVJTZYY((n`WQNa;Rdu2L%1&L6JN zm5v6GxLk>;?aDwmCB7!KxDv~^_lL*7NZpwBWnhyM_mDVPiT{!qsKojm{Nc?UsXMJh z8BtUs)>9qIaM$)ldEt)!P(?wlI{LGJ_=EOE_`Hr~*a0bBCuyRTygQX))uq&@QyKU? zTYA~p$shJB@i~c;XLIMy4WXt&Ms)UvFG*5wCyAL#d`IF`C06cI2I?wtLKlB9B=OZ< z>cWXx(&S%45|voHt3NbV;^eMnz*dRJyZW=!{6Uu@+}N!Qn<=HH-TYaklxCAuNJ{6r zm4U1T>C?5lKg?2MI})2IaUqG0O1#$HpIzi5x)tH(9{y~;lsb{rPD+bOG6^Z|W)Bmy z`+2mD)wEAmh2x9zUX5J2LsYiipVL(X>NzUyO;jBQEl2Y5y)$6l2p-kP#J~0K33Y_{ zH?)c2-THQh>%)0^-_nKy!)?%cA$anC`#KoX=%#faW;RmuTt7T5u-_o-qD=)@$&J5s{hIWHV*?itmcNmt< zQ-?;u`~H0ON>}bZtRC#S&ZCBT!!P}L?65HC-k%>CHV__O<3Yn~TCeM8W5smiE`H@T$lxENk`;x0e0gYZsidw+Ii5YmyKpEMkfO*;pj9Ed`Yrzy0gC zZxKoAGA+}CiXh=QKR;zXr1s%IP3;0fZTKHke*(8-yvek3aHTb$Fs%ms)SK^_HVA69 z<|U@r_I-84Qc91clqe?0G&Dveo~MSB^STv}n_dSFwc?r6+d)E0Zi;UOi(2yN_`cAG z-j2op3dei$ku%mq$)4P6W*10k&VQO&8lD_VTRrm&gV#;@s>CSMvL+O7vaxzMN-XiD zYL3}WxM|i4)6z&uwdty(u19inQWKaM$@?UQ`FxHbjimUvFO*r?uupc;>6VR5JC?MA zK|*8xQ}S-O)QAVqSqhaK@zZm@LgnzZ)4z0M_N8`{g=`~5cgwcWumNu}uNb&B;DhEh zhpY9|_Rbq-4Oi>%(u-O^d>uZ1QGKXaC+*;(Jq!xg;$u=$Ahsqiytp&8tH}o~?hPR| z`T51+EM)#Be>hfy*IY6c>efg*yrc(%d!cE?m-#W+TaAY=Z>ChjtMR?dr^1n{{P2n^b&HXjhswO>s+;T?U$xSWmsuTV|8T7(;Ow@e&g$wcgco||4}~l7 zH>;;YQbj)M*EjYRf3@fa{wj5CEASa>+CfHretXR#Q<)GOQTD#|Ny}39{X=-d+8Ty^ z%JUxU))*$1la0R^FR^|+d&|48tH95#zhbx*MDVX*=KD9Sf(k*r zd+IQ_R5tBgYDK29aJ>u<*mM9q%kU?gc0r%geCcl^ATLmMec#P}%$=%J`qi@vPd8En z%N2`13aUZ%w56LzFvu k*Tr?^65$U7GmwUE3Z)f4{Vp?ZE)mO7N3AgX}wVOEz0_ zna#1jY38)K0PTzOjk_;HTroa*&meFs#-H!$4!ga1Wcoq-Ims5I>B-WlZ&6+*qnM#` zQ5teXZCrVejQWO`MQr$kR5zZUG11VZh^|O7z4-aP!=Te_UT5D;ct}O-Hz=QvGAO;?ox%a^Y!*!DlI{pdX{P%;?prMI3IW!+K-TB=^<6)gU?|gVE z*t+u%hY#Chyd}Kkcp2VqSAHXNup!jd25W{Jym{Xv(+aM0q4bjC$9?6k4|(7(+{VZq zjxK~QE@^9zdNH``#50c-bMY-H!^t1*zdG@}W2<4X6E#8~o_4&heU~Yg#9B>}iH$4F zO~1z(o;up#+{#9GzV-J(wxbd!os~XhMOU(3+Wu#F<5zjMfx`e2npX+IH*evlzPBmLT;M`8?6Nji1 z9<)iTcYXx}Z)4hn3*8vhHSoHZw!sSEd6&i*s)5a-X*O>B=Rbaf_P|SDZVeTI|9p84 z{AnedXz?py_OC`*viN9($fBW;l?|VMCBS}lK7o>e!{7LYD`o84=HrnHAMuTQUu_7L zM({pY2g6Bce(`E+xb>BnyjI`-*>H>ZJHyGlnSJGn*Aigx7w&p}72Noj@4h}4x)$b* zvwt?-_{S)k*ds@oT{T|1|I2S=_cR>;$4CzHNn}Tx!`{%1YTgeC7{sZGh3A_^jJK;qpiR;&xj&^pS_%X#^|mc*31n@VDay z@8$)q`HNCd3QtW^Gw$&1V(643uTQ}reV+P@``=517Ju>W_uAS=_P6A)E=>uj{06)? z@_Hv-3yQ@DWyj8zH@u%_z3!dS3Wry)F_oxS;7507h>4hX+$Z-R`Cv0n?8hrT=m~?~ z@dXba!}LG-gon2b0dI}?pqbIkhd){clk(D>AD3VdYT#9#w1%JF@PsG7Kxg2dPs>0R z;Nee~gV$^R_-QjZ`-)e5cG12`4@;0?J!CtMe#uMajD?;r`O2I_Q2Yh&nY#@pKTmUd zz8Flm|M6FaU|ihUV)sjDvU9gprP})$zx^^1@EITQYC1SSOMCSylEH~5JoL>Vc>0O2 zebWWLKAxY~8!CO`ee=3NoyR;g?<_by;&a{>bNTeaUkoDoy*A_#KlFAZ{PmCz{Id*r zKI9AkYy-O=@Z3Ke0e#C-;hhJxeZZT(YXpTJa88$F_xY`N~< z7Tn`CK18~Yzbkd)NH>n=Jz`=}t`$%DkO&j+@RA>^!1UL=%f~K;tlLKH`Gy_}=Ra-+ zm)mJSe=5yFtKBwQ<+fKf-tmnnzGE5IG^9X$%R%Qadg44y->k3|BED|nU#^ONtv6peUxR$?+ zhsE{YA6VGH2EnL5aH4_jv@b3mopSczUSBqu+82?&BN=But)7J#Ur!RNFW@U{b_;f$ z$J0i31lV~@wqZZRqw`p(0DEqjdDe)BM;pvo*p_XCD`#+@EwOvfVrW6u7J8k<|%o7cTSQ$8c8p{`= zyp2AM6AF5ODLFyPaN1R zm~;|HIMRL4Nj&Pvme}W2wZ!tYs*J_)cZ@5{vSGpR*u{y}fKI>TA}3ZIwj9GtPL%b( zkKzJnHX0TjMLQQtXz?*@??M4Z9>aCw{_9c96Zcz>VwfvkdmP2N;_7%5?~Ci9BN*bw zcH0lAU`e=p1(|UCVJzs*ZW&Sz88OC&%JQo_mF1IzxY0yqdGZhjnAzZhT@J~jN%;pa z6=EKkW~QzxUp#y)?4zaAB@^tSF`TEd$>arL6ACz#86cHk8W1 zEN?2)tLf-jjJ37DA7DxUT7XRd>u#J|jLo$V$|p)FqRDP-Se!kC6T30chYEYvZtUyB zq73wq#3RFvX1wb|WnfIhL|--;7Vbuuuw^|?DbI#Ot@ZdPT|>{Tqj6!0 z8W)@ns&Qd7-Kufn^#M_oV%d68N|tfKxGsHh2uo#fYYjH2$a+B18eCJ6oq!Eq+_ZzZ2W~epCh;JG(cg$(T{2(S79UHTAYzJOyL<{P?#?&zLl5tK1CE0Rz z`r!yRiGfcN)@j0ih1*H^unGAJpM?dRQY}qR!my@vk4ZQ{+>_o4aUYq4zc;1Ux^@6Xp?`J%ifTXVtbsSE`_X&kxE(h-zC;R|v_Hjj8eJMO(3E4Bk(} zL9N+9$eo^kwKbz9mT4+Rv}H43&J?`ZmQ{rlQ_;2^3x~o}uw^^CZ>-(Vjl=WeK5Giv zw5Pf#umr2MXN?25PNC@3{NX+o5ViPSi$zpoOZIQ^D3?W$_XeFhvLY~XG9GKsDpshb ztg>h(L7P*VbjcR8N?{(FZ$2U4JVu$@{4y;(ZO|MiDRQVYTc48yV_M{`L zDn3E(V2G;9**qENccLdtvB~JvnL5qaNf_3dRSGY%=zl2h5~We?8*P7Ne4`d14mHB$ zE&LzaGbUk1XI32APr@7II-m+!M7X3m7?f7myB{hN)pb83K zh#kAIc(^z*{caa#WRN&Pjfwwsr7qWO0#@wC{Qbhm8LcuzRJjE}n$_ScsHE^bF%+ z_~BGUqOA%@d_6%4-k$eEf~}>68xD^bh^m2!JQUa9}hWXlgRcQkF4yC>2?j{qNw8qTuQ^Vu;a- z-ayQ{ODa>2iG8)mL<9AfDRzYZOnFfC`v)Pa zm!FW5rI#lRM$;e~_TLY|L4#QJ?rk(ZHMQ4f)YgNIqOs4V);gCa@wOz#QE8OR*Nqe5 zQVk`kIFH{J$%_E@kt8^|ySh* znRj4<1W(X7)=4y2mBJPZg-YV}ElUcIZ{Z(|F#-c-5_4DW!h%h56C$v`YP zlnsG^0XTLj^DSUKfRr;l_=B_Vg~e1Se+~AcKOP&(8o>JgXgiFqz4~MGVXRX3p#Id- zqh%blD-l0VYyRw3xB^sM+q>cC0HV>(1M2#dvU*M)^YhQ%;Dm~b7N z#juLd=sL#5FmDLBjw@p*o@0G*e+=_<%ey9$P4tn;9&w6Da=&{Gb7JU;oqi1qk6?X^ zc=nO;HIa&ON->iZ9YU|+oDrcHeVfLIjj#biImcv=a*(`{I+4G$~wn1${>`*9vp5$gUek zTGTU69cv$v_#|SAd?!m*BZ;N56l_G2Ew%4nSFqnGYGE(>;N?-QhI9Jm?+VnlPKcdJq&w@PdlG&WD81gf_2V1(J^CZ^ZsY4fvA*neH?~IC} z)oDC9iTOae(|B(ZEw#2!Vuhff20l9_Kp&XY0oi0`f-R@eb29VsN;)MXNECe`f?bM8 za*mjGG>~e0)G2H`nV$E}PvQ8=*?3?QRrw&iJBgVL z#x_|vI+l_O$-+gktcmaAlQNSLB8h345mZGH(>_!CEhaN*{QV@dIOb*O)y{~+cNop? z4s)bIqB1x_2JSzf#3pgnNZZq5IF1@=dRv)r&WZnccDQx|^WxYT_nwLg6G^C1rysc= z@qyMv^QKUR>}-$rQ&|v9Z;v&mvf2=?-J9FvhN0TGE;nBdM0aay55X5lZ_q;rnY8XG(+t}su-b(N3vV>RqWKkXbaCMy=T$HVoY;fJd5>%a?KVcv9OSCkwPopgGO7~R^tOL&lRy)+&5iD zlRtJ(j>MQGRvJb{;?g8qf;W!DlSynRl#IZMvsp2h-=_Vj-ykCWx7qXzuDvN-CX-47 zjJEBmyOX@Np*rGFc@w8qYR}!WBRbb_D4(Beh@^2ScQeBtGpI^`ozL9B zCLA;7vyu*%cIErO)-XM1K0D5QJ<{@HQSJ*UKy&|jr|Rb~!|)a|AB2UhhFikUd>gF^ z&k4g`i>Y?{FJz~E7wpKVmCI=g&|Hq$AziX)e6WD|;*3S)(fYfI=FzUM^7woa+wWU^ z`+qz-DnRpSwOs}IuC@qrq}$kS`RbatNwu+83hU-u;5(y2`><82YL0TYs?cuXO{CCV z7gK0sm4>drPO6nonYFd{?Yb#H9p$Zw0yJ;6HmR`6hvLfRETH_?jZ(dp==t(7DZbdF zLF%a<&+*6=ANb`YR#l_n-i_$6f_d34*ObsVh84$58-o$su3)aVJp@iO271X@@N*TT z@KN~Ndt~! zHH=$D($5rTs5+MKrIY0pUpn zj9kaUz_mOktz(`pWd_Ss^E-2BdEB#(-L7a?j)F>xzpv|?IdUSP_06_}ezYr74v(*A zP2F~{5|O9}v>J`~m&1}9Xan{4ko18YSaas&DAv(Qmi}h7QVpU$L3lTn^?@^GvB5?* zqGC=N8Nez^RJMiqx!;pdGXA;zzsYnehfg=sDD|*p$T0WvV(%7@OEbiV+6<#S2Z*69+E5roI&?@)U zg|=B>Vr|{L5X%R8ekK_QF2U|wSY4+;F?q=^H?JkC+-d~i@hzg@7fUuwrAhUf zvp)b!Zl#T>n}PU#E9+!xAKbB%cCV)Fq&=H{95?P{LrpV$jUpejdXSDK zA4h#LD2s%Z(D;MR9NEhrS7CpfHuv>YX!kG0pbAYm5`0gMJ zcYB#gR-*V+K~hJ3XvSuT*bviWcj?y9PUqIggy#>@>?SA?|31VvIr)e=S$<1)Nl-1> zXih(Mm=$3VVUnffJ=K+5CDH3#Iioq+TIVs{HNDyqR-Zwd8%{jRDto_jmb$bsmb0H$ zI^7a3c=jmG%{RJ>@+gV_RI(|Ekq2mpJ;Ys=OokiwKSrhN>W)i~u`#CEPUI}v=+;u_ zCCdp*9cTUQkBEttd|aeYK|D_LMO!!AbDZsg5LX=bJ3Zx~Jg=wa2~9&enY2d$Gm7CX(l+83EfzGS@46V-Tf+zywV zrd4And%Sj<;;mc3aRZ*eZ_Ck)0J%*lPeX6s9GCHkr?WLZ!k5W}oH1-NB zH6ENDPi|y_N5`uK-5oIZ4DE_L+hX!r=Hb$@F=^;JO*LCgKTBhLy+U~BEUOP+?9lfd zHKoD@$ak_au8~w%-J@xN^fl+04TE<^{Ovq#8`ihOv*%d@HU*t7u=$3+t&QC0l();& zhCil3z3R#Z_7ZLz@aRPr2qkROUtVNR;FL9*6!Y8SzR_ybyUEi1F4L`++a1`Z`Ald z9*C-PldU%$`AqRA8~Z8^<^9WNe0!4(Hiap!fS&vLGmgB)=9rd!l6DEzb-B&{gr?h+ ze1{fT_cpy$yz~*z-KIuxKGc%D^8fK8e!R^N!LtuIn@wvVDKZBZpg^9#yMx1*`;2^ z|0w36(_^;U`o$Y-^&yGNvI;+HIOpM=$F!~f;7?rngazW9;^1d$Kd9egQ~4jGp8E=WJfi}5)B}e;XT@;wGv?{! z5=Bb+yQbvb^f7FP2fpc;x>la_+ zpt17SF0J!>KbJ*NLaD1FSn(WNJ*UXtb`_CTb}HFjAC!A{6;$+VJn@{y8@E?z z_kuj;zQigoSbrE^7ni?ao`Ex{D00*6v^ga`<7U*gQm<*{=YV1>fWVknc=rVjrww1B z*GrZH&!4FVeyPll@jK<<-Ir`Nct2AOJm^1sgJ<~LE6N{#fw#ofH3tj5rltPP96Uc5 z{BYcB=IK-DsjMAUX<}q)T3V)}vR(Tr?s!eJhMCXt*=uUt|2)HgKeJNUvof=-NN?&? zRp+l)N%^Nzw`thrgv~=fOl{h-uo;W+Ubw6S|01b zGI35G>tWjdNUH1!&^dhh2;nV7_w+G_zGbsaHy=u!0KJas5oW)or`Nov==~?_Ybv62 zmX^}_>G%-wPgc^&PRv~LTiUd;XHhs^wLB$97?|Uk-rw=gVFB%TgAK=)(s5d;hD~l*0eonNSW@_V*>S@!s>#H2A4{D1 zPm0Lfxb73{3PtZBe5M&=o%Bz~#tfp$RFzF_?{+H%rDYtM2U9J1vpnUGQ#mZvNzs#@X-0RZW+oC#WX9Y%c5cL-A zAg=nx+>Nw=THX{Rzp%C@D`hiNZ&T|!?)<`fgY8W;eWiTexqQB%ATuqvD3f|?(j|5AA{MiTT2TKF>}C!1#Aj(Mt?66FwO8yhUj|%&lw>AJTBk|BQ%B!m$0r4L_zXJ`q=`6h3r2k%0cEpJ&feQ zCuU({?2B@2opqTw0F&mVIo2x6sU$TBQ94-wLO;>)GWn11sWI=%m2eor0{gu?PhYFLn#TABb&d}8qd`t%Dpbv21F^qSnmKJjYw>m@1mcQGH zz4v1o6{!GJ17A&u>NnG+WO+G1hP>s9A34azoV$hI4^YX0w$NLwm+6*-Avr(2K732qw35Rf7s7bQC$UK(g9rrVAKJf1@K<% z&}enrNdS*@K*wX)*d2<2`4|pxhtmGDMf5W*3ez&JlWeD)vhuOAO0=cEEz54;QQYkg z^P$R7j5I-8usV(_Ob`wO591RP_&P2+D2h`&E>Gq(IgD;*s05L27-@#-aN&SjZMYeK z%;R4N@Ut1hAgMfkYC~Uhm(H}tBM0g0AKJBX6MLS2n1c4pTKdhPYev!gafT=KH*Mc1 zxdD3a0t+Og%_-a(|fUD5&B5{-9DUH1p4_Lpm+9EPMJbk zj)yauE~(cUi;98|yv)E7^w~(^Bua5Fm9!|Ar11NA-`B=mh8*OIsSV{`*0=j1>G6{s zYmLS8192}aJFe@ez4YuLA6EHWdKd9}QTPQm8!%)Qy^%@qhG@Uddt~NTe)Id@jdKK+ z|A+=7x)mc$AEnt(ui5Pf&7Z7sRWTS^@|WGxXJNhO8G+^de1ajxArM0Cu}g92ROR_D zX|U|8-}fL&{a_HLx?y(2w9G)QWU#Ogn4Mpz%L#Ac>7kTUDy(cga+Jt056UX^NBg{6CLN%ojrB@iW6Rk@?eRs8dh!;!a3=hhsY$ezt(OAT^ zZHM&x@gJSv7dyl-Pz*PffKISx7h0Eu0j7Q1rJ|o+@xykUQW6?M-VQuj63W7{o%p^a z_`&j>=;a5M1Fml)8~NQFO;o}&R9o-&w@fO3@P_RowX(R%5A0+2Qbp%JRuv(KfD8eM zKZqcUkgB31m2mD+9q@tLOYROG@RtBq>45hF_(ca)62N2v{?GC;_Zfv_@tx`}M?04bBQuMSxl!hC{byXT( zFGXWPJs)%ofO60|4eJEZ6sOL192fxg;qRTeC4ls9?@YfH0JNw2^)LJs2qj~0|K(?u z`?n0ucv;Be2lzDoIW6ReN08~+IJYd+vY#TR(sHaDTSN{qrMheql`Vcc%uXG%(mr7E z5k3+peG;`t?+fa9qf-zRt)D6;zS4Syl(gT1o`_65O*2~XCRXk;ir;Gt*(&@RU#T@f z&QNii7>+w`8{L~H8BYp$N~V|=D-$`&y>X0ds=jc@dW_luUBGk6d_*xwz;&VkjuM1z!b2*;xDaBCPLU3m8kv5{Z+M zBssXtyF@t<<^RStRoEoPJINuy_@`J@B*m$(K*aY>+Kb$qdYoS57N=-)CasgE@@-_| z!o07D<-i%%df}#W;B6bPndHCLwZZg_HfDn{%nKdMLxsXu*NSM3HWoeSkx(4&dE)T$ z^az}^)>^#X^2B51p{={k8^7niZfU{Q4^{r~tjH)O)3KJAaM!_lHy%Wu3yV zYW`kQiPTe*jDBW}tpp}pdyNqpFAcX$II1EvfJG+Es7QUxyawM?gx=+HU;Ljeh5Tx5 zmFq_pk^exXq(oX5+@)uhj`b=+DLhaKf??tdd{GG^z;`uPsSMTO!)lDF476jv5|31- zxx~9wXsAN#rE{yWdKHL)rmOHbaqqthA5?*=F6UNQi#AJ(OZBwAvjR(3g_15Q3g2$Q zQ&(UQ!eQE4oK}^7Hn?&HrdOpgBx(hI5ckbiVwq~t1Y(xsPt~BIy_chrGgJ zcZqgbZ;potWA*ka_uRYghkB|h|@x81=w#X9tnjakVA%{H0sP+iuTnhrx%xC zhw4zwy_JZNo@a^Sk1atuEXBm?wBqwyhJRFt>fWA9NJVB$tn9Al`ia(~nn;T!7+3?U z+qy0jD$R4STZ)xx(|y~e^wS3z1DhA&&Dt;#E-b^2b)W<+U5pp& z(gSOK9U8X#EyhcA;08=siks^a*(gPjUBE5{gTmkmxGupREy0AP>wyd0ScJ9d?H(*z zgsbYoQ&^Fr$QAX$h4sZ+^&klE&=1Y*d>3kURUI!ifg%{%0FG0YDQ&lgY@pV2nZ%!Hw!l?!AnvX-9P;*WVr66ue2IPkk)};lvaEMIUD(la`rp|UP1GDO6^S~skzQkYUP@c+NtDp zN|XKq!P;MxN=j2w88lm|TyIM0`QVTylwPf7@Prv~N>f^cR&P#9r)CMIXo#JqQo7Te z0_r_mxw+YbGy)TGbsNf^XG`kmPZO|JOXvw>l7vPe)J#yMO)IFvK4Z(4lt!OcP@N^v z?;j|QU9HGNi>jb4>ek@L>8C+2K89(s=%xFN%2=UxYHkKqrO~*c;mR&~e?c`jZh;2JVIft|< zG(5IZog{~^{^ky=r{KEI5EC?=^o6e$`M!Ef52E`u`oY(e30SWSl(f4zNo&jva7Pz< zJ)YDBwmU3-PRYur!!OVMkUs2nhxBpSvn!23?gQsE6 zNNb#1k{WkjG(0mkA7m}Yx-0u+<*Ly*aS*;52scgL2TIOW&n+H^cLu>w)6HnfW$o43 znFeCiU>E{9gT(8M+CH8_CrNw#B&t0?uiZ2n%MO7+=g&9EMgGd>#Z5olQIIORP&7^) z0(~K#zS|o@JAJ3_W0j%wH0czLlZQfpb8LSRfco^3W?LcAxMwJ|tNQ0X84$J7oNXfc zjBjG)Mu%$7-O~jvVmb9)aYi(T4WnMtCK~$=gOXLpe5We@4<8TrSbQ}5u2?V{4-NxQ zD0L6BhtcN6*Z%lv7msiKTdwcCpGWMGH-uO8kADJSN3;qA*D( zQ|icdpojX3`{s2VO+WFgzeVY(XOhE8d6(!Rtt@{XWoJK`PR4g1A>=Yu?f@9Q@8Sar z2FCP976azew+Cp8{hU83yzeXDj>2V9ymUfk8$Jl@#n7|gb`bW6p$~dj^~axLATqFD zA4)6PczhQ{Z+Vih7MOgN%6!mNe!w++76bmSVb^Fpm~u>HQvIf*{532-g4~&};e(Oj zYS`D?8tc?FdK(-bT*aXyz}s;2svjPvFZvhtG}z!TtBelzKGIsu&?jBROCz8{L6_c? zV3M)HRV*|T{GsSotT>YT^nqSDfv&cFdr3MTi;Vy?485X~a_VJ`g&WiNs*a<8wvVr% zc@!n*aYZGEPOYqMu=gl3xO^EWj-pheqokX~msKhwFXQb|l!{9f`i-XRzMeQ_G;9ch z9cs)AqV>FLaQCKC&}phLtL)^E3OY+u+>DE$O8T6@bZ+_8r(V| z{0ymvE*-7$b#?kp_VJ%#xAoEv^tvr`GL*oTli*fRlTMU+#y9F%;!v&DI+c8hLXS`V z{sTeZPS*H#GPvQs$&hV^4gW*MyCZIlrDA>60Z+w3xsY>|RBj_tV*g2C=KB9(y|M!a z#DQ;-)&%qYn3d6 zNKx`(fzMX*K_SQK^hfJ-qLrK}bh;^7`fsIVnQ%jk97{@}mK&0Tbh3|5c2lw}AzLM% z6$$)Hj}yxMB_Zc2`I?X)EBU67vz2^T$Y+)ONXVHa$C7c5xY?zMS3*uz@}ELprsQ`* zo~z{dLY}VVzl1za$sdF~M9H6p9HrzhLT;yID{39N5lXfuIX1VJy0H~Rh>{Bl*-y!i zLiSK{VIkWq*-6M&N_H0Vd)o1(%(w_SN68Yutz>C?QOOQM=eU$(jq)Z#M{L%~t90@L zot&VPf7Zz{I=Qcs?L}gplx!#DW=fVB4vW>@RMyFXI=QG$cGAh#I{A~M%)NB_QYYV6 zvW-aiijqaK=VmDxV#Un?btCI$yOO_(I$Nvce}$Z)0` zzZL$ob@*8&lh0V{2I@vS75~E`3h1RUNY&xX@(rjL=;Y}-d7Msvh?1qBD4k9_olb<1 zW3|L;DdL4lI7G?P*iUERp=4PS_DYsHw$kD6?Z0OrN6FIXZ6!Y!{x9nA*yB2b44u4L zC$G{OEKss^l%SJ;*6GA3S!STGl4YQsbaFE#$I9GVJ9W$ ziriQ$S=xRo^gZ`4l`L)V>*OmsovcD?{FlZD6d@bVcAdOd$ub8iN|r&-RQ?d+t zw321Q(MpypzQxWSPy^tfgl2UsGU# z&-_~QmAc$bRKH!!B$-ZOkTbnj`p(60nE9mD`2VS`tAX>D!nmLo3sel<^J54mM8)7B zB})u%L({7)1NyU*#j0Y?a#&+XtYVE1ZqUBSt`$%NOjR&%1#OnBt&BU4(KgrNrnIJ7 zxe_Yb_pVHk0&8v+_oN_*5yq+$x|yA6cSWdb`z-z#y;! z-u;#KAXbDZXCVd1*}65f{n9N2Z?2)uD*q64UJC(+m*r&;e%Q*{;EXYA=_8`_r1Z44 zK!4)kU9dH7s%p~)`>&_H^C`h%KO+DStcMVY2*%d}^bAJt4d4q;gD`9Zv?#hL$XZn6 zwFFuEYMT9rz-Y;dy#^WF@X!X@Q9STA{mTaMWYBXBdTfO4usIk{Z=~?X{fgfuR(v-hjkUzS|?I{L-a0*1zW~c+d$6|-gl!-ShF<~?93y&>_-!{|kYuHNRyqIBI zDQi5m(54uMT%)ZU|5Czvl*1!``n)f`8BLby#Sf0yL%X@-w}KP==8s8R>9dcK{_r<(I$MJVc0UQLCh6X;J-Sz>UUC|)}MxBcS6m;ik$T6H-OY6 zBND||i*!=U-cMzc7=G4r+pJ{z&7IJk8SWIP#r9=z$GW><5DYG^n#>=&s5;6Q#{#>l zWS$kny1VIp@R4HJZ#UF5^etvB{|YD`*-a&M(_5MJ*+UzjDc-n3T$_92jXe-h*w5SA zDwkgMiBBV^eF9vS0VNEVi&|r#Kkcza7FDM2)5)YjQ7oSU)vXT{p_W~zCADl`1bGIO zH`Fg;E&e(tLWY;pkKarBKY3xMxY93T{@F`40AA>~kFnkD?3kR3@hV zr251ITZ`)w51hT9Oh$O%?){V@HxFy^*E11jnU!|h0n&;v<7>JazL>0WSR+FzxMGqi zz%&z1J4pTOv%Au6c!;#q>4lTH4spkQhsbvWcYJh+!uiw98k^pu*YK4NQ#jG|4o&p$ ztA|Oolp8u_QUbSJt#R^w+UVWsilZ|j%rVYYwqIFq@7?hzVWmn)jQ%K)cz-F@<~xRq zcA@PPv=gl8Wvc^?^v3!K1>kH_?PAhUTy_NN7|OUFlp(Fu= zlMR&(FAG~^g{8()kX9H+9fwA~WvBelX4sBWNsRAC{Rr>vgtFfG&+ab{?F05Fu`hczE%KRorQ{qsRd-8G2^ncu+ebAMvl7yIQ$%}H@q?G zN1T2}+;LtMEuoIr{~u{z9Z*FRz0KXd3#g=t38I7o3W5qInAqI~c8jlt35ZugL^0rC zw=Xs}HdtVT-Ga$A!33=DnVIY5zWjdQKi~HU?A@L7JZH|C*xA{cv*`V>VxM<02h>L< zU6))`(r{VKVn32Zc9uLrc1C2N#jcWQO@>rgMqE`I6phlTDX~tXES0<=t&}b*%*sJ> zo)K^IA<}$oL}#74dk`wYiJMX_xh<03FjpyYeF zcQyVYQ7Ch<4#5{rn{7p%@j_M>_eDroTWgvHc|R1(bC7D2mklqf7$^pc@YVAf%7IlzfW$eLxO< zkwXd?sML~+f54{@2Eq{;@2STtytz3rOq8nqdwTH-s^Z@XFv`i8cD_a>?D>u|UrTk> zw(n%4*k8EwzIrR%vh6JeWCK#^t$|ydw17N#L;bbL;^sHBT#GD@ej^Yy-_Rp15F4}t zvGxt@8K|XuZy@ZXCCj%E{*X=HZ>4_H#BA!>UACozZ_#zUer=$m|2yc|`kI!$18n?j zitHgfNp)Wz$$clet11+4&iV#S{3&65@Jm1O*H23gKS<3g>~Hor-Qhp!f3k@_Nd6Ui z=+n>kHpH*Zru+}m5GmmW`K?60W`9J!s=T13rf4~~Ik4o>bLyLeEX6*jr8#IRJ)YCP z9GH9gnO?}4f^(7i$Y-=W7fT0PKBKH$wCemUGXDh030Xq2Q+W*WZheBJTNV}j3`uRK z;M|@`13p927Uw#}##H?aBp*MeK3^cY@+n1sk*dkvpUQN(hVf9!J}Fs~Z%t!+>CzJe z(DbhWMLeNBU!^+g7Efd&iZPd~$tCMaWSx&$+sBWo#y4o{_Lza(DCZmGtsj%acPP2~ zi28iT+VrlEsKi+~p9@D!5MO-QlK`>w+NcI%_ZS()VkEpj;2xM>=$k!W0<+ z6R(L@(()Q*De@wTuF?c!2%BFO!g!|ekuG1MF(z_d^@=N~3<15+)cakb%O)}+r(U7& zCJ@(LX5s--^UL(v6vqC!By^v?L{|>L*x|)sY~4$gRSZI(FH-a3(7o%T5E^@tRuu=y zvoxX8vJxx|EFpUq+mNQSkUICnNbh(Fm^Uhou9kp#2huU>$Ps7hw3Yl)3OGaC ztigUKMLY{za%WH4p~<6FOtc=6tI1h1(rYGX-h$! zO)^y}jqGKerXHnbC+s{`m6C0xk*8^0X#k#_G5`!K1HhV7w5kjM!%k5~8QIC%^%SaF zGz*c)mKS(d{M+-b@i6S!rlycxS-EY6n-%`1d;cfBWD3n=>67*8x7-c!dyPD^d%Sn0ztkx_JOKGLpZw6Hwt&PZHj<~tvwC*@(yx}!n} zLs%cv{zrKm$)+&uJ)*A__03Zyav@>h87ugm}^U?oGyy1`1X}9?Y(N5CaFIJoR=cUJtL!PK|51tC*Xn<1j4Q~j z{}tJ*gb($-@I~w{${Z_^=KXJ8mQ^PiTI&f!qh+{;*;L{o@Hu2uRGGg63gN zK3&wmMcdKQpI!38Nvj?DJ4qh$fA9|yB>{jc| zO%#1xLm$*^?JDZv19KBsiM$1^qCEql>(xqu<^CGb0D0T8l6DM2-o~w@tU*9{K>`kv zzr@RAH6A+K1hB>sZ-Bes5IE;}vSX)yz$MX<@r~rAD#;;UbV4e`LS~)N$ym_| z)x%LgVlr=vX8&b{uGzv(&It@?I*m@!~Df90q=i zAzyY(iJ^_lU|>Xy$e(|V=$1|`5r~i$D7INk=vWJQqvaCO8<`=IRkJILMQ_w>u@L5U zLe&b!7%kQpoMD%AFNpwpecwH zG|k(>(4N{pdp=oS#Kl(~a8aY7r5$lGZys56!oz4wEC=j_4&w^K zDzh#Mvva(NJzU@fqj0L%1x`3IS2$tTT!W$Cr!XPOhJI3F7|rhr$+5V|+~pc327Q}C zMYanEeF35R;xQcb)d&@XzMK$2kcin&Ht2K2Ijh`!(D!1F81(I)BL;nw=deDq5q;<( zmz1i9vyReBLTn8_%-=g(j07EKQ*KX;+Mds%ZoQDj^|NR}FIZf57UlGUhD9@l2440@ zdc&BuGwEG#NE**1yFTb6GecM(S&;(!$i1b28+5!6I?B1zMW>V(Ea1H1x9bP^;b74z zg#`0XNooZN<`d&!-YddVhm^oveI&@cW9BA+3wrU!}K%?qNrLx3%q zAh6s$ZHB_+qzN=N{NiA=yr(UL!Du|MG&uN5~(fQB>W5gqMdW53TjrocTTS{oPP_8WQqF-#$Urh0+`}2O0q#6Ava37>E21DArAN>x73ROSeB}!?1 z#cWGNUz#%=)W7?POf{W>nt!4X&6okOrO< z0DtW+)E(+hT|yx2(%nFvO(@i9yHSTwsN3I-=7j<=y&G#{b?F(qIG`7m50j@zQ@c`3 z7~t=^7{GhY1$;*rS~M4ule*B^xqvt5!r=9&_j@b`Zyhezkt_C=Da8{L=6TtQHFeg= zrD)u3r3591%hs}IXPM^2U>n4Ta5+L=*GZ<@^X2NacAgxo{?rk}?Zw!4LEFM*OFF(u zaV5J5mHNnXjXX*vt%^JHd%okvhtZWIwNN+lp|#XZKTEhq!4L|Kf}0^ds8&?p8k{>1+0TVSuc{SN}pPj*CJ>u zmu#SIerpO{B+r*DT8o-iHyTd9(uzh$!^yF&Xk#>-+`koFibi*6+KNqyp;KxpiskfT zRDnh5_9?cwxvuXd zRVNGruEwC_?A4r}#(N)t>$_!^OFfKpLP$f25X5VFIknYQCK=bSjX zoOSI3qAKv{7YK^ig0{uMtfb;}Jx;c1ig}?V>|kWOuCt7c?2LHC;#ut7pGdI7J3zKE z34g5P%{Ff)8!RR6Mjnsw-i*CZl}d=S+H=yX*`+(xsjaY?CkHq8?d-oi- zP_~etHI&KskW|fPS3~))8fT1FMQ8{dC?!*>;BfhX>Tl|Qb5|A*XMb}?9n|%CZ{rOUS_b@CE-JQLK(d?bQ$*cOp=&a3BE%iQ}&^8~~8;oBD znM%j2F1@|!zq!4V171*m#~7fVOzSS7VfeOGrc0CR3G$(-@Tf;ULC!wVBLA!_Q${N0 z`p?!Cw~ugK;F}@xy;vP~qrKgLIpW1Ik7#3SVCH(sRJl7aZM+1g7%uSlDu@CLj1vuN zjo0$7Junz*>?vNZ7<-DBEACejvBAIwJH9MlBM!Vgb}?1D^3ZnpN~_n)H66P#6yCz~ zmwT}`>=4b*_&2n%5sf+4lsneMh`B{$L>mI(;GjfIXLYurtFP zA)?B2$U^aq;(Q z$!g%e+J+g?Bykv9ww%a+v0H_(VLb%lT^5Yhn+G#bvGb3N-oT`yG~&RW>^fb-T*)q6 zkJ9X-Ynx7)S#X_aEB^hgCh}V)MlsbT|CWMXGxNnJ`3K7+v##=TDTMU zoxaYLxm|W~iD%&uBBNt?R0NGU@Cp*85lN}pc(y|&*n;=E-{mUOIVbjvi>+5qLYWn* zcFW%8d5%y9A-1k&q|nz^izobKN1C}?cB;Gp>DqVVekN*iq^7e_+W9BH(NOkIxolNm zaZMaVMno)t)4x^71*YLxE*u{^@LJ){q$6X!*&$lP&J1gXGfmtpdz#qcGVTuKu}8Kk z;mkyNrEsRKZ0tSh;=t{Q+btWLTCqgd=dhP8A*K0QVa>3FPAnb5)kuvI{_EcVs@YG| zza0us;SEeUH#M6k_Lj>@C##7Dkj|;_;+oA;mb=Bz3eB8ZjaM5A$dIcvd{iW{ z6%q@3PmN$=Hl!61G_NMQ)T{P9_enfCHklowHSEkV_lY9+3Ah}kNf5bDWTHIxi6ZyS z?O8#&nZ~n(NKK5GW4$_Du`*FX32RtcH<0BmJiXAKD^>rKWdUbdjwvFzysF4@Hvpg@ zlqbhVutPLIGt6?Z$Z`-;vG-17Ihcv^EC-7$U&LxTJgu1qa4Jo2p5;nI`B`BG7ue~V zH)}bpNE(hUBGH*i=ac;hnS zDF_pMnJ72GSD4VjmNyTJ>Zst6(atOx11_G;3aHK9+Rsh^tU;#f4*S*a71O91M*z6-F81G8-@OhG5D> zxlyLVsB@KdV}}B6PBx#XsqlrL6`C`*vd)}5o<87bk@OBoH!vrMCo^-hiwKtHM7n!j z4K|CM2??}Q{1*e;_+R9^56gSlJd5+3SZ^dbeHzXL=Q=9FIg<8R7ig!_LO>UG&r`vEu;nSTQU0!CNzwSp3T$SQt zq&nLhqbW0lyk>*EmPhg2atUMDqj=r4+y+FxtBlLgwWGLo^tGYPqgW_V#s<%CgUeCn zV|adxLZE8~yl_nRQMHLXF4vPwmXm4s8Vn`xm!-ht0IVo$@W5BRtN^q=fd{^{GCB(k z9{84);SYQ!y^*F(87v;c5Kx-d;I0!{nl_%41I${N{%bnMRQ$c#o}-eL%8GnW$<8Ks zOR=Z1KmlD=imcb+g^MXwJuL@H7fO=(dc4V9Qc|Yqqb>PdkV$u3)1K_lQ7TI+epX&7X)FZj%2_zFIT@dm>tP#w<8v_Qra8nL z^%F`Ko3qz?wzTsc9%R+#0@UF=G@UWyn%oPpmMY4OFQqW)ifh{AeS{`+GP?jx;Uxs< z+68FxBhyr9Do#yPp(z6))wB(I3r&lPvn3Sql2lyCcS=LuNG?VT)9~OMS&UNB@Zj6I z7!XH$3I!#|;vy7;nF>JqMJQ-W#Vi%o>@_U&9cny-Xjj$<^LX!dJa3f01z?5xU`j{bC$2S{F-vIGUEWNvpCUWNn zh<(WFCfp%W>zlH(bn!P$yonYv?>CkJ_QLXmLpSB=ssc*9jaP%cZlUfa{gVDJGz;dv zD!Cm%TMR>J>RWtrIQJGb$yD|>G-1shGzFN||EUN03Xu05*-B+ZZSJ59Qh!KTwckdR z!Q3Ade+TyD6^KmsxeKL-3-oxD8+(;`^e&W!6wu|nDDzfG*6wXB%3MV@_n>-OzQ8}Y z2YlUpJwBcHopI)X|IVZK_W?hj2Y9Vk94?1qF|oA;EI)c5_4(U(!P4&mSPp*Iv&4&; z^y3deGaGTQAAqI>lC`^A2s8eCql)-4urvkB{FtvFJ;Y>?=QoK0tnkX?=U3|Z2#~X1 z0dZ|EAalObnn!?q!D2rK8Soe-x&I5rKSoK;{6g0s1JUdY5Ig+@;@4-Y`~-+ep9SK{ z6BMWi**ul&Nd=#%^HTs)J^@e@Q%S5tnDvR)Jq6%Xt^f?mgo?ymT9pYE({m{!6A0g2 zAhtIVh#xs*n+3$g9D&Hpf{NNy;TcrqeWb3>066^-0O!U6FykX_cm_bu2da8XU4w=^ z$BKzPA85^UsF?PFZaxR1$p;|*Z72}=@2TnwASS#QDxST73OB0s5-PsEqwX)!G)}&w z*)LJsgWu7nmyrE{m4D1fLtepvU2kdKE3i*_OSfO44mP4+ukaS=`x~nE8nWZC=8ws~ zcnw|`s*(-fFIwuE4c_Bg3du%&pQ^>W$m!^3-(?HoVOkLH$fgZi5KqdcyIK%8pg&r< zy8QJu8pjL>k9jSGU%dfy4YGR+=1;Gv_ggR@eMMn!k>km)Xxm%l;>}ATJK~+}W1jF* zUz75_Q&=vRVWhp25yJ8%-G2u~-lTdD3qHRfr}w~)dO<1gun#4Mj`3^bv|DJfnvn z!B7wB+V!;sLv9w;$N|HMEWz+52X{z^EFA;cg<ieTUE#2+9(DUJ&r-Fa^zZ0bPTv>0mgPa$ z?E7>zPp+$~M{+)N?7dIz@}XlOJWt%RC>cf%|Hyu-O0kvI6|C**{Fl!! z)?YnC>X{LHP8}~@Nf&GymD)#Im`=$mbzO`azNyp*%8*V?Bz2r>4BeL0ey;Y{d6pBt z{B=tbeu*s4sr_FSt*M!;o+b6YM#(aiq+b=GrJKuJ5q7lx8^myXmk zRo7HWPpxQhF}1H-TpCxC^!cwXY4{~<*;M1dYL2JT^q#dsAfm7OTABCfK^v_MbK(?Y)(xM;F;n9;-Fb>N1N_H10q<#!Y#zn>Ky!6R zY1BE&GFLm9x}QTUS!u1Jjn&kpsG5cPP}zX9oU){Y0p*&r^ua=1N6I@x_Lkrre@1XV zw*;r_8OCW(zE)~P8%&|`Rv_M-0%9{u9dV+S`cRph_%;*rdfMKA*pg;gt9MJer>RCs z@Qyewc;A$SsSZ@Vl-gT*cZvp<0^@;GtU;S`MvSFPsSlQUev&g5vom0{rO~Bf{mhfJ zzBCwfPYA|(FSF75o^I<_mGMPY#8;G zhuyD_kY@#u4LBmmzEptS6{%K5*!}D+Gzf#v0M}`awdBAh=uy1mo7z<2oSlLb7)4J3;Vq9l3adVAwiA@XizEh zLdCi`+SL#$M#RzchCtMc1A?9lgf^Bu8UZmVRv#5pyD;2pk{4*Ej&QH+qC;s@SUF_h>B-XSsc+7G-n$+8)EUoN4#%^=$k z!TA{Pw`SnQ0)Xb=eYTiJHV5x^tmSJC-l2=>aC68$h!(QbTBv=@PpDCeyhtln*b zY7`hv+7{5`Ox7)-=lLS4-xAn9izuU|I>5Z#B0VhWEiDbkp20q?)Rt0a6pd~Lr~VrS zr&`??P8}RYNv#0Bw@@ga-WrPI7U~&7-%?dujBy{d2E(9*^tLq^9FeYFa#t{9MUsy{ z7$#erBj^%xDh4*A)TQjCX9}ChKfGexY!v8yD%UkuL;D%P-@x* zh%TWV5!V$OEU7_PXt)kdSx*#aT;fC_VJ)B`H+%%aIXPzBe{qP0Cx1$)n;Gd&=C4WB|| zr4Zf|>{uyyswdcc%%rb9QRQ%(?1d_KcLp`@1=$WWgsi$ZcuP=|-r&78ou>8%@9OEa zzBhP#PN#FdA$uiQ$ZGn4cVRFk_W^IWVEWz%ycNi{FL-ZHqn3Rk+iseWHSP!AV&vNo zyf>y&a6j;_oJt$}fw%iqy3h}@m!=5W1^rR)BBto;T~Ib{+=05E-5>R?%M{A*4?Q+i zbpZ6-oJ_3;sN?ZOk~u&fXl^oDkMhRMF?%W;IS>skeG<(W2%pj<_|zyx_!KJ%(*{Cs z+CM^XvUc_fL2!LMwHpG0mg5D1*--ddrdC7YXRI}xGZcX3;{f=1OaMBLqboxJI5$=R zqKBan=Z>YcVSH%+dzjkUq~urtW*!xQt7E9cZ~&T*5de!3(4Zp!5zugHG=+|UhNYtc zC^#Yj?GgKM1OR773BZz(&=5L`E{%kSHgTh%z-koarymybmq${kQIPi=Ddeq2L;lYQ zYBw6yDs2SK9SsdjMgWm_kRvdKcYU;arIb8e0G5scV9s#5GKN0_Nn@eGVmRcd9S|BW zV&&mjXlOc207{Mn;MY*x;7r< zElE8=?To2kw+X0wse`H81kg4fEJRBOLG(u;bqWIQxj>p91lp)T+8YGgR&+B6v?l_D zZ0tnH&Iq9NiJ--d@;{(0PPP95?fF5};~&sA93(``PJ(FuKNN!|$A@yJpyhn; zrw1jy5cittQ&I1e`_aOwD1Ze>*XAUM0%%5er$TEI)-v zy7t3Xkpo}4KOH$Z+)EIwo&g_C?nQTIz@3fBY$i0SdqIBO7NPNUPwF=l8te8HfJ(Cf z_}qhf&4N=;^q|GFpdq{m5brh#4Nd6bEND20HIgigYi9%SPj|XE8yYYJJqH@3?vNj| zQD`{XjRwqt2G4E+P$dL_+^*Co1R9QEiDU>ggmnet&3d7s5j_rphW%XxV0|b6L0#xU zC^TRyIt&_&xgkuCLgE+|Xf zWlW<{X)$pe4d>*wfO7(u3FjPWK_jBkU~0rIMtgbPT#xk55{)ckF?#95=Co=t%3&JP zwV5%Z9O}^P#ZaBlOsL+z1geKO(-RnFi5pGv7^udCatu^|^8;bdVGw) zmspNo0<+D_q5n%0zy~Z6`u8@WG0UOfp^3n|u7IDPH>MFQ;OAY9Y26AaoYWYIM+=3* zTJ&}W6mDrG0J~!W7~F`mV^N5hcaDRGPYog8FOpO(6 zb~K<31O*ct0PtXeP~b}M2?{p(2*BQW00MmIO*|A}`gtW3(A=}rTayEh&kD{Bv`=&N^-UQyQwQ0&G@K&rXWb18)?EP9aaWi-~ z)uM#W;2l+qGB$&^I(^*?-c@cw_Q)30;NEWf3Y7C$G=XwkQG+mbu@%n2w;_zQU1kX9 zY<8t-ThVyRlhrn~p1Ur3XcBg^vnQLC+tAlhsgK7eFzp4Rzr)fg>#u_v|0fv^tk}Os*4Yq^ewzHnV|FO8+ ztlo|staGMa+mVA|NY`GQB646y`P-3$I441Hdx`3!rSz84Bs*;C?PC(I| zPg%-34%*VBoB-{@GD0@>1Ze$9brQ6A@;nJw+$#-N_zf1WSYDbIoJ8v=Ms}yrI#NsN z>!$Yu(XbLup=*yRg|J6(doQGGlLLg?OOnZHsEQ~lR9!rc%H67@p1|mVxVO|yM(e;c zX)<)*u?D{BAfbDyHAN=FE)#1(&^874hVxc>0_^lZhkMJ86l7qr6`e>y26`Y_duo8l zfE5)xgAB~K6!^<$fNx=`$76#e!@HbC&wvNkv(SIb0`SKDh5jWL6m=H*6$^oHe-3^< zYfcN!!LN(V>C`zW>}C$ciM~Ri1(i4th4ah=;Ocoew;7pSfOGNWdI1Vz`&Z<&CZvg;Is)vU4nuL6FPGV3OeEYR@$WQLP2q|ybJ}Q z#sZLW848+Ei7QZGLd~u~!8HZq^}7iLk=Uwm1q%MCg?!hmP;gRB(O02hzM9TmMa}Dg zm_k=k^GwP58o1}kLiXl0a5p0J>)=+X#dTEZD-w;rjtad%qUF~?`%5K6yQhQpxQdpf zgLa;ZE~Miz8!vm()zwwTR4N0kvy6o3?F_IsAj=zI#lz+ewX=K)Tf8UUP}|EI{D`}u zCh5m-^0=dRqMkRwd-OLgy$RmAzbWk|c-v6UP4KFz%q{TFK-3~8diNH1y~+AEc=3pN z8=gq}sWQ@fv=yER|4DQk?Ia%y&(+S<`wr^*ksqqRuW^&^h+E0gJLt$mf6ygxnzTl` zHql>rUZQe$p)a^V=(~Rx1oaB^1fh4tt)#&{5d6ufcK1MVAs+;_vEznK*@orQ%6o9y z_dLPS_dXa7<>?vx?}&TJ@%vzylSfzXgP|qTwR>8MEErMw2gt%yL_}gHKYRd_y{ODX zJWl`mMjakP{@gdnyR{G+L%z}KhtT*HL6I1s|0B5bz*nM2aObSAbnOuk&A$S%tC>Lj z{z8==12Gwqkr?9fW2mS@<(@#rkI&TU2>@q41K{FE9%FGc`Aln{K>qV5AwTdbH0=9C zE1yEcj8ByQ6ac?Z0PJWgH2ln^Dw#n1lPeHUGoitq%4b1CehziX0w6gDfErB%U}g@j z&jKJ9F_T!90-iy|-jB5U8B_#+q#MtGX!;R|1ni7qjxP8>cF%zbLfj;V$a)SHwW#6? zsQCV#y1fA4)O!G&8VbPl_q6c^03Q)6i2(+`go@qoXzfd=nEH-xy+pOcJKdLf_RV`s z_OBp29zl|r?DJP3ccsd&LH_j(^>~d2b>a=pd5vZ=?G0^y4cYeykHln$W`lR9meyy3 zce0l5WP`UM{musOw`{7eh3wdDA^TDb-kN0l2E3nNQ?EDRJ@%SH-+*_@Yufq-vTt7r z+2L=&yZseyd<))xUeUd`;Pr`n2ih+$$?+XTN52%Juit?d@0s3%HunYfc@JMCy?`&O z))Bs#^n(6A?pO)JM8@1GY6Y?|*tm z&L5$1>dvf{)KfirQgT4W<{~-VsYmnbOG@OUD`y1q+KM?ZczeB^u2ekb= zG>m>gnco5McmTjEC!yipeX5lQ#Nhh^@i7k??5IXQG-&TpU_Jne_W&sGC;(&b(cXLj zvhE5%Pytk|ze_s{pkm}*dR72L?Ylt4R~LvkcgXz*5CL}tBKHSWR3Vq2Q1SXU4fzSc zp4$MF!-{j}=ux+6-%kLZ-V%U+enG|BTeSNZR1CjGFMgpSx{=v$)WqzYROdHj2i_F2 zpMQhA61n{W`O6zL><=pVt{b%Y4=VVG8+70gWFKd6+1SYnz891cyH}|z4b6ysr8wb1 z&_bnDmtLilmr9A3`lk!huPVg{^T@R&rJnTsI*pJNCuzrZijkCR(y;4vNP_IcYeIIa z4Azy`XrBz)!Ph8T25$|rQiJyezL2bjY~QOw_PZLqHsqmzH|q+GQWPhXge&lbbp_#x zAy?>#qQtB2Q-+D+Ou@#Ak2zh|*SI9abYf2`_l*@xDc~}_F$RGX(zP)*g5cRD@-~6S z-j{^Nd=oH~y`*Ody)N!AeNDme^dgNh1;e(BV6ZGF7y>WSQByG7#p_De+sr5ihS)Sc zga37Le|cC83kH`WDZ34a{}?p94bmu zeG8~~c$Owu0I=yS041!c%Nn$kvvkq|@;A>2`8k%*u=ETawS0^7cxv8p9_A8M(R8^`ye!l?x-x1rtdjo?W8SqYPlB?wRKor*{TYieMNaaaOftf6>e zO!vEnV$a^7)Kt3Q320JHrHM4+Us~d&gi2qxiEJYFjY5GgfSuSzi(Ql&#$nswy}=ZA zNUC637CR2I8*M|h3U91H|KfrzkH@#_fyT7P60=Zr4ei9Zc3+KE(t1wU9t7R z09Su2CW^t|--=$HtZLc9<{{o6fdQcd}6bTa@S$Ub=%D%k34#ed2Pj$Eq$)7xJ#*8lG*%O^g5%ME*cMslKz1;pIv%KHc+)%1LvdBN82amv2n}1Qv0~rZ z4*K!6J@&_z&}DDk{J)rgSP|xr(VHKOE5iI?{MTRe%Tl#E%5T@bY5|z42Q0=F0hr5w z{RO;VPaQm!M8Bww|BK$=vY?63(>%r%L34or`b+b39X0VnEtoQh#&{|AQq)>rPuN6G zU8T2_xrSE`i>+(;Mr0mMH-9~Ctg8$uUmBX>fKX?Y4YZc4k#9ZJ(q5|# zJbiUl5l>4|tLSunr4C!zR$u8Tz3NTPyp`I;#`R;xiw}z84r_$Xe|!FY=EQR>R$;zdvu+{51aC@ZDSWT53>160&NB5ebu4kDWB!mm8W#|Imt z5q66+5LGuqnd9lb5&ED@u@uxuX(&yZM7tXye2_^Wy4MJG;68RA@;Yz?bzrDUj$f`4 zd;J}k8?;8g;s5h!9IsrO; z6JLd^U0bo11D2|2Z@lb?xyX`!$|1Q+44k0KX4uI(&( zl8?t^D|H84rwxPf;i%FGQ^aBb+*+(6#Bw94?P8|h4I8aROKG9hQ)fg&yvsVYwfJb- z)Iymp`FgvpC6?&osDtbGr`rN4Ux$YWu`+1A?V#$UyCIJpub}FGcT>9PHlC zYZW82t92*3*-FGY_8hM}NV;2+VIBd?y&M52@MVkt(AS zNX=pAQJNfb?yQVcWvzmk{znM zn?s{FqD2&&BU<*w z*(%z-0@gI0Et=k>SVZUhHA_X?V-a8c0)Ax1%8nk<2yUSr;-+^Vi##DB2Cz8yd{>~( zc?VDeks55QE|6^w>ZU-{1;ZXyk_<@o;N##qf^7-{ALh}@x8I#cZV2MEx0J9LFc@h36 zj&z7WE@M?81BK^>SZb;PnB*tWY{$9aXI(~=X=F4DMW9`WR6S&lrN)6ln*DDO7DGS> z8f6HYZK-i$pyo#1c{cy6Xt?Egqv4iw5b*%Y>KNi?S!(PVt_A+Vy8psHTh0OO4hxjP zH*Pyk=jE5kq#|RJ*ddxnJTTnEi7mh^!~%ECjV<=;S~=9Gz=~9;69Af`^zlCNt{({-dp=JL%UGCk6Pf1xwlG zfRlUT#L=Y&P7b3w3m<4Q89!<>JD@hB{oKP(8vjbF;+oy#39O!2D4Z^Y`9TP$i7RO$ zf`I+MZ#bJy0Cz`CG6W261)fPs~~NJ`B{69V`z$Sca)UzHAI#81(l#|81~I+7E`2C+l5hMgH!*8mZS zp*JpL&$uv{+ zPqBlH?g~CGY2_b&hV`;GJPWZ_?10bc;=o25Q5t@M4eVGxxey=avF}tmpzsX2A~oer zxo#0BLW~Ag$O3LpbbpBA?AUBPFM~X`%{?;KNa$i`hGmc=HpXY;GIpqojqy1Q!OI{= zY>ZDDr|&+DP496&O*-EJ>QXck#ME(y*<^JYPH>J=;SMOajLylBt?Ic$%AjlnC9^r5 zlNT20_p#g{WzpC|ejT}`rMEe-M_ScMRe_`!ohxxDIy&Sh^!-n6qJ7s_~} z#34MHeUCU;TnYZcHx(Vi*tKP{q-K!Et-!u_a+&AYWO?2Z2b$&GeV9R0 z4rQsdZ;)K2`aJg2pzVDa%Ja<|1>$D0@mU17u;HR2l6xU(U=!!$%{jP;;MAd__S9q4 zXg@qTHi#W?%frFYngC%E69avL{O}j1VKZSi$%f5iA&N=oe=w^kxzW08_ww3HGH9K2X;% zLB!wV_*i##zzqxsLo4lsl{UDH+nBD*?3gS!(@vQABalA{nwqi%#7^QC5(|rKb~I3D z7Fweyp3+>X(D1oTqR=wI!7MW>BG@L77mrgh0H7r&pDByYV+X`b!oe`(+4-azBH_~! zxQ^i`&R)qj#hEP6cs5mij>;AiAj*diNzz#=drZqMC0F#n#m@?}**JjvRoA-jA=Mz$ z0?IO-Rs{Bq#~pDxJc#ExiKoUUvqQ9oof+miF(086)t)A}jHmE?3Jf;Pa-ztx>mY+H z$8$bS49_yz4wtQb-VEgV)V1dg5HQH6kZ1Xf;mAVsHj5A^PD27vZ8ODXov6Y7MvqH^;Z!+q-fArpv2pL;M zB7jL0)(}C*jOblN&50p_8Ke@lthXmvQfBy`8Bj^b#*+s|M|n zY~Ufm#XOXk$IL9`DFs2TmVK&JSd~M8(-d2$vwgWynOr(Hn;oJx?99-pdw8InsCXLV zGKO~)_8K9`?lDnr(>=(vNks%hAgJxZK0hj~OJwP|cL@!4$jSzBMI3mU```&YLbDgwQ7hOX zTwxP3*rp9#-IFj?-I2;rGAcrIci z2{zqk8pKjrI56fJm&yFB&@(ldR(-w=hu(-g20*7-MF7t+?`z;8!OlE1vWVag2;way zpGo4z=3ypDXKN3nAy2(IBsPE@qWPJjt)25IV+B5xg48IDzc95k6Xm9M7N%bADNIGQ zU}IBn&WDg;+|)+=tkBfRp8q#f5uXgEwrNoW&>R2*Qw2LS)xC&daR_S1vbHZgNu95% zY|2JEi|p9pkYs~Y{W+@eG?CXKNL@W1?S7kMW_et6B*)@EEP&+|HjAa9Hyr^f5 zrVUF%FhNcjYsC)H{LIi_MtKxA0D=3yGk+mA2@57#!idRohZzZno$g*(H;QFL7QC5= zNYYcOSe>60I&5}#XvMvlQSeEF$mkqh?2?#wvQ_&gNH_40AY=Z?EJCFGhsX{Z??HlF zEuKT}edo_1C2#nmCtUsa#YLnh{k!N1r*z}?Cv)D|GToCDk3@>q6V%I zyv!BxMFc%);#Jw!DYpwZD1xWP#;`-QhMgH26#AVtcAY`NI)g%)EH@}r7&HQ5%>Ooa zlaZWILxEvRC5N&6q|hD*rWE}tyBwbE#d`K2uwt)bND;|b_)@HaIf9j$6Hr8OHw3kq zQwJ}bYS;8;>9||sfIMR88?D?sT-BhCBMVn>F&h_A^hwXfJChJxO6774aalxYs zqOA%Q?4?N!%LS{^lGu;%>yOym6Kl%_ZTJ;y%kXNC*%dR(1$O+3nPvDKE@NUjZz4u` z;rYcZ=Vd&AlRM#cPk6qC<-EA7?1v>@!3>~~xk}mMpKq}XB`xP|qxCp1(f2Mpce0#U zHI0(zDrG#)Fp(IZ@Ag-Rn`QVbuA`>qygK}ctL3~U_@O{So+JdJtb>1y0*nnjbf%oLQ+VB|w zV($i3qp5hLQV(lf{37u#s=%MdL@IO3PW9(ZHv0^i_WKtyRUyZPU|P|dF$I`)ZLN2Z zk$3}b+exv){)RqLAbr+~!lRV&W&df#NgM4oAl=hSPbybvg+M0hcs(7{Qe=>QEllp% zQpJPIW2?b{XvMkClNMl!YMCQKRhw!DiJ?Urt005nNFGW&0)+)3%$cTUcc3HD%0S?KaT9kX>Upk~75$<4dKfRwtOhl|} zab2o7WBq@RrAilht*?qsPsYcQP_LIMfyNn4nLH1JD6eXYcf4n?tRRr&<;q#rk|U|h zm5M6WBznF=ISO@aW0htlwOe_1^pn0X5b-Ql=~Sj#Bc9s`kt}Y**v=YrZ)NJ>NbO#>DE3C63(1Nd>ct?Vezzz_aGh+mEIvePbJX{qW+!{f1@qr!f6 z@6vsDA<~Df#R`?m`H0RMPk{=#ZpT8EC*IU&I~EkI^k$EoLR{|St)j3+vPR0PU)Z@5 z|9ryw`gCWN;wX>sQBhDdzQEA3zF3lFR-Zq!%2(>C3PWl(tH+;<$af85KO5E4`I)Y} zBmS4mD!g*NSeJIK!7JC8x^#Pu(#*uG6z;%p)#8i zs+9N|)q77;y+BNPPf^pc+s9+Q5-4TWp%v?q)$Lx$>M~??K^+d6#mD%pTVX|7_l@jrCnQPM4dwiLNlv+bntsaQj&Bg)xs)dEFy|*KGcb)Y$%UE*ORV-U)Aw6J+ z;$!mI2@~evn;0$Ek`l0M3`_jv2~N5!oU&ESsr*i*w5c6l0im-op}ISjrXiS!W7cLO zD{R#X{`l?8xu&k8`6_w`mY#-m{PFaAuDW#oJ_&QqI+y)jKa$NSk|R{w#6o-$@c0w> z8f;<8Isb~>p^(AVmhlLQkFGPGuS^+jM45T2imFVq%~#p>DnN#S$M8h2!auS@1TH18 zj#T^N=bw~Jo0L2o5JW_%-mYd}dB|4jzcJA0e`XQbO!5s=m2qGU@rDec5h|7{l$j!H zncDeOuuG{BSvD7v; zY&w&K5i+c1cVeEv9mC%DBs%JR+e+lwfPt-~0z=&YVBiUQhB;tR*vN1web}v(FX78z zcpr_!@}$8oA=!!pt9*RL4b-!RHyBH*Ee}UCiy};Q*WkR!zrT^LU~Ixf@y2h+4WQi_ zEHajTkOKgA5DRCLc}L9b5)y1El6^pwAG0Ni0&nBf-8c6r)@4Jg@r>9ADm!+F#`99a z9;LdO6(^REannB(cwZ_-jrS^!m5gv1lYRK#CNfzUXPtcu#1vPkYA(LTcg3Ez?^T>b z@-TSwk4y_sQAHN_ACl~!k}1Okel@C?zbXYFW{-a)D{KQV^F=w)O1mvZ%So)(f#qsjd4?i`n0{=65!7Z-&M_yvtF^$p;rSXXviQve~CpHd*J)n+HwIQA$(ieM%+iyB&?+r)*Xawo@6!Ucu*yYVTLN(CgERwGAq7 zyU`d<=iyrmygBlJ9ZHbjDaB6Jn=b8F{8SNSb^x7jFKT>186@4ULhBAFwN;LE?Esbw zzjmMx2b2-2In?u@Qd|06IqocOEn5#NWy^Y3;q5L5E%O<9c3KElJ)a6`q2NW z>rCK#xYj;CGs!twL>7b)+3dTZG*pQ_w5gzqTlEIlT3c0JT9v4(XlS+QgSLdy+v=@` z;%^sQl149y60s+iN`gqx+Jg5vbADN*z4Q4b&-p&{oH_e4^FL=sw3LnV_!nV=7H$=F zd8y*Lt)hO6UGQkyu11900WL(lo-9~qmofhmW0#-$<up5*GTTZ$Sx(p{LSj^n;d-p9 z5(lJfl!}q9FNu-2ZDbetBMz!$y;y^J`rap!r+B*B3)bkHr3W7>m-3>Pa=%lXec9{9 z_@{kdFZRB=rMS;GE3RGn(!5|SoO(LM3$(;CeLYl)w*FJ~ri<>=T8C)SG@dV}ZnD&4 zDjm>x`||1@tJ^aHCD0>>=;MzCXR5?F<&iA+v-IJFW>fTb4ybNdv%2+#K`(SQ17hB> z6K~gkuFfi4+dtpj+l^;Yx)OZ5X$w2UKRi>+@#k8=%Xsy8cwKB~ugb6T6z{e_CuskJ zAh-QHV5#p89^CHn15ULeKa0Bb;0mApkOy5sMajJH zA-KqL;qQ9#jl@I>+$oy1QLD|kl-1I;az9oo#L#l`bTK;@X*<=j3u(<7%h&l~cJWgh z_KonPjXQvG%2yycX!Q~2?#G4pqd0IT~=dvUKdfImjnQv``D&NW_x$Dd!P&I8z| z9h+*scu6vE!nGG@+n?#P7n9Dft{0O=Rks(DI@PFdQid0=RJXq^7Vj-9x#k6NHsv1l zCBHPmpY7T$s!&uK&p5sJhz4F^93lSIh5xI5Eu7Y+@vO+3-rFM@lhYAVFo+V!GGf^I@et81U#0CRt=rWyzqdz37x(<|$^vUMg8?j@|WVbo$TcSoma z#9lGN+E$g4_lj?LSN-^XVv3bih0g60Ev(rY)^W^yWUnD-Y<){o)_i zR&TnupQm)`-qi5`cLwnkeLzg&8O*T*+}C_XPY;N;O*6fC7Nx3-N~OLnJs7d5N1RGS zytp6BO^2IaeC2}J5Hj5@Uzh6aA+NKfCn?-h<#^JU2gP#NL7sM^;%L(rt2PZfBs%eq z>@N=SD(MTA>F6O|jI_Qod&_mUy_wPEe^{(=&GabmE9)@(T1qvN`5yBPdL>yja;e7# zd1IV(SQjhVwUTxxi4eoQnlKcUL$VmFt1TDs_K&Y@Zvd{4tu>g<<=-;&9f-RY&XycK1BhFD;} zOFqZNRHqsS-!1IqtVr*`AB2p3-IR`Rj*AW^Z+g7&n`j#_|B31s)a+aJSD%lyQ=;qT z?k5y_LiF-!W0;&go^08(yOi9j6n8?54<0QHK# zDJED?AJNyDVgPUCD$3-Wxaa8kQ@n!zk7AmCiWiR;Jfw}MxRN)fOQ$#ot5EMOF)HZB z13QY#?e0Uxvi3jA#gacdmn8!E6%RMEL<^75H%lVb;7$7B5)ZHSsMl$}$!$tgPK!Fh z+sBuj-)OrkMEZN$d|JH7?V|8B=Qfw%8Qu%?0gXE&dRh7RX!9BIj?;j9{E>=u{&Yi^ zv*LRz;ZF+9upM6 z$vwd>R+|$jD4Rt`>YFWsE1w-%5|@mTy5(CBifBo;sONOBh(B`P&8aqJW^GX7OCoY^I8EWoQ>)3d z20xS;9a_@?_!7XEGXIaZ~k5;iUIcr=mAy5BO>H*BDa zcKK;J?myY)3?~(*QaKKsxFp6THFw%~i*Dv}8+ePFXk02T5y zy+@&)l{_G-8K=6Vv?q7(QE0x1;fEB7`8?e|ddv1`TVeB9{3&JOP(*9koT9| z-Tmkz-DuKv;l;h(?CT=PdR#!Ouk$E%vw-$p=cmOxspvXS?$=Vy8(bY?3wWVnHIA^| z|LM>RRiwuhP>c_^({~ev7scG>FOe?1!8U;_tQ?I8&HUpPDkj+MiF0i`jBhJ{>h>%fKm@%3`rj z6>Pa!tjpK2@Y~CYn^wr3^qD+6UH*yuOq}DoTgAwp5pe7{dYm75c0{TVVuS5d5N9N6 zK;E*>vMc>i#1Y??tE2I4E_r%Me+s!Rss)b9E{n^G+-KvmB3H*{%5C006~b#CIeY!@ zUHc!=*m%v3hPjF=-{Ean{jb@f@moK}-Qk=!FP4SVR$Zc8n%iE};hea`;q2k<^&F15 zgu?EM!F;Fp*-$%*cBaaBbxiC zXcw4swk%v@?GLtkIkfxk_I@A1yL{7brs&s=gGzbA&7CRc$6 z9LMk+ozzfz?*UJ>18CI)4*6uZ&fmk?bnSs?8#p_wEa=TDo67~gIa>!k=pjE?>p*iJ z3bl83*F&BL?xu?mxyJs7o<0=e+`z&giTa*xPqF_+Jz`aP^CtASABh3pCoP*C(ELicmCO^<()6hl}PJ+ zCQW`ULOk7-2jn-u?tj%|9)h=?plgpseGk!@J8Io4EFr%qTz2EB-xJQ4hBQqHXQC%+ zI&qfvKH*+^7iBA4e^v*>t=NaA7mD6A`zfFGr-Y}X{ivcde=X<#DjipEyGTB>G_dDT_^d1)v=t;w;2~}*=?Eb zW*X5FC)v$9lv(E2cMBKw_SuL&f={GM&TRK`dAp9v?)_)&!f39tJ8`n?deskcac-aW ztXx}*S3`?K}vqg{hJ;@4*bSj_GL?Jj%FU1I=ILY)|2D< zbir}j>moy}U7F1wzHpT-tO=l@)Ynxuw*rBl^tC$M5`On(&`np_)Vh>mU(1|I?cHQk zo&}C_D~($C6Fr%X3F-JC>`?y`;9!7;~OE_E`uQgu(6X>O#O zo}6Cp@w{Yc-8T-F)s4@Nl-3QN%%|ik=DJJ$TFPqVUBFd-o|p8p8XU3v8>=`?k121b z>Do7vBD`fPcQ-yheEoN+m5&S!XurSg`V)UCy}mto@oQv#WH0NFRDHc8sbp5+F{*2- zzFupZSw$Xd^L`4)qC#sK$2zXj32IYQt>9$cL3`7e)nvQCU-p!x>ha-cQ}y^T-Kr+T zV(PXmnF`jlU6^<$_g;{OP6-c>-sKC}4~o^CWs%s>Q1whD1BJSyYyYglqQ4mUsVLZ; ziyHTN(vy;VfWGyWSFD6Xmb*!!~dpSFW)(N2pjjTE`o^?X_y}GJ}ED}PwdD^1f z#UbqGfnK@qC^t7v<<3{`H0{n&?!DTbrQDmf`S)?bx>UECET`d>Eni3PuCj%zInXhqkF4)w zdChjLeq9bSt!=Z29W@+YZ^&LI-;@j*Cja9)lluqGf^6~}Ds!zJ{DNsVu@YyJ&l|G7 zqfNBzWAckIXAhUh%~_6qBV<+6ikMC@!(|{%7$&_OOGe5Em3WWvqRH|_t2Mt+uCi6l zkv&;%adr(GWnVg#=6oP)QdGEfcI=oYn|nC78^Ud*)okhOcp585`SA;MMy-%_t!m-a ztQkMVUAKZ?QTs_}%1Gr_^xayshBK#elB4BH>E+C=u=6Te!~DoGXq7Cs%ps0f*T|pi zne!a3$uh+>_c+p1n$3e!QDdETaJ|(GS@|ZJSo^1`!U6xmS9sAkY7Tsh5R0JBjhH?ZCb_{ zyP-&eOoluLnF)CT@(ScN$O6bakWV44D>`8U(hbrB(#w{-&7leuzL0*9{*Zx?A&~VT z8$vdLYz`R;*#@#5WP8Ytkl{*3a@Kc;A_6iJG7548Te3OWO_74!gjUuSqpgCqPpx9Zlpw{-D` z=4m;7@;H8+ZWzAmU%A7(P@j*^<4&`urxuPM`}8b%v+lfefs7%q}QOS~JqQdFUIjY)@n@NIqZ1o#^l zHltNLwlB%J61xc4rI*;XYBwY7Z|tVP&bWarXw!PebAPpqF_yzHw8XI8b2HR-;)($$ z!7dthqyPSbMlS3Ym)QM}>v`W%5eqPkBp6O_)mkOQ&M6m`;di)cGzp-^MbgjT&$d>l z^`WxUgPn_El+8v?sQ|y*($8mX1s~t3jIUACi#^5hU&7y=w#y}E?4LTzQc;(6h=wr{ z`oaqOsnGkO)|J@51ATY}{S4^GR?yGV`WRzzg%h#xu)Tu*L+GmUu(feqlFAR9ry6}%HN3i>3)D*VGZF#{)# zfYTuppw9%Kg-nG$2mCu^A@tY5cObJ$YQa5SdMEx+VgbluACVY=RC&F z7PMnyDVP^$+eZReJ>*fxcVK6YMj}{%cY!7NAlMF`b!lK%eLluG4uu;$oB{Js7WQ!o ztftlK$Oo%tqK-S@${LMguqW7A=me@3q7DzRdi-dYN)0G{Y=vP2fvbQUfUAOAfYmcM zb+iMQ^emmg)%9tkC%6WgJRjT@yae10yc*mc`~$cL*a7YdJ_zmwKBhUwh=3vs2ED0IvkU4qgu)3f>5Q1H2tP415s$f8e9cDtsdviqkL{ z4!!~&0lozu34RE+r^2igZn_Bgw$(no!FmufjGAC=Wf*nc#@OK-W8tA0490=mg2#h9 zf!_r80#5)(fhU6h0iFaN37!m|;1;9fqJ9og$2%~1OQSIxJQX}2{5E(ocpCUC@H^mj z;OXEW!T$p9j)7tZ6v^P3;B@f2;EQ1OtWg~WV15W;AI0GJ!9MOffwRF4z&hW#{)Ivj z3xkf}Ip7HJ2jKqTx!@7t55ZHx^T4yfAAuKw=WC8JzJekS2H$}ffVY4@1}A~z!M}nR zf=`1NfiHtU0pA3FYBT3UF%*koP^ps6vd_RZ!JmU$fR})~ftP|`2QLFp1AhTt2qwj< z9M(gz90osuSAchcSAtW(UxG8hUx9PLUxSOltH6)ItC{V3P{~85H~|L!;5Fd-;I-gZ z;BUY$g4cn2gV%!xg1-fi0RJ1|8xx@T4hGY~--G9YH-MLde*muq{|CGi{3G}`@J8@; z@J~AZhT&XU=RhJ1Ji(j5wZNOf4ZuHxL&00X9l%?`-ND$Kg7<(Eznibd>(uVd<}dUTm()A zKhhjyq(C7&brGb3y}-YKYl73jb-_o#&B4Ed!@&OqcLg5>zicz-|1l_DgF!kt8k_+h z4?Yf_2L27a5PSl>4tx^46PyXQh2y`L%Siv2)DWHcqmY@97a*@gK7^EYw7myp5M)Eh zP{{6(10i3B90NH~%NS!C6z@UKfsBJ(0l5nDd&q5&haitZo`L)w@;0P@#Ut1%?BeJU?lRrU zDXIGy$Np|EsV+;rn|L}FyyVi&vUnNY(MXpT?st#(v}?}Y<0M~kY3F_)eE&H0RBW8k z=ZzEek>c9m+9xQPxl$-N^n|n@>(=h;68snC(7#iD#Y*=w@08q^FCU#V+Kx_i4#_BH vj=IfB-KnSI=pLG*d(cOU!y+|@MN)Eppt = Param_Pass_By_Value; - - if (type_is_structlike_strict(local->type) - && !type_structlike_is_simple(local->type)) { - // local->type = type_make_pointer(semstate.node_allocator, local->type); - local->ppt = Param_Pass_By_Implicit_Pointer; - } - if (param->is_vararg) has_had_varargs = 1; if (local->type->kind != Type_Kind_Array diff --git a/src/onyxwasm.c b/src/onyxwasm.c index df11a30f..2ea7e1bc 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -1306,29 +1306,27 @@ EMIT_FUNC(call, AstCall* call) { for (AstArgument *arg = call->arguments; arg != NULL; arg = (AstArgument *) arg->next) { - if ((arg->flags & Ast_Flag_Arg_Is_VarArg) && !type_is_structlike(arg->type)) { - WID(WI_GLOBAL_GET, stack_top_idx); - } - emit_expression(mod, &code, arg->value); + b32 place_on_stack = 0; + b32 arg_is_struct = type_is_structlike(arg->type); - if (arg->flags & Ast_Flag_Arg_Is_VarArg) { - if (type_is_structlike(arg->type)) WID(WI_GLOBAL_GET, stack_top_idx); + if (arg->flags & Ast_Flag_Arg_Is_VarArg) place_on_stack = 1; + if (type_get_param_pass(arg->type) == Param_Pass_By_Implicit_Pointer) place_on_stack = 1; - emit_store_instruction(mod, &code, arg->type, stack_grow_amm); + if (place_on_stack && !arg_is_struct) WID(WI_GLOBAL_GET, stack_top_idx); - stack_grow_amm += type_size_of(arg->type); - vararg_count += 1; - } + emit_expression(mod, &code, arg->value); - // CLEANUP structs-by-value - else if (type_is_structlike_strict(arg->type) && !type_structlike_is_simple(arg->type)) { - WID(WI_GLOBAL_GET, stack_top_idx); + if (place_on_stack) { + if (arg_is_struct) WID(WI_GLOBAL_GET, stack_top_idx); emit_store_instruction(mod, &code, arg->type, stack_grow_amm); - WID(WI_GLOBAL_GET, stack_top_idx); - WID(WI_I32_CONST, stack_grow_amm); - WI(WI_I32_ADD); + if (arg->flags & Ast_Flag_Arg_Is_VarArg) vararg_count += 1; + else { + WID(WI_GLOBAL_GET, stack_top_idx); + WID(WI_I32_CONST, stack_grow_amm); + WI(WI_I32_ADD); + } stack_grow_amm += type_size_of(arg->type); } @@ -2040,7 +2038,7 @@ EMIT_FUNC(expression, AstTyped* expr) { AstLocal* param = (AstLocal *) expr; u64 localidx = bh_imap_get(&mod->local_map, (u64) param); - switch (param->ppt) { + switch (type_get_param_pass(param->type)) { case Param_Pass_By_Value: { if (type_is_structlike_strict(expr->type)) { u32 mem_count = type_structlike_mem_count(expr->type); @@ -2170,7 +2168,7 @@ EMIT_FUNC(expression, AstTyped* expr) { if (field->expr->kind == Ast_Kind_Param) { AstLocal* param = (AstLocal *) field->expr; - if (param->ppt == Param_Pass_By_Value && !type_is_pointer(param->type)) { + if (type_get_param_pass(param->type) == Param_Pass_By_Value && !type_is_pointer(param->type)) { u64 localidx = bh_imap_get(&mod->local_map, (u64) field->expr) + field->idx; WIL(WI_LOCAL_GET, localidx); break; @@ -2483,19 +2481,18 @@ static i32 generate_type_idx(OnyxWasmModule* mod, Type* ft) { if (ft->kind != Type_Kind_Function) return -1; static char type_repr_buf[128]; - char* t = type_repr_buf; + Type** param_type = ft->Function.params; i32 param_count = ft->Function.param_count; i32 params_left = param_count; + while (params_left-- > 0) { - if (type_is_structlike_strict(*param_type)) { - if (!type_structlike_is_simple(*param_type)) { - // HACK!! - // CLEANUP structs-by-value - *(t++) = WASM_TYPE_INT32; + if (type_get_param_pass(*param_type) == Param_Pass_By_Implicit_Pointer) { + *(t++) = (char) onyx_type_to_wasm_type(&basic_types[Basic_Kind_Rawptr]); - } else { + } else { + if (type_is_structlike_strict(*param_type)) { u32 mem_count = type_structlike_mem_count(*param_type); StructMember smem; @@ -2505,10 +2502,10 @@ static i32 generate_type_idx(OnyxWasmModule* mod, Type* ft) { } param_count += mem_count - 1; - } - } else { - *(t++) = (char) onyx_type_to_wasm_type(*param_type); + } else { + *(t++) = (char) onyx_type_to_wasm_type(*param_type); + } } param_type++; @@ -2618,7 +2615,7 @@ static void emit_function(OnyxWasmModule* mod, AstFunction* fd) { // NOTE: Generate the local map u64 localidx = 0; bh_arr_each(AstParam, param, fd->params) { - switch (param->local->ppt) { + switch (type_get_param_pass(param->local->type)) { case Param_Pass_By_Value: { if (type_is_structlike_strict(param->local->type)) { bh_imap_put(&mod->local_map, (u64) param->local, localidx | LOCAL_IS_WASM); -- 2.25.1