From 683296b4e825f73d8d14334bb1a4fc2fa1abce79 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sat, 25 Sep 2021 14:53:18 -0400 Subject: [PATCH] iigs: tested, unworking uthernet-ii debug stub --- UdpDebug.dsk | Bin 0 -> 143360 bytes asm/65816.fnl | 2 ++ ssc/iigs/bootstub.fnl | 16 ++++++++++------ ssc/iigs/u2-debug.fnl | 24 +++++++++++++++++++++--- ssc/iigs/uthernet2.fnl | 8 ++++---- ssc/init.fnl | 19 ++++++++++++------- 6 files changed, 49 insertions(+), 20 deletions(-) create mode 100644 UdpDebug.dsk diff --git a/UdpDebug.dsk b/UdpDebug.dsk new file mode 100644 index 0000000000000000000000000000000000000000..da10e9ebd6cf0ceac5489b2b80f7fcc523fe4335 GIT binary patch literal 143360 zcmeFa3v?6LwLd(Xk!(q}v1|;8S2DaUAmAkJt;*B9Wg`p$!Yi*yTUwa_p$TmXNpGAK zQI~iexlI~7se>XA@hBcMPC~#~4+DW(E|3B9uu}sj362fe3}D_c`hG_;ko5N6^TY7D!O&%k4 z6BwS-w~Y5@*@P!-oHNsDbN{r`R`Qmiw&t9C)f4CMZwL%Flw2|dMi@$8HP)Fr1cNh6 zSnsC7H>A-{+d6Jt_B#8zoOLs5*G;ZnH(f|{KI@#xrWzzi%d_}5-8(%T=ei(LiAkD7 zd4-^rX>Yc9#h}D8S5nJN@62o|E^JgDcWc*Wi?qR#TvnOgNE_t8=bNrtlrSrgb(<=) z!x8z>+RAL_bn-Jppq$z62iDD8_iXLDS)`?2q@~R{Eja|F((as*k}ZF0r&#+>_=Fl! zw3(5AnttUQ@$AUL$nyYqZ90 zYqST}Xyy3qoM?idU&B*1N<3;11Y6v58Ng*^H0LF^%mph-mT>jM>? z_<9XTu~cX;Gf1+FuhEudWm>L=&!dIW{A)A{_Qem99`&tHbJL(&4?by7LAODL$%9am zXB;H;b~BY}zWkIlC9yKC%-h49ONY~3$L*A!f4zoXblcs(Y8hKnuFE%F%TV13Ro4cV zd=?kIIlTAK(eUBD^=|6lABtik|I_E+6#5sYfHq!lFeW4>bxSs-q;^m1(X*Gicb~rf z`akd>J7D0T!9#}r3y+-)t$Ae4Exk9<@}u-QbVjn?piehx4Vk9+jwyy!v?0%#h$YI( zKB!7;hiQ;N@wc?>pH!?}vT198Iz2{-6R0TBMXn1{%EgefSn>SK?t)^U!R74^GZk7c~>J1Pf!fP~zkw}3W0cb2C zX!u>HuoCkTRsK2ZiX|b7UZxd$A!~nwwdb?D6y^LGcQ`Cxy72iI_3j<+s~=Z~o?!A{TUAWZo`apcWQ+O?? z+(%CFyc*E6;nOaiJX4?sQmvDzhXxxAgQ)=&^~hi< zp8i)5`O%M0oilaXnzwk~{Asfy4^i=yEg?Fz!ITD@EL1+$)31nuO_@4s z+M@Y)kx>^bDKy*t9$4mrPjx+kZTh5n^QX?6c^58Dqv=jjgYJP9Zca5N-v=8tWp>VV zz{Yh)-_YwA$G)Zt(g(0<0Gm5)($rbg?jobKy#RLcJ41M6@PEY7)KK()>g;<1r6M}2 zAC>&Wd)U~nzI|t;j{s-n*Pz&w_pz~EBkdYO7m2CJ9ZE~B)!oOoIh7$pcsysGZEjZ1 z-JwSOR3GZojQe1-w&@6YC);OFnYnP%+^N%Y$T%X$s5B~L@O`kyKOJoZ*sQsure`h6 znm=msBLrjQENDCBKHaGG`vwxO&YCoH+NgQ6CfV(y=2$7}b{Yt>^xhCO`bP%G#U!1f zZa`K>MTLd5`~44OWmpnT#ZhJrwIFNS!cq4LeY@xPSfSC69?-`?#*sCD-r`Y{XU~qw zKx90Kx8h#Q6gzsr!vyTH$1#SOaFQk?!vKbk-eoMnEKzKe=4DN}4;QgeJt!*uKG*{T ztYjQhX3tril{Lry_`FfpQ9qy}6M^gSiu+(sew^5yfK8e|YU=DM^JmYE4m0xh_ecBh zyZ>zzm}ux)6WF^SFXx=c`^0h4^IPY{zd{}E?^v3kz&hg$E+1}~Pva_9&jLyfr)11S$j0pUp zhV>g-hP8}u880zN`txfzZ>G^X52oIH?>y%m>zT)tG)dbs&qeQ>XJuCyymQR#^9K2A z_p9sX>eH?J<|+rx`h4X|prFQd>mHjw`}A)#_ZqFqqp=x~kA~7WYFvXf3S**jhiHsg zOVTJ!9yOghG9;p*4q?++qM=NQYG$EkQtUSl3bJ*A;e zQUjASAZVSYmK3*1h&*PJkC#=Nl*5)}*sfu{D_rJ@t28}z*kF`{`E{mF zH&t6{D#?RFS>iG5&!c5UaF=W{6z6v5w~?{berAwo<9f(%kY|WB2Kh-bWC(AR9>-9{ zpaG+f4Ooc_FHkb&!Ck}dCr&XaMvzeTl7^aZxx z;SZ^S9e4P{s=)FesxBQnw^{1dZ3{{L`LvWoQVbgxVlSS=)ez#`no77xYVnihq1;qq zg<41*ue2$P!jq)={2$ehKdNx781lkfWi4N!)(VkQ>NxLH3(M90e^jL(R@yADw$_G6 zE1BVEU9{yHly>-3Sx0^n!=sch!x^r`@EF(O@FbTu{DiB{Dr9m3HPWY=v_MnWiVDiP z!au4$(Wiz@QgflCR+OvAt&mi?$ShU>nfOjf`74K^z=M#f^eO$%P<~}*>2E_Dvh#~F z&0K41bAo(I7$VccJdBA9Nx2f%Nf(VifdX*pt0B%ijn5Ai{vlMbA+)pbjgYwOl$_+? z3qlUQ5dYr{y(?ai=eM8o+}uW$hEKN2*TvUDijEDRa;1yEBdPtTTn~s&lKSG5D^2`8 zNgY1rGIs1fCF=wYn;7!k41`aV>I=V24;tsDn<*#cAm7qbW%&%nGj?H$?RN>b29tMNjQsui|x^j zx%_shJULXODb}yac`xMfiKQW%_?M7vgRQvY{ZRQv+;xWR?vRiU76=;fLd!Osl=iuG z`ZblAC6lRq`TCY=>u0yNdZ#LyRxHJmp8fktiAgteq>6WnMR86+|9t^dh)8it2vWTK zkm{VAEsgXrf&UE2JuBuM4_I|JVH2CMi`DNkd$jJvDvGwmJI5G}OUD>r($Lm6>FqK3 z`IyHoW!cM?Ez^zTT_L^Y!IwTdj;X^~+v26$x$$SlN_1{~S=El?>BIS=kas-)r;v97 z|HqI6O_W-79QEMXC2QWVWt=$;{McMH2 zFi8U`>hxEvSbQ8M4hO*ml#cMvT-vsuw+_{T~&dQoO?XHykm#cky2t48@AGaqq+mD{2Hl6&R|51^DK#@MhGHK2n`!tr- zuK_atjT(CcU~2vWtm_uK`~UFyC#AEfW<|%pULz-nS3B1C`H+|&%8UWo$DE4wKua!z8$1cy#+9y% z)S0e(G=X-e^mQb!c_%Bw!&<3-7UP_(=r_-hyL+c+BtvA|8G+_I80!vu+8$vTL~;cD z#{y;6+dK(@b&3X=F3-jZH@3{6qo(c zf28Mq^4PG#EC@NA(;PO7Nj77cSq%yeiw()=!d6a72A!{HDjl=Zp${rta5xl5|3 zhf1hOeoaKa;-S`$t6M+8^Vs_Ft?MU3vzaW=&M8(lWe-R{G=!lK3w1mks(2WqFMTA$ z{a>{ltDF*Mw7^nK|=P0J}7`pZ9gqd;2)e>w0rG3sdGGtBzwteug$XTfSjoI752x zamMtdaS6kFPb62|fA6Xvo-)xmyno_wQa-#t{>RGiUjO@{>erBE;|-gwlcG9JRHx?Q zPIDd>5ZXW%kWCujCZ>!OSw=4TG6v$I(@D|Ij{-0Wdpi46nw;I8y_fcK_N`M^6qb#E zuEGl=e7KbQMqoBz^d$Z9chWmanq4=%qHIJnqjY0ihO=)Dw;#1YL+&?%y*}KYH5{b^ zwYis)SXPu)E8lAAv9FhWWphtOPwqeO>AC@MzyPw?y42(}x#*S@&f9%&4_AUb(wn+B z&Be%rxy`+b%}cvGyW_Wqvj?f3Uzu8zRxDrN*JEGzeZ5Qy=cc^9lw^`yE8l48(Slt0 zqPM4Fh-Q7>Q@+NPmyO7;G=s@v*$Ber3#f$qc_WnceD>3H8^r5Sx`X{Hos!eVl|#df zYqYPm@Yh2HrsA9Q=Dl+K$d`tiXhC=2*F&Wq0KEs9VX8Qk-nv0<*_Yx?3D?M_oF~zL zG`-3c3U89*t5QPYlSEw3bKVrPui3IK@dz)auzM_yGKbIMOmTe$&s}l0Pdt=fdf}M( zb$aPzcf@bfOSwBx=3=s5oDGdq+XmkxS?G1CkbI$~!~}0*NlM5*$-)NGCB4-hUulvx zW^TP{T?z(gg0}JkVWBgP{PZ9{J;_h6jHfmzKP9PDr@7W_Vl(sf-V{r`u?)!B-waD% zX41BziNc3NM)B7}(TSiA*O_9!G1RSAnuu27Oy!^oxpkGM#?E0@S(l%0>NIlloW%N4Mr}%#hytgYf3k3`BOzPh zkx40OgFrViWc!O&R#J@mkMY?W+Uf%#tmBmW03n`2v@u*ZM*pOgQD>=RQQ`g<4lyt zkztY;9pN&9bbZ|kl_p=E+#P(3M(K^hYleG6`H z_77?Uv@B12z`&O7fLLGi^be%4rJ{}`hXzKorE}s*vU^|wTlytQMqTG!I%q}>_uW+t zi+$Sq9_vkYg@p9{nxRoP2hvx*G&IU9NcEGjsfL6jFdKe7G%DYW{RioU{}v|9Smp5$ zM6*8In<6JUQ>}XO(lEe@mxn<#Auj2zesu)*!8JqiEnhRVHSj25WdIC)G*oA1Umu1^ ztHNG)*Wb9@d8Xa1T)Ob>rPJ-O7GW-)zVz)GH!<2_&wt;DY^dmhCxy`u#pJ&GE_rT(tiz7?yizE0_nbf&ZY-5Ju;!GsIXsa@!d6zP*Syl!K zdChT3Um>&ktejl&z^!Ic=_bg{8)Vwb33O4K+~1jqHACFeux0Au7+p8zeGf@5nB#-$lbb8iN*s|qO3bW>1D<$Y0SLKSWX?6?di$XRsL7fk4@%yb-xcKD(4{c3(uj(m$RS23~W2UtVv23x?d0+yZil~}Htb4@67 z`07mGf`ENnrLi7LpxM%M6;9QaToy=al;cXN#!^#bvBZ*2=#Z6>$QHFqDZ;{$Wom{I zkZe<{Fv|6Sjjj30QCpM~UMQPtD+CpTDayg#RHh0GVU<&juy4!DRV0dXT5Au&;_bvO zI+l_{sK#<k&Nj3q3RW3^j;+v`xZ-41)!Xt64nlw(8l~t#u zi=s!(R?flVXa97?k}03&y{b3IneCm8V+uFUNk46w*)sE>N5!{eBl*gP4!0`0)htc+ z!7Zws#M&;3AE-$lRhcSpmiD70TimEFE333Qr?+IK*vzo>y{fg+wl7PnaLy3Ds`8 z&8~W|!K@gq{ARVv*uZa6%imYM*-m@K2P(Hg)?-M@Ty(gu(q5D!J-k8bT~{k#_ReaV zP5RHE|1Gno%~Vd8^lhk$Z-A~pLWq>4HQ<~9Rr0=?Z@P(ryZYJCCIn82W3{)DjEW9A z$bQl;eFL_s4>W?ChP=|0MgmARxOK#P0FD)^{2MC&d$p|M_oTH#QYa^Fkkbo*C4vI^ zfnq}(yhO-9F-w(A`E_z<#~W&up#i%jW_q!u84@gqz|}1m**7lQ*c}%g77Zp!jy%{k zgf!Qq0knX$@*k*GJsa9Ls{8?!_ozvbUz1?B^9qQVbO6oU-%`lzYiBDjLLwOZf{TQ! zC)tk__NY!s#O%Nva?a4N*+x01ZqqoY5$w@f<%tw}iF`Syw89^7&$tE!CZDr^)$Yj_ zOi7rT5crGj(f}bOr=h@O6T02cO%PrMx*zKsO7so)R+xBp{sos_n1dA!qKI-46wwNk zt(@nq<1UqLC_NTKyX$QXAS`S^7+EDts8hBqVNkunJikXNZVe;lM`K)y++@o_2(o3o)ZJ%3zM*F7;rc zDt9XHMi2GixQQqM(&dvIDvRt5;~--XxTd* zd&WpXV-peyEgc@4b23EEIUS3nYzR}b%D=3luh#aLNy?QRrm;-8)yA|2$j!KR%nb#e zX;-3sWxIPlNJkb5xVM3P!{bvTW#u_;mSc(6$aIo6fXL$JevOdba;I8lYCQ0+3Y%u~Iq8AeJ^!v+UZQ5`*m>uq1d`RS(a66; z_7aCzAIJYV=k)b6NEM+;zs5NY3e!}~!n(Ut@;lS9V!i67 z1E~!~nXR=oI{6BEHVf;h7Wu8MRyfQ4qPp}adNjbKYN^XF&eF(aHHGw9)D1ZDtqOu z>jYQuXH|ShYjiX*s@Ba5$#bS6f0WC2=FkE6<<(t{AJB2T+6~(HoL%RxtPTXyr za3HO*O;eKADCvVe8tXQc^k_7TFRSIRs2nNm-bmJxMjy6bDVglaY4GeuH)=({!E9-U z`tY@x!`53Us8$X`5A{nC+C0``H^>=R! zq&CW${9-apuF$30NDsR=f};-CN}mO;N&_mlN`Cg~R%ts2djy)XMJe^Gb*3x0!vg4z z5Pj+Z6dzq7QJtW8$l6*YquSNi#iqUjXhvX#E8C3?0DNf8H{D>zo{`3|YAaUfZ{T= zp@;-AS}n;)VJbnf%C8#n_tMnHDqEzqXJeJ+@1=bjTWjUBW^RKGO*EHt zVqLy`+3fIPh!BO^s?^3(yIR$!u{2xVHobJV8nCIQ1uE9^GwjfB3(6rd<&e|k))nPy znH+~!q5t9@oTAF#4UMc&O`5U-kxXeQpro~OQFVYKCM9DI22DoW-U?l}k*I7J9X?PA zbOkuH{~2&`O&3MA3~Hoevc5zecXf(yk%i%HEDS`DbYPHca0Ti>N_ztokkCWX4cG_Z znqQT1==8cU4PyFm=!75B1h*L%qWHm1qLs3wI-xPaQ76zI3M#6!i(Lot!5FOyBTVIl z=^Xpux5`r3k2YA9vfS!UAu3!gKU*d1DnCah{drIv(!>|2;?O3ZSH-j@4`m(h(zF`o zo6R~!D`aD?Kha{}cm^KPzD=bQumfBpBA`eK9&KP~Q|TCz!-+GnPZX+H7UyA?;vZAJ zGx)iXG2~-o6q;~?R_nA$kCM*FNticsI{Q*f2d=Co8JZI4T2Zc^0BKFFwUsuKhzEJ) zOJ)umr&YNjPFKxKZLaE;EVJt~cEY#PV-V=cC1Z(l2ioyDD!K{TVxRm*birxtVcdfQ zu27K;e80w)oRj*vhg8~X_fB_Cm*XmJduJ%y2oXR5S2-ulg$7MEC25-EP9kK@;b!@q zIjVstmQM$@O6IG@h_7+%w=L37Wb57WxF3ub<=6C*uU1{W1E~C(Wci99^Yc}aZc1XB zWP_V7Sf=I|{6dY!wZI@N_LVnOwy4F$i3Mu=8>-77n-1`*GDJ2U94TbT!S{3^r6bXpc2y(`{HA2 z#axvL=ut2SXqF zCIT>@ut&*KlxIat69y~}Z{nw`;;^QQbV47kkYz>q-R7NP!;s*So8fRy-yk*fbW;Hc z2n0tx^tNfGk-rBtO>a-DlP_;5rLhW~XqBTvvK@9*#W>P_#rQ6%jgEGL>be#it-E`r z?WN{BP%DeG%<^S|ve3T&D-X4ylxr;i>33Z4aC%`=_ z$PoDch?T-RPcAcKF~VYV93q6(>?(<4f`G8M`Ja*Bl9g&r98~5TclcGRc=HbbOTzD8 zs2~^rk_rOyYgJ5JGcFdq zuddRx7Ji`W&BaS|oH_8@&Q9l`^X9;yn+>(XUU{0>7Y{}43uVq_7IsqM-v4+3m<>>o4LL zW>o2`sw)n)0E40qs9#aTgX=Q8SQVBR4gEVu&Sby73{~hmcGVV`RMHtT-oeCpj#qw$ zSbw&ByC7fX|DdwN+N4C1uT_%SA6<6!w6VOxesz)9kjSO6=e>AYI?L|43><&DV#te{ z3HKD&mMrKAz9JYM*z}8tF$$%B19W~u+Fh6CX~ z9X+2VuaBC$Cw9ykLfCD($8PLEL{AU;H6x#&vFzeauk?7Dh+?xb0Jh9!~HjjzU>Yz`BHrxxrNP(heV!fqriXC@&$ ziW1E=HuyL_+HI3d0}S@fhy0BE<1N#LZtSCso2fd?lxVwQK@n8`5L4{#MjDrI7VKu+ z@m0r|l7Xa5M3rX?{7m64rrRzCvk{5Q~_h3%=pl6y_B;d{Dq`7nB+MAcQxb- z$Qs605n{-R-9)|yVMIO@rR;Yjg*d+(VjL(+lhG%$X@}mMYmU^8f$%^8Rf~Q@HAmmmCs6yzas={+D+G zkKN(Z?*zCzyyXt0VoK>R@6^fH$zWIAkp@-_za#grXg^loaZEga3}IQ~xJ)3)sacs& zqDEM`|Ct_LLR$~0%t;iL_uA`AYj*A4^ZDL=f2|GI{cZn&gI`ecp~EzUn$|=j3`1$- zHFUg@)@T?;tJP>|IzrR*{;w`xm#)2Zt;e-nr|&dBetKmGbIo(1-=$ui>pPpy?K}7W zm5Wz@eft-;-5+>1t<%ND=VxWl9Qjbr>^YCkod+*9P5p|ZqLYM|RSy2tGKIx*{Cuc% zWeBd-R($H%k+-uVKVB3nSrj@itMUct(=nsLwgJ>Cb8z0-VcJz$aX`g-*rt&*b>^ix z8Ir@x}gk4&&nf&G!aYD1mTc#JVH6+JWM`BeF9>DI1V=vXTxLDybuQhE-_VkjYSh` zp$?n)%S@J+?_}(h$-{Uj^I%<~`~148?qlnw0p0X4BhwyfaCw!g#O2HV%6CNldnan; zo5+$4xG$laaAz+$$BC6{#mA~0yZpy0%!*3Y#(vudO#%7>CKlDiSE?d)g8x{BC#UF^ zRs2M4Gx49O*zDm9kEs_0MX(u~!kQp;LZ)2_s4p4Ii=fuss+GSs-_<-gu^vj4Pl*E< zz)PqT8_)}w@|BrBgaIdq{n7;I%zSKz+42wX@`(^S{hOKc<+~ZZqijRYC9+*o4aSm$ z2A_8(7z~?bftB+GR)+X5)WGwhehmmja_DcE#lf}=S6VpJWfq7}P~5I2eWuE*?RRd9 zxGuMUepATfcVbVwB|THVQ{DfWsx0!vqm!^Pdc#OHz)~&!TqU6|l*ui%kSM=Oa!l9q z3wElW_`+&6;D^50|8rH@5%|2zzDZ?&a!X1gdXc`O8o-Sif8okMQ)}6u-IA`7?2EWl zdY~cabkfdOXeXwJCva@WE$J}n(Sh>qYAuXn)Y(ny1aSYIIu-Zom^d<;7E;lIie0-j z{Ny(IA>vic!`Z7G;-QQA%zKkK2bhaE$H!5HNdbZ4r00n55)Ag}Fvw3}(A>nikSevK zUS;EM9;{cTZV(i)QYBnw;2$8-&iU#Aq97m4QV-fxcKr>g$vy|%Jz))TNQj@RFQqlY zT_J8$U+U2aZv`Bo{TeyfXE4NU#CtLsU4dB$g*$2%J_<7o2ib-;!KFw#49%SkydO0E zum;LMglrFKJ^>kBw!k-B)cJ@wG!ct_4LFY2$sW5dO=iEj4tw?l)ucx(Ca&Nkau_dN zHni3vS8g?PsPk+AvG9>`yhjDVXRPO!+$@4@F$i z(o}Rygui$UpAT0VQ7)mAmOj`3y|dH^b&~|bCWkYv@?t>&+rYc1HU}G;eS~;%;HrUg z2fq#S;ZosOt2Q`W_!nW(0`M2A1CAWtLBxe@EWqGSsp_FxUiHDy!U3QfMpB~v7$UwM z%3>b^amdk1cT%tioQ&uLu?iXKqQwl#f@H)zP#BET{;O|5W!HGb=*)y{-4VNsvgp;A zcfh12Vo6*_#|;W0O)etU@O9xpWPB;r2;~?N@))mSdt?x8IT}LSlD(ctM3*!B#QUnN zS4??EriY4owrg9P8MzbV7ZG&WL43yicDT49^h90dKT}t3SH&G_5|+;XSURk28k7sP zlyvYj)uaarKO+?YPDC%U0doqDV9Y6$e5&%>$h^_ptg!|w)sn=9Ds#h~Pt_80Lv8B@ zi$*?+HHuIZ5b*yKH}Lu!NZ)n9zprNH#r*FixZ#TTInp;+^)~j*6?S{)y<42cin&UA z+;x@SHy;JK17LZU&s7i1hM#Kx9K_0^rtJskV1=^t&XA6q8^GSG-VNZcha#p!t_r$f z=}T-Vh215euhKO{wOcsCiJ6uJxBC33LEMK_@7G{?wWMDI%-jR-q7C9Wgul{B$>*p{{-8i195fc}6zh#OS( zZ8-2&$b~f+p;dNkr(|arbVg6b($XXZTHxz)9T&H%$|D>>JBo}op#ecNX%Jjw;26~q z3n;-C1%W*IK%=aOC(80_X-cD+lSUC#@`(G*p&1=%rbidM@J zlJm!xV-d4cAZ=Qasb{3Uj31ctWnk1{-QZ?g1H0YJlNalGK2jEm<4f6hY)DvJng>w3@5I z6hH*Uphw?0;)>}*dTPQQB-D&za|47lmn!K^Rx^-5k*~!V;G6N?s(P-%s2HoTNx)VsAm%o zrOU}U=IpE&SJh`+MSbN-ls%V?4O2Pl&Me5S-!g$Mu6Ol0m|Jh^6owsKRxghcm(<&g zxu$5b+^zii`u$7lm1L4zY-HUhJ$Uk4t4mreLJQBbNmeh;S*OxA?XCFP}W{TMjhv1RU zSyGRfzzg*U(5M|U_*^|&=6_jlZGWL&`H>W#73o+~@6zR}2ba_zc&^^Xh|ksI6a!sm zWq*ID>cx68*k9J0fvoBka?|l#y&S;R3^e4?kO}0`kS!B9N*jsj6CCY?E%x8}ljZqqUr{t;VU{#GG?eRFReww%6E@`YPiS&F&1GA6;wvuQ>n) zwzV9tfUs@SkzarjG|{?6S{!$d-fQmNN8x?smKC?x{7F{}U-51hIAVF9==kk5ck^_> z6z`0?Tee+$zpUJ>f%O!j#5QmCil5^yPWTiJ3whMNmSP#y|N75q4{ajHK|M4>F4kKP zxo-u9H!z%_;Gcr+o0nKuNYQwxWZ%40f#M)BCQls8PE4`hLgwc$q`DHLQgq(rYPa69 zavF*z=b`$+%ESlG1(sazorf|~$>jb!pT1L`T{&zu`@*kQvMZOaS#7Evna?!)7};* zY3rnMnwR?0=F#*Zu+jpXZEQlHCqC3VDYUp<>!jUr)OJc9?xo;Zqns36vGj-JIQLiV z0UfK*lBsMvRT9URP&7^!3e@kCcC#ZKj!uT)MPtAV)7gCMNlI>xQf0XQe_75nxcJ{;bgI_U7;BS#M(+*!YO|K2@EdL`|x z-?MY~u04P2Wj?ZNcloBB2lpO#ANyi|uk`xQ%0I8%NyTm5y{kT4-*xnlre2HAhy+S| zGw!zblZZRKd)E^nUhG{Y8*9?!xVnrz_Sa0!M(Ju>vh-=bt8&W%`!goX zGfp_$H$S=l$<|^Vb}NI7JyrRnl2TjwWd2@GKDTa>_bKOM`^%=fj8K`7=6p&%jpvG- z3$hhfZ;*J6mME|3?n;R<_xXB)MZN- zIv4sXpDfLz5zD@26tY?2Sw@Io-NITAOD-DWuteA^GWX$&ZmTl&SwxT zUXsyQj(3}imXs;+#9kym%U^Ye3Z34PE_V~$LyvW( z`yMOkcg*dpqHxUE7id0Yt6D%(j{Y@BmdBFrL$>0qh|f_<)z`{LH&4x9H_-#iG01a{!{Kw3ILB|ER`B@If}bC)E%@Ehg13$q z6dx`4=;)RSg-;zVeB)@L=V;-+qui{;^+u&1qIRq5#l`iORX)U!nvN*OyE?Pn#zFgr zQz5S=@On*PT}@y;o(Z0ec$CRIeano(1@(#n6DDkS;XI+4`{xUcHKqZZ82hQCB317k zgU2!7tm$7+myqHS)N9dGVWPU#Jzh=7* zOO%u(j-_G@k@^IFCO9laD*>C!hd{(6!Tk;6i7#`ZS#p>ymO?W80m#1z3NE8FORs{ zeC0>LX}XnlRPH<*O@)2(rLL5SLlZt2S7R#910+BlDp_!N+L&6o!|fwyUrH!bwBRY~ zP;kNFr>Mhl8Q3hh-M;VUY7PSo1<^bdmJ{gtho7QJel!z>mfOgc6Jf%TzJyPjiS_P& zyl5&1`vqnTw`Bqz&n&26l_NICiGmuqHPiFu4$c;fc7*ko_~Aase=`QkwXVQND|RU;X9tM$LWDp_3#{_o9^2M&tYomU?C|BVnaMCU${?hHxtYJ zv;6HE7-GxoqqoChkwp^^Jy&0{qJGx$`h3&ZWpa-g>`6KC9s;;stlS1e0mk%anxfu8 zP~=_2X5NF+T1wN@`x=_s$k5al=&c{p8tNmBhAL+?lt?jD1s;{(s$r;)5uEu1v6N3~ zirxmL_cMl~w^KA-h4{=)#A&J-n)Xu~IzVgaAObfbMnnINV(0@jLm$*I^cM_6BMziF zMpK&O*o+z(O7kT}YyM8tnkGC4of?|C!qCiBO2b^EHOvi!k8Uy=<`%^;w`qpCgJ_b< zFieE`jzI*SkhQRDh2yMENJaWXcI{fBXICb%(*){1G$-`=ZpnA?L_xosL1|-%qXm=i z;}EppDTtYgZemp4Hw+nQYxlD>-vJji_X{{-Xsm?&5zB$2T_4<8A`hB>%5dzy0bz<# znAaKV^~scw-i3$Cw6RSCq6Y7m12$=5ojg3iCg?G=KVkIZu>t4!V*|tnTpGv)F>Pus zb{>l2?qU(Y9AIA2Fd$a>dp*qjZVwYPHL8JjfbpX#Euh3_@X-fwm-M^S7WEBw5-jU6)p+c?EH4@BPmk6W7QU3F&Vfo;`7 zqASz8$~m@uTQvg1tGv%U$2iA%UpzC0Z?E>QJ~Ni@sAiwpgy$gvz<*WEZrbEs&2O(J zx6ak(TrK}~HKr76b4xbw>Nd(bHWvZryI8Deo{ynfMbP|ilb{6(^U~GM)xaZuUA=d; zGSXHtE2tQ~t50-PD{-(paY(|!hl8aZ)tKP5!NApO{;xsdFuN)!wZN-&>jP=Jt&QP# zR1+vtcYwIPnsj7)HBjKGhj5Txu!-I1K_XY{`m#=LMQY@fpef0tzgyy*04;CgwC7~) zHxrcs&>tq$J~qMhP2~hrGh%KN4t!bdYB=!sY6O}5AGi);8)dlnBcIffiOO>7?e;34Bv^Ev^&c)QC0MKpHdV z>Y^B!mWc>`9(Kv$G42FlP_@xj#sJJD6#fPRlW>`=cl7~}0KGDoBKfP&tjg6KXsni^nX7@q`yx;{pC|j5c)Hq& zUh`j81NiTxj)p%`?aghAb58Is!*C{gp9AT{FRKrns&-9iZ>;8zqp9{Ut3d_wOc9|7 zBOWKkl1@BT9mU0#e6VFXd&?~)un&KLy1?xENJ!+&-U+$!_h-WY&eX7U%kU8+|96f( zI_lT^5@$*kR(+AI{A8tc3|xziFA~98xrwpi%T67RoV9B|dXD{SAPVm7CGpfiaX9t* zxd_*u>X)w9DOcD@AG=Ip7)oKCy!+tnAl?#G{}=Y~X8V=Dgiqi^(4zOm3BjUtf#RnJ zD|-0@z5JyS4SbwP3p^*P)%>v_Ldgw5;R5C(z`hLf$AcXE^NrzkaxeD!Mt)|HpBm(+ z1%Uv|*xHTuRU188T-j9{?N96gV8zT}DMg2QrCZ0$Ak;n+rg+7~AlF)_B(T)GtaA$< z1>)b0RsZr;6L@$Vh3^G+o5UflAeLY!3zX(baOROo3JGv zN?)5d7rDewMz-8o?o7+tym82-yK;3D>$T(!M-KBnxN^XyAy?a#8z05lYxr93jhP>@ zEnpJPu4tqv=I5yY>UaJpIh_M-o8rfeiEZlan1N#Rz`I?hoV1s=dEuWnbbVPPc7A;B z(ZFzj$p5GX30*V*IO51u6&e!pU+5f&jff&H@=xGU|8FsUM~4C3VqdnJG`~sHr%#l+ z1oJDM11Sz?)uNn=kyM9QA4Z~z2=BAp!~YL{_3v?ubR8J(kA)%ZqyEJ{{{t7m6ek6e zIBBz&%8i4+)Jy07iw*zZ!}&J_{!M{@Q{exY0W&Wb+jBOcz5EzvG?bS+rEVGj7pw8J(G?8W};b1yK6#y4V&#$EqiB^y*Rdvw>jve5Za=k08XL9*(s)^0I^2{>+Of}3_?{mm&srD{M z#<$hp=iA$>VIUJLYrJ;_xf$bKN$g%&LBHQbY}|NUz2o?{YW(ql@%&j>I@UAe_;ZBF zt<`77^XIEU`e-BOrMb=(VziZ|%bY8{xz2GbTB@DTVd&#md|T~YF17)^cot?JY;dt1 zrt=u*^WL$!u<)$j)$OgYm}53M47Rmf1P@Qq;$jk8saj0ql%IyiTc-*V{bDZd=~i2N z;&PReP>aX>+}-)QAh@+4h$j@7ie*8^`5i%d@I%{!${<+f{1-tXnSU!J)DojRQIvzw zPWh8T*x{UzWaR`S&hv$X7L^YN%X|6-YJYdX%UD*>)87#e;+t>Ih+mQFcU_Y%!7Q&0 z3I_?E-a;L@q;~Z5lRhen|6rOQ=OTOfx#e?$?3O#_IvPYiz`M=xV_b>d%x z@_*Xc=RSdVKuEK4F%f<46UiX%2!^$amh_9g0UJG9mkc8292i`-!Dw9Zb+wJS7qoCM zP{r^p1j4_QjpF2>Y#eE-k#uK;hbPvMOk8_Xlm_&R}~W=ySMD$iz8b zjVHOhI*7-|n8F=F*7ULTAHrhT3Nhs)x-=z-{8Cep!v#XSIOrVfrttER9(Y~Px^b0b@M;>x zC_Tl-Ah;&N;tCULK;~p{E$R@Fk_ljZGl zrfin7Ja_Ou1ntMtkJ-|#Y-FqSFeWef!dC?`fnnM4JA>utt1He`lfpFN3(^K@NYVqf z#6bLTZZU5&&MFGu5Pp(6I2^CzfLKEie@hVG+A5ubWMFjx3>ILl0p=Aug9QKC>b;Vy zx6(_X+S{sqSRT$+ml61_Ky80}E8cU&3Hxy_p-!d+*JyBw_eOiSILL1yy%XYM2EP9kBU!0+!qCX;?u$Q#lf;x zSyL-LARvS#B;fxcLa3yQ+F&`RR$UPD9ixE&LyQR*GnFAY`?w@nS{sC>D_8Q^9vui@0HFt%I@+X9xu?=0h$t4^^I{UExJB< z9b0~JU}sQ{KVKCz%Nh>D0p;vdc0h1I%`IJn*J1r!78IuhjRLh|RxqrW`a%f#%|Xu| zwgF+3Nf{7exmYpr^mUQ+RWx_7xf$-w?pk>sPsV3}`zVJS(^v7iIQ0II3m4txVZ^&aSH@3)&Y+iZA;$Zor;CgA@R?h1E zMSE2c`>3ORXV5ubH_og~+wu#qWBnMc8k)*6`6*+RA5@N6I?h)#rWV)nMPtmauSnzzLQNo;4bbuDrfXvIGl;+Kc` z6(N2lUT?}jAHoZE7Y7~qOFky_8_!xS3<^4aLD2rgis);!uGvc@EHKa>j#XEjt*%?Y znjKhPajbg%YH2xPTi#}YQhGrCrUsoSi9on|5|++EnX`fYtQStt_Rnqagk{|BZ`CY9B3THsv6e%|QNpTX2 z4Jht;w-|lb`caNDCY(fG6+l~FjlICP^#Jyj3mhIU(c-neS}TxQunZ*n!+2jTW~zpo-B%d>ywUIKX6{Jv%leK)Xba^1j9o7R z?iPI!@QfJdwm3_&2am-0q!W0UFDY7)>t^(iO7M>YcRUXk&I@7}&Uy%V<^}n=IIj?% zkHhttZQ6(C2NgDHK@c3%9;_@uE1CAs1*?$2Rh_C*`abk{P`Lya zCqA?=C?|n|KM4xjq=iASt*Wic!T%qam$y>4Spm`76r+9Z@}QG*%@W_g?F*xvNOx12{BQhSH;Kq z1M{o+c)xjrGC1oIg%uws>S6DwNOi~hd$r{vs zjmF6udn2hEO~&d%&Zm9kHZ&fsQhsQE`$L@D(}KB=)CsRchO>E{ACmr%FTVg#6Kwr}~6wfK~d@FXQ0m<#lNclQE=A7_*o1lg5> zWE7vn%I|uVY+~82frQ<=V~x2rY&TzienB1$qhUcX+Q5gd6awL9ua-$NY4Oj}1<*^` zh0P-X@+mvQjPxm?{(x-7Ky+8FkPLMsGsdPL6E;B`M!8FIn1&N!AFb%bcSGPH*)5b_ zk_qD7%MWr2n*6%+-Td-pL4=J^qNDT0WItTi&@Xd;1}(D|FEdSMM{L3CO!0Toy51E| ztO;Q=e!0Q~GB4RDwuni7gGBO0qdzIZpM)9O#(B(WCdrSvI4a3+1xTCG6^D!tqrVQt zg4;8@R72O9Zjwz2`!QKT@Mmyzeh?GA#_Pi4vmT00O}469x=u!#fSnY|+h1;DF9UK+ zRm?ZDAIHVSaY6pspg2B=X^0i_>*|WR!PeG7ogaiyo;GGY4WxP-ZcIAiuh1bJ>545p z651TQMV{)RZB_Kn(o~vEEXT+c|C}s$4p#6UnBK#L!+aJkuAwVlqCpY+RIjirmVv4w z^4KjxfX}AIRWuI+Yb9OrJnfziNRJtc{C|4geZ}Q;#R^ha{0)u6hP&~+mJh=28Q>ln zSVCv>CVyZtZL>VcC;J`4@xdQK>l03rdh*@;#ueTCxPU22ylC>{-Os7T);7F1OdpuH zlh7OeTZCwl0~u!Wc$ra;w$pKdB_AkIoL|w+j|T+B((UIx+d8mM65(bh0IprtnNPdQk98Oy|ndg1}nrXs!WD!(HvX zf(w>E6D-^kEZi9^@CFO2qWXF@HtPe+g0cuccgHx&p`w2mAF(6fAtoef68~RlLU#IO zMFS~c#?K%DXh4=;AVey?R^35dD){)YG9}FjmM->NUM&kh;G%{8u!)`tmM-y&T(I;B ze`{49jZ6N%G34Q_7(wv52ap{8mfnRq!S!Paxek9S$8RAiGq(l7-?N06DF_#l0s{z4 z$SOArsa7u5Y+$h;owB@oAdi*@-D^0o#Lq{n15fyQD%$XgC;pEeMgO9J{||ZZ9#=)R z|BcVSaA(5?ypY#1(ZDR}oa#_V%WHvcgwQ$_rrT0O^HQh0q?S+&qB6M6%3J8Tb2tn! zn~kKlQ4kbxZ{jj>QAsE&CAFjpM6^_%_nO(LopYY=>v?{E{a(M{M)#gsv(}omKI^mA z`rMb0HZScJvG5P9yuS;L9FPoX#Fi3|ob@sXtAf5H_-%I$=eh|1!)m1&V%qo$v&` z`gNRQ1;6FT=vQBFX>lLbRbVURE_~lb!k6N#i_2X$?(})CtNW*)&UanmuK(K2b<5|z zzjEG&UCsX{&J&xCN%_i1rG|>yGcUNqyS{Kkjqr+NB&?du<;4G$Icn5gNV|?+P(lWy z0aKtAN*L&vtgjYOTeYx6sMJ+LdD)2ormCm5BQdP>GvGKvY)Ve)H=M9#M05l3RxhaZ z-d^Te97hIwQ!dgmCTwS2V!G609k3(og=27^W!A8zT2`xLr|Q@=9n;SI#9Uymv17u7 zRQBevyoZjFSiFF?9lZaTu%wSm5g_W9sx;Ef=Sm?%LgaVe{W(#8<30LKRnVSOE*H&Wd)CbRUNSq&MK~>RU=@D?lS_WR3l(( z|4lFsR*iK*y26D&0+@yUw)GES;n;blkz-t6+DE$z?18XO?gwqP-o;7hl=sW6KBX*2 z;|)Xzw4c@^hiAlhuCJvs6f_<^o*en5a{8WB5c&rk7>N6VYIHo^eA}L%jF^68fz94O z{CKm^@TxjzZ6K{0_6LtBJJIMmRe`|2)h1(}iODwYDS?vQl(CnRZ+7gu`)}~S-OD!z z-%R{+&X;5;Jz+HXfAbl5G+E0sC7HUTI0B=1`Il^3iA{GDeWcP#>>9H*xOH}s61xil zl$RIbQIwhT8hG?X-#at|k7`LB)WD;CN$y`FBcpUmGNPUs;B%vV(7qFOQgglQq!ZXH zN!1nV34JDq)#UM+JJbKaf5ujoy{B12Pc-)ySi;U7`CQ)h_5XGiNy{2DtV`n9J;JJze-qa`m^Z4FV*idk&tQ_ttQrT%qDr;yw(|FufTkfhq zQB&@!#WbnMvr}dD^%d2K{Zds{TUl|urmVh9s;?<)u4<~SYN{@4I@wSm)tzXptvgj- zapGug9amn~SWyyw|HMg?r%avp)YH*1&zNFo#Ls+Qr#Jfh2YY&Yh4=&+JhZ<3{QSLV zB`#dPV#Rx@o3`%G`Qn)C>*nu&=_(@;QCuV%N_}G!M^VR5I=_+{PMto}oS!4uipF^O z9@6S+jq(4OF(&!t@?#f6XHdpcZdL~w%4O8BO^-f5g&KGNr1B@Ii7}77Hp5dI;_DHo zJWQM#NDWY~r1_DzsQ76!{*e$fYuXFbrr>0|S<{|Mm^Krq!%dqpDR$cAgy&|EGx?@O zPl}l_@+s4EIK~gh493UJjF}Y^HzO`KZbp2<$oPb5IFE0NDQ@O89E37$#?;IML3Uqz zwmq8LZ2$W6M{HXU_~q>ra|)k2^iAGmTaTFkxzE9Eh3prP=MO!cbog2EQ}LK+5evk1 zg}L^;{Pzz&`}xG=iOC-;0~qA5xuWsX=r#HW`i+?BqxZOCxT5igu`ou}M?Yf91N{tm zwpFjgcaZ*Le2>s+^phq}GtHd(RKoM9h&JjG)ra!-2)<`TSolMaO`O(y>*kF=ewPD1 z^}h}p96;Eybm=VEGef}9P&r)eg-NI3Xs$>dy&P~fXHzH<>^Vzz5TTwTa$TfI#Lnp z5C1Di82))4Wy`l094P$a;Gx4`I;bNd#U;m{o*Nq3zj#8pVGo9#Hc4KFLcuefkTkARJdC4?OIhyxSRh_1?Y%0bE<@dKZm1k% zrvTDjmAh7Bh$JtJ7sBv((9&W15z{k=q31bSlH~&qyC>6dG&A5R7pgMg4+bba_~qUs zxnjW4%hXYe4>Evd1xJqY#n?jOF=JuLvIUSGSq6qeWaNel5ybsw549PNN+C}uf;m0p zFAGWx3rnP0NR%PfAb^U$8&Hu`02=!Q>w4~2rAKlI*e@_)(o3bk+MgHhh2{*h6=(&T zOESSUDh6-F)=gm_?H&NyRHzv5sIxR|oWh!ELggO;{=W9Qm4fc<+FS^sz`sqACr4-y z3+A_j_MhqC!}do=B8jyo9<)c0>xuFRMeSlAY(0vDBfxrfs+^acKzi~ixX$8^BVdN1 zhm0JO7h4kT=r{sxVbV@$46h!Ec3eG@brpA4iTx|oqt!$yaUVEkqPO&eeH!>(aAZm5 z+Sn3>kMjo~N4U8D2Q4x|A8@q_KUqx#{CHy$fn9wGa3OLIX`oJ?<&sfs*T8HP1M4-V+ts>(3aqJcIm=uCsP2 zTBL}$lxS%LJEjr}i5l|V9%j`gnO2aOd9_jU+a~5-WVPX$E{q)<=A!N4oS&%EHZNF# zm{-Pb(+i1_KXN{__Z)jmo+A+<@Jkc9z{g4x5hFE6c0o}32eds5E0~!r2*;XPxy2Y% z$wp?=gI_hp&#TOg?4!1~oZK6C>*pAF?}#)b0Gwx(`Cu zQIzOQ517k$`bN_y=Fvmv7O&Q`J?5mW)q1*iUMLB=FzyuuT`;rP%r!k``FWu0b+g!G zW`8$FUA|^^2VCeeD*+dJ%r)1|F#bkBLT@GD!q`_F)Eqi^w)nd_6css2XXB>hx>+g~ z=Hn`q9{Y+wnKDWds8_=-G_#l*R3eiq^wI%yFI~zzns|x!nOi}DNv)vZ|K>Xv{%<~W z;s53{*X{q7h!Z_>i%Vb5W>kMP;{TR<=|xIOwDq5>raGvX5REv;QTj6NKUesc)S*=L za|LDcnakZsO>;{6_B7e;$kimtx1E&woXS3dQ<)Bf-HDKUz;QL%q8E~$afO{ z-`!XkD(gs}5x{5Hs}@~2`K7hNZx3gRu<3fD&pQw(zp z9)R+6kKd+G2UTG1okzWt|*mwx``a>uWoU01rV z_FVt{j~h2{_4c_KW*nK5Q8On!W6hk5&*s3}kDWD#T{wqbH;4Uj4x2NFEuJ%!DO6Ae z00OQfIztj>Iy_!03#F^Td%wA425=ri6HG_~@Zc)e2R}DPh6DHz=7nU->X0-^J?;y+ zCprn2t|r;bDP3s~kvda@!|#gfLc+EDPf=a^JR^~5$$yLLq7?rhqPqOYc>cFBR?2mtsZ}rMh@P>yh7*JA zr<|uJmc>OU`=AbTp{A57;Y?~Vt0Tt+QdmDS2q~6@q@o+~bVa;9 z(IldDaopt-aj06YGZd9BEsaCHXj^wYDvLsa%SgEqk9unG?Toufp`xLrEuo~I5I2Id zzOfcvhhHoX-Lyxc17^Ugwlf~&uV<_a2h8ENswdv`V>~Xt>WPO*+Ku?wTk&MId_T&p z2+I1zV+5E>(H8?MLrtJ|5Sbz_&i<%4GY-amGvllpgcP3{mz5cJ!C5^sPVTb&mYE-i zv;ucpftqHI%Vgt1QTa?vq(6Ur$=v$W$BT_S;YoQD4xZBCX-wbKaeWv6`(NL2v9U9! zButt$CHha9?nWz&R84W5I!uUFjX^AnBZGK64o}z)D_qh^IF8^yRx-dRRPux>fy}#5G;%3$**_LoW_mc`4kV*9pNh?RI+pFNQxJk+l!x8l zH<$ivY~Itcwx?nd@Ml77bn*DuX!ERCXPh(c&1d~k9_Vc-i8Cnkm`ri`?kOJ20@Q)A z?4~#tu*!%-)$wuAV|ZrgwB3@{(hnzCRz?$8zX2Fy){FUZEK3dpFMl;I$({%me^Q)n zQJkqRwhwxbB2uou0wJp>bx1$Y`f{Pli1U#*YEJCF)6`1|?#czbzz=;68^sKK%I>7|>nRZJ&mUSfAJ z;simWWrCgoX9_}rKovjYEql_JZ(aa3=YMmFkz&b*BcDd6tAQ(bHGIW6%NjT$Q><$s zY#9;k+ivGVMptb^1tL?I)z&pS2{%WIl+~8It3d{puPfues%Rz^)K@4~a2#ba#*P&A z+U7S`NS&gGw)x!^P^=CPlb>uJ7G{6knK2|x^wQeA74B(h7`XBPaR`p7gwO@N)KEDT zcZ#;vFgOf{FN;IN$jQ&(1g+Fqt4?L=p1hY|6{#~_8L3QwVSPh*&+Q>31841ZX(Xe( z0Lr-trz>5aC7Mf(af*hnypC(GYvN9q)i!cp+Qk!f)lD_E+=;Trvg*2%E$FLMUDn*d zZCvsKGc=>_T2pP&-S|DDuJ7uue;T((j> zqzl&PimAkiC$p$T*rVeGAodYbSBWQ*#$@)Nd+r*{n*RO@FEfaq^Ga$4a%?Q+f2+7I zdotHSePx6$K+`vtDsAR7Ky!G3yF;KszLU1iLjp{*kbw3h#^4LDnE6f;KM;H;bgH&_ zNhaGoD=qji0YFbf&Q=3C@GAhZXL+xfTkMfU>0!Q`*@$P^Ogdv=^r2u^n1DqZ2IdK` zkU*<1Z8bQk#I1U#)YZPRJ)6&V8KrNsWz(3sKzsZC>2^ik>NAfhU1R2jn)#~;-s&Tm zl?E`KwBr?TAv_$1FI{roSJ`;FtR7k@SM3Q~i}-)|p~~xtwvMW=C@ZH<*Si`ks1~=ZMvcqW z3OkU0|8O;R^%dN|r;1clLj?zIM%`($95jrB{HFzqhKky<8Z_(d$<{i26A6%5amLly zl2fldDd$L@1{AE|p#1o%qFkW*^0w9z8PZ*K^vRD%1r&OJ;wx@H)quER5HanCU%R`_ zn9ESF)HadV-hLrRwP2-FUe-dn^6MzXAFHdUTFyc}bE2YEtgSfHs60l-mVXym)mMlB zHyYE_=&E)#x+)s(^5}+aOcIliN5}1eOV3FR9miePN}PbIss&Btl%1&jzbluj9oLv zuo2mT$N(_`6-B^FA$%OC%z=Zp0|)Qi71|CekZhpHhNOIPr}MeWI_S+BDePqw0>(Af zRFF%q&{jyPh65BdUNvRa6v>Kl;DDJY8=Vd0UTvQn6-k2ARbF0!&A?e!kGCjuq(Q2v zD5p-9RX0^MP>nzqY8S0^>vxJuZLDDAtuqg+`vnQF}(Fu0+y0Zmdj zRZM*4EmYrgBp^~=BcAqw2zxLwleimd6*W?0^PiJox>67I-Wjg3u8ym&t3BDG=&339 zwx+g7?JiYacjBx3rdsmj9vXE@q7jm_?07|^>zj(c{g6_jtCl|nB&lqsPPq`9Pnl4Z zLK)PQNfaPfd$K~IB(mT9{>{!e)0XU6BI5tCC9WlBmfTv>f9YSA_Fp;!f4kqvSh{cN z;D4I_Iq#n<{<-m=_J4l!&tLu-^w#LNo_y=sx0bxM^sNnVac>=dtM;w-w{E;O@a@%a zfBp8gw+F0esC7#^vt(FuYE6S)pp=f(pip{};tRST3LBur&f zbv3TskX3I_l+`Nv+^AYxS1bM(@ZJsnyWXRYjf!SO+^ry2Uk z_lq|B<~XunXZ#%hdY$nH@9zf-%5ieA3$f@0mWZeQq>JtT(s?scR&Rg(z|zA@%a?w& zv~}sZrPr3~m-#Ilux$9Uzb>1+?D=J{EnBi|&9V*4*kvCs+qdkTg z^)B;VPM+*rws+|l%kq}Jv-H%PXW#T&Zde|&{BO&Dcyq$?$;&@nUbEcqjrsW7^u~v8 zeEP-Hhw;f{F3xiC9ECG_HZ8Wdx~24{35$s=-!yA+Rb&M^hkHE9ytX(Ry-TuP zTO0-3Kr^Hxo)FnZx{;UX>h zj2&KT)ZB zMDi9mT&VvX)Rc;J$yxzf}%z-T>tEy-D+hgZ$@#nso6EL|Dbl0by6$-ADU zzBDxNT9Q&5A6AiJ_jQ&AS!AJv)abdW<9ZVEm2b4`Okcld^(dwmcwE+U#( z$f&=8antw&hYaTR2-wN!5#Y$fEci3s!c@kC>rG8|rhbsBNiE8tCZ*~zhD;F|nVlR= z+^>loERh3QPMd`DuK|JqE%Qax_f1U}qx0i;gk^GpHb7MzER`B2vL5DFjIr zbCzjkTA&v;q5{0`+tlv>I0Ms3Ue$%KoqM#-(h-)c!Z5rCWbIYH8}Y`N?)GmbZTojL zH5+YhPGY*vN_(kPeFg#Uv zzKGqqknd)77BaIECICMCXE7k-36# z5_;`j2sU+vaX9fsCe9CLdgyEREoOT9J7Hc%GnvGU!@&{%U`|`jX)T>jfx~6#Fw0f* z{ubFE-DQ(WU)f~By|*yuP)=v^T&N7%ET)@p#>tGDV5U>l1~Xmsu7%mnr0JbQHNo=S zVm#=AutT$u)h@Jp32RttA^$CVYXScq+q+-}wa^kGY8Hkry|n;YMD4<*y$g^r;MRf% zdlyt0zvG*uF8WW0PshUjEr2*OxFHS%vESR?-QL{ZEPL_Y7^aP8G{T?_#(MGk0x}%r z1Gw_D*yR`%EF||Uqe#E85Pj#cj5&kIKY8l@mh%1GL_;ZBj%%qhEynSY`53c`hv$oB z@Jf-!p#w(}VVWu)*Sf;xP%PB__}|wKoitSQyPswKvvuXTQUw1e`=qI{BeQa;6$FYbJ^C|}(9 z7E^w>^UI?AaOc<2I^TvO#lSYNX{U^nF&0neVYF~EAkIp|>~(SSHD?Cw!Zx&!c?tNbx<8A7`otn& zmfX!!DkDuo$(EM#ic>DMzk$$@HLeCw<|mv``QPDwNiV=fk*rNpwF?Al1qt*Fx*cyL zv|0;=XYQUWWE+~GQlTiNQqi|lZcAy%3pjT+uz)93V3D_|MU}J@bu}>9Y{VN{TK+`Q zxnYF#v(>GHECwxiwy9Mik-@~>X?z*LTvq#)QadL-J1Qii`DBaB#pb3^ z231nGssB36`GCnWv!=wwzxd$H7iZ3z7VA5C%3s}=fNoU^q6D~7i1JH3xW(lmd7D~N zggK_*b#Oe4wUT~5^gi;{r!bwQpGud}Q+nfPnYAgIu9S?rl#Hs|y(R#_6DcL*>y%$= zQ*eS!U5XrlLMb2E1;7PA*06a-LgkIek>cKPPl#ovpq=nLK*Vb1Z+P%1)`h}cfWR!= zgNxf92`1lFLJ0lVYOFc_5KA5>+!$s0=XzYLf(?pXah3HI6-5-kIC}~G-a6X%UF_;% zcmR=0Ig%G5KV10wGs4!58efxG7Rc1g^blKG>H|F{cSIwUW;C*EEwg88`zP z#4A0cG8gHgivr2eesATEGDk4BbfK>>o|z>~V7{RjeaZVW8f=+{2rt(8p1g)0_!>QV zK^Vlhv~IoCi=GZ~qv(7Oa=IX)45%wo<87MpwBLH#^&U*Xt`jn|L```0b&kuS`mzsH zveQ4W74dXT5z67auMmpo2k@?nc%b#`h7AU`yVFB^vw16 z=KF)$2`yS|)euOdQgXtn24ebNf_oq3(O@r10-@+JQ|Kce0meytk%k#isp+Y8 zid~o7V5Uc}!yTSNKS45fn_bCL5SS^0NH{1qpw!F;BEmEdy@sZh2?H0I7QzJM5(mm# zy*^%ECH-OblC)Qs^TBM}IzEK`ejVSB{b5~{*tYJba~%^be!uRfw2lc8e^__(%sQr@ zy|GIA0S}qwW{vOs3pnd087rXfzO>1zEw?6c2kvny@p77e7f#M*tJheoeymkH)~Y$U zTpFbCFjeq*F)9y`;H{1|bDo@n>Rl!fS#BXe36 zKLVUn`5sq(o!TVv?9UU{{$%LmTjti$hTZ_X1reSDJpRGlnBJ4b5XF}E@ zAT{s6mx)uKP;~KH6Rr9W5 zK^6a@ZavH?Gk==##IA+OGuNONA4%CSQ8nDsj*^B-)6;}HVcoS zR&OLtYE(H2qq}AM2o>6LOV0I`^GE)`{$6 zqt}9A!h8IhDR1cun5l%CVby@caRe<_ifs^Gfud%-H#@(YKOs{X1-+|*7LPSyS!)vKy z#~}+nUgm1#Phm6%_l>4j1wn_Yq;E8hfmp^cn$704?z8|v6WX0FA&|*N1Gq;D3{d0j zLHr4Wyu<9)4Os)w3kYenLJ%%C;lDuPOVJmBVOL;NB_MMYV?d71vJ58AO@&(4eQ)Uf#YZlbg9mG z9pmZ*r^v>}GY9l^jcvUi#rQ zhr{@vZF(g~7>UiZA04|Ii=Od9+Esvg>}myU<6YtQmld8L-J8X9fnf_EoLd+UGc?G< zB9f;C$%Y--MzA`3H#nSjBNmX6Inoc6*%BOF`FYT~tlC7^9Biv$#zSjpSulG~m)s1(>;vKJ;>6M7gwU&v^6|!M5y`O zu9Zk_y|~i&b@6vAv$|Fy!8Bv#Ej9VOm61io7fCYGuwp>I=;zujdqKvicWuJvA?Sfw z8efbBva#Q;Z0%Yp>FB5;^7bbPP1^D8N)gH5t(3su2HrDb$S{fu>pz+5KkS|%6m@Ul z#5-4@x<&{C7+TPq-d^X{wQsv++IS1jrC16v#28Uyuunigk6;R1Of%syFwKbM-Yp&O zWB=}Y;#N~Y4y|&AEmT!yO<7GjrDsD@K0=T<`>MQ(ev-hbEw+@pJ`LDbQNl>|9NQ ztpx@I+yVOm_g%}~Y!f8<>WAcO$+@HC5-6mr3O{!a{1n`|RIUzy^W*Ngu&8H0|Cf6( zeJvF&Ct4a?>RRe4l=-vb63jX@krJocJSh4NPGRuKdZ~D;Vkn7Xi)2*w9b}Xh7S-jt zJ&N2r^nkU17ZyYK-g@Z>XXOKx`CLHx_VxzoyBR$Y&9W7Yp8ss_Nk^%6rxqu%_u!#A zQ3-khwFuV>rgj{qGJXOL3127cnFjfoR~qDF-f8sY4+xR2mj*5_Xt`swr|B8KNnI#6c zk<;$7jeM-n7Lr&(dMTEWXFkXXbY*}tPKpFM(T$=LJYmwg2f=>Ls06_&P23pcumD1OEK2}p)_;Q9?Cxl zP94gCsN026yXl*)*b8-Z+bY=Rl+!sk2;sn5dP2#j7AP*Vu+uE`Bl&exEvB~*m@cl; z0z4ER^+%%fRg0KpVf*sbPPLeIoR;#3!TI@F5w}7Y%!)dHp7{n;lw%*{se}+x1gan^ zr=60gk&c}*`rz;;gG+DXEh_aQJpegzlZC$$%|n(7C|oJHBKtyawY{6~ zu4%GZ+LM?oW{~`ZRhzff1sxGRz-szrEB&Zd#JyI2h>YW4Oio}e_D*FV#)Ki9A_+<$ z=^^`dk0yvH%Jl435T-gvQ?{5Z2N-qqvMma&rqXS>#Z=6wA*^jnu_k8JP=jrYe3l;) z(>sBR$)aNTp}5k-WNBhL8Zu!`+n5Q1y2zNN55>T&MZ-Q6BLqo)u8|hJm)sa@zSts% zvXL>2LK2dyhiYQvYVna6W`J3U#vV@KtbFWY{BvmWV5`smZ_*JJ$6(Wx|~FR3?2U)6_3hY|3N{w$Nj@*b27r!?GxU zrjs9#rSWIFuq?E9cNA>FKmJ)sTbWS#Y{x2AT*YFvG}9|u>;_zT^3QrC$U0LN%b$~j z!~L0Y|O-gn+kxaJ5{2M{4iGI&mO?Yv08t&a0^kRs4oI9K>KYG{LvSz z3AyOU1?hJjp}U3k@L#ls&EF#0x3Hf6izwC}#I9t;74TfDUCGw2AiePnSiwHHk|k5& z4OV=M4PCl|W#3}Ox7npDS@v!6Kzf6G*WxUXRji;f-It-v6*N)#)lhi&RT^v7tBs}z zZAMU>Z^5ij$rKB=fVMf4*$2Gb;uK@l&17RvaZ1q5UtoWui^` zfTqkb?5Rv_Q>V$j7s^Ixr04l(qb@gPGSBh}mrrFf3CQ)}smupYlW`1PTCjx-t~Ul3 zXo|E`nW)e1QF}Twav~Z!7AQQ3L*XPsr0X1%i_*MxpT@o+-9s{P1iE`cn^YV z{XsRYVL>&mW%&eloiaA7$#?a;EIlxvpUIBS=X8!XYUcy_WT*DaH@kbvu3!~#zktVk zv|sC`euQ3;01QV1 z@Lf96a#dLsu$nN#*e|xgDl*7I)Fuzb0NXhV_fY7zbTVd@bFd!D%i|M9FI8;mM+;gCLevaG|D0LahoY% z6JY3^yGfkC35!1BtZm50K~8$OQvZI#^OmQ&_AC1kLC(r=D!-vmuToa|NI$Z;vra@w zk(Y7(iQ-O@pymVj_IJuz8Vb$!EXD)ltS7sHRp0vJCN<=PNAb)}q}VX{q1}LGp;uy*_e?W(Y_$Djm_b_4S+^f$L*{ z!YIpC`(kVsE}h_wJm3pBjB|kjk#QUD zDDSv}@v~!mi}@jr z&Uc$QB^iSViIdHNxF?dUigKGm^T2%OGJ1#q<(UQxjT?oG?o2JO*nnN@;}P3-8ZB42@P8#!&R5i|t=$a#~`Oss+`8 z&^J5xX%#A@qjZ=Zh7IHvA*L(=s1ad~JxRq$2SM0>w}IYhAu5}P*ANYg56FQS3w<3+ z6^>HBxQd{M3c+DS7~~@lB;0^@O&@WFo4p$dai)@CcAcpt4VV$?&INkRpwMB+SH8it zVuNY$hOpB{+BOwa1cwYy)yev-X}Sx}3(#9;P1O;)sVj4;&WucdZCAuB;u}GtCM}~106cjY%n&{nq+T6{+glJVSMOs3h<)m+^+x-K>>d>A4wWe z#UxuarkG0BKJNw~f$w4HA^_8oVW%U9lZ6wr4I!2Fmpp2j#DcxsQ2KYgXyY}yY;Vz%Q{A=fRgpleu_shkOpSbg#oxgT+pHX5! zEYVZE`a0W)$3OlmUnft$|LOaS9X1=L2jti3k9=v%+#0|7MgdQZAM20-L7nTYZ9o@n}K-1msfS9bP);A5V`p^~@ zh(2jBz~CJ?+?a7-IV&Op%U>agz8`z&hJ2_Ct)uV`9IJd`6OjsxDiR)7fAN0PxIYx~ zL(oBe*N+(~gg_c%t4ZOn#&{#td3DMrS!Y_iN8$d)A!yhAq_y&WLIhip3O*>1{VEl_ zpLZ1faVjpu!HOXvja*xPg1jaW*`Oo)3VB13C9{I$w*MsJ7nv$jEf>MCLC7Q7J)w-( z3KBvWx>6+A zC;;2$VPd#CuAJ}eSiFs}Tgn1| z7HuogGsB!gdK^ulX9nO=$D(ccC!L2x6Hg#Y#4~^L4E#XyJEpPQFh~>?5)Bt<`A&Wd%0p5;SDwH<)T2JD|~ZE78RoM%^_Ku5QR{sz`%o3 z4^miCd7-+0W@`ZCRYc*UCkhvj3%H%(9*(X8J)I`n{{s3vkY)A}=|7vg4-?lHfm4}% zxaPDS%)aW>ef9unHM7rtyuk3aUjEfy#KUie4`4hbyUA}I**)$h^a0>x$Su&rM++?h zaTVlDCBhj+-1;X0&C^z_KKnS<%3&C>6aBImOS`()OTS{*N;8U9P7VXID+9gvutFuc zZh^vR%%-RDw{u%ye8kCd1i`Z$f==C)tLqw6hlYkCG7*3(LIC`~YB`Re%s<`%{<-Oj z5D}hSKi#&?_-w7|=w3*oi1bEhdLWxv5Gv9ubP%+$vIN8S`TF+h1+##5;X4jm_EHBXz!*g z#!+}^`o}wF%!~h``^>xvQ4R1M^cq^bN3{At+l7`Ogy~J_y6mxh7pvb(gkvBGNDr(- zVO+anJd|@iHazgy+pb6^p%4+EsH!A4pqcvt4c5!v)`x-XTB~Q~L`iy5OuVH2xN9hR)$$!G?}PtpuZG*qHXWw40O6(W#vt zopMi7^i!RS)qhN9QiPXpG(9(q*nMY4>|wf)W3Zx}9lXdB+dkjv8fiDen>#E=OwZaH z9%_r&W2S_G08%>%HtDK`SAwg&h#Lo?TBIkGz)^ta+C7ycv7SWPzc$07;16K{``{k& z!9Dand${`w!lAP=Uax&{kMS2`X8^+-3XjP%Y+2Y(vvR^%;FvUi|_+`Q_DrWccsP{rJz57nD9E;5EPx$!&PtWq}8P`#>fn zAtxvS7?*vfR)k^%K5lixy^0E)OlifUv{(trVl=>|5|*XH{Y;NZfT(=7u!y|SXSQeX z=ny_6vYVa08zv<&yM-s%XLjSH0Ml-(amMuB%VKs1JhS^j({4)uAAC7xHxtZPdGESJC zo~IxC18NTd&$8G4Fa;Bc|0>=Gkdt?@DZA9&qj~4;{Q$eiz9Q8KjH7HRyTs&Os(n}= zAup!vl00q6yQ;AKHei6U+7k=rdB6;sENz5Pm_rOgD0b*9fplY$rJof~acQ!-ez5 zFQ66h6VVYl{QJ9H8tie9!>`y$N+G#ms`q$1r=-=UK$iTU+bO>*Y z;*b4dD&3(N%JiX^5lXGTcLYJd-$}SSp!pP14Gb3HJ0wY#=Ufr@Du=)T?C zg>ZJ)_I3lmNPqzay9>rD)5A1f!-Mw99|6?(nSVC5BhnWq=3nqZ2-ja-8viX6U|9&mFO0sv8^ve+Z z8Bk@wB8s_doaV`|U=SsnoEU}U$}yDS$aZgsS)!sh`k^hZ?=_3*U!A1qraare#SfBNe#0zak%O#O4aX`FYXDa(lv8xfh zT@x)Dv*|O@bZ!;lkD#u7+A4Ofba_e5W`M}#l}p5p*fK^y+(@i~_`%o;gwcxBlEfE? zx@bqlH4kPmZ1jl8a)GrVoVW~b4JYL}Y6r}goW|dUzoTr&6&(na+ABI&jpRwf)oxtj z`Wn*C-Euc6y2HxnK&a*|*dgBo)M2O#Lu(WQpu*rwvEUo4UR^-AiH?PdJCDJmp(i65 zu}CSV2fiE3XW+K^ViJ>qP5X@aaio4`OZ!Y^h96_oKfAzDxT#M6%t8PZ>PoZ^$1xMe zQVK3k4`S7dv;?{yxBKk`)W{CkU=I@zfTvjVBGcnako@RE(VCFflN)LQ*zDf8jlv>` z699S{FK=jNA=jq^XXB0Gyq6ieuoo#{jXe}%I-N9-)(Z9!wuq3tF(Eh_gTpF8fAm?D znY&SN5hh$0b0nWOwT68k;nBv=EZ%6A&b0RM{}eWIc^-?NrgCW6z`<^ zA;LPDUQ7Uu{R-g==(rqMwP4t-$uTf^)}Y(ek;OB9H^Y1v5oy40??|KZ2)pxrk5@cZ(Yk8WnL6-Hyv< zRmy<;ijd&~qzq<=FoZN_H4yzBzMZZrvLmEBN#u{1{1GRLt%LzTqZ*T7ZC3OBq~`m{ ztUMZUK+r+q{hf_Jg?-ioWntUxMUDzV*(SB@X?TdKWiO~@FPN1_O4+HT?CHL;r%{$U z5*_gdBj+ah3YtX}^V_C2TH06SjwEnQagc|73<;>w=i@plI+f`cpDa+%oV{$zB zK@;ZK&)LNXOI^pXU*;J7L`y!H8sP8@J34d_U98Z;ZHPHUGDXPD5p#BNmC=}e%p};e zi!T7+@XLe9r5FXWk8L7=XPfK?OW8&{s?_s2s15krV6QU%kXC|B1f3L?6N@eetXLxE zVFyd2K~*N9#4t31h=hu`d}8#2ejvO+t?F-V3M=4Clo7;q6fvGr1=yEVyE1h;Dc?!# z#QY?75>XgZ#+~u`m|Nnr`Rt;6Gz1yo#1<@0%!i8|@2{Q z!S(*`((!h^heK*J3m}#tc`deyP90lh6J0v?h)t~0u}5vYoy$Clc} zS{++v19(dhVZAqdaoQjI#)H0Pg9@^&+Gd7Jf>?@}GsI;9lgC;LNMB03$URwbac3zp z2u1nIYc`7(HNfRW(2T|W_sWNQ3+))4k3h2{^HJ4_k@+NKvvOUIYhMl+MNx~B=ymH% z{oe&m?LpKEX41Wg^+c*dbHgA+>y`as@a{>pk`mN&_$4w!Vj_&Jc;Z!Hh)FiRDn=wn zlY(0fNkInOx~0lmUvnrH6HOGE{B}QK`B-7;SYa9VKrClP>8Utwl5t=wWsYPY@V7m$sK~9bjhka`lzko;>(ZQr24Y5 zvXhMsb=3`sfzk-m#`1DWs;qRCOD80k>-eeq2Amae2KH=qWn~CrB1z?^8yd>%kGl#G zD7~S)yso~k7Cvz&8p~=5AmJ#hXf7{5(}-w2jfI7k4fW-&9l^cHuqYqvxYl1jmwm`!xdpVDSi*f`LjM9pYrJF>f zh~v$V>$rXrG!Yk-{jvH$uB8i}w&+IbWOzY?x`k$nx(ACGb~fyBh?b<|8%+ifUdm>N zt;;$UNli#1(@Hh_W`ECB46Rj${xiY{+!qlSdY0~~gHesT2qmRhnJWeS7;4UVA}3=ie0C@0WJKq1R0$RA zph9+1!J9y6IVBRW8zVwQ$?nill>wCj=KtIp5Zw%{`x-Jr#J8AuS04hXn1isBCr^}> z)xB|WdZ#?0z>p5yiO5Dy45?>ZvOHAshe&oH?qye-JY|)z}95b(5Sym6vamQ9_aVHT#<5!srp}vY!g*HL;w6Q`%_?U-GKo9j`28) zU;uKk69j|g@06|~Du504*B}3D|5*oo)1j?1D%!e%d{MT8R3F(_*?pw4d)v<%n<7Ob zK}D#EU?uC`zN{W-w&ffcS9g$sZg@HCgR#C#*LL`{vHD8p;8KTw1U=kx~%25xzbR07wG~GCgcnc^P$$%v)nKtrLQDAGMkOaX7A5d(I+gM9h1$D zC3oy7<$H8Ck#XIZoe`c*pXKcXfsT-Si70kowutOXvSq9oK>#)e029cN;(%NNHz`QG zpQMk?W{wC(lCCqomTh__+btS%)ZCX1gMy-(@a#~WRjw3)vzdxzXX$>~;uOASRJJ6E zQ~8?F*^(1jz&kLj`65i~_Ez^YL`gmWA^lUP%#9p6HV0~TD#RBYRUTG?R0r0l4k{#1 z8zRFK(Nn^rkf9AR#qSq9(a>A_qb?dPf$XjQ(3{5P(7*0SOE01lJds0cZ|z5zIiimy zvNXh(lP`c5!!l$EU~i%XdC<`wfRNBP_ZL$bPn72!E>C$R+pE-%`TQjoQycCmpmlBU zezAAI%gf$@M!`hF~Ie;U&IggU01I1KD^Rffd&~#(x{@-|+C|jIP$JbTBBcDYY z<~Q4G2hwD~5G1o#@Og!3#s*To_JA4IpQ{gJsGm~>IQ_`3`6%eUKO5o7&+>spKT8`9 znT8h%V~McAN(Uo^wYQKrUesIcu)B@2ok~U*H#KeT^BKHjMj=?St`s@zfvc3zB`w z^mp%=sPkjwzuLWGdOKF@l@kC~>nlcEwESq7zg?3PMPK!H%=M-{eE9#x-kX3& zQKkFC)k~7@&ejP8Ix7|EkPSiy5hAt{5inru;O^Wzqpc%M<1#X%<0x)HQ!z#=(>S9; zbeJhJG^S!IbZ~GClQapCn2sbAge^KM3`tA`k}?T`3-bNmst%xY?|r`eJoovY`~SYL zlkPfo>TGqE_q^MA-%K0(m8sz&3inT!cjID10c7(sx2DO!PB4%r6PQasHV|{^!UfD~ zCd6jS%gbYzEOjkrZ~oEk?2;edaq}XEq88tJ>yK__?eG%I!u!u{x3SmV{A2dU#Xn}5 zyoF0|W2#rmGt4a%5omWuTSgAshO z9)TJn|B>jzKzqY_!$vrl{1O9_0q)$wZz2E5AV#57#iCQiwcy_1@}7E!{@wE$>ovHh z8xU-NOAAW1EWg~q-))fIVC&vw`CAMXw?aZ1CZ~K+NBn=-Y0;?$+Cv-h2Z( zIxmms8I;xWBZEH;*S&Wc{F5HO#lSgBuff`LDkfmtr_V#>(H&fZqX{InnP5<&ip0m% zkca*7y!d>T+tp|m{|sjUMeu6QxSkpVM?pwwSZ=PY3xmeA>n3weO^tA|1VQA2rJ-gy&0cHDwjF-KuoiOl8U$2nwy=T-I6to#4M0xw%5FNcdTOQRVN=?ae3U zFRQ{EQ_W3wbLEJ+Dc8L5c}s_N2o_S8ilxvw{K`LzD=Kl9EGu!9++1=)d&$D~k|p3@ z-^bm^#+&_~{`>H^#J40E?j43oShOxmend3NdfzhJBh#X)z0v(Q`fgn24-Z>C12Z(V`#S#*Tk{Zf=q9K5p^DMT{xUzF_eUPmCSe z|L%={t=*DqV|by_r{gy@RxLmkVbZ2X!DyKt2K%v4nhCS5TEvCb8>{P$8=Lh&&GR~- zDkaX^*rKo9)ChG7xL?Z`BA1pSN7T~Pe zG2jw2rv7VuON&JI4ZMD9F_1+@NoBJev2>n<*H|!|hT7|&?7_94bYMn(I@jpmA;QgW z#7^j+tRDYc|0K9iwD}Zr+sQiHyXB@L5*_Fi1HJLx-+Ho0#Y8n7(e`sy6-1@I5|^=0 zk=XL$iN@~Qmf8=YM7`(Y9z{z{;}SBEl|#(%a#h&JTN<^U_w+IFPCGivZL6GI%w`?1 z+Y3r0heJMSTttnhnuH(=xt9w1Uh(Tirj=849UKQ!VO$vyE;Xu@qDo!me;13We_%%e zN{=q~S)qA`P&@;8^%^%0ry9t(gL;i^)|iu!G^s=+&t_!Ysk+HxCSfh4It$GkwU@vXu!BSEaXtA^ z(dOT@H&iup>l!vUa<70F0d>NtpFpe`Cxl6@`t?tOquY#2f!_>PEDj&B@vA&0)mdva z_Y#a2b6jcN=o80uvH?S#B{Keh_Z2VIDRb0F#o+B2XlLd3TwlJ|aO&;O$_B*_Z9zzo zaN3|&8ACnEf~n`Lr^t!wIiUpMC*;Mz(2G=he2sATcn}He)?3?S5Hv@T(oo$ z+n3mFCx~wboiaC3TkLF!uWVpNoTjgMvq4}mE`Fm=#~Iw^MH}kgY}k0G-m|e#Uo-S( z1C3FWl7cbH!dPYXz~k+_g043kkgBOr-*~6K#yx=S-ct?5G?=%NsOW+NtAT%`L5-3Z zNN+SaCfIQFW77`JqADuXRPLbh-O^1;qWApGAH(XN+M*+~j&!gvNp!d>cZg|tPl)0< z#x?grYM+=5{9UxmL+Cyv;!F@Ko8i>gH?_z&tqAhbsUTmb5kTOkdAO-=UlM24BmxER z`K$`G;Cxo7>?HeiL6bMZXYIq)Zz}Lv2V-k+qELcMD?w)48JGr4Gax z{Lnt{zOGi)Y%L5ks{@e`D#jZX%0C*)k3kcQ*@Y4fk5=O}cHstpT176AVQS45Dfe%o z6rs$6lv$kRs>EP{<0kfM?)tdMt~_E^p*ljwV=SwNPpQ5IoBP^h{`zJPF#d{ zaektqS+AYU` z_ph$3?Y_jI!T%$Y^yO{0Jd(G4MWPz?*({b7Hp`01i1Is>Jbvc(sta1rW^~TnuB3Xe zXo9)GncKal9_r@rv~E5r&D@TDM!BJ<;}4YnBv|AS+PrI?fSX=|< z0ohUp)j%De7Ypk-gd=y(ij@bokRw+9ltQ#2{eSrbDREoyeVkt#_l|MNDm_+&iiREB zC+{FTjKaP)$d$=H(Y^ycbpp(flf@8N(cdAEn2BWNfyN*VN2x}m0;;7&?RZ_Vv*rEP ztr{-$JzI;Lpy~}Q9s4Zd>Y)n)QTXtPqyLLvHGoF~zI-V4fB29Rgc7mz`IkiWSkS&9 zQFKVatVwMyil@85YHA_)5Yh(-JsxL9?d^e8B8jX(?g&{F*K$&ZBSF~szT{_Mi)Qp6 zR^bka)TuDl-%ZB6)jsL26+(TDsNL|h3`6uV0;LwA<AOSCxD@fjcEFnf5wdvQu07o?hg*f6qENkGgdO|pZV_V3JuL??&Ig3*E-|jZlNgAU;sgE>Ouu4yKX^O*!mYlb>6x;1@^i{4nq z=Npccg!8!pRs9Vu2^yT&M&*5Nq@Zb)i{op})$JVV{Ep=!drTCY%uiGDQ_(eYRAQSP6{N3RfF6bzQ zky(=;1J;msB`Ry-gr83M<%D$;-kR`!3p`}M--=$Loh|8WT&2N?jYN~_q$+#bkAkUL*saHweeJ(a4^`}ip_~no|v2*4bwDr+c0RfFfpmL z%7yAZVi2RZOC(FC0vvI`4Nmo8QMFjwjbo=+?A7mM$lJtyx+qrTu7-u+|VKU8K?aGbo^u#HNwVt?jtKxW1oU|$qw55Ta6^AJNf{E0yEUpN4 zw$6E~$zJ8*WVfx~iH-9bcep;rY>o+=5EGFYV@!`RGggzuYMNj*q*%jQYy1V3!V{9% zCCO}OvYR2v)A%QRJn;YgHP|LcqGdS#yl}2-Wo&RiwC|E}>splpN49Zwp12NB+Q9bJ z$Y008h3y1Hk^*QN^g)<%N{i@MqmD~l*O@!lGtC( zWZ!YHXRc-UUrTC8&*w-l<-;e`n*3md5+^KYuTDmN?Al}(UKr1TW`AJC`?67Sm;l+I zLene~mi3kSjsl_Es**fpa7}Gm&N*O!%Ej=gJECEI0I?;_DUmd=N&;val>hLv$ z5{0^zx>C)cMI5on4%c#L>u)m!=$kIv1iS2;7~?^vv5(7i&=jA-9K?Z z;Gw6X&%?~>$Dd@topZg8X}B>dQrQ*MDWhEx3+Ghc z9|apVVh(>_l)DP|jmQ?h@&2eTzXsIWzXc&&B= zRJe})-=GUtK2iGm7RDw?@vC4~GnJR(rMmc4Oie{yywA>=#YmEcBtXsNn$)_wc)`z} zO7WS=WCP;e=uAhbGp+ouqWH(6AenzWs_StAc=Mx(&M~;6qUs7Q)WrkpL)IMa&qEBo zg+qawU!FQ{(w6Dk2q4h)Sd_e5WXFfhU5(`5-5*6c3gxKgFqsi^kQl><5u@0gZ#wg1 zGQiIKKdVSG%aWQzij)F=9HNviPoMieuv>X=&-bX8i#Y8L)e4HB(uSm?*b=g$vQy*k?obisaWfqn9Vq}~ zB}}-kl{`Im!OK9f3q)vJ3lQr)e}{{@RuBrpfkW_#rINLE$D9J1L0AjlR+ zxhvMjt$QI3Ojj`;>E4bPSMs$`tfG~-N?TXo19d7e)BzZ3kPwjX`(V!o;Z?C150Ua) z(;=I6y*xd%Ti|A>HlF?^;CMrI@mA5(*CSH0n4(E2N^8A@VwuGM$-nBo^pQK@6)+ub%6#qi(X}Ou~gPDGVOP=m# ze@i6|XCldYGFQ^{a$I(CuviHb>s<*MBD@=%rxTJC9n0U70fl0wsXPwyWaT^@0pF7W zW;#y8NNd5cg0QEisXU%{rZ&ACU*}B4x;T{rRTMPbQ|ZV8xTJVTsWWURBvuWsvbeF+SeSGm-c*!%8TI5#GQfu zKz9qefp&x{@6FhIZw8pX`tMB+8sb*W77NARi{xSk<_*Q}!NA*~Yo>M?CJ0rtH6GOz zxPE7+)EAK2^{UnkFdbfogQ}vx|=$FM=pN^JKasB&~#8(8m*N@ zp)ka`HxyweQ&t*MRX}H3<;Tdfm=}*uV>R?)Ta>)a*!^x$0oqwj|A7%kpV6UTF4PD}I%+?y-z4t(1q8nP9GR3U1E^uws6d!9SJ(zcK#| zJ$2*EL2?zdDVa;Q`I1)|xMY;>Fkuz^I>YtqH1y@KGuTtpn8!2xcSz4XK2dy5&bQi~J|kqW1O#uK4!;|Z!sNC`VecJ6wcZy`*X zI(^r#VmMWEV*SGQy*=rq*ug&)?`9vH%0CzCG@gs=g2{?WX8xtPA=ME;DXqcmV#P3o z(7HTZ4$xu#NoexK^K0U0T|6BZ)B$Z>69;mQG}NAqBcMXZUEs7eE?c3=hX@#+`DMmM zVRZ^*8EQAF%7>O|kcX%3BJVvzJ;c+{A(Z`t20z+2cnqaS7*3RSkY);AIo7PCyY(C`%UUg zuq9LJ8Y|}lOyJN|IQwC`YfXAE6QN^jC<~$fbXR&hWE-In+ixFQodMpuwZ{8~v^s<5 z^Sbyv_xMV1SM;PetWV@38eUE0OdD(uRyRZ^@h`+xmq|V81*=}>lEpZTSW11w`ee;m zU^1|{7vkcQ*C*HYq`Mix$-a^97Oth=V~UcG^2knMPdeX|ZYxIt3#owq6kkfPS*dXK zO<_M``4{8pwlYBYYar_gU5{kEm_r_?92?wK_OeTk)sh*4}HZn~b!k^6nAxb>ysr$5Dw zB<)IgeR6A}GPVIxa*)#O`d%6gPd5ueC?1;zv?jngnw!W@hR*QdpMBkqo>gL@5`gYj z`x;idARqwn8NlhUbK;y(n^A}xukMzfisRSD;hcv_+{Hf?=gOTD?83zDM3`NZ1~7?$ z+n3Bgo8wDC4^@TZ@^lVn$Fn)qVNd6vuPW2n4O9G9Uux%zakAN$)>#rqc9*IWT-Qyx zlw6vVW4V}R7K_UL;oyD@lcC=Ns^TDv#D`dcp+~22fMSpWy;Rd-HF*!R^GDQRSMaFf z21lWdlC;oIBmWGIrT?$|v+A{0!9;;JlwzXTKUK@0qeqoU@k2H%P3mSt?+<&RS~hbi zn+_gB@-gs5Vhe^Fsi2_A=uHDz;DEs{#bg+(n-JUuE$2=p5{7?FFkEMJ{Wxu40EbM* zCk7z-QPy+u76JC}YEM(uYvL|Gke&{O5ko*hon!#^M_IK5@dFB(@q=N&FWRHcEp6Wr&X9bu9)75u-`=kc_|8Z`Ui`I3BcfW47P(`>UH$6UqTm-&j*(|CN-p8{=Q*dxwL^Q}d~Q2VjYiq}1hdBvq-p&K#Kmlu$RNroBb zl%9>_>*A$n;>f9l6z?U>Nt<=>z(BJusVW?^kxKbNcAAZNQs53Y<78QQ_7vCLl;AN; zRs_v%x`6{p^+uo@h7y^Z5me)jtRruMZ_i++2d%whb!OR;>JQ0G#V1 zkgXw91gPocsgw)PJ_aQBdbpL; zhL**6+D_XHiRp=tC%%yAO$^JJKG}>=8j2_%joML#MBU_%ThP36hc1^q zbdN`{L||$^$jb6`hd=HAd$)K9F-|A^lB-8NceNbaBOJhKH@4(E@_X>|ckJ)J189zI zu9__BHr~Cn1O0?w`D<|>u5NIP^<5&ljX6YQq)IA*!c;Z6NEuBfns^?vM#m36`9Ju~ zo;{mI%UDPL>?`J6Id@*cRobbv|KJ|!LPEGMRl?S-bqtZVI7ZmYG)xFgI5ELIk)4=5 zarVTkCoY%^Z-d|=|QCa#-!e&WQ0nF%*0J(_ew!lMblPk1MxE1@}QZ_;qWHwodB zvL-E=^rK1tHfhDA;z@5#dT-LllMIuyC*M5zmy@5F{Kn*WCx0?|cyg4@ZoAHQkL_vO ztG2gn&9kvC`amTXFDm7c;j3luKl3O3!$ZZWfK zQn2s~P9sHRHnxJ(mTW#MTaE-(179M>YS*?*A!{8TApv-8cnXwaQ^xmhqqDIipbqQ> zsHXGjIBzW?I@iQ`H?v35*ppfAx@Yp6%JTU+v}I!}03jI5zM1cjkUpD@6Tb%6=UH0Q zwN9}E*E6^bSwb3-oV)0SpNT_patuH(iiZ({`?FlxM0jc>$3l=CYM;p_;e!2n9YV-jktyHVZ|%?4_WaL z{|^d%%;M14gRuxb6zg`oZof*nhx+CWzs?Dn!fna)x;keKhLT_9#4z#?I`N_pIcxKG zHq741M>w;UPMuQ;FS9DHCG*NbhNwq+O-?$}Yj##cL#SD~0l-{|wLORro%=<+YhbQq zCNI7QB7AnvTY_`sF?*p+I313_VS zVM}Xx{YoXA-Et)?-MDo}g*`fGTj=Vy@6vt9g!nK;8ZBaQJ&{8LrDpV=q@bq=Wq8Ji zEtDMHe$Pz)-kCqhr9)Exr18k8DL7;_DQLrqzXT;FXi`oG!{i{2skyDK>Wg6xB(R=2 zHdQU>#W+h5EHCm;8a-^a$!*)PA{D3wQ@tXMOAF3%!&$KygF#Sqq6PLKMuMnq!C_;z67$+V;Z?J!#!#;S0e{|@@I5ZWQ7VMwWD}lDlnd8d8 zf)&-@a^kK5${a~^oy-!G0M~F2096-%5e#)kW;?h!8xFbxZgXeD8&NoP+4ORp&#a1KADYb`o!w@3oy`w^h!lUA9V|zR z*N|eWZ*6D)Y`8BscYZb-kG{@F7My}a8f58Lv+%MBVRl)H%?(~5r2$E^R!!Wt7K;Xh zb{RelcWEthm}qdlIva|DW>;grZ*6dbnp*19ssIbXjCu!VTVY>%cK_O;f!VID`ThS| z79~Uhu8(GKHbW^mi$wH8Fg*Z=6|B_yN7SNnwoGt4qEOE77BEL0bN3+WEGmLHhS_s!<}XY-%U77Qh3t@WN% z_7AE40{~3GDw9ogrZ6Qdbl}C+l3$;UJaV)z1DU!$o9$bR{Nwu@bA^yY9MX?wt3qgQ z-6Q#A3#8(F?IZbhHI4xsYO7M8)V=M10)X|CHTjVH>~p|}`G6aD7s<4W;9h9gXmduNx08U5bK&ESvC0HHrsE>KjjBm$mvP&fx+30eatN4)fO zeo!ad_|km5_tW_e60h4nvPSo4#m{o zaL6Hlt=Od+N9WrPbW~vqh$;{sh{yh-oOcb*QX|;KaKN`0Yr>p|fo8$IQ=-^s^SajM zvA@W31!f{F@p=6CEezg3IGD$#PsOhr+6n{?S7+2#j9I5qD(b7F(?yRA;hZ|?NxeOmp{10*b4Ek*Ykv1H5?Qhc?%LfmoHBvlrkLsq)yFX zw-S%-!>ZP|HLpNLKix2~&4V|C0~8wiY9mCTGZ~4%d%=Rjq*v80dcdgYf>Dz<6_e{! zo=#*c3Yz(XW~rcAG~KYaYhoI?R1ayVGNoXmRhfLLmg#B!Feno# zu}jmrRA1UsE0@+Gf96ZAWEy>Gl}uB+e9*mayorTDACeuK5^4h2ljSnM66>m6x7kovBw?Kr7D9kuUy`U1D2^xL?9qP-`L%gHf zQQ53wsdAv-u(pxiq{Z6Ymlbf3@(mMO`FVl+NfcXU7H`pd8s=BTW-VA1=DR->0`FQ2 zscS&7gGaI`^e9qXu7z0JOtY>kM!RwChu2fF+=z|{sz@{zdeHE{l>v3Jb_K?R#iso5s} zxvSY*uO_NX0a3;NW1dTY714md0(iw$OX`y6sT?ig0f1oG>9po&hA8|ZCr+GG3wB-27GI?`4C2v8ufjSrI{7fCSRpuhy>p$x$v$)y z`^MGi03!uq)e~3Thw*Eib!(hW4LGfoL9akOE5s_Xp%@xuDl+NW_} z*7b~Y-P6vxXPk04B3xqy;wlim7Z5I64>q>zvw||wLov8*#wkstuoI01C%kr_vDGAp zFPZHr;x_dgt90Oksj2D~TZ6At->{@Ge)dkpu zDn>}$RSkIyLviBn8utDa_Q_=SuEfnBDp5$!e)1vZb)>oyOj}HCCaV>eOe|YW{U%tp zBu=`CO;6uKKdw0trJ@w}QENwOkNoZoC>Xu+u?e{gR-R&8^VoG$`Q7ky@>w71ieaZF zWyv8;YgO5V3}rFwl1xfwZ98-7l%O0R8yGr%x=$GH7y1WJso9>SF36J{J9$%}N-s?d zER9u+TbB54;G+T+k%7C}BGw;^XxblG0kW4V-Xzz|IPkuAJr(euaf7Nx3xAqIP5Lw& z@3cL*^rhE=u2d8ID>H}pV?n?)$FW-yNR%EI@b7Yy^gJctroLEz2yatjWalP`IhUEX%Yvrth#Ike6;o7h_S3jWat&AP ztem|QwnF7I5-h7t-zk9&lex1ie`l>@rWV!*MO!e0r(S$;Zp-*BfRUR1!x?`VfiXC0ZSV`iKfe;* zKh-xR>>BCo9Ug)`fRYbOdP+WKmu8B8#_I_a*u+_+$N?c2UbYZ{PZ2;RW%7V)X(oHu zRQC6;|6xPr8*lz`PbOYo)rav?KigpZ}NlfQ5)y4tx^dwqTkU ze#L`%UcF!{*&$4Bcq_f~LL;nTVzS~N-e4K=Mx2^F$Qi0Etf{FXd08bR!<=!+h_qp6 zwqvP7UM4U!#c`H@XS)9yX-_)emX5oQ)^tBm3C_TWHCH9p>(@i=_^WX`8B7v(L!`}Tt^yQI#(p)f_5uvGk3Och@QSvj@G!aFk%XyFJHQOSCQ*Q7HZhK z<@5WN?`qkjgHc1{u3%RaNph?Sd}~F zu7k~TaCb}FzOMG&oqLqMT_2poNu6&Gw;VWspmpze-96nG;GqU=kpKEyWrJ|$uAL$S zLa06~pF=eg zbMZ!tqF)@GForYXMt}}FMe$#Jbj?=u8miVOc6|R5f#Cuf{rLntFF>{)~AxnNLq)L%r2!8G7l!2lTghXAn_*g zWiF!JwjzRy@ap?b(jq7HS9xc3!y@PU2%NVjia1+YA7OihM}%9?EON%p7k=SNn=d>_ zKM&)lNbq1Kk#!`Zrc|miry0_CUS)6M64v4vI{i$GGr=fGJJY;eVw9#6pz=+?m?enGQo%Fkw ze#P%@dfs`H8npRRSFI&h8L-^6p|wsV2wJ@#xQmvVYtT6!^_Q3{^PCdrEI9p=6Gp;} zOE0X_p}l$YoHujy8#B*YJI~or;AEk}LR6wn41eSmCuqA+murL@=r95&FM#9W-O2yN zDXrhh|I{hHx|6@hDgACIe=iY^LQX>=UJ0gfL_Lv`Ank|+DXi886;#&3xiAEAl?s{G zGETqF&4qjL@rBcD(K%r18L6 zF0#*Ox%q6o$)7s(yc2!aS?*L|qfg7?+I1D>0>h|?J$97`)de%*K{X4k(^)W%m#aj( za%-C##aU&|Iytqyr?5%>dR<`?yU^TbM0|ZrWnoigaU+boxcA4%@akh`AIPgKZX7t( z+z8dj=EnB*dhf^v7)RCnjGW2!T$b3Z5jX5eCi}}s;P9ivBV&EN#lqOI&^tJKvJOZ( zTOP?arGW4$RhA5h$GFp47Hq6s0ug>MPQWwZ=Da-8H##aDIM_wG&yEa^^$B3qubZmH z(~)V!AO9z6sN)$r-uFe4s{R62^_aW1xUr$Qv9h>{ga{!bq)8=02<;E)>R&vJpptz@ zqft1Od19pR_?SxU)fG3vE=X|`?1HRq8Ym5GDsBQj42eUPegI)03g>#m{8tV%tyRMn z#Z90Ny;;E}@=PHdb}$|e(0Qp?{-FT4$iE=!srlytf80QCnD+y`rNjn;vC0?XG7yMl ztB*n3rm05zh#>9e86mvk{;0|evw(#zIkn_8+nfpFhP^|jWUbx9XGTu+6%#FM7aRt9 z2+EbW?&%vH8yq@5HaI*~%#<7vn^h9b!VMGA8WxVzTe$^Qcj~^8$XbgzOVm zo0JsxU5m?>b#~Ah}Nn$1R>8R6>4}Ep^ z_*bDL5HG2tEJ(sgpGthwnR$35Jpt;EGPQloK0J#(l|;jxieU#ge*sJYnd~21V<4BX zw3&*~Qje=E3F$yiKbJ)*KhRR9AXOAnf!)A;yz2SY%r=c|uVmhl4dqHic_p)rEwgQY zwO#%MU9eUc@b7T@K2&Z8m{^=B>N_v&^uNVN2Cyol0wDE8FK-M;nSMSj;P|bS<>$i# z@=LWj{*r%4*?#ULIIe{cE2vrzps->TRzDOL7&6j-hkVM7(LhHw6*q1ygm-|ms3!~z z5o01}#6qjrgEr1AsMlKy*+&w<3<+loY#15jsMkX^|B>QGzObpiUO#}`rwW_AW1zV6 z0`>{Z<6!|>@3_W3=rFNYB(W7qept-gxd(&1SjrD%Ut^!((3^Mj`2jHk@m;qD{580K zaBsk0CEXubrRVPtbQ%NRpj-4K7<%-QTO)12Q1IF@cX795w(kofs3*=6iLnQnfx7mmbERG^fp?)|9m9~=BX5)8{$ zGBCYnTjk|+WUI7^o4NEtKBHV&&s@XJT#tDH=1LBGr>*370f=82zib3wF{+ZOFT%k2 zJ?u|xn}631KUecvzrij38}VK4v`LWx3=e9;;E3BWUhJLFqb+$gz`WC7PqALVe6hF< z66v{kve_nQZcdbpf#7O?9?D0)2BseQqQe4U&Kd(nS^*DC_OLmVmqgklmq+v`%6kh| zMxwJqg%k|Vt=Vj=PeSJYD>0y z)>Pj%wlR;GS6e@(K7V~OfHmB~Zy9>S)tcwpGf8}r+aNwGn=z%u4G4O;KcKVO&krIs z*s1pic{ko`A>K$GNSKB~iy(fo@OK27bd5RuoiwO2#(kT#T+c5G06xLgf2=Q&!|Ku=SJek=Bz4P80MEcjzl` z2edsKdNX3U?fq%MZ^m_ZVZc8DJ?n^po(#p}x8;d|ho;AlT(!ix32bcwLRNGL+Gh66 zYi&{tY+D@IhOTWBkdnaYl7j$q0P-EBM?>tyuD-JZ0V$@e7#{ zE~t?*+(h=3yn04SzXj`7j;&|NjmU zbrh|rX#}|5lv7lA+CsZs2uwn?Bgqf_Ij{`vidEfxi4u12C>?@xPkm(}Ift-VxD*IP z3IlL3aJRnl(Llp}`pRYKr!S;?^!)V!tARBn;HA`s37FE{$QNrcrMT%-FLpRU7UrEZ79?e8UUja zQgi5Wv-X&tG^Dk`WV=k=NR+^oPN;Ggd%;1 zib@Vq572A+jBUnh#f6C4t1Xcqy~ z&nOpP$HN`6j{*+-Hrm~G$T5ibnFz2m8-v3F6hr^WBZK{4Flaq^~9qe6$XbGHg^`b$#!6XkX?X>gEk&8Wk27Jv9k|a zji}Rr2U*s^lXpvD0WMq$4?s}I@P+_5ZnP0_Is(Vgotqo2n=9wSq8|fr-i}{wFGv8? z#zv`b6m!+Y-jDp@ZdjBPZ@Iguh`{z;Q#_~sBClOJ=i|Pt?n83H9Inzzzo~urA;0vu0FU`9#W3uFiq)E+?6SZDIO*g%8u#0QA#^| zqm{U3NaXrcY_QHdA=u&%3-0hoy18CR^&rvn^+FNjZmWtdAa92o#Q+1u=)}}?w71vC zsH1gOm2}*6SbZJ5So2Y3j2(zp1uxf;BtqScs^&w;tjCHlY#^5CH^dPAvh-vH_IN#p z3KAH=@$_J{{E%-6b}dytqY7v47G=m~d<^$FOz)j?n1TzG2fz{iX|P1O@)#qVA%5J& z&bIoS&?^xe*HRA+uz!kG?z5kA7?E%u-Z1>*Vn_p*L5_JnvfT$+=6#gqsP_Z*9w@e| zQX$z;U8T=HFJD_)Rq_|t_Nna3SP%yg-vcQsg42bfYP_KLAZzj-R=91Fy1M?3Cp~cP%}Eocw-Pg)J02p@4nq1U?2SsLG}1F=${b5qf%x& zz!?xK$z;dZ^)b|eG3MgR=V^Fgk7tB^I@VLu!LH1-_h4-U=wiekvkyB`gB#>Tb;7}8 zQcO`pbL09LPh~TR+ArFbt#)`)u#T1Vj00;GQmarpdYm4W%~&~rzofB!fjjs;IBg$u zJZ?YYxEVC7{h;*-c52$CVhAQ}#mft$Bsf?!EIAC=uDrZt7$U0)f~n!9XpI7NJ!%Q{C~!m9AC8D!{GU~lb!S)EOALwC-&Asg zFDjWJfDO{0Ns=yj>F`pp=RGBAX_sP}aWLApG)_JUHN*2+Zh{Em!5-Ofd(VXZ5dQj3 zB^CHb`w5j$^?wvY_NQ*V6cVbqJ??yZ+o~*1k6psxGY~Njdb7K4s8<+1Gp3vwBkEZh z85|nx8)00pMHA?noGg_FXz~H^pK(83KIP7O6I6yh$gtPYJ{;Bniy!hosE!dNdzv7b z#f|L|ovzZIK+}AG15z9Ujrl5GTsc{eX0OjvzGSb;^C{L>-Aj(xhppD&i#BK#aLRPx z%!ZXm+;D`m9mkTcgO*#O&(ycgpSxmPYpVC_zHMMxEJ|5zicKiS(HuUNE89L{#wY zif#TjC_$Qo7RBKDeR4l!)k~nd(Q5M7i;VI%0I0PzzN0iw^l}Cn%1ID~bJo(hl6Y}7 zXP_Q1lgQhLk8 z$z%V|HS@J|fbC0n89vs5BKF~2 zkLyEp(Nw;r>G&yS;CQXDduwMCm{nU(5BCbaU|H1)2b&0ct`+2_gKxLg3J01-`o8QN z8AZ&SzinagN?5Yei8CYM%h6greSEY}ID33>tZpNNc?b7uw`Q?23Fa@ZJSdG-PBs_U z2;n_9W+`pJ8jqDJ#$&I@saPQs)fMvNtk5FC#dSUtiy}4a*lUXUSh*5*jF)%1`%UWP zKa9x_k81~acgh!FcB-&hrhK z-R2GJ+cqGd#jHVz@A}hQxBG4A@>q0qctO*R+17-no3gFerdzVDkxh4ITf>^}$zIuO zTiFY>6k@4h1=zxZq zU(s_>_9)CIfo7vsc9YhIl>@JiCfZ(%FL?4LCJYLw#PYu08g-jOy>6c$YBQW4P`19_ zk2|=Q;rxDmTfG}1O4y%Y3*R&K{_NOCib0p?2L{^f{Tqw*r;7F7F)anq6D1raVfA-Z z6zknUUChK#_!%Kps0})#m`C!dzR)_EIBOG5-cY4AARI9G;G+w6$$f z-t&FFVl($SiatrbuABrZ@j2KJC;DsHkEZ)J7x{cezAZ(*&x?E~i=?nX5zzA@U`?NM zRTvuXFKp-Z2Bu&=)4*IssNX1?JsnZ?FgpxxStWB7qS|UaXoClh@o*3gsBJ^$A=(BP7k$WRs+plK--?=Y;fHQd`iQ>#&q zSu%TbZAqQ4n)CZau3li;>#Jvp-BmZM1%9mo2mT^92z(2(4K$PnOurO2A{~5y1PlDx z!I}PejJqAs1bp}=l?h+Vh}Wwz;Mg~f_MHMwS;t(ejP`&u>;dJ#QC`93T&66-aS}Ul zmQ?Hup8{X~2vsT8^)c;xF_A}=FI-y^Y|1RcQXb7z-py9_S9|@pV45m5zzJT?WUtO} zy+5s@g%f79<4S8%jM$$YUow(VZQ{OG?|z-@|S4r zmQ78}+-%eeMXdEPoUy$fcJSxIGiJ;lqjyw$s(^&ST&P)Btf#G+&{>uI$$q|a3jDB~ zsW1d8tdOz6+cYMJSO7W`bKFw{U4pfGtmlpjR{t@pSH_xHA_t(DP-?0z)|a6JNhCpI zHn5SIul8dFGryED4vD=s!{^70tLMaVT#8LRHvp8h@UWy2)rAM711itG@Q8F|Q0Wtn zYyGmKTj~bmX+fK$sn2PA8tgbLwo1EIVab9nse54f>^P1~xb0)Rq=UnseFi4bKl@Id znkJ9mDI*~0A)xqd8UwszT-ghPA#VnN6I4PYgMvR|RpFA^v<(4!{VjIeiLx&QK6)NYzlxCj&ELVDP(x0CGxtw7kfPouM!%FC zMa30`_xgHav%8n;^{nU}kZ}hK{qT&lf)v-__T4UA=x`(zv^NOpiraC{Izn$D$tF)x z2#ufz*Ej})3t*~#-BfTk9AuvjL5)~oysSSNceTRM@Yx;0KE_i7`EJ)=gVr#y4P^mn zqeFmYV3EUI4v>od(*84pkMEXtA0In@YWU|zB_crz4@$&KDcmdVh2*91kaTE>L@A1uOfZY0Xr& zSscpVF-=@f!k1lyH%dsIMxl15yY`QX)wCar~}Wy+br)B5py4uKjV%l!5l_ zPvr=Bf0Bncxal$k+oSEx`QBq54|^`P$~-<;dEXl>z7lbgc&s@0Ku zz#oL~o#Q3PkQbc^LgnD#={`U;-w8HjmhYeJzO>MfqrCbRk$6_q zxOvJ9VOqm8Q4_h|1@+SA2GBjBjKILztVM_88UX9IThY=<}-bFpAxq3 z#2C{x{H0+}Ux=mEuj|)EL&Oo|(?RlKa^0IM-h%xenAcPu9@gyrR=s#-!Rg{guVI-A zgfSdk~<5Bu2fVyV^&$c-nB0cDLxv4BpF#gW-xEmr(6^s zD!oP7Q@H)?M`@lVQ4f;OVD3TG`lbBPtm>995HmFSC1?{?Ol%$|so2ikNc@Y-9?l*KVh4D}x{9EP&XotsZ8 zQ+&FD!8yXD^`9>jCanJ)JW%}LA72tq{hCVlg%hq60Xzjb4hdGm0}!l`pyN&|xCi2` zr=X_igQj|b7EU28BghcXP)(qPENB`7^hB1kfE+O>f%ubJ2@9#nOg|Nw<@Z_mY(G^y zqu)Ypf4@!F&uA=7jW|hX-@-u`!OlLFM!in7ieS^?l0$K}l3sQ}uJ&K00}2g5x$G;C zVCdPFtB_O9hIez(qh&yMn{WlS0vEq3q2;>nD-2K(i9y+$a^YwPVy0dP&cV+z`=Ri! zUloqq2<+bv=lXiV>k>E1Uuo)m33$<|;_E1`ZK_y_3*gjLH{r33N3b`zH6DVB*jD_5 zBI@<>H&qccs`Rd9Um3&C!5G9|lG8v8^IDE?#HyzJ!x0y=hFWuRG)}^gVR2{YmIwo|#8nNE0y{AzEbSF5{AD)I92h)?n*p?C9Yk z7-lj8Td!$vF#1)5`%Cb8ymKKv%k;m-z_;-hgHLbaqOxN+*ka`~{QPu(Ie4bAVfvuX zr_{F zU+*k!x9=_7+c)&t*nrS|=AT4w@*A-lnG(5Ve@PTp7qKd^WJvH}V4wcDKT7`Gw||Qa zx<{+(pK75{P8}YF_BKHUpz?G&@rkK)`kg5B6*34ZT=sMO-NbUMEo^EiYyv~ndakCU zsil$7oYJEmO8Cbujqh&b`*29n>UZ8U0R^a1}$1?n3fS{-`iuya$+cgTgRw?v{ zx_eNVP91)+yHAeRGB~e#emZr;KTn;6PR2-IUoEp?3o(Yk6sl+BB=*%06&MBjkjBjs zMt*J?z`CH{&k77djgKyecu_#TLNHI>g~k9}e|ped4DL=UFu2633HA}Ig-i_wUzYVt z@9A(%`uM?*=K&pP-|)$1V{*5;NQ-hG*%-WwyE z%CyaAlIV~pxZXHaC^H_=`0+(+B?fS%2_D@IU>%moC(AEf2821~F%2&u!AtE@d*f#&Y zd7?kQJ_$@goC{qBdlF$~vZ6#1yT0x3kflB`RpjMX5Bu|}q=;i9c{UHZNw*To>XPZM zThZB84%i2*F*r8NmJh-wOo#lHr$)L%5Bo27!Y)hKUHYy&^<8)9`;+9b{^Sm@Rr`;+ zxk&etUZ`k66APM0kh>~|f|a1FhYPTy6hdZsy11!2X!T!NbR7xaE!ybr*DD5_Y{U?c zc>Mlmz8)KiA);V#Id6#Y8@lunLNseUS|;fu*1g-z2b$fSl|%=c#I%lS8t8ERTNBfy z@<7K*jS|z;XOyG5n5Jq3*T=XfALYUXV+jL&5Fig*(DjSq-3qL#FzDC~)H65?oPDnx zzbDN5g}QBzixu6p$hurLko0O0G>%px@tQF`un@i8lfGfMs+bTaaRIK;cQ!kg>y=6Z z1%18T-`jc}7I2!LnChxO$|bq&%IbK?4-^cY{j4LRz}Glv;2`D~=T^5H&Rlkg37aq~X_#oN%1VGo`OZsI{yd&7OLsiaF z_dNB)L0>Q9oj|ZgV*~W{hUgmCx~WwcF3G0z)h*%+(kh6tA9hR1GSJY&42d2ud5r=E1VuP<(X@;2 z_jk^KTJ7%hywCf7-p~6ykAvs(|Nqbbe)-*hAA_)~q20t0_r9veu$t66)ZQ$PI-pc$-#vAO;qu}(!KAry;r4KP{LP0nTW|c2k|8RD~F=dW>y)~K5 z{DLhyx^;c=M`mtAah#ubogCxMlt+1=b4Gjr=!`1<$W)ds_bYqb8S36(9b<`&vBVaL z0{2#oxF$x#)eY^G(3mrO-IlfLHlSd!gNqg7r%jS;$Wn>qa0lri9W3xbF>wx@OU4*qV*e&-tK?7 zln+LepdNuh7^a)~2DTp^XQw^a{QKx!1QcYhkI6f=q%9Bc9@m+@YqsE(15qvEGdn?A!f zbJl~8KasNdPyE}P-~HR36RlT4x#+;;?QE%IZpa}3al2T14x0mciK-`HjoDX!x#?{E zr|Tw=LBkrSAtp@-=t`O`exU2 zT^D~_&_cZ}XGx-@qv;HW9^zTA5q~{{M05aoIpsk=;qnr~@wSF=kQh!j;UQUcA*+Yt zCVF~3HW(&~fP9J{gArABPHm4`rSuRi#mRR9-X|fip!A3zVnb~CKjbp8*|~<;h96R6 z7zJ3+#qVvjbvUk~?Pnp`QYRFq?}SepP=_7MP0N|P;jdyjbi5d&Txx{A#oc~1Obla5 z|5ShIzFOi-x}Wt2OZtyPkO4F{5WEA!jhybTF)1DE7>L>pAEORs1INgNTcG+0TU}#G zFBCOjH)7YCbt88no*%ah1Zpl36M3q*4YrV>5)t!SDgIdII$>W7b=0HOQGl<&7AMgr zbQ1BF!5GTFjaZ4a<17AaD?Q334Ux+xh6EvKGe;7eEyHBtjDaIe7VR&^$QiR!OhA3i z#%TPd0aA4!k-@?-fg=nS?JtGlnCuh-C1RrSN3x?18(2oL8YT7*Px+V|4szZ_J9%T! zImp@(`lU_-z3L8D%?(Bn5lvvj0(a67rz@Zo$lM`lRx9k&qtza;o7!;5eQ1_^(HZ0p zhQ)7wG-5W4Cj4r1OYlzEEC<@XY_#&p4GfDAvegnJM;UlV-a2s2PUapc>ar_GD;;ho z-++e(2E`i6{a|d8@H8NHZd9b)RBm(|{Y@GtJeAN|+29aI0_W?}oVlJ}TBCmR-4EAs z7zOUMMAgi6D0hn2<(R7eyOa^)efd2Uwy@u>8h>Q~XN3^!a4XscF;==4WrM5ZQJNf8 zBX=p+@|m*zB`x*eV5wsL;B?XF&3~io?@9Y&uCc%a^^1z)wWZL#5RY@GBr>3-JfKY!Y&!YEfjG9 z`9O6;WGp>V-nR)!4+8pm$avr(qdI_nCqcgKJ~{1>{|TjqeIP+@qUl-o6>J~~*Qtmg zF%;)|j2Ipx4z{tI;<3U~z2VLP8??{Ai%-RW`}c{S;^2f&b1%#R`+)5YxxNS3eRDt? zk$Ua~dxA}vt^AQQX1%hL9hFr0%FfKhwSbcf$S^un61Iy2^K9mI)#^6QRQ!$V<1ip$ z#8E!|_q01?OwX8+F@^RB_K64Nd$N^)wTho$cEzs?o10~wTN>ar+074ZHC2G-^aGHu zKsAUq6H08se24X&Q88j9Jz>`4R0mj7-rTCHS2Z0HK@y1500`(RDEPG?PY9k5K9qLI z;x6HX57(?=PzurXaXJnIE1e;F{xIhNZeinRIP<=K9V7nC?q=XJd*P61RUayccKPrI$AT&94(3l`yFGp%{hdQ)CZ#t=S zwBbZ$DgaXIDoZZR0dPVisdd-Qpb*Hkmd*?Nd=;)wCg}L6caS{gK-3z2a4$glPg1sE&{5?fJ2N*zKzerm9bHK zE>*rFLw}bb>G2uZV7FoS&HCPzM3yCRihcjqF7Ob226a^ra1H|vL zgFtHTEVUly4kmgEGJ~;Gf>R$vH#L{Jr_r}-RmR?t`4xIx9fWa;QuDv6X6{jYfPlu{ zHrxKeEKJ@t)_Q1nVkCj3scSuJV!y$&rR=QQ$pz0WRj=VYdOHWZ$KZOD1#@2!U9O1H z`t=GA=ffVXLCRHP}S+$t$oGbYk$Vjm)PElgsh*G^S4W&eF527&@L z8RF@eX}H4()E5-vqRU|T)<8(@ORyyUGQVQ`&w>b-Vnx+6{d_OM_RnW_y@Qzi@GOwM zX!fW3gn7l08Yf~v0a2iV<-n1jG-MecwzPT?|YgrIDJK z0%iRohNKE?Mauf~sp}PO64OyU#YbqLs3|HaL|s=j>bl~it`GfL>UuCfgU*!f(>y`; ziVY^0Yf|O@QK1iloD0!^g+%|ALv_07e`B~?fzY+$JfeXY&d=mZVowes;MONPzs;uw zwF?q{koOM(K-DcmA5Oc?5OTA*`*0cjy})q{Y-M;!ag3cmjdlWSc~e_^NBU1x#E#U1 z6k3XQBOCC+xe!)^nq_GIa&N?*u*Q=dG)vz)}}8Ulf^pLA&Q`cPCN)*8v|M?*dr ze2^L7gHQ;xl)`V4*wyuI085!jAbTMW*gCOV58z%YevC3#58fj4&YAIuh^!o$ox20(iH0REXN20=}s(V~+Dh7lm!Ae->QQruJIG z5jtBsflz|%L8!{JjL!y**=K{s?9^@0WK7KuWHYAPZ=dSZ)B{KhYl3%7&tb@#AaNY1 zE4w9I=TD1U)WJG?V4*-{bto2#3ksm=plqxDpk}GBnkd#C+8 z@4RBFI{asO=ZNr+ZNi34Jn$|CxMuO97E}0Qeamw?H@r%!LN{ss@NBtM-r9DtwgUnU zP(yv@hIB)s_#Qhc(S3-GNpv5k%Mo0}uMj2{(B%Ry;W`ip9b;a~8A8qpYu#JiML$>GFK%xl%-d*k!si8^Rrc3YD+RkE#6$dPI(t*6cok<2rz%RG4-?rWX(aGaH@uClY%OGFhP&U{wDN z9H;q4Qtf)!7)h6skkQ;`Q9usq4@{!Oxb;-kS)38Zt~> z9WCK0rZMrn@Q4!lku7zuAHF<)UfiH}F$l`bn|?Gb;&puD8=7f{W*WF7KQ2jcv7Q5Z zRlTXW4Zecq_dnS2;otuLQSrzBjgX%IX=-;51O}x8+^L9+ZFk&CgId@{qgny->+c$B z+gEBtN7B?`4Y83C?2y|A)4%00Bks7}_lyZo&O@hZ)}_gL=y~nQTcETFkLZt*at^b6 zx#1)Ib%PSVM(J3t+oSe=rC7SYP@jx*P8`a66g%J92az5tbhodzb^<5?b@?hphjEfXju<>#+FePj8=P%v`Fr+1+I8B{VuleP zBmstKaULl4x{4Lfdz|(jLOCFM0U>9XF^hSmF^hQ&|DVV*;?ejRfB{I}KyT5xE5|e! zN9eY&xxmZ2RH{7{Knl!Uoxrd^JOEicr=enh80;xlA<0D;WjHq{hk01n2PL72FkRsm z>eqnXAg|fz0B&jHKuprPugrAAqVE50LwMS+I74>aZz`?dg)!?Hczbpf0#WNTM}CTB z%9x!=l50+sHBNmPXDfQeOBxT&^|izyfQd(=^wAu6NA_d)C3WLEyc+I(3$kr%l%`6h z!4;&OX{@n0t6c`=WL8NMK2Ss1kTSowljJes4wK=NBn!PtN%HM7*I6-u+70NOIGNsc1nec=OP zhw!2BH{tKXN7m|lqZLP`wG*n|W63GPI5PN&u0L>RG%Mw>AsgAWXW3+SUh0aprO(V< z$tJH@kec><3Y)g{*|dczh||ExMc9hpTdmMviumZYpmTaY|@ z&eFwcOMRol{%BOlfVT3qJ}3@-P#)6<<)Q!0LAfzlDNCPES-fmHmE7IK`oL(D?OzW} zR}bG9@t@87#$@a6{eRluH!{&@D@>U{Xdd&uJSH0W?3Wt>QKDZMt@mv-8DjrKy?@Ju zxH11RAuLK?nh-N!H`hq>KS1h*`475Jz;J1m755_%G$2~R3;#0<@KRmdv3*o6n4?F#S2qb&_2*ZOBhHAcXRt` zr86dNpJ{AnOwKmSMTHWxuZQXzbAawEZCSSzLvIrY*C=9VBDzA ziCqOwO?h@D_N0|*%a;0Te`}eHuS|pKlaiggN_X$syRWSLvkGtJ=liP;98?Y+K611h zLinGD|H?g(8tG!ldsa{`V`)^bxR|xSVk~$T0*5d`_c0cywS=+E#KvhUVS;83MZz^o zeWP*`6EW!gd%JeJD|clSug-os=D63!aQkf5}ViltAbtiWkHbp;)>(~_TE z8S?P*`701E*eJ>EM>4brv`GwVDj&ft#0H12T##3#fJ z+(}U3j;%k@a16-#@rDz)o^&7gj)$h+F<1erWB=1F|NlIL^$r5TlN*vNtsQah= zxVGB^?Mx`u+9IK&uS}GCVrDae4U^q7ZQ>I)2N%!TgkKlga^8d@?ggMO=1<23l}rfA zX$vZe56WF-skF9;LEKC+Q((MTQmfRl1-yQ@a^(=0B1uio%_h$)1GG=EaS7bcEqMY$m&eo)cBuY|b=VpY>Qo>!p z#yq~>Ffa)tL&!{HxZ&3R`LF&a6nBdRbv-a^ZI)P*XaoZlRs-Lj!`IH?cO~)JNqk`v z|3Ol!#uX%|Woah<#X0<`Is9Eod{z>lo5Z`5$cx#kIsCJ8_|tRv@k#vaN&My{K0j$@ zsW%WrJRzW%DSK?=9Az+cdOLvFF&pN{*0{p_IVJgXe)Y*5h$UJ(3H@`;!RFX)T+@2* z!j$LJ0E#V5UXpSj%Tg2*ICbW{+3YXIjMq7c#1RYi2CD`KVX4;$X{?!poa*Oj5+f$& zO477P=o9+3``=H&?0-lG$gLF8kfmuB-r0&Rvo6EU?Cw4CoP1|lS#c{}rU>Y&(`z8mwCDJ`%YaAb*yRLsOL_#Cg-bk$s27`P8IO?$W z&-crP#Z0`3-ERzqQCfdWt0MLuF`v6zPb=k{ye*2qB$~Wg4)H`)zDY4vZ8JF>bPSK> z^9ukq|FwYk6tI8Kb;fz^YJm3vRYQfgY$kX+WM6AbJ(xkd;TYn&U#JJ?y;Zo>3BB>I zL4`8I<9XGw!HO9(*#6pI0hZ%qTS_va4hxf)BtM<9a7@TNb}~C}LGtq{OP>ZHG9PdA z0qS6ar2Ky6isS_=W7r1~_8?}9mamib9);3n2b3-ksbStrY6xV7dwAQGv#J?oU@lPw zeHo@LeHy_23U(>-($VQLm~v8n0snHIga&5hNuC0p%L5>B;H5k{kaZNwrj{0g6oFi( zo(;m7bHbQLVN8=S=DaZGf-t68sI)e&i49Ob%ep97_c*#24TGKC;`DE_R47-{i{vH5{KwFe{zNm^L7*u(Rr2l9XvL0_;k3%C)pt28OklUk51 zn-B-9#|MDQFaf2;y`c<)4Vht*I;WrTGcfUtm0@tV(%ncA+66AeZhF&#u=%%h9j?F< zCYT+yMI*wv+pEmMN`SkgDj*oL`65^w-)&Z`v=rwF{Hi=DJ#Wc;fltrFOqeV14+^X& zR|3jvQty#^Si_gRn8&}ECxuv-tjeR*J*`X9^N_k_t^mQO2L)-aP&F}FsgxcRswM?1 zd+hfJ)W?6ylY*?uU@6cFH_-`lZ!{ZDq+4>KHPf1l4q{K{>O&#DtmU7fWzJE~4r(Ca za=uaEn*{#6z+VvfW`Vyb@GV04H$r&NdSQ$U>5Hh(6MYIhL4pTfd9qp!Y zX0u)!ge4<@;iqp#ku&Hrbu(-PPuna_-yEKza;h|AbIK*|lGE7Gh7UiVvRMWW?(o_a z6Tj3*xf+mzo@@Doo6*IH-WG3y;i8-bQ$=Gl>@Bsgi#ItkuV!51E{CUFar7MM~)tbX?s|< zhhh7D#}1btIa+?;s26|74#S*1tl7huJ#5))@{;^WR8boqOT3Ayd(%Ix+MC{dk0`m~ zpOKwxenS8(8UJI z6hXUJ+{{0n$1ls{SLX45%yXDfoxjr>>Kfr#8e#3#N&{}C z*H{SRYFblJ2NiT#Tt?@EDBZHSuq7raK1V1dhbtWb2fADn?e&Qn-3ZVG7k>1*yBW-a zx~oE&ZVJ%%4f$7LbW)Dibns^{fXPl7Fl8-u!oddZS@4t{EEgFqU(#ZRY%qj=B|Q_y z;AajD9WZc^3{73I@xaCVq@?27x8HsL!*zHwfHMR5GAKWI6p|5eW&mFXaAk1h@ZN)a zD))Q$z@@?Aqx*MmghFCaEKEL_!qWnR(jkwFDRoK>()mL60~;OuW1HB=H#yB%cY!M}6f4_+ollqeoeJ>j2QpCa$9%9$x zKk#K9#-b4ZFJL8*;~Gnxo76s4kHKRi=}v9l#GNYHvWYuQF1L^a1`4Q^K8kt`>_r>9 z1+!<{lOAC{+O%iW{!L$QYT9&VQ{X%O-x>AJJ?|vF<9KKBJ6=YLH>p-o;1aqBdGRLY z1|jbVcbsu_ll6$^NBa(?-)-~}{z{EMPM^vhOXZI1C^wFvEYq7551 z+DhKqXmhxa+uX-&jvGn&?HiE-vsAm^2rtkdi;iiTkYSVF8>w0YL=Jnhc$6+YU9{Id zctV1^H}?9`Z}P?mHa@)Z*^ThaM=HWlNX=G1h5MR{Y<6b0Yq@fi)=O{>-y??)$&pIG zRp4tkhd4O?7%ezs8&DdRUKO09HX~6>j~twSNY*0Jo;`oao;nXMZ{oVpq_+nh7O}uzwB*W$lZx^#vtvHAse;s>E0^` zY``X{qXBaO)X#Z7WySASq!9t~A-q16Lbxn^tKxayGil3jK>i_9m$AP~O2TtM0)yM$P8ta2GPi(PPy7^ya6&yMv6BBh)u1Tj(#(8-aP zv-(8WFlrFqav3Yks}}Z&hONfp5z%<9*grfPs=+wt`$o&}Ndu$#!O?s~v};buzNp-E z6H+6ta!|B02JqAUdPjxmn#y!8LTyXXyLX$wpzjEh%=+H3&cBqDq9L(=os=;AN?Tk} z_JvW%YX7ikYyp2Z0eb`PNQmQEjNhM4g{v@@h3Tfu=E8%fjfDrmSlWA{<k@Xz*%`RJA|6e@*XuYz25g;O#yO zUL3oUNXTpc`p@{!6PM~cMgt;{P zICBSI$|E2*zd!KoKbgFjSt3l{TmO>xN2ft$FM%^ zGx4EB_NnCm4eT=<*yliCpZ$P+h64Kx2KMPk*r&ZEAA5t86zuhPj$}`6Kxr_>rtzhq zOaYm6(tXn4nFfMqL<9e3f%Im9+7Ah7k6M5dyxTfL~Z}GvqGa8~iUo z_ghgnLfLv)d7%J!8lP7HB#n0!0QchGEdUzEZ!M54R^E-xkeKckups#j1ztZVy0lZI zF1;)k&Im4<5u96U#FUk$2J>^b@ZX5iv|#?hE&NqcnhvaD3x7=%_wrBWx&knSxliU+ z)|lWpZc(l`MD<527v;Ko3W12qc`~=LqNW$H4J|H^Wwv1*Z}bq+-(KRuGzJPTp@e!t zLiP=UguKrQdRNA<4EwNvu412hVP(p*SiaUg_R(BmRx?1Gh{q-lHZ8LOy3QrYOS&uA zOP=pGdf4Z32@ZZ==0BGCIa{P_BABdKMekha6!fqp^B>Ak-YAs$zsa;DMOiFl|HE_% zqG4%di2;}xeK9e5Vq#csB1@R^?05eamG4?pw~!@Lmabg!0%iasb%;ck=oE=8aap{X zEb+96uIlrDVOjdfZ)m%3Np*;l_!#79gQ4ow6V|13xg+fL0veX%J7`!=?4V&exdXlT z^$z~r4l$mu*}*sNkdE(&Yht7mJDTF9lRKJV)Kw3m&nS>Sq;P!7eze2BfIiT3K(w9( z!r6ISXgm8u9=m7@?ammI(>pLEkUj^3cy@eJ(ElPT|#|u@WkWSeJ7;qJCQGt z`HeEa46>Gdr-yw+lwyOyZU2)rHW=LY=cIAL;I=Q7ra=22(?lPeZn_jl7Ww)Clk6=% z$n^oV+Pk4Q(8oSyJ=M_leH;2J%?32A&c3Uw zADAlKjdW>RZ)$+4%!VNMd9KlYfol>U%igZ~Xh@>XAx&8PA>{iv3jBcI4imK$R7;*PFxRXU_*#I#QT;! z)DdK{1mj9l2sM7m`|l2I>== zy&EIE-Z!`1ed3xP#E_nM_bz*~5Qc;TxgfStM%r^+6VzH7xJGu$`>yKFtEVg8CTO1il#& zADbAWCa2RqJ&#KNQ=WrTi!^QFBN${=oC&|qb7BMUW=cp4^TN{@K76~Bl9v|G57_Q# zc`;83Y+02DY&<=$;S@HX)9%w%1GX!{?o(Ca+Z9M*7J^j5FtpYpZmh8Jw8Hpg36K*l zNUKIIwED>4z1l91RJmkZtfl@6MG_K`emE4!eN~%WI#0EtW zyVAFUJgw1FFrFaw@XJE`I}+sIe_7bFN}|74>94US(0Kp_|FTdWM9-H&E`5f&f%@KL zpM{0V|GJQl#Y0PpF#m9&^y@-pnCOR8h|m+tPe^I#4?k21Wc7y&5&K(udM58c8vPYM zT!^dYq$$KVVP@`WLa#@_pUE!fG^LK%5W0M7yz;xtwSM=c&H@sU3n9gQIYbO7IgAp!6e-+&k=rLlY9sflK5{s`h=L8~))ft&KnWOWOqWBL#tMdW{ow}fReK>*3Ko%x z77SsB*B|z!&;se*k@ehr{PXYW{X)DJefGpEosO*6-{YNKF=k&(^WDKpheO&}!1esk z00bKBO^5iu6DoM)22}75K!U2EU}ZExSwxEbcQN{aF=8pvjwZziN3G)HgTdy~I9yfn z!8i@>1O@^6hM5F+N{v9`lv=ErpZOP3Rof1!X`vBVFm68E5QPG$sx2@N+DRI48ZHGC zd6&R!6Lga6;l09{TJj?H^T`AgOzjpd+C3NUAYdkF3bV&;eXeW3_T3A3k!JGEp1(Mmyzg-{&So!P%nqFXb`C0k53UFMG z{&|E@bAMM@C=i)Rg&Q;x9nbGZ7Iha~mf6n*}WfTK~p8$&gnS z7_5w!jCne+T_j`2x$Kd?5dnP=)^}BeIV2!`*F?Nu6YWDNPDh~-_ahvtD-Suvw+R%> z(k}?y)UiZA9ZPgs2xaukZLH}Dt-wWFr0uZ0z#2qCb$s)0>N1EbLuBn|r3XTM=nHex zv83aEu#E)*LHH8jtolv@oK@dRuu?c89z?BD`^{VxzC_zMT3)8}B7?eu%e%2PJb5CUC&aGv&jPbfI0k1Z{pe;_LWN$q8)4d2Khp4F zcp80)BQMQ&ImX=!_7!|0xxt) z+cqiUf;ALo7=yiKY5?2s4yRE(?&?)(4M2FUof%pU|L^~={JwYjg%|%og2Q)q2@XTe zSR_Aonr9f29cD`5ABKJP2R3gsxr*n`cR7panSMOen~(3!nfZ=HU|~kSJrM{Qd64It z*`8y`N^46Zw&C>FL`YAz!Zyi;j3F7uh-RxX!-OMGp7`Hkj{mbZ%F<3)D3uknR3cYx zk-_EurEHItTS{ack2~dt4#3AGWYNKA{wS#&dTSy=+B(F!Tqlm35}Dtr(O7c;Sl|Q= zl(rzh1A=^DiyZ0r$Mpe$Z!QTq`5754l}7NJ>m&H#4sO){;eQ)s{#6-O=X18>vT=Kh zQx*fNoU*kq`}KAyTUMTtUXl5AG9sOj21;5dOF7&5mt<)j8FqSEW=pn9t7LpFrGpB& zUD~+a`e{qfc68px?QtS=5s4}1iyOD=v49W#kpmF>9^m4y!MhnFWPXu^5fxh{AjqeR2@f^<<&)A+>#&^qQ;;VZDXY+p^M+UcxB2hxDqBGo|X+st(t(Cn_HGsb* zbRa_czhI`rWiN&tU(tt;<~sZQgqSLWwSFrvfp^LFe91Ks*!+ufrE;yScBtxKWN`uJ z2AlleDfDO2X(l*6SrWgIQjwuy$SH)WtnhN?HvJqSRA*BDDr zh|ia#H)O9td&T@%CBxr(I^~TKV)PN}8mR+sP#*!?;r#FoNJ%YE7V3p7iB$3`t>muZ z^?mG1a7T9nUoZcwc5o&%10+;GP(uA+ChvLGPh`+bU5!OEP-K=?kHoGxAS7HKVF3^~1@Yll4C9E0!gP_k zTQ)TU?e9j2#%9NzKz#5wK-gbqWT$LlpWFgj+qQSQQ7L8{)ppSq4Tb-wC={Bk31GVh zU>>iME3MZ=jZ=o%4Q7ct#cP7ZMx5mAtFL6&Qt_`46vZe8d4NUQ&7LXA3)!S)Q2R|> z_S{kk>plxU<_)^z{VXFL_5cGtKx~X{Z0np7u9(;}W z!yfzVe?^=R-8|&^N9g8b-RLG--!k8W-R5DB^suMuphpRm=6k9Rcw{r1?6Hsg#~3ED zA}deRm3U$cASDar$a}w&+N@Cpb9WmXo1X&p2I9KXFEy?xD*TAX6-A97)wrUEJvwE^ z_G8M7G&dMb(Hq>+F*k8X$ALTge}DrT2@|}^=$WKT1kKB~~Y9{{%CI52w zurutdBb+0SPG}x>X!!TTn})X!KR(>-H{CBa72BW@Er}RpHQD+b zJoUq%w+2_L?GU)n960>~Yz5u!_M3$v-V?!A4+E-uM0WuMGix9MEmzG2@P zPSirqOaXZDH|H37Lync{?W|tM^p=qOU@3vVF}wYOjGUi&2wY)mpsLeszdq6K9gabe z2%wb+xCQJwK%bCIpAsf4m+9N6T!P)6ArV8Y=U@UU+-(Z#!wpc(4dFOv2ZT#Z@04)& zfHcP2&w00Se{pHwoYLOV%@TWa1K8}zZ0<<;9cq2@y_(1+@CW$K)y+7-XNQKFGwh(d zAx#0Xlm(NI_zXdisod=(IwQc|Dm(x%73{jPuF#^I3N~>hnV)+`v&^a+fVN zO|D>nHJPMCTN^Yihq0d==L!@;D-Z>X;VArYeS3Y|W%?o#_8 zi|B)$m)XJh2?JU4Z}`|<5A>YMnaQpzyLc>ype$r6=$lcY&H(X#ezy?^t|n`n-kAuY zsWnQ#nsre<*G2b~r?}1P5Cm1MV|uLt0%Pb!HlGc>Ah3g6$_GuQvzhbf<4Ml{v+${e zj`W-g)8{;_{urn7mlGY{k&2o9)mZzEi5PP9HBG#1TX;&1&0U+u%o61^2Gt_h!5APi zEs+Xe0Hf}ft@=!ny)bsgfUjx*bE^jIxmsrr>3Sm2Ac>g@oCpK$GO;@+xc#Db0ZgEg zaE4&WD>RZTV-FnXg;0vO5c(C{A;|Et><4rIW=N*(cJ9bE+>XQADOSqjS~b`<^LkoB z0kQ&95qKlXw%)c@eO+8bt3!RIQhQ*R#v-54wXpu)i=M%`K`uzq=q0DX2kw;q=s(ND z8%kvp|8QwhWKcRkzZ5nriTZTiMw6Kqqi&cv!w=o%)5nuJ>IJvAIEq!OWmqQ zk@pQArm(Q@CM(@yQ5y5}U#e|hliV`XFw0%b)uyJ@a4 z?{0;22UeQk@}u>?aEx`DyQV6tr@Qtdrhvs=gU)u>qOV(`Oh0jAzhg+>X<(? z13DcVl8a$X37g8`GtHrns^R{$17-MW)U~n+h4GN{_w76bc%~P&om{3Dtu$?l$!5+B zOxHov2lH3+0sAD(>pkIpRec2nrZ@?Ivh=H*~yq~B8e=*r- z*&I;1nrNXeqkPbnUA29gYKtLrnA zp7L<{WBTc%pl3Kx&#ST?-hgnd}gwZq@U7@tP zC`C26ejx~~rj!Hl(z{V}eQ`AQUgsuOxJw=)hH}BMk7;Ay8J$Wa z_<9VTTYvZ6Xh=*7#Ph`cK6hz345Gjw~uB=k})*j7J_64 zFA%BriWVhJpaG?YrHwKPK9j+F8W*9ybg97IEaVG~O&tP^Fm(v;lIGbq-}#Itff7cI)VvRZ;04n2 zCeZn1wG+CQm$>t6$z=C=uSxYs4?;u)y-Tkcf_Fyi8zRPH(3+x&YCp`XofAY4O|lV1 z6RYnYrM^QZ=i?Jn(qCHrbLJt&j*EhmY=hCy-y9fZv4-{P-KTHA{^0`{X5gT~?8wOI z;Gq%2V_+hw^(@-8vW~1J>5te5R+8MOcH%vw$*1a%)Gr-P7gIF1St;aWp{?}=Sn5Nc z(kM{xP!hVgwlp`jXrbDM@p}r_pIX)Wr7iVWC>n(yCKcMQ%qXDnazj!o261IQN}fC#6h;H70Ii#-voThqu9j&WC|eGZ*2Wls}P8 zxQemEX&iATHf(uN#M#)?<&WDp-H*cOPp-iA)b|;8PCpZIW^O-MK-ahwO>_;c9z06* zqj3?gi@$=9R5W*_QVp&ExO1fFaO@Rpo9{7@t&Wb2Z4*UJoufNjJ@cE2I2&r(L zlPm`3SYyn5qEfRFuwfouTGKb+Ql^dGM-IL1Qjfp90 zItu$EnRNXZ>Cu0475(Su=kISe2L$~1E}GzC5P1O{yqMAAp5*N%M`H$)V@+6PM8OR$ z?iTMHXGlg%!$tQ+Zyz}rsT(GulO`#OgENapJp-|ijlR|f=(0mxNRrP%aLw>kX)GWf zhjhnOt`!95%UF?cr$F9=v$Ldq8v6${Y`S+X&?}8#3&HXt5xX@m4tf6b@rL$On6{O) z={`lS5U1$ORSg=`w`XxH4plZF%3bR<%CA6}Vv@Uto7i2=*RUv2j}TO-tQEkL9A)1Z ziCyvx3vl%UOUdh7-)&n_yo)PT$sX z>|Y5=k8O{0;P|jOd(4!hzJ`%tzqCNF)giu)lBbVje?1ZoxUjW5P1x5X{9~<{pZ27Y zaFx?DsC4=`D=f(2*{G4S-1m6*g0_=|FCir{&Otkn(L?)fc$z=@Jv%BCIRtTxC51@~ zCY7Vf@Ec(Ei(3S83fGe}mYFzHYAR5ZU)_Nt7sjA$?4FUSaBYlb)DiALP2_;M5vJ+Q z*8AayG5IEQv1NQ|{R!5%jUWoZf(?`C zE!3Y0cSNnCl@6eX51e|_iT?^sjex20s_BD(mqBcB)~szzZ#k?e9I8jxC!J(^E4gbF zi2N2ay$^*e>(?lk+0Q2HNS8aDGr9+O`$Pdya>fEN^NSc1JJe+?u}sZvOZ;%qTY;5I zdkNDgmw{E8zPU^oP&f^;ns&Q##lc=3NeG!%yt5Mfk~S#=)7E&eIZaWabkcXZ#b|0# zJKMyH`TU5Z=8Is2tyI3`;^l?Ms_1; zLxG^}1%ftQN6?1-INeQ^9F900krBG^M*9nQpX{vAEu7OQ@>6%92 zS!gkKFv2jcqDmw(+yhwSVy)Vpqd=u-u4Hr+wVk0d9-pk#YDRRs3P!R8U10d}+XR!cL-h_hmRK) z7VbH)5BoX(d>gFNh9Q8tMgT@|-#{?rsJk(5<2gU)9L>9wh7I!mQ(@zr*Kk7KOn7M! zXQ8tFv?h2>aNVf7QRX0XkTDm(WMi^pkYiA0c4l_q>INb3 z^tJE{JyLElv~Fo zH(19FUfVl%@Ka$mgI53P#QZhE1B>fMEquuwl-6G&gXGz^oD)4VXP&1y;iv4blO4Z>Y$o zI4ObcOkn?-Ad1Q(zL!T5*k=;NlgbQno06!9*%5}0H)*hr-8hB)eS-b3+LuUqM7fPp zy_R54rXc&mu80#cq9;b&O5SQv#xq(LMkP)>jrE2Qu^NUc_9WQz64>iqS7eH;@Y?2k zK-GMOqXl+Q6(V9}({j@+tFhru4g5pU+IWHh+jnNgt7g1_+mYETZzBBo`MLHfV`e#T ziwf}it3loX#W z?X&?%A#bs#U?`%PVewo6lAz`w_&?@u_pJYs&K5ZHC11X}D__l%FC6)5etZStYHb~3 zGFz;D!{L!SZ=%c3W66#NX^R`3Ii|om)-}a@0nB{WX>rY)lD|sW{R^z9Hl*U?M~C;e9uJ zCijQWo691@kVuf*GbF*!ED zQyQQK3Dbe9tWmBxik*{v73Z_EPrbfLK!2c48VU4cXmx{lprNOQpzMLHcY3lYVzr1l z%GJz>Y`8WOR{cJ^pi=ohCbo3u_1I1TD33b0uuQ8fD6^L!yRFq>_qoHq?{%NE2Ph!c z@5AontQE?6*tpO3c^}=U3+k`!B^>wW+Hv2~xz90?)Y2sW#Zi zB_F?f_n*qnV!H>SNqr%cg$ zF_erry(?p12+H)=%ItF^u^CWR)qbz;jSQfS+f209PbUaLZu7}sPEyU-PSoC>osLN* z&rDLuGk4?KlgX2um+1WdY%%~ZG}CSNMk+y4OCo5=AR$Ah#;1S(;6se1_lWTcvmbgS z^^Z4PqIH>;ZiCSU-KzlnC$_X`uFsBZ^qp=`Xh*KLbku&MR}Z!qkfgQks?V{RW)kSiE##EP|6_6M5Ip* zg~RB9l1U~GNRLtQz=5%)&}3nACj!z3ja~B$c_S{k&=icgT{jRv&%W)4#g7^E52(re zpf!0IM(rZG^njz zgg1&`Oa{SxHmU|)%N8`Vn~-t=Yh)eMPX~xI%yEmF*}u}ago$MM0r3L{@9hcIh&pdbVY!kK_Q!qtHNcs?k67O+=n4)|QCM|exXafIy__5>Uj+5+|= ztW2m200yPS(YNUP;t6iUthH$}vdu;*+Np#s#kcwsuHxBchMQ~scy@VXg zfT${M4G|3y*+3QGzor|{EhICvI(@b2%`?7 z-B5#ifvi4;ROOnW8!_tyrjY5U7#tPFOg}Uqr!t};0tzexw9Y%Gg2$u<9IkKH0eFGg z3eU(Iz=r81S#^)B{ovome_x>UlEck}!y^mhJlnA*E)u(q6Seta2nvc zX)?Nwwl1GV6XJ?deM*hRySs*hNDX=;R6kcRG;Mw{*>hF|HRTXCD3=-3E%;d`vRA1U z6n$UH5R5+(N~3wk{^31%qWyK#>!;=&!9O~qGB802nKNKlooNOGk!m)XeQN^74|&nx zbz%?mjU7mOzM!n{vlaMX@uLaR7gQ}YD`;y_2K+i&fMpazaJVBeq&-oEsSC6k9jjWj ze$^PDv?J*KzTHcLiCrdPG;YPA3`JX1U>IVWGW{BLjs@887@bfoG|1{{oQrx4 zVb^HLRCv0Wjtu}FVBmbr$Bk1>;A-fI4DghhaNdi$i6r0$qbER-zfF`EAwomz1E|2t z*!fVpx2NsE8 z!#~rj%KdrSN#rAWuTyp_v_GvZ{Y>&{R=KPa8+R$%@uP z%AK)>7_4ft8*$}_$`!m*ticzn)$cU2|H2)l40l_&L+a<{maU*vP%Q^AA?hW)su_oT z^&C*1zg$qaE*~1Zy5`x~m%H#U$Gk`9Iq(}tIGBciJvuLTaNYc$;$L^&f`2joL;M;1 z{QZNpUr5-kzrF+J4d^@Iar}Y?{0hI}QMdm3_U$`*+_=7@wO`-9LwryA`_0$!eaBPW zgvq!5f~MU1V}}eGk~C!A^jX?{`jA=VP}8b8)awnp68-WziM!`Ahd^A9Z_T+y0T_rA!4nPR)P1ow#o{9WP_Z{qpmsz%*Wt+xnDFNx6YpcDevw`%cu)Rhh zYBxZHM%2M`a{B?mA^>gW-eX9??11dlLIUdz{d} zxR3A6eKEh8+m*Q!&Zl;&gWS9D0o*XYs%MwK)4i)vsUZgzr?ouU)|iO)SQBfwA3H*u z`-uNh|1bQHK@3xC6F(3zV?DXfZ3p-T_qtGof)qqF9Z2|V8s|Qef0Q~0eR@kW41@cN z{A0I9f&K-UvYprTH^}+dMRK9kh>GK~jj(lh#N5H!3DzJA92pq(mDo9 z#9ug5FVxcTLv#ZY?g`W)Kn6dmB8XnvB=7-*P$p5E>jA?-Ma(y0Fgc-3hAix#M6>VT zB`fxKqTClT7R_Empj+C+Dly0bwP|nfL>ODciGHze>rvuRc1F7WiF~H^cb-6m93sAo9r>s$VYD{WlGJVMWwIR z_qCpH1wNr80hktDixK01&ac%g1&~>-ZED*FrVN44mjGd=Mg;&$!Bn0YQ8ss?mgm6T zdS~cPn0@2>(=IVnm!Nt;m0`0O;7kT|(O7U?%`AA&L}x|QJa!kRcO&G*n*?TEyfNG5Sl>vdsG9)7WxdSes9()y9%uKAS{@^&^UU0cvgO01 zkyiAT6lq0gDgC95EcY3X(4O7^+2S;zJp1Ly<eOD zugol2^bsX{bf`{OGGd_s?&sRL_8g{X4ii$LT;a+%nQKKVcr^k=q&S`ht^v}P(o9!+ z4UX;9T!?ZJ)>agk!w<#DcLaD1>Em_vjy~xGYrOtw8Ocbr03x7 zu^k-T)-=ZAfr;VbS%H6kDv&EKo*nq-#{;>K8x?CweBhrSMNmmX;GZ8uP|0I~vkJsD zm5RXGj}>HatkQspc=K2aV77<6V>h@UmY-wKl+X6sA?1ZhWFXZ}GogUef-`LTmL zUeu_$T5ascC4Lqx|?7V#Co2%Ep{VxmZ{ZGSwrU%?g^|+z#L*M^mC`hA+ z+{*XkhH^@U(g@OMPmMHwIO1@upS#WK&rTlNaJ{EAOLaPfJv3CHA zC8rkgMua$98Y^pz&e>V49o*5W8V1F(68vE zHafx=y`OoAQ$QL&EXe=7ng8`;0W|d^*(5sRAdBi{8PQY~2M7r=bD%en4CLF`LEpd* z`ntmsILkW*)+-a_K-jDd^u{{K;}$d_-V9p_HWj zO4PufF@;R18YXVX{x858G!u#kV#2YvjiMvy-`Kg`C>s0lsPN?@fGEy1hP=!wgQO@c z*DOU_xr<_Jm7mpVk^HQnN~*k{^&>|_nUzR9FTKdh;Y3L7LAhh8`EobL*xwsve>xhu zap$F%S?&VSWLC38lX;m9FzaDEFDF;q>jV-ZIVje+HF zT}SbWfpr|5Gv6kD*^yKcKYz5GBOiR*CpRQp*gH$a5KCq?LE6r|cO0xPtc)9v zyv1aJ7-x4cv4?h5%a^s#21{m@n&DBvIh6t2I$ffUEUnb}b)s%FIKu_=y-b{dhDZ$( zjZtlgiW06iM>(uGClF+AJ=n~4OTC(u-eFbgPqyDzzO9D&lR;in`?0=*<|57uV3e+X z$5)1S^%;g}s`i0+ruxf@=;}fX??MazgtDt#r5xg3-tmyrMS#cwUX(NJtHs{7!kRZM zt`E~)AEmo4rn@esyUwM%E~mS?(p{gVqxGeu@ujzx|6qXqmVCw)6hh{wviiUzo7xIdW%IM3gRJh*eoi6MSW*vBwNx_ z9!z;)c^XSKuUWP_Dm5i-u4-D3d{9>%1#HMsVrbLL%x*w@3oxX$%~#ac8b)J+&H|hU zaZC~sKJ-IBG-yd*W1!4<1!nO3&VRrf$h)C&`PG}-0+hH-g~JGcOc{b zFzGDQ=@Y1sJJAg=I!y5hOezQppdeRb8y46@*$4L|Te?nT*mh-^?w|||CQmH(0E05Lf-rAJE-K?DH>txU zH>C-^`LZiyD-u1_j%pmYBsw>MROXZvunK6g3z` z5VcGX=W0*h9bpp2Zr0@l+&%y*V4FEeLvsS1oUHHGHDn8Hq`>9~6LSJtC@|hQT`Az| zPVOGF3W#%cuZrUL)7bD5N)tw3C$rGzh{=<gSPFfg!gjGvsFigAA#F z?FIxy2Q!TpL<12uxUEj+JuF62F7LdnM6I)9^0?ZQ_857j>!b;n%Z(I5vl7No-qGbg z@5^KO4;ar`(jg(jFba7Q@S6b=VCzz5j0n-|kQjt@gZ(wiP01kcGA%9y#0_#!Ha8(# zHzC`Aw<+6T%GTYMZMZF4cSpAVj%>pns5s6P#p_KxhnszPJr1(CO$_Drw`sH!O<9<( zKoX6nFHK)v-L7u`WP7y5B+lFz&`2gIFa^#QCd+3U3zMO-rOs}nn&426*&)CeVs;4d zMU3!S8t^B0H%f)ck*LIA^@N~$rm!gt|5I4k8C6@}Rf{d2&sbYQAjqXy9m6uzmtC!3 zUXm^8uGZvkcsUJW@(ehAl@a9)f&W)7nRhT(E1!#$JU|$Tq}FY+_2X^lL(eN=U8I%o z-;P_BSF}DZ5B$Wn0;i0?#;+h9kYU=`YHfujQMQOnjpCsDUTRdLfn~WR31pp!M0c z%Fo&Fz$dG;>j_$#a5r>Ddq)7^6eaYdKPB3y9IQkS?8?gNs+>x2W_cr=CV(=_iOxIl zJy;1K{_l7r@X7L`g!ej5xgBAwzuy`OKn!La~=cd^3DWME65KPpO%_^^O!u(`>TID&4#Jo`aX4! zvxu1eGL0)(?Qwl*^|?N>`v2_|9A%k(FL9QcpF7x4iQ+d;noDFMQN!t2nCQ(QWcf1v zM7GNFwh7jPY!w@**@=lnjm}n#$_PGAx&NRH7^WYqG|brC)O5@4{G69sI-c6GLP<#Z{!2A}If(A1!)oq$7xAU!;XeLT+_ zD~v^O-(Yb6@Zb}IWmI$Smz8G-p^b#lCX^4QsvN*7h`;+Wr4ya5_&afI$uuKY8l$8* zqd!JAfIoCKVrX|Y@j*&Hvl5_GZc!mV^YS}#Oa(XUqYxZb(tuST?4}+S*$H;hT8W-* zeFuK|Ax5wpLpT8MXyO5ay*)3)XimEu?10+c!KYDor`&c@ZZCi-#{QLA_6TC(s9_DJ zJ_WbO8{U5ZqnXD1nMOsI)nL578@NI+P~=NR<4VPP?m;RQ&PpaGB=j6|H2_7>WuD6l zDhZ6VaYma?^&*~9oY^#u>Ux^$5=AaxRGQ+Hi5871_o@Yr6lTx_kK+@EbLREI>F4N* zJ`j=qPrY|C!?K`2z7KjYJQUr_TJOyZnSd43%sy%61dOlJtO*#7)j`*3435e^q0z5D(P45r7cRy!q=s; zwZ~T~7t7Ntj3-FI@PakXy2AQ^H5Do-%j17riGOVLz&TQncq6yjm5M zGEE)myCavqr>fVftK&Fwj&t=C_6Ap2HD&;`4QsxyL|d}%WLWQu(Bu^I90D62cicGD z{KCCdmCDM_7*)SR{ztWDm8T)GSUEFhmQmgaQF?N>9@;10kJ=n$XFaoxog=-g8x*4} zKpIP`45dN7u7rV3n4lyT1Y{Zv0!=S78D}I19wdIL7+-2N%2*9zR8$G_{(c?jcJ-vYdeaG!7&3bD?wIbw=DMKlGR9lM;ulT9dVl1p!;lce{sNF$N7n>F2e5CYaov6tJ*ti+fR9FTAJ%ocd^rS zTqE46y$pDPT7~Pk#^Sm4@Y1$q1ox&wuTwkAw3w71=vo=k!~FuGc)sz%=Y5v~LqU5y z9IoXs#ufHvkB+kj5zdc|0}lCd>U+HUo}j*OQ{T6%?>p4@opGo|-1DTB)|mq;5{VcAbY3+Yzt#sDxJ;sR7hpxpWme!a{Mwl?#1R(}nAogzA>l9sb6~ zmS&OX>)Yz;&Q!J474YwMV-->8{Yv=a%0-y22!YQ&Q_2q?zDTR|P%G&35bKN=kB(Uo ztK(EXkn-T=8nkg$RR{q?t*DBE1w3~Wp=f<;xChvLFln5D(|rQ}TPrbGzxrukf78$X z&-4E;2Ixi~+%EowvIHy8^4R)~5Gv&hu`D*uTspOIV+AhNRe0Z2bfdbHQ@x#%4m~lP4(7@HEKlhWAy_G4F1JSnp?9lmD#7+qr`6pfQyrbX-EbE zf<6mWJCYUuK{es7;1RKTOAVM&alN)U9+#z?xomNb7Ofi5?w)RD)Aw-dy-Yd-KJQKC zBB2MZk6w|oenZ;&)pM7v`RvwRW`%)WG#{H990!HAy4KVFwz_tq^vJPO9^CL<*N$80+G{+V zbE2rre*_n-aP*e{Wk9C_>uFG__$*^2l&sII|#Ck~& z)lidqrIUg>{{vkzf9WcRX&mYWG!A25M{|a?1q9;V%doYh8PirvX*0HVw4}S5v9%+? zfZe)SuyckqU>*m90zu^GmjAaq&)}v4;l_|7esCQmZ6X+ul76LbH3*81v`v#ZT4xk~ zcmCNfPHvbB?bqbmKZ7=ia1AOZT~Hk3gyT{*Y0Z#C3a9&Un&p6iDS%WHu9Ff9ce?K? z6bzy3F*H}ue!@(xYW=IyzV8lk=*4_><@&vvi>8@%GyiwhL*8|Bs|4pCkQHVrU!p~h z>tx<2NC?6-nQBnr=ZejQ(gO4@48`bzq>J&XtAY<>opZh85qKm;LgRr@>&q*bIp`@o zeuJzxuBr!oV+Tx5%I=h+l%v?S){^pJ%7v6`DY{fs>a5hosrRO)q^?ihnELb7%+$P8 zPwI)(*3>|1Z|WDR+K$$kTlSY$1A$*)g1v!V_I+1_7^9hzBax&kW+pNmH)jsn`buSf zm|SjdeZ5t9eI9@8*I+n+$i<JRRgh8XcVVy!B(; zw~cjK*T;qDNnmuVh{)Ay+6-|MBtZg~D9h7G`~=C8DkD?+uk>0f9!tU54S%0v?e3gwH)1CuMHD}@1asoE`o+o^ zZY|HPb(Oh8%a!kf_FO72b@g_K;Z!eI`L+N=THV&x&ZXU9-r2Y2Rea{A{7N2M2nlIG zZh}gu-&JPqag|$p|5_n|M4T-VKmU8GxXXl_X|zJhYW>9U1J0FUWj+-bbfqY5f()Zfo*iaso}OHSV~&glNQWCm||O@O$f3;z%{lU0bW1 zr><4XvxxK27Ct?CBZL;(!Y4^xVq#uq$};db#LCnH8v35P_yJ`t<=TxK-50U?F*t;P z8WS1Y91BKqYYefNUmjFM4$4o;cZ9L7i_rdaUBZjlPoL{zlxm-o69At%2m(DHN0MLZ zyL5&0LpgB@z)6q;BU1$=OwkssF?@e;pZQL#agvypR#a43EtXa_5pVQRF>O@Tmf6N) zsKqM=^N;Qo`;nhaMVL_<$lDr&EDEE*)2o^Fsgj_8U=&9oYd{LUU%^{2sX=^|Q*ea` zWgbp5asr}03z`4&-ahbO2Jn-Jf%TbJwDp-Ee>5Rds zqwl&njIrwpa^U9+FE(^8@EWqQN;JrVYwA;(_ZRbp^ZH<$S@B!v6_Xf&XU z@;{ueGIk$BA*)|8_~aY7pHL0yd0{%(&0kChyQu;EzyAi2wbYO|aVLl@4`%?abHt&9 z2SC*MaN;9KyR!~#>zbU)zMo@{5KEm$gkv~B_K5Rs;V2)qGke5NTl7wmLjZwea*ouL zaiGhuZ2o zgu_B(U42JIZCxXbgQ4pEjdeJNZuk?7OMZVXs>WIi{`Tgg4uKdj|H;#Bb+rXUNym1% zs-~{uWXs{f6i?NiZ7&zv~} z&iFfgLVHzHozP4#bt?c@*VZPS@sW28fYi0&Tm_G(oJXlT+N$8JI+XLTzMFlz9btTR zHK*E7H+jmr;wtIgb0V*Pa4;2)ST2LjOAn0nz*^td(%f;FkO~WJJ>ZK=4<7*+TwF^C zeY>iv>?qt+OI=k}UG-3}s@hw;v>YEl-CSE&?{5aW-sMiqg|#hbnk$-G-m639pter8 zHCNR5s+v!deGql+Rqy$mPX1ijoj|gk8)?`<8)SYZ;J3D~KS8KEDI)F+-tcKZIKLEVioPD~fx~@&d z^{egK{@OY<1cgCDzy}forV*htq+JJu3!UYgLE8rMW~ni5AMe z3iP6JsO?y5YaJ~b2(`+xsg;%2R8eCe45@}2(pI^4G}W38+*r|e5`7N$l*0xzaxj&1 z!HR7;br?5VpngvZ@3l0lJ)`lxMyd3$mOt)QD#M>W*|)l9bHhrZ*0rZLdsVJ&b*?!+ zm!O;)5ON9c2cH43#WkW(i*8WWRvQFN^)Aq>jb3Nq>Z^NSP`kpASLrR!kt0XY$4&{s z3)_EptgNcK1}*zr>;gcxtLT8?R{w0y*V0rcSE0d|3%-sH86u=Xfs=>CO?Yw0*uVCO z28@bOKxdkPgJG6+Dz->sFn%}RT~V0Juga}x&*fL=LS3@LoXe->Ry>%?ugLYR$}L%) z%jV~c9CqMr-^+24J6G+@-&we`Z0AQiLwDV=Yss$f?^>|)#a+90?cG(g>w{fAyXNK< z<-L{nVczw;$Tte|=Do4}jVInnvAy<2!5eSB(ecLTZ%o>=aL;3Vez9lYo~k_;_k`@7 zv-kUZSMPleu+`(B=@X#?Hy@+U;p$8tJz)Yl4}C(T!zZebPG^|Nh3g_h$QGuXI1&H1 zJe!y11m&|rza?5X6wH6j95vc;OGMphNBC$*4X6$kya55SNM@04z&AYIPy^~h_0dyA z^#vEENuQ%Qb_=+nq79B4u$k99fRHCPwmE{d3fu9GCeu)-XEBPZS*O0NQ&Gu!G8$l* zLWW1w`580q?b>Y5ov8YW!#+-&8ZSbXb6x&RL6wT1WvC5-j$2te6)3BIgrhZJ*2F^Q?Lh$-|+Bj@fNY~K#^Z+D1m$Z2)Z zsb@#BtEU^c5IDefFn*5%NmW$uu=Z7S?7-H5t{ot&`ViJvIScal?j3>7G4jV293Xeg z;cA=x-DaUMD=5r)Elh$jLR=gSlNv9spfEVjs)DoSk9N@g+MG?J ze8R*O!6t`@Awm)V=Ige%UI&HN-%k|UXa`Yfqa6eB(n*SkcnDCbl5puN372l5efg+A zsIPs`0hOzV9R4tQwzR>4-2pW+>(=o*9FoHUv^yM9E`4(y2;7|G@K&99wz z`*XzE<^?(UV%eOUgBWU7!8Y!5SfI_2V@?zfNx~kkwdUl@+qkpMocKKZS<ad=?+6 zA;-d7bNDxM__7?nAqQvsH|Ovzgj(T6+w+x~VY^rMTf?#82vl`bj$6>du{KN|3+K9U zIl8YYC$KxeDW_8pg4%cqfu65KHE0B<9+G^EjjOa^&1P7wIcHUTnv;uj-oLzAWxS!% z+Plr43H~XwC$kUZ7xIRUP|n+hiDUuo3d~`Cxy?n-A$)%b%@8zG^n+!{Dv4hXHyAh;Ubnvf14a{!)(O&+?d!cAx zxBX-<|I@uD3r^lAr3bdxUYv3B*Z>QwejQ2p{>fpV;9r4NrWsTbP)^+Huzw=XghhJM z!SfFObqBx8!SAQ~YqbR{Z5F(d>1;>-4r*B@X@_Hr!?7jTp-f7KnbR9^hG#eq@f;By zGjbG8^1NlZ`EPF3{n_*1yuh~-rUwT&y@)JjM3ypAeu|~OZvK5Xdt7~M&>EN{ ze_&Lqd>jo`j6+;v{?N*wBl~pCF8wbDf1AX|O8hSzY*kS@{2O0zWXO}G?-E~VU@m)* zLqsaz=uQx0$iG|($-RI+nxl&G&5aIqoKT=HOIe(TaZ8Ma$vHxpNW2X(3B)W76XI)> zYmk-lcMKs~JzRBF^C?iS!oeEv@4OzN>h$}9>V%VuKyTsa(G~&*JOr=M(%g7<7z_=5 z4G4U&YC-y!GVv{eTI9OszZm2uFGs~6vQQ1iq`{n<*4x+LzCFLs5?=Plck%!l^cB0zW26^mgd5&0Om+53A{ zqfaw~a$uMC209sb%EgE08$)m+%czp@{IZvDFCiwM@O-E>&&`hykEj^$=Eu2B76{7b zNXZthdxVb+iwTVm8DWUhN9rO*Me$F&r7dp$DR*-3({5$9H?(hy+iqyy;$|D%?1ygY zDfesxsN>E`Sd`NUs#-5pTEtn&>D@Z{>kPd9K)`vw+h?nD`#B|AdfLrzaZ7$To9_1b z-NLBdreFQuo!8*bJLk?aUKiW)GeboWKf2@vHuBIT(&!S%lRQ|-?u$9ZnoBYe1pxxt zes^cT{AMuYTK2#79brOV9?5uN__rkon7ZwC+=^xrrm!dT+4K^-L3GE9o}dH7I8L1w zf???nArc2eXb#c?qJ@*XD?PKNitb9OuTtu%lsYS=iI&%?|JbzF zCUR_cNk0=(S5hkoj2O;t2D@$J!9Po(Va#kd&VsVDp`67 zFkr-_KMVt!12mHUI*JhBuVcu(48kX|1dLKR(!>4378&| zF^V@VW17Rwj1jD10W=4|9?1G%C|ikg@>?6rf51^%W8-H_(!(}>yhr+58z1YD90sAKrl^=76e?VmSmS{Ab!JJY2mvA&#LH|)aAQdF5f)C8WIs?O&qdx=7Lm${UVZN^B=bJ?y+U<)fZj@&7%6N8X+B$c zk@pnZ4i`!*it!5=a6S4WYDXB2QWo1kB5eAYeu*3`KlMk#ZGLlsye~fE>$d9k)I>vc8hgxd|Lv=L zTDj=&tY2zTAb)?$s{f ztj5I-xV(4bn8ax;_bK8Ws$GHX)>-D zSNpU*vN-d(zT+z~2alV_ir z%0wCXlU5Bk$;m=S$D+cy@KNX4C)L}ML9>R zC|j`&jekjxMuuMSk{+RaZkOHY`kC?$`{<8owAAiKySjen)M?m_E^BhB*p+ZuuR%N; zFE;Z_Z5pQxbr8^pKV)z1qwc76z);-topOtR^*(XoQ2*2c{|OZTMR=Wam7udlWud$0 zEwf>TMUw*{!9lqIk+B0A_%37sYiyl5Mc)t?$X)|*qnw=C=M;@j1AWFg!{{^C8Htbd zgCQ}0V6*VA9>~7p)CgQP16hL^nBm06r=pTjwVv17q_CoraMk=hn-szBD-g#b!{*;Y z4h)NQZ-GBr3G2JJ050ec>UY3L32WBeqcwL9p`+Zpql(Km7w~^q!2hVgN2c!=@INl7 z==J5RxH`vS*_KWNBnXzAd7@tM^#Ygd3 zu^)&rKe7MQf&?i~Jx-$8(3<(C46m0t;ebq(+*Kqn@NZ&?HUrGO#&SAx0*IFJ(+ z(HMVKL}TO?=cp|U3ucdHDVwsCUuzW`K`m>Z*65m*1kG_A9I3@WeZV_K`uPF=9}n=q zrm^DGKO7((oyK1snB@&a0w*A*QTd-pf}#m*1Rdt13~2PEgZPOdvuU%Jth>npr}gDy zmxKA?{hHl)iyfEl4)Y&7Xy<>p-)7mb%BmnuA%g333qc%5Apk%AO;>_JER7eB@P;tZ zxcV^ZO_z4`2{ORz!Yu5M`$4+M``IV^1D!GQ=b|8t$?1b$Hj5He&uH@ebU&sL)vG7y zRWTm*QZY@i_6Eq;M3jv}Po88krhO&Vvk zt|=PnHHkbBaw1tqagTCd>XgmXN>CEyg(e9K_%ji3sPrdJHTMmi&bMQ*2R7*B?q{7}~J zVon$(dh^DVfM64id~69ntptkkaV5=hC7AVpe~4HWgSq~YXPo=r zObHbHbl{x$XAhw)4Q|nsKc=JtC4Bx+1+et*sfC=_rS3FLiTliRPpOXUP5u$Q9=V z%i;zUixYOr^>{!%ZqB!bl^p*;zAd~2AOWudLRB>w4TZNpG@4A3?1nyYdSsp&G&|jI zbNS+-0606RyFxsa%aQTc*#BqjUZZH{@9{vMp6mgN7keyNHin%ednN3)zwuaHJ^Vz; z)ytbC=^hX67LA4gzvOQ`wr48&&`RehLiHSZRK+(E!_YHP|^>+7NyUspWa26Zg=289mCycb*Zm_QF*LvBI@TFKaW~CnH??S9WMIA;* zzp-8%{lsvzTp!Qy9C`a~z~}*tFD~3*q>NNTnr40Mg6e&_8#hnUoeF?*<0^$A-9UuV zyrJgCYP+v9RUMoie7jVj5ZKs@J*1@8gv>LX`gP+gR{hl#_5~eK$e@b^({%u&+yt{x zrO*L!7kc0duN(KoCoN2fPg;QA;`qh!iAl-vNePMZNl6Ri6BjIqPl{gv%ff~6^ONF} z=2PJL@JC>TNhB{sBp3K5Am;q}@reszUJ##1Kma)rPU=?$mNXwx7beCpUKF3WC`tP) zCfHgq4d%iH0GYUGG51a6b;Bz|KrBiI^!f2fk&>fKAW6#o{N#8w(qKL)u|=9cARz?h zXg(4}b`wz;O8IU&^(8PnB8ofm@XFSo76`)EMFqgyEUOUF(HB56fuh{Ly&mYhr;6LOI&hj zeggMQ#7{X}a>63c5wVji|76yJ*|FHopOVJ3MB`K9P@aVN4I3WW5R0pWeB7=jFRhdl ztCEtI*pT9qm$_pR@jBJ`?&{@_#&L}if3K6eW|4WeoOI8jg~-792)jH(L+8GPb0a zTc5Cc&5xg!;>!_6y1QHpWMMCsJ-MPB-3~9NxtSr)c*wer{qslc$&UnmsgUy!=2u_o z!#KsqVkea-%xS*L`yuA>n#Xk1K4ib_dWheOJB2Zr_!gIYr%Csf^UKTmrR8vFy}#T$ zMoKB?)61pQa(*SbHKdh$!|`o2ms?n5dGI;{kQO3Os#^;IH45zE@P`=2cZkgxTs!7; z!$ZJkzLWL!8Eq1?tEzV~^P~OXTId0Jc5`i22mT8P!^W!&!k74{ zH5qH6i_Kgo9hk;hpBIl=e-0@$GD$hbn$!DbPHgQiD|1fG!bnga`(VoImEV1UC9Y;FGM29k7M8|^b;}=I z^Dy~7uzuc}^=$n^YuBz>w}CBNleRpTdpu$kcVy`3L4(IV+TihP3?76%>hcs{Lw79a zjhHlSG?*8xhord+<|YL#12sXl63ew?=y@q6O-{y$R)tsc5^W&Dz@v>jFLPgDtkF9C zGK?-8zNKz6mdfF}FeRinj-vji2!v3dXfTjqV84Q#vEF@dh;b#bX=-~;;6o(x~Y9KuV>hLoJ zBj^zcTZ#~0i>wC#9e#!&AU%NT@G}H~>H%1XpCOn4#il>()kETdgr5#SLoi`I62~$% z;%k}EBO~f|r(lLCWr|IISkFg%*zq$2Gpa{sp$digTBh~LxDG#qRsbsXf3*j5ZA3I@ z9B0xpb_c^ZZdQE40**`m&eF7WGq-lbBR{bGG-F7{pX8qT`3tcBlH;~!a#=RJWA|P` z^*>l#!g=31cD%CI$8n8v$NL|4a+d==%4c7GZ4*3MwpTs2pW=j?EXAxY6|Foie};=- zQdNuJEnh1UJekWeo2O|mlKc_CLcLyNE3j5&T~b18O=aBSTyFW2fP77GV;^0JH8t65 z$$O~ZL!OUuhmUfPabBE;lRo=v!9B!L=glkWr&Dq$9Q;Zs>^G0;y?LA#7k;z9hNB#< z<>0(YF?6LSX9y4Fq`6W_VF}7eYEl2aFC01CVEjabAWf98$J-=XNj;rvfZN(nR8It# zfF05QJ)h6i1AW;g>@5Nl_2!>5QI~KzZ-89`o5q?hTw;wiDz~O`QOxhZ5{${8R$0Xx zL2eM2T496Lb=*9A=_>o`%7yFTDZvXK@s=LLmf<6Bs_a@-Z3l6Z;M}~PBWl`oS|orn z8JE?vW1hEo_LhfLUA}zfGOM}p8LPcUx8D@qU{}7x24zMYhHvnEUElAo;hdV{ZQ&ejcgfnl7YVdW^rN8vi$fvPnDu literal 0 HcmV?d00001 diff --git a/asm/65816.fnl b/asm/65816.fnl index 9f344db..4e052fd 100644 --- a/asm/65816.fnl +++ b/asm/65816.fnl @@ -44,6 +44,7 @@ (tset mnemonic-to-modemap mnemonic (or mode :nil) (- iop 1))) (each [mnemonic modemap (pairs mnemonic-to-modemap)] (tset opcodes mnemonic (fn [mode] (. modemap (or mode :nil)))))) +(set opcodes.jsl #(when (= $1 :abl) 0x22)) ; allow forced long subroutine calls (fn dp-addr [addr] (when (and (= (type addr) :string) (= (addr:sub 1 1) :d)) @@ -88,6 +89,7 @@ (where [_ addr] (dp-addr addr)) [:dp addr] [_ [addr]] [:ind addr] [_ addr :y] [:aby addr] + [:jsl addr] [:abl addr] ; jsl is always long ; we'll assume local bank for now and fix up bankswitching in :patch [_ addr :x] [:abx addr] [_ addr] [:abs addr] diff --git a/ssc/iigs/bootstub.fnl b/ssc/iigs/bootstub.fnl index ad7877f..845d442 100644 --- a/ssc/iigs/bootstub.fnl +++ b/ssc/iigs/bootstub.fnl @@ -1,12 +1,16 @@ (import-macros {:sss ! : compile} :ssc.macros) +(local link (require :link)) #(compile $1 - (start-symbol boot-8) - (org 0x1000) - (fn boot-8 () - (asm (clc) (xce) (rep 0x30) ; disable emulation mode, 16-bit index registers - (jsr boot) - (sec) (xce))) ; re-enter emulation mode + (start-symbol boot) + [(when (not= link.name :udpdebug) (! ;udpdebug boots into 16-bit mode + (start-symbol boot-8) + (org 0x1000) + (fn boot-8 () + (asm (clc) (xce) (rep 0x30) ; disable emulation mode, 16-bit index registers + (jsr boot) + (sec) (xce))) ; re-enter emulation mode + ))] (org 0x060000) (require ssc.iigs.toolbox) diff --git a/ssc/iigs/u2-debug.fnl b/ssc/iigs/u2-debug.fnl index 76a9642..8bd5c14 100644 --- a/ssc/iigs/u2-debug.fnl +++ b/ssc/iigs/u2-debug.fnl @@ -1,12 +1,24 @@ (import-macros {:sss ! : compile} :ssc.macros) (local {: cmd : response} (require :link.udpdebug)) +; -VEDRIVE +; CAT,S1 +; BLOAD UDPDEBUG.SYSTEM, TSYS, A$2000 +; CALL-151 +; 2000S + (local Ssc (require :ssc)) (local ssc (Ssc)) (compile ssc - (require ssc.iigs.bootstub) + (start-symbol boot-8) + (org 0x2000) + (fn boot-8 () + (asm (clc) (xce) (rep 0x30) ; disable emulation mode, 16-bit index registers + (jsr debug-server-loop) + (sec) (xce))) ; re-enter emulation mode + (require ssc.stdlib) (require ssc.iigs.uthernet2) @@ -64,7 +76,7 @@ (= cmd [cmd.pause]) (u2-debug-server-cmd-pause msgid) (= cmd [cmd.ping]) (u2-debug-server-cmd-ping msgid))) - (fn u2-debug-server-poll () + (far-fn u2-debug-server-poll () (let (size (u2-rx-begin)) (when (> size 0) (let (msgid (u2-read) @@ -76,10 +88,16 @@ (set! u2-debug-server-connected true)) (u2-debug-server-cmd msgid cmd))))) - (fn main () + (fn debug-server-loop () (u2-init-debug-server) (while true (u2-debug-server-poll))) ) +(let [Prodos (require :asm.prodos) + prg (ssc:assemble) + disk (Prodos "ProDOS_Blank.dsk")] + (disk:update-volume-header {:name "UDP.DEBUG"}) + (disk:add-file "UDPDEBUG.SYSTEM" Prodos.file-type.SYS 0x2000 (. (prg:org 0x2000) :block :bytes)) + (disk:write "UdpDebug.dsk")) ssc diff --git a/ssc/iigs/uthernet2.fnl b/ssc/iigs/uthernet2.fnl index c649111..ce4dfe8 100644 --- a/ssc/iigs/uthernet2.fnl +++ b/ssc/iigs/uthernet2.fnl @@ -3,7 +3,7 @@ :gateway [172 24 1 1] :netmask [255 255 255 0] :ip [172 24 1 6] - :slot 4 + :slot 3 :mac [0xAD 0xE9 0xA5 0x4A 0x6D 0x66] }) @@ -29,7 +29,7 @@ (u2-write lo))) (fn u2-read-buf (addr count) - (asm (ldx count) + (asm (lda count) (tax) (ldy 0) (sep 0x20) loop @@ -42,7 +42,7 @@ (rep 0x20))) (fn u2-write-buf (addr count) - (asm (ldx count) + (asm (lda count) (tax) (ldy 0) (sep 0x20) loop @@ -57,7 +57,7 @@ (fn u2-write-farbuf ((long addr) count) (asm (lda addr) (sta [$1.ADDR_LO]) (lda addr 2) (sta [$1.ADDR_HI]) - (ldx count) + (lda count) (tax) (ldy 0) (sep 0x20) loop diff --git a/ssc/init.fnl b/ssc/init.fnl index 1bdfa86..745ed3e 100644 --- a/ssc/init.fnl +++ b/ssc/init.fnl @@ -184,17 +184,19 @@ (fn Ssc.cmp-to-bool [self op ...] (self:expr-poly [:if [op ...] true false])) -(fn Ssc.compile-function [self name args ...] +(fn Ssc.compile-function-generic [self name args body post-body returnaddr-type call-instruction] (assert (not (self:defining?)) "Can't nest function definitions") (local arglocals (self:parse-parameters args)) - (set self.locals (lume.concat arglocals [{:type :word :comment :returnaddr}])) - ; todo: maybe handle mutually recursive functions? (compile-expr only has access to currently-defined functions) - (local (c-function etype) (self:expr-poly [:do ...])) - (self.org:append name c-function [:rts]) + (set self.locals (lume.concat arglocals [{:type returnaddr-type :comment :returnaddr}])) + (local (c-function etype) (self:expr-poly body)) + (self.org:append name c-function (table.unpack post-body)) (assert (= (length self.locals) (+ (length args) 1)) (.. "Left locals on stack?? Expected " (tostring (+ (length args) 1)) " got " (tostring (length self.locals)))) (set self.locals []) - {:arity (length args) :args arglocals :org self.org :type etype : name}) + {:arity (length args) :args arglocals :org self.org :type etype : name : call-instruction}) + +(fn Ssc.compile-function [self name args ...] (self:compile-function-generic name args [:do ...] [[:rts]] :word :jsr)) +(fn Ssc.compile-far-function [self name args ...] (self:compile-function-generic name args [:do [:asm [:phb] [:phk] [:plb]] ...] [[:plb] [:rtl]] :long :jsl)) (fn Ssc.asm-localify [self block] (icollect [_ inst (ipairs block)] @@ -244,6 +246,9 @@ (self:drop (. bindings (- (length bindings) (* i-half 2) -1))))] (values (lume.concat [:block] compiled-bindings [compiled-body] compiled-cleanup) etype))) :fn (lambda [self name args ...] (tset self.functions name (self:compile-function name args ...))) + :far-fn (lambda [self name args ...] (tset self.functions name (self:compile-far-function name args ...))) + :predef-fn (lambda [self name args etype] + (tset self.functions name {:arity (length args) :args (self:parse-parameters args) :org self.org :type etype : name :call-instruction :jsr})) :if (lambda [self test iftrue ?else ...] (let [(c-true truetype) (self:expr-poly iftrue) iffalse (if (> (select :# ...) 0) [:if ?else ...] ?else) @@ -456,7 +461,7 @@ (fn Ssc.compile-function-call [self f args] (let [pre (self:push-arguments f.args args) post (icollect [_ (countiter (length args))] (self:drop))] - (values (lume.concat [:block] pre [[:jsr f.name]] post) f.type))) + (values (lume.concat [:block] pre [[f.call-instruction f.name]] post) f.type))) (fn Ssc.enter-expr [self expr] (let [m (getmetatable expr)]