From c596c236299c572db0f93871f7020066030c206e Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 5 Feb 2021 09:26:44 -0600 Subject: [PATCH] more robust symbol resolution with nested structs --- bin/onyx | Bin 340488 -> 340520 bytes core/map.onyx | 14 +++++----- include/onyxutils.h | 1 + onyx.exe | Bin 395264 -> 395264 bytes src/onyxsymres.c | 63 +++++++++----------------------------------- src/onyxutils.c | 38 ++++++++++++++++++++++++++ 6 files changed, 59 insertions(+), 57 deletions(-) diff --git a/bin/onyx b/bin/onyx index 3705eefbd27d343434fb7ec8923be949744bc31b..54b3bfd9b9cc7fa6687f00a274a8d38ea29372b0 100755 GIT binary patch delta 48477 zcmZ^M2Ury6^FRA8DA*1a1VjM=6~zK70wM|mdMMV!5;Zogu`Bk128^DUvtb;KJ@#(I zh+ywEwnUA+M)xH4h7JCo**#SD_x<}kxH~iNJMX;n&dl5Qrrmd0d*5YNfD|yh$}Oi= z!(==Dw<@iqRMW}lk_y=Qq{mC%!o{=7jt(2Y>DZDQq|WLyeYhoNa_3s<j&_mljF#dpyQH5@oERlNO>438 zn+gm6knE=HPihixj`a^RM+Lk+XNn83*3Zk!GkC|^*(uG^4z8?YD5Ittu_4|(-rq;* zkmj(eO6i;1Ij3QYH_~eOax0=&3EvOfRD5b@VP_X@ZXOT~&H;brM4K81SRd!+%Hp*B>*|zpx1lFNNEO{at}Dw_&zm$bYMy-Tmzq;Xo5&*{M?m6K&-`O-aXG;@BICLwkmbrbmEvnFLjY>^j0aO3V4r2nW zOQ76Y%7?U4>2+L=uGV;z_-t?XYtlNVCzS4OBQ*O=SecfYK1QmVR(t!;(!jL++x?~a zY5#7YC{;=C`A17xx{|hi=L=~^+M3J+X+ip{%&JoP%}beil5>LTt@4}tZbv+0?%lQ?^ZVA~|8XjpL?PxR|Qd*?V zJnb#jNZWGSTa;LrcJ6eT^mn?`pNYaP>SwLuIX3l#A&ZYvH7(_AeXiZv{>APLkyz4r z(^2J8dg!@Wsr2k=YJHlsI<@r4=`+rU$kK`Q!+-xQN%hlOUwSTOrN>;}D5Uaf&#uHu z|D=ap9WA7;X`8RRNtAx{dM`;@o>uLquQV~O<;`FzA${`AP)UkS%e*yO>YrBY_Ec0R z>vo<;${4k*!A5gTkkK46zOFr2%17yxcHvG;@jh);O&LuwJ_shhch?KMVQFXXHjuid z7rz%MN&ac!_Y9 z%Ja1AFZ@NZd1>Nhq%SeanJ+0cS%fcxk-Qo2_d*Re9eagF6LJa>gecZ=YlJsAC zh1?#JaEeQxlGjO+HvVx(igA#XjEaS%07(oUp3$=*6vb2Ymm6F`0?UY$cnj!s5 z#?sP_G7sal+RRi9B2H`H3mFkEQoMsSI%A55R9=#@GFFt8D%ndh87I9YgOF-xT=kKz zNYWVE?klBBtEjJ^6eCT}*ytzq7t$1RuO!7w8!~!SlD0cYBQxBpNzmocjB+(3Hz9>n zogk^JWTLr2Ql9iKV{Wk2NJu*}F4vY8$&yD#QmC|FlK#mE371mrrN1dNQd%tSp!N-< zJJPoq;SD8^ica-zqk5)e$~NlMQ`#rJ$nfkX`AE|FjQYK$;}MdP9DbA5ON(jiZ_-LB zhuW@?qNI$Bc`Kyr#YB;*8A)5EO_CUQEyHh{bioIdHy5PYk~AV?+TYR-Zm2GrZ*U>$ z*Nns$(xVd6mW&pXFbU6#gITGaoQ+eijo58%f_P%^o&>$wDZ4UW$RbThqv)qXVxW{s zuL_A;QYETfSolhb)U>b|F72beg~fc@QCadxHl*%C1DOjOO&?Nnd=06K!6YTe*^uf2 zbV^QbLu#P<;+E7RCCA;6Izgp-7*gk|Xs@K?l$^3j9aC~DBvntz@l5KLl2b0JQ%X+x zq;@Ge-iFkQ_RPk|kh)!c@i(M?Kt_YNUA*bK(HxuX@7U8=+rDA|*czsMKpJDpVZ^K3 zoxYFmd`RuAjVZ}Kc1cb~OR|sRT!`yE&RwaDs0jCQ&(54>ZeqXA&Q7u$vAH-uf=`&5 z*c;7F+}W*UvoXhLj?6T0L<-5mBi?jB!E{%7Xv)nqn)|ya8%;{~sNPyZiLG*s7W;F? z@FTN29rwqf*C`n>S^@MvHPZOks^M!D!A;nR3KY zxj8*I?-=A_S{#G{%W*2p7?v=3#PkHyL!}53sZN5SN9qlgkLyH72yJp0r9POenjvX0 zsucX#Ch&P<_@jwU63qSzk5#}h&ye~AWhqWD33FJyDc0ZJ(*9A(`x1t!?Z7trO{{+* zAHx(MHDZ8aa>@}2Vi=~JU`)!mAUi{9Z{#(a9r6mZ(onF;^%Y*xUe=bXp+x~b3i3qW z09skrAKjbju(h^IOGQ1IQE~tn9bul9B! z)@+xelu5}cVfg7G#u5f^E-1#)nDU>a(Gr5Tr~w>|@=9 zv~j`rt?6nWn*ioyccm~8sFDxIS$D&XSpb6{8_nah1C;+TiZGgDvjbd>tbp+TKFJTQ zLq0R0Cq;x`@&VLHc|d3xO@bImU^E@&&d2dl5H-sWrDL<22&K*GhOcz@~&HUj($($1o)rIO`jX>TDG;H_=+v>^j+jjV!WMQGSG! z#^W>7WaUOru2g>?Rb;ebzBV_3lcr6VIW~tiq|9fed4fAM8lb$yh|Fk;dj{4!i?ACV z1os_yQ#?Y!)1>O!2Td~~!`c-YZPC-nW|P5rQ7S^imm(uR7pcYvLrPVxI7Cj(W=Hue z$y%WhIR+vhab)(VtP&EU+BTcOz$*-vo_$Su9-EstEBf2EM$@Nn63mrNFI5j#>hV~T z-FAxOwWMBf!#4JmR9w_`oHLd~ghOfCR$NpRuVuPYTvT?duVIhK{d#^Rh?3DA`DYo0TrKUpPC@ureh_9kN6{ptR=(%F<4N0gQy}MrpX53 z>9}mPDt`r9X%H3a78Yu7F&d{_Fr;=sR5v$;`Hxi+EZvMo^RQ>JmS`!{5i)VGZmMPd zOQH`3Q8Bq5cLL}o@@r>#m2g0^3t+Y@#2-b>mtkUK!KjrK_n*YE$l!lBlPY8ew zxGS|(dR##EA~o1pCIl#XFjb@3)0lE7D0_XrxguX-EvdV85G{2UOOh+wLkP=+Af>LF zK{lq0=GeKDOE%m4XR4l7gM7*h8mi!rfrj`6^42cz^XKK!sDWg~F$ zmht}1N)eQZ>?>@!wb|#l{?2A$bE8G5<3)Ql8eGCd2@giEg>qS+s$U>?uYP&SC_HJJ zH36k-{lp0FkR0-aopQVf1Te|gAkb1K1jvTeT(v`uFs2*}Ql`Tlt*&aeSWfp;F*@1V zS!ETYwP+vJwV|QWVM-_UJ#wxpk*6}?6)VhjihX64FtP@tIZBvA0$JD@LCn&jA>OUq zP}APCs9R~_CRL=-rNxHie(+8u=_Ode_^j8!8vbd7j4+%(xgc(nI%@bqQ;$ZopgZ5L zN-)GxDa!TYhWd>$sNk=7e(_YaV;I|j$=+Xi_KwBm8U!i#)%W`TDGigW8KyjBdjv(Z z*6)~8%CUg2tyNh$p6!v%FLHtEr6IqnkG^m+hy{z?wiPKKF&-rw&jV!}GU1XLX~&o^gxX z1dD>MRe6)r&CXUQP&6}a3o}F`7VX7`5Eo{RLOkG@rYvY(Fvs5+y7Xc+(7cQvPa7uC)wWU94t-EL?ji-0+!c#gQ8k&M4-#A*X+RA&+~gsIM6>d!b4Q3(hk0%b|cxD`9!wo!CHn@Z0eQ?VM^E6w9iA- z5H(-ZQx8#BdP|kcifRVm92P7x{gW!+cIsYM_YKpl~r90*|WeoPvoz{zGg7-0a58kbcWM;687vvDXl+M$^^aDhEHF?_cT7x`K% z(kJ+hlJx?Gnjtq<k7_ZgG}{w`9{^IR!&zDIP6#fl z;B8*gX;0DExrdhLC8k0U?bQeJEhj3uSK~}A+e0MIbQCtFX4*sD%89n3&kM>Z2fc;9 zpoiszuVeq$oY~=9Dp_9m6%PWWtmx04>*`O@<;7sP?XS>D_sx-zC=;(XC2gi-61JWeA%r;6V8|2-cg@HLwvv^>pw4%pe!b|E$#k@th zbeS4^i$>mapQ;@~_3yRrx{FMGdV(B1x`iT0~F6K#J8WA2I z_g!9Iv^lN=H>IW3 zmPcL{McraPk2y^n3@Kb)sar)+P0X^=jEW*cd}F0k6-Ai$yBESPdZ)A6w}iX`pbp)P z7FXkc5OWv#RuY{>?r@q^Nw|2Aey$cd29E^uXw3EBDgQ409Ig&hdL@|RUAk6DR4ID= z9qW&$drQbrS;RVKK2tMiQK!nnU%Y-qlPe3~V*M5XtMveTX-j4FxDV(U5*SR6IC*4Q zEte;~uM8CqQJMODZkI8wwRW+t!5S|jM?R|qln@}?!;MU4KY$vo<~M2=ro3!eFq~VL zal2Vu$IbsN$vIjaAly3VwEAM4)+~%7(fs+nn#&571cEr^z+I%8Rzt5bol2Upi4k9Pw%a1?DrE z@k(Vvcqonia`Tj6+E^3*FqW>>gn#)^`5@t6EaHb;?)h1|A=ErbR4>y8s|*M%4Y<49 z%d0=IP^EgttRN8}RgZ;8Sz|OQd%jQ$7>I{bt^%`(vQxVm>jU%$$~zzWH&}F(qA9AD zs4wlO3AIq(wLYKAbEZwTP~MBg|54tb8P95o=2Fl;NS|Nct*2^v3LXl1p+Z06zuvQ6 z8ob_PJeJf7jT}V->xg7@$dBuYkq8exLqtVsO~&*P;UYm-OY4fdWgiCdvJYk|cBZ~A zMpFlP`?aJvw7?*GT30NQYSN5QsI*KFEvqZsXkVykfOWZC#;vaT6|N->3IndLhRawQ zCdx=sDD4OrjWOZ+6prP*@iera=r3)g8}&r0RFrx|h;bsX4Bd(lV?7cBbMu;Gh#&kW z_`)$e2gt)KE|$m`8dhJdaD8}9^(O@n_GhV zXhQ?hAU;N;#cH(gnU(1P$h$CX%3c?5`ZsugW)wuqvIA3W1;A+S&w|0@m&OeM6D%Pg z&p?!qrKnazgviy@z9Hs^TTA8U#fSfwyhF`~JkDUuTOI@gmZ6-L89XX8JN0k3ai2zyr07&-XV1MeH8KtE@-{TLlARI_XKkj^ou79Q&y{ElH#L~!uqR9 zOr{SFMKOXyK7d+--1Lw}KCF?w zK9eI@2zWAtfB={xC<}OOVUC=mWk}O9DEIRD6`}Mf5#T=*2@x~lnns2fHc#gsGThg8~!O!DcjoelvZ~06271hsg*vtd09sI7)D)2)01O%81-?8P*6$}5$!Stt%O0` z=P@%(xDrimBAR&CJ&(4u4DgT2^g$N1ad}2y5b-*StW88GX+Fgn#USU*a2}=b5JcTr ztVf58A}r_tqAEsQSfW0B%&rJCFm-S=JB&56!ejlNUm6C-I9pmtcsBDfx%QyIco8Qh z(9n4FX|-v3yoj%AEwAzjPV5f=@^{0l2kU_ahqIc(WiJ(J?6q0Vb>hX5WJsv z2Jg{^k~kg^Z~4|gAi*@=KTLUU%*~54WW@ScvaLP6N3|9qB{D3=1D)5vredmicAefd zg|jT83e6x+3e{^S#<@26Q%z{(M}90VO(&a)Rng6_BZwwwL3Gn)n205E`c0UBuR`2U z@j}Fxh3+aK=ro>NjkYET5Am`rok|cfQUfwHN0*~eNON?T4XI0W45633+*5B~OAxLfJr#+F*;TFO6s;f=ar@A^4jx#<%UY5bbCq zs=5rQ$^$R7_UA#jGKOBY5v{RN*7zGS3j@Z>--x!7Ggbdq+`=%Tcv}%D{YJan3J=Fx zYN-xm=|)@OPQ%)Ya#9zX*%r$7<^(?C?HRg>C-y?~+Cr3FRI43wccm`v#Hpf(lGz>v z+;}zBX)nTyCVxhBrqS(1J)eM8+*Xa8)nUyc9%=BZvVBU9!>C4xOhgyji$tjz)$IVT zX6n%a1LVYv=^ey78Jm|ll2T7PL;E_5GBrbYpsbWbK8n}dPkC8(>KbLpH|Qf_aGszk zbzgr%1dCDB9e{YU|6ce+1o&`Ni*d~4^jUelerJjN>kl?&-s!^9(~dV^xS7VN+|of; z&QRCyMOgfbKh@}p(69l~1Z#y>PYh){p~jt%iZ}AICb4%~LWXK7mBd%77|tkY=27r7 z4+%i->U8^i451w9_4lHOc>}DE-wIX7b0$pY;Jh!? zg;pgi3`rxxlBV)xAi?wo?CYTi3*MiXFhh2;`Wg?5o8! zf5RQuT(z@li^vr@CWE<#jKw2v%40+7Y?QC~)4Fb=r?iDibcc_-v zc|Eb2yoLt#6y?Hx+YSLNu7{3u!-XtjNHr9rW2`yK9_?7t6Ao=o;JQlIZ*AQy{PbW? z(be%MIUT%kL@c)N!j$GujqyC{|@~`l8du9 zGym4V6_i(Jvs!ux-R_40qdPhLfJw?cYVw2VCsm{0e-KTiBzpG))UlGn`->LR1e(?# z8jYvz{Y5?Tq#Q{-MHwnI0J@2!paH@IBc`SUu)yX?g9ZqH*9-fg6_ca&67LtFMlkW> zjcLsQQQ57ojpT;_2vKToP(=x%e+OXV(u{luii$NVe)#nDX3RNjPb>o|20fPd2bFj4 zX~aO`T?pO2opOkN#k-V7SpzX>uRjw~q`Z@p%HV$qJ2uPvuyr~((WimJBYs{x#O!u) zCM(1!0x_b$O;APUfeV^652snsz(G^NcO1ru+?GCQ%MKl_>(mACkUi^I_Q=iDbr2>e zuiw#_L1-Z;aFA#z4IpVSmOwUA@L&-dXaBB1jV@VV@+=!$V`+*trvT|(_DtoH4rO)c ziSB;dG+4Ox+<6G@Hec%k2JhkuMb5)RalZE{Px)~7)7NXJ97UtQHJaXIR}+$2)(AT- zMjXQMIhu#!aTv@sQ8UnpRR2oDGZ&S*;Vchs<*kq4>S`$~SDx(=C!h``>C z2)1z2c+(N3IHbTZD#3&vt(BxaLEuy=N0pa%`1Jt~vzU^Kgw0JOP%@{_!p4D}vLC5Y z#5)wBPJ7T4uT?<~VGZvPl^rVTM*Q55+vb}9$Zt^++8Jep<^N&Q=R5-AwLVmLgz!#& zTbTWycM8S@X!g|$)h~d7v6WLAs$$utgozP;olr~O)ZK-==&}@9mF{VR$%kdLu4I;$ z;y3odLHcU_Q7R6%LY#vcaFB{OK54^D_6quY1RCcuy%~XF#8UDaiMaNv5Oo}hwf^=r za-^tK&Ka2!EY&^cVX=IKvm(h_Be14_p`9Z|MgLo@dvic@?tsRjX_(YWYb#i!!a_x- zJ-=Ey86%k-zY#^$135VR!l3VnLcGz=ukJ~KDLLLrbw|0RVXzyeU4sZ z77i7S2;`*JyF8|x#jm{9;Ko_KN1Oyxxa8;{>mjv|K|gOhF~p~TP?&W?t~>I58H{rE z!6d+%;!B>RM8h(3?sHR&3)`!%U1F+)iO(4?8Zt_h@&4&y0ouKI(`6Wk(R73lB=##u zt44{CZg*Fy%h%29dHH%oWkgXPwk3I`Ua_QX@ZDxDgCHGXLl)kkzz+TKygd>Rb|wiAC|UZ zTAfC@Q0PRAO?uLpiNdQ)+ZzRp5r%q1ne9fKCSv;8gpN)Wby^)i7RKMRXNP z!XDKW9n@5sDZcxt=9s{afcd-X3(8>^YMLw}8m)0-NB7A-!tNJ&WxguvReo5$v59J5 z8dk*~YO?}1<@?GEa7Bkc^#UDBM&qrw(9>j5w@j12cq*Y;QBRAuDwBAgA||1y*o*Vj z+*8z`!IMNpn-}MxG0b06a-^gx93SSQUOQol>tKCZKdJMSklX82ORSHq%H;E(_>dB| znx^i<9Ft4Q%0tVkJp(at80F2VXy_FCN7x6wr!FpjbVV;`o`{Ld6Xo_5&ex9P#gR1C3XbBT znD(hjGl)d@XnKZD?@Slgex*udN3!B` zRmJB*@zrm&P!-?AtSTNe=rKOn?5O{fC|kA*3i;duUsSJbenCTi5^l+lXS3vyH}TNC z+oc#>W`cSgViFn+65mps2`5wDW1h!TQgo+w4DZW_Zz<2_0mj0n+IrBmHgssp3$JD$ zYYz~N=IH#Lr4P7#071;H>@l~dLQ}DL^yxWOm?~TFrbz=``&Z)ry|Kq{wNQ;5gIw)5HXE z_a$AQCaU?*#VrYF)-qEyjTv~rZVVU(^JzNlSjx(rmsHIpnuyGkG{Pjh2FXu<%~ zjtWl~qr}Y;G-FKLKbq?VfoLxzc(@QCH5fcTW7Qi3VL z-%(i-PR>7zxTZ@{b?atz=fC&{tO{lMXc9GAqDpiI59QtwRdEBD+(;w)Y2+O_OwTQ3Z!APL_Ozan6wzpziegevp5{wO1o!?$eQ;q z73`&~wGje)&r(k5@e{cBtVjW~g-=QU;;PU3s1u*3%826h-E2{_`2C`2a?=x|Wn6#~ zM!(D!RfXjZ9hfbGMD|5`i6r9cO7fqB;p7V5CD1l-bC#p3ye1h}U`_J(2Q+YwXeTTy z>BtRjj%9o5J>fJW7Xn%6I<`@f*$oAaEC%@fuA5;<*z(URnEKN%xSG}3c)g;6aCJd+C{Fwu6UP<9oI)`dB$cBB^F)|f@r*vq!^x20&nS?DSIL)<`76Gu zPpBgaKj(b~(XGfrqC(rvV3~y-0S-AVh1Zi$dFq9Nmj>q;$KX7rJSTveGG0F2q#|lp~RYP?|aLihxnpw!&U)3hsiidJLlP1m=er-GxfJ?~} zNq(@yyNN2GM%_FKh$i(phwGNnco%_a9&iPcZ;xZYexeY3vbr|Qag_%eYp;< z8ZBQe8i{q8^zUMk5VirQEDKoa284*OtkkThV|JFO{F_ewmWb#gFM<$uOjvdFpzTXw zCqG!}{t|(0K`X}uA8Nc*1iJS>t}6n^7V?xM+sL#ONz+Htsij!*a;MizMKzD?EOl0J zj7K&Np#qG{cER)h4yAg_MCdm~M+&=XaZeua*x?D64+m?g{4mM<^1H>`g zSv#SIxQ2&#SwOeXpu3$QbxD@nFBbpYmd1 zu9%dn=fD#`pi-9Nb76t`-c;Yj{uViVIy^LKEj?O?SXqla*TXq7w@};lqEhucf#}~1 zvA4PP9oF$q`om~Mj(R3O=u*tz(mD@4C`(;7h^bg0xw=t!lC)8b6c?{)gtU#Ku^6rbqv_=)QH}<05_KqMGv4;$O?-D% zOK8{(z{v)5-7HE~=#KzYplN?E=r+x0&Su>6sElN+m0~unoMq=JrO)fc#_(~cj$;gC zALy~&d4O|HkHtDzo|2`AiW>D?~T!PmS&SB(s4@vE@ge*+EQEgC2L>C?r(Q>$B4k1zgS^|x`U zU;NFFrx}*W(WB5oeU{t9FT`uy+x0O6p#8tikehopV%n1plka?bKjLWd2*ZRgGC8; z`itmZIokK?ihQ`1svQ26n(l{)e;%XB`*D4-RnP3sd!#A0mg1|7qOQny}mA$mGRb|BMHu^PujfL#hhK6gwE#*R|daj{zT z-bc!Dbh^I#SgLYlJb@+Kt~BTbCg||X6QaII+DlhYh%v&nnA)C%Fm-6bN$gbpxQBC; z`Kpx1Cm~cN741XDQzBk0TuA#}WY>(fr^FsfJj|lA4}~91{}Tg?G%9&U_|o-1af|~? zUS}}M{Wnt^Crm$sm^Q-(++iTp285jjaC@hgY$gLH8}NXES~ei^9GG4spYteSF2AR0 z@7eqgM?R0jF742`EI5yh$u{5_0|7Rm$prxC|Im^xVPLEcczprO7?-x&82klW8)pMv z{e@)yHlW$x0RBv;$$xY6r)$aIG1A)xw7Lj^j?5OfW{57pjt`Ms?6-u4nQ9Qs|$ zy^(AqM6_F^0t3Vk#w_diVbI!6G6}yVuPPR0?uOh>?O)#jMShRb z-mBdKtN&JOxltDlOSG24>lSTMUHTfV%ep++C?9voK(`0rwfG zV*?`Y1Guq*hTezLep;a=x8BEDjLI2>{uMVRoB%oVP$7}sRk@$V8T*5uYi3e8#3Ms|~&u z4KO?d;A8`OGq8=cWZjw~U>DXHAB#-zV zwtLf$Zy|5mEG>QKr8`vKcnu4g;Y! zAnZMW+ZHX^Oa@Fg-~j`*Y(V4()c6_={fOGn{Q%nt)!xHCqLk}qEqmHWY^~j`kN>g*u;`2;e>MOZO-OvUE<-wi)?L+Z- zIM2UknwI=z9{R9verYZH{!&h^BR)=5GyXCh@2hO@C-L4wd#4H#fVV$s+($F8%m$og zAl?R45&&LI(UMJIV4)58n}Jvx5GVt9oJ!qgxviL&YLl6f4Q)V>Jpd&|qfBLBwhg#x zFDHtkD)6;+COOD_=i~Q6vM-%+kn2cIwfBmJkoVKd~H5~z1leJ_&F)+sl++ZNW2Gnr^aDSqf%*=pgA{}r-W$W6I z;YEPFH9<=;tB5>VMA(2jMddJYd%Q-OSro}kHsApRwQN9SF#y-bY02g?kZJ?60q`K9 zxQs!j)e0o&hf#(7FtOV?(uMYZ(|~1M(Q~umSDdP~1T(>5k!rI=9;7 zCMWX9&|U5)E)2HS#~nGw*??CJ_}hSH9#GzrL7eQ1^4#c-ha4*EsOSn5Q5G3)45XoD zQRklqYAmf~kA7S5L z)6l^3a7bV!D;oFX z;kFM2c*{{`Rz_%(ja9sbV2%mEzLk$Mm?nD5HN^f1+UzZdh<<%}-r+}%K62mU*ZW|8 zh2>G45J>W;=f^QnpVx<{M{0eF(iI=MY{`DE1<$&AkbMO?GI?QRoq)p%3OG(rZ;a)U zuO^J0^z=L|z zWnmn}_{zTGSQz#3mBYoxUi6!<9D;86A78nGxED(wKz3;vrnO2ltZi63@dC%DSPJ%& zU7As>PQoQnfihW-{e1IG>CuYD6h+ zJ=?9j8uZjp_A1;E-%e9b#*mA@yi&|fq^*_YAX-vcb`swu()R&!Sm6q6iDkb~3h`|6 z7Hz2{*ApvyP*7z#w6JQey)}TmE6ENbzy^F@NiHVcqnefFuo5suyJJy~QOs~jcP=U% z=b4yPoEd;5G0BTjk>Yl@uY_5p0(Biw^bhK5xTx7pEBgn|^Smny8!5JR)iRw9kc*4q zDiAJ((d;Uyh$`g!E^01K$lV%H7$3;7Qzmwyb5-Q}QWO=hD!-7L&kL06Nu?+vP;Map z>P%9gtQJ3CeGQ`9m1HL@y#8KI4lAT`_SW8;GOs%nTphLIRn`0oFH%utttJ-}?K?3$ z8xIU;tHXOQcckZmP$fPaW2Y?W$O*zl7xfuLJ~hxFel~zh7Rq;8a<%sBzoYtrsG$$% z?f=~u<|63pWG^~sl%H!tIq5b))l`xVP+5m}VAl1;hxS?#YK``^r`bV3Cby@vc;a4J zv0%AhQz~HF8piI#-CICdiVs*pi-P5{g-h6DiKKfI+7paE?QsY_ z50+h$FNYK`{BzcZFlOa|9$V@Rup9K)#%qE7MUTzB1Z=V%>v90tetK*~+I4m9DYyhy zbk_10G%O*LG0cU#?7>6H^oD=b(dTOZJ9uF|t(NSX?5HQM-3#K2I=X7PAtWl-_1Ill zQCE)Yv0fX1-Kxim!@&Nk$CfY5`byQKH~azYpgJ_9w(L^9gP!_gKd6oL*kj9q#bMRj zvTMgOdg7=}Alm7%hmQjLsJ5=I=`7OUdhD4~!0xS0K6TLSYxPvu%b?EDV`p#!kJn=Z z&I8+9kL}D2+)9rfjP_OP>9OTJe*@ZIkG}LLuqEhh9kgpsEnTh3Ujgy19=nwFa$1iK z`U}_{dTixmz%J8cJ#PRzU5_o7z69tbJ^Caou?r=K$gb6mdSXe|VJ$s2bUm=x6GfJe zh4jQhhd_LW4-tK}A#lz*l&gAGkM%;QrySN}FR;!w2UAd8H0yjlwF4{SM?H4eR$vF{ zvEi(qc6w|docBWjlqDSvO0c}oxB&Te35>9NswfgP*ImTSEj=$?A?UXE`qXl5wdHB3)zb{j-rJ@z8|Mlm{% zEFIs})K#k3K@e~2u{G}jds2^$UI6TNJ=TRSZAndv3PS{$rlk6p*cZ?DIeIS1^M8uSbzCI5qwOM!M=e+$%udTe#J{*8KU z%2i9K#XGfdKB_i;P^pvRV*f^$d8w|aDk}13k9JE@02;u~x2mmL6OF@j{?i>d_t9UuRUOR`t-XqxIC69E^JCu|qN5#ty>l zdT7_Wdg5B{Onmg%%WShn^w=BhpRcOv>bjNv^JcYq5op%qdg3>%v~7CqPIk{ldh987 z&!6~VT1P#$+-7#qSUq|hyJrpB5`kuQ*At^zXF`uX!S4BApsuPzam-M; zq{rT8Z{4rQ_F)yS*JI1~WE+^PN7rN9oft^n>dP)}ef8A)++*UVLw&hd@_$uzG7aEH zxunNlVN2ex$FAVWy?f0PC;E=57QQ z-E<^((^Yh}X~qMsyL#-?)4-nAV?B8IwL_1s&uz3!kNsypu+#O}a>TZqq(>XJ0gG527Nq-O!Ts&29{tT0U~?3X92rfkDYiC*jajP4>r89dThB-+}u6&=+fLTp_`84Zdy;= zJ{v?|J$5QPCc0^4>G-CSu2KWIN4u@ZUS=mdsmD%XrES+^zhmcJQi-CX<(>&)da4U* z!RH(faS$!5r;b#6+5dy(R)12Fo<(ynTTv(Rd+y>7>al;bO>ER-6A=I~|67@h1LyO# zJ^RDYc#0Jn{Sq_Pj|O#1e+rZ5Y2;NJ`TYx!Z-Cq!*}a$^r=95hNu%GwL)iapE;oEERg zmW$t=qhRa1z4*d zTYehX{VzQ_kL$jt0##@X5!dLc3EUpD_1Fd69OLxZHQXG%^w@QKfo-YBPM85~xE@>1 zzy{=}M;BQJEG)aRyhPlLq9IM>IZ{=Ujq(Q^L&-DBoy3a$ijNAX*I4f$s?tX>=G-)8bI>@hA+z+&5=2tL+S zh8N?VC@(>7B#M5)6s4Zc<>pc#ZEG&~7d7i?T%uZ_yldh3(gN1YM}~8L4|?80j>0|R zS}o;vl6{7$r94v-IsavpZ7r`6jXYfnG~gxcskdJ(z1k@sO6%xN3(~KZCiz=bt`OEj zn#dm1{ad(fCw-=dIR%(T=;_07Lg}joX-_?U+^Yig52bWMy?=>T`ZpgtuPs*J*Oa2r zwsQUE{qnImTc(~q90*=}akj|LI{XcC#p~%6-vL`&k8Ot4{38U; zPTDD@SJ&0JJL(1kXEh3Lhc+2vPfOa#ILte*y?oE@9ir)1)2T~V+*8U^zM=Q+G&@C@i_>^JR zD;vu?=Fvl1ol1TMNZs*8O^Ew`>9nIxjY^1AxBFP zHBs(@2!i5R- z`lSjqy0`o-PIdj+TlNqSLP_Z@H^s4^+I{2};*<}i^pWGl$`Cr)NB$mPQw``Vw-)zm z)40C!+ENQn+7>>ZJ*}Xahb}9W6ID(Nb^~&h**E4(n7&~1#{#+l{nWQcq9r5 z##5=SkyhGBs`4x$o=kGja2+5Iki@C7)PIN^uI)IO%Tmw~IjBelRm-?~iNlTq<%YQE z5;;g7Bj$N9Ib3v7pLOk#z=x_2MpU|sk5CMjhl_#kbZ0Ok5VjMBK$rL2n0W)S!i{PS zmP09dG3t-U zuyt9+g(i=H27RG4y(pFyl%xeCG&vQ#7XVZu#!T~U&?Sg z&f_|`Xe)X)M6T;(`V8hPw-mh`ExU*~1KUzVGLC_9XP2PFG4e#;507>F?Dg>L`YL>j zVywIvCt;V5m2;9~@X7iDVXGq6llVxj9^aWK)2@2#@F&3LW$SoUy$7sSk3GRL{I7yo zr%TqEFM!^YO%=w=E;ZH^Bww<6d;oQ}9$SV(__%CJ9507>#)7I|f6K4OC3FNFuND?1 z{Mu7%w|^e#EQHvktPzNx`b6}3);;;j!4K2}lQ-+r{#QJAN}QEZTrq5tAgPscWx@o*I8zv z%dx}yiL-*Dj{|^{mSAS3Xx9|E48HltXm6TiLYGx7RdyozC;1=o9Nz`}31=3R+w|rq zxxVN6+y9?dKo18U)THrK<%*3WkSf2K)Xuur#{$;rsi)U2IB@uIi|$Q@Ch(=IX>xb* z(S?RhlgG&2^FGqhCI~P%Kv{^KOgLEbIG4Jcm5r!6ATpKg(_g^EHeEw2#+sRGu86Za>RS++H_As8`nTt%8S2FLJaX!Xe;VWHS!PHlHEK@b2ggL}8pW22_0a zI~0I!EU35P=?Mz1BvaRv{Dyv? zEk}q+C+Nv++0XaXMV+n$yzr~x+lGr&dyd>gWV|MtgJI3E*B>dkvRsGG&5?`XP;N1j_FUN@@Qq{0Sdl9HA~z}4a|v#znx5i<%+)27^ou;Rc>D`y!N1Ce&%tZ= z@%-k=#>)NHV+_aNr$j%xd=Wn)M=yr1uI&2w<>wP{8E4KsxZ>pJ^yfSbG9t;DV9V;U=ioyaC{JGnCEKpe)go2NQ*lL0`C-S$Jf$t=EW|(%ceobGWsA=* zgrKBd2RSmIx-UY2S#_PpERqj%@3~lxaqV=nU>&lTD?7K-yv1_URzHvBQDlgPAGql1 zsD9q&SgJoZn(b5%2t2_G3+agjnfAb7$k`3=xIh3$RV?5Pt4Y8&B%JXPP`;MGM6N7e zTj{$ca=Ffzt%zXma3naddcSn8Iz)}$sb22NWU6xk>N!9*>cam^z5Rtc!Aj>*LULE6 z%Kx5mRuFXjW|>OooBv7? zrsH#80hyBkf||)xvuhR}%BS}l(U_lgkw#q1#M?IF5RKT<9FnY2Co%O9sJ2{@eN=o% zUw%NYSt!V++3E^wW4AxoMZKDia}mF#L9D-D;#MGr?|=SIlb6X=g>@utS|;~)dtO7b z!{u52&YiPiD!$_cj;niXCgwfq#y6MyE$p z_9sm-nq2&`T~uMU?B!W~7%MxZhWdze#LfGZgOV}vg7Wu%>bP1C6d6xx>S{!yMs#X5 zdX`31bdB7=bNEH>{NuFmC&ZigEdzi4)g|TX6Y9AJ*(|4M_8PfN$PxS+9vbtg`lEOl zHmTqLH##Z<;Vc|`j4;9FYMPMW_`x5UYE9SI$lkT@thXiMuY9>jAB{zrO@N=BP_zDz zvTtWojkOpnUB5-c*2;B!%lwTyzrlz%vl8$z_jvO_AD$1+GV}fJr?`BnIMDI6a$T1} zgH;_2#v|7BBEeM5U-6_;>k#;!+@x;nj;(lctYS)SncZYr}HQs9bw#E-2^zq$iu@AY3N(-Xgabm;TYz zxnPT2zHFg6=mwe>VTTK8m%@)ozf^eYjNj-S=%pIs*Qr!SW`ys!AZ6ca%G-ht;8+H^ zZN)*)L8qzJR?H1o-lHG3%H@lOoJKu(y2t(VR=F0g2_M-ikE*>4-AVzqmSeR}*JC%M z%j#{ogbT`pchKP9WslHr)g-V|l&_9H&topAY+eSjEX8llfb>f=>HADprEmQsq+hy> z_WdsV#n#K6LqqNQl)Kj z9oJI5*^f5*PXdzrF&r*+EkuL2$z|&%UifIc6>kZN$A@Hi9NF-%FSuYEE)clA+*@#h znSjwd z5#=%!pc$VQ9O9r1uwjDVOd4%(m*lFJ2C`Dx#>lW^2!CQAKIItZGJnz1blJ7!G#gj7 z2R*8IT%a3!Wna&W%!|J-h3w(yA-S+gzUVL7zfE=xym*d_PuUN2Fn`1^$=;YaItSmV zRElaG^J}x{JT=-b$5hVvqk#BEFpcHP;fsR!I>*yk)4>GO8UAMccGI367tmGJnX`O1|H&so7Rl^Es`mO~5?AsvFLts(fgZ z8>z$vwW?K{0Ew!y=@h8y6J>(NF~3Q$Kg;Dr7sOsTOT~8JBykxV+E)CUvug1r5?PTp zO&>c$eRjzH$t77Nv^64ml7AGcr}pDY(=$98dZT{9K(VA3Fd8oi8T^Jd@i!R4WcKkl zT$Mgrs(cA^z`>ZfTkWk`Q$`yTn@m?g#n&(g6BEUHX7OCCFAuaXY7EH**r{i!Oa zeH)h7Cc_R4WkKG{10uykZIgTr@fX}DF}e-X7%lioSo5xDYDxHs5=0a8@2Wufrj_bo z*mB+}mqu*5xKj>JuDd|hsxdK#=Y{S{B`tA%TjC662_wa)kMI$Jr>2w2DqsvdlKe4c ze5!O%H98&_>CJWgl}B3(6f}hM!6R656~{7-f$-Y6vh>uX5Tif&}eEgBC+E?5J9 z@T(BY;nHCYPn36CAn9EHN#J19`Bd<p{$iU32UgwvYwxr7nHfAsf3^lbN!?9i)!8?VjO)q!-ABKkyeJCDlgAM75Pz5( zx>t4kq*%|QL@i#x4QBI`q6XsL?!||ZzN+E%&DR-~ zakBxs*)l9rSF27JiW~#yJx@Qu7JuO1*5uE&eBj^Nc@F*fE}8$Xqdyd!U#l~PgOR~o z$5H>)U_C?U$1MQf|MjzI|XF`(U(aGk18791_{+L;lTMpZP=m zQRF7e$fOlp4wHm}`X;g5#7QRANXB=_fziynOVQP;4B=z+YgM zSGMLyeQs3M9%pYJ_7Al@^G3aK!UK~J`#%uezdriOF&12kH9nYNx^Q+L6Knir-g27G zN6Oi(QvXnAD6i}v*Z9%p`f4QB_?$iU(%q5wCWCT$hR1wyMHN5g+ixPaU(vfmVCX^~ zD*_mE_cDT0&hNwQzfskjDxmfrE7#lWT#ky2_Fg%PG3$jJ*+e|yr+*|O->AA&P_JF{ zd7JrfMBmx?H^Zl0d?Awb=k7j+Rj&PYd^8+Cbj_dR9v!;o=eTikYwkRX7c#W~JT|eb zPk&U;+v`zdna@A7ZREM8#Rtp$Uu&}8<6l17x%5Y$cIT>)>e{Pig_7g=opi#eF-s~?t$HL)u%0m^ElY` z_gA$%lvCh)2hY>H1KXu2&jQEK4P7m%+B$HCPYJg}oCWizu>l?A3g?J>RINZ(wW0u3 zb1SMQK}*nSkVU{<&|c^)NGjfXa2fV3@Z#ltfvUC=Wf?jhk^|WdDF>DZnS@8-<>J|B zr4YRgU#_cg9t!P%Bn7EXZ6<*Icmqf#q&I|@Pl4n*2yzD>Q>!86kUU5uJRQ&isR8GO zSW)J$LJ5VO!MPz4&L=_QA>ARpA&I2N5!St_Q;_KZMp#rW86rV!keLuG!~$6a-Vg`Q zSK#~5$s7Q~K^vd8SD@^Mw7|2R z%OR)m*y>j8Fn1u`tr-6lJjSaq0uu=UclaEV(LvQtK$0N5Tm;F5WI?LaHH^ zkRSvqhm9e3fOYMTOh7DZpVlf7C^e33P_zuP)Zds@hw2Roe-Pg?M9dMMVpl(C2QMW6|KoOvZ(j^6$%l zfAn+yM}hv6%75JlBlhcrz`Orri?uLd0d?@7CLv>x--`1|1O6bLzaC759Ma7v6>sPz zH&dL?PgJ!xAQg~=|5C2QKNaJ3{c$YUbu=&Mk*tH}GE0b4H!i_RA%V-#WiDe;rG}_)(Oqap@hu@X3xe-%E3~cgl@nD zTz}V)&6nE zg9ak)Tu$M6{Ps7oX?_hJ@tiBqs@jL>O_z(fmpGtmvpuRdb_Xyo?j;VXT8}@gn)0fu ztv!$H_8nDwA3;AuFZW+kwRvUm`%2Z!=)~d+sV-~(!hZ-l@$_lLMJIYx zVv|G${L#s9bYc`5(B>${|IY~U)E+EA2vCbG1f%sEwyD}&1lU!A%8;EsyReBNfDI{5 z{RlxBG#b#d6g@(=-a!`H!#@@&pKwam{){Y?p+nyz3*pF4ts7Z8hnu0dRPFT-RqYTm zvcDWL%AKmV1QpCh1`c98ZeUFBY*)2cA;E`$VQh~g{cmA>7ows*$Ur(Wuml5kVx>41lkkRALBdYcZ z0yIYkoXEr$WFQC)i9rT_j~*u?11-^jG04Di48>QN2Z6{yTV$Xs8gS?^h5 zfc>aw6;gg1jgWW-FnP+*&;(@Z6Et8PCTMR|Xh9?1#2nd)33aJZ)xJG|-XjB#W2_%Q zgSWpAA7mg5ot=)kQjILNLY6m)KTHz#3t4#TI>HiztKlAzj;~4*j z#{aCsacD>mH6|0<@`R>^&cFj{r~ac9P1CfSz~`iE+FF#k&FYy#FM3kw6X2xcCUNpJ zK~CEVd?=2Wq_mHGS}t@_1wIh-^V2>p?GZ_`ed*KAK)cTPv<`!Tf8*1Vhe%S~Wo zy5>8d=7qLZgHMnoH@@ST32nvq9ZR8I&@N~XzR%bVE!Fz8Qs^S+>IBItS@DHPhoLZp zPJx#2#Yqmd4POa(p)>H6fNhv0Iq*q66S@?i#!H}+nqXTPjs}^ryhHQPuT{|eOKvzS%prsLLF?0)P zFLW1ZsU>z{Xe)FQbOv-fvv=@3EH2-MnhIT;jgXSMSPe7-Is@hE_3f?fRlp|5W z{V;&Gbwfq?gTgFm8?>!EZf>B9pm#%iAH-GxUD^W`Cm~QzR0N#`T>x#dVK?XJ&@D!z z=aE=wp}o*q&^6FGT=&K*oG=Cs(FhD}jm7Rc7Gu~KJ%KLjj|M?|2EuV1dN2rk2z1sE zv>e(49rP&thoK?R9_VyvDG@z}_CnWieiZ!1qajHcBCf~c)&sA!caOy?Y)8QZU>tPP z1boJXPJ0};^3dKCeArG#PbZ-P(2i834!R~C4V{3%Pa$*Aw%KSXw0kZpgq9XzXdZ{3 zNz?8?TY@#sF%k7(QC$h`ZK-J|ptI}~L8QQ-uZGVC2t1Hql?d<%uCPg{aEPX*Lwm;K z$1v!OWL#a)Y4Ed8MuoF9Ee~3njVlW}X{n~wq@rSId+}FE@;STnZT^$>U^5=&A7>7I z!9UJyT_MMtZGNveHe2J(p>bx*Ky%>Wd;KLpvwfJ^G02=S$ec7B1}n_=F?G*ZneBtj zj$!76!RDks5)h5MCe$pw{XRX|Cdg)4^_6`5VY+(Ji3^CjA z7sY4{nkO0)f3LqosUJPjY#(VvN885KXQecRt%=3JGv8V{RTrtK<;oTQ9e76#9@P$-8~p95!X9+?oyEAh(&60?hUrRvX0OhXs-WEDzWdIwG)@ zz-|Jw^B)0lghFzGbtv#@T{-ZG*|NfKnmG`~E|7iT?5u2q+*$FWSi*kTAV(>o4@=T@ zy%>;$V)s34@=J2B#;Z|I-{aFF{Mq&;ax1p~CApLGIlu&V=_Pr%(qRA(7U_})G@glK zc@e%+gy~|KZgR=(lp=t4*at58VsgFZ4;Wq557uOI?$b??62AK zFlTrCa8Xq5(=5~_-gO7C!ec&dGRpkm*f?M}fnC-Sfz1T=`G-DjMjdP^FxzpT)}#*R z0@fW^cpYpvF#B@tO!_Z9dnAF*Z`IQY*xoG9@q(B*va&RHzpaFjP0&&#j}7}fMG-V#V!k2VgtJz zV9CJhcCH{4;7WkckaKtF5@0p#qgUhylxh^y*sWLO-zh1BFellQIr0#t0LAO<-5hyh zL?Bw%;vD{u5ck(th{gKs-QEE`GWWJ5^ zC?y^n^h`E-lN_UDp?Hd|-z0}9c_@0=o=tL8z~?A-xyZiWB==APv5Tj(mP{VoD-FfU zi+Bt_ZvYOSrA%PS-n(<42-s?1{c+p_+O6`iMwd~p!u`a9?9w(FuPfLpZw+wcULoZs+mt6qn=AQ!1b%jq{1IdzGe3>> zrZ!Iwi4MgT*Wr#&!)~h|e9h<%EDcykj$pxzGY3vKqeW>rO#qj92Y(7HPYx(V*=1ro zx1ljrD5v|e3)|#j0d{QpIWp_99e5_nc7;8)T^<-vf^tRxduKb+6olIV4>RqMhc`|^ z(T#hW5Px=I2bPPso|Nxl&+d@h1{8qFY|ggtK%mPg7qnz&cgTYq^LvJp*4Po(aE}N! z+%0cZYBBgJ1A z%HOu-g_Eb`PWN`THTC1sC4CEo-jA)&kIy8tz}urPejH_yXXKEf6$af}(Bp}|K)5wT z;DJI(-w|#L6M%JjA%T!_AAhCqCG^nAo@L)&ApFNrLGiFTQ>F0%a+62`Gf9#zvOPF z=zdw`eT&>|lZ9IrxwUL0+G>juZEZ#NJ%IB*7o`gOlVm?!w-1+U&I)^k)sG3nzMGUa zMK~-p3t}!+;GzmJX!^05#hpcW@`+9(x&zS%**wtB(?r+w64eDoF;q^;YD}_8b2NsN-AdA2n0>`^u^dpBYuSB0-C%R~-z$*nSy+gQbm%#C7*ZNULxCO7X<;Po8 z{TGCn;@!slXhnE6;oi3e9zwbC0q1=RIWGr0?+X$Mk^U%*@V;C9=s>u4yzs*7SM_5s z;hqnK;l4EjA5XYDS=i%~fPTy)JmXzqKbfwR}x$}f&E>*Ax1Rpt1gONMJD$XNm z=O~_Ky>NT6si@});jSS9k0<;Zg>%P?iD08@?vTA_t+4M!{WjxfkXN5Z)ffG8+;A;slT`h2bYRk)ndz}J5 zOS#J@JZYK0S5Ti01J@_(MYQpxIFS}LXv8;c^hGQ;cZlvnG}56TE!lF=rp|2hMY(6A z-dMX#QVXdStGFn44jZU1Wi6%T{UVvmU?3Ugkyk?n57yiSEetf|yc(@;l_R>}NBvt5# ziNUK$n=XI@gognSmck`(g{ap`cvlvA361Zs)Avh@Xge{M`vkl<0Qs8AYPrf}+1z+7 z#d3UJKUOX)$GOwgmKC0`M4ogg|qgYX{-&x#cpSVj14 zHu`JS)(jgB@31>V;F&~Q*>cd4eTdF*3EbE~h7q3DM$~qcW^uCaW}3||!F%W$vhti0 z-p6SWBz!!vBAZfa{h7jGA1sAPZvB5WNs@!6`s*z28-y#NaHTYu_`f*%@u`827xuqwXwyDc%hiXhj2mAdV^_SWYBeS=Kd$Lk zVG0I?_ake8fO`og-OnPfz}sffj|*=b(GE5m^w5z+Teb`QHqnn0ZXGM!Oq9F@gr^-B zhFi&gHQUR>#F69N_eU34@OP-~ zno-+xA|q|d-5;Mmc&6M(1Q0ALmF_28S|;$ZWZ#v|4ewNE1qP?>P9!GQ@;b}C*rV{=Z;np^ykxi)5VphRx zJ4Up7g|PRL+i7O{0rYo7JDw4EAgv5H@$Mba%`g}E*q2gvzoX!t*c49pCEBx8)ZLnb z4`bP!P9xfj8(MxCYu!9n20C&j(QaA_aU-A~uMnQ~yl@K(5cr#VrFb($#8m`8O;$;? zrr};fKXB{H>1zf}HwnglkUy*V5%hhyW_ZVnXxR>;j&)^w;XTw&bk<%Gls-^Og9!J~ zEbK>>P9i)bOT_V`aG5Na*S3LZ_lLsXaC5UbPQOKT(oR7yrl{|;d7Q2w+7T|Y?4`^4 z0?P;8`Uj$2^x>$4y#0|+eGeSk4kdm~NlnD)T16bG54S)P9Ml^lg(C^iqGcZc8&f}0 zSY!>_GlOW?Oabqq3YW4eoZd)u+GgQ4is)BaHmCn+1V1fs6OC>;E93NeqHPr1O5Q)R zT28B=`8L_`mhoN|Q46{ay1;vC4WpitcQ-bg(+`8@9nPZfo~9B#k}U^~$DMI2ym@Ue zH(o==mWM8p1s^>H87RzpA(DcPwT$ z?;7t4zI5SjO``2`78&AsIGm0p+PY8RSwxRv6`Y<9THnD>*WbZ2ndv9Y?-k@-)L`Vd z8I{uAY!Qw8egmi8#8GYKYzo4Koi@TfBj&wvp3Wwk*=SC$CfajR(1ld@X0{x(Qp9PV zcIPoNbgvhEpnXa58u&`#`3(iQNw}5zOnsADVguy8vC&m#tj7_+`P58qa6{Nv*t3wI zagUTpMh=?4_~fD=(^=fl=*-g;+e-I5(}{k8&ExbogQk7S*dyO!`JDckXjg+<&vUE- zwDX!?cevzkFl9`*H{u=gI7Mw5RT@ONyIKIR(y-l6c*YKaPb2%zgeN^M5`2{KXo0gC zH;{mVWMuoDU>_qRm1W;R7i7A6iYRDLqLWw|r&Gz>^_0N-5IvXGa{2|Lv!;rsCKA1c zMf?pHMIq4{X9d23=n}#$aiZZ1`~`86@Fbcs#;wOiwjAL`TqU}Oc0c2$`xfDzXc6u; zs-}@uN;jt{62TuUao0hg!)J=Pf^e8Li^faQAsO9m( z3O_{Fa{Bi~duS0&B^vMSLz}|hB-+x~q!X$b80moCyCy@Y6Kr=X2Itzr3`e%+v75cIPYd_SuIt$fI7eUJKzneM>; zTLAiuYp`VC?h*7*slDjBWsRR6C{hfq)QoUfrod@TrOt#W1qxjMa}sz)v20%30HSSl zx4wy5_ZTbV^c144GsGx=NvUrh(>(D{YXtx#U(#o62=^TSK@l zSpb)*`duteMYtlOy*mWnQDi_mOn6O$`<>4Sw`2?ZeiZH^%SSlpHKH9`1a9mjejP=p z(v}Ilh}_JCyJ*p#LU>!ky_C~v!h0HV77CyRHMhUOyGah(>hC9qG2~#OyZA1IPh(Rw zjNL+m&KLNPMCY(1V_2?@)k2p-xbn^KK$vS5>fFBgbTyGVhF{)F%hx-nWx z_*ue>as<$k8d}BXAzZIJM7ukQLB5B^ItZH!zd&p>Hy);NVV&7Qld=tOK2P>j+Tjh; zwPxi$|6Z}t#W{Y;^M0m2EJRV#K`&Jl56(seD4k7FtSkstwmvqtAwcP5ie~QyC?n(; zo2?fMxJM~~-P`vlV@$o+lt3lKKdMg@YZa(OwzNk|Q=gnOHzRe*tXXrPnV#MwrdJHb z>eVY+1dWWev7A6g%WRAW*;!s= zrI$H2R+_r-i6^Gd?-65*jbuHe@P}Nt8Y}nt*?Y6#dzECrKKQFEwA|0uo5cZ_V3vlzE#dZ$Kd<_sMpVjuyPn|m}b^i1Pb7wt0J@twCb7!Z{nVUYn_()r2W#i(6Zi?66@6kD|TMwm2W8<5= n+#_si59LFXqqu8NWw;;SDz`9FiNX`?_CzW%CLg;LsdWB739%-P delta 48057 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 diff --git a/core/map.onyx b/core/map.onyx index f3e143da..42a293cf 100644 --- a/core/map.onyx +++ b/core/map.onyx @@ -6,16 +6,16 @@ use package core.string as string Map :: struct (K: type_expr, V: type_expr) { hashes : [..] i32; - entries : [..] MapEntry(K, V); + entries : [..] Entry(K, V); // The value provided by `map.get`, if nothing was found. default_value : V; -} -MapEntry :: struct (K: type_expr, V: type_expr) { - next : i32; - key : K; - value : V; + Entry :: struct (K: type_expr, V: type_expr) { + next : i32; + key : K; + value : V; + } } make :: ($Key: type_expr, $Value: type_expr, default: Value = 0, hash_count: i32 = 16) -> Map(Key, Value) { @@ -46,7 +46,7 @@ put :: (use map: ^Map($K, $V), key: K, value: V) { return; } - entry : MapEntry(K, V); + entry : Map.Entry(K, V); entry.key = key; entry.value = value; entry.next = hashes[lr.hash_index]; diff --git a/include/onyxutils.h b/include/onyxutils.h index 50bc830d..312ed66a 100644 --- a/include/onyxutils.h +++ b/include/onyxutils.h @@ -20,6 +20,7 @@ void symbol_builtin_introduce(Scope* scope, char* sym, AstNode *node); void symbol_subpackage_introduce(Scope* scope, OnyxToken* sym, AstPackage *node); AstNode* symbol_raw_resolve(Scope* start_scope, char* sym); AstNode* symbol_resolve(Scope* start_scope, OnyxToken* tkn); +AstNode* try_symbol_resolve_from_node(AstNode* node, OnyxToken* token); u32 char_to_base16_value(char x); diff --git a/onyx.exe b/onyx.exe index 9da7accf9ae8d021b40a4e6adc2275be94b726c6..509874eeacfd103b65f662878ac20b4433e909c9 100644 GIT binary patch delta 53457 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 delta 53289 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 |= Ast_Flag_Type_Is_Resolved; - // FIX: This is probably wrong for the long term. - if (s_node->scope) s_node->scope->parent = curr_scope; - { bh_table(i32) mem_set; bh_table_init(global_heap_allocator, mem_set, bh_arr_length(s_node->members)); @@ -121,6 +118,13 @@ AstType* symres_type(AstType* type) { bh_table_free(mem_set); } + if (s_node->scope) { + // FIX: This is probably wrong for the long term. + s_node->scope->parent = curr_scope; + + scope_enter(s_node->scope); + } + fori (i, 0, bh_arr_length(s_node->members)) { AstStructMember *member = s_node->members[i]; @@ -129,7 +133,7 @@ AstType* symres_type(AstType* type) { if (!node_is_type((AstNode *) member->type_node)) { onyx_report_error(member->token->pos, "Member type is not a type."); - return type; + goto struct_symres_done; } if (member->flags & Ast_Flag_Struct_Mem_Used) { @@ -150,13 +154,14 @@ AstType* symres_type(AstType* type) { onyx_report_error(member->token->pos, "Can only 'use' members of struct type, got '%s'.", onyx_ast_node_kind_string(used->kind)); - - return type; + goto struct_symres_done; } } } } +struct_symres_done: + if (s_node->scope) scope_leave(); return type; } @@ -280,50 +285,8 @@ static void symres_field_access(AstFieldAccess** fa) { symres_expression(&(*fa)->expr); if ((*fa)->expr == NULL) return; - // CLEANUP: There are way to many cases here that a too similar. - // It should be easy to clean all of these up. Also, I think that when - // that happens, it might be even easier to allow for 'use'ing members - // that are pointers to structures. - - if ((*fa)->expr->kind == Ast_Kind_Package) { - AstPackage* package = (AstPackage *) (*fa)->expr; - AstNode* n = symbol_resolve(package->package->scope, (*fa)->token); - if (n) { - // NOTE: not field access - *fa = (AstFieldAccess *) n; - return; - } - } - - if ((*fa)->expr->kind == Ast_Kind_Enum_Type) { - AstEnumType* etype = (AstEnumType *) (*fa)->expr; - AstNode* n = symbol_resolve(etype->scope, (*fa)->token); - if (n) { - // NOTE: not field access - *fa = (AstFieldAccess *) n; - return; - } - } - - if ((*fa)->expr->kind == Ast_Kind_Struct_Type) { - AstStructType* stype = (AstStructType *) (*fa)->expr; - AstNode* n = symbol_resolve(stype->scope, (*fa)->token); - if (n) { - // Note: not field access - *fa = (AstFieldAccess *) n; - return; - } - } - - if ((*fa)->expr->kind == Ast_Kind_Poly_Struct_Type) { - AstStructType* stype = ((AstPolyStructType *) (*fa)->expr)->base_struct; - AstNode* n = symbol_resolve(stype->scope, (*fa)->token); - if (n) { - // Note: not field access - *fa = (AstFieldAccess *) n; - return; - } - } + AstNode* resolution = try_symbol_resolve_from_node((AstNode *) (*fa)->expr, (*fa)->token); + if (resolution) *((AstNode **) fa) = resolution; } static void symres_compound(AstCompound* compound) { diff --git a/src/onyxutils.c b/src/onyxutils.c index b04cf5d3..9c6bd506 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -140,6 +140,44 @@ AstNode* symbol_resolve(Scope* start_scope, OnyxToken* tkn) { return res; } +AstNode* try_symbol_resolve_from_node(AstNode* node, OnyxToken* token) { + if (node->kind == Ast_Kind_Type_Raw_Alias) + node = (AstNode *) ((AstTypeRawAlias *) node)->to->ast_type; + + if (node->kind == Ast_Kind_Type_Alias) + node = (AstNode *) ((AstTypeAlias *) node)->to; + + // A single pointer can be dereferenced to lookup symbols in struct. + if (node->kind == Ast_Kind_Pointer_Type) + node = (AstNode *) ((AstPointerType *) node)->elem; + + if (!node) return NULL; + + switch (node->kind) { + case Ast_Kind_Package: { + AstPackage* package = (AstPackage *) node; + return symbol_resolve(package->package->scope, token); + } + + case Ast_Kind_Enum_Type: { + AstEnumType* etype = (AstEnumType *) node; + return symbol_resolve(etype->scope, token); + } + + case Ast_Kind_Struct_Type: { + AstStructType* stype = (AstStructType *) node; + return symbol_resolve(stype->scope, token); + } + + case Ast_Kind_Poly_Struct_Type: { + AstStructType* stype = ((AstPolyStructType *) node)->base_struct; + return symbol_resolve(stype->scope, token); + } + } + + return NULL; +} + void scope_clear(Scope* scope) { bh_table_clear(scope->symbols); } -- 2.25.1