From fbaa06a3afc3a5cfae389e6400de56f0c4ed3642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 2 Aug 2020 14:19:43 +0200 Subject: [PATCH] Kernel 0.94 --- .Docs/KERNEL.md | 32 +- .Floppies/A2OSX.BOOT.woz | Bin 467456 -> 467456 bytes .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/CSH.D.txt | 6 +- BIN/CSH.I.txt | 5 +- BIN/CSH.R.txt | 1 + BIN/CSH.S.CORE.txt | 673 +++++--------------------------------- BIN/CSH.S.EXP.txt | 247 ++++++++++++++ BIN/CSH.S.KW.txt | 355 ++++++++++++++++++++ BIN/CSH.S.txt | 19 +- BIN/FORMAT.S.txt | 33 +- BIN/SH.S.txt | 9 +- BIN/WC.S.txt | 93 ++++-- INCLUDE/stdio.h.txt | 41 +++ INCLUDE/stdlib.h.txt | 22 ++ INCLUDE/string.h.txt | 13 + SBIN/LOGIN.S.txt | 2 - SYS/KERNEL.S.ARG.txt | 4 +- SYS/KERNEL.S.PWD.txt | 22 +- SYS/KERNEL.S.PWDX.txt | 220 +++++++------ SYS/KERNEL.S.STDIO.txt | 24 +- SYS/KERNEL.S.STDIO2.S.txt | 4 +- SYS/KERNEL.S.STDLIB.txt | 4 +- SYS/KERNEL.S.STRING.txt | 4 +- 25 files changed, 1045 insertions(+), 788 deletions(-) create mode 100644 BIN/CSH.S.EXP.txt create mode 100644 BIN/CSH.S.KW.txt create mode 100644 INCLUDE/stdio.h.txt create mode 100644 INCLUDE/stdlib.h.txt create mode 100644 INCLUDE/string.h.txt diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 603cb792..059c1b7a 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -911,7 +911,7 @@ CC = success Get char from StdIn ## C -`int getchar ();` +`short int getchar ( );` ## ASM **In:** @@ -925,7 +925,7 @@ Get char from StdIn Get char from Node ## C -`int getc ( hFILE stream );` +`short int getc ( short int stream );` ## ASM **In:** @@ -940,7 +940,7 @@ Get char from Node push byte back into input stream ## C -`int ungetc(short int c, hFILE stream); +`short int ungetc(short int c, short int stream);` ## ASM `>PUSHB c` @@ -987,7 +987,7 @@ TODO: replace flags/ftype/auxtype with mode="w+,t=TYP,x=AUXTYPE" Close a file ## C -int fclose ( hFILE stream ); +`int fclose ( short int stream );` ## ASM **In:** @@ -1000,7 +1000,7 @@ int fclose ( hFILE stream ); Read bytes from file ## C -int fread (hFILE stream, void * ptr, int count ); +`int fread (short int stream, void * ptr, int count );` ## ASM **In:** @@ -1016,7 +1016,7 @@ int fread (hFILE stream, void * ptr, int count ); Write bytes to file ## C -`int fwrite (hFILE stream, const void * ptr, int count );` +`int fwrite (short int stream, const void * ptr, int count );` ## ASM **In:** @@ -1031,7 +1031,7 @@ Write bytes to file # FFlush ## C -int fflush(hFILE stream); +`int fflush( short int stream );` ## ASM **In:** @@ -1042,7 +1042,7 @@ int fflush(hFILE stream); Set the file-position indicator for hFILE ## C -`int fseek(hFILE stream, long offset, short int whence);` +`int fseek( short int stream, long offset, short int whence );` ## ASM **In:** @@ -1055,7 +1055,7 @@ Set the file-position indicator for hFILE Test the end-of-file indicator for hFILE ## C -`int feof(hFILE stream);` +`int feof( short int stream );` ## ASM **In:** @@ -1072,7 +1072,7 @@ Test the end-of-file indicator for hFILE Return the current value of the file-position indicator ## C -`long ftell(hFILE stream);` +`long ftell( short int stream );` ## ASM **In:** @@ -1086,7 +1086,7 @@ On stack (long) Remove a file or directory ## C -int remove(const char *pathname); +`int remove ( const char *pathname );` ## ASM **In:** @@ -1099,7 +1099,7 @@ int remove(const char *pathname); Rename a file ## C -`int rename(const char *oldpath, const char *newpath);` +`int rename ( const char * oldpath, const char * newpath );` ## ASM **In:** @@ -1189,8 +1189,8 @@ Modifiers for len and padding : Read formatted data from string ## C -`int scanf(const char *format, ...);` -`int fscanf(short int stream, const char *format, ...);` +`int scanf( const char *format, ... );` +`int fscanf( short int stream, const char *format, ... );` `int sscanf ( const char *s, const char *format, ... );` ## ASM @@ -1235,7 +1235,7 @@ A = Number of arguments filled. Convert String to 40 bits Float ## C -`float strtof (const char* str, char** endptr);` +`float strtof (const char* str, char** endptr );` ## ASM **In:** @@ -1250,7 +1250,7 @@ On stack (float) Convert String to 40 bits Float ## C -`float atof (const char* str);` +`float atof ( const char* str );` ## ASM **In:** diff --git a/.Floppies/A2OSX.BOOT.woz b/.Floppies/A2OSX.BOOT.woz index 7382135c390096bef89d1f399b0dc29aed8d2117..bac92eee83e22e7cdbf80f4aa6038d9b07bce3f3 100644 GIT binary patch delta 49783 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 D0pjn= delta 49401 zcmce;ZEzxKnjp44AG^2H`*CZp?bx}Q-5GC8_f=O@+SzJJSEZ7;2#0@6SF5z%-YSJe z3Bv1SW7I98L;+#nNQ9Jv^a(*8B$??AUxZzvfV-jv0jbQ~ z^$ie^WM-TYWI&Rceo<9_&iW$kAD86&{l3rpB2v%ylYjAVzV{dZ=6k=fxUl@k+IN2Q zJKsNmzx}U%TVLO6yq;^&`s;f^(@AbT&2i9VB9-y{W%Snamft$@V13=VwazRXv~t|z zSw2a;g2uj{w)0oN^UuC*@WAnjo&SFS_r7-oAIV4PQAR6jk>)^!lI!rFzP!FlAMO0k zufO$;>*C#Se#%^e=8wL?j*Gw8`N6OM$s5#;?yc{C`v^G_;ho>P{pX24`g`AeW9Rhk z-~Y}Lfe`Tc&#Ue1eb2P}@4j`p^Vh%r+uvf2xPQL$!$17)e{s|n+RF7GdAwtUUq1RY zo89@HUwiZoQ2fnrjNVA?F#qWL&=CyF@T;R0$G=7``7oAVZ@1zE6?;yfJ;%j4zro~X zT7-<{ZfuWg6d5LsRR@x8SKC!`L4V)4=Qq~U8yyUj9sc226=PH{^*+NG+SG#qLJTRt zpoATYc89)~?u^o-PIcXKc(g&aHwHBe#3SyZ#qC~Sx45fTZg5y_Ra*wfYq^|a-7r`@ojYH797w!Pwm0S z$OYpw(!L>XsD@a`=Eqymgb60r&(3NVS?~47J^8iISab{3e;y%suT#LN# zW|@^j?5qm5@oC_2KD;{Q{l-JS9sk$hdB1+>UuS`T_~UQ934Y$Vh$MdJ_CI>#jej5b z%hNZ$3mp+8asAJujeoqR{OBm@oSbn@xLKuz50-+ZWNre>EqE=f2Aeh6bwaVh=Ax5K z=oco^3^21P>oDW>HN7NwzQ~qr_ki5RpzWcy7v6+ZKyY+**bd^b`l z`Msr=x!{BzGZR*WUpND}szg+BZK$h1lUTj%a!QFn(7J9FD=xvnUT!6t#bS;_i*mu> zNUfio#knASV1jpDcB#v82#k0VA3@fX|E#1HOQn(wS#zw@3lSO08_eaJP4JU~3teZi zH5L^E=4SIujXRKL6#U6e5X)L~&IhHi-L`CZQ08tpVHTQq8FV-27Ar#AY&ehAU_fv*{VS}te*WlCoEt=wgV;eDZ(5HLhZW{HXCgWrG*Vm00e2&@ zk6w53}z z;q`%JeTP4Y9!I-%2#&9b!^65rYR!(ks!hQOZlfzV>d`I|-9J1eo%@Fe2ZyBZlH1P0 z*0=T#>*=B7Yp4omsb?|5C%bwn^d^r>GdFKJRoUzF`L;3^!8wF^R3>ke**>oKJD_m^ zxu&O;A4xNJhvq@bJNve1U4?C%n9l>6W>DXZZp7Z}@Ux2Cx0C*DczWh;51oo)I=!sZ z4|!7z9#OU z^BsV*c=V0S&lrsV5il9Q`7P>v zo0P&O{>~4QZ$M*it*gKfm)Rssa5Tjom#fj}u9RzXSc4$0FuBSeH#n+64$1m3#~(L} zl*Aq@TC;Ug507#+mST}+lO^KVkisKT5^oIg@-Tgzj>2&LGy|WcQ}W&}gP^5yD|?b@ z(CBer3#PGfiGbBQbU-Meh2q3Pq(lS`$iZIk0zU5Hg?g+NE6@zviK7y6K}XwZG<4N0 zvsj`g(B(K~;pNY9N4R1K8{OsF@u#^LrsKbaLDX zXAx#3Cqa!b^uue+DBQWOcM43m+s^Px|KcDL$V-<&j+R7$j%vwvCZg2naPBG-?p&oi zqSl}bs&Yk%beQLuEUM(LisQ*VlkL_bNwD2+HVY1OTqw}38u)Mer->i_;qe>LXISls z2&MfiN_gFy9klZnS-Z7du!V-zwA+J0hMVE17s9d-!qe-SjN3YdR`}3yCYwI0GPq#p z!YiIy=J}C-neh9U&-|gYJb`6$_k%Q)_dbW==bZJdLqyg&-(7B-#B^>6?=aro9 zdPCoy#{=nT`{z4(X?fjev4-xjOszGDi|>=f^7y;?M)DqX{l$E$x=us0BQ;_K|11BR zO#Jw*!5eQ@%1yR*u-iSYwRa}}zVy2XLySm}#gjg$kns-rnyLQY&f^<@2l|YiE~61q z6Lqt_o`R+dTS?VuV_eh7Lg516yvOtUMVbzf6_e6ue!+)VXvYI>-c|PXetwE7v$VR^ zA$w~!W#2Sa&VK?`bo+UuOT#}YKOqQ)VW%$2>UBo@HvMJjlZeZXnvL3dAWA}7MKj+b z$W!H>)ND2yCc(GL(;uInqPxQ8zG+T_>_Xk99BNFNC~z z5W~W;ihJ;NDBQ9Ky&r)e5nZw;}#e<7pNChdV^-G+5&uI9WO3( zkp8G`@!s(sjceS+&>K?EuB*9aMVzz2Y3mR)kvT)!3SHM0T2}9Knyy;&Y;Hr#x5txP zEkeBp#a*b(nY=BxtzJ(q2=d&-Ga19G|KC}WF@b+Y!at|-*MbQI1HmNzRSJKk0O=?* zNDULdyNzDVDZM3oGZ|R$+x}RxW68tbK&+Fleyc6Vbf;b3YW)#+*Ol6`5$W_=BYhC> zuJO5T*|6uk#9d4Di*|Qn{BoF?k(5dfdbtdcn%UVZp$@2 zaPpihnaRWz7l!$^d0CGRdZ-@qcsxRypINK*hj*<}~k(jJsoJ*)Uf96#%~ zqjFd3n|lW-b8{1m^|CFYaU9)DX}6`Q>n1os9G%?;&-%Z=Ca_;*f&cmRjW-kjK^Ok! z=i~tPwP^7t{^erY-x3H0pKW)znHvb z2Ml%Jqlgo+^|Q9>x88iGW{J`8ox!mEJd<0wyY7FHWgMnZH4d$a?zo>iVws`exD@w! z#*_nk!O@z?>I5U}Zx8)1=sD748&dPI$Gz?^njR3#d|o+nd_d>kC-eCMb3vb}(9L=F z89$S^vEEQdwZ%Z=Zth0fl71xZmWEn3#=Dq^_@rb{BJs;qJSC`#lvsu7{ zbKL?u2hS_M{uO&a{vX)+qqqKE;x}*qt8aZ{CbILtPyaXHyckt?e)S*x^cy6X*!Tw@ zzX8b&YuY?hrLO$Xf+BWXT6vR7q$k~)w-=6B@ zll;uARqq+djYA}jN-f1~@A^i~_<@v)#SidpG_{{fp|c-xHcs)|r4)`0Q1MnYEjP*j zi82Lks!j!iX4mk0F=(@!>e@0+XMZi@PJ=0&J~{4iAbL*KHbob1+rnh0>>4!0TW;J8 z-*(+x??oL}$Pyo=$k72wWQNDs>VeV+&pD~cjRP%{Q6Nco+QaTDtBUVO^-ilUIQ&i5 zQRZ*HcpOJNgz2}Tqd0a%UMrqHS4~)=i3;YEW2|zHE&{|w0o6wu3}DyLW?e6 zghYA~jZf-V^G?kgF>r%eC|Hl0SCgyfldE|XwzwLc(9O@+y=Zhgkyx0Pe7V+Y&}-nj zK`*}v#9A-1=s*KDDA6~0y zyq-5BRf7{DrwqjIS2+~2R$4Z^HNUXBC`DK?=!#Ux(tu`>2*{dl^JcH^F!Qp(wrM5D z09~@DvzLZC)N_RdOT+r#dGO|gPIBv2D zR1?4bb=AaQXMyCEQICK&320D1=SK3$pOX%I1v=mDoSV<1g?fEe>ig}C-%(Ea(by*7 zMQ}4z_Pt0sdh`|)so-ps#ZT!@5@Gs9r1I0AzR>W|yV}&bu>kq@PkV%Lj-!4kaDYe6 zF*9#;7=3(kEhWV^AwfK^=+S5FDa)|ai0E5gb-n17drTjlMtIW%9^b;t#W|ZG9rOFN zQ4*y1R{wmi;`eJtsdrG>=4Z{WeG>ygJ%tU7mqgH5MZg_#?bfT6dK4im(NFeieP!{0 zkf7FX*=`DMs3e#Ve4hLTr_x26Vv-8@#y5j?XzAcvAVe++UGqugX5LL5s}! zd3mD@p=+D0MuG`?U(+Fh%qE@om=}tPUP(cp1Q@mctgLM+$N`>TgFY75NV_X_E);>D zgjIL`;N<&I8$QC?U*kr|@N!Maia;lg(?X^u#CUrcyD_BQZf%`aYH~p(a~H!_i;COr z5jc1kdq>TuaY!_1$Jhr|x5H@LD^NCQ;ssm7arKbH;gv9J%=;sHAt=N04RT)74K~P$ z0%?Ha`NIqBo;EQt;THS@hiSQ}__CBeNZ~`=H#}pW+KbC)R+fgIsj7`;AG60Ywy<=J zG+X;co63dwWAf%bH8<13wwZiP zu*z<%`0PSyQ_mrfXyP7NM)G}MFczX!`#Q8lndY|vD-Vu?%+sP_B`&|8$A#i@ks(0W zI%|<*DmhYv?9E%Id1!;d=KXmX*4AwynY8(M$j-Gn>VaQ&IPO>}WQ39SqT!IDp5oVx z`R9ztHD9tLlHj3_!{X6bnUQ#-h4)kNgmlT-?ASKudYgo1T{hj#WXj9m^<@+Oj9p73 zvq|_?{UFh`c{8LOJ08l3=uthv$nOhjij@3J6QnuAlo-@*Z23~xkh40_{P1_SVGd1*e2|5+Ex>5i7tk9rFQ_+ zFivx;-Hf+8f~2l5))O@U@g)~aG*l~K8~U!Bw*}v%xG6giyS|hlNK@-zveRz8eJPpE zif!8G7#>E)rPDfd=_(vEsBj17IM+BTfuF?PX_*fedkW*Z_S>LThBJEa4)H*5oN=xJlr}+Z0OO%*; zobM||nro$xrA97!qRE*PbVxOl7yT@g3KrB-qh6^rcd=d_RfT?QSgIE|dw)2I~pmw3v>g`eW^5WuB=!@EqzE2n`ln1E zIf1XhaDlA$(v_=zF9ankSD6BKDK!teCn}M=$`PTadRn*~wpcY@kLG&ibT=(VyI@rd zO%BUE%X|hY)8IxuzFwfy!)QvliWae6gYCp(QH?=*gCzJSO|DEeiltyyI=I4wwgw*d zfALlHzr$vK13DTK?buhbzqC5LIj8OWkVohA%EhPrFDj`QwI$5{H~N(6;ICLw@d>0+ul>WX$rFC=NzB-j5N)fCJykp<_Kp~jsgS`HU@e)=U|IbdWAlCEZ8cO;>Gor zam{uk4dT}CF8)?Of2g@Kg@!XvFK31?H4-66F1?$5i@$5JcBM$})U&w0=OtVX( zDf~jsM;?m~o>6AioCRiz1JM+WDafq6AYcsH0xi7IVN9$>&ES6W!DIHpW0hg3HU#60 zI9Fr!%@oXV zY)+xT(U|-p8waN&9ZM9Z0V?AwblPI!m^9KXj1W1Ut@ywZ$8>hY1GY@NHEjNu#nYXC z`*KVWkgrRp@K&ak93q%0-k!edaQ<>->xt~nKQ(L}4G98Cz+~y8pc6h`qZmaLll5RWXcFJC_e*kX|k}^aj z@Y|4VX(?Mnb39>2;;z&&hCpv!4y`v6eAEswzBn!4k%1_C*ue02)UK>LEgrIn5_GTW7Z2uj(bFY3EE{JpBcI{*&f^+ z_%@JX%;n&=2oF9n0}b)%*;662t=&mL>wR%zdUMn}#I@O}@wB%9LHOIG(`$l&WnRex zpA!V66~3qkqLpUnWQ1LGSTY@#1zgUS!euNO7t5!*=TV%;$pxEy#Vz7G<$hHUN zPV?Ev0Q~GI%`HG@}WtDJ)L=!PoYqD&Gj>Td<{<|SzY_$t{Yo6TrWRv|3P@V-8_Q6oQ85oOP9M>P z8hVS_Gr5{gQv{m6TwYiEhP_12)D2^%pxIc6#3RA5sX6T_%}ngM)UJ6bbBUmSN^P7O zJlOh)Y%uMqi7+Z#7noH1EXPgwy9uad6j=&#mKIpb`I0(eN(`Et@L!gNGYw`SITCTX zTop)PLal7j5P(n#*!2wSsv~tN&w(k8GtHTLJG=AN=QyyxQL!vRA#{P_kXN|C^gDMhkY3MU;e9Kvq0_k z(GkEcUvd2~sM6g}2N=6qIypb5Gv!aJG&%JNPNgFHnme=g(SVwIqEt)+2oEbza?__# zm4Wy6_9@`_HEh}?Qx_;Uy}M1Kfkz*vy(l zC1d>4FOvVGmrVF)&^UX^5GP+G=H*M~ONrJ0@ypMX=}%v>pC#y{m+Y5Qm?Oa~b zXh+WH>v{Y`$MZ>|I!4 zn?O0AZ(Vf8xx6Ae?Um*3rlVhT4i<;di0(;6hjrNfsMmGXHa&~O5#9Bu!(J~3IURkw zw!As43`c_7?s9onTY`yq^=KJ@zRpI?f!($C>brQmoEzF!#VgG&JIdy=xZ0uere;f8 zJ(ugPMuEBLiVrvc>Z^i7;9meGCXgHA@X^=ghJLnkLM2ZFQ$!_{&NUA64E?p%@oLD5Kd=af_ z+V1Wb2@a^4P!x)XqC!X(uzao>ieAaWFm2l-KwY8|kx(cbRvZkmjfNINoO+841- zy*Sz{7e|6{EDIV^2o6Pxst&F$kmiLJi0rbBG=3cA6InWgb{LpTP*{`%8jNZoTS0N8 zT}^VQd&eQRRpMzXk6b};G82y~1CXdwBpwZo8(3;2AB4+$$L(+?eKg~XtS*r zkQ@HV*W`x3JM|`%Im!@6uLOtB=!8{2VciNoh;$uNrpcP2U^i3V8lnN?$zCyjMj=>2 zDh2Hc1afo@CzO|1Uw2U6y_^ecO4ChQZl=zf>#n|f=8CwqHg;rUn^;ARPI)dP)Js#d z7IC=9U?MUUtU+W7DrJ@(ti!yV8)iyp>kb(iY9CPx20bY|!R!*z=%<1ueVARqh;`11 zH6Ng5({#AG<%+^n9NXneNSUm(Iqy1_OVmV91&Wl69xixRs+^P}L@AJ}s1;Y`q+&`9 zp$A0CC1tu>YO3o!vtL$_l3?S`E;)TE=v~j4?t+e-o(zTw#IfELTzm0UcRFE}7;mC% zt?b&n&gm)YpkLBbTYaSR(pWG?W)fvjLlPP5jAR7caS3ZV0vuS-w*9glPhC2glal^r zc_<(=dbEvcc}2hMKww>3AVSYoTv>;_@7Jn?@N5w03TZcy;cI>@ zBI5;O`a$^{56%S zYBO2osRe7$d92~~;F6sphPdNhQpsXZEo5Fm zj!8bp*uy3-U-iY<(Cjenoe&E)Y(yAsc-8NVz@e&NjMQEzGe6-F+RceS;h*y}_o|$M z9_Nqwu$#KT&+zTh2C<~%I`|n`lf%z#pqB9f*~qd1$^v4ihja`aO4My=1z?v@6os3~ z(c*nkAaGlx$PA7L)Mz-;I4X`rvG{DqDQK2=3QX#nH6t0VrjIyHNX?H1CPdsNBvkLlNxJre&ttw zW#_$bDkp#TN8f_3wN@H%h>2UR?d9c5BPaT4dYquDq< z$<+~QIKcR|%OTe6dj%Ub>l<~4PU((pn;u$Y6ZMfYdmy@AH*fH|>?_eE8~Z{uaSfq4 z0Cp3LI<;B!p6ulBIuqIcmQzh?!j+ssd_8c-eUnNuHWpLvWXICR=Q-iJOS-dh0`=lk zz5gNMyW^Vd_Y&KZ;P+&J{|bg>kh|^-2XuIz=U3yVG~Fq zv4C@~9+2$fd znCOq-K1s!MVFDY9moiAeY=QM^&1SO#yb&-mR2<*2-k?aP!J@TPs*)jM{a7alV2o%I z_@WfTB^(S5PRI*B0%RGs2@KplUhG~~!$fe@Qq%pK8j0~kgb1b^`MwOqoonLKh_rCB zlcS@g7^tK%zMi0TG3!_{bFTMUi}E;uceG9$YsH_5FCV{0nk_ zl3~z^TVUyeHpigNRMB@10IZPbDW)>*BgYF1_2?tJOD_~y-)<^w)Xe(*DTnFjq&{+O z9x#h~V3V+GCQ}rZ!Vz6cd!Xro;>omc5`+z4&zM!W0ECsOX+I^QH1x@=>N-e;O?7eH z_wx#h?(1XvgS@R_vo)gld0IwXtJNDo!UoMeHdQYZ$uSil)p`dMJz2r0Jaguu{h7Tpv~{Q*IaJUs3yuGP~%{ zrWU(ix#H>#G?ih2@k29yRJxK(k1wc!)FU9b)E$*R^f^&z*;8KZLPn<=)IR*sOZXRE zgVN$ODdCIsT;M!Wa;oI^XKPg7;_yk;yF@OQq*X1EVS6D(rJ#G2GR^u|G!xif-BV_F z@U$}REj`h~P9r9(zRRK4xHn)|`YUc`(Yq^;)V=;Q;DAE}S9+gzSBNLtQZL)x8sVn! zqrN*KfkT4|Bm=o&=dWIVH}T&Zzxz$-GuCK51v#wVt+TCo++m%7a`xc5_oEbQ^>|Fs zau~h5tORmxJ9|rnNp9#Lvig9Ob9v8}IVmvXjW_nRyUPL-T&8w0M?_zWcoWMG>p>*3 zEOY}~X9D3rX$IHBjjfX$WxND#>1@KkE;QCfh?+SO!MquW4O+1yteZlMxo!&UqBU=> zVk}dr>{u%i5)fM(Ms8UF8=&Y=vuD|q7GnL6)3)lMSuooL-G1Dn&8zuwqS9^is-Z$ITOjT zEVb8B1v1R2EyXiz7pxa)JZ>v2kAw&pjNEeYo(vxJwa5oS-5};>@>(!Ab5ki$ekfvt z;fa+P5~j1HDKhWn!}3!)thFJiI5QE`jKY$aBaMceKzHlK0MDU0>;O0YWC-+>cH2lE zvZiMsdjN%i!>i>G_(zM!eDLOgR9o7-c6f-h`kUCO1q0KciMXDx&&t{ytlZtmR%NYL zJR@a7A?FzQ9`MmnH5(b;Adbly>%v+MTgcT&>Xuflku_}I%}oHdkGrWNZaYGi{R`?>A> z4f%VCpZ@e`Z$O_L?M=KBbA=41`Q&D6UN4{14rQ@5BNr!QGaM-;7pwX_n&;Rhiqy@l ziu#J)Fu#PY<`*ifq*b!TEXmx=Y8sCLK|~iwy0FsxrWeaYRbRSgNw=Ic>6W>;pm50~ z$RJ@=@V$v3%oL8F>10^eN_R&gGHWOSOmcY zo7Lnh-4&-LaoVuBxUjI`2)YK-fl@xdv{G^nR-F=Mkf?fZY)D7N>XIu6Ea)>NHS1b3 zAjJx|B(Ah3ECX-CUcrkD&Wq!Cf-$vBJTZg6_h--d5hrjM z79!{@eHUocKVW#jaL8DLj3p-CpUC0Xa2`=OY@?RD<%`>D+wyu|wZhBmRV1dW>1v$3 zNN0RUnf!AlTzkIG-e2)^vuw77rODh)Y~juYO|9&4@=elFlY<6eLq01$rwF46j78)b zX~ow`78GivM!cYMBBCN!{u0u=r<11r(9Rfmm|eJ zrqgM1e43`nxXNhwMZ0!&IqI|VI2$d;@m5G`QC&XFgo@o(u@^4{iX}!OB1AqSGPRTJ zs3sGa>CQo?l*eWAG$mIBoNd*b-4RG41{bRWna|*Iqk)z#wOt745x#V3TC?4&3N;?D zx0HUgBld<@RHr*+B)J|7#aWgkyEL;`p$FMaKHH^Fnim*Qc^?;0o~?IsS2Py`V_2xu zZOQRY4dsKEd^5+3g&@aYUUgBvh6Ya?RbjBlX~Jos)HVbo{8cr03c68rJT)~4b!run ztd~)~(Wu2cQDM-CeChlZ5d|Ku1C&3exk?~~22v8!L8*QeR5D34EjKTisq9j(tWntgOC9^ePIP2LsiYv?IS`V`;!6G@yu z#y3B%OiZ|dqXl6Xef=lN$^6Cn?6dRLdsn#47Fff5E0c~$UG!BR7RS6(d6b;JhZ6aF zrx0rHpyKEp6vB5LwVYPEOj) zj+lN8dMKo>Bs}m7F`%X*QHPE00IO%}G&%X+>G;ZK!B>4%BY^Gk556!vUe~T|k09*g z>pJDd|&PnmB|@5_DQMygqG1Xy+Vvq zSz1yvkRF=RJI`NMYFhGT_u(g}bmDyTqizEAhAKcWsY1cWs!!T<%d?cCnie5)yRtG1 zWxMz;d!gL%WfWkEb>e&D!VOx$6Z2UOCH7QCIQUMPu&;V;9Uo#~a%<&mm?*Mzhmu!j|Y!>i|A%HtUCt{dTjn-`L-;?>7z_^@GMi{onvpfuszsaSs@3 z9305}*6MZ70q7f7USH7uepF~R__#g3+T{7h;eil)d-V`Nj2`aSWADZ+E%>d&gafW0 z9>y)8s}7FVjBPabo938pzZH${3-QAP-nQ0k3Rb>V-*4{o%}z9?dpl}7Y&7bPcvOU& z*67-PBWB?&jUxcyOV>`}w>HLMzQ7YL1HU%^ea=}V(HY&0Zee9|DPQ$kMQbI7SKT!5 zlbJ}OmH-I%Bcn}6kke0!EmLc@?!sfJ7@c2*oZg5}H!)d1PvE?CzUj0r4y>&Zors7l z#i%!+dworlGtc$ zNm7A4?aftZBS|HnCv6<}ko zORTsAjF-7w@w}p2GQ_GYx`2Bn7}2dZU5mw%PG{i&;R7y!fz{Hy;e5g5Yeuao1g$ou zb4MEb|op0$ggUP%IWw+IziSTwg2{SAka@dJ8&b zqj5;rTr^KfuEG;#HQ$RyU-X*`#h>@e4l?8#-_LpqNj?+x_!=R(R(!@^R3h4(X4VBB zX&O>_Na6>CkeoI@bOexs9}>!ux@&jyUf==4@X6KbVzIcb%(3rX(W@2nY~X=7&V>HC z>(A8Gs4TGO(gXA%K(I-B@j-Hu7qnTwa2;;|!|h*k=(uPJ9(?8)56ckAY_q|b;|y2D zcP@wl8G`IF>ZX?0&sd-vZiwUb9}t)_%S3K^^(tp-=Slb-s{t4kYmi+9&L4X3PaMU) z99N`hpaBU7L0EBhgB;iagQqZi>s4r+vkyeYYd6erwRNyA<84EG81)nP*k9RA!3Z=f z2v#=-X~BiC!{nXFGZrfta>NFin%m*F(?_zG4BIUZ0BHfFc@?6IIPz@NUS~g`&p=kK zj$!%Qwe~tqoUuQ#hH0wm(6q;Gh`RrREZA{gf9Cb&p2pVw6cY=J&qUK9@3_Np3ky$y zS}~&I;R(OO9}`TRU5UX(e>iUA;Ug~u9cz1S|BIm*l4BO4O|PGkLk3pY)41K{8{oFK z4czM<|BE)M*zjL==y(-x5J%wG9v$kn+5=eXeAJVsyT4#q8PXqa7H#~Z!?x%gl?Jut z`5wd=7AU*4BF{@zV8Bx@`bAaPs<94#g)-YM!vVK;uK6t$Lvfz>HS$G8e%PqzXphRC ztGW9g@uRN2(>?Eri-qgL4Bh{b+pJL4g6j8c&E-PnoEqLQ_03vQ-B8P%)2bS+?twBW z`4-M;zT|UV3FBe4koyqi3;u1P%sqOj$<~@_9?TZ=+=s7LyO%&Ytg5cf?!#`c=-52( zJMO!R=gj>Qf8TixsrRtdhX5!ZnEw2^@+0e(V^{;T2A&bU<*0tt|IiAm%){;=FT2M# zUTM_)24JcCKfh|J zyLRydW}*zx)qd5(FMfg~YS~mhMVIosN6MBxDPqdE1 zo%m1yQK*+lth9Go#p8{dlqsfK%{CWpX#;u~mtaP#*0?NRipBx7gv2JVB7Cn{&vcL? zi?NLkLSpe+r^R*><&gr{I_e2b?e2!JF6laOG@}|FO6D7tdc9ulQ1yBRXjcFEwZiF( z48)$l`S;sx^=mGE;Oz~cUVQzN-TA9u{fGZ$@-gt7JIw;5_TH=V^x`!6F?iPl_wCf! ze{K8@3J8X|uX`}ZxT5t2lgZmWGza{FK}c-y9Ts?GAt0Qoy`iw|4KK&tE$R)=txqZM z`WbGs2Z4wR3=&M*MqBve`Wd5nAjkVf$RqxQE`&09%kc;xC0L|wsy~CLZAA+P3vr;c zfP5i-L}~Ui0ce+yODLg+hWA3%05;N@Emf31tBm1IgKu`qOZde*fD)b^H1A+ zVQF~ge?jTJx~d3!{3}WexIos(8@0g@f9^&?>y)+q`gS03;W>Wic#Pl3uQ(!%#sSmc ziX(`a_`A0)Z|tCN|Lza}!&Uy`Aa<1xjRnR41HwRJR3~<|o91a87_fWAz+cwB{W$O^ z)Hi+;uvsA3`fE`a`6bBIoJAKDGY*t1wp_g^71^|mYh?4Bt|&+ydO02MJ$y9 zWK=rO1$!o`k}vrphEmL6vRM%;T}@LuT?zPeujah5Y6XuDY|>H$IA+h3$XvHxq6`q1 zcZR60J3=iiB-v(@B$E>E>P`aoMx2eT1|{4AEd@)I#XS#lcdjJ!8V+6o!2wpri#v)X zlrpgAu1P1j-P0jVR2Bl$lO?$r1L0eInV`~x-pkGF=n&s zO`Q(h;L^Yc^nuUx_yE^c&VCll{c&9=A#HO z8k|GhDZ+R`Rzem27lb{8)TN2YJ|rbSJtuEz(S38@ZWQ;;6&LV<{e`-L_U(BP_)~$l zD|}_7`KBYGidm}cY71!Pq5@4-gs|pd7gF_66591Eq%9U^3t<(A#4pM#4T$|Sp}4Z; zL*r1AsFsMC-Xx=-me0m{mpc_{gpGl)hkr+#+V~JE>smyMyfS3$jGvoq@<}`UME!ecN zTs~>{6&=5*G!@%e;yp;!O>1Rl<2(>qwWCl`i|XdUoL92%Rxkc)*w*AzQizZkyHxOP z>er0t#AgF_LMpq=bJsx^@KO8g=5zSw%?GWvHE0y)&O3hp^Xiixmn3iyOLW^;3TNK{YO~Ski~E&${Bst#}PXKjJst80OpC*adL20bG%t z-Ft3HTR=3}Va!f}_+cpR25q3tw15CQY<5ufA6h{4rUfuvhsRW_WxI3O<~Ux){IO1} z#l4fmmE(-{J`fLT-Pa=H`qxm?i8W!*mXcysseaoXtXq0dqK@fD#XWS5_UY2|l9rGj0dQ5`G^*S%15n z3xD074qm0e*JG=P(FR|a6-%t1LUa>TDcb-_ZD@7$Kv55lkM}wBZFi~>^C7oWqppir zvBcI$d#i=$>S)UE?e(J`S3T;^VzC)>YAvPQ^2H<~0fXqwbYc^I2bjRS+b#JvaJcQg zZe8)R&-%8dhu%@;lzh`R6>D|y4*B*rDGfI;ms0_CMbBgURnq2Cp&v;D_(z9zd@$~C zy5^u&(w^~yd;=#yZoA`gHLYO0Z}<8v^6Xl7=&GYqqpj%WehkuY6IMw7ZrsMby@_*i zXt0sJ?7f10$Ck0epTn`<%e;cayZz*JQsnQ|VXO{bA<$im3u`#`qg3i(Ac6RhA7QGG zbfIgig-*K!n}$x&$plTfirh zD;fPkQ>yE16i)hE>mCTJ7#xPPm-dsKlVF{dg{Z5Ic>|Y>RWO7T`ZilgiERw3w7o&A z>Bx(CO|VB}gsp^F3OdZig2O!FaQLj$Ao z0G`2A^yN@K@_1pmAtKRAB^9;;Ol$zV!?zqWyJSh+`Rj$>ht4;B4}l*d)YLvx{KM;H zhRkf#GHHJ#N9o#*a6yZ~5eIq8`vG=_VK2yb#+uh|v9q~_Z7hvU=<>*!2pQ7b+yljz zQw^e+qjFGZpe?-b(I{h#9&un%l>2$X{9mF;W5oaSQ5-o@u15Y3*JDJS$Zgw)ZWmDV2687x2 zv<(dv3qeI7z?t3bTQ?TOqM=40sQ5DxJW&E{A*cZa^-l3aZ9C4s{b$|T&&O?C6ji5g zmFnDk?z!il@ArmutG2nR9eG9TzfW;Ow`xgTktOT%fnmT_Q^PxntcAKz-u0Wz_pM&Z z*(KL};*;6r#Ew=UldS`lbM>~~KOipcH*__zioSd50!tRb9 zIeAGzUfR)_E=}Z;^|{Pc@=buK)q#vkKiIA4x0LmnYYx zw3_ep$-VVpqCab&$-^8Rd&ZWWfYZadbud}zTg$w=ZX*OjRRn51V|M(j>d!ogDsacSh`xSSGH`mgLH0x zpKzmr+8mOY!wWIogRQJDY)8#k7rd3#J<~234nPuz9cC_Fp;CSu^W*^zvF8hJ?XNq7 zFt%Ap?Um9tz(OQatJWZVFc`)7!)cq(xsnKMI)e+oDwG4rH?}yEsi)>^o~uP8zFtfP z3VX#=$>gXe)5|E5K)rx4hAfDMRLmK)H$KgaGbw*4kjDJ3VsX`z-?e%00Fz#@x{5|> zdjSpZ)oN*YFn|NkyH?q2=i#q_Eq#FR$Cjc-U(9o`Wp}%3d*-Y41iJ1>VOn6mor+Q?j(uSW*r4iaAt|wFGo>Y9GsvDGb2OK78JSRRgIHz?{ zB|?|eY7oR&3g#G3EUZZZU5C}6U3Nhdp~$uDCn$64~`Agn+&A zz(>3kzowO*@F~WZ0<={Y2nWd+%t0xt_&}I88-2OudN_PB9z{&DaLSY3@Q}gg2TUFr z)Qy|N>9D~!h2y&PhIUy2rqDc2P=!IwMMEf=B(M#K++z`kD)}yLG~Gk)WyF)>!LCrj z6H5|Hw85@0719oq%wM?%AQFluMtq?~6WK#7rV3Rc?OM=b8-=u1T1ty@lQ>oJQN6MB z?9ac(nxL9M+%Q3h;XtH!C_TKD+}0dJq|vDti|di$dZeC@7WE0$Wg9_``?sa)I{pAL zjGqp@8Htvz6T&ftQRR|8>RcQ#D~2Qe{rxJv-Je_tWw8gM^t{WZHrKp**Gvi74!tDb zaxy_lLce%{?m?~tWGo+ngWKM^BCTI1U&>9X^=qXCiF(SWPt;T{y(%@lyYJPQ*VrxT zDj|v9rR~%(d)bS5I=VfcE{>m)j3oT~Yqh8XWx5cQWFD>i72CbN0;ex)V3rnwX;#pT z0aeL2$gzmphakP_IzuDuWE- zST-ddt0q)QB|#Tz!|8LyGm;59usIfr77bew^2}yPxUP@n_P2_f5pgyqqILUpI#vrr zYZ^LHoCrx%<*6w_uy`?5k0_P zC*hwW5T#DVk#qD+PNE&DOidM3@{-)33)3^fvJMU>hBsvj%?uG|YJyt2jOgV<$aFgSYNLad5P$N+oa z(98j$VdRph;?#8gLb7#d*}(xZ77M_3N-cpq>tqQwy!Af4n9=;>kcci(>4mEIyF{|I zCA?&j_At_}7^SJlEd|rKoi^di!DX2v7?jef{558fk}B&OU6-FqYD(2bvrJ@KuKMiP zq}RlB-IT$tJ&ezuoSQSrtGYa9n%f{p3Ng$gE~I42xcHi#IAPFIG8Y0nI@2U^0>Lvm z=$2ENsxFo?nU)6k($^G5|3=Q_0O~#5bVAx4&Sa#hKS<|%BW|B`Pf^jBCYKHFWrL>eK=;adN$znT!}{fo_Gi`i(GT?Tgyy_uIbS3K$R*@iIYsP zB__*>;9x)tSy=|zMXgUZc})f+R%%3~W&-v}H~TB2gWI@5RM-UOhwSb<%_#9)Xwn@* z^3^%;rBKv5j>z#7*UX_wk7Lp!9RwTXucCtm6dn*e3^regD`ScljNnP~IW{sAWx>j7$;clUti_SbR6ubr$Fs!4Jr(i2(Vr3c=G3rkM3kp@G9t%H$EjU<>-6#UPIJ?f&7 zR9!y~_6f0R$dx>7iK|6hHnLCmL?T61;(-0$rw^@QG8IDcQw-KkkOI~!lHF3&Nkoap zweU?`O^&E*D)Oauo5BCB{NSkC|1G*F8U=&&9$Um3B=lFyyxS2%DAY7vq{I2jHHMz0aWG1VE9K!q{GrnCb=#KjhGV8sRbvuo;cUF;-L4QAc#E0Ln@3&6r zcHGpx#YOjOd9A7~@8+`Ih8>%C0$7Dom3(>?FHdGFm+e`^FwTB_t}E4hVdnC3^ZH%` z;T4@m!}#UGnzz44whcF}_4)hLGhY1Os{Shl_>*?MRgJ%Ys#rVW8^6r- z=d`|Y+XHLWLK$f1>@aw+R|`zn%wn}S?^sf>9~(1WmgVX>%xcG$;CZ_%`r~wUz%Y?> zIJ^c$w=Xxdgw!dOS9g%Q>Z@JeXRo&^od^DU8j}sw{FAit^SsZazx+oYACX9;WYYyb zwD{9mMtC7qA=Qe~L>0`dE`TtpNNhxLCMi*+fto`|o>7akTCz+c>x%94K9R2=WS*f2 zaiKh&079WqA$K~Not_F8H&eCHc)UDCo)7O6vZn}9TG;p)hP35%ZCHV1sr9|0N?ja3 z2Uw($QhYibQ>qmE+odQ`WPeu#3A(aRR<^_1ak_9`5>sxTtX3s3`Wq)kMzbU{HI}SP zPi7T5oj3+Y{JgGOGU&j>kM8E8$r)z10P`2hDY!r)6^@LCU{`vkv0?j^Q%F&n7^4}T zrmmHc?UU;IY3PoI&eTrFl~e5}hN;f2@~O6XK{=IR`wZ#+J{dJ2L({Q9f+j8os2qEx z!4S!w3FIi)m+qH$N%qQuD*u}nKizOaZv&IBQ8ipp$LxO@<;-6Gy)UpvsTOH^N$r6e z_6B*13K@cvzG-0NFrDnrUYhW4#n0>H)e-w8h2K9oD4LSbQ1TFvd-XA=6!yRsnfuxs zS+i_Vej(%eT2`C$QV`TWGvBYjG%;n!_t(uQGx}ORWL`*K&FHRD0KwLM?Fvip3Im%< zb#FC(T6dowV(Jy@LWO$M>tS-!Iemrl)u*hU#&9T`4`jTEoaws{L*Affn1J~{&q6YO zMOPa9}E>cb-X?k-kTM}(Y<0EnHZt+5uK*CRDm1C7sNE=%} zDHd!pGg*o z7m9H}^G;nrU>Yw#YE_CrqZ(FAh<@sHURfZtGl9l7KT!*)6$MqWeh?`Tg~m1+YaFZ} zgtJOG4%_Oq;b2oOZ*21P`Y=`80&gdKp)OpnmTG#PhS5iL>GE#SP`&RKFU-7x|d;YlN z2OK^H^yTi>4cH5?41QM5Z9I_AV{hGo4_DOPS^QUza%VWRZ^w?JZx3_+E&2+#vq9YK zu{7Yh%?Y?63w|->_cINK4&PqfR-ZwNqB5M;ewY(-xg_gBl@>70COp_I8U>@R~)bO0}!neF7Kv zUFa3}b&K2{5zW4I(d1cp^S`3Ef+aN>8gqvx_;*_i&E%Z9%LQlFpj;g-vqTE2@;K(qWU7|()MUED%+SX)#|*0K%tV%vu`~s=&<#oKmQxv-JKRoyIN-~fOTwDYYeI&{?mER zkJ#FNqgGcemcv?|u~3Jt0K^-ufE9P&sMHlp=0>H?STl#M0JC7$4F1}Dqcyn?>ogZG zsN=7{!XD08sdgLSgE*G4F9|n0IIb|C!rcxcn?U92w&zbt6{iLAov>uI*!Sr;-fQ>}$?He{3EaX6J+E0lK}W!vB)P1@qAE^?Mk8?|hHZf9&r#cjMbvIG_F0qM!4J#y{mh0}*%<0jJZ-I-RV)nu9W4Kilz#9M@U?y&U|x1MX1{{;!LisV|^+e755rjvN1JLuXcK zhgAC_w()_2Str*AS&Qr){*u#CapNJjD)2zI-lz+35FQtb2fr62vAmnLuzC)9_6HsB zYkz>$0rwa9Ww2IO-bd_$A&%c{jvr-f{9MaV`z~WPA_9q~%Ffp`!_`)S zcvU5>V%`0EOu92)m37Oyg(^(dJ&(x>^MUSwO1K)p0&rF+Ob7!qp-Q^b-JigOtFl#D z0ZViT`hoEhCPY^g*bcT@i1e@Ss4!VTf8M6in^2olr`Ow*dOfN~=V4_e1PDD*n?z#M zndkK;b{(DbaiRFw@!n$|u}q~7a8O;!L2A={vp%Z&e^D-cW&1fIsmM4HZbFfIs_J>+8Ty}QE}Vb!&Wf$_#FdK zHqQ-~-p*PZkfy-a<40Lj&!?b^cVq2QE13ICt8j3!TZOac-qSMooa3{c%_B{EC<+F} z9{WwR_DJ8&^{+qozYt^qYoBZNv~IBW_>=drs-VEySDQhATi_*HJs8anZx^5IxU1Ds z-;O?alyj8pwzeLo>LR!MwYB2X;C-Aqw2M75o=mqrAL+OY_h(Esz zSMmv|P*9Y%<)I(o903c$RY6C9Kk*9d=mD9VkS+R0oK9h}RWesEl@Rz_|1W!9k4Qe) z0iZwqNyn`SbO6N7>i|s1&FujCKGWx1WuIi<~dRSC$u4OqS~e}4(+5se)AV)vDi-|v_pnY>6~?J8 zJIkf=7K&|fU>jlSNvvg+`MwI+Nd~{?bDiMof^}=zy*!x7cBhDehn#8p;5-ob9GX>d zlG|oA4|cL;R{0>0W!xy($$wzIv_V;EyU3{RD8v2k)3Z31|(!4J&JG^6<->!}=;onbPE zWm_pfg+kfmjlTTbop=2~BiPi6I9+yIav3Ym3~|AjLW-;%f2Q1tK&<0M9*p>W{tABP z6j#sT{P)=>z$WAyt23g%j6sy&4O0(p0A=`FC>wy4ZMm@;fiCz6Y(H3YqE6K6hOE6H z;VcKY(QUVNYn#}Hv*0~gx1HeL?V}4h!n)<$a+Zl4y1lSPELh!{tsD?RZIv?%Tl;Rp zx$V0e_4w8U(N(X{7hU!F0=_`d77Zfn(O@8Iw@1C9pl{tcH)p&G>$(}|OvZ%G>Be!7 z(ZufJt5F~#cj4?W&#DbjO{;F>yvcYqiicK%>v7x4YSeBt&9f(+xHD#RI*oJl&9WBZ z8}P3IU)1G;o3BT&+Og;gd%LT~xzDzQfLwQ_RW7VJ0B>oCvw}Xh)p<9}saWb6{P_UP zsld?KYN_C_rl2`<8#5~JUWQ5l3beq`_0h>&L}J8hnb=$opZjKH-l>A`i*ct5A1cuo!%B9SK0#=DjL|*#MQD!Wy+dg4H^YvL zk-2D@eq__5a-k<88)4-#oOHQL9)ZgRWh^(!x(*c5CN*Bx#2_OKCpO)Ymm-zuCAgjQ zh48u0Hig2DjVRhIS1iQWX3s_i9Z?hd)=#*1^8^AZG?_bp*a=N60vahc_0S0+7o2kv zx^tdhAds{gWM>hM-g%lm3bK%b*Hkgc5)2M1{vqcNKxKmB`(Am&s6WWP>xC1)$3q0d z!?J1uNvo`)AaX1e-M`nTD6N?6TmnNsteRmkZ-A@%PF4*LDCfinPqgtVypINtVQ@wT7;80thsAUHIypfN$qyn@1R)D?J% zH}oG72pjs>Gkm3)%i*_LsR&An=d^Mtalw2W0c+ z_79(Hbt1o|e>nSe#}|2^yBkUe-AN`Y>cM=h(pl=X=Y{IB@ze%Ie~Q@6of#tUoRv%mazN4Rb`1W;h?^h3^U<$Jf|=^ud*-)hCM9CjFG zZaPJW0g~CDT)4dn^!r>vXF$>7!J?ADZL%1 zp9NV~Pd;`q3cDrF0jL!%5gST8h!g^-d%`ZFV(*v4Kt}x7=0TVF`6m#b}y&V4Jmyh#SHdp zOnqk@ed>ky(z4VM=y8!0?NZb$vMyptZB~Rr^&}#7Z}@eKCacIk=jqu?g$A^)fSl3o z0ouN@AeQzi(}s8f@>V7_V__n#jfTt!uyN$20XiKIglXA80f^nggXZwSf=QE+CFOOJ zJut8!9+5S+a;*mr#Cv7pMGf9<#=DVJ#iW*En0BrZmBL&M9P3&zsb$0oM`m);LobN1 zNiiaZDalkW?$IrXQ#tVU72>6h4H5jqCK)Q^aiALUlBGf~dZ1Wjk)&bCf<7}X9!Em? z1)0g3&zRL>_KB78M5s4_J+^nAU{lQVB7)eALHjp`l!t|%>&Z1rVQhq*U-*pzRuK3hRzfiC^q7eqA z=B(Pa>S+Z~a+X|3zL#XS(F6j#oZAHH$H`i#J14b`V)Xce_RAQ-b-k)`ju-H6ANC;^`1DnS*P6M^}kkLyJaSckW z>_vRvs%UG-Lr9N@k<7-uYO^@%Q~LbJ{m95m25q9JP+b8wF~Y2W^Z+jr`(-sAADk}D zxHr{XMM7V^RCcKf!&Re%)GJ*t8ETI_MPDpdmjTCGJ+7-g94{edkN1*8y%JxYiJ(rE zLp<^=pc;(MPnVs*YO9Mc#~&`Jb<2cbTNA`;;!UO?uJub)rseqY8L#9kHOW^JkEq4{ zUj3tSQKByqt?buMR86(sk*ddZBGEh84_s5?{=zp&gKi^H_lv#sc|hpLAFcK)st;F5mKaVSo6c?B|Ykk3nB;c5x*em7sOw7hP7K&ZG<$0 zJ&kQ0+0-aWM)OS~-mmnNLkINGd96|uFPR6);lfrK=^Yp`E_k)%VErQct2=l{5UHdE zf@x&7uuDeH8<)4RL}oEQXI_Stse*}v7~v;ZqYKF@hVPZDiTwQjJh8b(kejs4=UKx| zsL{AGXQr5iY&h+;#xiNwfhiexY{x5wtH$L*#q4l;4+=zPH+wLj-N!OSa~s&pq=1Hi z&h4gPo88<`;`4h@ToGupwBFlyQSh1Nw}Bha{Jb;{DNaSv31p6 zt|{!vbTVegY};|0gWTOUF2!v@lmSHdnl($#uaV}hTrF91;rrH_Ys*Z{+ib4-cDZIv z7^~a007jJNOmie%!+|Gg-LvVQGhw-!dwJQIwJwD6DUvK??bdDk&Suu=X9=a+mL1VI zKrc6_A4CBQmXdGCjHun( zLUlxZkqB!;Rg{{XqokgTNWiC%Dz$0CdQoOECBxlOPj@;_2gXB4rL?RV$7s(uz^Dxi zijf7WW)9%cL`G_!vm@ehO)3P`5`%<>j02{yDjksJq)fgqumSTuVB^Vvzt+K@=2u&$U)Gv`qnb#rL`)4YFj&)@8rLp$a(r#wYi z_771crr2M{u;YzwZ@;7&gLp2?{RG4yBrTSRb~kW6t3Up5QLlfvHve7kh3f|^iHCv3 zYi;E^{I_y_E8DMs%K23GsomYIs$Zo70>c$x^V#yg?A4FXzg(LE_}imv&e02r3*ONe zcM~rkz}dCy*RSK_L53dR_J21QEuv#7c9T9Xh2@>4q%b==3QIGvMZNc*bEeoob-|@b zvD`oS!*CzhQwLisTanUJbxHB~!)yC1+2ZcX?m;AX0dBGz9d10~jUrqZoDW}*^h`Bm zcC!y3?6=N2cM}g^zkaZl=($6+yX$;7vcIx>eI@enKJg9UDifo3b@GlP5It&|=EkHC zETCd_aI=a6<4x0+oQ}wyfg{ z#@uT57qgt(VawUAJAD2J@MF1MMq>c+$(e?9 z<081H(^quUGftngLeIdHEIBaclEV7P0hO2K_IBW}&C9PYGbixwgQY#Hr(D=8EGYm~ z=}_3&!Zh05%hha6p4L+Ls#66_mcwKZTwc9csP@X2x6yYWtn zS;61^C6~*2>65%aLLjdG0l!e@pgp2%erbRt&E|o8?|7HapNnoFaj7`eJIFW~is^A! zdkX1|FolKFOA4`g%z^n&C}hkTOdCSedt^!rbTZm%uUd-Az?ir-1C#?6W={jO77LR^ zAS6bXWVEIWFCo+R28G;gmz;)|O;Imow*) z(}PQMl|0rcZ%+-2@&$<8$Db!sNJ)7)O>SbNR(owRaG{FUneX^bexe zNgv%+YL+02VuJyoV{j->!0PBaMCx#0iW8+&e%xd(!8(NCF6Z) zY2;Ez)dqktdB$`SuFCG`VewSwI_;0C%QG2lCPvvwB+^KOQkkh+GIg*iQ_o5>ic) z7LHx7BaJO7gd5y?PaqDerBFU@27u6^g= zv4NmD89`x57xJLkKgOiD`$MGpLQ&Hb#ZSGIRFHMe3;>~4YU5+SN!x%jWMA&jLmmS%96@>zWV2G(RQX@_4iiO9Qeya4{9+w<#S+PR z^YtY8vhz}LdL{mlH|niKfmtCE)71^tdckjwp7WCilc}#NAlkVusP^)h~LEk3lm0jToQW?_>-2hM4v<mYKec_vYveNOj91O~bvX^q1fc;+BCRXDI*y?_Cy_|@pJ&Vq( zn0;k+=fJriTU|6RtyH6q#l`*F)&V`A3+@M)=ar-+ex~LiNvlgW-qK)*4OODRl6~TU)^QB#~|w) z?yg1)O9`sz+r?tkYPC>XqMY>|K!wla)>`x1v$+#sVhho&`hpEBFC{Rf;XNkpRcysm zOmEeL_`zn#yt0(bF3eFe_IG|Ooh=xPuGNywRa~qxfl4M>u;&)i^Sk(gZ3}hQO}OySFeiVfdH)Z7YsO*dB8k5mJ5_6N8ss7 z{DcP`T%vrjI8L28L51<2RM-*jG7SdEf<@e=sa%trLKUA#n?Z=dC8^)Bm+xj4wAe<* zBU?1cb>toys=G6c-w~wxXz_9gh;!uW{1{voBtv;|!ChAy6m%sy>gF6kz*=&qCG@d{n z(*y$kzVVADfE0F%+dWh$9mRm|tJPubr6=)gIw}Ush{~lJ=uZsS!Y++Y2JF4D0`~r{ z=$eAa`LuYqEKmT79@f}LBrQseHu~HueIyr8xXI*JLYJG&Da2;&&Sb_NV@}7t`RY8C zpYnvRRMsc+gA!fnkx9KQ?)JUuHSHddU1G5JuWkUJuui`&t8);*{j|+ zDJ15RX5vZHN#^T`0ptNHlOLRZ4=>j`6Vd|se5+cPzab-!vE|5E!YA4cjIsA-*-y+pB)$W2pukNG}dUc8%I*xmKl3{!S; zJ@0))G5A0en!afWY7O~INp?HGW7{kPQ<;2nHL){sz`)8($bA4jXO1ZX(>cmNVVKKa z3k!$OJ&(GT*_w9=`%-?OT&;bj zU_0j0PA{n|u{_%G@txFaY0R=sYZZ1yKdj)Yuupi8 zdA;oS8iTz*lg*SiRN2QptJr&c^rKUiz+c&6kRs=dcxbMHQr z%68%V`Mv=UZC4bTDSV9{%}x2$7jv}gvb&J&sx79h>dUK)ocfdUxE{dARQ-+rO<2>x7+H_G8krILj62{yx70)B%E z|Ku%f_8SVo%_Fn-{P}0lUp~!!9DV1R4nCrS@un*N@zl$2n|gtF3ppkDtGB^K3SS5# zqDVs(kOBkQNH=sLNT?2V0gmGPbOAtruucU+QW;ShH^c(5KqMhc zoJ`AN2kDD}y@Vilk=lc^kq9l=i$U&rQIf5gSj_&CY=KKF8cv)%y&f2niPKx@v1~LpObJh(3bH3-@mO{!77Ls@ z9T-wWS?Az;Dn@RTGO=_7e0*w1D5ON=aKGruw#@0!Nzrh#*s0EuWC7-D1soCj{H+~# ztGkua$c6)`Rz@R;13LGx{7T(|laI2^ z>|Zn{HXCcaQ?SUpCxf$Vyx$Cv{O>r3=e6Gl+#Vp{^M?ws!<%j>pwkURA!j>p0SgB2 z(CRsS{}w>ZHm1h8<+4YYX%tY@t@zprYOUj$n6`reQwZj zOJ$i##%F0|tpe6P)7CNMib9oWX05^npksIBDL$uK{(O*5m;d0u#h6G=z8ErjSJZ=>9@N3ss zJO6?MO??G@<$g#Bl?o&z{>($rWIOc&1V5XEEHGXXNYfx0p@)U<5D@}@EY9YJL7xZ+ z%|}?Myj}$fVU2#2rz#eUkR{p)C2$EMQpBHln@v#$VF~{9Lrq}>avfQt-4ISV&eqsO zQ-UZ8@SncJdzv%LefEzyie_%%x6klyMF5o2a%38A<;S^&@69c|Q^LC&(l@308wyZC zm--;9LLw4Dzx_6Mf^F6Sfx8R8<1NlToK8q0W?_Dyp`0C3`x_`r7VDim1pL}F)=C3W z0;=;^?JdABi2LpM({@(301#~9?|F90QfE}8=0iXiA6_~AV5~g4sxw)8v z`Oh?g2Oowhn0@V+cLOxvQn9mOj;}Qw-GA)(6Bej}*a4ewr#`loAIdY-NJ8;I5{k!* zKmXrgC;-0AlfPi$sz9S<#n1j8oBa-N5CBxq{0}(H1KGN#)xBkM89=$e`z1&+;e$8^ z@SQK;4~Z;Xd(Lfj-Nz<$d!Rde;_txTbwJ%$`~sRmCm?6hvwzRQW?#RA1ETI|XAWQ% zZ~s&FMj#E?uO{LH8VluV7S4l90Q@z?k{AH~4st6wirHsgKG9I~a~-#$w=MFH@T3Gm zCs@;|e{WiLBkfKAdD#*D$7y#To|fH6yA#v|Qi1as7I!0rbXiSv2*Hm?fh&~6IZv~L z3wVu^2qfk6!F}b!1&APtzl}j!EEjr4O>>~aUO@mHzI}y6kkB`;;0bCfsj7X8BAZCb zj#A(PA_9B|hZjg-%+tPw3Q-;2qL`rBTZlPq{-^OG=U(*NU+p;B35Jv3*&vs7Wn^^q- z&1nKDx%N5`cp+@R*XaSg=8->Ud$m0Dkxd13_^tS-2H+SE1OeL9BuS}c><#QEXgZUJ zF0xf{r`3<)UH7vkfU>YAM-8`<$u+Q_{T$biIY27(`latT$iui`BP=Zo1RgT5Y_!H) zc5s;Utiue?1pac%MzEu}_qod~Jkz;EF>x#w2E<3SfdwMM4Uk!C!(=1b**vkac| zAUooLUch~*14|vow=6Ud$S7b`)Y1VL21Wk1I6EkM?f3bhVPLU1EE`5d?XqD&g4=`5= zaG9koyMH!%gp+uW%d7#HS#{Iw{_i*(hjp2G32>Q{_%mMU+dEV${H+qSZXS_<5D)%j z4NQBdR3pHDRc?$}5(32eG~3c>kbLI=B>5mo(9)Li24x8d)uFPa_!AY-A*(Ej5Czly z=ZpOuPLuEiU;Y~Z^ew<{^$7Y7({T?j`cwWVI^Tz*o&B@WE$D6^|I^4v37q{9+${1@ z0%t!2H`{RtoaM-Y9_*=pzUQ`<=W`xCI>A5M2`XqRi!TL$LA$wh)KvIm`{2^?Xc&vO zT1y8>;E&UAkQJ4*mBosFyV4SchSeD3a!F`dIL7)@?}0I(Pml0#19ytNdG6Gv8@ahC zx8=_?VRawwPO;6Zqb6`7tmUJ@m%`sY06WDeNN7}tO$A&jvei_0;7PUHAnQpH?EAmH z;pV)s_IKzzFLoXQsvzj*fRGQ$0TL1ljBm4h1|kGYy#aFPX6(Rz&;-Q0Vbls#e+^-Z zg}XO|J6U#_d;TMU>0tcn_E*|~cy}e=;EntN=N2HQp@5?ufBZ-%fE&+7kIp{1F@b;~ z2c|HX%VioVQiJOvOCn%l64TRER?B=N4}{g{wH}-9%1l-#eK~jDAhvje62o~o>-J@Q zVv)zfd~G_H)p`SxfOOulV>q8(pU!yfwqO=Hr4KD!$%anabR*)-y3Dh?<&~M@R90r9 zc0IdmnZyNTH*sOtJDJJKwhpM>&50{lCWA3Ie6LQ$V0KZbTb)>CcXjhJkLjcgmQY)j zdFJ9K>q*mi)>hkOPl|OCOI&<@;>u>DtjUSZ$#swTz>}59 zs5rF?i^*ncvTwlcVsA`*t|c_Fxg$H-EZ1g@Cud)~BbAZ_gI_l z5_AR2Y98v!0=V@iTX4p1@n`%jed4Q-e{a-w{t9iMY6#pwzrE!h*~q6#M1yFHPf5}NJvzGnt^Zu+9+%f5rzRG*()| zG|T3JI8tLHC1A`|;NL@>1S$(i69B}5AryokK7d@(2!Rr%$t!;|qEEl$$ff819WVvK z;!laD3OWHz2JyV6x*|0c6z~^|vk+5$_D=M{&CYw!(9if^o_+4w9{j<4=MfGrc$H6n zn)48Ntw(0x{@!QM=LWa})a!)4?<3`g{!MBwgyrM@-@^_4A>6mWNqyUSg8-amV#L3S z^ZyNJ`Be_*OCLlY|4)I(ta>1jD{VKYqDtCsP7oVBY)%mMrCZHOFF@M5EUL(sE+Ob! zYd0o{`W`kWi2F7g6GS(yhhZQr-7(%yPfLUhSzMT#UkJm8|{=2(kw2q z8N9gR#5RH#8i@PSP1gCF(ee}@F=nvg+FazEhL9)sD35}!uH7BMn6A+s!E~CX{&9Eo zTe_p4e}Q{9P((Le0q6{X#H8&D0QJ%hUx1yHZ1@7`cT@b&;Sc`dElL(N2A;qZPr^(E zaOzO_GjFg#Iba~PRGK_G6>u@2oBQ&&SxS}+cp2?}4tSbw^mA~*VLt~~KtI>K0-goJ z3gEPC-iYF;I^_5CdVXXg8M*}A`fb=hyuoH=vm%*>f{ z&YbVN&G&`_n&E$rb0U!-IoogB1=0ONL2~f6Y;gksq>62Ci0_97q5rnu#7Xdg{I@0h z#F8riH;a9~V&ExB_GYrA+ZRt<8xf2h#yR2JlyZe!goMM~Kfe#-*FekPh{k9cq~y`= zacFPu`|h$>StUeI#6&3(0D-Dh@#Y&pwF#6ti_yc0a(})rAuxUB9$^~6)7jGs9C$!+ zqFpHP-R6Hi9y9Owf4=|510Bp*Ja-2(DC-znf86@zmXj)Wuy@i*qJ$IB&bjLHxEzhBo;PZI%w<%IAd9y~qB>q#wq96@p4;UGK6A!FC3uA~~>7 zaGziBy}82=4%M)$(UZQ5oXwBEb5i9hXWzjk%LH}IJNUh2f*%+;ezjJR3Z>6#fxM342bk<-HZl105rG+l&n5xO}CclzF{(-%5d&fdPKpAjk;()6q8d8K7@jRsQ0KR)whIBs1jlHjPd0;wQv4o+Gt$R)o^ z`QN>31^J}xS}W*0uujlk%gB52IYDit;F*ov82Mcx!}zqa-FJ@LiFR}%l0_)g+?iMJ9XlBOp;kc7})E!!Q+cI;r$VTW*YHO`d? z$1w?bjYN1X>f<=aB$kbLjAvhtcVz4x#db%r9Xh~_yQdVhb8wBH@GYhhM@fbC`X}QY z=UL@p`-P9b-}?RD>Vys{D?IG@8bBRNwkK}UMf(-&uN{b;n&7Bmx8q)^a84*-DG8S1 zqhDRhvls1`Ojq|bZ!KV(akNYr=QAhP@s*(&7s-SL2GVZXAnO-*$FXRT&4QnYZR(!E zu(m;`Pe1+r#QELXiy!^!{E~Jg`RF34clu0h8-#lJ%Qa4f#&}RBjOdgLSv|1YQ9wo> zzyG9b6niax*Gc+I(AZ`p&rXcMN`d_5^er%$6M2OyL7ge zp274u)|fId?9vXr@A4Zs>k_k%=~^$a@1!~++1wPicMSV{nj>gGaAJD~u!V-=Xq$h} z@vMsdCzL^KP^?SQA=35?o=3pvC(avL73_fo+lxJeE^){2z=v%sdn(3;Y54|}wfGZJ z(KsBLCR8ygI3rE?X{TN&21;&(zP;+x{4T&5UL@+rz@ zR^nAYMbV;Z@$B#TMFQB@d%~wk${ffPZqX^H1)_-wfq}>cyPZkSRO43`2t$-U;b>+; zS^zppbwHM+_rnFkNy+U~L?V33x2R6?ah&a?wn6q|JYP~YhS`TVNs9E9{W{0^U8n4) z*&lW6pw1T1a~x!7Q*u86_TMMA9q+gQ)^^-}58xfwU|j1@Sx>J&WBs`Tgy#4iWGMkz ziUx+Aaw5V7DP1VbFf*xZfc&js7vONeqHOado#W*Jg;UHvqHFdYh;{n014&&-3n+W< zW4kA_?AJ-HVm2kY*>}TbpUZ5m4yMYHyT^Vx-6whKfX-9i{Rl+ifOP95T}QyX00MpbZ2`ivV^`iq7%F9>6`h&MC-h)h@N|Y#X%g=owUs z+2>LmV{AL&QOACs;z;UhR=c`HA{YB`lBB?Xxv*KvhNn_gA={Huo#gN_lqIqc<2Y&2 zdTGAS;S0mM$v%Re8-)?MQOS-VHYaw@EvZx0dYO$%Zk6xQR&4CKm42(Ajf>rXOL-f9 z&h5YDJl?fBtD?W>j_Wp?sB68Zt>|K{H*AQVghxLsjEa0j=ZN_51}867=Z%vrJf`Sc zC2be_p|4r8qBOkYSz)T=MDqR%&fDw>yiZmXHbJ3t+%mkH()CHRpz9+RN<#*5>PYE( z!w}6xSXmBvbLg%! z_MgkyEBIY`QT$Y6${t4`EFA?b9Y5HT;^gN0f#+$~Yb|tH`B~49)g|CoSw|);I|A<@ z`>KL9;+*G%THiNQ*sxSKA6GmlObRxoI@ki6tmnAx<+j0Uo2>14MFIOJZdMdUG7sUy z&j~X_s#6_b7ue*0@(MwbQ>Inq2owmZT0vB%)&Xjzr-*wA=n|%qtx<#k~o$=Nd;k*T7 zVw*46Z}20(Hr^52A^ap=`2(8dymeSOsb{coxNQ)&)C^}js3Z1JvJ(gr#@1i5{t87` z(ZFP<1`fpw&Hz%>4OF*oPW!Dt2xMi+vVHEcErHoSoH))+}YdgA>7_7%x11( zXRA;>4|+RBYQAWWfOa2|-rr*LSV6YLO#oem#bnq>_|Z11?%(hBxOGM%U#wkfq0c%|zvdb==kzBZMG zef)I+oJ7?G9ojOUwo}JD4vVk(r5EfU++7Wul$;Ps;4R%L-PkkOzsKck@EzavVO9k! zoB-&_5wDc&AIv)MV+g^ULW)L3t{J}(5Usb!pWC2n*;tq_)^)S(WIxN|W7~yVcKK*x z0A!sP?Y7@)8{BBW-8R_OOg89vAgX1j;^7cDI@jRI?ZPBKK$dkiSFkO(u3Z?OBTjjC znoG_ap)>}mMR8nYd%_U>Z4?JWE6B*&5sSIBCvV2iRH z53zj{V71T3!g=Odv4&OIyRQ86?nHy%VVJ4xu4e1iy{&9_8*Qfhq(v&RUy~*+wO%9b z!}e}vySLG*AfQ;8<&flGvtHYOp_$Mj7`OIzu-$*77#9KKgDl5cfXl0p@GJBHgp@1(wi<&8vmYt8P}( zecbFvetZT3T;!kz=sMBy_;l)UqzX00Af2S}!;@62T0hvnBi(;xhiKKn^e}DFS zn3m}9qTt?#b_!n;9C%46WR%DcwIu}m^LExaNw4Z<;q_qsMgf@efe59tdUk!xhM0{p zzOg~EY^)%5Tx@pi{jue-2x%+!#;}B(AHtMz z09>lI57tEQwtrWHI$+&ZM?2>4jbOVYSr#g1?HaUy*TH5HaL!(q?T!X8{?|W*kHX@K zdrLUp=as4ISBz?0{g%+g9K%Q75@zD4V*<&61Hyem@Rr^7-x9z`cOvEVgB`uG7w5_RHSgU5N8KS^JQqlk^6D zXcyWlVn6KdmJGRsZ21M75|F4PN|1sml4QsxIk>K`O|(&Y3zi7Ss4b9?m9Xgt9Me`A zm;>a&mt_t(s+$AY&);%X+A=qbjl zFl7F<^S}*`h^buq?e4K!T(Q2ClB-!0RhG# zo+Rx8q$;u>bcWf|pkvA-vNE>RgT}r#1fy?(;lntScbG(0AG^2)S$%C$tn|z=AE#!c z@&^0+0n$jiUSJgtvZH#dLGkh9iKYX3>E>H7!CJ2g{`}@!t-{SW-(sJ}M?Mk;m&PC1 zk>y2vxWC7zP2{}Yef@ma`C*WtLwNMYc`cd#5lMvEhWlYMTz)!8 zw{^~x z0jNqbEV6_%oyUa&^R6&^c*ig-FUsxS7y5ce6=+RiZKEXY;zLPX*%aP33QBjX3A@0F z723ex@GPJ!Ivef^WFyYB`miq@(l%dYR~~9TSJ8zGD-UrbIRSha=1kbPrSD9*Gl~kL zg$m))^Jabo5+DHtnlHi9sm-F?R36&ng1uG_gIPc^!d!M-*_wC!%SJ72R zNjZe1PykDO)4aDg&wslEy)#Vg!tx8}ny**Gp0YJ}A&6$YKIDj6A7PE$vgK_X>S8)X z1fp0!${Gb~ZB)zFh^}F(uK;C#1lcf9!*3Qb`;XJD*EenId+CL~m$sYxym_bMc8&WS zIF5l~bA#XfpSRb-V8BiHr(^jA*aoiQK%&2_;t{}rCq2os@Q4)rhewV0Q0CwRL@uqY2%T(tvCzRE+JH}{dhTly+!-K7^`&I;Jh zL)8`K0B9RU0AYh8atI`&ZMj5yZ;QCIR$FmrEosVO25=R8hk@3pijGkmP{-j7Ob05c z{^3UN%CCjLL4dHg{#&5{&b;1+?}ZTp#@_q9xc@)G zf5Bn6`J`|Q{6zdDd>DS#{v?cGUdQ++p$<;F_kR+`3a}t>-0+)9Im5t$f8|xxJ7$$j z`HEQuv&t5RI-*#?R}NXlfwRKL#PO<2C$n7(ZNnY%{&PJ7=baWfK-jYv9dk&Wa?{Zt zHh=NMJ{A7!FT(pfF9-$UFYi6w-y?mw`*gSJ(k1#|1w=c)-^14a(0)l+3>?h4B;3RN z@l3`NmvAhwI@u+Bk}1cBUBX1hj?cJ+3Csa3yDS{+yduzVQD{*i6@@|jzeq*z!OvuwXm_VvBnm&#{C!qM@w_~QqE7Gx$hp_a z+J@Veq7BgS8Kvk*2#|f|tIZp~0z*(a(dpMAV26icq2osaMN@#>%Yh=@s825JS1PZ- zh?Fh}x?R|${CacX*P!iC;J3rW&dwlFYS_2^e#m)s!^G1uk;gbRkqlKZOYD<0Szyo0@Y`GJEw@M8DJ`4nuvvd)2E5nm30g` z{Q%OsY4!Cs#%+S=6pOE9!<>SE&RU6O97c;`a1XxDN3m+Q%qDeOTT+nQj& z2;l726OQ|!VT(-)Fh78W9>@{pG1FkTPA<2Fw>537Zfk0>`Ls0w76cf4c7ruJ9M%y{ z_H%f-EfShVwKYM=VWp2Pf}r}gHE9ilc>Q$Izku7qT+u7Q?YUf$9)3ddL11?vQ<`VCbC- z_4nZ{&YQsm2&W!PPO_Lus@uK z&9wQO^MFlJWZch>#6bGMD2h2yEYdN`YCS4Qm>@&vPVdMUBu|j^PMjn9C}K=;Wn<&x z^$m+Q>8F=k#*9I#a^`_XQ$t{MmV1^!a&6vY@xJ4nzX?3i|dH zFuaFWh~6hb_lT7u8jOErr6|I;aCWZYfxLX2u}vJNuc@o5UA4%hs9M3Mm9SiVpNDzJ z_<0aM;(RiK#Q9ZXih7_yBng9Ph)D-s9&O(Y@qd9ycB^xX=w9w``)|3_XKy(LXKzC= z@Ji>cGgs`lf4g{4t~4Sa5?<^4HrR2Agi>m31@6a3Y%?LQL(Ul&sWGlUY5l3iR_G0zL}I%wHiI`Tk;HmiY({UG zYW-R3e_L!N;2k5|ET}03f7~_`LS%lxmihaR3($kDfG_jK8Gk6+Z?H#VZ8<%I*f!?xzs&#eCfB^(4m~utIzXMmv2BrZ~g*Nf1L88XDsUo^S@S(MjO`_9U@|;=Z~Y!Rbo>H52@Rje0zc3a zm=hWvj;ApdsMHQb)3SLl7n_FOh3hu3U7vuBa5%~FDDdc*X9KCQ>k{BdAiMy$05o&Y z6_=Pql{bQ=T2M|<$Yk5k)4%8F->dZR74mm&HTk=P{OLGFW>(z1jPL+cjoJp;!cD-@TyQ-JUUwXe16xH}^I^d6nqs|aLm+HnfAeh^hD-M0O_vPrIF3wny69lO zPof?txlXDe5~9pOMB5BDAtKjTa`>m{oTf6PIYrsoB2O)CyY`iTW!Y=(b z)ZcTHoPGY zjokT*V@j8Dt8$mxu3@2&VGs6e-l|NV2L9?0e(DWzEOP{Rz9Ei*<^xdbbclWANb(}u z+0fL8B40wda;PzEw&rEDb4uxhrMWo{t!^9pAa5}o-P(j7@iL&+W3dO)0%`ZojzyT1B?#)iD< zEkyBVppab@MnR=DYfaA(a3)H$<8Kd$6Q*}^EoL^X7-{i3g;9`Ki{RZ9Jfo)8M4%fv zI>B8yr&p}OW9Mq$#iBlO0o+Ar`QhR|@w@Qkr@*R%VsgEX{PDzt;$N7@pGkOI+?(*W z&)`F8N#(`GO$}p`Q`aDgSg^CEZVgiS2zFM%fMXLUCL)=yVCO>9N{c=VjgsJ>f_)>S z{RrA>B$Gl-L#0JO0V!kxx5U!XC^f-(KJ4Fumajd_ZE?R%K755BkO&8h*9hpS+6TRZCqPh@)bPeGJqh*oiE~RLQ zXv~m-WS4C3Q*8IsR2@r*+I~15oG?&Wl!BLH>o`ZWnY^IIts%746=#N=0XDS%`?gDG zzwiIo1?P2WdJJ?OuOr#;M91tAmFZE9`0ZbFljh%m`{rx*tJdo++(qUU>s6{d{-@(1 z?~a9MuR_P=1@1vobxZ$vhS==NjrOS+BsjRzm8)jTaO(nD=A^P?gRY?D3Rk+VY|dbE zg)_-k2731QJ#dB;*yckR`d&Z$`EBjSo_mCc9nKpBVGkM8fiPdw3qe{Gnu=D&CrO%r zKmFgCWV7@>zR&m7Sj^N;9%}#6HyAU^ltTwj_`VkSXv8CoJ_C~p%PrNHJTP0ITWzXZ zmfO@&n~P+RGCLPmHCpu9D5R31v&titnoP^e>gOZbLJx*)5d*r$ke^?SLKnkh@dKp= z^DLcbeVfKs*p=EEiB$<|H?U&RChAdcmR^A1;AYtcySi|Aw_Q^>+=2R?!Z4TYmEqxY z&TE%sm@StiF~PX7T#_=LIsqTELl>Nr_bZdlpa?}S8Sx1~4};UI?DmnkV&QqeGCkrb zJcj~+{RHnRm&Af%Jz6fAR1|b^ll z0wFx=K;LJbOqD!@8>R!d@RM6Oyq2}&vWFyb<`*t**>RC*d#(l1`TyPW>P4#acU=6V z&R6>KdcR}1#qiFBEg#c{9k<{lfV`N`xJDmeBwoYOi&^xT0Jb`YE7k)K1v|8+DZ8sp zQ>{~Ls!WZRnmS8uP2)4N1rqq5U$1O|^!hP#R>eu*R=>lx^qx!3AZ-OKl|5Z32#%^x zoVWM5E@f5hv6aFilI(6dcGfB2c1{5SO>{}x$j!)EZAEq02e2mynqNU!+u+(BfRX!I za*~2=!HSbxZ|v}tRJ5dpatFf-dXn&y56fcBJ#cw{DhbS>qe-n&dg{ZI;|2x#4Uqfj zo}|{xWZ%Lair;_~Ocp;Eqpdi5#R-S`emLIkH(Vi$ZVZ-F8*c3#`!(wo`*rKp=F`B8 zA*-T8{=-|NU1G?A$f|&Gj!te39(a_DXdtImHh_JuV zwy`^wGh$-skGIaj=El`pY`BsuH^Z8`ME2B1<;^ZRdEjj27F%B1;JOx;SbSvzNzP)T zl#0N#1B-7a0Zt!Cc1|L|Y`752BoFDVAgMLhmIu;Q7T9vZUK^Wan@)eK;nAV&dV>52 zb|UQ}a=Os{((9ityOI*(SHZ4LY84VG!4M0RtXIgNtGL*b8$26&izY@gFK$--?H9m7J;Ex z&;BPKtiHTLxXURFAR?~Vf2$DgX{il;*Lt^E2pF8yQz0d!Cy69RG>?NR$bfblKuzYH z9=H^Oej=bk3s`q{-Kn(hYDX^R%u zlb~XvovZC$hb@1WQIDeIF*yIU75`T??!J^8C9tLAqnC1%eAgwhaE)icTdw40G7Io~ zS90ewwY_0ib3bR4yzhnXw9WlrsUz9wl0?D(G z&Jr7I$tj(MRN3%c!Jj$A|F1xriC!SCRRs#0gzx^?7|Ps---{1aq&ZxNxoF&U98@hE%jR+b%0Zr2cN_=me4O*M zR>jQV`kYDooK%2x3kdnhLatkm_!i*ZV3=o_VJs=0U50}02g99%l+7Ahp)y-dO$GGZ>5m^J)^zXV)$-vu{QPElFna{;Y;0O zS0nLzXeSDJA3uLgteL9$0D(bSX(=x@)-EbFH8$4N*CFMbL6aMjQT*!yVl(9FOUrU{i?$Hk->a;jl`}sj1F5`MXEkQu0da&YnZ-jG2vtuI6}&U1O^U= zyN|a?*;M5ugQbW?+S8_CHeY=#WgET zg>}>$0%z-p7u2|_i8@;uDCm7bL1C%B8o1$NUr6-uX5~%*aT$N%`oK5EPYO&Q)-FHou40r zl3v4){#~A^>)^0te9ZO0lAYq!O%76>cJJHLrpl^iWb4Y#jMV=8hgzIoSfwsi zoJabx#DFmva!|k!0{6MfvVt~80l)mA7kytrH?#2*1WC!U8V? zvI!j9D_mGZauo+Y?e}x1K#?Hzm}cGWNs6Zus$AVtY%b!HWlZ8ZsdNTx-nVt^Z}h>aAKAmtyM#|tUM51JH6piCOKO5 zgFus8TA+tJ4fj8H>ZJ^Nf^nlg-M}PIz(FR(ROMs|02QR|2g{h`iGjG%qzIXCNy+8k zUOOFBMW8FNlbEe^!6OCH)UpP&h z)3Ai@VHC7(B*0?<=v*Xw0w$RFY!i_9N%R~FG!u-n2XjC@gJQ}+fz2EZE*_DQj1(4r zbtI-iJmjg7^|9WwK2%n&jl$gsRz>tPctxjzWuC=tor++63%}Yjkz^Cv3Hk;0Hh@;t zTJ#x6{yaRASW0#}3TZ22nYnp%xZ6H4Z zMJl!oY;2YQi^$l(u#lPv4nIVRi2Xpo?)ejr<)v59Uhs^Vj7kGKplXE|kceTD z4AcRon1Mq7%g>*u8LT!kjhb_u2JpZMxzO|YNS8u87nH@q_x+?50nkVcKEOJ$p+fcK#+$L%km)j&ABJS-25nTRXhl~(8 zuO^O2oY!qycR}sE4(~jGMp4y>aHkST&UXG^^? zba6L03~zS45&TGI9G5*CcO^aGkC#jpkYq-B>yDs5723Ev%6|h>NjzHTdjA>bZtgfw^EMzEJ!OzY`trH0z7l>q6o5x`G?E= z14K2Lo|7GZKcFN&)Noju)HS@5q~h7M5HxWv(>k&wT~FZ3R9VW{Iq|Mw$eGploN)#1 zKQ%BFVkOz}PT&6Kp8*m99Rh*|5N<-%cL2KB&t~Ie&rTnWr+q7kVE%%i{M28|Ou~+7 zLM?L;J3jRf6C6y$mJ=mmqM{bt6F53Z6w>~g|0#J0Xd@D@J=1Uh8GZ;U+6G#OW*XUy>U6OuCMh226>Ed*yv%mfiCp=$j zpi37pyjCTnN|8v3gqb)E2?cV&%fjkob8^Q=QKq%Kd*Ggy=bwL+YHM`6D>~By1nnD{ zaQ*aEHMLD7GFfC=LvG~3vGd`sje>j;F>;FL>F=La+(M4q5DA`o!Wf+5$K5+6-LK~m zQdcJ0Bz5m+zNkQ+b1T$@fQGaY7C$-CGPpk7?OZw zfgW6~inlV-tvPjTERR(-Sen+XFd?-XGhZ21{u(!CHVO_#_$QS{l^_op0V=fazLKG@ zP)}d6VWclD-V&nmNrozUxL2D9cbmUJo5+ziqez<=MbrrD=xF@&S4JJPA6)a{&T#=t zL_5D4i*e7=r>h}l;02+tMBAR7^IPXD0U|T!J3q|0edkB$u0)zg8M+s9$@QLl=LA*2 zuAG9krEh93L0Pgw&|Hekby zMT#cE3)n$~mypL8@K1QPsh@3HP3<@&dmPY-tpxgS4Xz0B4>wEJGQ@d7vcK@GW+TZH z&;z+$dy=8IYeCIK{Pg-QUtjn@X$g{8pfBR4JjG#1p5{cVUQb1uXR0+dnK-?Mq*g|6 z(9bHJsW%w%3QLPJk(!8+#5ty0awo59C~E+x3rVVZK0u_jG6w}M_288?EX%EHLjE96 zu4SQR3{uzPjC%srJdh{9NmTXjdP`nuY3UIW*vcS6zO%XYwX;_(M`{qDyL)%@-YT1{VEF$F_^%pB@*Q>Q^l*9ohWb(9fl>>O<4@` zML{53B0qr6;fCwCj^WJQKoEB2qAE*ilWE0@nz|)OVrF(Wfu$*KhK4c_^umT2bjGAl zlWAB{U5T{oxn;q-3A5^(>Klx3uPw3iN5=+!dY<8?N4yb8X`jWd_JELp7We22!T(l2 zM@1O4$umIlX24Z$VLCelMC#my|1mpsEe)HU6z4`92-pmpteb5uu zE649ZSZ~5ZBVj%D0S&bNuz=Zm>3`VkE668!2FWk_W;(X*?) z^@gMd)FAAgprszGMNdg1Z7o>)#AKo9o-_cYTJA-Jf{~;S91GZ9>KuQl|M_LTfbsWS^ccan!2avTP9l?8>%cht5#d8XAzTTty_5`1$f`YH>6rd`y`O% zE{*f;JYs^3lyS|X3jIU5YJR?2AA9I`D8)>cm)_zvZvjHLE`o3 z8Cc8+Y^6#h+rTjinFW$(07OiqjhuX>&${C$0nZVald8W7p#HR*|A#SR_94Xm~^h~Z@)a$DoS@DJV93GnnH*d`vk z{85ixUX#=@+zw{>U^#h>vttTiIRbV&<=i`g;sGJtF0Q@PJGNi@8FQe2$~Vk`pujo# zN`nm5CQOv|{eJo%)q>4f`9K1uJ!d4a1-#Fe!uItHu1 zHo`moFmOX22^A2dC3pFv(#pq7$Uh#2P845;wQvTKByywAPJ*DER5L-9%t?W?D29!N z!gRDE_&yYv@~0|EDkmmY8ks{fA)Z!py?fzhqw%8=-YnCMO-TP!dwIqPl4K0Gb+u!0 z-8aS%|MC3%WM?Do1cZ-9hXqGuaf?Tm4T~qcokry0-h|vw1W&?Wd}GwWRmsoa7_$N= zLnMM|;)p5mKn#lmdjmsvDK`m`B_0Je51%IAmyr7RCKm@WjB*A-6A~sV5dkyFVI*NQ z$mc`lU^Mp*)Vb3MC4%I!lHTHAm1CZ&a60n8O=6#(Jk2}3mAleup62ZK`2tC=WQA&j zRQWQ4CL|##x<#on$P?Gi|fdiC=rHC2A zMN7oBpx%R*Gx*rP$tqz4*dH01&`{0D!3n3r`Z8iHYF6Mt(KMA=MUG3iZsoTswK`~$ zgguLF+# z;glp{C$5PY3=pZJkG}c%+yDYyXg{*qGyD7*iL7E+)D#%R$2YY}5WuQhVFdgY%#DVv#)6{<@%Br-i z#1gZjp{A~BaSV!i3BOjPj%Fb8*B+W0uZ7T`7ooX1C51V8g%C!1)k7=ZhCjSt9Y-UA zJgrqtrn<*~RtHDxZ958ZIjDTTlep*c@)wPz6>hf@??tjVr;aDf0rDRKjquTrWUl4a7X=Av5Kg z5`pte%KoZ>ocS7F{FOP z3&<@%q<+*32HnDkU%oPKV$dQ@oiNEI}gUb)PwUs}7o?#owRz3q1jGX~*}_HWcuEIO~g zVV+J>S%c!BMfI%8s)l<0b~Pv-xo=^3h%y0ifLsR8mNJnmXS&NtTzL#%_Sd0uuOlyo zTdfhPNVko!Z7G0TVp9VSxGh%T>@aDyK%0qsGA4(};aGQX$+5U?iqAM^9A-WfCo$u3 z;IE;<%mkeCnK%)bx#WR@;E6b+%||n95^ufVN6ZRtkHJU;s#}!?{(Spca{KTL-g2}_oUjLBkQTd2- zbn~Xq1Wij70`YsfB8r{?)%mmM0u%IQi)ZM*94VvlnRsQkk1DLHv0C4Nq`U@6N0LHr zB=Ps-wwaUTm?GR384)waz(E6MLEMNAY%6g*RI}YheMwpA7HZx=o&?bfQN`^AlSeUg za8$wM6hH9T2r#-7fA*c4jR7sdJH@d@`nmZfCBJZ2`y`zp zHEe6nZlmdx^x8@d8~e|Afv}6+_FZ9JO%vV0e@0SNkon@%DuWgR6P)q6FweAb)e?Us zBTgH+EP}=No50v<7N92VYXp8M*2e+%SsCnF~1rvl_u`2Oo{v z`rwk$$Vek+h(@pSWS*y6^H8cn}v{G}PBGTeZTt!ks}8 ztf08npn<^9Y2?!_;EnyY7gdiZP0vIPO z&K9FE7^$50QAQ5)=Li}c1)T88Al+m3Oo}!JX+U(;jH4zSynrVe%iB)6cMRg3L!3`JHael!Z zG$sVUdQlynpyi6%P)fSEB;QzE+QM5iDKW@DjM_Gxm(&6?F(lIf1YunsAsR{$*yT%4 z#vn-~M=oL%#9WH&8=EZPyf;)r0IG4KB_+j@mS#bcC=Mr#<+?PMmO-D8?nP~`6zDV{ z+Cwu9I+VqLx-BU6Cs{O-Sg!HpIDF;><9+6Mt{9v^Y2^T+O+2B=KnL7TH(63l@)XlZ z5u8xIR!53DPjNIUf*;D)#zRpFUMOF@?>Mes`b z+Gr@sz$fL?f|4@v%FF6RW(-bgH-<`dmeJrnMvWzG7IIlebtCEbALkgW@z#amp0H&G8hW(toa#hLFZPA0W8&`z_L0R3lrsuO@PoP~VlIw*lH&6gg5miK!~34j^^2DKX%aAm}t z=JK;7kVHrX6h?9gOHAn;*VE@K@@`m z;kf08W2$WgKmgd)JYZ2hEK@jo`QqYw@Op?n&6gV=uK`yGNPs=fgQ_YCi6A(JdBDO3 zQ{}Q4h?NqEneNZ3`nsl?x>bNjY-t{kTpxi1fIisLZu(6PtE!p+R5=0y8?_#=!WPoe zl@Y(_IUfD7`kF=1H=N!)U~z4IB{YwQXe$T7U+n<@#)L2JFvc*8ao|p4*!U&x${09n zVJy|2a&3Lxk{Beff!K_Df|qi#Em?+NxvrjS{`Wd1Tgf2g8?XRP8->u1>`C@S^w-h8 zqhm)e9=&Yzs?qC5+ecp;U6A&dv^Uc}Ogo--B5k7n|NgfuVOHAwwB>2s-=?&(gyyu( zY4$Yk?_MZ>n|2{hs^|WeCG1X*u7oVU$J4i_x5eFv+n2mAIaK$@esDR9C69 z>Ne}P>z>uM>2~U5I)&~&eXjm~{T%&#{iFKD`sMn^^{?ok*LUj=>p#^G>d)(c)suU9 zoZ}2rW7iF}+B_xN@g;oS(Qy<$PH8Le8B_|{#u)NetwbB015z%BUfVmJ57L37#Rp3z<8(`m=aOQ_C# z`)!&teT)3mvv=Tqh`Z#&Zt$LN`z`ggbhQ>{o4-Hj-7q8x^jaqXWQL#iRv>BXVjL_)!EsO)GY z;lUBVH5moNQQ`%q*vUu*anK!8@*q+$)3T5=qgCKVc|g~ za8Y0+qskv{^>R>1E^a#-q!EPV;~(#-gF`^KQzXd6q>7wFDx^r6VMSiXJ29Tz)+p88 zwA~man+>BQHwr-9NZXlJbBG~N;)rfHmFi*QUqB+Dn)oxEqjLk#eqa)+}&!OHs;7{L}Ah9endvKCBL7 zoA{<$VbuD|*SOKr(YU|h+F|ur`8oiBW2nzYu}_dY|54&6 z5)u0({$f}i#hCH0!|E8nW?0iCnb3lbP9xZK+NXhLdOHyrVXCmvU}|b2*Q)CYG4RR8 zA>GF9b2Z6K%l2l?gyiR_OyLgAz-Le(68dvD=iHk@cr9V`_LG`q9e=+=D09geNY?6M zQq~5K#EX(Ttk%nj0w_1^tcNyEOPiLOnj3Oe+;f)WOjE8 zq<J85Elseou zXBqqP=K@W7)SDv&7w1;iLjV8p^fvkc!as&;w0Nvgqn?u1ORqRLM)=W(d%tKH#*@Ut`%zH#fOMjjEhy8@JW-9?69XN|9|ph z;9d`Y*F6Zh$A1qPR%54le6gBixlPt64$r4N%B8G?GE@e7W^X3`(T=_lT%HD^~ukyFYN&ze76<$yoV3 zA<~Lu3WY*?Yjy_r9yD3gkc=^VF4>uqAGxtW(!1wM>m)av_@D6eVojXll$(4u zVvSnyvl|3Q$ba!qVoiwo+z4m0O^<`sisa|rSg>w?`SYd-xj52*zC>HPg2Z0rmqr>X zTx79B$~}4UUV4Q{gj`L9Ugh=xoJxGa68!o3H1+-(G$t!I6ZzlpUJbIFP(da$14(X^ zeCstxdY7CXgr4j-&v_{MoeR@QhRN?56vi<43m=Vkj=(F&gWJ?vp%-X`4|s2$BvQZy znh%#yq4wqR9?Y?llYk`th50eK`P-lnf4S71JOQ$mw@Wl?fj>jnm^pyU!;mTAs*1mA z4CL;rVuBblg)nCufnpP5V8?5rg2)YC zPKS>wkT8}xHt{}^r3DrICJ2r64EPVRNEAGZugE7Bm751p+#ZvLPCeo za6G&fG9EC9fX1NEEPm#)`I(#OnYo1f7|>bn8S!G`sYclFmKY1XDWwV331cuN^on9jkE{6K%!CJp9_3(C#ruQKhsn%YVtXT$qI6} zLz0<*0s&xY0kF)yXjaItwfh03=}z!!OtdZ!mH=g_GB}V5qh=f(`E@2Ccs!s_u)fcthK;~f963rm}*Hz z$pZe$H65uSgU~xS58eTZd4$1ooraBqH~vZFRs-3CkZ-a92wSFCRxPs-;t`b$F4Aej zmXVkK$r2e$(g(qYfh7M$o(0X_fe_^-T})OgQB9#sxEcF{f}{Ek65ZUS;GVu|4WziZ z@8>g7Xf1=CI!%ZalG=!n$HNW%Wu0bhEM&HkrR%LOksNZ{sFgGZ4vm%2usU5`64VGR zaHjS^mU8m98VXh2(o7BvFw32Eu(jY40H%YG&F~H6aO*!scZHk4z*@YvbONNq(Ba zlT$T`nN~(Wo~m*cy?q~{24a9IDGgH=gzFq-(V1S0P;$ zUPlCdVVP)oFqK$Z+<_&rahUP1QI>!iE=K>1mzdpQd!*_ZIYId2T=qA@5H-?+>?7Nk zBOcVr?U!;hxs{}bY5eOWBw%9zm{@#I<(67%7F$+uh8|Myb`P4bH!eovE>OnGJzSC_ zggjyWSy0ek_d0_eOg$=1w^vgF0kI*qd7oRTBLsuqaAUgLs(b!K4P+X!-;D(=d3pd2 ze)E3_0#yAEH!@F>5I6u*F^{-yZk{B)+9fwp>xa(68#$O*f(aUnMpx}wC# zU|~cbXYgxbnux+AFrwX}LgEup74Q|=74#A=kz}8L4b{Y|8HdE*Ky~oHK@?sVH4QN$ z&9^x4JEJ;kaD>)(fGqx={P_X?#Qn(V$8iqFxa6mi_&)&CoE%x(Bd6#oZk{Elxv`4R z0H*e5hNg~1Rn+AQi3&?-D}LtB-LDTFIF$0>?)yFWdWNn> z#C})9N2$1%?FvWsyi5Y$TO!@Td(2XSdwmm&QwF6!u5XE)|0EQAq>AX&hyVe7qc%(l zjF80}$bTv-hq; zaCk`c2xLY>{c^|yuWV>SVKIW87~a>_%tA8wMitLcAbgpMdoh#C%Rrh$G6#RM3baX_ z=)Fw^$oD`Y$pRdmrP0K~d)|LGC7>RZp9H>RMOI=+8m`QcX@ntq0bU6$)am4lUi75O z;G`FqDZnpgX<`Ip1^Ay?nn=MokoHr>u)fE8xRqq_;+x1(^_v8fMr<0*eFAD-cr%DJ zlmC}1B%4C0aqD}kfY>*|W^S5;bI6hd;cxIh9;MSgjOKETYVrj9%#s7awD=h^k&=9l zv#=Sw@TdP-HA@P(nUxjt7&%CCKLwSez#=z{pKQ%6_Z)iZ?BLlW!13$HTNc8*8;vN` zI08*y?>*tg{Di}`?i_xlmT*H*lnQi~!a8aUppY^s%%2Q{v5?(sNdm7U9ny9m0Pur3 z1P-e&X08D5JSS(R^Ee7&^9A^kXiYF&a6L#y4whRv`2|TlM1Ct#*aDuf|CPieblC7= zEFJ?SQNe)%E8QSo5TR8(Am1I9=Y$T48nhyn9&29GF!A_s*!@u&i+O2`L6Rk;GkCSS zW@KS4;}(><7C_YFwN}DwPEsONn=w){C?WAkCj&(@-7xIZX67CFH zC)n;#XrxbY!q%Dv+rLl*o15J$9*iCssD;ynK~Hgedc>LteA*k4>{Ba|33waN2zYNp zwUKW`?NIvdKiRXqaACsWBNf!ocn)|Y`g9Bm-Yl5xZJYDl!xt%NfL8N7-DVqz=7%b} z){wN-y}Kf|^2!yyLqU}*e1U?hhwa>g)3w8gR~SW-5DRqeY*@5(2M3SdDZudmMHIE{ zMPP*PYikvRE>j_3m`d*RPzZcyf*dMj&(fp4usk2Wy%PGeXLy9sk<&!>3O}N3B(;%m zN)i1cd5z;H^lxN}w)ZI1X87O)nFv`YM+f{G)owC7_27XfxzDVCE;0inN7Ehwmp%P= zz7KeRvzw>04?tw)Wg)492!#rvhZn+rZm_a9VNZfOhnJhol7Dcp;J2tc;^H}^Y6D?Q zdjO_t#O9=Jh#@TN<-5s7l7pmY*syQIFHzBlV1h`9klyOh7Sy>s?2(7$pZtONu3)Dx znH=qV0&2zR-sdOn1D@Z1al9!%q`Z-I{Y~^OqmKmGe@{TL`C}pnctfn;!%fftw<1T@ zsN@r#zfU>c5b_z1@kjn7pYu!|<@%O7iS)=Bsy)U}4QG;;8X*U5hG8C(9Ea1FiuX&N z-4h(UQC|u0;XMJ76TbGaCHaQiV3L2+i9|u){tugj+|CL4PJoqv573yu=lS`8BOdl2 z!jH#_&F4PMlV1Wc){{INKk;mw;@Ai~4YN#Aek~2AS~%qwSxQ$eY&;^?Bgq*KBjjiI z5kvzP8+oHidKOlvnG1&g*R#Awj5|7==lHR~9mUXyol@9nEY2k%f7vfk&z+Cb3uO6| zT`sxEb9jmG|5tbag?SLu@bvG3{!_XBFaQ7gzvAgX;+g;(>r`Q7*GIa%;py@w-{mc? zOU-TCC9$euX*R(pR^jD6$z5L7_ju&rIOOra3-CL2s<8qj#8>N7NdkcoN7k#t%tE2t z@KK0_TwY!xdAU>!aH7RvKl%tc#pVkj?xPA4iIB!5WPSi5F~kfMAQQq?=UfW7l9I{! z_Mmh9`St-L?Uh1q*9Shzqk+B+g6@f8Q3ga~(<;Ao~% zZ;2LwuyK@+0&6WR!Dp-wFr%h;|au50>Kdpzy|~Y z{G4Zf5LT)>c<$D;%^}vq*f3>{_bd<#!KRml3Vae`hv*q2EwrQk5 zmQ5if)O3i11V|_^r^BGtWFFjt7>6(oY(NOlWI`f{Ths0Zm}Utc(QMMn?kLs%w~e zOeDlKR*qESxJYk~m-**Rh~rl+31zvfWF=MO#WM0##}RI+CDy3c)}pRULV<9djEimF z-VmoSZH0Q9Cq@djH=;>GCyEL)O^%aTRulaPsc=eMl#EWY$@KnjYDORqaZ?NZ$00CH zFCnrA@J&lY3E}CK`%yT)zwMaF#M4a#j2Xv9hqr4Ms;kJYxaNpvC!QFmpO`1f!O-SV zw~6g9!U3DgOsA+JJ5>$YY3QcBB9=Edj*kf1a>MiDaL&?lpiY%rQx{Hc^L*7sklb6K zR@FjyNy49Lk;-+k%r$XIq&7=cIj75VJZFgMtv?R8tgKtQ7|g@&WpVO>BpIbPb_q`i zLVB0S@wp>x+7eTTOzvATAo;~|-JXVZ+lk7^>!s;TId4oWWzn`Sy-C@5)ri@Rn6%GU zGTSOO_wr84L%({@5~aBdR_osFh<;8q`nkIQxgz>`aeUhdo7-{$bu=Aoo(tpnWs{1Vvxu2CtJ%GUwl!e4Tlry- zIND5?%ZY5d0@bD6@=95&bWYnZ+PYy_aSxc(#KSNUBj8?(!KZzdoXOcJ>}u7FYh<<4 zuZ`oGrM6V#b#Z(`sm)z@J(dv>R$}O7Hw^R=6b;X|I36ywX}Q}62I{mt^A0K!l#5c9 zeq$Ve07Xo=iRLG^=$p}WIX`W;sMIx$J;mVm?Z>As1}8YbaZ|fhRrof3&=`Mb=~V}e z&rG;@{rI`iU%T9P=pRd#Cm-7B{@}MsUmRJoGwDv-p-r|!cPAgZEcwvJxwnVsGS?y3 z-i*29UN(dmwRd%ct8-ZZm~fyAs(u!Bw3r|*PnXMBMEc=8F=-U;F-K#4WGuD+qMxjxWx+Vr|v({+FO zzcePa4LYA|^ZMr}GFE5J;tc9M$w)#kLaY=*D%;Hmj{LiB2mS_w$BF}MIg50RkmF*y{l#jg;1_t zfqXqv%5z}9(+r~g)Qk!gE?T^>y9)`z&^bbZG6gCfC=7HB7sJ_s_|a-1zGzcyr3Qu` z-P~yCst!sW4G+wx248i}b&T;rWpTgvLw{LVbrsbznsU(!2#Dv$OrgTzk-(T=vWrDe z%qL;fXi>7wA_Q$*5Qv6ET21V!fx>X0vl|L+Ddv1qBB^>yq&%BMzK@qwPHmaNaneVY zjmTvYX%UE)A5*g~C>Rgt$IJnJK|*BcNCjAv-1XuArHj$L$9 zC>$>04Wfv*Zn@BE3-acmw`Et}e0Rbhd> z*n3tQ`pSp+dCPUJ?R(D~t@Rq>S1n?m8~LlZTHP9$y7bp@g}}i`1P{$`acjiMC2+5( zc$E8AK6ieLmP0IE0^5b;19-aV+)TVf=gsopg##M#lT>lfY zrm-|%g|I%!w~o`?45p73?0E=?IqS#KOY9hhv1 zSk_y=qJfdl!blEy+Woi68=3{d{1pvB-pQ{MYpTFA1;0kh8~pL{n!g;3UnByq-ikG_ ze93o~2*M9(+_&|9qJ|pENy&Xr=pB``BE_N$t}l7{#S_^Fqy*$3 z3A#Dmr1S72hG#GNLV)}rpY$=`Ize;g5$_jazU9pRX-t8oDA4L1( zwG_3>_M;5Ut_{|=LW~>?S_*?6@(Xbk1EIBnH!DVOqxm;Pk(XZ2AChA?Mx`S0SP<)$ z$R2ETVA&$=IXUl16xSIfy2hw>jOBklrFjkGxIL8MGN@)EC4878lU^ug>l%9m>wK2p zTI8-0C1>l;`%>wHGbg6;0&!txaG6o#!^H5NcWf3(;4jmQ!I%`pWB@K(ya_NfIL^ey z4y@_JF|?I^ol82IsYt%enuBsm;r?$LA>UF>;4kZ3*2xl!)kI*4rG{+WZ|GIUQ5I9e z)K%TB%rsIa)5`gdX$j7B^C*-jr=z{n5FDk}CP{iidppH(EfaiZa?Q$?yT-+2+aNV$ zn8vG_H9-!Mt%_!rzN<4+HF_M2aY&7bww9S{WjsqA#iIk_a%QVH^uM6x4}R95*pjuz2iI%)#`Tg$XNS$76G1Nk-)@s=>Q9dRISAJh<$!!}tW@vV9+UUUO?9nrV?-jKN|0w!>#PZO^rL&8t7N1+Z zuK4lL^~LXkRd{gF8ypjySz<5!xYSsdU)EjLUv_EvrR6I|-dp}s`Df)@%C?U_SnyfF zw*^0j2^1Uwxo_v_e~#{~IIm)D#g!G?Dju%5wc^Rq2Sm%s1}5EpXTE0g9fiej-J@NC7dYfP+u_U7P3r zD{JSg+b<^dlDpqNa7JLxu)xnbfiw6WhRJ^4kJ;O=-1T?$lT#&exe&}~XlAJ${LgDJ!yr1Lwl0hp6lC74>&N*JPbEC=5izI{Y z4kSBYBnw?|ykr+flZ7M6py7ksx5J~_H@4?^N!Lb`u8Sm-r&39XZXW-s4S{w@j$UyG7u|b4gsB0=m+-zr;?%r;^?iNQr84B0gDHlJ?sS$ z&KMgz`CXYBCIXsPv_l6YnCm6A9Gu#XZ9?HeGVrX}G($f$F#gg5ZZH34m)kP*qhnLp zKbCuDc1~?*SS`uoe8Mw#yIm&({ffC8G_|x$Wv0*MBy@jHC@PhMDhF%pf|FWcyUY%b zeDWjH2SSO0=S#u$e{>yFzT%hdcKb`Q6U&{kM_25C%~<(J#SSb9dvbL5bRFi8uTODW zu^CIuq7vNte9FCUk0Tj-FqN(MP1cWm*uCyd!_O4#HU6SHA$+gfJrro5suG#l5)HFs zLl)x}>4e{@6P(qiKU9nVq`Qe8f0I%I0jyAsk$g8LixkX^9azjKZ1+ZNq}L`mPXJOF zdoDS!^G44lq0E7>L5VF9Yd<~85NkipyqI#CX5w2v8sr@51U@LE_co4b=~=jPC36ra z2ugQ$L?gGwEHi-Sah7HQMikuZ_Jv(m_~K$0o2`RTM1{JO!35yXHW>>Dh6||T(GwxX z4n#@mGcT^}1p`TUkI)0&#as?qYHa?XpQ!GwD1pEXVUSW}Q5p$hE})M`7h&?qQz_NU zFTBs45+)oHctfIJM{i6iG6K|`U^42}7gk50<`o$dwX_@zPsI2f>1`~%T3p+iGk_SP z!=pV2TyJ0xnt|zw#b3q-r2(ZAJ$RaVD17N^4CNPu#|`W_;Bq3cf<=S{MzTc636u$r z3kNVaJ%y}m5)iodu4Nk_hSD>EWrg?^d)%4+63Oa@>kOLDt^OWxBFC}byOdfhuX>TD&Yj4r`HOU zNmz6tj88nyEe-2&E`n$;=3O02 zZA1;C^Ey%kREaqzM`}$E;*HI0_!PeOe)lj-GZIOvdg@gE!2Rx&W|AFtw#<0e5Bw zIH6{f|_75)d{%#tpQ4mKWA!p9D_cMb1& z#O>CcYiW6jnNJ-^eHB>G?|#UgVeeJdRks1p2L9edZubxf2GA~^aWVh%A$PiSqZo4H zJ`;wJ>Y3*f9(>sCJ{h6`O1GpM8O(a--lVo7c^;`TG;dbDfI-Zdtf*k_etv*5 z0Y5*HP}KCJQ#n{a8yc>%U^xB}oaF!Dnfu(%!aLODfrVFWSG6ozaqjC^J`?fn)9dBk z{M3CIhI`~ROxejp&nEbWnRlTWTJYGJzU~7+B}&r8NCXT3pk@bRUjPJJJ#~y&fktb3GlIPr9WkW`0K19@yx!hKrc@ zxtRG(kNX(ymU*W$?FHEYEWwD;EM|UD_67(R9&po(1qxF*{PRcMmfZb1K_JRjWj>$^ z!{+oVO_104<4=rtg~2q>68}vTLcFy8N44s8*{Y;B4791ws@p_V3Fn)!gSiCWV2nbx zxN{>GVaVtr)7vts?Z1?iJTIrTu6G8cg=Vjr%=ezb8%cOcEW+h^pMMLPI==~=^~BO( zI;iUPq0D^rNBsN8+?5RIb+f#Z|d9u#;Q813b`%i=#nQ^8~}mbv*0_|raA34SPn zqxoR`7+vvI1YP-B7L{^{-|)EGAO1!!N}off!!$k4VUBMNS4-}{NXU081Wffuh5VpG zemo}RC)L8AWwC)@sQW+=D3+W!eAE+e`=VdvAU1Z)rw|}}?%xgS}5uN_Y-b+*g!mww9`9{5vDFGRji*l@NQA}VZ6bg zFR2oWV=KWJQ*jVaNfkLU<;$5btJ*K87qV;-?s zI3u~(U_@H_gT*2h1SN3vi^)^LtYGGsY*;{up%Cl6C*7HLaP^B4e6j?epC>=%_D)JM zQopwnQ)cN#s+FP(f&V~MQvXaF@M%g{xn;=Q(gM8mDR-(Nlm2-VmMraJ8Cmq(mjKy# zmX0vQG+R%@Pd=arTk8>T?v86G4r6>)N#pggEd zc#?4f9)4bs#oU!fy4P+|p7a~O zrqMFJXN(ahrRXlvh0I%f^6F};K`+P{YvgyXn~-K4XXG!gn=m{)UPiZ1FyfvZl$iyC z$frsM*s6_<&0Lhx*bMI)>786_1PY4^we@6CbW0s9(}@pQ?Sqtn_+1MVe#sCO5FgDg zlV(hX8m5WryAEssSuAXWz<>y+o<(q@{)xjCS)HIhr%+at)yLH88Ldd0)TDpULa23$ z`kIapTeJQFoE|YDJs=91UXL~;L1aLD;iL*9+iChI8KlPdbp3l$V*~1t+^W6_?WVlj z^zW9b_;k)tpLF`Q!Hy1M%v4^r)lC@Z(a;LWFV%b;ncbXH-8Ko2Tj*RUyt8c36X5qn>Nk|#SuR$;Nz>im^(ARNpPf)PWcTy~t4 zBn^Q`t2(-%P-WqQKs5HMnCM~Ri4Y~J_ygHIP-;wM!ABN}K)e_TUm9CB3Z&cuh2W1_ z)(PFCv4OInNE94X?H%C-$BjXGgJ1zg5d(tKghW=wD9zWv@bDBT{l-YJK2t8+|zT!52ihRokQ6Y{mn{3!?(()_7)wm~<4dMR_BXxMYW`=mB* zNQyFx;!1@Q!R#LK;-?!qN`wMVG67x73P=U#Ty#s1;CAYgR*3sQ^%|#0{vH^o>h4+6 z+E^z{M?)!R#B_9kQYsoSMVQOdGKH5;go!PZZ%MZYrsU?pY)h>72BKC>2H#059S>yc zYBn1JZJol9v~wtxMoKC>A{Eb*6{uy6`P}%qchblL=^;!>7mDH~bEh;VtwB3<#J;s| zQYLjc4}b1WF%)q!W<5QqY`fS;pmMQ=`9q|(EY`mCI++FY7Dq#*o#}PL_)`*_2W)S`>EoCQ`%R1Mxa#GeQdLQ$+|4Z+=0b$W{-pqw7mo9?d93mpn z4Y&f&9b0fkN!iK|F7$b!znEwTk_Me}1tE2eJv=2#Mm2q4e-g@?z}(WntizJN_0#v-gwtxiJ=x zKx1IG+hiS-;ilxmBlPj4OWyOTCLIj^g?)X`_P7PXtF$$nQ2}>)jQ9 z4>C6G#N84%(^QZcqDlG}`9iK^?I;9qS1SF%S|y&OLagKtUfAa=c0oUude4*l5On(A z#aHzCG7WcAnj*tJ{84;ac1BX>?&4qd`Em@qxt;r5hI^$2fPbnI?u*15v4{6?UoZ$Y zS*nEP3r0elCNyD1p2eiTVHSKK;@5YT&pougWJTBN;F9rHvD+M=JT0X`9?**HeThM7X5m2K$zufU$xO{<@U`YJrB z@HDUAZb9Y?6(KCf7m!-JF&GIEos3{^XMUEEC7Jc^>ua@Si>irFT z5!0|Y*{4&C7g)PFV?VX+@`;%f>(o-9g4et8H=AuTiY!8bcbf)`GKE*C^OM+ zn@vT)n3?cnzLP+VtMc-sd*d?sTJti0zu%vLyHU&Dk~zj*hQZ?6>~H5ghgAF0=Bex} znSDMgCbklF!`Bw@;_?(%c;SHDp^!bI1Z%N;?n_>xv!{vSW=Tt#puC9D25POoXl$9~ z3{~Jr(A}1yLDuE^V$|$s+Iv(+ohnddl(G_q7WeV$yOK0Jp5{d- zm9zM6H9d^9B4;&G^y^D1Eh-lD> zC`c2n!G<~*cbVEa6?TX56t9R_FjtK?B|N>yQ2s?6dyn9~p>!OXKMMuYn^?Fr;kXyPz4qjjz?|FGVDA^1vZY*ehYUHstt2`Sm}yJ2d~ey>~`IOpp-x>w>M zWX8&NBG_N9<@(3q?|dyFB_W&bop7J=TIME%Mw=6;rk4$Rc7&*`BMaDHJ=zTdFYAquDg@r-tIFdlebbYJ&&P;kE zW+p*v3$3;=*fU~Ro8ZexdPfebq51M7c(K!C)8MAZc=tofi`e`fj+ z8G<-z21~52i|=DGljB&*Cp@EXroWPSF$B&gEO@JxOkA2|)eieBI4>ljF^K*3OGKte z42b4_#fx8?=`wr`RA8oSkQe+FeCPFkS7G8|QgbON^kAkCM91&s;z{~m??{?Ao*%@J z_}xFn_~IH zTfr=f*&$dC-Geq63zDx8?g9ftd2t`8sm$h(7@$g>=rZVCqsgmTqKBS8Nbua}rOJ66 zCZA-UG=a~QhR&bD@4Vjc3xg9uAHg(vxpJk`b&j6ZqfK^zBVizysRm{Qg;t+5Ro~l^ zG8M8+aH;9s+Di}upvhIFe`W!B9E=fdDPN#dlXi}5(@~u zC6c@w+@@+)sp5$$ZyAOHh$>%#lWjN#C%H&Q(=#A8R58`SoE-vtMAbIGYk|2Ko|2Q) zRf+;4X7818`!bcLl-WkAN6gxwkd_4>gD9?yIVucz78bjr#Gsg^QY9PN!@Oho_-%gA zh_M5kV;-jp24BVmsR?d=q^KZ>;j=R5!Z@FfsFFb|r1W@7E92sEAu}Oma z<`(5y4T`DyiTe{oVyDH7wYon!rmL>kaa3k)RS)4gxXGE?1QQ8e>hZwU&Jt&ecPA@q zYMLdh&dEQaC&QVc=3L}OFJc|cs#h&c4C5@%GW$s zr5R2WF~EXwaOXIuy6zz4&-=S% zlsj-z?v@9kus#0g_+Ji~Za>odQ}55czidCBuQ}jP_0?r=XSW+}JWTrIpIZNU?-v`s zktVhIw?~@&_GsYW*MHUf^@eZxr^r0~edCed?+^U^l(Dpyv!}n z&fQ+N>(l3L2L=ZgX6{T|V+*Xw-05Cpg7JD7D!(=_Fn(y$`+>mWY*Jkx&0UkZlP%2N z!-0Qh1{y_#TYgMV-u?0O!NZ9+e|!r}m=A5TWPx|Jd_3%>2cFK^`D>swE3hDIXEu`T z^aifWLb{#4z*AYb{1zH~*m(P2{@&lbb0;BSNkx-|?|aqnFT3UNjl-$6BLa72Z9lT$ z*XMS9bzsOXzaHKn*qycJh35lccpY-U438o3Sn%r_ssqa-za51R83T2ehM&$%qf{Kx99;K2Q z;%5+h7juL3Kncha?2N9Jbu}bt%uJv~bS)e-pQT;LQObvt_#CFboDikKD z_Ueo+)bOZ1ZZJEDO&m;&57J&5?Qzk)R&Y5;jAJw~4lp=~z6KLLcpH{>Oh0Esmry-B z8f3=D)W-R^+$EGLK*Wy>0kByD!1_~mH8oA3GZP!PpNNl<)DYtbrX>^{aYEY6$}V8*IYlUZWb+_ zSYO)$<>5cmL^^7kkfJ|IVEr|=b-$_Bm9zBURRzFcAiDZb)jF_={RIq7&J(omh>RCx z^u`UMgaI$>k*+39<7O}wh&c#bRfCL5ex-k9%KdyA_hlQi9+X70hZI>W#4;b|BMMUk zu19bekoKRJL(F}}{47?ykH~E){KCRit>jUafD}jw8(YkbtC1qvnI4x&vl-VR-RsG{ zJ6_WY4OdLl_T~*wee1q3P_a#-TcQj>*aivnbYSxn+g2pRj6G1a0&+dr{iy3qSJ1Wt zhLLRSa2JAuYuEf-g4qNHv_(X1kjJw3IzHjU zR8KzkzVQuHXY^Fp)s>boFE%|vqNdp0F|oJzeVXbvf~_m?d8*rPyK!KuoA@Kh%Ww-{ zBVzUQ?T8h&VegC0`?lD;qX>ct+o5OxG_w*eq1~Z3AO`n0VLzmu!gd$>Vre%_fesJ0vqvD*V7|9syiiT>`2_`pP#gNRSnqSS_URk%XzN6~qKc;RF zHo(0KsZ)`yyxhj8AzN=cKj29BG-eFU!K`2Ct64m*@z9#83e{PXbv7rKgiE~Me<7yj z@PntOyX-^N#K@BqBalyGuAU)XK_Ej5S$cu^9NZN=<7}2uC_YSGL1NMh3=>~*_}b%2 zZyKJFRtnp$;_xDqXPfAhihPl=zkBAiq!}|u^5s?O0Yf?8RF&=lOVlfKTHN6Zd8koz z!3V?al~EsJZ(+94QIEP7mOLi<2|gO;92@-xD-MYpz;wMhDJj$1YGmOUAN3IIJ4~A( zeaOBsi~%*bH8#(vXRfMfJkq}i&K>5gj{3nu+>F{bh#SOsK}93%q^8y?lhZ(+xXVXGczyBtVxH;DT@?_GZ?E-p}q2RU6Zkl@(YBg0#%^HnOy0 znjkTbU=^SIW=qkKYWeA{;XQA*cnr1t>Ni^|-LNwxln_%73P%5wdie0WUvKfGHXI!` zWFmZsW{^9Hr@qyaGfWxvb({d2AM{r>5I4d`K`WfBXobqaZ`u@o##=3^L-AxJFL^QQ z0+R7;B=>k!VMQnNOeJLs+HwqNB`-e#IXK$r3fiP!*-%L7DV|61jyVZlY>tlV{MxU3na5%`gK${v{YTKHIK@g6Ix0 zA%kxRiY}_~g{s1ryt6yxcHvZzaeH8J>@3XERG{fQ<}Y&cyShVz!(Xdlp~_Yi!<;xH zBIlm;GSg{+7c^X47}W1=?rG3^;Ty zsFI-Tn^4t&g>N}Glu-S|_!%5QpPink-g?cg7r8`9dq zFH9$#1@qKCKX6`l?mBc9?0HY-3_kM44_-wR(hXwLiq$*M@vXC;-Q_$l%wm4LQ?G z(GH3BI!02vSNGJmcPqw{j8XihwW0L%ibx#$Xev48B|8(`yx=`a4=0b4sh3c4JUluk z$PSI>27X==omYE_qG3WIl-hFxo*u8tC_1navA{JJ#$=1Gy!vV%uAGV;V+ zZ?b?*SC|X}hwi-o^`V5m1V=)S863H^$3kYq4F+5>VF!#z)>I=;>kjz@XH7ye_;ANJ z^=%9dZ=J5|OLn!%;mYrX4A`fp2 z<>!O3R>l*2Kwzqk45YqkfVGwdPT~7EhB89nq@|`iz(PCl9_(rtlTygx>APUsJR@(P zILj5TX=k>6Ad3Y+*z%Uz$iu;1Rt$=Y> zMa}}BtXdh7{k*0B(vUHOnXf=BLb9P9un*NI`W2Ub;(;#d%xzWLDc4X@pa&8C(sHew zKp|kRrt6fx+3Qs&-XJ?s+oo?>F?>d*?W8&wA}c%SKlY9r(MIhiqYx~vzgf0Mmws~G z64RgtA+XXPX^rVtISrF;gO`w1>4gC$?H|Z$S%NcsMd$H-d#|R4)W7 zO*>@^;&&M@Vu`z@s$?|mUQ%L=y8cr&>^|AB#61y_fxXfv?S5lZV@*xdWV|wh?HEk` zymC{>lJIw$jr5d zCccOt;gK`)s>E1PmD)K2@y`LxT_gc7HY*q|~u!`4E-HN&{o$ajse*6f$7%u7L|65CS$ za&cjlA=tRF}~N9qvRr8iG8<79a>2 ziN`6yj2vVMUMp#wmjnTM6>n>4t8QWr9Kx|nyp<)|B4e4X#?pSwSUS)>N%VN;RQ=<^ zn%+ImHv%WKVoVY|SWcYDYKI_(0AV4Nj%Qja&>H0zBbDPxiHvG2D~vf+#RP3QUBpba zWkiNknBv7@E%L%!ewK)lmY5S6!(26nN-!q{2Q7`E9p@}f2%<8R_)Nni{HaZ$dc!`R zxH;5jc$A;EIpjAy#?Rdx8e@2z@7WB!4^J40QLJUMRKav|%j8oa|MH~p1cC^mgw~#{ zlXI8A*YlL{B^ezlR3qhZf=~0D?V%#WGkp5?&)FsGUiF;)h zswp*GPN`6lY9^)>PIYn8jewWhUyIfLS|Z!)foTugUrTYKQ# zSdo=-5VJ;OtIMtqq`=+>A#RCdBiqtA>60;@PuLbpH^QXHtJNua{Qhkr$Dk6N?7TXs zI+Z@1iPbV{O^uNop3*%0t8F0{Z^^CJ;&9^kRU~A^4XZQqZ}*LZbW}ZGd}FA<(7?CS zzlr=I{4-86^5RFwdBW~S**hQ^De!Yc{IW*j&@Is%zzlu9fpg@NcrKZ7?F7coNl4aJ-Wc z4({8gIega-f#LoAp^{K=z;(<7IV8H1QX+ltBMK-HeCd->gHbijCI2p9&2iJw1g0(q`=(47l=$Zy5 z;+F+ecFt5ruT`SSAj|4aK0q-+i4`$l6HRUc4OT=00aisby{?-1hN?9fEDG3|9hI3Rea<60RI>6kG*dCERGZ zF>qt|9(jA5;Yq%4JLdiK{PXRhO2Z30Yey*G@FJhQBa}MiCAH#S=AAo2>4sPM<{j9M z_VX8aghmc)m)+z)K(o2JCtESE57&R7^)h+jH9qWy@fqQNsfeW`d)0`z{;j;qdRw~} zc6O53sN+A%ub8ei&8wC(_v_$g&TrvOhG|E$up^Bsl4Es(R_D@?ITv|41)sRHX2al~-xBaMvfwuehXgz1|a_ z%AN@KWEYneN4moKnTiT7ll7`IK8KgA&=;~oDPQUpntdtNsI0UkQltN=^drk6HTp_< z#n$L+zGlK?{GQ!eXj$7+$gp-^wbOzoSSqrc61JC4P^ea^w3Uy74)F zG^&fLl$nND0859Pri26rhn~?zj4CvkMLKUlAT6x zkXOyG@<3+wpnGsy4o)UP%u*+lsZ>^GY#B^%40ySoql=xo%Z+$lolVcHO8!J>n#75v zp0ERz@=~Wi$4iOlwGhahE}pa@e=0dH#>le0xT3z_I@4{#4VCVl@#BF?<>CPAcq}O^ zE>LCU%_~y;2_Pc{s)eU7Oi#M;HHem2OLz&rdeIeC(Aj~<>9~Vp1Ti;6aFBT1Raw#` zCAuu>?6|9{EioRKRFWa3C&?wNg%xhxeIY|C9w>1ziLf{DT!K@nPIVX+xHA=!!5$ zw$O}Ar@$IQLUc1m?WuWgq$&P+M#1l$-5PAIZ*7IpX>e+AdP@rk%nKwcrz=ZE&gO+G z9askz>*@G{&J-BOF36$>+_!nFM7oQ6Tt;W z#oYlWf|LtIxc4;E8aZm(TH~>g`Xuova+ebTw-AM*T5;`&7K@9Am>A`Z3_htYPrJm3 zSAEeVd8SL%h+L*>gGc|(G<#Islr2~Z%RBkjVP;pNX{%gXnV0iT^Q!`xxOu2jO;^fn zthk0pO80QS9}Eu8t0+G)@2-~VGp^yk%&$s6`PyiD+`_3JlWvG@7VhGr`uZ{yufTK% z7u-&`gVVaV-4vrw0NhSDi#gZ7sLIs0Ae3+d)JxuiTqG6N-cQ9Savt$MCEgmT+ikLL z-rH$O=$sduh*dLKftcDI{P6`)bb@(z#NUD&xiB?GW)kkB z`P9y=d*rZ)GE93F`Rac4{{h)V>w~h1h%^g}=ph+ueORt8ne-8wEZ_m#r;HN7IG&{{&{A!yZvCPZn~Cg2EkU2wgj56^Vk zGSkxe>3vnH3p1oylSoZ$0kZR>4>U7pDw`FR%$^k+LQ^0+VhkonT9$C-#);#B_8PVG zFh8u~@DKW`JWKN8Bsvu8C59dwOyLOBCDcnhx~l-6L`hk>Vnuh>dU06z3zgq=`1Q=_ zTDUT6on+TZfxR3h5K3iTK#4|VttD2P^x^z8UX>aS6&+KTAW;L?2kWQx6c!y*Pg78~ zA!US2H*tCkWL?G8k#Zj$f?RV*RatBuj$*0Fl z+Sgf?ZWu{MEr$26tV%8x++lQrl4UJglIFK)QUmRVoWa}l6Hm#4OG)&H_Z@CsTjd!I z@iyXMKp&1Jgtbz=v0S}9&R@_|BU`^>OfM!M0e|+5Zj!$FL(|DzPX5?F+ zPV!Fm0D&U9t>{5fB5_(V>zA>)0&f}^N7TvzJSkc$8upY!GS_Jyph*K$$XtOcMeF+Q z(Q!nsE?`VCxe9(R?~kIX6Mu?L{_}B@JARE#PE*MHdnBUl($@aWSmkt6;1v z%`59zXM*7_s*DF#yN=UnbBe4Zsnt=oyWD9p)uNu+(0^4`-|(21cH12BjH*AfC!Hcb zTjgWA`&5X0yqf8E7M~`iR!no%J8rvtiT2Es(ZzH8#_{!}Ob~2H?gfk=bZX94i;%se zn|meG7K8UrK0MJ&^OCmq#a+y~B>HfyY=c`MeJAg<*h3+0Cn>wFq!6co`8)Wo|Fn39 zGYe$v^jKC1)=69dX4x!fB0$i)D_Lq6Y3$@X2Wg&M$kj#SuhQd_88!&nsRJVua&`Y{ z@rDIA>jlgNxjNcplFk#NI^!YE4<(5v$kGWE;{w?Qt_vZ6U9$?*K*+fZ1C^j7hGm#z zjp|KeED$yhY&~Euh&gQ5s!Z02h?3pFRbO|pxM!?qIJxndz5#vI*I{tmEb%Bym|z{v zauXOIo~~tQ42GXH(mt9cn^@tx+ScJcWU3u{0EZ4?ydz!9NlcXG_|1%8m#%peEtK_Y zmTzTzU%EClF-d-B*cd;Q4$^V5{7$noKEbWIZ8fA1)*(G}U5t;;(6Uc+E2$=W@i2KP z5NLr{mgMsZQ8${VG}^cT(e#5oIE!BmL~$icPDLaoF_M>$u}f290X0dP8DcO_6N8b@ zEP-e;Tb3+XAkfg{mlK^s^{YGU&nh2PQ5l*8%Wy9l+me9X;UPhJ z1YY6ECDj?8{qoFDI-rPCn*?F%)xGUEhi)+Rl~oU$Qb4T$;cE6&CjNfAJz!#)R%R%u zus`dvY#fcv6C?2k@k9g5 zH6S$Cyyh-9THETN8#kKU)ro`H=0S)y)Xe@A(T2+0>N4?;5Q#WwfyKZsq3nk0 z*$p-CojR#{jN$(eb4L-IN&g?s9qrw8LUpBKRCN#OybS6}Iheg&GVloBDRm>6YhH|p zT)}U-@ss+-ZD%r8Z4;HBC%+S#G)x+mLR18TSzH{ z*+*clRrZmDFIi1AK{ExRxkbf{-x|<{B|-0m*dI$!W*Orj1TpmYoD{twa^*MKai!R_#x1)7Ys(FNS!lgqGDNET6mVq72W8A z=(@hgLH`_yYtcS86*{QUz{)<64-P-mNord>8Ma4sG1mdx;v7{dGEF`ek@RhGI7S$! zue|<-m~}2|RfipoJ*Ijj1hZV8f@2T>VR$`2!y&BKF=DdSvM5?!XbI!*W^2K0oVc&G`K}TEMSl+|?|=ypl$qOV4KfJH+#^rs8P|moN(s zWW7Vv&S!jFu9i}HLF`#DtazPXp#qkAp*WH@bi&e=sAECTijE$j6Z6ktIcpfCxwWjs z9yu;)YZ-q8*|m~jyO1V@2vBcq*6Slx)95@_=NisMoC!E-Ef=YJLOjp%w`e_mmoRQi z)7)dtmkBI_sP>jk2&dOBniyLoW@Xzt05LFM4w2o8K0*UhuVDOwp_)J3hvtAO)y`?w zlJyt}LedWx=%SO@v(O9f3VTH~I?eg?js0(k*IIO6pNR0t8zDv+9EOd1SfvHsud~^xLUY z;yDuw73-<1n`FLVlxmc~ea&|usw5^@VU|ihhNCu~yN{bL{~qXq&(ns^-UWewl3d%3 zXyD#(LeyUBhSW=ekSLJ* zmNM(`l&V-UvpkKT3g7iUOX4kHWhbS_c%bH!gW3?|bBrG;(mX?-Cpmbf-5QsvHW-sK zy`U=oqO73*WyZ$_HLvj%kp}V{`&Ev_7>HBj0HzM`M(tIkBZ(YYsTrhan~WvM-ogX- zzm6_zMw2vECFziESf+v&_W`wO!n+F@W)kmOZ&6lVJ$ALsq{979oV0xZ4;Jr9R4h2R zz~jucjnUO8H!WO~&6mpbcri3#v5A}2X604Ed{}dI4l0h@86qR%w@ta6@qk_PS+Bra zMMXN9`$}~KnuygW*?!beUL}Vz^=dJc#9w@A%<&@ljqO;0G*?9@p|ULXTE@5AHNO)p za6mx%^^Cu4*HWEWg98Hm+Zg}Du6dVlKPn(~hrBUBe|v1XGw{vqHy$1NCJ~v$6=EX` z@dZ0A*4Rp>-@^rKm6e=m0S@lw!zTnkC;IgWnh8 zRJsR2f;fi-ixnv-71TS^f>Wi|B<8>Z?e3a~`HTHlm{HBVmvEZ2iG|F96-qV2odLG$ z#mdmj*NyVRR(+)OAXcRwj$N$voaOUYEL+R(acVvv7OFZ)dRtni^gu?ZZpKvRepnz| zt}xcCYJzp2+Q9N~s+u7mCQnsneO&h+2mdFOKX`VYB%Lr=p7JQhrADa75DS#WKZ8J8 zq*BkyB+?Jxu&QHz_tF&|EcvlPgM`cOZs7?_lxUgZun1&)BcJc zr;^niVBqiL6O39a-{sOWXJMJDW-=F+q~06YcnC|8D-z2L%LK+uqS%A^4WyG*PJAn( zJK}A%xxFJdw}N-&iZH_#oURAqeYq$sAH>{K52}0Whq3q6j|SdTvp;71ADWg~_=(KG z`>B|)i)taH2i4B{^9z|I5&KX2=i=V#PF}QNA?}`ENZ-^i8Bc+7@x=eh@4TNv|TPv9MEq19Uvb`jQCSYbq`!3o`ayNlz%J(AuhS|7OFH*yW z%RVu#Sbk7FjLmV(PmCKpS|!;ZA?in-<=1GS^>@90>7M(C>feziEE`%hKy=`nJX&JY zUt&_rA;XImlUxV#q-Pd`db!8+x5p_F6cGm8%Qi@|B&fLg@do~}M;mG!Y~U8JmY-x& zX)B9aNuq(*c(stxV&L6gE!Su@@N2zVVPcZJ0nM-(_*0j^5wa99?b|NVhQRMr)v) zW#)k+->+p9L7ZYn6Ke;p;(_09d|# z#8J8Bg$#U5ik4eaeEiPymP8WwE??RO`$&s>+E*@SMP&wld5Sh{%1DIM_6XFqoRpXx zr?sOHMJ#ySBr5dQQpGAGd9&;>#N^MXI<=Je0+v0_z#$r&X&i6hQ&P2*@C0H#X=nDT z*a?U6AX{$~V8gAMFgP_6$^M6kUl-#o(9n7nzach&k;)Bv|MX1K#Rew@#XbG_SV4cXf;eRrZyX3eT?5zrg;)uPzaJ|PBZY+ z(zJ|lD;2()+1sda{lZACm>~mfGh+itt%i(0JH}hI;zSkyq}Tvvo`a$x{7FoOr^sam z+7GP;*%tn1n&yLk4G;&0_2pF!xoF6;YPcG>TDUs6dbkF-iExwP8sScWn+(?kHwCU4 zt_5x?+%&l9aIJ7{a5La$!p(x44R<2kNpL5_&4D`w?o_zb;O4@$!_9-654QkrA>1Ok z#c)gDmcpG5cLv-txaDvia4XPeGcP`v{aOcBa0Cyo= z7;X(*58PU~b#Uw9df_&}T?BVA+~43f!d(J)Dcogno8UIXZGqbgcRAeO;jVzY60Q%9 z!(9b;HQY6D*TP)~cRkzxa7)?l!pF;r;=42i%=-cfs8a zcMsf7xLt6&;qHa|C)|B-d*JrM-4FKw+=Flr!95K32;4rnN8uiWdmQcwxF_MBf_ob7 z8MtTRo`ZWH?gh9P;a-A!8SWLh{cs21UWI!N?q6{KhWiiP>u_(ty$Sag+}m*fg?k6? zUAXt)-iP}D?jYQUa38^a4EG7#r*NOaeGc~p+?R0wgZm2ZYq&#j-@qM)`xfpyxbNY9 zfcp{dC%B*Ceu4WH?l-vK;r@X86Yej#BbN+WX4nizz(^pDz#szg1QG}gCSW2kgg_zz zGXV<$D}f{eHUh~6>;xPHoCI71Gy-k{9s*thJ_3FMDFjjpq!CCbkU=0oAd^5AfouXf z1ab)sC6GrTpFjbDLIT4G3@1=TAV^>Yfe?XW0wn}W36v2SNuZp-C;}A(DhZ4xFowWb z0^2&^E`N#INZD+zQF=q9j=z*z*&Ca{{oIRwrna2|p430y$nLIPm|YY6lZ zSW93Xf%OD>32Y#65rK;d{Efgy0+$fDl)z;KHWAoNU<-k*1TH7=cLG-sxRO900Z!m5 z0#_5bhQPH1t|M?gfg1>HBe0#o4gxn4xQW2c1a2YFPvBMpw-LCVz&{AwLEugTcM-Uo zz&!+Z64*sxH-UQz{FA_a1ojZvOW=M24-j~ez(WKcCh!P>eFPpQ@EC!|2|PjINdiw1 zc$&a71fC`E9D(Nvyg=YZ0xuDGnZPRq_7gZj;8g;z5%?E@e-ro*f!7JVLEudSZxMK# zz<&w6L*QKk?-6*Pzy|~l68Mn7M+815@CkuW34BK2a{^xw_>#c?2z*80YXXM|d_&+c ufo}Fha*f0Aqz_7T1xs8BAj1B^>S%QFqA}C;~SuiDLrUqIZ z?X^rKBqlak38wEo>$OO)SEFq&TAro(lGH|X%PjuiIrq+hz2E=YWA6FRcfRwT?K|Ig zZ}aV8Wi$NW`J-4oY>ZOwx*)z=G;B2N%97NJ|1ieOcfBgP8*23OUB63=@W3f|CHlm` zgI4)kq0eUwJOwCUOO*Eb?o!F8wl5C$WB(Y&FN$NeyIxhvUz?`d{Jv_16g?cBC_{go zLEHtSQuW&BUpz0Gh&cwi5gIlo_>&rVFvwRS-OM7}+(P92pLjQ*sRXp!Jlbmqzq%|@ ztrVe$q9auZfZTbbCg8PKziVSvDa+8k3Gx8i7h(Ig!n3ytlN_*n?u>$Q?qcMhw2N5Z zT>;nPusTHguS3`8b}+$s-fm`4);+Z8RLdtjPHVXD`tI7p6!}M=?>^7K*5Qt@^?0jZZUwJ9}G;??JNcko*)*>4yPexZg~izN)>Baeis{H;C0;y2MJ z199O9jpcH=+i`!yjfEoQ^xm|J2^aBxGPbAl20?gRkDhX%B)qbKkn7eVL zzo;&;G1hsWQyuHP@ZQ%uzdkTEzQdmr9dmvTpbi!Ha%{!L&MPfHcOdQwe9T`oCmaw| z1VQoM&u-PZi=CG$f7#!R^SJwCt1?URH$MgjE1ci*-NZOQv)+#jWum;IL2fwama}4z zGsoU?-s{lz4u-T1x_nO1-w#};&s}`)XV<@JPtx};l6sfV#I`}GhrfK|1imo`*aVk$ z#g_JT$wizgk4!?`q0{aN&KxW4I?$oPmdc zC&y!eEwWmp909$jGD{DAstV)+V%&-jv7vYHJOYkCa9z(VWOag2dbN;j_oi5lE3P(Ax)IS zSn<7SqAX?=#%ZD`@uWEJ7CuG*`}?k^iToKcS-Ha*q8%pHQz|quUadxMILbr{;pZ2N zf>dlMni-#>M5h7zhcR5&_wHiRU5Qw{SyU_iN37%7wn6S6c*ADV7-l~{xLIT_d&lG) zzxVsjGu)tw``qME_MU?IbEx^l(S^5fn$ zb|V9z9GJxQOy;;###RZJkl5_I`LfStuF3?<qQ z=-AymsFHAxB{|19_Q0cw8%S~*yPLJ{Zn4OYZbRvo-kWJRPjFn!p_{5-;pfLgH(jT?*JYNT=)L9sm5VX8UNw|@yHw>S9~2w_P{^{X4_nz0S|CrtA7?4jvOstx{Tt z>mC;^l)4fRU2y%%xv=YTQOE>8lk=waFG<}WG_&3BaZnnvGRY&QudS)cdHmcZB<>yR z{AtsLmW#Knt8vs;QK+hv%&FDX>QDM5QpUPfl*CNM>$Zxxs5edA_#^|_9c~#saVbe1 ztd#=EquBZ;J_0lpgC?iEIhf4TBJL9YZmTG6NkP(nry4et0ydN%98yVQ^WDJSw3e$| z>1Ok5IZO5&%kRC84A_hW-a$@UDcLYSTk>}A9IPrm1m|&I?;uRy+i*f(P2%*)oFy4M zUt*%d_EY4tWG9#BkoBH&Jl8f@<&d?VD$V0w#m$O>aArO}{)8was3O_PDwv3O><}p;-Z$^P+4(ECJK5KioD5r*eiX4Wt>@m*|2{2(z0mwfqc4cfr79 zmkut?3oa!ong&YU<(zRstC+A-^Q368*prkCP5 z!37!|&?>5mg}&tjvt3iWhjVYX+-wf){MGH-&2>b>fH~C!XY9FOxjy_%t0=1mFw+K# zT~Z(gWSWx)3PHR;-zN#)$IW3t-Taq@zgfaB;)yLdTo{hOv62u3}Qy<@+Txarjhj! zmJ9fMN>dPrPqc}4u}l)4tu083y54ew@DecaAY2blVFXVdj5V@ZUyn*dDYGOHT#)h_fjI+ zgow!<2!udB`w;Xrav+<(=Ztuwz92sTlBxSR>_h1A21WG+)Qdug$NkJeh}3;W>!bt8 zaE+K<|FYH-D6GRjMphJe>kGoAFv+{SrJ%Tdq%R0f|J+oyf&0kBeQ)YUz+HD5{NY|3 z*IHc4xf1EhS-927t-veUp1=bB_(_pr(YKs7nS=BHc^+JNRiq6NV7vtG8t*(Nx$2je zcW7{56&!9NS5&}Yn#+Gn@8F63ZeOcteD}MVrLdip(48|*B|S8ldEUpW!P|lgBF3*B zzXcFmZjwL0g6s~9fkoroH`-30AkTjAEP?0dDzb^+SN?WmqSfyhEMiu7bIUIWTDhJ!+RXI9R)1;dRe$4(maC+F$bp?)&n{XO z2o&$lbV_rtwp=}Qp_$Mj7&i}ea6K6<( zGN58*NI_5&fL^h_GokYrmrv)lIA{ZVA7H+nSN!*He2OFV;h-Dfplh2|^vpN=ksl&S ziIxD!-Dm|J;V)c12vP2(Os6})8Ds=>EbeaR>E-9&>&k^kIL{w8pXj_Y;N#396XrwI z0hpFgc8g3pep-ZSq|9Fc$uksE5E}N=L^n&;7bL2L%3U(kzK6a(_cbg_RA_;|Z^<6f zi!9g>;=|91M2zZpDQb(?2T&#Nh*7EU(>y1-rZ=~;U{a_NO6JVmw&)$vt3=6-{QCclsKRiC8gH)_4DLkw`r8 zxASfz2iBdqMREvqH#m0p^^yNJ_Pxu%xv1)E{;_MbTVy?U7?gsl{-YXaH{Xl>ot2S~0$M+WCUJ4X^BV)Vxcw7H=$#Lk~unJ7++vkCURlgIPnh>8#hy#l-iYMO{1ugjP zJg@^SP!OFA;0uJKv7d|@h72smjZ9NGKTRWZ^b;NYw7!u!f(HM;IhxjYf=m!#92H2? zE?`#0okv_Djuhw^c+A~|S{O(2k+J=42u8mZh7aRR-CZee@#&OQqZVIBBn3f ziwbmI5XI0+xruEN?fB;#T-o97VMA#q{A(H+)w8$XfK@h(TIGM;exp^i{q`GVrO$Q` zhqzf711$0hSX71U*KMZ5yE8}iIDDelr%mkowdeNv%=5!AtxnNLzn?ddJuxypA&%h_ zutILXlVbOEuqwP;ey_eEo*8~eEUvrvbZyf3nJ zoe)W}<9$)2F9jP)vBf2dY^cFV0%wDY4&im^>iK6e7{bm>Xa!lwVe$(fFFSx0;7`!jzqGoBQ22SE-%z`*zapd}^ipHLOLA##zdJQ~U4NSYrTa3P* zf@0V8t0b_$;?M34=?v|FdEqEq2iEuZM&ubPL)s#wT-PZuwF{0Kd0=H|TLf2d^i~z8 z#;Ko*!kX+y4b2z1c}H7+EbT_tc}IB){J`D~am62O=sz3kilhVFN(bj#6x z4wUPe2sIh))=RYawy;|p45ha=khVOklCK!)u|u>ObsXEwbfCPdZ@%i=_POYH@G|yo z{Zhojz1Fw=Yf%`>9O&Est;ooz-?@<2xg6F5WbfWpowZyyKJy>ZJ8; z)$>gnSYa+d*cr*OpE+fvFEMhqFZ7(~eo0)&rPEpNrHDT+Yns2%;h*%tYNmK~E z*IW|qXYRa-ag19u7RIo^Eqa(K!(X^X3CsaJ>=wl{f5GvWMT4OOsqPSmfA1->K@(4H zH=Tk#_2ZG@;pdRL>x#&LL;b}|pvi;&;t(Lv?k|1|eiq2Y`$9i${yMX?aDEO#k)H|_ z$W_K*0`SE(ScnZ+#SBp(q zCoddQsjk4lRPGCe8`bCA)t`f4L+USwhh1Nu@I$U&Hb1wOJ9&XSf5BjV|3bH#c-lak z2a1#14~Qk0n_WVKLz8oxQUkc=Zz9st5w>EKfX!kH25u!+27kwZ5V3EyM@=#@CdFtx2hK9q1 zViTjXno(Z-1R47A%xM{WcFF1UScsgFXMjVRY zb3LrbX&YE6cCQi3ShKkuVh+J(bL!IS+Ef#l8kx@|Imr3Bd6}fczR4@4U&4OEy$~-SRbb>--5g6Il<&09ViwSQJ^$#Zq?zR2l}NX!*cK zuIC|+14cv}AK|(`fJ^5{l5+`g>YVS8^vVah^@$)B313I>mgel4O|(0Lvlv%vS0K_1e$VN+`i2%kZ> zD$l{fG^Zzlup&QI@PDVO`yukw4 z>FCu!T|uZzVJ&XJ1D>;3rU?SRwFjEH9y=Yg9~t%mZetgIaIq{-cZm#Z+JMRB*UgD9 zL7V1ZI9=Cni5_bYN){K-8X`vpY%lV&A7r7|?BZUz=p47>*`WiohI(cXZJN?DmFVa( zJ6;;vG`%Ie=h>l-+Z_6y`|P5DQ~#rTxC25V-**r1x4wh_aZr-Z{D7|=l-R;fUTB`) zsfP$%Xs6B<+QUlSrgyc@cyc#6aOta(;Bd!J&MDohovOXsP8|n@^iI8B^G;RbG%&0# zxnDrEqR>-gJ9a zaehuI3V$9EQ1QazY>U-u&#tL!s4T8*XsE8MEk(K)@LO?eEgT5bVsh$(Uql7w(I}gN zmep!OK^=I_OqJg6B}An|;$GZ%SYp(5BDku|RdXBabEa=4LLeOlb>ZH_5w zXK`V_N&;WMNidCy|Tarv$B~`L?bOsemhE-Hq4zewyaQn3#ZMLC}5W8oN0I zMFg{0U7`w&k%kb&bx0N}u$GP#;jB5s!&*cHk60>=G3^MRK%ftRt!kOA}BP;V#mIJ2^G`ufJoM+r*A7#?1nXDP}}cA7a=qBEHYk64g* z5g-f0$jJ`kWub=1!T^wk;Fr3~MeJG-5IE-Z?4T00anPySbgkt&Y3mEpXeMd5zVn95 z=g_s58_nWV*Ic#S2IHY??(FXs+MbuICuOl;32vDWah0~n{VFQeB;*U>$f&vE8TdQ z>$*1Bb$zhw#$eaY!Im4{!+C@-2aHAX1G+)_S8cvQz zE(%#w*A4D|lhd^MMzgW=1`+*{@EFb|Cp(p0H(cTl7HB+Sbb>b;!eUnL!vtr(Fa~$V zK%(0W^JwDOWQd6K?yhK~Gk){Usk{ z9FOI}b>7kbiLV}uUYas=_*35()k}i!W8iF%Es$MoE}A>rTwGbXvZQVSk}YBOEG=)a zo3oItjM+1#*qWPLh=R-Ek%+DNcB^?-@l3PTnv-8#kb$%nLdA4@_S*WA`m*wsNLtBs zo%3zvE`Vcfd*FpmZT|4SPF?Kl$NVT?iF6{V-qITSb`vlTSKHR$3UD~`@x_Pl**JA%u zW;j43=DoaEw+s#BGDz@}y=3IaCfBu!m4@*rn{TciW9{y$q^OIM9jS zYp&mRb9Q6%QLyXIU30PLu9s$3UTe7q*UZ(r3K$ zQuajVD*o4{Y_lA0^aVuy=(@y>!@fUfKg$|Sxbx?1OIMmK8K3((`zvM~e%qaG^uL?$0 zoa-qcSZZlwt%60jV-RJtX%yh>0m61&q>e5no-5U3BHKKe-6T3IWUHT|T#w5YPIV!hBrcZ7m+8_H+ZRd{%B3OdSW+lq3{ zRhIhY^MF3ptJ0DF7!O`rSiQP3zn1D%pr-wG6x6o1Q9us-JDZnZY_5Xlyak6e$0;Pc zZf&h+CN*zSP=0Mick)xKewPAr>+1zT9?`D3kuD)Li6R4mmzJJ}0(N*x>1pXG;K`8^)U|p`1hcKlQ%obMJH4fJC_Ob&0@SBH zB}%k?qy%-?TOvevdrFk%9&ZU~&iRXn{aKchJoAh~9P*0X!ad6mF6cRy?AsYu%go{@ z%$8z%boPSWXk>gIKlq9~!Sn);C36spyixxmJW``x-obi|dX)7N{_qv~*s%IU6t|Zp z(hRmXIaYKp^5w1r@<{>taQ5bv)#p?$Lwc(iuMPoSc$OGX3)TgRW{dY=Mx)k6A*oHg zr@pZPNx|hnrPv&?$(~=kdTpb9A_^)JkJ|D#d}s)twYiUCP?m$vL5P92zFh24U!>LIJ&o(ikah)t zh;pCaQdYa(-nf2sB?_&9F0yA8-a-G75>h2wC7@@Z;5zZ1vf2uJ4B=spxv;QnNUoO^ z+VW?Y6g)Vd`Odw!rkQhZTDq z_$3z17^HtfjGM!B+Qe;81#IiKi}#e*ly6>OpKOOEveWtV-yt?iC zk-=_=!|CfFyS64#p@Q0n5*3g7zjwoRl!V|qhYp(*gA+4l=&S~E59Mlf^-NgluyI_# zH>{4V9k^>f|GQP^&!B~j2kqthxyC3QSgDw*(n$fRAZ>qIIc!ubaapAzXu>~*Y{si+ z#+45nb;@s86QNjaCbFCoz4eg43566wW1af+wKL~pNPcqPtCfm5)0*r=)+1RH;y2|4 zBxy!Zz~X>bQCzan!mndGQa{39n7o~uo`@8WBEdRM0qb-VG$$)C7RfdfM6h<@3VrO( zHn8YXj}s7BptjYG;6IpGhLu0hR!M@MK%ncFg-q6%w*e*I&Xw*!d*FURvL^wwx&}@M zlDEMlF~YObP|z*}doyZBnr7@%d_OU<%a)s;Zp&peOkoK|Ys;1_WE_&|f!0Zn-; zMB0J)WBd}nyws*)_G0GVK%Gt7IWmXDCjs{l_%;X(MvhePdH5_WCdWbYKBymNLsA}4#6h2R@YX}f=wR$FKpSTFvNY#YeL>S&;XFq zB#Tj$h4cVqx=%>sjsW|;3x(? zOP>Qv{}nVKQ<#oq-@qeToiQlzKd_+b?bLmdZO+NHBH3xEBnvwRslSKaCR7y{TC#JI z>(O33N*<4#0Z zTy190UFH6UnMVSW@x?bL`${0)u;VJWpR*;2JLC=)S3MGt)+C1T!(gc+6zWL&rPId& zK}vvtDb?)1$l=p0S>*8V07EGRlD@?d1--VR)DZxwP{jN>?(e$h2=Ns3u4|BM?sv?g zC;mprr#>D6)g;M^;`%^A?B}&_;~7BCC07 zc25}nxr486npzFPQW#WO?3Mq)<@s6+g8;@xBae%{{6EN}`5KMuN791$G($t@HPx*< zdFt8}Frz&>LeeyPibgjt|3CN|Jw>B&C;T65jh>;=xUx~N4S<}taZ3|ge{($I4Fots zMjpewk6>#uy{9|;zF~}l@pw#T>>l1jl8hYTkgMuiX>evryC1=2$+D!eMR9KZfXQv> zJ?joU^!>n8uvsU@xqMGF{{WCM@XG^&4iIiY)mH$zc!HaV)BhPzz%=7~zl3)(reWta zk%4_P0oz}n6C_^Fk*80KLc|4I9gpCsK(W64!+`H)`VWxD=hk=W!vL2U-jw+J$p9Vx z>SVx}l#n!rm+at@TVN&;Av1BarhtKv!3bVQZxzlz6=1EjwiV|V7w6k%+Z%uuQWr6lg9767TUEIV$%?(s9`#(}?D5`7 z8AvgYp~BFd3ED#_gquA6Lc#CKJE`@xD0~s)aoEBYv8g!MI>X-eX~3e?MG_FR)R8;O zns3fEgI$ND_egkUV6lW(J@1v6jwhs`g!?48AVC+mv{V9j6%k+LmbDdTgJ5U?LsV8K z;RReKk}j3-H&;1;_?t^wAyBR4sroOI082!;N|y`$RPp@;RZH;dD4jM~zd}MsM7qgu z$f;gl-3S`KVWk8QC+PJ4H9UIoDhZA>>Vjs}LSMWbmext=Eh1gbQ&z6=a2%6h0f}7? zm_*oSA!P$#QWx{01eilZBc-itQrz!>mjV6*Blzn)@C_7yJ?&s~cDB8GnZ2g&fy(;w zvIcN;JV@r1XjDNPB|Q7q%ErdZ`l6EJ7OKua#4{iAuuv_G?lGPjtV-00rA^I z3%oXa`pzPKhuI}KEm0Q|_K2r1>7&9#ZUW-q@knWr;AM%rByKZb);~r&gN+56AlbQ_ ziS8Y|MMAXTpr*%#`O5%%PeSi=`8El!T*od$((Mx7de{MVL?3=qLiJfPx{`&3xyAX5 za$yrlTLBG}d}$lci(;3=ho~7ssywao#WU&M{nRI&7 zZi&a4Nv$L>IdpsO1W`>k=otzAyGf^u`^%k`M8}335Xqh;T!Jz-21Pt4!M~bxVad;v zy$SJ*7ht^n-c&k-*3EJMZ5sLKYI|Qzo;jVGY|>P9Z@?s$O}AaDdRmDk2;<*r{;P)G}~p$wBwTS&*&{ z1PjqeGFx)NfT~+&&zX*7YXlLOhN9}*Us8tn5>Fh8Yk=q2iH#!?23R2x38YvHvj7K( z_9DBV$SOEkW07JV=^YdWBAS9W;QL-u>g5kYHBlbYQTRi+`6Xr8n1>mnoq+Z&@REh3 zc41l{;pZiA6PZpbqH@jobBl{`_$#478GN&4f@j-;0+$Pq)9oeoE3<1GQ9zXkl5Zb_ zwADEMHmjKrGbbpmni@~NJ*T+1__!D}V3;x?@;9%pX7<`uNL%ZLczx%AFmZyTUC@)$ zR^zw!DpQ+a@&w|l1_m}+xt;oaDq$bO)bW#zBrs!04Kqd5GA~id0{{(#Nh2c#=p5cp z@3)@eHBj{iW=~l~xxKita`o!!TCk=!GV~lu9)gB4n8&5{YC5(4&1AxeVQ;YG=1yf$ z4$LI6>!pthJ8ly{vyv8QY1qtw7``KJkX>Y*fdU@$3_KsQ7PMRF>`i#wJ3z@+Xsmhy z%AiIromW|3y=*;_Z-X*9QkiK;vKOR_72$6rz63ZmcA<{ z^MqvY2^M`83Vfe8i%0Ai=?P-Xg2Q5f_eKPLAYd#i1nE=U2muWmHvA_wb&>Q#-iY=8 zh*-H~*Ij?{%Wed=XP`WbKb zOFt*}d^rmI;(yruH*dZNed#sY?_h6GVDBrwuaIvDdvs$H847F>FHvq$5t4o@aP^-O zfvwYmC+9ox^JGKZ&t6|yQ`T5nVJ}|0wBfkKjHKW57(r*mgczJoTOnxrTZFKy|5-5{ ze-gzF{y~iY@X-ZLJ|~PU6X|{wkGf|0`y9#6Lp?dl>BxUb3|oZw8Kgf6{A@m;>^h*D zp&1E^gD$hY9-`rMsk40QJWn)yKJP4_S+w&{KKcddDHODjSGNkxf}LT$dsg8B6toCO z{G!q~-2+A!aeXc3Ex^Eg`RH~HY$IY$HXy@&V4@JkiUvt(2%TJONV9}DvWd*(BkM?7 z${Ut}WnK->JcCd|hVs!wydia@39A@Ig~Gvw1!fj(S8h4}_!m_qQ-y#2MP+EJ2BV11 z6>R$zV8t3%3MBI>W4R^S{7cr78mJ6e1(so2JFmzQ4#`+(ctlc59Q1Xg+3|$(QP66h z?^(IC%-MCT*O%1IDyyyqc@15s@K(5@f!KiSc#&&Z3uO3M${l?~+>b9myE0USf*##qQ^kuAnGraJ;bwO20ia#01?pw_AI^onmuN_ z@)6?Dpf|t-qF8OhwbxWZceU`23VJJO!BIjK)&lc#s_L$WTTBif6Uz2N3sP(mkO=|Z zczWLrA<193>u`Hp9NG zoMdt!Wjh+B93u{6>tRX6WWU`)a7Vj`26yhbz5So@#CQ__0#BvYwT*U4t%1)AY5&on z4S1Hvp~0=^P}g;p!PjAj7~$Iq_`BEVgieWo_uRs}8GvNOLzH+%o}(E|WAZ{Gga*0R zcnC{>n2^_b&QLwAI840Jvkh&l0#B33yF(CD-(Jywi^WB>*ITHts@#OU3~- z;m}zZSVsJNKJdmZwCFr*STopi_C)6o@Iy$^HqgQ?%Oi$(75@s@cL^PV#F7mmFX|Fw z%upS_Z!2(lBY|L@An$sS_jpNF{D9PLblAD%1o}F)inKH2ks7e!_g9CLx1hFG$7ANN zlQpajc-DyZi{DJx(w%zpv|D-tUS%RLGEtMyoyNKUhZBJ>EzqTAAvgwPHo4~+_GP}qVJdeN(IyRyINh6tGZW)YT_r#`u{ldQq_6mSQRdt zuMSeh8PVhMaVW5P7{0V{%V<>eB^CxUj4B7ByjbDq3H`CUXN7z5%YpK znjV7o{z7~3yUT_4ijnpKMDw2w1e5|A_}o>{JuyPn{1PbxCE$DK2}T1!%?PHJC#cX# z_Edr|kUCqX`opU=JN#917&O6%{LxKVFY>95zUMb+mR5%+*~}%m3rditdXzS`iCQkY z6<95vrfJepyrUm`eBlzqyC?b-9BD%DRUj?F%LO+W}`gy?H&pN)Jp!J@9@@vay5Tn0^M3J_0wtD5 zpAVU3Jh}`NTIy3Di^4aL?qvrxc)S4@Dd@CRb=$(*CLr$Gf$$#NX~A z1&*WI`+?MpJgE*sDp?_W$=hc9Ui@Hzb{zG<^W8U83T?XhHZRjQYV*EP{m+4jNtaa{ zk^r2{u-YsoNCp=+jqO4Z8Ln%ge=x3VqfzW*c#d8l!)(E8g7jKB1U3ZBu&sE%61?1Qrc-1qum_UeejEt@U#@5R7*(Qu_r?CoQ49sj?b)PLF(l&xNKQG@3jb;z(HTQp(6C34=>A07#iL<#qap3RqhS0-LR!$hy=|de z*pNsMdbbz0ma7#|)u4NO!LxG4AuTB30O(qwU8abMN`+*C)Z#n^MBn?OUD|I+YP+ue z!zttY#-GxjVKMjP?AWGYJz7*qWE%vLz}+#uY-I~ciU4Pg0V-hqvg>La8fi{S2GRuc zFyaNG*%g2m!h@)_D4?ms07hfxG@l{^1xD}yh{+2vhV@1uX+E1Q;;a9)!!L4+?{R^!>X8#&+z5VUU z;zg=Bz=VeB0zFkcU(OK9fr$v>lr&#N$SP4K@fc$SjDQrhXw+*0W_~Y*rDEn+NvJW6 zFM?tLf($Mcc>SQfrUEH5KzRoDjnNFLM2RSR48$P)qnNR{Eq!t%B#-r`PY#lg=a&!C zcgIh_ZBu;4;Uz&K{c##dydujA1aoY;^K#+%s37x70L_`3UxMPY@$WIVSSAOz-4=zi zF}b+3TOY-S&%mvN+AwA&W)1`dMMdTzK4URw`b-djTL=Y`z{nR-Xg*$(<)aBHZ>TcY zBY)w@LRLxvKc+YyZmJ)MH$n*>Z!&JE4m*!M1 zUAr79WMG(5&kO9tW%#WnHf@x4ISCJY@Q6DJ5+|wzv@s~Cy1mqO*1EctYga?$-ILcP!_D7nbxm?wTUES% z)zZ3}1|hvmqu`+>Wy>3c6fLci2aU)Y2>qxijDkiEz9x{z^hzK=)KCzCOoteOAR%;G zlsyOd6&%*WS=Q?L<|EPy+6Pe>1$jD3N7`Tt<+E?7TpJH=Et=_n__X$MIhOCT`Hh`t z%g@y0cj3o;AsN{ zbaG`<6627LpBg|UwL9HltQ7@bxF%= zcunEqXe15e$%TdE6t_0iFM=a*y$r;i#pS&NC@-pE?q?@G|5{^ zh0@1jVV|;uP2y0n@z2Nlj3Mi$|Dhs8qt8Bb3PWD6_pqIypJs;$%{r z>n)Pm2$ zi#E7PxQ{}~eFWz`zsS2!Dk_(O$rFvVgr~8w_+up}4FLbatXR3gw0eszH$l5}-H=AQJC{Za`}k088sD%T`7s9b9z;(gfSI zysoyfx^^w#5v@_cYXpr7W&r5J1t`E88td1VHv$N*Ko1DCtUAC_gU%>`?ysw^fG(GM z0n2LY%Ai#g@#G5DPWAHI%8KYm%d7CTYgz?-NpbcyZ8TGf*Id(vj9=!(1CtC$FZY&f z>S~uqBY73%{dktMnxFlm75J@d+NpT=9$R43N*?B4LuY)(Z1nGqDz1z{s2s%4v@nDQ zxvx1_)TyX)bCdaP^ZVwL=F{f9)V;}HBr8**Qp_o7DeeECe`^!FlV49BNap{#lGi4F zoqRr-N#XxWQ`RPqOR3FES(Y*`h5TKccsq4%YD?<5)cV*jVt<8y6>)d|tAg@}aX-fG zk2?_Oiu-rm>9|khzK%N^H!p5M-0qYYQo2%lQeICvn(}taK*}d6w^Dve@iQCD3Fh$- zk|;2fgbe&ve3-VKDF|%(H#afL`3Zb3(Fw2G9CN_O3{@hoF4_?c55DwEfX_v9-7&4- z4_Mv4dE6IK;K+ne`jwvhwe#1G6~sBXjJzCi=-NPvD;P3BuEDnq8UFQw=8|KQ)Nb-I zu~X#TQde&0b&_t=d5!$-X6Rph{}Upu!5O;M0e(o{vk6{5;)`s4(t&XA4Q+hNyck0% z3II^a1*fmwl>l)Q_v*S@&4Ap znAD)jRM8#DtF0pX7m~sKKo!mmB%_xBnYM0B%^|z zN1BOyf7j}p@`;K|rqN@OAsNVUqVt+3AgvYVgzuC(%t)#tyy)Sn)`Pt-RMTA`tP99( zp}h`l{m}??GswW+7wYwM^>-rB)j&b>anwhkg)g9QXhdiiQh73GZFM6tA+}I0co9Ee z;rHO$k8EMgV*K47S}k)QzW#?cb_R$}VOkU*A9=TBY63EVY^46IF)fg1MBKFCYc-pZ z4lD;^?vX)c+h)xIo2?inEyJb5S`!4bo*34KgjEYo$0F6r5p1}(P{b8bCv~tk+sj)E*nI3xjGhHIn^z^W9LSi$WGYIcl&4lBE`ABEyr<4?V zZ5}d1Opo9tj4si%X{4@TJ_#jK_m#jGNz0{9V+eR|!S<6jZN%dO(-TnO6VQ`zD5*mL z8MooHj4pvVsssZ1CoxxI(JEvRToOQGJMot%ZJ~-?03qJPtSl7yH0~|6=y2#Mo8Odn z4<M#eiQE>9nz$12l5F*#a5l#N|=93@LjMO-3M50C<@&{vei!A$#75u+m?r$EBax zWRrWnMK=yz5~l3mM+W zt0cN0`3a#V1QtKQtrEyY_)w5L-rYttHKhC3$UJ%XoBSgWK}cwu> zr(nX<+o{y13k;r!dE^X9KjBwI_9-A_wbK*+84OVZ3SQjj*yy8+ZTiAPJ`3r-9O*y5 zfzKgB@<9&*TnJy^DObRC1v({o`@R`zIJ@!z&=!&WTTe6Cj;H^;;e)>SG{^wiP*qvJ zvUoLd8OYC!v{L*)HZf#Vkvwz%|B@M_IR!uB-+gq3;`4w>wqFJc_-XW#)1+duP7rRn zL{i$}6$dwQPSDrNuXryv=`Xx1L3)+^u16u)5uUBr1r=#-0JnTF+mj7uxH$?m;ul2H zTg2r6e)->c*Ms)9fVa@nLWDBJ#Zbr}2%q%T8DfSd+!l`;W%MLUfjX6sSxDi}XH3N;OoA;e z69NyAe=m_k#*9Qk{sh1uozlyZViZeio~5urfhEldOIn_#SRG#GuZwBYd-_BHK|+`G z1nLZYpM-DkP^BS!+LeDO(4()0NW+A8o^fwM$!r31@2a& z!~}6PmV|RYwW--C2A5?hH9^rlwjzdNQ=d5si)A1Q*A@~N=jBup@0lDU$g>2VQMgq? zj0`?GXfr4hy{LvH2LGI))JG@tS!tu?s654kmWA|Y21kM5j!zwdDIk-Vzbq4>n{;nC zF&V(_7-dxam{GW6J-8%5Ic@}ZJjD&d&BY}WO#)QPCyca8&0_EuW0Z+LAl0KLGT3Lo zIx=;VH!4S%6Gvn*~8?1K2BSeR!d;59f^R!yCmC1D;7e6$G08%bX5dn~GxKMVP|j8w5{3*-DxWKO zj>0P$Jh?h8Gy$>>iJCk*9)VPlf9U0+ZZ!(3V(@qIB*P6tzmyte9#U#6d1~?++F!1< z7}7jf@i6~d3d^w}Ssi_vVJkubtLbC${QQ#aJS1O3OW77^rXZ2uJo9vTTebi}#v$EQ zw%H~5v*+d_Wg{)$M{;v>av`B_EiIEYUC8m)L%es??)&<4J3NzvTwlC4ufYs@VIKcIdif3k`p1<@njbP&27tq4=?UDG@=IiAZ1(mXwF z)Fd&HzOh90i9{5#nV$9_qZ}f(9xMe!ZTT}xj+!T63tKVl319;f3rvt$Kr;|Mf)*mT zd;^jh0GWtXS4c-ut@PlAH9Z9HyYY(?u#4{ADb`%eJXnsWgyBEU4A>o*Y}%&1-Wq8aIpV94>}3IziGugR1d}ihuZ7H| z3E4ys3EfWu)uXCF$%R~PQssYuNP0p@-}8TNhJ(Upc$Lfs*kDp8Ka#LsIuhbj-bTaj zWZyyP8p=q02za8Adp;{1g}p|RiT8LkGASeV>wiLyc!R-dODtiU!+)v>>0|JcB^HCG z|4$WRM;N?yi6x}z%|BNhrTr3T^yq$RNLPLAPskB}<=2MPJ~3)Y)R&FafBQ4~af(hO zdPl&W8Zb^XGqooDC|QFY*W8@H2m@CA#^o zFS|T)sa@eWzx)@F1@!&vi74(WgQew`n8<4YgV*#S%svsRt}~`bvx}4M#9qqHMlm-S ze0RAes_-UH!0;>GJk;o-n@7kYm);_xU>%D1jZ6)B!I4CRlhPlpsVgt5u}`!wgQY^! z+dNj-?+iX#ZVB=KgD)ox!@8GS;`|XysRXku4ydpMvG5hfgbGXI95GA8ve&o)m!(d^ ze@BR%Uf#3;V5kpmPhS^a1|NSQ@2G;>M-pM=zVK-xvW?*#oV)y3{9=VAicw z#IYQU?^w4**F&8SZ0Y0As>69 zC%EN~_o(CH%TME$TVmNn+6d$~`SKI#d>o2RVu=wQ74DbJ3Mu?%mRimHAR(tUCY8m5 zfRaQ$`b6^C#=(o68LWAnS8wAt!R*R)jVO35RHV1#HD-$@ew>FN_@Lkf&vYll>B|)Q z9}h|=oo!w{)h8qMU4NR#kV!0VtFjo_DJ*`a%EFnavF7o@K?bc@ZV^ac%TmQDcnM1kM}4rS6uuDw%0NbT3w$fXZkb+;!pc~14dCNpx*-3h z&=;r-Q57r>UulVKT1JUOK!Wff$bbyOToqrTtR7u~q$>pcm7~CPFf{`Hs?imoRYKQ- z{kn!f0&(>$5dc&ineow;mSBAYUn6g1MFmlo+ipRz8^t0X?Kl?P47hoA1m>q!>39{)(+{hAR*zqBpwt6 ze3is&eafE^I7rVzQP1)m7!#5FIf4(i)|hmpd>)w2YA0G8c~4&|e2OFm-m7+$Sdwh; z9TG}91Cl>p8sQGELf#vMoM>hz+M)AIM)))9)d-jYl#VXZ4~|+0{-C< z{OEob&zxuBnvQtz;M*BT$y|FjJ~;TGiipz;_%Q0<_$vAiPYF0%N|5sJcT9EoTkz?> zG3_2J3a~$+1Ce7U$&*NaUEmg8YLnj_;WqddFXNkJ zx2aSmZ@tQYhkEh?9GIojVVGiK4}~LH>V=8~l0hFNz%x*gfpBnV zd@&hZwZS5qaV-l0Od?F+E1qE@Fe<2n0t}<@QOy*5q9=LZ&ln-X@7`mHU&M*%n*!1( zz=H|bM2iGH3kJl;*)%aciIKo2lEspN5CMyHafAW#jSNo%nCGZ?5yT7C{yJR=I!LzYV9}zvg}g;c4Gn#Fgs{i9}hwkXBxgBX!5m&Cu-f3u1o2E^kflP(4M=xm*H+ON+^N$fS7mN(>NPzrt&pL%K%B&BrqMV&=M^&G`H zTf~ng?4Ogw9<{@km49v$i`X@N!Sr)pO+pI8P)M<&6Z&6ln$hJ747MxWJg@JY~m)c+C%GMMf7PBkCq> zAfv}-bTN%je!kfuGSZgwjCyhm>I$?1#2INTMLO)x0l$ravQ=lRbuxfR>$&7 zyHwVZPRZ9KF}p|8$6SUv$pu(s^({eM<++?DtGxZw+}<{I2_yjjm2~C`(XxTHNo?{- zAieAUABi~D%MWC}0Q})qG`V2<>uRJ!#*Rfnxdx|Vy+#%k#*Q}}oA)$WDPs7}IXXq( zNE0kxx+oQ|K}o%yrWmbu)*C1-F7@|r5(A276}JXqy-7^zJebAmL}1SQDAt?hTPSnf zg12H`TW_T#xZN!4ZM;HcHQU`K`n6wcbCgzYBK+3dTs!XR@#x&vGc_f3JB>-As;N7YQl(%lV`mcCOe?t$fwA1E_sa>eOAMw! zcT&tkU(e1CJdnf=Iy9g5pa_}!5Fd6J*xQ zg7a3_W7KHGFyon@4tn<_aXWSHsAsRJ4gV%CD=4lfL_hJRjw`8X`w~LY8_XX?-7nhE z^Q1A!ki3z^Q$_@IHc!Iy%rS{#`Sd<37ki$&Oc(F<=aN{+sd?r-e@rSA=S5U6uK5!y z%uBK`2mYln2SqaRt6XWX7|jK#;s27zvZ1%!{Td%J!nB!aIqh}hRe~W#`y26>rApvU z^cUpBv)@V@aIGBZ_IL1`GbVI?>wXtcwBd-EF;Pt3({i#B8hE#$)%65erZ%( zQNQNPtD=4*NLcT0QA`@e+IL11CeR@5Fkjm2)+3YvraU`BX}@8>&m6@^pZdFam+?muyW-_We>C_fIuArBHb7Spo7+wbFlm1wKbrd> zl-8qi@`HUa(REeMK8RTgZ3?rrwU9WNh!QxGxG{zfIi1yHVQbN2!Ie~QEv-I2ZmlV} z;Y!)TxTu_jzH-f6XpJFOWuVJ6Wo4Kq08Ro8TJ)wRHx%>INCn!)b4 zB?T-diq%7xYB_;ab!k4rOaGzU;7cam2Hyz3FdCr-=>IIm6_nN;p|1d?4NP%wrhGHw z_*IdGbQ;`_!+Iq*E17N9wNM~C{&{TMl0~o(GOMj!352BG%|Xy%kCnoiM-556Auc6> z^%b@%Da%B< zz01*md~{d97AS0_B$imwM*Oo}ighHVCWiVb7%a7Eo+fp)=yQDxjX&D`9yf^2@CCU@ zt&9~lA}>Q%8Mmzw0tYRtsaw@*QMN#hu&Fw1tmsy2UEFBrIPuC^Z@iKntxYg`lI=J& z$;%pUXr9}BeucKmR3J!x!kqQo4%HPb)3|U%mf?j-$1UvCIWXyXr&PnCqavZZrKH|% z=zj&au`5Sve#dsH76X<6cS3fsGr#w{XFySllQ!5QISv8>Xlj8RT|zgxaFcz>9GEu1 zY9}w}>=Jreu5PF-8u!1r{8N2EhLD67|NqK^-XzXKmjne$){R$Ve_p&@mwlkh$ACA)W9B6kL z%cNiqpFvGv3Q26Dm8@skNdp@*BV6Sx#+`y0fwC8;5XFiUDqis~7{u-a@-`JjD3Zy~ zImk>cjoD_;%k0B}jqVB1?BWbg$*Nj#ab#99mI656*JRqT{s{f9_!p#|{syV0@)JS6 zl@7ki4s2@l4|hP%D|Q+NO|`etf}E7bn?-R#|EtGF!uu|JzXd9#@3HNJ8iRd4ARSA& zs7gg$>xU=`9pnsCEKvGVd>_*tFn1jpruYC+^_7BM2Vb=?*a`+0DEikF37lSYVOOPgK@_)`j!^6J78ts! zy1i}TVBCO)VwgNoutOm%-aOWyVre^|7$!f|HX{m@!X%0B{X3~G)A0)w!4gb&TA>dn z_cGqUg+_2R!K^0jL#?D1Mw}{|99m&y#wli1lfL`S5F!4n@ysNA5T**;7On=tMRl{EPR??egC2JNZY^NeAf?v)0h7)ucckm7 zP!Z!1W*p!3sFuRc+^78+^jDaKnOd>|zlPhyu9-U(HztZlFlRW$&GziqvQkHioP(oG ztn*cmZaSS+K9>Tm-w4ZY!eLyMNnBFoSKBbyt4(4Y%IDM?>D@|EYoRznhSkQh%~@%A z8?Mfk>i zjRkrl>?@{a8PUrXx6oYUQ(W9LRvbB|jZv8;RM3iWQ1)d=UfXD#So2 z$H{4{qC(A$Bq3I)xDitWk(&wyH{vbSV*1~zqz;wC2737D-FkcZO(()Fy?Z($P*=Qp>{#r;tw{To4A`n3xCz;39H#uGyks};w036vB{|A*!D zAEr2uBz^&1;?#sn526P(Qylp!EOK&|?gufUiWs?Af0helgzdP!QcunXNnw-cH3o;- ze~T}f*gQkeG@&%o&I^bOU)%l?Yg^Xeto#Qpvk3$xVLie@sA6=kbk)MQ4~hlUMsb0< zh~b51#OhV7SU^@3d$N3u30=%OPqArk6$FLn)=RWxmTF>aH#Y{8vQwdZ_S2+Hv(?0Q z{5;9y0l7%5quYkGx{v;#^-hT{^KVt)qh8q_x;L~V_nF*f%QITCSx$v#QCl&rW_?IE4hgS}rTGUWWIWY7?J`97s@P`&qkK}b;v*WGwui4?LN!smezjg)88H?Co z*EI&6i)k3~`*;hN;I3Kz5@AK7m0Qusz(oqW{*Gh7bX=%5ZnK?c=*&^UMA|UQo7%83?3kYKq2zb5-c!3CbVLaePv49ZeBVbenyjTRp9SkGI z<*|S;MS*}TctEm-&O_jYV3$uneC@<)2m%c5sz|YbyHeDbXo})25*qY;bPBeLAMhNE zt>c!L5!Chy7IO-d7hb94zRGr3rUjy4%?DR27O+`LI+!b>bs*{7n7bDo7D-DbcU(QO zrlEdPtzvltVO?*M+InK>bg)_U3}+h+OJ>bgJm9lv*M`_+K7e25PnYWSMh<=7XTR*w z`$VBee{4`E*ehPv{Oa()YV6cBL$jVdi!`?{;L5ljQmcLB4INxqvCsjT zSW{SCQ#h^>uF{-f#i*F%TtwIj_)KyCBlqAJY{$KNAQ$|XSpQ>&3!suO-$=s+vz?JV z-2I6CU2?x?bvyMOI3L1SuQ~h^TfS2t5(UAO3D8c2SHuantY;H| zic(VCxr)&Q>Tj~Tzta}NhU4kcXhC?5AeQ&Z)&fDDaYcfTI2(1mUr7(RJU zrTWDB;qenQV3d^m^iiz17Qm$lrHVI$eRsdE7lDU5wq>%9Z5b;VDc&-$$dpSB6FkM5 zhgZ~f!xR^|BO@ExAmEQ=gIN3Fr&y>{2bi#VA&qetu|MKuP}bBA=4aN@g_l4Q4e?O! zV77gio)ZA?BTl^OrV(*Kyb!}^Bz?6@A6yIuNR+)pu|UON@syab-$5Ia;VYT4I!rW2 zcBu*b7Ixr1-M?4^FO)D;sv@L{t(J*^dbvq<5tI^Yr$nl!)(lPvaxAu9J>;Ne7xtIt{Np{ENgv054y+2ibk5c^^=rA zAUMb{|Ch`1DR5Y*0 zHCfJFoJf;Lr~XR*6e@yNRMt_8<~X-wA>G7DpDGGO#1H4?ifcNOB-)f%L?hVwXnqx>E6Ecj{Q`w^q$X|v=s{O0dP5c)*0-shxE++1!zby9c+uJ zG{&u}B_^B&(7G6CHL=a_CwnJ(&ZJ$95S#NRA`wWNj9#MH+fBkAoe;y5Q8%JVFnN6T zKjZn&Ws@HUX+JO4ce4H1f7ko+%)SfRO%J12qBJdH1e>ZI>R``4tY?Rp%QPjS^{zm6 zI7myNQDppAT`5Rx_A2IoM9&(qn)enbR5amh74M~phpqB4@$@xp)+4%BdzmCCVhNS~ zW4&C~84V6?em;cd8oL5FlL|>pe5DLBT*+F;9)3j69J)UC#&Q(~gcrK~v5L`3w4}AV z9ipsj5KJ5hW-(^njj@7DCJ*a+u?6b<_2RnCNWbS=11%7!YsDLe?BH<6YKs3>1U{y5C<7(8iv=Imb56S5 z7-zKF^1K!29dZ!CvndwSY9)P(oLI7_)H?;;_ukbbGOig5gY;X)@C@F~!cV362U?;1 zFEm*c_jXxNeko9_!#nVmMsK+?U?+R`QN903(B-GIDoFa&`_VZI=O~_CM3ls`OtKu# z*>$57v*!?h>w+#nAJ%dEd=E;~dk+cId)9|Vqal@x-%bmfv-YryAJa3VkH;F#aI~ga zpO6ItbGgs7TJh~i7=z@DZEI;kS2xZ+L(!fRWx{NWIgwMWPm2m-EAD+(He(MraEj-7 zW5WwU6U*46tIii>h9ERA(g=Bp?R|W-Cwc(CQxDQcn3_O+S#Hr@5v^-~)kL&;M$Hwp z=XOK8UY>)|z89|*7qskY^^<%i_S)*}BC6vJic0M5dW!3LvqxMU08dx^Z<~Cvh|n#M z?`pm8up^h+urGlMK1puX_hh-=7l~JVz#Mz^^06OMqVZ_1j}lvvvr!+Te1eU#e1fW~ zpNffYJ%sl}cFGm)GtNT!EuT|Ud=cX^zLW#(EB4S{JrMoc$jTTR>NnKu=PIsmO&gb> z3F0C>^*j0H@ISsBkzc<5$Cn>u4Sy8bhJK>vqtjs0NvNLBnjhDl(Vs;p)-RqzUqH$A zUrq91ef)@4as4K07Z2zBUD$6IdlsB8IR7vr7M5MccjbSIjD3F@8RP8mIB3Bdg#K?+ zVN~3obsv>&k+1`T9zSnS3;>hRDOSxwt4&KXC)5Nw17r=}1O0v?Yw`gwwdO1sx`xVN$nO23NX8@g1s(gU24!j)BDKs+ma|{?S>`NMva>%%dR!whQSi%%pdw&KA-niVJ!l%jZg^5J7#cQ@oj4Vn)y4BJ7wI*? z-cAvJNlqE$OW4R!i$(4G3}rt*sprG4Q}8K0Fn*Z1skvwakD7lzeqNZX=%r@bWv-Pk z={Mf0!$o{=nHkQrh^JhN#G5+`YN{gG(r1^m=u>)@se)~KN*^2@Ap$!`nz3gs6iF2p zB9&3%gJZP0eiGw3)K9|eG2(T4r5UUgiUT*46r64zhzEG2#LWZ#yBh8()2rpfq{ea6 znqar6Mn2cTS4OT9b>J2P4@^yn&tr{8ter@zPCibgq;MgD2W^T>Yermqz41H)Uv0RU zz`stxg9A4c!~?vPB4k7C5p}Rnluux5V3{g?lJQ6`nep6cJddj%i!!7)$!Fr5DecL| zb7K=8-MGxavl=^X5_S=d$iRVn4g3|ko<{<>)xaP5rB9eHnkJudJv53<2_oQvgN#5G zbK#x?f5aWo$g~EO!H$a#{0%ObBEjS26TfGRs^h)`|5`s5X`LV+Ce_YFOb6~h@NdL+ z;1QP{_#@q6Ma<~Q@_B4MayiBLNRCCV@)`tuiMnSAuc`Ho>v`n9=x|(v;J;z{%Qi>; zCc9s0bBzZi*dl)y(HGlku_t_*#~-2{xyAe&E=%y_iV@IyIv#KV13BwwaQB~8wRQEA zFhMcea!x=VxI4ig@Y}jD7TCYY@D)0ZJe>+Bse@4!+hQ4hFx7d9@qpHf+FFe#G=S|) z;{m;BYcn2Z;$f-ra6GbX$Ac)Jf0>b`@U9A4fil8Mne8kYflQX!&Xx~_)LQ4r2eNz? zwVi8xq82(&K9ChO`}y)=aP4F~U0^&-qM?t=7d)rId~{qCd!lc+h#|h!(a5l~kBJ6fU^C4*AUH`fT>l=e}{FP=c$19Q;02 z?(BshZY`G_V!Kl^^5_#g^RhHgGJJjHb6+3K;diPNoqgfxBQc{u0hxmmez`$unkG$M z(K>7C(zE9(zJBp9!ejRe?qmqJyC9btfRC*6bgQS&KBlEhhFMa17-(l=n8({OJc|v`CA$*6@u2V3@!F3o2VSZId2AsGA_rw}u zF9mna`7qM2q7lK5I}_6IUCp9%{oV@fLlX{8HYD)h^5De6z*ghdIcL=8lj*GmB$xDV zJxEiMcAM!j@v{Tq`Rf`E)m!8cx1an?6j~YEK^c(4PD3?Gwx!c zxqe?hPP?~?y@>VhSnFA^=~UEhc#j=U#&#BdBOFY|R)p5Vz!gOwsFdnmq> zP2Auw3f>hHLCiBuoI~q{2Vz66YxJ87@8?gSm2dcHE7Ow<^UeY%f20;ZIL*<=-8zQmNAUB8%KNO$4s15P8tfF^hRxforPnO-?J5t~}9>L}59|c#m6X23I=ox(?rD&W+!I5>`#?r~6 zFzKfl3NE}g75k|Q-)!>6>6I!(VyyFJM6#L@TP2^UCp9W(UwZ3qvpb~HMjxLRNn*# zzU?xFayWQH3ZAnd@rsKec^D@Q-a(@9>{eU0Jq@y0v1Z`JfDPFiRC2z{ne|V%O2h_3S1UPD-g@+4NFX>re^h4TeSvoqK{SUGsXI^Vi z4V+QAFB8VxpyGv7&8AuH^A*?SqP321n$jZPX#cGiiN-^bQpFV_Dh90Q%44G7vtyl{ zrczO6J)8V^io5ixc+EXm$LBru6Rl+GHKG~PH}G$CXgnW^I_#adhfT;$yFMOSy@3o0 zqH;IN%0YEd+r;+t33zNb#e;b|*@t}sZqsI#zRm85-Yh#Wzi8-6F7#+t(r$?-;J8iH zQwoD@T}s^9ivvoRd=LrQnCA`=%~;JzgzMS@SyPzne9IIv@9YtZefxfjJm_ zqCdiR6a+Ni?)YcxqsC`N-^0QOrfZ?S##a!oCq&w0;+)13OfvC-EBGP0qu$>%YK=QC(z&;#qUapL{lu6_YiTQAN&1)gUe*9H8h7x-W*hbDnB zjXY2&Fcy*6V1jZ1UE)bU*kdp$+ADm5_j^@N6?sU`wF#WB#lw;snc{y#*>Gb(HwWHi zgRc+x2SHzed;K;_{EjT~yYUjgCzhMw`z(9I^gubO3D8|E*q($kfTSjrHu1A?CI7J; zlm&&*llTOI1@+brv7(o!drUY{-7wu__I=I{Umx)H|B|fd^MwR5eZJIwEwZzJV@T3z zTzJ3b?H<+-C%na;rJ8Frs7J)~SD|Lf)A&K8k^LiU{WvAlJoqPe^$meRreE0J8v+5- zZ*22-8M@v2yV2f?|4(WauZu+T#QY9dEPtb6{72zyZR2#W$;2Wz2K+X&!QGWB&{&^$ zV<7Vki(niDFQQmU)DCF}8Yc}Rc3$;TTmkJZLV>iyZ-EuE*dkCj=yRqCK2yd{wVRB_ zaEP5(s*}#@Nd?aDVyB`cE)`O7uK(siR1B?v#!k3?x*rDeNNJ8&-Ya->kI&%ENtPp& z8C(#H_tf~)0+LCef%8yfq>=6+Ur-EBO>WXXG#DPK^JmD;A;HQvMH447&N#>NmC6Ru zd5o&3=TK$O>yUh$k_zoZVKxzmdB!-BB_MVqtq&TI7RX{OkdUb>=>@W_1tX|%={gNA zXzE6xVwgZms04g7_mEYbCk6PzG?7lQIBCK&&wWBTUS>ak_8r zNEryKauBI28rMVQ;=u%u6%eOOMvTPheD*}dfU#5|QYs|ql2H=-{@AuZz_t4a}mWpUjBpv9~u^N^w{8#J3Ci{ z>?^W2K<3gF+e9haC2bFNQXW@%P}D{-oKu@(vX#klYdHli@^Okg$p_PW;UE3FX)5gs z_0nlF@8cqhHXXku?;Kn3Ju?!D1Cc^?>$!?PlU@9DrKTVEZ{d$;A8sGzj-DV7J79y4 zHqo%WCwr7m0*Jn?;xa+hWQl}cSvazpu{<@qb~wSI^Ceb?`&e%#GG ztc=4+p)gB6awQCj-}?b{2y;VQ^I7D+QK1~T89eYVnGX-0&}VJ;ska@md~f;TfV$=A zsw1nuU-d(02a6sEWcViJbShg+Hys8;Z>C9O7 z7JL6dAS?Q9{n1t59(envkTzj@rHuXn7$2%LZNT+$e?;W%RnrHPV0`BJA?4kxF;uc3J-PL;q>%- zKY6C`aO$m}+y)PjeH+FEa-m2$2JR+9Pv&p`EfmQOwdHQlLzL~l(AHeU+wKp&m3!My z;a-Q$TmBBL`pI|dIDD92))2@&bqi?v&dJ__ARI6bqWTUAJ(1gabncH&@A&#aZ&+P_ zA@p?a#ZNyII-LAW?*rDZmjl;D2g7+VcV1o7vJm@o;hA1Z{SWmw=T_HA}kuY~B4_}I0Asyo&R56PTO2W^7jALA)1L{=q=6ViVg zY~nL9uh0ab+d^Pooj7%&vB$ra;F}GHEHNUSy3ruIZm0ps#T(ns5-O`3N&tM=igd-E zPZk*FST=!xQw;LK8uw4D-Xw~g*-2FLyM1jwv%Z;SFA8dDIB(&rDOQMES>>XjH?zxF z;8Jm-B2BYy5%VqQPS(CC7;3po5ORKiwWwtg%BDDRs$wuhc!vFyZB&bR>4)}LGzj)N zNiI+D0B*ZCvFi6x0jZmU_p@1xtsZt@L#3tAx=ThZQOF{n-1t#8y#5g5^JL*<=wVVM znRSc99eo5ZiIPKe?@^-Ui6uch+8&cjNkIizpgjo8_j!u*aZUs-S;}oNR6uI9Pg3vw zg7&x|(eL3OTu~v;=R3-0Bz1ZgtE=Xw2ct?mO8`*U`suks_BF!3-nfIpU@ij}NSh5S1Y zzP)Ojn;|(WY$Bh^k(!Cn-OBuox_-~xN}t>Dg~*eS)*>bQOVdWScW$K~=$J-D{W|e0 zvdD%^o_}xdpsJ7{o^H9>Aa;*Wj~|RN;{H)YPngQKpAx(EXB3#2j}j&Lt4P?JVI|o* z4Geg!|HBvs}IJC?#4dPn~eiu)047=%i<_@1j2?Piw@$Oso>uf$Uk$ADzC$og0;VResSxvkhg z$-LCZyEnhAO*CCSS?ewsl=0^M1)M!yC&sIPy|KPRkUth=r@eS8Va0b9+j}SjM+R53 zQ@+U1oemJR(PNvYbwp}vU}VR)fxYxmhS!f%W6q537o{;yG|uJEr3VLJd;LYtu9F9lJisfF;E-pJiwc&_y0X=`JW44%MzhUe;EdxL z7YJsYouu14z4j7WRQ#|-YR8Betv(?;V4v)O{XIHB3?ubPL0cV9iHR)tSXoaq^^1(m z3eZ!<{w&H9@1y5r{lJnvPo;a|U+ecGjY_ZMr5^P=Ao}QFynZhuh4fdB>7!R=4(OxT z{x$K}Y4Galc97YG{&|z9z6hk&7y)ln>hB!WKcKsOjG=!(a~1vlf6d|p`IgTF>R2(< z?H~5Y@*|$5ji|B^2Khe4jkrx=z3vdg89PCKw<;ABSuW+Di~ewZLH!~9D2jWupv`>B zd?i8zzh+0Ct_%zTNtS2a+{L0BG&y14+1`Rt2R$iH25~U{J-@tV4*bB@ZK?F9fkN{y zScQM4FP^@?P>UD|(1kcFNV6oOxO*oHe#w^^U0-JQiyD54`SmMqrrzdATnn)GmTaBt zA8UaX+i;n%#e>GSYjSN6v|EpV_2MhE()n6r^~*+%z!wh=73f0K$e>JI9^3TTYLDe* zQ!~Y?Va-Caw7g)1W+Pc&h*h4P<;{_NS?tMS`)1B2TDFn0hbPY0TX<^HTecGA3JXsBc%y6u>?Zn1Rb503c zQ<)X=4-*uhmW2e@0gAVjy?A1y9vvS4EKKD)%i?di$#6$``~~cVr&q)u$!NHHMEqG= z4tI`>zvAY@U8CYJgbi_Rw0IMxa#b6a#64r;;S6iy?#lQ(++~7UaF~5ccqOciJEg3M zlH(#U7fz9BrK1J9B#!;Tn!oqo4j>m5?CUL;R_rEzo3v0>KvdtM5=E&DF0+|+h!XjO25bc1K z@~kWi`zButhSY2kQ43k9Ng#g~+KD`rFULamay`jVL6hm_{d;cs5>NV6Dfy@ku5)$#NnyypZ4!X3l{-Ckn>sStk?!)&; zHx>I0VHQo5y1n{O1}`I&Ef!xw+dl_(8>Ckx?eKel=^5y>(^hfm7gjr2`AbLa#L-y7 z(3_ad6*UwUYP}?maADg*BO?CAimi*xYj6^quqGUG)D%x#a#qW@7Fyjli>f20f4v1EawXUi7h!_Elr zg_7>_ux`#Vv!mDf^sWoSDds>fo4h>iADbs5a1LF|r$&97qRD4bh0H-F4`)dnpy#U?4=78bp&-Eg!`jnyH$0x=uxebT9Mk- zu>FVA6Ez~b)(Ul5d2rx_vTUqVxgF5b8qurP+E^fKolqNx@J5FQEFXY9nmc#AnJsJ& z``Oy%zLb`Nv@=PM5-aPt@4%sqp=)UqdRn%O31URAo zDqlqwwpUfb%A#!jDWdiJH?tSlg!}b}ma7QIua7~;HP({`C4iQz5}ILVl`a0PFf>|e zV7s8p${Qwjqr`IpA96H@s|@Ovc_NG~*Uj)4)D2p!Jg)@mW`QOv+>$0_D@h#GSmj8t zL1&eZa}wEUP+EG<`?WJXFnXJrRDv2OT*1{3PiUNQ612y=_)Ads^;YQ98h*;5PD|EP;^W&2d*pI_ zs!*LJ0-V}v3?fyUBzKWX@}65EXv}hY3zOu7xkH*|6oji{QYRP_$_hnU&U=8_hnlRS zox_TrbGrvxpct!o&ZDuwgU7Vytk8?)5kNzs6su?#@(6=0(1KO8D2zRe2(czqtk8iq zHZdItWu+|aD$&frOJFBBFv_p379%EM+UESn%uL@+%1ZKH22;tS zBU<=!nfg#zft0iL3cR9Y5a{=;#lXPIrmhn?c(1}`gqte0;MJ5e6z#|@TiP{($b^Y3 zY%q7N52qD0G;|nDOX{D-akBcCWC#A1`^%%u5f~M~F&iJ)iN(Ybh$v>VEGC_&5s!yr zrpRJqO)`p!g@_juYY_FCH%%0?80!z8GQ5~rglLfSVqy{E0y(Thyqle(<#Jtg^TN%d zU!~YbxW&6vPi&;iH7Hv*A8VwhddkFx8FSheEj&9{8R<2%gOOkXTX;*@m0aw@LK?}B zWYD8K)h`mQg71jdf}odm-V*lMxSg95`pn0;_TJ7KH-~l89qhEt;lZXY?CQ38ul-_SsMpv9OC8#ayZZ`#TRY#Lo|x|_}2G`gSZ9`@f&qci$#6WL^M|3^t1 z7FNw3H-F|i)6YUlcd&z-MvpMv%WOA|9>yB`z+`sNym3QWO0Ice20MI9cz_AlP;L$P zH)XL}`j^d?;2(LlD0*y^x7e2>N(9wCc?F~>+yKMH!Cd}+YU9*M0~FtJtE68$sR8!S zWxp(RXGPQcnrm=yOfI$*SAiMIdG+M+<8oLnf~ZpKZ=TJmu23BmFFgazaX}uZD>!u< zWR4#y8t(?1Pa~l+KQJ-g4Kc^h3-PY7nU3tj=J*+-5wOVIer#lYD4Vr6tYwv$xrrI6 z>S!NkCLN)*qHwvxW8=oE&r?#%sd`)m8_O%VFf^jOqqrz)x+*;_)YTO(P6zjH#rdA3 z?K$_cQ{D)NqI9CC?vlbsI?3abb#apC#7Q14uQ8q2^oJ-QUciztKZL<)o+Nb+oZ->H zH#B8&jz>e^2x;46;<9qCDNFJWp3Jf~r{Ed$_R*<0`P!YqLM?v3eLocoCv{v&_NkaU zEuH%3rI*OwzmM9i^6xXvxbQDM5 zaai_0q^!Tj4leGc&3fHnbopXU$8ZMQWh~ZjB6R9ou_Ldy<^JOxgKKVxD?&FZKAg$% z1=%=?oz6_J*^jP1`c@cF1Skd!1(X1W0ZIYG0cC)4Km}j~U}X2vw?>(s=sim`WMC(o zaMNgi@B74T4BgKb-84Eox(j21EUpY4wn}!8r(3=%S=HR$(%MQF>|77XcSXdf!m$9( za^cs7$1ExduLOh7wXB^F$#7v9Ya|vY^4M_Ind=dqSv$wr zqK_ImhGT_z%y^Yhh&}RMajXz~V}&S9D8%D3T&xgJ;Dso}K3RzUvJm5VAs7lV@<}7d z;juzIC0`AV7sB(jd{pBFg?Utqz_V*<7p zW!PaQ$nBEO(L;Fqd0vvQ6LUNu-xUoF$8tQ#&fGjki@q#BCFJ-DUWpuE6**e}M}ekI zoOqm)`Wk*VPQhVb+Up5K?+vruUkFX{9LXK{sKW%8>KkrmM_Plrxy;O*Q`3V} ziRmZy)iY8q5*LVla;vf&A54u`S?}9&Iv#n0$(wAmCGR z9gYfbo0wRZNwO?uN>-y$7V!R*g%vD6FUxSnHidX5qb$uLU@AH8p@5!gY@OcAod!;y z7XZ3*Gud{%mnR==K4ob?US`S9kJC<&d19}c1s0#0HlO_Q@Jzwb^GtClbqd%(p`i&G zVAiQ3WK;z|&v_8A@|*{mE5?qm#Z0n$DI%_$vYN|1VV!B7?5yyrNfB7*(M~tG%f!Yx zLzL78o;WUy1XnD1&aA~^`_(*-`KG3O@`xwq#ch?vg(gCq!Guz2mx|H`eal2dDjE(A z>C)#465wW?B?1IgTnyvY0q4uBbDpS9&iO2}r81NQW><2tDp+0KfzgCAdM{=tw^Zux z4(cEtf4PXCy@IW7smzLk$2H>PG8gZS)iOTs4ee3{z*<2Cq|wjiZR#3qVM$}-GEq1O zxLskdl~e~52RL3@7lkGTl#7vsynTEne^Vz*2#`q&pS%C#uap&S6GIi z+SROSaiu4EO{~OrY@QNi#@EI^*se=x0_*j$_vDKQ2KR`+R@6{^fnYL)0gI9Rmhq%FPsS6*aT_ zLo>u);Bz1EYO74QC9EvI_jsF>zMq)a2mh9r>!ZZ-)1u(}gvTxWG%@a>e~at+JTWf6 zsi^qAq}cil`&TkLrx^Oz{}x~U79;})roQj~F?NI&^IXG3Mb=nrBv zO9B}ia6FR!~&v_>=y_l-b|1Wx`5^0+$`jte&owm9AdPPQ%7M z69@3DG9zjx_XOuEdXn%85G#^6U`mGlbU_HlG#hzbuV94({^r0 z+p@)jIudI`ci*Qalns|F~va`6f67*@!4OlIN?di_|!&ZI5jP13*IIQ zkY}d?%q*PJ*f{kv&KxIdB+*;N;eY{rZsKqi%`XRh49Q2D8XhMeX^YynWJ!DP+?9O# z2VCr6Yo*`hW?!{d2I}E=NM3!V1TUO@`r;u==jSdLqbpa7mw-=;OE4{#%W1(2pz5Nm z*zccsW@TUu92M{a@L}kJGa`Nfuxx2d+tP|6+*XELqWE`fP(Fo~{0yE`*R_=!HiQC= zNp15gSm9EbiKr;9D5{v!vgq7UU42#Ul&KZ@=ktOtTiQ0HZQc;$QIy-(x8vL=3a4X=B&(*{_72V}pt#*2r+I5TF{S%%;|MKQ%s5P9-XLbdXW5LZMKlsIy5g>J<92zH3s%%u<%5|FJVY z&0=Ex7A1{fS2RZ2_&Wrc*?r0fpQmq1UShvGj|olG$f}*4;n>SN&DD zoBr=@uFK!>XoJdH|E@c8_40)gKoy`GPy?t1j0MyI#sTU9;{g)@4SKr4Xi&<0ovXa_6R=S zfSUlFfX#rL0k;5d1>6Sc0^AO`1F!{fC*Ur?R>0kWdjQ)2+W|WO_X2hT?gQKp*aheY zJOFqQ@DSi(z$1X&fJXt30rmj)0v-oE0oVuF4|o#r6yRyVGk|9S&jFqXya0F+@Dktv z;2_{-z$<`P0sjNM26!Ft2H;J=TY$F#?*QHfya#w6@B!dMz(;_O0iOUq1sno=2KXHC z1>j4-SAeep-vGV^dPrzS*zX3-tTfWeA zC4i8bP!geJLKZ?PgnAKD3H2tFO2|qmjgXCyosff2Iw2<^7a=zx4pU?n80|^ZxG?-8!p&^9Ago+3i z6BILQ@De6PikB8lmZgW)PZ5=r}^h6FPy=iG)rfbTXk+2%So3 z7NOaM<`9}osD;pJgys>NPv~?)XAoLIh>wj$^lLGpC4^cDok^&T&{9I}gq9IHi_qDG z&LMOzq4NlxPv`VC zLFh_CYYD9*w4TsagsvuZ4WSK$7@=zkZ6tIZq3a3VKs9fa;Bw3E<%gzhJ_i%>VA2M9e#=pjN6 z6MBTuZbFX|dW_H>LVF24PUs0j`v~nP^dzCD2t7^c8A8tzdXCWZgkB)@BB7TE9Uyd& z(948gA@nMt{}FnP(CdWWAoM1ow+OvW=p91u5_*r&`-DCq^dX^-2z^ZG6GER7Iz;F* zLZ1`*g3yGI%OXxd7hY1}a^gW>;2>nRtCqh3H`i0Q1gnlFRJE1=a{YmIA PLVuec1NAdqwC?`^9l+qx diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index b75bf1f5ea82851f2901730f2290469ace0d48f8..74a676dd7bc807cdd936992535be7d52cff2623c 100644 GIT binary patch delta 40149 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%0ASYY>#sKnMr#L2up&~ z%N_?C>xZLIN;IgZ)M%$C#86_inbPoyI4XuHHug##Db?J=%?>b~Ryyo@*q;1R>i}V8 zz4QYxljnh0=KFSNcePq>2m}01UV5n`kme3ka&kKT$6;z<2nedX;WCz2N|0OrFcYrY zd=Y{s+TB;4EGORqgb4I<~$pB|xx zPRNd7Pp8AJ#FNZU4C2Lu1jam(qR_$yBeN3*x?jG8@j~+#=h26Vtimdh`>@=lc?zr+GoAtN~ zcbwM)4t=fA)6JDswwr4sjehZaDvVr4>%OPPj{^N1g9R1qbEWkM&8;ZSis7X#&ihtU z?9{AKK~#!{C$nzwZHH{oPFm(aB@Vm6ITT%|9|9ilU*m8J>}r2P#3w zqW~*PjtleWAXzUoOsQ{i71p9VBUztKkN`I;Vhh-xug=;e7FHlwIpwh+>lR#X$M+bjuCi?%-`~dd`p3w4t?;SPw*7 zuJalEmJ%#4;TZ)VZiJBx3d0*FQJA8bjj;2oNTh3jq;iI}XWj?4sW6FN_G#Q0YiAm0 zZN0zczSGT$c%vWnNn%5r?qed)!iHiX{m_FNKyUep8lZzx3HI5X3=jiSeT;nu=u;rK z2ABCwKM*h;#qZyvlw|e@u3Rtc)k^NL<%ZJ&v#2m@#&*q^&eBF$hscY^^PgsEJP`OY znv%?VGn=q|jvf8Y++Da>O2_<6MXIic@J!bNSOD4<1F9AbUtEhB&h{L_{DK@HpI-Mf z73LvyIImKQf2IcOK;5l(iKk~l2ds$P-45{%R~7Q&|k1o259-7@4W%tYr(PG zQ3rv*OD;XLJ$%SF~cSNxQNvS0866Tenp^gV>sVD zxd-IH{28eehUaj|g^v%xOds?N2tHg~<_#g=JW!pMJ5CC$|0vJ^Jd#w5B+BUzh+xW< zV({KMg=gG~!mc5%@E#B92B6nn6;`^(0V14tp3jqk!WVrCQBjwdo2zU|$bR5cw$%h8up-XoHTAd;Wf&MqRZ<_TD8aA>iu zAqRpJIFAh_j;bQ3o5pRV^=Gvfi~?V%i4Bv>N*(HJQceGnP(*!Aw%M@(AmQ^w4ne88 zrjd6>;$%bn1~};enw&sL3B8M)_uzCc#A((}^+!wNvDv7;Cf;pnhxIedeON@*V>LPw zs#Bmb^q+QW81>Fbd`erPz*WS6n6X}X2;;(@R=pPG(VA*1=p{+?hhv=*RGGv!T5j5h zaz5}KAzf~Lw4nIiIxF3SfPlm6F-Y(8ZwgSFb6ntV8mf<~AuN&^*@`1&h zk(qD�i^6z)xYvAA^Jt#ayc~a|i5Pe+uJ8Zn_-{+%O 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 ~JTNSf_KsG%!l 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%0A=<@@Z4 z1nssq0lcZ=oVF^F=QA8a#z)cxu*w-=W|QeS5&_tvG}vNxYO~U|LGkG|>9z_7ioor` zMV#-OG6Xlm$yO8+U^kOt&r6f4^9SKB$?lZh5|`PI7`g z4!IirpCvRNlN`_W2;}+(pJ=yW?oMx4M_{8lzB>CoQAUsP^*9!+j>Am7`~ko&(Gg5G z_?IS*jydkts$@cT!@4hM*Q=Ua&LCfh^*znqgORQk*eN0pXHvI*tn(nNo-^&!RIikx|jRz<#A`>I@idjY$gU5I>~!h^Aa zKIAGwhwk37Gg+fFF8Z1WRTa~my~+92&5e6$?1V*u_&xD~WMi_Xd1|`7k+X`W=FLY+qe^Q7HP)w#UDb>NTz7Q`QNaT9vNhyi=MP5j zN3$22_twH35nAeoEWCYv$=*TrPm^+;P@`6yl>H4J6i_-Ns};TD{8yTZd4)3T%z`dr zMOjdQuP0n&~r8`iD@-SD3=a>*;v-O^6|7{^ zN_b-aDx@sqPyF_(TwH?+Z=2~EFRx7tEBI2M>bfQ`5n9zvr{x88es(vnjaG+q{{hGt zIal-N+8Ls@L;c}t*#l9VPF$0#H>_cIT><(WEhJ-ICx0l&k~2dz8B_r|!|YDcT3}WO z#P;p)9RP{!OTrYJ7dg9F>YS(=J|kD$Hn$s@&G>D_yD3@K9v>JOO0FLo9_Xt=&UFmF zbUo#KeAr-+PAoYR->N=;M!xBm4GfjFk&1z?#hIJnCung4%Dw}&8XBDQkMy^xu$$F? z*)81<-OXn0Ss5oLpu0Km^#$xss0)s3G>1`!F@#kXx)16#2O{J+zzi4EnCS&qRiDme zR+|1NuL3N^J1@(Rrqm)$gEn#}0B6kIS>)_aBlQa>$HDMtn@;2Z8BU{jn$vg&sDTSU zb=XVC7{!80ek7M{)>9C;hZx?i3GNcg0ox1)`56!Z<}eudab6M6QnfvAEC?mWGv+nJt@(d0Rh(EbKra$0QJ2K6YqcU;YWYx?@1{P YJPh~#33>m7bN@uf{)tR&BJ1$~1M=#P=Kufz diff --git a/BIN/CSH.D.txt b/BIN/CSH.D.txt index 223233c0..ec0650b2 100644 --- a/BIN/CSH.D.txt +++ b/BIN/CSH.D.txt @@ -2,6 +2,8 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- +PathBuf .BS 65 + hFileBuf .BS 1 CSH.BufPtrSave .BS 2 @@ -12,11 +14,13 @@ CSH.hDefines .BS 1 CSH.hSymbols .BS 1 CSH.hTags .BS 1 +CSH.hCode .BS 1 +CSH.CodePtr .BS 2 + CSH.hConst .BS 1 CSH.ConstPtr .BS 2 CSH.hData .BS 1 -CSH.DataBase .BS 2 CSH.DataPtr .BS 2 CSH.hStack .BS 1 diff --git a/BIN/CSH.I.txt b/BIN/CSH.I.txt index 9e22d7f8..29baafa1 100644 --- a/BIN/CSH.I.txt +++ b/BIN/CSH.I.txt @@ -6,6 +6,7 @@ CSH.Q.CONST .EQ %10000000 CSH.Q.POINTER .EQ %00100000 CSH.Q.PPOINTER .EQ %01000000 CSH.Q.PPPOINTER .EQ %01100000 +CSH.Q.FUNC .EQ %00010000 CSH.T.VOID .EQ 0 CSH.T.CHAR .EQ 1 CSH.T.INT .EQ 2 @@ -14,7 +15,7 @@ CSH.T.UCHAR .EQ 4 CSH.T.UINT .EQ 5 CSH.T.ULONG .EQ 6 CSH.T.FLOAT .EQ 7 -CSH.T.VARIADIC .EQ $1F +CSH.T.VARIADIC .EQ $F *-------------------------------------- CSH.OPChars .AS "!~+-*/%=&|^<>" CSH.OPChars.Cnt .EQ *-CSH.OPChars @@ -94,7 +95,7 @@ CSH.KW >PSTR "if" >PSTR "typedef" >PSTR "struct" >PSTR "sizeof" - >PSTR "void" +CSH.TYPES >PSTR "void" >PSTR "float" >PSTR "signed" char,int,long >PSTR "unsigned" char,int,long diff --git a/BIN/CSH.R.txt b/BIN/CSH.R.txt index 2b761870..524f06ff 100644 --- a/BIN/CSH.R.txt +++ b/BIN/CSH.R.txt @@ -48,6 +48,7 @@ J.CSH.BOPS.SHLt .DA CSH.TMISMATCH L.CSH.FN .DA CSH.FN L.CSH.DIRS .DA CSH.DIRS L.CSH.KW .DA CSH.KW +L.CSH.TYPES .DA CSH.TYPES L.CSH.STYPES .DA CSH.STYPES J.CSH.DIRS .DA CSH.DIR.DEFINE .DA CSH.DIR.INCLUDE diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 16e5886e..bb796884 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -21,6 +21,14 @@ CSH.Init >SYSCALL SListNew >SYSCALL GetMem bcs .9 + >STYA ZPCSHCode + txa + >STA.G CSH.hCode + + >LDYAI 256 + >SYSCALL GetMem + bcs .9 + >STYA ZPCSHConst txa >STA.G CSH.hConst @@ -83,6 +91,9 @@ CSH.Quit >LDA.G CSH.hSymbols jsr .7 >LDA.G CSH.hConst + jsr .7 + + >LDA.G CSH.hCode .7 beq CSH.Quit.RTS >SYSCALL FreeMem @@ -169,7 +180,7 @@ CSH.Run.1 cmp #C.CR empty line.... bcs .9 jsr CSH.GetVarSize X = returned value type - clc A = Sizeof + clc A = Sizeof CC to ignore Pointer hMem adc pStack sta pStack Discard value on stack @@ -260,31 +271,53 @@ CSH.DIR.DEFINE jsr CSH.CheckSpace sec .99 rts *-------------------------------------- -CSH.DIR.INCLUDE jsr CSH.CheckSpace +CSH.DIR.INCLUDE >STZ.G PathBuf + + jsr CSH.CheckSpace bcs .99 cmp #'"' beq .1 cmp #'<' - bne .80 - - - + bne .90 + >PUSHW L.ENV.INCLUDE + >PUSHEA.G PathBuf + >SYSCALL getenv + lda #'>' + .1 sta ArgIndex + ldy #PathBuf +.2 lda (pData),y + beq .3 + + iny + bra .2 + +.3 jsr CSH.GetNextChar + beq .90 + + cmp ArgIndex + beq .8 - - - - bra CSH.SkipLine + sta (pData),y + iny + cpy #64 + bne .3 .90 lda #CSH.E.SYNTAX sec .99 rts + +.8 jsr CSH.GetNextChar skip " or > + + >LDYA pdata + >SYSCALL puts + rts *-------------------------------------- CSH.SkipLine jsr CSH.GetNextChar bcs .9 @@ -294,535 +327,6 @@ CSH.SkipLine jsr CSH.GetNextChar clc .9 rts *-------------------------------------- -* Built in Keywords -*-------------------------------------- -CSH.KW.JMP txa - >STA.G CSH.CmdSave - jmp (J.CSH.KW,x) -*-------------------------------------- -CSH.WHILE -CSH.IF jsr CSH.GetCharNB - bcs .9 - cmp #'(' - bne .9 - jsr CSH.GetNextCharNB - bcs .9 - - lda #0 Any var type - jsr CSH.ExpEval - bcs .99 - jsr CSH.GetCharNB - bcs .99 - cmp #')' - bne .9 - jsr CSH.GetNextCharNB skip ')' - bcs .99 - cmp #'{' - bne .9 - jsr CSH.GetNextCharNB Skip '{' - bcs .99 - - jsr CSH.IsValue0 X = var type from ExpEval - bcc .6 Value=0, skip {{....}} - - >LDA.G CSH.CmdSave - beq .1 IF - - pha - >LDA.G CSH.BufPtrSave+1 WHILE : push loop address... - jsr CSH.Push - >LDA.G CSH.BufPtrSave - jsr CSH.Push - pla -.1 jsr CSH.Push - bcs .99 - lda #'}' Tell '}' is expected at the end of block - jsr CSH.Push - bcs .99 - - rts -.6 jsr CSH.SkipBlock - - bcc .99 -.9 lda #CSH.E.SYNTAX - sec -.99 rts -*-------------------------------------- -*CSH.Keyword.Start -* >LDA.G CSH.CmdSave get back Token ("IF" or "WHILE") -* tax -* jmp (J.CSH.KW.START,x) -*-------------------------------------- -*CSH.IF.START jmp CSH.Push Push "IF" Token -*-------------------------------------- -*CSH.WHILE.START pha -* >LDA.G CSH.BufPtrSave+1 WHILE : push loop address... -* jsr CSH.Push -* >LDA.G CSH.BufPtrSave -* jsr CSH.Push -* pla -* jmp CSH.Push Push "WHILE" Token -*-------------------------------------- -CSH.IF.END clc - rts -*-------------------------------------- -CSH.WHILE.END jsr CSH.Pop - sta ZPFileBufPtr - jsr CSH.Pop - sta ZPFileBufPtr+1 - clc - rts -*-------------------------------------- -CSH.ELSE -*-------------------------------------- -CSH.DO -CSH.FOR -CSH.SWITCH -CSH.CASE -CSH.BREAK -CSH.CONTINUE -CSH.TYPEDEF -CSH.SIZEOF - lda #CSH.E.SYNTAX - sec - rts -*-------------------------------------- -CSH.STRUCT >ENTER 4 - - jsr CSH.GetCharNB - bcs .99 - - >LDA.G CSH.hTags - jsr CSH.NewKey - bcs .99 - - sta (pStack) - - - jsr CSH.GetNextCharNB - bcs .99 - cmp #'{' - bne .99 - -.1 jsr CSH.GetNextCharNB - bcs .99 - cmp #'}' - bne .1 - - jsr CSH.GetNextCharNB skip } - - clc -.99 >LEAVE - rts -*-------------------------------------- -* Built in Types -*-------------------------------------- -CSH.SIGNED sec - .HS 90 BCC -*-------------------------------------- -CSH.UNSIGNED clc - php - - jsr CSH.CheckSpace - bcs .9 - - >LDYA L.CSH.STYPES - jsr CSH.LookupID - - bcs .9 - - plp - bcs .8 - jmp (J.CSH.UTYPES,x) - -.8 jmp (J.CSH.STYPES,x) - -.9 plp - lda #CSH.E.SYNTAX - sec - rts -*-------------------------------------- -CSH.VOID ldx #CSH.T.VOID - bra CSH.TYPE -CSH.CHAR ldx #CSH.T.CHAR - bra CSH.TYPE -CSH.UCHAR ldx #CSH.T.UCHAR - bra CSH.TYPE -CSH.INT ldx #CSH.T.INT - bra CSH.TYPE -CSH.UINT ldx #CSH.T.UINT - bra CSH.TYPE -CSH.LONG ldx #CSH.T.LONG - bra CSH.TYPE -CSH.ULONG ldx #CSH.T.ULONG - bra CSH.TYPE - -CSH.FLOAT ldx #CSH.T.FLOAT - -CSH.TYPE stx ZPVarType - jsr CSH.CheckSpace - bcs .9 - -.11 cmp #'*' - bne .10 - - lda #CSH.Q.POINTER - tsb ZPVarType - jsr CSH.GetNextCharNB Skip * - bra .11 - -.10 jsr CSH.IsLetter - bcs .9 - - jsr CSH.AddVar add with undef value... - bcs .99 OOM or DUP - - jsr CSH.GetCharNB - bcs .9 - cmp #';' - beq .8 - -.2 cmp #'=' - bne .9 - - jsr CSH.GetNextCharNB Skip = - bcs .9 - - lda ZPVarType - jsr CSH.ExpEval - bcs .99 - -.7 jsr CSH.SetVarValueFromStack X= Type, Set value to this var - bcs .99 - - jsr CSH.GetChar - bcs .9 - - cmp #';' - bne .9 - -.8 clc - rts - -.9 lda #CSH.E.SYNTAX - sec -.99 rts -*-------------------------------------- -* Input: -* ZPFileBufPtr, A = Expected type -* Output: -* CS, A = EC -* CC, Result on Stack, X = Type -*-------------------------------------- -CSH.fCall ldx ZPPtr1 - phx - ldx ZPPtr1+1 local : fdef - phx - ldx ZPPtr2 local : type - phx - ldx ZPPtr2+1 local : variadic size - phx - - sta ZPPtr2 save Type - stz ZPPtr2+1 Reset VARIADIC byte count - >LDYA L.CSH.FN - jsr CSH.LookupFN - phx X = function index - bcs .10 - - >STYA ZPPtr1 f() definition, starting at returned type - - jsr CSH.GetCharNB - bcs .10 - - cmp #'(' - bne .52 - jsr CSH.GetNextCharNB skip '(' -.10 bcs .90 - - lda ZPPtr2 - bne .11 - - lda (ZPPtr1) - sta ZPPtr2 - bra .1 expected type is 0, no check - -.11 cmp (ZPPtr1) Get Return value Type - bne .91 - -.1 jsr CSH.ZPPtr1Next advance to arg list type - - lda (ZPPtr1) get type of first arg - beq .7 end of list, go check ending ')' -*-------------------------------------- -.3 eor #CSH.T.VARIADIC if VARIADIC, don't advance to next arg and assume type = 0 - beq .4 - eor #CSH.T.VARIADIC restore type... -.4 jsr CSH.ExpEval A=0 if VARIADIC - bcs .9 X = Var Type - - lda (ZPPtr1) get current arg type - eor #CSH.T.VARIADIC - bne .5 - jsr CSH.GetVarSize X = Var Type -* clc - - adc ZPPtr2+1 - sta ZPPtr2+1 Add to byte count - bra .51 - -.5 jsr CSH.ZPPtr1Next - -.51 jsr CSH.GetCharNB - bcs .90 - - cmp #',' - bne .6 - - jsr CSH.GetNextCharNB Skip , - lda (ZPPtr1) - bne .3 Another ARG.... - -.52 bra .90 extra args....error - -.6 cmp #')' - bne .90 - lda (ZPPtr1) - beq .8 no more arg after ')', exit - eor #CSH.T.VARIADIC - bne .90 missing arg - - >PUSHB ZPPtr2+1 push VARIADIC byte count - bra .8 -.7 jsr CSH.GetCharNB - bcs .90 - cmp #')' - bne .90 - -.8 jsr CSH.GetNextCharNB Skip ) - - plx restore X = function index - ldy ZPPtr2 get type in Y - pla - sta ZPPtr2+1 - pla - sta ZPPtr2 - pla - sta ZPPtr1+1 - pla - sta ZPPtr1 - phy - jsr CSH.fCall.Exec - plx restore returned type - rts - -.90 lda #CSH.E.SYNTAX - .HS 2C BIT ABS -.91 lda #CSH.E.TMISMATCH - sec - -.9 plx Discard function index - - plx - stx ZPPtr2+1 - plx - stx ZPPtr2 - plx - stx ZPPtr1+1 - plx - stx ZPPtr1 - -.99 rts - -*-------------------------------------- -CSH.fCall.Exec jmp (J.CSH.EXEC,x) -*-------------------------------------- -* Input: -* ZPFileBufPtr, A = Expected type -* Output: -* CS, A = EC -* CC, X = Var Type, Value on Stack -*-------------------------------------- -CSH.ExpEval ldx ZPPtr1 - phx - ldx ZPPtr1+1 local : used by lookup - phx - ldx ZPPtr2 local : VarType - phx - ldx ZPPtr2+1 local : BOP - phx - - sta ZPPtr2 local : expected type - - lda #$ff - pha -*-------------------------------------- -.10 jsr CSH.GetCharNB - bcs .19 - -.11 cmp #'(' - bne .20 - - jsr CSH.GetNextCharNB skip ( - bcs .19 - - lda ZPPtr2 - - jsr CSH.ExpEval - bcs .19 - stx ZPPtr2 - - jsr CSH.GetCharNB - bcs .19 - cmp #')' - bne .19 - - jsr CSH.GetNextCharNB skip ) - bcc .31 -.19 jmp .90 -*-------------------------------------- -.20 jsr CSH.IsLetter define, Fnc or Var ? - bcs .22 - - jsr CSH.GetDefine - bcc .10 - - jsr CSH.GetVar - bcs .21 - - ldx ZPPtr2 YA=VarID, X=expected var type (or 0=any) - - jsr CSH.GetVarValueOnStack Y,A = VarID, Get value on stack - bcs .29 - - stx ZPPtr2 store real var type - bra .30 - -.21 lda ZPPtr2 var type - jsr CSH.fCall X = function index - bcs .29 - - stx ZPPtr2 store real var type - bra .30 - -.22 jsr CSH.IsDigit10 number ? - bcs .24 - - ldx ZPPtr2 - bne .23 - - ldx #CSH.T.INT - stx ZPPtr2 - -.23 jsr CSH.GetNumOnStack - bcs .29 - bra .30 - -.24 cmp #'"' String literal - bne .90 - jsr CSH.AddContCharP -.29 bcs .99 -*-------------------------------------- -.30 jsr CSH.GetCharNB - bcs .90 - -.31 cmp #',' - beq .80 - cmp #')' - beq .80 - cmp #';' - beq .80 - - jsr CSH.IsOPChar - bcs .90 - - >LDYA L.CSH.BOPS we are at V1 op1 V2 op2... - jsr CSH.LookupOP - bcs .90 - - stx ZPPtr2+1 save OP(n) - -.32 pla get OP(n-1) - bmi .33 $ff.... - - cmp ZPPtr2+1 - bcc .33 OP(n) has precedence, on stack : V1,V2 - - tax OP(n-1) has precedence... - - lda ZPPtr2 Var Type - jsr CSH.BOP.EXEC compute V(n-1) V(n) - bcc .32 - - bcs .99 - -.33 pha push back OP(n-1) - lda ZPPtr2+1 get OP(n) - pha push OP(n) on stack - - jmp .10 go check for next token -*-------------------------------------- -.80 plx any OP on stack ? - bmi .88 - - lda ZPPtr2 Var Type - jsr CSH.BOP.EXEC - bcc .80 - - bcs .99 - -.90 lda #CSH.E.SYNTAX - -.99 plx - bpl .99 - - sec - .HS 90 BCC -.88 clc - - ldx ZPPtr2 X = Var Type - - ply - sty ZPPtr2+1 - ply - sty ZPPtr2 - ply - sty ZPPtr1+1 - ply - sty ZPPtr1 - rts -*-------------------------------------- -CSH.AddContCharP - ldy #0 - -.1 jsr CSH.GetNextChar - bcs .9 - cmp #C.CR - beq .9 - cmp #'"' - beq .2 - sta (ZPCSHConst),y - iny - bra .1 - -.2 lda #0 - sta (ZPCSHConst),y - >PUSHW ZPCSHConst Push PTR on stack - - tya - sec - adc ZPCSHConst - sta ZPCSHConst - bcc .3 - inc ZPCSHConst+1 -.3 jsr CSH.GetNextChar Skip " - - clc - rts -.9 lda #CSH.E.SYNTAX - sec - rts -*-------------------------------------- CSH.SavePtr >LDYA ZPFileBufPtr >STYA.G CSH.BufPtrSave rts @@ -907,74 +411,22 @@ CSH.ZPPtr1AddAp1 inc ZPPtr1+1 .1 rts *-------------------------------------- -CSH.GetNumOnStack - txa - beq .99 - -.10 cpx #CSH.T.FLOAT - bcc .1 - bne .99 - - >PUSHW ZPFileBufPtr - >PUSHWI ZPFileBufPtr - >SYSCALL StrToF - clc - rts - -.1 >PUSHW ZPFileBufPtr - >PUSHWI ZPFileBufPtr - >PUSHBI 10 - phx - cpx #CSH.T.UCHAR - bcc .2 - >SYSCALL StrToUL - bra .3 - -.2 >SYSCALL StrToL - -.3 plx - bcs .9 - - lda CSH.TYPESIZE,x - cmp #4 - beq .8 - - cmp #2 - bne .4 - ldy #1 - >PULLA - sta (pStack),y - >PULLA - sta (pStack),y - clc - rts - -.4 >PULLA - inc pStack - inc pStack - sta (pStack) -.8 clc -.9 rts - -.99 lda #CSH.E.TMISMATCH - sec - rts -*-------------------------------------- * Input : ZPFileBufPtr * Output : Y,A = VarID *-------------------------------------- -CSH.AddVar >LDA.G CSH.hSymbols +CSH.AddSymbol >LDA.G CSH.hSymbols jsr CSH.NewKey bcs .9 >STYA ZPVarID ldx ZPVarType - jsr CSH.GetVarSize + jsr CSH.GetVarSize CS if pointer sta ZPVarSizeOf + +* clc / sec lda ZPCSHData sta ZPVarDataPtr - clc adc ZPVarSizeOf sta ZPCSHData @@ -1008,6 +460,32 @@ CSH.TMISMATCH lda #CSH.E.TMISMATCH sec rts *-------------------------------------- +CSH.AddFunction lda #CSH.Q.FUNC + tsb ZPVarType + + jsr CSH.GetNextCharNB Skip ( + bcs .9 + +.1 cmp #')' + beq .5 + + >LDYA L.CSH.TYPES + jsr CSH.LookupID + bcs .9 + + + +.5 jsr CSH.GetNextCharNB Skip ) + + jsr CSH.SkipLine + + clc + rts + +.9 lda #CSH.E.SYNTAX + sec +.99 rts +*-------------------------------------- CSH.NewKey >PUSHA >PUSHW ZPFileBufPtr >SYSCALL SListNewKey @@ -1434,9 +912,12 @@ CSH.GetVarSize txa tax lda CSH.TYPESIZE,x plx + + clc rts -.2 lda #2 +.2 sec +1 for hMem Storage + lda #2 rts *-------------------------------------- DEBUG.VAR >SYSCALL PutChar diff --git a/BIN/CSH.S.EXP.txt b/BIN/CSH.S.EXP.txt new file mode 100644 index 00000000..122fc1db --- /dev/null +++ b/BIN/CSH.S.EXP.txt @@ -0,0 +1,247 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* Input: +* ZPFileBufPtr, A = Expected type +* Output: +* CS, A = EC +* CC, X = Var Type, Value on Stack +*-------------------------------------- +CSH.ExpEval ldx ZPPtr1 + phx + ldx ZPPtr1+1 local : used by lookup + phx + ldx ZPPtr2 local : VarType + phx + ldx ZPPtr2+1 local : BOP + phx + + sta ZPPtr2 local : expected type + + lda #$ff + pha +*-------------------------------------- +.10 jsr CSH.GetCharNB + bcs .19 + +.11 cmp #'(' + bne .20 + + jsr CSH.GetNextCharNB skip ( + bcs .19 + + lda ZPPtr2 + + jsr CSH.ExpEval + bcs .19 + stx ZPPtr2 + + jsr CSH.GetCharNB + bcs .19 + cmp #')' + bne .19 + + jsr CSH.GetNextCharNB skip ) + bcc .31 +.19 jmp .90 +*-------------------------------------- +.20 jsr CSH.IsLetter define, Fnc or Var ? + bcs .22 + + jsr CSH.GetDefine + bcc .10 + + jsr CSH.GetVar + bcs .21 + + ldx ZPPtr2 YA=VarID, X=expected var type (or 0=any) + + jsr CSH.GetVarValueOnStack Y,A = VarID, Get value on stack + bcs .29 + + stx ZPPtr2 store real var type + bra .30 + +.21 lda ZPPtr2 var type + jsr CSH.fCall X = function index + bcs .29 + + stx ZPPtr2 store real var type + bra .30 + +.22 jsr CSH.IsDigit10 number ? + bcs .24 + + ldx ZPPtr2 + bne .23 + + ldx #CSH.T.INT + stx ZPPtr2 + +.23 jsr CSH.GetNumOnStack + bcs .29 + bra .30 + +.24 cmp #'"' String literal + bne .90 + jsr CSH.AddContCharP +.29 bcs .99 +*-------------------------------------- +.30 jsr CSH.GetCharNB + bcs .90 + +.31 cmp #',' + beq .80 + cmp #')' + beq .80 + cmp #';' + beq .80 + + jsr CSH.IsOPChar + bcs .90 + + >LDYA L.CSH.BOPS we are at V1 op1 V2 op2... + jsr CSH.LookupOP + bcs .90 + + stx ZPPtr2+1 save OP(n) + +.32 pla get OP(n-1) + bmi .33 $ff.... + + cmp ZPPtr2+1 + bcc .33 OP(n) has precedence, on stack : V1,V2 + + tax OP(n-1) has precedence... + + lda ZPPtr2 Var Type + jsr CSH.BOP.EXEC compute V(n-1) V(n) + bcc .32 + + bcs .99 + +.33 pha push back OP(n-1) + lda ZPPtr2+1 get OP(n) + pha push OP(n) on stack + + jmp .10 go check for next token +*-------------------------------------- +.80 plx any OP on stack ? + bmi .88 + + lda ZPPtr2 Var Type + jsr CSH.BOP.EXEC + bcc .80 + + bcs .99 + +.90 lda #CSH.E.SYNTAX + +.99 plx + bpl .99 + + sec + .HS 90 BCC +.88 clc + + ldx ZPPtr2 X = Var Type + + ply + sty ZPPtr2+1 + ply + sty ZPPtr2 + ply + sty ZPPtr1+1 + ply + sty ZPPtr1 + rts +*-------------------------------------- +CSH.AddContCharP + ldy #0 + +.1 jsr CSH.GetNextChar + bcs .9 + cmp #C.CR + beq .9 + cmp #'"' + beq .2 + sta (ZPCSHConst),y + iny + bra .1 + +.2 lda #0 + sta (ZPCSHConst),y + >PUSHW ZPCSHConst Push PTR on stack + + tya + sec + adc ZPCSHConst + sta ZPCSHConst + bcc .3 + inc ZPCSHConst+1 +.3 jsr CSH.GetNextChar Skip " + + clc + rts +.9 lda #CSH.E.SYNTAX + sec + rts +*-------------------------------------- +CSH.GetNumOnStack + txa + beq .99 + +.10 cpx #CSH.T.FLOAT + bcc .1 + bne .99 + + >PUSHW ZPFileBufPtr + >PUSHWI ZPFileBufPtr + >SYSCALL StrToF + clc + rts + +.1 >PUSHW ZPFileBufPtr + >PUSHWI ZPFileBufPtr + >PUSHBI 10 + phx + cpx #CSH.T.UCHAR + bcc .2 + >SYSCALL StrToUL + bra .3 + +.2 >SYSCALL StrToL + +.3 plx + bcs .9 + + lda CSH.TYPESIZE,x + cmp #4 + beq .8 + + cmp #2 + bne .4 + ldy #1 + >PULLA + sta (pStack),y + >PULLA + sta (pStack),y + clc + rts + +.4 >PULLA + inc pStack + inc pStack + sta (pStack) +.8 clc +.9 rts + +.99 lda #CSH.E.TMISMATCH + sec + rts +*-------------------------------------- +MAN +SAVE usr/src/bin/csh.s.exp +LOAD usr/src/bin/csh.s +ASM diff --git a/BIN/CSH.S.KW.txt b/BIN/CSH.S.KW.txt new file mode 100644 index 00000000..42f523bb --- /dev/null +++ b/BIN/CSH.S.KW.txt @@ -0,0 +1,355 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +* Built in Keywords +*-------------------------------------- +CSH.KW.JMP txa + >STA.G CSH.CmdSave + jmp (J.CSH.KW,x) +*-------------------------------------- +CSH.WHILE +CSH.IF jsr CSH.GetCharNB + bcs .9 + cmp #'(' + bne .9 + jsr CSH.GetNextCharNB + bcs .9 + + lda #0 Any var type + jsr CSH.ExpEval + bcs .99 + jsr CSH.GetCharNB + bcs .99 + cmp #')' + bne .9 + jsr CSH.GetNextCharNB skip ')' + bcs .99 + cmp #'{' + bne .9 + jsr CSH.GetNextCharNB Skip '{' + bcs .99 + + jsr CSH.IsValue0 X = var type from ExpEval + bcc .6 Value=0, skip {{....}} + + >LDA.G CSH.CmdSave + beq .1 IF + + pha + >LDA.G CSH.BufPtrSave+1 WHILE : push loop address... + jsr CSH.Push + >LDA.G CSH.BufPtrSave + jsr CSH.Push + pla +.1 jsr CSH.Push + bcs .99 + lda #'}' Tell '}' is expected at the end of block + jsr CSH.Push + bcs .99 + + rts +.6 jsr CSH.SkipBlock + + bcc .99 +.9 lda #CSH.E.SYNTAX + sec +.99 rts +*-------------------------------------- +*CSH.Keyword.Start +* >LDA.G CSH.CmdSave get back Token ("IF" or "WHILE") +* tax +* jmp (J.CSH.KW.START,x) +*-------------------------------------- +*CSH.IF.START jmp CSH.Push Push "IF" Token +*-------------------------------------- +*CSH.WHILE.START pha +* >LDA.G CSH.BufPtrSave+1 WHILE : push loop address... +* jsr CSH.Push +* >LDA.G CSH.BufPtrSave +* jsr CSH.Push +* pla +* jmp CSH.Push Push "WHILE" Token +*-------------------------------------- +CSH.IF.END clc + rts +*-------------------------------------- +CSH.WHILE.END jsr CSH.Pop + sta ZPFileBufPtr + jsr CSH.Pop + sta ZPFileBufPtr+1 + clc + rts +*-------------------------------------- +CSH.ELSE +*-------------------------------------- +CSH.DO +CSH.FOR +CSH.SWITCH +CSH.CASE +CSH.BREAK +CSH.CONTINUE +CSH.TYPEDEF +CSH.SIZEOF + lda #CSH.E.SYNTAX + sec + rts +*-------------------------------------- +CSH.STRUCT >ENTER 4 + + jsr CSH.GetCharNB + bcs .99 + + >LDA.G CSH.hTags + jsr CSH.NewKey + bcs .99 + + sta (pStack) + + + jsr CSH.GetNextCharNB + bcs .99 + cmp #'{' + bne .99 + +.1 jsr CSH.GetNextCharNB + bcs .99 + cmp #'}' + bne .1 + + jsr CSH.GetNextCharNB skip } + + clc +.99 >LEAVE + rts +*-------------------------------------- +* Built in Types +*-------------------------------------- +CSH.SIGNED sec + .HS 90 BCC +*-------------------------------------- +CSH.UNSIGNED clc + php + + jsr CSH.CheckSpace + bcs .9 + + >LDYA L.CSH.STYPES + jsr CSH.LookupID + + bcs .9 + + plp + bcs .8 + jmp (J.CSH.UTYPES,x) + +.8 jmp (J.CSH.STYPES,x) + +.9 plp + lda #CSH.E.SYNTAX + sec + rts +*-------------------------------------- +CSH.VOID ldx #CSH.T.VOID + bra CSH.TYPE +CSH.CHAR ldx #CSH.T.CHAR + bra CSH.TYPE +CSH.UCHAR ldx #CSH.T.UCHAR + bra CSH.TYPE +CSH.INT ldx #CSH.T.INT + bra CSH.TYPE +CSH.UINT ldx #CSH.T.UINT + bra CSH.TYPE +CSH.LONG ldx #CSH.T.LONG + bra CSH.TYPE +CSH.ULONG ldx #CSH.T.ULONG + bra CSH.TYPE + +CSH.FLOAT ldx #CSH.T.FLOAT + +CSH.TYPE stx ZPVarType + jsr CSH.CheckSpace + bcs .9 + +.11 cmp #'*' + bne .10 + + lda #CSH.Q.POINTER + tsb ZPVarType + jsr CSH.GetNextCharNB Skip * + bra .11 + +.10 jsr CSH.IsLetter + bcs .9 + + jsr CSH.AddSymbol add with undef value... + bcs .99 OOM or DUP + + jsr CSH.GetCharNB + bcs .9 + cmp #';' + beq .8 + + cmp #'=' + beq .2 + + cmp #'(' + bne .9 + + jmp CSH.AddFunction + +.2 jsr CSH.GetNextCharNB Skip = + bcs .9 + + lda ZPVarType + jsr CSH.ExpEval + bcs .99 + +.7 jsr CSH.SetVarValueFromStack X= Type, Set value to this var + bcs .99 + + jsr CSH.GetChar + bcs .9 + + cmp #';' + bne .9 + +.8 clc + rts + +.9 lda #CSH.E.SYNTAX + sec +.99 rts +*-------------------------------------- +* Input: +* ZPFileBufPtr, A = Expected type +* Output: +* CS, A = EC +* CC, Result on Stack, X = Type +*-------------------------------------- +CSH.fCall ldx ZPPtr1 + phx + ldx ZPPtr1+1 local : fdef + phx + ldx ZPPtr2 local : type + phx + ldx ZPPtr2+1 local : variadic size + phx + + sta ZPPtr2 save Type + stz ZPPtr2+1 Reset VARIADIC byte count + >LDYA L.CSH.FN + jsr CSH.LookupFN + phx X = function index + bcs .10 + + >STYA ZPPtr1 f() definition, starting at returned type + + jsr CSH.GetCharNB + bcs .10 + + cmp #'(' + bne .52 + jsr CSH.GetNextCharNB skip '(' +.10 bcs .90 + + lda ZPPtr2 + bne .11 + + lda (ZPPtr1) + sta ZPPtr2 + bra .1 expected type is 0, no check + +.11 cmp (ZPPtr1) Get Return value Type + bne .91 + +.1 jsr CSH.ZPPtr1Next advance to arg list type + + lda (ZPPtr1) get type of first arg + beq .7 end of list, go check ending ')' +*-------------------------------------- +.3 eor #CSH.T.VARIADIC if VARIADIC, don't advance to next arg and assume type = 0 + beq .4 + eor #CSH.T.VARIADIC restore type... +.4 jsr CSH.ExpEval A=0 if VARIADIC + bcs .9 X = Var Type + + lda (ZPPtr1) get current arg type + eor #CSH.T.VARIADIC + bne .5 + jsr CSH.GetVarSize X = Var Type + + clc make sure pointer only 2 bytes + adc ZPPtr2+1 + sta ZPPtr2+1 Add to byte count + bra .51 + +.5 jsr CSH.ZPPtr1Next + +.51 jsr CSH.GetCharNB + bcs .90 + + cmp #',' + bne .6 + + jsr CSH.GetNextCharNB Skip , + lda (ZPPtr1) + bne .3 Another ARG.... + +.52 bra .90 extra args....error + +.6 cmp #')' + bne .90 + lda (ZPPtr1) + beq .8 no more arg after ')', exit + eor #CSH.T.VARIADIC + bne .90 missing arg + + >PUSHB ZPPtr2+1 push VARIADIC byte count + bra .8 +.7 jsr CSH.GetCharNB + bcs .90 + cmp #')' + bne .90 + +.8 jsr CSH.GetNextCharNB Skip ) + + plx restore X = function index + ldy ZPPtr2 get type in Y + pla + sta ZPPtr2+1 + pla + sta ZPPtr2 + pla + sta ZPPtr1+1 + pla + sta ZPPtr1 + phy + jsr CSH.fCall.Exec + plx restore returned type + rts + +.90 lda #CSH.E.SYNTAX + .HS 2C BIT ABS +.91 lda #CSH.E.TMISMATCH + sec + +.9 plx Discard function index + + plx + stx ZPPtr2+1 + plx + stx ZPPtr2 + plx + stx ZPPtr1+1 + plx + stx ZPPtr1 + +.99 rts +*-------------------------------------- +CSH.fCall.Exec jmp (J.CSH.EXEC,x) +*-------------------------------------- +MAN +SAVE usr/src/bin/csh.s.kw +LOAD usr/src/bin/csh.s +ASM diff --git a/BIN/CSH.S.txt b/BIN/CSH.S.txt index 7d3724c9..be43796f 100644 --- a/BIN/CSH.S.txt +++ b/BIN/CSH.S.txt @@ -17,22 +17,22 @@ NEW .DUMMY .OR ZPBIN ZS.START -ZPFileBuf .BS 2 -ZPFileBufPtr .BS 2 -ZPFileBufPtrBak .BS 2 - - +ZPCSHCode .BS 2 ZPCSHConst .BS 2 ZPCSHData .BS 2 ZPCSHStack .BS 2 - ZPVarID .BS 2 -ZPVarDef .EQ * +ZPVarDef .EQ * ZPVarType .BS 2 ZPVarSizeOf .BS 2 ZPVarDataPtr .BS 2 +ZPFileBuf .BS 2 +ZPFileBufPtr .BS 2 +ZPFileBufPtrBak .BS 2 + + ZPhMacro .BS 1 ArgIndex .BS 1 ZPPtr1 .BS 2 @@ -67,6 +67,7 @@ L.MSG.ECHOCRLF .DA MSG.ECHOCRLF L.MSG.DEBUG .DA MSG.DEBUG L.MSG.ERR .DA MSG.ERR L.MSG.DBGVAR .DA MSG.DBGVAR +L.ENV.INCLUDE .DA ENV.INCLUDE .INB usr/src/bin/csh.r .DA 0 *-------------------------------------- @@ -293,6 +294,8 @@ PrintTraceMsg.3 >PUSHBI '>' rts *-------------------------------------- .INB usr/src/bin/csh.s.core + .INB usr/src/bin/csh.s.kw + .INB usr/src/bin/csh.s.exp .INB usr/src/bin/csh.s.exec *-------------------------------------- CS.END @@ -308,6 +311,8 @@ MSG.DEBUG .AZ "pStack=%H" MSG.ERR .AZ "^\r\nLine #%D:" MSG.DBGVAR .AZ "K=%H, T=%H, S=%H, P=%H, V=%L\r\n" *-------------------------------------- +ENV.INCLUDE .AZ "INCLUDE" +*-------------------------------------- OptionList .AS "DdTt" OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace *-------------------------------------- diff --git a/BIN/FORMAT.S.txt b/BIN/FORMAT.S.txt index 56f5fd8c..357313d6 100644 --- a/BIN/FORMAT.S.txt +++ b/BIN/FORMAT.S.txt @@ -347,7 +347,10 @@ CS.RUN.LL.DISKII ldx #0 -.1 jsr CS.RUN.SeekToX +.1 jsr CS.RUN.CheckCtrlC + bcs .9 + + jsr CS.RUN.SeekToX bcs .9 >SLEEP @@ -423,7 +426,10 @@ CS.RUN.LL.DISKII.V .1 ldx #8 -.2 phx +.2 jsr CS.RUN.CheckCtrlC + bcs .9 + + phx jsr CS.RUN.LL.DISKII.VP plx bcs .9 @@ -662,6 +668,29 @@ CS.RUN.CheckOpt ldy #1 clc rts *-------------------------------------- +CS.RUN.CheckCtrlC + phx + phy + + ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL FEOF + bcs .9 + tay + bne .9 CC + + >SYSCALL GetChar + bcs .9 + + cmp #$03 Ctrl-C + beq .9 CS + + clc + +.9 ply + plx + rts +*-------------------------------------- CS.END *-------------------------------------- LIBBLKDEV .AZ "libblkdev" diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 14442faa..f423aeef 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -201,10 +201,13 @@ CS.RUN jsr CL.Init ldy #1 lda (ZPPtr1),y + cmp #'c' + beq .10 + cmp #'C' bne .1 - iny +.10 iny lda (ZPPtr1),y bne .1 @@ -228,14 +231,14 @@ CS.RUN jsr CL.Init *-------------------------------------- .2 jsr CMD.CD.HOME jsr HIS.Init - bcs CS.INIT.RTS +.99 bcs CS.INIT.RTS >PUSHW L.MSG.GREETINGS >PUSHB #K.VER >PUSHB /K.VER >PUSHBI 2 >SYSCALL PrintF - bcs CS.INIT.RTS + bcs .99 >LDYA L.HOME.PROFILE jsr IO.Load diff --git a/BIN/WC.S.txt b/BIN/WC.S.txt index 4aaa77b2..3c94bbd1 100644 --- a/BIN/WC.S.txt +++ b/BIN/WC.S.txt @@ -25,11 +25,16 @@ ZPFileStat .BS 2 ZPFullPath .BS 2 ZPRelPath .BS 2 - ZPLineBuf .BS 2 -bPause .BS 1 +ArgIndex .BS 1 +hSrcFullPath .BS 1 +hFile .BS 1 +hMem .BS 1 +bTabbed .BS 1 + +bPause .BS 1 bContinue .BS 1 bRecurse .BS 1 bChar .BS 1 @@ -61,6 +66,7 @@ CS.START cld .DA CS.QUIT L.MSG.USAGE .DA MSG.USAGE L.MSG.ERR .DA MSG.ERR +L.MSG.LONGTAB .DA MSG.LONGTAB L.MSG.LONG .DA MSG.LONG L.MSG.TOTAL .DA MSG.TOTAL .DA 0 @@ -68,13 +74,16 @@ L.MSG.TOTAL .DA MSG.TOTAL CS.INIT clc rts *-------------------------------------- -CS.RUN >INC.G ArgIndex +CS.RUN inc ArgIndex + lda ArgIndex >SYSCALL ArgV bcs .5 + >STYA ZPPtr1 lda (ZPPtr1) cmp #'-' bne .4 + jsr CS.RUN.CheckOpt bcc CS.RUN @@ -121,8 +130,7 @@ CS.RUN >INC.G ArgIndex >SYSCALL GetMem bcs .99 >STYA ZPFullPath - txa - >STA.G hSrcFullPath + stx hSrcFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr @@ -146,8 +154,7 @@ CS.RUN >INC.G ArgIndex >SYSCALL GetMem bcs .99 >STYA ZPLineBuf - txa - >STA.G hMem + stx hMem *-------------------------------------- CS.RUN.LOOP ldy #S.PS.hStdIn lda (pPS),y @@ -205,13 +212,12 @@ CS.RUN.PIPE >LDYAI 256 >SYSCALL GetMem bcs .99 >STYA ZPLineBuf - txa - >STA.G hMem + stx hMem ldy #S.PS.hStdIn lda (pPS),y - >STA.G hFile + sta hFile jsr CS.RUN.FILE.LOOP jsr CS.RUN.PrintFstat @@ -280,7 +286,7 @@ CS.RUN.FILE jsr FilterMatch CS.RUN.FILE.LOOP .1 >PUSHWI 256 >PUSHW ZPLineBuf - >LDA.G hFile + lda hFile >SYSCALL fgets bcs .8 @@ -363,15 +369,17 @@ CS.RUN.OpenFile ldx #12 >SYSCALL FOpen bcs .9 - >STA.G hFile + sta hFile .9 rts *-------------------------------------- CS.RUN.CloseFile - >LDA.G hFile + lda hFile >SYSCALL FClose bcs .9 - >STZ.G hFile + + stz hFile + .9 rts *-------------------------------------- CS.RUN.IncFChar phy @@ -417,10 +425,33 @@ CS.RUN.AddFstat2Tstat rts *-------------------------------------- CS.RUN.PrintFstat + sec + bit bTotal + bmi .19 + + ldx #0 + + bit bWord + bpl .10 + + inx + +.10 bit bLine + bpl .11 + + inx + +.11 bit bChar + + inx + +.12 cpx #2 +.19 ror bTabbed + bit bWord bpl .1 - >PUSHW L.MSG.LONG + jsr CS.RUN.PUSHFMT >PUSHL.G fWordCount >PUSHBI 4 >SYSCALL PrintF @@ -429,7 +460,7 @@ CS.RUN.PrintFstat .1 bit bLine bpl .2 - >PUSHW L.MSG.LONG + jsr CS.RUN.PUSHFMT >PUSHL.G fLineCount >PUSHBI 4 >SYSCALL PrintF @@ -438,7 +469,7 @@ CS.RUN.PrintFstat .2 bit bChar bpl .3 - >PUSHW L.MSG.LONG + jsr CS.RUN.PUSHFMT >PUSHL.G fCharCount >PUSHBI 4 >SYSCALL PrintF @@ -450,9 +481,18 @@ CS.RUN.PrintFstat CS.RUN.PrintFstat.RTS rts *-------------------------------------- +CS.RUN.PUSHFMT bit bTabbed + bmi .1 + + >PUSHW L.MSG.LONG + rts + +.1 >PUSHW L.MSG.LONGTAB + rts +*-------------------------------------- CS.RUN.PrintTstat clc - lda bTotal + bit bTotal bpl CS.RUN.PrintFstat.RTS bit bWord @@ -496,11 +536,11 @@ CS.QUIT jsr LeaveSubDir beq .1 >SYSCALL FreeMem -.1 >LDA.G hSrcFullPath +.1 lda hSrcFullPath beq .2 >SYSCALL FreeMem -.2 >LDA.G hMem +.2 lda hMem beq .8 >SYSCALL FreeMem @@ -542,16 +582,13 @@ MSG.USAGE .AS "Usage : WC File(s) (*,? wildcards allowed)\r\n" .AS " -L : Print the LINE counts\r\n" .AZ " -W : Print the WORD counts\r\n" MSG.ERR .AZ "[%h]\r\n" -MSG.LONG .AZ "%10L " +MSG.LONG .AZ "%L " +MSG.LONGTAB .AZ "%10L " MSG.TOTAL .AZ "(total)" *-------------------------------------- .DUMMY .OR 0 DS.START -ArgIndex .BS 1 - -bPrintTotal .BS 1 - fCharCount .BS 4 fLineCount .BS 4 fWordCount .BS 4 @@ -560,15 +597,11 @@ tCharCount .BS 4 tLineCount .BS 4 tWordCount .BS 4 -hSrcFullPath .BS 1 -hFile .BS 1 -hMem .BS 1 - .INB usr/src/bin/x.fileenum.g DS.END .ED *-------------------------------------- MAN -SAVE USR/SRC/BIN/WC.S +SAVE usr/src/bin/wc.s ASM diff --git a/INCLUDE/stdio.h.txt b/INCLUDE/stdio.h.txt new file mode 100644 index 00000000..3a82cff7 --- /dev/null +++ b/INCLUDE/stdio.h.txt @@ -0,0 +1,41 @@ +NEW + AUTO 3,1 + +#DEFINE O_RDONLY 1 +#DEFINE O_WRONLY 2 +#DEFINE O_RDWR 3 +#DEFINE O_TRUNC 4 +#DEFINE O_APPEND 8 +#DEFINE O_TEXT 64 +#DEFINE O_CREATE 128 + +fastcall int putchar(short int); +// int fputc ( hFILE stream , short int character ); +fastcall int puts(const char*); +// int fputs (hFILE stream, const char * str ); +// char *fgets(hFILE stream, char * s, int n); +short int getchar(); +fastcall short int getc(short int); +// short int ungetc(short int c, short int ); + +short int fopen( const char*,short int,short int,int); +int fclose(short int); +// int fread (short int stream, void * ptr, int count ); +// int fwrite (short int stream, const void * ptr, int count ); +fastcall int fflush(short int); +// int fseek( short int stream, long offset, short int whence ); +fastcall int feof(short int); +fastcall long ftell(short int); +fastcall int remove(const char*); +int rename(const char*,const char*); + +int printf(const char*,...); +int fprintf(short int,const char*,...); +int sprintf(char*,const char*,...); + +int scanf(const char*,...); +int fscanf(short int,const char*,...); +int sscanf(const char*,const char*,...); + +MAN +TEXT include/stdio.h diff --git a/INCLUDE/stdlib.h.txt b/INCLUDE/stdlib.h.txt new file mode 100644 index 00000000..4e760f72 --- /dev/null +++ b/INCLUDE/stdlib.h.txt @@ -0,0 +1,22 @@ +NEW + AUTO 3,1 + +float strtof(const char*,char**); +float atof(const char*); + +long strtol(const char*,char**,int); +unsigned long strtoul(const char*,char**,int); + +fastcall long atol(const char*); +fastcall int atoi(const char*); + +char *realpath(const char*,char*); +char *expand(const char*,char*); + +int setenv(const char*,const char*); +char *getenv(const char*, char*); +int putenv(char*); +int unsetenv(const char*); + +MAN +TEXT include/stdlib.h diff --git a/INCLUDE/string.h.txt b/INCLUDE/string.h.txt new file mode 100644 index 00000000..09f21356 --- /dev/null +++ b/INCLUDE/string.h.txt @@ -0,0 +1,13 @@ +NEW + AUTO 3,1 + +fastcall int strlen(char*); +// char* strcat(char*,const char*); +// char* strcpy(char*,const char*); +fastcall char* strdup (char*); +fastcall char* strupr (char*); +fastcall char* strlwr (char*); +// int strcmp(const char *s1, const char *s2); +// int strcasecmp(const char *s1, const char *s2); +MAN +TEXT include/string.h diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index 8a808cfa..c8a13b7d 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -188,10 +188,8 @@ CS.RUN.EXEC >PUSHEA.G Username stz ZPNewSID .8 ldx ZPNewSession - lda S.Table.hSID-1,x stz S.Table.hSID-1,x stz S.Table.hFILE-1,x - >SYSCALL FreeMem ldy #S.PS.hSession lda ZPOldSession diff --git a/SYS/KERNEL.S.ARG.txt b/SYS/KERNEL.S.ARG.txt index 6569525c..4555bb0e 100644 --- a/SYS/KERNEL.S.ARG.txt +++ b/SYS/KERNEL.S.ARG.txt @@ -191,6 +191,6 @@ K.ArgVDup >STYA ZPPtr1 .9 rts *-------------------------------------- MAN -SAVE USR/SRC/SYS/KERNEL.S.ARG -LOAD USR/SRC/SYS/KERNEL.S +SAVE usr/src/sys/kernel.s.arg +LOAD usr/src/sys/kernel.s ASM diff --git a/SYS/KERNEL.S.PWD.txt b/SYS/KERNEL.S.PWD.txt index 06cef914..26b240fe 100644 --- a/SYS/KERNEL.S.PWD.txt +++ b/SYS/KERNEL.S.PWD.txt @@ -24,7 +24,16 @@ K.GetPWUID K.GetGRGID >PULLW FORPNT >PULLB ZPPtr1+1 UID/GID - jmp K.SYSCALL.JMPX +*/-------------------------------------- +* # CloseSession +* ## C +* `int closesession(short int hSID);` +* ## ASM +* `>PUSHB hSID` +* `>SYSCALL CloseSession` +* ## RETURN VALUE +*\-------------------------------------- +K.CloseSession jmp K.SYSCALL.JMPX */-------------------------------------- * # OpenSession * ## C @@ -149,17 +158,6 @@ PWD.Flush >STYA PWD.FileSize .8 lda #$ff jmp K.freemem SELF MODIFIED -*/-------------------------------------- -* # CloseSession -* ## C -* `int closesession(short int hSID);` -* ## ASM -* `>PUSHB hSID` -* `>SYSCALL CloseSession` -* ## RETURN VALUE -*\-------------------------------------- -K.CloseSession >PULLA - jmp K.SYSCALL.JMPX *-------------------------------------- PWD.ETCPASSWD .AZ "${ROOT}etc/passwd" PWD.hUsrDB .BS 1 diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 934d6c36..8dd5c24b 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -199,7 +199,7 @@ PWDX.PutPW.1 jsr K.GetmemPtr jsr PWD.AppendRecord lda #0 - jsr PWD.StoreChar + jsr PWDX.StoreChar clc rts @@ -295,15 +295,15 @@ PWDX.OpenSession lda TXTPTR+1 bne .3 -.1 >LDYAI PWDX.ROOT.Size +.1 >LDYAI PWDX.ROOTSESSION.Size jsr K.GetMem bcs .9 >STYA ZPPtr1 - ldy #PWDX.ROOT.Size-1 + ldy #PWDX.ROOTSESSION.Size-1 -.2 lda PWDX.ROOT,y +.2 lda PWDX.ROOTSESSION,y sta (ZPPtr1),y dey bpl .2 @@ -311,7 +311,7 @@ PWDX.OpenSession txa clc rts - +*-------------------------------------- .3 jsr PWD.FindRecord bcs .9 @@ -334,26 +334,22 @@ PWDX.OpenSession dey bpl .5 - >LDYAI 256 TODO: compute S.SESSION size + jsr PWDX.GetSessionLen + jsr K.Getmem bcs .9 >STYA ZPPtr2 - stx .8+1 + phx - jsr PWD.Record2Session - -.8 lda #$ff SELF MODIFIED + jsr PWDX.Record2Session + pla clc - rts - - sec .9 rts *-------------------------------------- PWDX.CloseSession - sec - rts + jmp K.Freemem *-------------------------------------- * PRIVATE *-------------------------------------- @@ -456,74 +452,7 @@ PWD.FindRecord lda PWD.hUsrDB sec rts *-------------------------------------- -* USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR -*-------------------------------------- -PWD.Record2Session - ldy #0 - - jsr PWD.NextString skip USERNAME - jsr PWD.NextString skip PASSWORD - jsr PWD.GetByte get UID - sta ZPPtr1 - - iny - - jsr PWD.GetByte get GID - sta ZPPtr1+1 - - iny - - lda #0 - ldx ZPPtr1 - bne .1 - - ora #S.SESSION.P.ROOT - -.1 ldx ZPPtr1+1 - bne .2 - - ora #S.SESSION.P.SYSADMIN - -.2 jsr SHARED.PutCharPtr2 - - lda ZPPtr1 - jsr SHARED.PutCharPtr2 UID - - lda ZPPtr1+1 - jsr SHARED.PutCharPtr2 GID - - phy - - ldy #$ff - -.3 iny - lda (ZPPtr3),y - cmp #':' - beq .4 - - jsr SHARED.PutCharPtr2 - bra .3 - -.4 lda #0 - jsr SHARED.PutCharPtr2 - - ply - -.5 lda (ZPPtr3),y - cmp #C.CR - beq .8 - - cmp #':' - bne .6 - - lda #0 - -.6 jsr SHARED.PutCharPtr2 - iny - bra .5 - -.8 lda #0 - jmp SHARED.PutCharPtr2 +* Record : USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR *-------------------------------------- PWD.Record2PW ldy #0 @@ -632,6 +561,100 @@ PWD.Record2GR ldy #0 clc rts *-------------------------------------- +* Record : USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR +*-------------------------------------- +PWDX.GetSessionLen + ldy #0 + + jsr PWD.NextString USERNAME + tya + clc + adc #S.SESSION.NAME + tax + + jsr PWD.NextString skip PASSWORD + jsr PWD.NextString skip UID + jsr PWD.NextString skip GID + +.1 inx + iny + lda (ZPPtr3),y + beq .8 + + eor #C.CR + bne .1 + +.8 phx A = 0 + ply + rts +*-------------------------------------- +PWDX.Record2Session + ldy #0 + + jsr PWD.NextString skip USERNAME + jsr PWD.NextString skip PASSWORD + jsr PWD.GetByte get UID + sta ZPPtr1 + + iny + + jsr PWD.GetByte get GID + sta ZPPtr1+1 + + iny + + lda #0 + ldx ZPPtr1 + bne .1 + + ora #S.SESSION.P.ROOT + +.1 ldx ZPPtr1+1 + bne .2 + + ora #S.SESSION.P.SYSADMIN + +.2 jsr SHARED.PutCharPtr2 + + lda ZPPtr1 + jsr SHARED.PutCharPtr2 UID + + lda ZPPtr1+1 + jsr SHARED.PutCharPtr2 GID + + phy + + ldy #$ff + +.3 iny + lda (ZPPtr3),y + cmp #':' + beq .4 + + jsr SHARED.PutCharPtr2 + bra .3 + +.4 lda #0 + jsr SHARED.PutCharPtr2 + + ply + +.5 lda (ZPPtr3),y + cmp #C.CR + beq .8 + + cmp #':' + bne .6 + + lda #0 + +.6 jsr SHARED.PutCharPtr2 + iny + bra .5 + +.8 lda #0 + jmp SHARED.PutCharPtr2 +*-------------------------------------- PWD.NextString lda (ZPPtr3),y beq .8 @@ -708,44 +731,44 @@ PWD.GetRecordLen jsr PWD.StoreString lda #':' - jsr PWD.StoreChar + jsr PWDX.StoreChar ldy #S.PW.PASSWD jsr PWD.StoreString lda #':' - jsr PWD.StoreChar + jsr PWDX.StoreChar ldy #S.PW.UID jsr SHARED.TXTPTR.GetY - jsr PWD.StoreByte + jsr PWDX.StoreByte lda #':' - jsr PWD.StoreChar + jsr PWDX.StoreChar ldy #S.PW.GID jsr SHARED.TXTPTR.GetY - jsr PWD.StoreByte + jsr PWDX.StoreByte lda #':' - jsr PWD.StoreChar + jsr PWDX.StoreChar ldy #S.PW.GECOS jsr PWD.StoreString lda #':' - jsr PWD.StoreChar + jsr PWDX.StoreChar ldy #S.PW.DIR jsr PWD.StoreString lda #':' - jsr PWD.StoreChar + jsr PWDX.StoreChar ldy #S.PW.SHELL jsr PWD.StoreString lda #C.CR - jsr PWD.StoreChar + jsr PWDX.StoreChar txa PWD.GetRecordLen.RTS @@ -753,11 +776,11 @@ PWD.GetRecordLen.RTS *-------------------------------------- PWD.StoreString jsr SHARED.TXTPTR.GetY beq PWD.GetRecordLen.RTS - jsr PWD.StoreChar + jsr PWDX.StoreChar iny bra PWD.StoreString *-------------------------------------- -PWD.StoreByte php +PWDX.StoreByte php phx jsr MATH32.A2STR10NP plx @@ -768,10 +791,10 @@ PWD.StoreByte php .1 lda A2osX.NumStrBuf,y beq PWD.GetRecordLen.RTS iny - jsr PWD.StoreChar + jsr PWDX.StoreChar bra .1 *-------------------------------------- -PWD.StoreChar inx +PWDX.StoreChar inx bcc .9 Dry run, no store sta (ZPPtr3) inc ZPPtr3 @@ -779,14 +802,15 @@ PWD.StoreChar inx inc ZPPtr3+1 .9 rts *-------------------------------------- -PWDX.ROOT .DA #S.SESSION.P.ROOT +PWDX.ROOTSESSION + .DA #S.SESSION.P.ROOT .DA #0 UID .DA #0 GID .AZ "root" NAME .AZ "Root User" GECOS .AZ "${ROOT}root/" DIR .AZ "${ROOT}bin/sh" SHELL -PWDX.ROOT.Size .EQ *-PWDX.ROOT +PWDX.ROOTSESSION.Size .EQ *-PWDX.ROOTSESSION *-------------------------------------- PWDX.GROUP .AS "root:0" .DA #C.CR diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 0c450239..3cea3e7f 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -280,7 +280,7 @@ K.FGetS jsr PFT.CheckNodeA * # getchar (BLOCKING) * Get char from StdIn * ## C -* `int getchar ();` +* `short int getchar ( );` * ## ASM * **In:** * `>SYSCALL getchar` @@ -294,7 +294,7 @@ K.GetChar ldy #S.PS.hStdIn * # getc (BLOCKING) * Get char from Node * ## C -* `int getc ( hFILE stream );` +* `short int getc ( short int stream );` * ## ASM * **In:** * `lda stream` @@ -330,7 +330,7 @@ STDIO.Get.1 lda #0 * # ungetc * push byte back into input stream * ## C -* `int ungetc(short int c, hFILE stream); +* `short int ungetc(short int c, short int stream);` * ## ASM * `>PUSHB c` * `>PUSHB stream` @@ -395,7 +395,7 @@ K.FOpen jsr PFT.CheckPath4 * # FClose * Close a file * ## C -* int fclose ( hFILE stream ); +* `int fclose ( short int stream );` * ## ASM * **In:** * `lda stream` @@ -422,7 +422,7 @@ K.FClose jsr PFT.CheckNodeA * # FRead (BLOCKING) * Read bytes from file * ## C -* int fread (hFILE stream, void * ptr, int count ); +* `int fread (short int stream, void * ptr, int count );` * ## ASM * **In:** * `>PUSHWI count` @@ -443,7 +443,7 @@ K.FClose.RTS rts * # FWrite (BLOCKING) * Write bytes to file * ## C -* `int fwrite (hFILE stream, const void * ptr, int count );` +* `int fwrite ( short int stream, const void * ptr, int count );` * ## ASM * **In:** * `>PUSHWI count` @@ -475,7 +475,7 @@ K.FWrite.RET4 >RET 4 */-------------------------------------- * # FFlush * ## C -* int fflush(hFILE stream); +* `int fflush( short int stream );` * ## ASM * **In:** * `lda stream` @@ -496,7 +496,7 @@ STDIO.IOERR lda #MLI.E.IO * # FSeek * Set the file-position indicator for hFILE * ## C -* `int fseek(hFILE stream, long offset, short int whence);` +* `int fseek( short int stream, long offset, short int whence );` * ## ASM * **In:** * `>PUSHBI whence` @@ -566,7 +566,7 @@ K.FSeek.RTS rts * # FEOF * Test the end-of-file indicator for hFILE * ## C -* `int feof(hFILE stream);` +* `int feof( short int stream );` * ## ASM * **In:** * `lda stream` @@ -595,7 +595,7 @@ IO.EOF lda (pFD) * # FTell * Return the current value of the file-position indicator * ## C -* `long ftell(hFILE stream);` +* `long ftell( short int stream );` * ## ASM * **In:** * `lda stream` @@ -623,7 +623,7 @@ K.FTell jsr PFT.CheckNodeA * # Remove * Remove a file or directory * ## C -* int remove(const char *pathname); +* `int remove ( const char *pathname );` * ## ASM * **In:** * `>LDYA pathname` @@ -639,7 +639,7 @@ K.Remove jsr PFT.CheckPathYA * # Rename * Rename a file * ## C -* `int rename(const char *oldpath, const char *newpath);` +* `int rename ( const char * oldpath, const char * newpath );` * ## ASM * **In:** * `>PUSHW oldpath` diff --git a/SYS/KERNEL.S.STDIO2.S.txt b/SYS/KERNEL.S.STDIO2.S.txt index 24dcca76..75537602 100644 --- a/SYS/KERNEL.S.STDIO2.S.txt +++ b/SYS/KERNEL.S.STDIO2.S.txt @@ -414,8 +414,8 @@ PrintF.PutC.RTS rts * # SScanF * Read formatted data from string * ## C -* `int scanf(const char *format, ...);` -* `int fscanf(short int stream, const char *format, ...);` +* `int scanf( const char *format, ... );` +* `int fscanf( short int stream, const char *format, ... );` * `int sscanf ( const char *s, const char *format, ... );` * ## ASM * **In:** diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 05671d7b..0b5706e0 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -4,7 +4,7 @@ NEW * # StrToF * Convert String to 40 bits Float * ## C -* `float strtof (const char* str, char** endptr);` +* `float strtof (const char* str, char** endptr );` * ## ASM * **In:** * `>PUSHW str` @@ -27,7 +27,7 @@ K.StrToF >PULLW ZPPtr1 * # AToF * Convert String to 40 bits Float * ## C -* `float atof (const char* str);` +* `float atof ( const char* str );` * ## ASM * **In:** * `>LDYA str` diff --git a/SYS/KERNEL.S.STRING.txt b/SYS/KERNEL.S.STRING.txt index 9ba928cf..9174df8a 100644 --- a/SYS/KERNEL.S.STRING.txt +++ b/SYS/KERNEL.S.STRING.txt @@ -74,8 +74,10 @@ K.StrCpy clc */-------------------------------------- * # StrDup * Create a new copy of this C-String +* ## C +* `char * strdup ( char * str);` +* ## ASM * Y,A = Ptr to source C-String -* ## RETURN VALUE * CC : success * Y,A = PTR to String * X = hMem (C-String)