From f6050138332b9365d70113f85d7f9bb76c745289 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Mon, 18 Jan 2016 10:49:28 +0800 Subject: [PATCH] *polished shell implementation code. --- HISTORY | 3 + core/my_basic.c | 18 ++++- output/my_basic.exe | Bin 349696 -> 351744 bytes shell/main.c | 161 +++++++++++++++++++++++++------------------- 4 files changed, 110 insertions(+), 72 deletions(-) diff --git a/HISTORY b/HISTORY index 38decf1..fd3b30d 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Jan. 18 2016 +Polished shell implementation code + Jan. 17 2016 Added source file information to error handling Fixed a memory leak with sub routine which returns a string diff --git a/core/my_basic.c b/core/my_basic.c index c4a27b2..85648a5 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -549,9 +549,16 @@ MBAPI const size_t MB_SIZEOF_HTN = _MB_MEM_TAG_SIZE + sizeof(_ht_node_t); MBAPI const size_t MB_SIZEOF_HTA = _MB_MEM_TAG_SIZE + sizeof(_ht_node_t*) * _HT_ARRAY_SIZE_DEFAULT; MBAPI const size_t MB_SIZEOF_OBJ = _MB_MEM_TAG_SIZE + sizeof(_object_t); MBAPI const size_t MB_SIZEOF_FUN = _MB_MEM_TAG_SIZE + sizeof(_func_t); -MBAPI const size_t MB_SIZEOF_ARR = _MB_MEM_TAG_SIZE + sizeof(_array_t); MBAPI const size_t MB_SIZEOF_VAR = _MB_MEM_TAG_SIZE + sizeof(_var_t); +#ifdef MB_ENABLE_USERTYPE_REF +MBAPI const size_t MB_SIZEOF_UTR = _MB_MEM_TAG_SIZE + sizeof(_usertype_ref_t); +#endif /* MB_ENABLE_USERTYPE_REF */ +MBAPI const size_t MB_SIZEOF_ARR = _MB_MEM_TAG_SIZE + sizeof(_array_t); MBAPI const size_t MB_SIZEOF_LBL = _MB_MEM_TAG_SIZE + sizeof(_label_t); +#ifdef MB_ENABLE_COLLECTION_LIB +MBAPI const size_t MB_SIZEOF_LST = _MB_MEM_TAG_SIZE + sizeof(_list_t); +MBAPI const size_t MB_SIZEOF_DCT = _MB_MEM_TAG_SIZE + sizeof(_dict_t); +#endif /* MB_ENABLE_COLLECTION_LIB */ MBAPI const size_t MB_SIZEOF_RTN = _MB_MEM_TAG_SIZE + sizeof(_routine_t); #ifdef MB_ENABLE_CLASS MBAPI const size_t MB_SIZEOF_CLS = _MB_MEM_TAG_SIZE + sizeof(_class_t); @@ -564,9 +571,16 @@ MBAPI const size_t MB_SIZEOF_HTN = sizeof(_ht_node_t); MBAPI const size_t MB_SIZEOF_HTA = sizeof(_ht_node_t*) * _HT_ARRAY_SIZE_DEFAULT; MBAPI const size_t MB_SIZEOF_OBJ = sizeof(_object_t); MBAPI const size_t MB_SIZEOF_FUN = sizeof(_func_t); -MBAPI const size_t MB_SIZEOF_ARR = sizeof(_array_t); MBAPI const size_t MB_SIZEOF_VAR = sizeof(_var_t); +#ifdef MB_ENABLE_USERTYPE_REF +MBAPI const size_t MB_SIZEOF_UTR = sizeof(_usertype_ref_t); +#endif /* MB_ENABLE_USERTYPE_REF */ +MBAPI const size_t MB_SIZEOF_ARR = sizeof(_array_t); MBAPI const size_t MB_SIZEOF_LBL = sizeof(_label_t); +#ifdef MB_ENABLE_COLLECTION_LIB +MBAPI const size_t MB_SIZEOF_LST = sizeof(_list_t); +MBAPI const size_t MB_SIZEOF_DCT = sizeof(_dict_t); +#endif /* MB_ENABLE_COLLECTION_LIB */ MBAPI const size_t MB_SIZEOF_RTN = sizeof(_routine_t); #ifdef MB_ENABLE_CLASS MBAPI const size_t MB_SIZEOF_CLS = sizeof(_class_t); diff --git a/output/my_basic.exe b/output/my_basic.exe index a25c20e5d6e6711d4d08831b5fd1eee7aab4fd4f..2046b2f65a3fe38f22a9109daf409ac10f09752a 100755 GIT binary patch delta 64075 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

!TOF`j;z~8jWEy>JxoraX($*A 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%0A&Zg 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 Ooj07DI|l@uX8#A6D}>kp delta 61422 zcmcFs34Bw<*3S(AN-5kF(!GTMW#0;AE2WT9k{0MnY0K6^5wKKHkc1slOd^C!wK{6t z#pS){hT=m7ajS|H6w9Iy5I5fY)OTZ1QPfui$@f2VZ_>0BAL76^vnKS2{nK^Uj z%-pJ1BC4K_*cl@9eErnj#TxbBX^mFsD0J3njtLsgO>KB==5aPaC>G+`CZSh{JzX^# zQ%9|4*=;@Iv^zVpcZ5-)@kfwZkG#iNsJ2_@`}-ky7EuH6JkCaG`wALXhQC^NGydw> zGuqhB1V>ZVR--ZCIdRuX!)G@Hg2D;a}T#eqqvx&Rdbb>3q_c6n5~i z@hg+Yx^C0?{02N%Y&u_a2G8q|=UY6l*>ry1cX-a;biV3)JPS9S*PO$1>ZbGCf5bBb z`G3YU6;B_Y$(znE)1_;y0|BoCp1ttwjAz^?`*~AW1iEfIuaCg9BLGL^*(SO6tvzU* z=B-1`{{diPdH`X4e+nxI*C0#?>j&UT2-6b?>j&ZqgwH17351so!xIRfrRP*&nlu~% zJdY&f35@ec;0cUtM&SvJ^`r3w#zuO^p~YkH1j0!vcmiP!`@gP9cA{N!ZJl{15w6bs zJkhPryobnEXMTmKR%fmyqScxA5zXq%2Z&^K=0n7RI`a`CRGs+)qFbH$B$27k{4r6j z&U~7PT4(;8XjW&IiDGr;GeodD^VzeJ^a%Z7JBQXdFPhzNh|&J*8MfPSdSJQ6*10aT zJRFp)%Up=R8Y$-oareqD;_d>yG&#(jw|J4eWa%RJsvFpw5rbmglM=I~?~-fX(-TJ^ zJg!8t7^Sq;XVW!I7n#g%jO@l{M(!47vhb)I_0(i*MjB_}xHNqPV^JfuWnFf?6E#xM zMujmUCQ4iNJ&TQ*1<|y{TpMNRg!(&e=`~SP*~N9xI>L9fVN{yt96J~Do)(WcV;`Gk z5S=GNG#bbGuA;M^2SRLF(nOtP(xoZf-hxdPib1I@AR`IG8oo66)fqx^8M)DQo2scP7DLX^wpCRXH;tPr&Ui+jF(ayH@a$pv0ijdN7-E! z-8u^W<@P9;oj6F2`_kt_q7m5)UXza69450)OrFR_^ojX}{4|8}Wl?x)=EOvd50iog!jmA|g zx(Yh5M|zCR-1!V)tfLqacvL$Rp9U54(bD+pI}-O$SIE-Ip%|1KMxu%_pxiQ|V!r$( z0I4Pa5yHCljI?(x^v5_~C#E4gWtAHMk}7xrWRO2yg_P_>g#^*^(EkHjfqL~eUa_24 zh2%*nNX-dxqd^T5l*W%~YKv`9KmZPtG$;aKx0DZTCIQjJbU<*dPfUdPeuG4!PJgfz zN~|U*_G^+Z zLT~$NKxuUOL}xi0-aAhSXE*ikZ`uZ00`7cCTW1PER!u_*8lEp{-67Ip`FbUF7=jEz z=}7gB!q(7<&V#n|1CL7wCd%)zZ+a&UI)*NRI{HZ`Dm4|gdXq-pN|jj?4UT;wM1mKP zp}100BKO?Hru0d+SFa`s4DsH;`%;Pg0Qwuf&m}-Ar$tu};Dg460xNa6s6(f2KpyWX z%9x#)Bs=~YpiOts#v0pH{2gA7&lcX@2>VlP33foGNu;4uK%^id{z@?KSr+3}XQj{QL(3o@2s8upTUxh02;y=- z#EKw@qHCnj?(?D9LD)(Ejc8K<76j@*2)aJG)P$hu%Ey}u&6`FkG@NOXxrq3b->fB_ z6>6f_qTO01G(_1&BI`6TYO>yYCyLWcaxH(oxmi6Ye&O{H2=6|Gm9F-N5=#S`_Zft# ztL;6q16?5gQ@kk>(^4{f0WeUGM4>XTzF93dD)1=DJD1?K4&h%)HsXx;Fl7sLnqfgH z-F{)8^@~p0zRRT9YkJCrQPmn%>{}J)8!cyV;GECKgsLPRvxX}v$E>Vx|3v$sFL>pq zmzqlZY!6W{mwQml(E0Z2pGG^|e8S%bDQ`c1tfa{o)oA&g5+EHz?-r!onR56?$a6q` z=W{$DiPE;jSI~~RWyy!++wK-L(if#~9olucze&(0T*tx(_SP1!WMc;Q)c$f8n=^1Q z)RV0PXW45enKTvo_*0UfFTF3-%b5@n8si(irvS~-DA@Wr>`5AH&x)q3m6*AC=Diq` zmCQSMW-VpbUm^3?7#x($Rmkl6$XX(`=?(!aAOXt`3?ZYC=vQmnc*6f83``F6`UYcb z*@8Re>ol%OE0?p61{JZ0)UIsI;B=usTRV92a08I8$J7xo`))!Ws2nt`9<+wigln+1 zktT;IQ|~Bc>a7{iejMCq*q}QUT4Gw&Ya~m5X+779`nfmuw}o>mbbp9?mFTik)fOYm z9@0y{bOAM1C!It)+ft-`NPKjU3t&~FV_&?>XH9Ud(`jvC();qe3)!wA1A2)nln<04 zGG59ZERB&)$R+z!Cg|`olHH=IVt;14s%Wa_$eWH~+cOe@#)L;(~$-9PF=+_d1 z$axu^ym`pENbEidcvB6dNtzos`M$;q(Yg>%G{`o^v2l&Yn#BRON1Y>3r({_JLPpb^ z6vitn)r5&IErOCIzRpt0-W%FYSi{Z?jgOhWkn}wIUqXL;*2E-U*Zr(VQXf0%mr0l< zEk?&$oz^{8bPWIyxf`e_Uz`;1bt zF@QiFXpdT4Z{x3g?=`6PAVQmb{d;LN>#6Z(yrS_^Zn@Ha>l==Zr5fAIO0$6>A6~`X zHGf5rP%FLx+Q}91g-)a(>^N^(ks#@+3EPqYmiYx7OK%AVejb}#%dz*zPe6R7Kw>S| z16hS)BOuj8v~4!P?yM$1i)6%OoapC<2-iXSN6amo-4E~ z&+ZMML-7&;)N-F9*gv-c4~6PNJ>qUGWrK#t3M*OW@JYfrwr%*tsBUVuiO43kcbh+! zEQ8(VGf=$ZnUK5&OctaJBX~@I&1a;yBvX>RJ?gjyO8v+bE#%n}B+r(Gl9qSl*5_&O zB@pfE#QOu}lup=zbuBa{sZlb2F6rGxA1e|rIi+`WY}I~JX~9YL{ea2*q!gr(Hjuu0r)hs@^4ipXy9i)`*vcg~rsm0FwZ zvz_saZP95G+KhgLS9c&$9U_^aPucz>O*VMLd5fBht6h;-YKip#7uPp`Oo{p85^RU06V+1$HFc|YqO%sujib`x!ijSIaZugXD4p~hUZhc& z2*Y4{0g$<6q&j%?6NDba#c;tLBU!LuuE_ow7L!T)OWau@?sT0ySLcfu^j*3}I*W0| zZM*3DNp#)?JeY5Ef?e8hu~Ji50!)3!C36S_7P1#3ovfY;d`z0HZ88WMU@-8*Hs>1J zB9Q!1b*><*F13xIrbo z9LkKQE`1?emXZXM>%%DtT`#>)(kb0c1x)#cC34Z->}bk-Z5?AH$4&$9wv1heth&@O zVevE}&;U0n(SSv8cXn-RmQc=irbcu%h@0OAZ1KgaWqBrzFVQtFkDW}-)c$gm^%$3? zEj!BQjf>Pib0=FpuD7=PQTEWdq1sC`*pYE#w2$>>p=mwBd%Oold7n;RJR9?Un>tM> zOHYqvF+fk8UqUeQ}B4U^jByO-&p3dy4nDRtUsvF_vhYn>%*%J}*Drg2o! zN2H^?EB7i2u4oKZbhh5-EAZD;XrY?)H1WJE|1=#h<}isSp?LRl81Lex*+zB|u=~Et z`c5#$(mb5b6#-=)wzZXyp^%(5la)_M5PCEFgha#4cYMBvuF4ovl6(w+ql($?3H`K3 z%c)L0aY%n0%c=?tYOmCVU{?CI-qx#QK2-$%X@^+I|`{E%M zlHM;gUd^zegpEz_rJZ|-%}q}mzIL)nQ;**X{LbJvdWuOiFvp~skLRphljeIoKb~sR zbOV1kBYjvNt51(C?&udnJgNJB-ni)ujjDyxhtLW_q<4ywe=2cXVS8F5;1RY}NT+^L zse#$aIPkEvEER{L`%R1WX06 zhKjE32q?PnygXui4ZUxs&cLM#qHe6tY%855nXg`-*zeq5DmEbzrpCwQAGf080&nzO z;1FE~%=LA=EOKb-c#Ra=KPkkgsZJN_Hs4OK_*XT?1c1;d36|pxt#p*kCF=Nfe4_jf zBtV)?)~PUQ1&x4Xq|R(*#sGT^#y!*(hOzH}bOe%-SL^e6{{twfJdA8%4G7C5LEe8N zRFRJ%jb|K1rXdVuIza253Qma5S}JxNK=xK6P%rnQQcqE&!-c;X&$>WQ3oG;;0ojRa zw+=zHV;vt$GRleebr}os7c&?s%ZVtl%&`v2Vx^Q3UzbtJj%FF`q|JsQ1={RR|9rcm zxi(w4SjxCuo24lU_3MkL`Bp%iErd2Z$pO6pq^`EYgaq;6JW|L?GwJ?GU_6O~n{xrY zF`Q$A&Cx6|JCWJVaUB6Jo_DC4eD;VrxvzvO94R5T5wHltC|+ZPiMtGqk>pAf%6yi~X6tZ#Ui=EDDYYC#|9zQMD{T5o55G~o~mR?gzsZ;P) zD@euSJ!M62(Rptx*m3qk#TT8d9c3#OU0V@ooy&g!Glk1g?~T%ab#O-=FA*sgxwjBz zV2*xkh@AhOVliC=8wL@7++Qe7>lg#WeQ*O(5KZK5YQR1W0lWb(Bhb`<{}pMgvJ!?B zz)s`m@8t-@`w{5+rywwJvT=q!19EIc$9^K2%TR<=NE1(nvH~5BNhfJ4sIZ%cMA5l~ zB!QE)>U=-ZNrF*zzQ5?4j({TY`Ml5EpUobf+^YjkkG4=yjvb!d)BXc^L)$RerlJIE zFW46vF|K~x6u*5e4Xk$~f@k4n7x}90Z{p^ExFKA0c7pMMxcQgXnaNE7&6s&z7j#O_ z&G`uY@45Nelx}$^$?C>?uc8x8}_-n=)6*O%k>81Gc*E%y*9^?UaH2Qx!GGiE0z&<F zWU->0k>Lj0py1eNve9=IjyJ|jeEQsK z*KL{0celoa<<%Jvjf+{;rs}QJRTqq+vk#)GE_4u`2|Vzv=rr)a%c8R*54~x{l&i)_lb_ z=4F&!K%8^{qiX3}b(?7!1FSXPJMky5(8G`(uuGalUZM$@_9LLuF2W86o_aiQklx@x zU^f+Ap8^Q#>+WUU^5gACc@-)`Pg4@L`MRcxku^a<&AAMV=c)^XZ3)3ds|f~hogct} zCIHd~7--ObEXKp+`N6r<1dWcU$6n1Jss%pZGU@JH-pWVZ9i#MjeNQ| zW096L|3OY@Z?rJy`j!O2tVfD` z@dZUN+BM}&K~5<{M{6aMp0Bq>=f6REsZ{^EzMLH`8DvlkJxQ?&_)lJ7;WK(;@i%(L ztVlIEl9Dq}yQH5cXTHGxHX{KU-kvce@_D7w=ZORU3|~CYI?U{g48vv?+Ia?BUlsT) zyh>Abd-dfeOhDKTtn^iwZZm1*=lVlf_eH}3QVS^-yK9yr$KS6pX{O;xVGn+;`6kUd zJpYX+rLDy;XpzEKDQCi@bfded(QUp6hOKB@So{*28Zs*z_!P}D2@Ba>vy2^!qhN;_ zFXigwZ1%>ikvhvHto@g7i)8xQ3BwkcG(Y2axB8^;lj{55)#oc}8pZElz{+OF35(d; z*@HSRiUiwKT#JwgKco7jaFY6NQJ?v08pY4T&rdmw#l?~> zq(n+vMoY1F%v5@}P{BSdHHLM?M4*tVgMqaz8=-5HuHso(7CWrMq)Ef?qidBXg}+9a z-hWh|J~fTvJ5;a-%c6yA+3vDj{B1XPbmUV$pCxrw*o_T!nR-YNSw!|GUCRpR4jY;7 zXly5LeiyCBBtu)BTta*>E$g?vY+O5OHe?}z*196*E?1lG}f}@k5XoYtt{C)4|@{x z20&Ei%!>=%t`^UEmTj6hPIyUhpz1P|cEDwzCsjwl zqorj=vM+s24Xl?#5zmg;2C|3ChXKO-{BPU&qlL#=+Wf33APFA}90z>p2sL*uHfd&} z_3bN_Cx!PRyz@GfhTGKiv>Y$J=vbEnO{^!#Rs7PjC=*t1IqdNKa;<&`8-C3UA)QIr zScIq8v1^hBraSCtY>(uhQdWhnjFmDCQrJ$6U7>rIp)UFUzodC5cKUku`x@+RFd@3wvO} z&{%&p0oEUu)6jO`)ExHZf}O%L=2`f?HvBp!Ey~d*t!Aed#R;p}Pm7KV53={JP1Dva zW?>bJg>7tQ#Tel__H0Fu%*ileC#7_^4oWFg?D5ecxVvnj)cy*l__1xEVV0GPuKoyM zdxY|PV_EFtI6HZ#**ew<0!0Z(mhxz}cb=lbm7J|a*J28C<&isFxn|P)d2ByOnOITV zh5(ZY4t)_?1?X`EiuOWyaWLP>$3;&Nq*D?0(;#l+bfFVuRRTmwp#Fn5=?gTA_GGKjINJ%+I(2OlU zf^H6xicX^isrg3n*2gHO=wxb`UaY>A;R8(vTXJ%b>g!vYTwy97ZzjVKi&9E5^W{2;poKn6p4Qh_7} zLGm;~vXloU_yHZH_Hx{U0hKF&IwCRG-^$!zNR*-`_#ss(ki0kHiEcDMCB|Cjm%tdr zkpyOjkedNJeVu+>V575PSd*7QbMKIbs21hjWsBjzXj#gJE{V`)%w(1&3+#)r0gwu9 z#X2g$f*z<%MNZPrZ7%f9b^%CHY^_vai*+t4<0U93v;`>{_HAzaZfD_!`0v6k7|Oao z=JOT%lHKj|<@FV8?9xWzNtS&5tJ<0k?EC9`MUb~aiIl6CZ@Cw8TBgUEW72)Q2HY@7 z(AGS~mMtsR?%co*EE^M1gN*Xu?hXt*7^KfXxGQ3LJ3)AOSNx5C6Ih{je(2wZV@bO^ z<5Klhc64DJJ7w)6%wu0$XU8l^1}}5MB+U2+ty*#~&`T%sNa4B=a}2s{?(I(2bg|Ml;C3h)=br& zzk}J<^w)N~i)~*sSon<9ubHd8^-eZ)?K-V?2zz?1M;kMUnb%Eiue9VA=2@4hO}~}B zx~@n##k#JaCj4#JqV+umZPsSCb;I}pVVg~waq2GtPyf6BNof=wv3b|`8?=IU^{wou zjXe#~ZeR*E`FMpU9HBhDe0vQWWKYsga$Z!ezycmI>pC|rl%Y5Y0^ z9{tV+y$8orxSgAQ1M_Q*#7tGi+EHWJ-BrEq@#-oWBhnTKT|ky-ne3N9Y_ek`q}E!= zH|-W+Umbl{gTVmS!p(n0kT#gHTn5*8+(R@3sr%tR?1y`{(|fD?;W^k4rxlFPb}_IY zUWC0ABhVrf5gB{&H-HvdYW!$zT!ZSCaGVyY+x?Oux5|JnwQvi2uD%a@ z{icq+NG|0K)kw*UrY(&(DVV8f6V{Q)8@`48^HASi21jSD9XoF1-%E?Xz>d&3YIgcU z{MATnlxDAi1$Pm4;p);AZtw;Nw)+cia2K^C!c4^mxpO<9fE&vfOX=l`cY?vCdM6yK zXkc5nhC*L@%C&$ko7=Ws2-=x^gvH%_Q|tr@yZmFMv(WbC*h^b_X;ahKr(0%e6T7jo?%vv$vsk&?YCnAkq}&o6j&g387cBa@Wj+nIlZZ9) zsUe7^D8A1IEvi5&h!=O?M0TG=m?;(E@$ai~nO3M+qL6W^gUEQTpN7XsXm0XLbUH~i zE8N;8ekn%i5b5vR0rfJ%u}xdMf?juS9l&b04%4o4uyb1z!(JE+P91RP8l_Al>m>~e zgQuyrJqENl+<8VeTiV#C&AX5RxFTec>rVuC+LGrw5r;Amk;jxE+vG5^ot@hbuozJ} z2De1yZY#&yDPuo^3I2p(OF+sUgttC&zLVu{>#qH5BfDW+j$mZ3Zj05nUB^D$Hc%VA zj`Z#3x zyY9fxqAM=uI}wiY8e0!6nE6Wi@`d&EDpq;xE!xD5?B`oEwL9-+88v0%yBnZW*+QgT z>;lTKZD2cVss_A$k4f`S^>+wQ|GWQ5X%znO9yaT?ZCcGeOulU>Jz{SEoA%;*_U7%W zJstvFEQ{(akV4=%)gV_R21|;m21LtM8(25C9khC#C3P{nL#0gpTuhd3EdnsdGT{y@ z5?9_aG{lIwH{HcXw&RZd+Q*WZ?al`6?xAe{U76ZPl6F0HS0_Phx`XZY4A#0Tn zmEIr2hTeaE+CV6~DG7JL@fi*vJbX6~cO@mbjk~?n#?go^XEIY@;dlCR6WJw7q-i=C zN(8C0-a|-&4I%lM+-SwF)?T*hfdL~9)S;G4m^uuS#;5T*C=cur7>Jr}zj+Bg6vjCb z`A7EI15tMJ7<@VDW-OsUvg&=SbiS2gzESeuKBcHZ%?Jly?AIac6l*`dpjy| z1S#eiubgV8N=WfijoC zP?IlzPu|xQl%_??3xC85>@GVo@4$_1m5y6pG`E3~d*Oiz%L_o%%g>xg&1~XB1MQ1y zo(Jh${=WIE688(9qyJ{ooKoNO5xyJ0r}68La%1tEsg~ax1jlc3P^9>~l#%2BFFJ1n zDN{x&GU4LkC5lk2AsV+U;Sym+7!vXMlO{~;A(-MvP~t|NB%&vDl!t&4b?rf8rG4^) zNQJo){lI_}Z+m*>#eP8+?-%%kVMj4}u(_q9bT1%=6*wYUQipbSZ#CY0CrH{H2q^`t z5Q1R`L+33pi#1ru$g}S#LX{NSOQCs^h1PyErDC09ZJ1ySt)8Nn=TUA8q9>}+)|BLf z@>*DU8iY|K#ZX$2(0U=uc zo_j)x8-ui3gxBIX1Yvrgq&{=;+=3s)&%iGjhMzyGNeB}0Jyt(ZU4}wj*@cHkvL_$b zYajWAz4Gt~VF~;0;XEOJSNbDe1?^)ySn;EY!i{X*qcIUP{*JbFL5n;4TijN*vL_ym z8!#P1$3ysy!7mp-|GWQ5X%s(i2m9vHSz6~aY|3M^EW@8MX*S?D2)~i|rQ(;4UnYJz z_)!}D3h|qX-(36_;&&Z>6u%t5RnM@m9*a+SdZ$Tc;>SCIWLipD2u?n6uD-jIt$#E+ z@;Qocf&6=4>?-)nIwA8b07`yV`Tc~j|K0zjG>UJJr=OOR06z&wW4O5aTksANEI-G( z{_RJL;W?A$6Z~}eCEzz0zcl=E@GHfS(tZTCOYz)*Up0OY;I{)mN_!Q*_nu?9kFVF> zUdj$VK1}=XLCp8~Jnf8lR{q4u$R6=fw%|e|Dx^@FX=L|4HL5+=cH5V+6Hg^-A1-6R zJare)yyNLXNz zlYqaW&&H)qddWo09)}0*0GNz*CbBODUTBLA1iv^p`MolEAq?!qt3@?> zz`5^PlXlpA_Q|u++BYNEf1d5Fy)S}w+c|v9U~;K_Z)Q?Tvjms;$NYSi%V7#aM1fdIiapzF@(0{qpoSs9&D7?dyKaxZO*{~RP zBPku@m~|xW=H>f_@wp*Irg;LsnxYe|*U*3^I`s<#GJlMT$)HGs~|ufR6srBMv~ zjr#mz`TjDDy3gPpj7TLTP?OnW7-Idav-U63daAkU!tcB2eS(kS<#hhjQXW(aW(&Jz zF`z)JU&;Y^?Z}Fn+M*_#C$J7|UZzEnY-&`d4$dyLM@l$P-l$9=Cy6|88Zk(gk)TS~ zH12cT#=UWvbh6Gek}77_zZ>iq5TK(~Z{i70;z{IUPN!9{tNJ)ah0qRdm#WpevGAPF zRL+4BiEt*-mV~V8aV{@NhXzI>#d{oKLSJ-^gZAT(?N6G}`4C$XlmVRh!?|ACDIVE% z(*^GP-cfo-{%krXlE#M7$|+`BC%FEjhIWqCVFL91avbl$@Ej?J%x8JK;tPr}&0rQ9 zoSLPx^{lfLp=xe@G*}Il1~_!l`M!Gj4#E{v>Paa#O;J317NeHjH2D-g;m<{GQaCeK zY-6wNnlN}#%@Z%1G-Z1+zTtTfeqCNMY0UV|!w>)3wG*^$+R;BB0OJy1vw8l8> zoX45U8Bz6&uQpgHGW}kyc{om0a)atm(povlMy4VfnTkbA&C5P}e&k}>;)F{zP639v z$#GcmkdgG#ScfmfHd~sa+q6bUhqK|EYsnL>q$=fP@fcl#_|ofMPYMXTrmjGvT7E4Lkor4}-xP?fMAkErEPr75M>d$cvG% zoSR=9k)jZ-Y>|5^s8)CbA0Q?3S;uNlZc{l&*tC#1GdKBQor%+}%$>EAJ@;Zl4hi93 zNHjCb6OhAuJHr0bd+JO)vf*(Fp7GXl+S;5WZ8+N+M>yd;LrlUzd#hZ$La{3`Qk_Z) z3gJ~e7F!`j7heM((35EZ8!d@&faPZN1nMg=cAGvxC4Wv+TXYv?X!OzW1IkHTz7obF?ED6t9;Tn7tdm7GlEY@}nv5X=`T;)HxAkG=V7nReS`*7LPNogsF| zAWeRNb6zXd<`lB$UMo-eY8pY}4ve>=(KI$z7{fsXa%oK9Ky|P#HW&f|hFOEI17K5M zPu2FxWm{f_R-< zfQflMdLQQ5_v9?zaUU}WY4UE1O;D+O;RXl$PyG_$0GU1(eHmO3N*>c9+taKS-~ zu1-LFzjqRa$t>rcI4BU^55zI&J3TPdfAWrz?SCgy7>v+pxPC{xo7PblCTgU^m4ffZ zGpzL8B6u*vhG3qE!Db{azwoxV0&SLuPh^MQ%@Jf4dnk(=^`&Jr9n4DuzV&jjOGHOsGrC1|#lt8Z482{4vWBvx8y=+dI=qUEW5y@UuYh?mPWKX>z*!GcZu{NR!R- znV`4H@~3#?_3-(p&Xf+~YIsDQ$s81(OkqEe6gd;KC*|q@{8E5T<2bUi8kGzjlr%X_ z7SvqGl!i=y=b8FRBdJ}E{qfeR+<0Z?OSP_hPh*)P???r%ov})PejFQ6UocAZHX^eT z$+xw?L@nBK}c7LMJC@*Qh`jKcxY@;sqX1aJlwb2UBPi)Q=r&P6dOy$ z`mnW!%j}7M67&xuK|xTsJSfb^ca=2DVKp2q+fWO~2Y%;uCQ_21kMVtMc%fSielo_( z7oh?M(F{V$ixn&Ka6<}G>*aoc<}b2bjt#uYzEf&7yeIkidLLWkByBOP9#H6FII2pETI}*R+wgLyVwi2(@(L=3AvvH2@*+ysLg^Id zlkX&ZDzwO%Qj}wC2)xp{KER#rnqhP-2&35Fhfz>5zS9TaERIb(1s(Ru(P-tAO=o_} z=JsPVhv%Mygk#NcP8?+Z0Xhua^`Jl`zbB7W6C@>?&K1!bquV(q9m~c&Cnt|h(7rv1 z#k}7=B1KW-sz-rkc`34aw9hANSkC*=5qKGa$aap}^Nz;QRlTs3iT;$Wecvb)u>0Om zws(UG4BB2i&3AZC!cn~a-zf+|TMmP^OhZKDvCDF8_veBiqPv~+1`22MQ@@+lge9NA zKB4|r;OT$&KPhcVTl}f|giZTks4$z|^g(hvV|A`UKE_`Dpu0hP1eKaU4#M2{8T;k~ zV|Kb@wO)T?dvwajXe%Y>B4mmvv+1mY_@bKApPDom)!)DI^uPO`lt$qnK4r81F#^71 zxBeqjTfB~){6~Sd%{n&l_>g|sA6c`=Jrf$%nj2^>K`P=_2nFpKh^{JxlG;?l zi=~<6jtl%S+5_rlO6@fGpc}~#y~MYCA^Z5a*$^+s{0sP=l#ata?67-oyzIV)jXbf4 zCQ!NxM@KS;x$lV+6Z*u%jF~63K`)scJWjng3;>{X${!4;0Q>F{cqBd2*v$D3kKn zu|~pTjDohGBulgc5-X0E_|Zs6H&$vmHrbt@0}cTQH_lC}JBFh3M?^?%=p^omlViK7 z+f8Avz+u>Cdu~HNjOndzHLhxL)|Gboq~dbhTm=~R`S@wZmRnrv0o*OyQ7v|Aau+*( z<}A6>&l0#KUMwuY!P|VCf8!gCQm)!{d_zHy+!T3t5}r7G#+B+|GsmGrSb~8t_H65< zP3PIg4?A_J{hTk&w|~yMoO-aE4sW6O>G6xiFCM?1`1Ql@=FeIEskgQ60qo9?CKhpa zTgsDxCf3W1n3`MO2GMNL!}b=PUh`}ByqJj>3n=%{?RO3OxK@B?knlrnuNpwcu0tt| zeKWDg5g2BBC^h1*#&cV>kjS0)Dkuxzs{wdvKM!T&oL;TR*+84g3k%(9ecy zzv;u~eYQ~h#do{vK3mr&qYTItQ zs1N+0o~xUPifVlgaQOP6*J!w2_$?4BdxM+EVJb}wrfPESuH?@<2+Z`wcHt-X&o8=m z{1+;JnK$4Q=KCU{?XMx4^s9)T{9TB0n5`ko4uAOoTlVjNYIl6i3gzi7q%7>h?~*bq z7EBLzQSQ-&ED%v-fv{nD5mqdV7B9Z7Izvn0&k)y4g zfB&17QQR~BBw+b+3ors}eIiZ3beos+KEyiC>#Z9IIX>;IOuC7eSw-jx2!IM zx{yXKmwj?q>DLQ{?iE0aMuBy4bN5gcW!NEuAF%@b;Bj{P8-uWm)t?(K?4xlm`3dBa zCWh2$_^Q#wLGn3sK8+cr0dfS7d(Vo(5KGWl;K%*Df3#qCP@w<~$)Cz!p!Of^==rjc zkUcXnfQ#K(-q}=b!asIxJG)RQeewMkq!RB|C`BU=C)FK+9Gp~_rCZf>@%|PCXTQHI z_xo%?TM^3cKNlyQWe+t*XiptwhtCZYz9Fgz@3Z(HCdU3c2@>zh5;_EvA%NI7N3Mbn zAVZ+QtL(`6TiMzl_1c6ZySDwfP?+>$eaqHA)S?l0s5#K~3DvUmRT z2y>l_P}{2Q@E+UVXwaTJ6x>+P$6Dd4TALZf^Z@eh5BD!q0p8%Q2Z9@XwcKsBy?tS)ZZ@d3Cgs80 z{b@gY?$U!H#rxIv&h*U?N`Kndvc31TXzvGs9Ey0iOn+WY7awR*@V{ze-7@&^bGrv++3KmtQG zgqTmueBrGY{Iu_Gr6jD%G&Q%8-pAAo+fBaw(mr)+wpCzS_I%q($PscqX`O{0A(?6+ zPeo^8N{3t!l@35!JTG?^MhU5&?>h_qwZ_{#38G+bXS@w|qqd$3Q5Y0o%1sVI>i1YQ zUezBwGz|sp=B?@7V_}M?0u2M8#YX~E7rzR8AJl*jlp+NyuoP40*9);8aAzr6Jq>l3 zwAG~y->eQ4LL<_~9wq1mg+NHZZS*ol_)06fZb4!J+;pZ*t1kLMp1%-4O3$E8 zl3Df+CS;2CQ3ZKAw0F3C4*PJhj}xYagiGniyxWzK8Zs>)>z#>37QSvF{twImNGPKI zRf+d$LI|6Ld|xyuGqU-e)SU#~cJgIT100~Sd5(7#1`3NkS_1~96`l%%kfc4f$aAkj z=%E#V@w{pfV*1jK&sN&;v6Qz53f@%+Q$3<kn=@1m$PUgrip%RyjLD z{SZL0NXDTgNcFykzK+HYqKmY0Y%Nw7?Ng47JeAgscTloikr$O@-iP2V6G{Fr=)`K- zvnfirUaZD86kO6AtD_+h^R=E!Q9=)U)2{w-)aK{suMN=N&Olj_s!G&=hEPdw3Dwrj zO+bGY0PXy8%~z@HMv~JQ1tJyowz~|Xcoh&iz$F2I2Y3;Fpv3zE!p%|aIQwcL#;Fi( z>(JniDAjNs3>UL#(blvY3o=uK-&nNq8=XpX) zU}ommR<6Mb-*%$QO!7-Ubk;D0k8y|IspQ> zF_Ok%pY8A1%|Rc5%LcKU-*<2`)yn%3m9wq&)W->tb_1YJraOY zC}IbbU&sk8maAAHxF`k9fN2Y8b+xS{R}kwX4J*)MiSDei-PMGsZEHgcO?ZDHG}iIK zJ)=AkFUm&r2qIU|-Le^&4wP+uZehiBk2vEOhnslm&Um%0?L6D#h1j?QM5lULcN3o? zoz(s5c;a(-;s|VnU369>NdDNmfJKuq5M6Yj3mdkCg|`4n9mjZ7SO%ktzW2qCEkTSqb)^90*hDs{!%{nYhe zcS?wVg~=#DVbS@Khb2Hq;(ii+Qjdu)xK#Qu2om$G5fm{`i6F{g-X%VP9pLyH08-su z40Rcb6U@8vO|&`LBq5@68nSr@V6PkA>hRg&l<9#uP^K4ArZd8h9)6Zll+K-}ISlmWj_+1t^Di&;U^IYsE3~T|~^!q?lvHu1-|M!8WV*d^FoZknU ziZuhh-YDc@J#ok=l-UF+6jTbF4R{$T zImxXYVh+L8W6K71Jo#JNbK*loU%`$LnsHl zQ@YZXN4#!^Eg!DOJCKw_qKUEg-1L$_7;}glP-duDosS!V;9f?Gt2t`y!SSQD_Y_gdYg)$ z=sJp$O*q~Lz5wxLpZ6sdBId{@+30-**%;z(DI9hbCkEjH5Cs`3>TQcKG`?0kdd2UP zYbw@Eu3PEo*53!3iZug0r>`&!UFMd)g4;gwTL>1dhsZ%q2l4hhn}V|jIMQN0^adKt z<(f}s>a5GZK|&vIKu3_1HiKzrH(hdf#T~s1Fd>F*xlg-u;^U?O$+jT`L=JGkaRA<(B4p1K?qdP7g4xS9+nes zQ6<4P(Juvu<;S-wQt(s5;L8e}Aqh!sF58FYRZ0ooUfAL1!eGB29W9Fl`#22pL96Fh zm|yk#I7G#oap;x)LSg7`8kR7Fxz>AP1_;ya{4*~j(cCcfL4&J_WN#!w z(uO^C(e@2{6=%7{$}mB2Y^BgW2^7u6QoTavsxwVwc99-TGLV9s7qQVIIz3+v5W?)( z&ZnE}^i;OeP%Pg?XB?@&;);L5f>h^W0j;txVy>`U2&{AOrBYn4-@*kVZ} zc@eE+X=|@D6}%Vgnf}Cc#;RhJh1&UPsw0mydBHeaP(3XB7boy58fx97r@Jg}^x)xCALpsvBD$WWs@5mQn`{x}*gzMi z$n_rrdpI`Sdl~}lai}T{7UacNFNHeRSSAf4HXKt_6pC?B%z=7&R;w;lZ1f@{G7o* zK|+jda~|Tps;4kO@xf_~=iwwF((>cA)G(q{ds={q=0;!_28o#Jm=JEW&`kkH$!e!8 zFEDJ^%eO0#s!A#}RY1F5e&Z3(FG+&YUTaNBiN-D8>Ww0!(FW>Dn%26~TmFGcHJ!F7 z#4m9m!#6Km2FXxn2$)vUtGHN55Co+g|6-j5giUsm;nV;Lo5^s{t~B3{&Y=&CsDg}L zY4Sr>s1Jn)^8>mV759>NbeNWUF3!#2BU3bWq=bvESqMP;By*0Hjsx&o?cAg|ripVj zG6puo|68@Qm1?QDH;cgA>FfX*rbO3+h*Xqa<@S_Y=pE^z6z=$$M4KzZ_=J|nK3qu9 zo?Ga7aJUd{KluJ7pF6`qSFzzh?ghLxJWTUbQ3x)QqEis~MuIuSoe?e1#d%}0bK|@M z7`__*gDOe?WvV34_LN^wkriuxxM&P-shB94)+ zBfmC}?rPdN*t0%aDCx%y1D5hDbS@5o3xelDGVF@{erHG5q2Mnp!@oG#J|Z9G&=;RTcqON7!vh38=TvlzLms{4h4920=ljR;T#*(G^I zIRZF4i{YbQK9u9xG*U>;_#l7@x3bbO%P}F8Fd?76?y185syu>hOmVa}mk7}+tv%e&VD5XO2E@fomPiO#ja?{WaJ z&LUnO10V`UG*(-BH`#VL^X*_J7sOaJz%RpB;(jNh2gPPfJ&pFHu*cNGLLbNx1g`0sI;;Mxcm1hfK;rR z0yt=lFxgJ$%}nTO7+jrB&>!QH^3@YMEElxV+0tbY5@hmET<-SjfPro^9aHf}3Gx&? zhX=s{2CCyUJ_gZ#PYNx|xDON+w5SDDSEly3%b&2rwptI^TUCW*EcGVrnGQ@5j8k6# z$_;%`?r1VND3fL6`n_Ks7)K4@7;f`QqePyHp*27KDCH`<22Y_mgHXHx@*PUnl7s zw5&rzuL+Cy(AHpphus4cKkv@XMAgqS>~T{WH|6!{ZBS49r3yXm?W7H)NsRyz!jMcO zcQbMFTfVp$sP?jEhcz?FJ8p#EX6A0!Bu*nB6}Mp7#>J@>I1s1INsFmctnphGELIDW zIAs>VYy3EPF+w_=FAsxpRu!kABu;q+o{r-LV@^Pv#>o3V;NnEz{v1Q%bXb0KN}v!I zC%V~F6(>JtoN9iHpn6!%-z=gI7p5Bnrof==!KT1K&MZ}!^bnB|@&?=p2Q*d=!-GCv zKzHNNeGHYFz1wet>isp2|2g(yy;@vBU&obyp+@%EM^Ywo(HbE)T*pN#4CTjh(fSd) z6hvFklr&+ceGTsRz~>OK&c(%~v`G;UwF*ZV!lA;`CA{C$eZkniXvl$HKR9KTVs0UY z#=UBxBs9}p^2pOMo?E+0Zot)K%`;>8TeaAoshDNl9mzJ7s>Q|{z6@oCwVsCV5rSv@ zc;Oyxm)V{V#|z!GkG$tOKVB%e^L2{>Cyk}|-EHJ>*yoVjb%+*H?}I$cU^|q~62LD= z6lu3O4pTlJ2DC{E2j(3eV+}T(Apl{{5D=7l@>YK-Y|e7~1GfKXCgFlS=e-b+h!ViqW&3s^Fne;%T-2)JUplDpH1IsbLbt$_>{s)lE1?U$vX2mQF#Bt-P& z_g8b{P8w;!qVpZ#lg6)qcfL+Rz2`qB(0<6fo~U$Tn0*~;B)x&O6wHlKo#+a|3Zi{c zm^;=z6TM4b2}7B}fd)zlYJ!_C8vi$r7-PPK?TxRR=;U5a3PT-wFjT# z6P-s82datAx*-(u_q8C>Dfx1!wh(U?9?IP5`6gY6vfl{Sr}>>(TFz>}w#BTt@(?CL z?(lpJ^ZUK1XIIF5-K zvU=_b^8Wu}%d+kc&)+kILG~2%97QAyKm#absL=h>6b6(MDU}-tt=EGW@xFD4rpFXV=FV`o_@bRCtd zRZDR`oXCg9@+h}Ha=Xhf=zcgJTQ5(5!I(z4GZaDl#u#b%T>)4gVNF7@ba=Xj18z^m ztLiu@HiKt3b4MjOKpBTptO_wb?e1hwc_-)HKCqLi;x(3J7fle zK*A015C&9m&jybv4Qj$3i;&_M^4WeNS3l>+37*S6Yl4J4R~2$N&O^vym>`|QFXZbL zEc`AvDg;nFm#FRe?mD6Cb<`W`)Qn98eiHs#>croZ25Ta)1=d|6a5zPvOVIAUlU9aU z=_x+)oWR%6$X(VNsW^crHzTkg)ov;VtrcrdVSkA;>pTTn!t5xkvQN-NPU>50*Lj9s zhe6|HRuet#SD0;2PIqNUGIOPY~?g_iJCJz&)=p9$x$R5&4ik`kiEvUbcN8*6ERg7 z^uLknBtYG<`q#O@rJ6FXQZs@RBXD6Us1Bo_pA+1Tf~5K}x33w@(TK~9?J3SE@wI&RgULDvUXUL{?xRWmlxbqZ*x zN_c>-UvB#I==z%Nx6*Z+O`+?DE>72&KF(I?ItXBym>Tmx9)_!}S3y`BhD+3pO~de5 z5K$#8H_4H}9=9umJ*5b&G7Rte;{r<9j7&g${SVQPj{qAKf_@oHP_i@rrg^RPakzf@Zzbsc zY6)c=J}1s-y9CFtXsH_llyDlo7AtLi1MLOtp({fm@?eU0?28N1C}@xA5sb z7?^B_MX_3pA?C;!8RLS)=sYNl%Q56M1! zJlegX5qk$4evoh6;5k+ZpYn!vo(|K6gzUa*MrA3&EjIWRp5qL*Y{+OMjmC1v`2bCm zJzuhge2#reKhjdX;C%bRoumVy(i@k!0gOA1nptzQ%r6508t^tko zZzCxi!=zteB@&pagR%!}J|26K(BJNaEMP7su~>%SIdSFzOwhGT)B#Ax8?=6!1BvFH zQFPMcUaf&UYg(0MUTH|c>5;E2)Q{0M^UexfyQ4Thx<}6~o2;xjuXde>5=sGlN5T@~ z%P4TSe~q*U-_!!n^~FMrwkp))E*1tER&b7x1Z%PQPzrh8%MvE}2aP|jynVd{?4cE3 zb9FkP40Gjex0;E|3RZme^1awjQ28HF-bUdbSW<-lEak1UibX&quDIOrYo;Gxr!=lf zdFu;>x`py)KvZkWTTC%J%w=Qu9DwAL;r~{Lezo!{*sxj6)Wn8LT*2Ft4eeI`xor3p z_R?lO^S`p;X|+TX8$N?p-GU9IXt&CSJ`k(R*f0nn{{%KvS6l@fuwBmy(8PwZw#(UY z9CzaWnZ4neYkw;n)~h9&*zi6S@fK{TMO3S7_=&f%#cXd264cTgmCN`{qg581*^AOc48}{=ywqV1d1%C<~1_SJWWy622 zQ8G2L;ncFr*|744KbH-;Di&8iH^i$Yn%IyAwY&uz1|X_cHrxfVx@=IofBv7shF{9B zf(>eNRW>YwSY5`3B>?#+ z%nk3&y$UvX)J#omSi9tMHbi0{?a!PWz9~~sy?QphqLyf4!;jZr#)f|(s#P|Of>>R~ zhH(J-C$Qmx(yL&@wQ8m&HcY9!oDE-A{JCs+ZO(6H!#1@<6C2)z(%Ygp>_JqkY-k6u zx{M8B00}n4dS+G#!~Odfe{9{L$2xk&>|bSrVl7UEJBWdQ-4mu_Dy2=E?Ww60Vn;-R z^n7r#t)oL@CTn}{$0^&x6+sv0>xU z7IhYKd6Je0-Gzmo{3Sv}*e^IIp(af7EMJ1Na}lr^@OD(fg^q?tI_^R3M);Ox}-PmdKs*Hn0DJ&u=7DAjOx zVA!Qs6$lp8mZg4ISs*Y-5yYp8HLUwi?8qz?CioZif1E?@iZEXJaZ|z>Pum-WA=+0po`NNUAuOgT<$h1m4Z>jia!%o`fn+Gd z2DjcQe7s@0CXwr@oRN!YpRGK=g4XzG5Aad-6!J?%o9PPOS}RRFgYY6{t6T1$m@jM{~hBmOj9uVRmQ(PO=0|l za|4X8Q5e5WVSH&*LY~q!`Dt6S`@K`DbWM@Ero!7>E(PzHsL39qer3SL~$!Af<1ZG{@`iMI*!mi`V8 z2wY&-ng;~k;`(Z?N{ZG!AUxmNgvfDQ)J!17IA!PZIy74)#myvyZ&e|C=2 z{?-Zyo4eHkOD)wq$5XLN7#(?(lfiEkP%gGTneBODmC)M&uRe|{wo0enG#X<=Y!!dOc;o%k)yS5S`LpQ;oC z&kc(Bzc?enbIxKC|7p1Vhct!-9`9-)$vzVzpo}ZdK9B-s$|oddtI$BdXgTBVOFm_* zsDD%bpMX_U{(=7dpcFL9W!<1qUYr>KPO3#y=1Wr)RMYI_KPfslBUMpf;1dnW$OtgE zJyQJ6?#(<|14n6^_COTH`B4>iYalL@kFX}3mQ3;VSSv&f8S6*d)`|Oa8svTu;b3Jk zS*?L@jLln%6SxJQ+t&(1Oncz5q81wCUDJbmbS<9(j&bwa!`O3K}^*Q7VWVZ34|Jj+G%QExO@ zgsIyuhkY=bD~g>^#j@dtQJTiZ$;oY+fO8MN+N0bTL7yG3gCdQ8q&GtN4GmKO#Bsj8 z=(@>Mv0g|{uIhtP;DDTha}@c$V+0ls9+Vy1Y(D^9I{t75PpLgF)kw9)5uQia3-LK` zP$YdKtOGvufDb6sD~=d-wS`u#(Tx?I4Z-}R^Y0sd&x}_B(3G_1Kqv%AOv&g19c1t!t)A;Yxup``FFi>dI?9RFdX2v z0PPz5;CAykge&<%t`YIv5(^sTd+`I{; zUdsQ%^KBIz{$8yTM9&d~+6P6y5c1hXg$AA@i-kBl_Q6ANJ_}l?v@Ar5yxi0LkNLyW zd@)n4ur+^JI~-z_Nh`UfnFB7n%7Wyu{2uO!frfTgo|Ma{D1N~Yebd^1j{!|={)re4 z0sbJoXpf;p;5+MYf;=>&l5GU*V1qo}6XO(8gfLH`6E_v=QPL8LJm`3_^pMx*C{rTM z|3Kid{1JV1WZfjF7zH8K#e&Tfc6F z%<6ceFe!s54K`qeN*I3cNaEe(2JD6d_-ltwTmiqAC=;>7=2lK{zm4@mL2-huV1PJ@ z*6w(Q?%Zx?Td?wwzBSzx;E!JNnB`iu}g-YpNJU9ECe&sn2kI`(MB(z@4p$Th}V}2 z@%%rR|5+-e=QDbdp9oS(HKj5IMS#)~^?E78;{b?_3hrQZ!X`Ue0OXpEOYA$t4 z)tj_8JFfnm#?|E%a;6II_tSIr^heq?p#M?ym&~BIktHb};{es$$N{QIbh`M~& z)gClAb+HVI_y?yzZuSKa31&g>S?Z!L`mY6mb@z3UJR|sxxXg)Xn*1a^;$}4dANu+i zcr!QGESW&gjnxiDUw?FkpQv8rU+Wvt_ye#*hQ>QltqE(lnuh8BNaNf2)BX<{pBSX^ zA>naa)FL<~ms=U#Z49#zMb{Ug`SmOKu6prLZPP#xi)#9va z{cDFHPgQing3?mdM6RAZN*)J%OrJ;4es`)Rt@T~k1Z7i623vrqkVWA_PSIZrrD zJ-Wlxqnl{p_}~W4SoM2mC!`YKb&$0UZs0V>Gx+kc@)pRI_#0+(laz@-UZy_jJ7e$^ zZBi;38&A~FHY4&k^l57FICFRC9J)cqI5X_0f4f|Kcn)CE{U@V9b*vq3^J*BA2)yvGQ#fW1h`v1p zWmte|swp|LHvrl^&TR8Y7v#TnO&Ulp!f;JUlldPd_xiJR_vR_l;2K5_yn|!(l~c77 z&(htxmqVEh83oqOz7cEimMnb4SSlD$*4r$b=3IJn^(y|x_3GDN=DTlXUP--5FZUCH zxqdhAMJ2#oM}zwEulfgF>bTxsHn|?F&D7}jy~x)cyE*7pQpfpgR>}wIe_$}Q{yPl( zJaeUd;eTR#fRgO(MpnsZ=s!h)yBSGIKxAV(@7CWN-bPiM0Kw-$1p4%oSACZbd-t}j zxWpVLvx4)WLBZn6(EGKxrYdCi^o#4g=jfR?Qx`I>FRrmrg_%A6SzNC?k8NMm{X`I# z-->mY0^<4>?jFw2gAHV&yJAm91QJn`vrUOSl?S1j!$Nkma*zhaPDKDahinh;XH&Kw z-_$5}5{5W#!J2n~NHXLdJtwLgQXthSy4Z;jy#456o&@Ur4;S7T^^4Jg)71fo?PU9^`bAY0R1?X%2xmOpS8*t=?-mnfC`Bu=wCgGj$L+Al6S9hrnSCUqnE)+ zh-*^E>FDA}q+@(wh%Wa1jbM5d8Ld2zAkrDBUqL|(Lzji`VrU6Qz>1GCoP;s@ERise z2+C$Gu_Wp=rz?`iFxK^CQ#TlvTvv$a6V>Z`TNK~l-yydD`uc8kOUY6zL-lbEFIm|d+)(~yijo+kGdjYA zOE}~j`U$Zc*serZ6HU{St^X8GxUZkY2Qs{A+PHE4gXy%%FVj6*-^=;)R4~5Yjt=Cs zwJ+1RKF|U?n2~uXhjh0QyI_eS#$8rJjHK(CXNWORCto~+4G@wwYhp}5Al0{-Obe)9 zteLT9tY&$IcF_y8DX-9JA*rmk@fA8TJ=5u*zq6erlj2@sD5v9@$MJ^5x7D&hJD zl=zV!CjGNQk@l{Ak)H^1@^_%`vji0Cr1s9M*j42#6#7Pr^I(wT5QAze&gvj6+1<%6 zo>aY8BSUX)XAHd&qdNropI-xMXmY_2!w{j>((i_~d4Sm0ABp8Sr2meOGpOvl43!yT z-Vl|+PB7$O_dukDiU`zUbF^Yw=LRa1s=pXwk*HCka3ZzNjLd`podmwFIkM9&GQwNKum<5|PXtgcg*=;E7p zc?@T>YI49-2l+_X@XDl2g?^cPxqRv~1`K2MgQ)3MeZlAU~1|-yzM`UN_+K9x}|5~ z-`M-d+<6L;Nz!{@SL<@(9#?hpTZnAkeGN^7L4$0=CZwahS;RZ~(EDq` z9NbH*!Z#?=-q)=Y1k^n9=q8%@7M*=Fb?OEZBqM=6{b}8(=_W&!OihBBp?XVutZP7m zWKTOog42>s2@a>V)vwa+dIgE1Fn9WibGZ^U%&ZMs!w=`W)aC9z+BNwCblF<9^GVzR!iw&@-8-N@V*J1IXtN+W34{c9$&IDrrH z1~4dT4Eff%1BUNOGP&heGn0W@5)?7mpw&-eA+fyvSOFvUUX9q){|F`}pz- zXBql4ZnkH7ELAl!KwspiH~eN&1Z>iT^BEADJtGFiIz@0U)FN{q>T$DY;E;-N^l(aC z5wjn|G=XBGGb9c%>c->fr*6ax7f2dkml-(^5rzbq@l^aZ%pfuS5pT?l;r>_~P*AGW z)wl|K-?9~kG3ac_k{APGBg}DxZt?h%`pgr0taf1yoshf^A0F`)DoP4_3n6pu?W^%P zJqySPDXa|0!a{Fcg(kgA=g<|}qIc)o($=Bxh=Xy<6AiE_#Q+sW2G~YE?c&%giulxNyTc9SJ`)^hVcZ>t zn&R2ALRh!83`1}E6O(y{TCH%v&W-rz`4#Tc212+!E}|vs;Y>RB?h{Gzu8w?7VdHvt#?rqLj8pk{H627 zjXme0UL{4{a;j0LFK#-fiFj?~e)hIl?>_d6lDL()nR9VgYj1JsSS_-QZrl8iI8)fL zzJ$GO8O{W((2C0Nv9CgVrHoE!N?t&AE~0Ja+V(O!4Q!8EOFN?peyDd;M2>e#ZC5-S zv6i-H5kZwS#>w-;L+=`OW*R17_|3aDkZ~e zw>P4soX}a5a&fXu>|#w{OLub)tDXH_qd!-A3u>^9SGuxqYKPLteWjym@GX_17WAh} zJ#=wJ!NqZ}uEUg^aV3rW;6+MKXrX3&=6z<%yRn{_l40j_y>=t{nboAykYUcDIiouw+1)f#y+mhx8FOgrXO;pSPOsi7M%B<*a6+3s6`7J%}?{G&89}E zkyAsF?qkTa+6*&f9;YKq`_j>=hrJ=*!4WCSmV(x$u9%Yk5nE1a7e1h)^GXNN3&Q&$ z%H{6oO8bS>6@J)xZ%xjST-{1sUvgkJ_Cl>5wBOFS_t96OVa7Cq0AbeDPR|Ecba5rDll6ucy0qifM$KN*v?jJwc+L zoEc|Cs5(5do6HQN^H*N$iz_60-HxPyrp?>5By~e= zX(@??&HJ*;Yst!r(mUw+A*DlzPW%CEYI*JU(C|oqC>86z3E#}U58&Jo4(6IgiMb~W z#T;0RH?w<2>+i;B$I5Z6UZ{4lobF)DYFM^DxE+cq34yW=CWXs{8&TSy&NRz+I@2uQ ztV~iq3vZ}Dl-N7SP>*&*J^DdCpbEUdXa)%~fPEWtLX|_aaQcz<^9H(8`_hC@i24z| zK}Xo+gQ3ra57AnejkGenOLT+sd^|X~I1&Db0hcQ$%NI9>u#=oqG5acA*w5g!k{{|( zz0@F52aMTf-niA;#~bP1jSYF*2W#gx(y?8P9UZo~GccJgvn1`jFRlj+kg=m(NkJ{y z<>5=@_8Fg$s15iScDlwFCxT$8FD@Nm_BL^Qs6ftEc-%;ny;wRu)L;M7Y9(P-3+w@D z)WNh`qYes%znN=D^sB8QYnXzAdh8XSFUPmvcmYa)c{;Oe=z_RRcOucPoI%E50-2Nn z341c#D#5xMV0{JW-6ILQTLZNFY$$N8fODTm$W4XewsGKACAT%$ch7t}mfW5px5WJD zCrRizg8PPqR+7-Jfu6d@TL|(rL9QpES`u1ALW$uBy+%SJ2|Z6jBT48fgl2C`aTk)C ze-ZR^Bs86b%1LN42~mv^8cRZ{Bs7AA@<}L@gtm<&!G0td8i9~XLJSF6NhpJal1XSf z3AHDoB_tF}LS-ZrNkY3xh$11Kgf3=~oT*#2L7&jcab!}iJD~~in}GM)I3jMXdOh7* zTk#1_>&qZ@pp~}g6WZ=c1X-r!40lr91L8!)>jyE$ z2zLcL!W(tCPg7Ip{cq_JOx)332@~auI}I%-8bW6MkXViO=uz6j%}~n})0VIor75Aa zV!e$5N^fZ0l+ePn{zJ6&DtrtX?LBP1V2{2YO*~O7f3i$)vZM9QNj+m)X-|Jj3pkKw=cjbL4i_#q;M&?I4YDt4;T3cb(6SYn2bFQD0j=n#b*CV` zTpuJv1kv7GS_4VwsM*2dXj(^{8bpjUFwu7UBm8!`L4>35%7Pe~-lUIqvV!i?As)3m zNX$zbl4WY0x6r-AfB6%K7j4t>w$QF*vrUNgn}LW-_d?X{s^*#Qw+IZ+bx$QVy)<3h zvW0FFvm28ygObhDsVX31{ou3B!$O*iINNgeGjI zlOqe@iF%(UF|_epu~4mpR$sBiP<Gb^t?RKP96KdsT^pnLTYZ+@p`;`o==@05E zCrI)OI+JHlkZ0L=)}MHUCuiN>fY8$_(|wk3$%33CCU{!as00UK46E(eU-`4J6#FVg z4>8+Fl;kziBY|gzVMiQ`QKKtxI!51JPV!+iG47S*T|cH8Trkl7w#QvT9_;?N2i>sQ zYYoz1^@mM<-l8YtYj%TojwMl_PSvh_PA6%J+p+wie&45D#1#VT5|9lnOK7m~6Y1EQ zQ#}LwNgDe;K@8VKgA|NSB z?v|E1p>AztVPJbKUL0%=z$;Le70;e79+l3TT3X1liBS`Q&QXX4`uvu&M zqnDuMM)R|Aj7fiLH(s?BX!H=xjzqvU+>PzJ^oYhjk5B&qlf}%A6E?^;dPvf=&{;VC z%J9#OW^!6+VYN^2?a%e?hlqECk%EyQ^#9CCuz_v({pm&byq#HBxu_x}; zkizC(YG59gzFt(Hqeo}yBPa{9{XPZ9hB|| zj)5<$(4*5Q8xdzA&T!8awqomq#`+-m1-tbukl|i`1^m|s8sx*to3`SNS1K9>IHIlll1`_;*8cty zjRR?th7aEnmWr~W@usT6795#B>StfUaXk@57_NUoEP6HTlN?jqKf_U`=-de* zxn3Tlz@3qf@1XvcK?b6hIr<1cQG}1z^U3>j^&jzA&qLT-qu)tDwSF5wW;ZAlulIwm zKz4lBKL;6+u>(bc_`-7xOz|=7tbJ75wU53{+yIKb4q-!*Map8O)$eclVs}9?Cqh-pO5^4YC}km z6H@ZmkhF{T$U*v0qK-OTm9T+G=8x!@p4H^G*#;EJxYZ-I@rUTnI1#?|5Y8w+6{(ex zTS_}{i0p^ar4kVP&Gk%ds`Wffe-;_tv=3E~e55DSRJ(kbw$!BoIR>WzF4m)&~GQ?v<+6V;s?ZnGY zh-FUhYJZq^=fE$$e%e)+d_kEWio zA5*A`OD>A}DTUewnD|QyRSB3`l|tt+DD%Mox#aRtDJ@-8Ef6trcv%gI zTDhoDz%lVIDgrR2jf;u`T$BhJ0+U=+EFf7#mO$BUsjMO(SwN-& zlGS6W`j0~YmjQ5Aq?=`O0$gFxm$Om7B^8RVi4 z0FD{#qK*SnnJ$V9QIpZ;6kKE|dirHVUWk_f?t2m$0ZdtpL;#s3$Os_y95MoU>IGy3 zaNkQVYBgZ>E6507<_cs4aLgMnir<6)v&uznBM;UfBY^quAtQhlYw;4mlywjV5+_6B zu;G}twLZLxewq#=L*|L=UpfmbK{wJ|eZyLMNSkts6b6|;P2dnTfq+c5i#iK9CI|8d z%+G_^0gFZ;!$@PyNTdOnc{kz!7LA6O0Tb_aQSk&n7UCxOaliqVxm{E;;He3CH(<;p zi2JhZJ}TuQ$Qy|Khmmo>FlGU8G(}Cjcm2WN=o2B~iHSY)6DMn1&(ZSw)IV^{r8e~CxwM$StX-DY#;zU>g3wyYQ=f7De#5vhghYnrCDpts9Zuc;>EurafLm z52ItWuWINHw>CXWQ$vQP4vjs&F!Rel?CI-1+nc>$J!g&5np~#)ha~JT`Aa&x7< zlBE2lPPD)580Z}3yw6E76qNyC3d{iJRpxExBW63Zn;B(&(Wde)ekA`q|1!Uh|BP=f z>=loT--}67S81@6Efq>nNd4qH<@@9Xa$n`L{dLFfPAY|>#^PN((~rqu{<5sFKFD>o z_4U~9uuZZR*_PT?+M4rm{M*92!Y6`V93zes&xn^rpZJjUsPvrll60?KZc@`p}>zY)0m~qt(Gnpi)E1ION-6A z)!LhVfqjGB#8$A|*h+RcyN^A<9%hfTr;xxtSPToK3W;wiH{cE!~!3 z%d}758;J5LW9)35!k3Ya4=8yBI_|v@3pXICh^L!0o z%Tq$A5FtbfF+!{mFC++wLXsd0lZ7e53gJ!RkkC)OQ=BN~i&MqvVxd?h7K`)6h2kP{ ziTIqjO#Dy`m9nJ8(t2sXbXw{ykC3Oy$K*(5wlZJQl&_RV>Js%i)w4`puC7$yQdg^$ z>Ou9GdP>#RYW0d5VQ+3{>=W!K>}?$v98t~|&e6_?oCVHjod=vpoVt_Br>J#cSQrz@ zBrw^Go0-fkXUd=>hncHPv?bP}T3nX#mdTdwmIIcbEN3mZTdnM9b}L&fd?D-=Y6V)% z5=VN($;kIgaj$qvq@*sA!%(0CX@;~ydQ&O8enZQ*F`=;G+(={otKt}4lDPj!G=s6L^tQQudO zswdUv_Lg>=UA8~xXzg@5)0`Wf+lj_6qNw>O(VLc!EjujxEgjh2tc@MU(pRn!cwIRxxxbBDJa;d!Zu;QuwD$4q6~$~m4>2Dk4LSZ ziNc?geR7c!Wxw72to=N4SnIJx+j`V`%Brw~*lhM`b_M$udj)C~%h|ZTTrT$p_YSv_+sA#wRdErv z+hOMv+fdlGNw&+j#{8{(2Yv{$I!@>)-X>;?tt5|28Y1ONm4=Xd$r*B%JWl>x-Y@?s zSIMo_1eH^>)I4UZidYNWljy`4ST-qSwFKHPq{{a^MH`^)y%AcXz) z!}c>MRG6ccql3fc=!bee-Z9HD+wqL!bw|156UQFMw~pT&e>xgFZ*lhaI5{*Exo8$1 zc0S>J#`%Wx9p}f+UC!gq@0{ldCtwHGffJ$3ElfPq3oTqWb1yTMS->n~RxqoX514Z1 zGiC?0_dHX}gjfgawg+ovGuRw<6nj5Ak)6sGvoE7@ zStliSAay+{AE5=h!)xi z$pUXESvKt1Bw>c|tndOF;17ff;h1nrI4?ws-9<*cLwr!2jmG6!u?)>hrC23~NF8C< zhQgLjlx9l*lAeaK-XiUi4oN>qze}~Kl}X7mFDr6i=%`zM#L&_w<)!i$@(5JC#_9`d zH@n-ey*nbTm1mygxFgY-x>0<346Skf&6Ee~0CT7I!K1*1El zR=vQMvzJ+l3*(w{w{Wewc3fw!E7u$9I*PlG8;_b+%00t9&n@Rxa&K{~xiW4YSI%wX z@@(V4wHdZ2ZQt0UJp3y0J#jNi)l#}c%7I;;j@8nnCy)&AIt16Boyo3ZhuPk=trc%U z6Qs!t?6JtCM)U|Bu|)hoZ2gPv%uVC6gkxeODE!4z23KKS{dn{Y5XRKHF zrl=PE<)g}@YNnG)q~Q~J;B_!#(Hc!;@}Yp!nL?(BDQ4y~8p_<)@(FyG{oG810thQIwN(Jd&#PtsyOT;UyMUh{ZWO;2e-JxKJD>&MN`vM5h+NeX-RgUi*>zqfOR1x|~Q$a5?3z>PSrjcwKI|B{T zCEHBC7#{9x{3rY&{x>*|$wE)zPT?_OiLejOS6kRQ3*4@^#1Ei5Ux)|9lj7gv=hAM7 zq8d(1jnqc|SfSCnOhQ3+su$F6?bY^+_M?t4G}<(AhpA#_04#`S6r0aJ%F0|ZH;S(m zcH{L2;7%Mz1w1Y2!damj)i4|7%TSKm6C77a>6V*HH@cBlOz81Du4RrdAvUH0GYSM0Yq+Bs~FDGrZgj^m&s(%IVC-8s~Gx6@Mq zi9PT9%z4uJqm!zjsce|#WSHbaW+lwc4GFBO_?H$%Z);#OI)``|ftwr$tmsnr6zJ;dkQ|lMj{nl@-KU>dP|FVX$(d?~k zXSOFRur784`?!al%PvD}SHXsHkz7lzJtuHuxhdRZ+zaplH*vqi+{W9IZFbvzwnerL zwhOjSd{^ELFMc=QLg){Va5{Xz5>&|*!YW~da8w8rTZmRMPkb8M@dfnaFR?v(8S|tU zrIXSx;A)uMQWoSv^1bk;x+xy3GDLY$d0n}vJgzQ+vOEm8W54~7{agEY_Mh!Odviye zqnkr<40pI4lN?hWk2{JS^Bkp)=NvCNRyw{!wXAi-Ir}*KJF}d3Iq!GAsCxoAci$XW?8}Yn&Rg9L}Nq56_UM;Pa_DXH#MAQ&>&#}bu zl_T1DCwfJ5oln9count = 0; @@ -381,7 +400,7 @@ static void _destroy_code(void) { free(code); } -static void _clear_code(_code_line_t* code) { +static void _clear_code(void) { int i = 0; mb_assert(code); @@ -392,7 +411,7 @@ static void _clear_code(_code_line_t* code) { code->count = 0; } -static void _append_line(_code_line_t* code, char* txt) { +static void _append_line(char* txt) { int l = 0; char* buf = 0; @@ -410,7 +429,7 @@ static void _append_line(_code_line_t* code, char* txt) { code->lines[code->count++] = buf; } -static char* _get_code(_code_line_t* code) { +static char* _get_code(void) { char* result = 0; int i = 0; @@ -427,7 +446,7 @@ static char* _get_code(_code_line_t* code) { return result; } -static void _set_code(_code_line_t* code, char* txt) { +static void _set_code(char* txt) { char* cursor = 0; char _c = '\0'; @@ -436,7 +455,7 @@ static void _set_code(_code_line_t* code, char* txt) { if(!txt) return; - _clear_code(code); + _clear_code(); cursor = txt; do { _c = *cursor; @@ -444,7 +463,7 @@ static void _set_code(_code_line_t* code, char* txt) { cursor[0] = '\0'; if(_c == '\r' && *(cursor + 1) == '\n') ++cursor; - _append_line(code, txt); + _append_line(txt); txt = cursor + 1; } ++cursor; @@ -564,6 +583,8 @@ static void _destroy_importing_directories(void) { } static bool_t _try_import(struct mb_interpreter_t* s, const char* p) { + mb_unrefvar(s); + bool_t result = false; int i = 0; for(i = 0; i < importing_dirs->count; i++) { @@ -613,7 +634,7 @@ static void _clear_screen(void) { } static int _new_program(void) { - _clear_code(code); + _clear_code(); return mb_reset(&bas, false); } @@ -628,13 +649,13 @@ static void _list_program(const char* sn, const char* cn) { lcn = atoi(cn); if(lsn == 0 && lcn == 0) { long i = 0; - for(i = 0; i < code->count; ++i) { - _printf("%ld]%s", i + 1, code->lines[i]); + for(i = 0; i < _code()->count; ++i) { + _printf("%ld]%s", i + 1, _code()->lines[i]); } } else { long i = 0; long e = 0; - if(lsn < 1 || lsn > code->count) { + if(lsn < 1 || lsn > _code()->count) { _printf("Line number %ld out of bound.\n", lsn); return; @@ -645,12 +666,12 @@ static void _list_program(const char* sn, const char* cn) { return; } --lsn; - e = lcn ? lsn + lcn : code->count; + e = lcn ? lsn + lcn : _code()->count; for(i = lsn; i < e; ++i) { - if(i >= code->count) + if(i >= _code()->count) break; - _printf("%ld]%s\n", i + 1, code->lines[i]); + _printf("%ld]%s\n", i + 1, _code()->lines[i]); } } } @@ -663,7 +684,7 @@ static void _edit_program(const char* no) { mb_assert(no); lno = atoi(no); - if(lno < 1 || lno > code->count) { + if(lno < 1 || lno > _code()->count) { _printf("Line number %ld out of bound.\n", lno); return; @@ -673,10 +694,10 @@ static void _edit_program(const char* no) { _printf("%ld]", lno + 1); mb_gets(line, _MAX_LINE_LENGTH); l = (int)strlen(line); - code->lines[lno] = (char*)realloc(code->lines[lno], l + 2); - strcpy(code->lines[lno], line); - code->lines[lno][l] = '\n'; - code->lines[lno][l + 1] = '\0'; + _code()->lines[lno] = (char*)realloc(_code()->lines[lno], l + 2); + strcpy(_code()->lines[lno], line); + _code()->lines[lno][l] = '\n'; + _code()->lines[lno][l + 1] = '\0'; } static void _insert_program(const char* no) { @@ -688,7 +709,7 @@ static void _insert_program(const char* no) { mb_assert(no); lno = atoi(no); - if(lno < 1 || lno > code->count) { + if(lno < 1 || lno > _code()->count) { _printf("Line number %ld out of bound.\n", lno); return; @@ -697,18 +718,18 @@ static void _insert_program(const char* no) { memset(line, 0, _MAX_LINE_LENGTH); _printf("%ld]", lno + 1); mb_gets(line, _MAX_LINE_LENGTH); - if(code->count + 1 == code->size) { - code->size += _LINE_INC_STEP; - code->lines = (char**)realloc(code->lines, sizeof(char*) * code->size); + if(_code()->count + 1 == _code()->size) { + _code()->size += _LINE_INC_STEP; + _code()->lines = (char**)realloc(_code()->lines, sizeof(char*) * _code()->size); } - for(i = code->count; i > lno; i--) - code->lines[i] = code->lines[i - 1]; + for(i = _code()->count; i > lno; i--) + _code()->lines[i] = _code()->lines[i - 1]; l = (int)strlen(line); - code->lines[lno] = (char*)realloc(0, l + 2); - strcpy(code->lines[lno], line); - code->lines[lno][l] = '\n'; - code->lines[lno][l + 1] = '\0'; - code->count++; + _code()->lines[lno] = (char*)realloc(0, l + 2); + strcpy(_code()->lines[lno], line); + _code()->lines[lno][l] = '\n'; + _code()->lines[lno][l + 1] = '\0'; + _code()->count++; } static void _alter_program(const char* no) { @@ -718,28 +739,28 @@ static void _alter_program(const char* no) { mb_assert(no); lno = atoi(no); - if(lno < 1 || lno > code->count) { + if(lno < 1 || lno > _code()->count) { _printf("Line number %ld out of bound.\n", lno); return; } --lno; - free(code->lines[lno]); - for(i = lno; i < code->count - 1; i++) - code->lines[i] = code->lines[i + 1]; - code->count--; + free(_code()->lines[lno]); + for(i = lno; i < _code()->count - 1; i++) + _code()->lines[i] = _code()->lines[i + 1]; + _code()->count--; } static void _load_program(const char* path) { char* txt = _load_file(path); if(txt) { _new_program(); - _set_code(code, txt); + _set_code(txt); free(txt); - if(code->count == 1) { - _printf("Load done. %d line loaded.\n", code->count); + if(_code()->count == 1) { + _printf("Load done. %d line loaded.\n", _code()->count); } else { - _printf("Load done. %d lines loaded.\n", code->count); + _printf("Load done. %d lines loaded.\n", _code()->count); } } else { _printf("Cannot load file \"%s\".\n", path); @@ -747,14 +768,14 @@ static void _load_program(const char* path) { } static void _save_program(const char* path) { - char* txt = _get_code(code); + char* txt = _get_code(); if(!_save_file(path, txt)) { _printf("Cannot save file \"%s\".\n", path); } else { - if(code->count == 1) { - _printf("Save done. %d line saved.\n", code->count); + if(_code()->count == 1) { + _printf("Save done. %d line saved.\n", _code()->count); } else { - _printf("Save done. %d lines saved.\n", code->count); + _printf("Save done. %d lines saved.\n", _code()->count); } } free(txt); @@ -845,13 +866,13 @@ static int _do_line(void) { result = _new_program(); } else if(_str_eq(line, "RUN")) { int i = 0; - mb_assert(code); + mb_assert(_get_code()); result = mb_reset(&bas, false); - for(i = 0; i < code->count; ++i) { + for(i = 0; i < _code()->count; ++i) { if(result) break; - result = mb_load_string(bas, code->lines[i]); + result = mb_load_string(bas, _code()->lines[i]); } if(result == MB_FUNC_OK) result = mb_run(bas); @@ -888,7 +909,7 @@ static int _do_line(void) { char* path = line + strlen(line) + 1; _list_directory(path); } else { - _append_line(code, dup); + _append_line(dup); } return result; @@ -997,7 +1018,7 @@ static bool_t _process_parameters(int argc, char* argv[]) { mb_unrefvar(memp); #endif /* _USE_MEM_POOL */ if(diri) - importing_dirs = _set_importing_directories(diri); + _set_importing_directories(diri); if(eval) _evaluate_expression(prog); else if(prog) @@ -1111,7 +1132,7 @@ static void _on_startup(void) { mb_set_memory_manager(_pop_mem, _push_mem); #endif /* _USE_MEM_POOL */ - code = _create_code(); + _create_code(); #ifdef _HAS_TICKS srand((unsigned)_ticks());