From b1da2486761731bba894ea85e779ec943aac74cf Mon Sep 17 00:00:00 2001 From: simonkellet Date: Tue, 26 Sep 2023 16:34:17 +0100 Subject: [PATCH] end of prac3 no bonus --- .../org.eclipse.buildship.core.prefs | 13 ++++++++++- .../main/java/triangle/StdEnvironment.java | 4 +++- .../triangle/contextualAnalyzer/Checker.java | 3 +++ .../triangle/treeDrawer/LayoutVisitor.java | 4 +++- build/libs/Triangle-Tools.jar | Bin 175955 -> 175977 bytes programs/run | 21 +++++++++--------- 6 files changed, 31 insertions(+), 14 deletions(-) diff --git a/Triangle.Compiler/.settings/org.eclipse.buildship.core.prefs b/Triangle.Compiler/.settings/org.eclipse.buildship.core.prefs index b1886ad..69803e8 100644 --- a/Triangle.Compiler/.settings/org.eclipse.buildship.core.prefs +++ b/Triangle.Compiler/.settings/org.eclipse.buildship.core.prefs @@ -1,2 +1,13 @@ -connection.project.dir=.. +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(LOCAL_INSTALLATION(/usr/share/java/gradle)) +connection.project.dir= eclipse.preferences.version=1 +gradle.user.home= +java.home=/usr/lib/jvm/java-11-openjdk +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/Triangle.Compiler/src/main/java/triangle/StdEnvironment.java b/Triangle.Compiler/src/main/java/triangle/StdEnvironment.java index 90507d0..8aef811 100644 --- a/Triangle.Compiler/src/main/java/triangle/StdEnvironment.java +++ b/Triangle.Compiler/src/main/java/triangle/StdEnvironment.java @@ -34,7 +34,7 @@ public final class StdEnvironment { public static ConstDeclaration falseDecl, trueDecl, maxintDecl; - public static UnaryOperatorDeclaration notDecl; + public static UnaryOperatorDeclaration notDecl, barDecl; public static BinaryOperatorDeclaration andDecl, orDecl, addDecl, subtractDecl, multiplyDecl, divideDecl, moduloDecl, equalDecl, unequalDecl, lessDecl, notlessDecl, greaterDecl, notgreaterDecl; @@ -43,4 +43,6 @@ public final class StdEnvironment { public static FuncDeclaration chrDecl, ordDecl, eolDecl, eofDecl; + //public static Object barDecl; + } diff --git a/Triangle.Compiler/src/main/java/triangle/contextualAnalyzer/Checker.java b/Triangle.Compiler/src/main/java/triangle/contextualAnalyzer/Checker.java index 8b05b53..188a632 100644 --- a/Triangle.Compiler/src/main/java/triangle/contextualAnalyzer/Checker.java +++ b/Triangle.Compiler/src/main/java/triangle/contextualAnalyzer/Checker.java @@ -953,6 +953,9 @@ public final class Checker implements ActualParameterVisitor=", StdEnvironment.integerType, StdEnvironment.integerType, StdEnvironment.booleanType); + + //PRAC3 # Here we are adding the barDecl, Unary op. that takes 1 val and returns 1 val + StdEnvironment.barDecl = declareStdUnaryOp("|", StdEnvironment.integerType, StdEnvironment.integerType); StdEnvironment.charDecl = declareStdType("Char", StdEnvironment.charType); StdEnvironment.chrDecl = declareStdFunc("chr", diff --git a/Triangle.Compiler/src/main/java/triangle/treeDrawer/LayoutVisitor.java b/Triangle.Compiler/src/main/java/triangle/treeDrawer/LayoutVisitor.java index d521635..8cd441f 100644 --- a/Triangle.Compiler/src/main/java/triangle/treeDrawer/LayoutVisitor.java +++ b/Triangle.Compiler/src/main/java/triangle/treeDrawer/LayoutVisitor.java @@ -162,7 +162,9 @@ public class LayoutVisitor implements ActualParameterVisitor, @Override public DrawingTree visitRepeatCommand(RepeatCommand ast, Void obj) { - return null; + var d1 = ast.E.visit(this); + var d2 = ast.C.visit(this); + return layoutBinary("RepeatCom.", d1, d2); } // Expressions diff --git a/build/libs/Triangle-Tools.jar b/build/libs/Triangle-Tools.jar index 8343cc03b66cd513e25abe5afa06a82602d56e1d..1181f38f22da90063d16caf3502a77b4a0ca7edd 100644 GIT binary patch delta 31564 zcmY(J1yoy4uq97qPpd%qM!(Y20Q#PtSb4Nj; zeQef42t)e^dSpJh|6r1Flm#4L`Fg?hSezuLTJiERHRQE<4LvK z_M`a~ehCdvb2YBiO?aD^P{NBMl*R)JW-ek%gL*}a$j#thMT|=J zcs-X|o>pReP7$5KZU~-_MW>{iwTv?^wo6eNhnSRL?%=2X;`!sUxwh$yoJy34x_&ip zA7z%&oZPfgUGBKpWipAOLVp2j6%6l(&t@!HmU{LA`hm*J4EdwKxj&Uds$N?@94<+kiny@t~rYaP8Lse0OWYe2;kazpSW(j zyEr3UJp7~giI?uIyo9HEG-M^IMe)qjqGsqr*-b{LMzq>2N7WvPqhhiHv0Tb~e+}gv z%y5hx9RNSyLn1n~Zat^*PM9r2`?5+p@Up}$4PFSSZ#%2@;py(fZ(9t$I_>sBZ?(?P z;Dhki8ztn!kT_Fbwc+SwIy8|T{0%2Ijrn`#%^L; zRO_be667UkU$9GP76y z$p2tTCFv<6T{JW?{z*QA;edZ&s1JRT{4}GZ`cDEw3*`N$5eZa&%HD`jF#z6wxyoWa zN2|bugp||@qiG|D?S_#;h?M3a{Pcc|jcG`DWX`l+&UF<`g#(#{7&@}JAj}LGOYCK< z(U2ML?#orN_H&b-y{+kh_H(o2>7->wc>YQE!ghL7qnJ_F4>(PVUZ>c@CB$a`lcCh# zouFrcp4pyg=l4Ctz;b*j2XeQdyr4qt0ewPqziOqReANbOgKZy#{LQH$>ijNm6#_r3 z4tasi3njgW`ZR-V)tH7eu~ojv)0i%&h_jz0<)XCZs?xxTV|6xcYlp*7&}Wqoxi}a8 zt58}7z%UV~qpezmdWTUM#=9IWobXQ8eKIpiC0AEJ#{R4gvB5;UznyL^LpuJcRF%%#r37lZB5MrdP@eS5Avc_ zKw`bN=PR>h4m}^iw@&_oI8br4-(WJ-aLo7=E@j%b7>e*7$s&o(Jwg7F7teDgOX(I^ zXGrG5dn}kY&OREv;T+u1BQHg`k%f+YrRV84_4QKqR3%o2%+AgmiBE_sHYQ@c2FVtCM5^yDHl}6CbaGMTwdaA{xV(01M^UC*8N{8?WT7Da zVYDc!Nr9ruk8_zqg(S0AfP z;6)R3gM4=FYdepSwWzO#xRjU#nV{jaz4V}gHQ>J_((+1(Lrfy8lJvOu>WZlDeG{gR zn>Bt{h&BhcAeuAj(kl*kT_eHnwf;c4yWe3DG>ce5#svve9(?j62PAEVC@CiyXDH+p zrL;x(GAN0oi%B1d%Ti+uvb%+0F(Z^wFVcP$K~#;6=#DNDvokWR{F0bDT3Q&5C}NZn zewS>&jnCBisf(tuLEtGGN(kXWy@0u95Mgz+4A}h!g;&(hQRdblMBKRWME-1Bl&q3f z|DGWm(%m{+Lq_A$U89qvUQ%6DxOv6&Md^&mtw~k4jhL%fr4Cihf1w_cy3I0I$0VuU z20^aX{mJ&LvZ`A&VfHub^O2h&j&-B5i6|#R~g+i2&-vv#H+8Of=j=0=^IB}#sVzYc^*SgHk!-4wo4Yy6M(wNX1Cj@O( zZ;i@VC~w=wu&JY>gz1a!sEUN#!kqU3(uL&DpeyOnXMQY@O_C8SO5{;%IgyHDr&o}$ z#Gb$EN`dHbmXirD|FQI#8r~>r{lHLx-j1*~^V6-Ek27Ds+1}>0fv%o|YGA8x8GwPVq-i|>M6>-G=ewScQoX~=u81!T(eq|0)Oqw%YDWT_oRik$UD-7}>t<n7+M3BllSb@dpHs><}S?R63k<@KES8PdiS~W%h zA;Y994a(v7NPzVi)~~yVEE2DNgK(C4%hY83oGg3}n=69WL0}jTc8Y7)GYAhiNrbXb z;&N|QgtB!0k2!-pq~*MG?P1qqAyL~;eW^V+r5Wg}cGD;E`D7lFuun3)98vH2WW4ib*jXfhlW1 zS2M+v6zeou#VTu@0`;#M@JWb>rb_0*R6CKdZK2A5hqS1VRWxy-yyQDRhQytHwUcbI zg&d3=>J4SrXf;LYGc4o`3;tK7gqidc!6oG+42;&?>1s1ZKxaPTs{#-oOxmX?x}x8? zwtv-Z+%IeroFf0av7O6i{tX2w{yS<7l;J=e$O4zgYvUmCITIT7+&>Vv_ZxD>xzf*q z1e7&$fx*~ImSMHxAgPCE%t<*a#S&)B_pOO_e_`YEKKToI>gbF|1VB-m-{E*Njsa70#xsR*ec6S6x|s3487(z2usHLj!4HNtc**+wj+@E?ycRAppZyVFCZqu!vI$o=3+SfS7hP3(tyWZlV zayZW`O6m?nls4Zuzcb1y`t!#(UHW+Tg#}q@>a*Sx@rO2KsiDup6%&~8>BAVAOT^!| z&%5S-fqs*y9EktHRl1pT;+&J7rdMZwK__a*Q^V1R>XXw}r`4;073S=qHUmN&^~W zfsNY4Z+-67u#I!1Cdw2RFl!NDQ;#Cym?+`fTz_+Q+HYqv*+yNUc7(K4)b!TY8@)B> zf=F<-OTeblbB8&7xkxQ=$qK86Q@Z2kx7kQA`w#c*?xu=Q-7OXF9kKxgLqsc~Q$$JR(eq+%mO_+5X2`KksDWhB-%lq<{vUZwaG2xGT4ldyKoFzT6 zC2xDHodQeO=+&SHTyewZUHwgV21_ahuYb*DMn5)g`ZiMbMGtk|5F=;-8QeRD>T>omDrM6W^|E@#)lvSiZN{<+FVVbEGgqU} z)XhwjRs2p4td601OnC}+>|SrvGdz|qUUjL3G@Xf!=!(M4nT*?H&%hlazrqvkqg!Uz z?X4iCjZC)E9cGj|)B}@C`X$&Rk~Iqm2$%Mr)t#Lfyfw`!l&FITo#{c7yV0bCy$y~+ zCPZ=VQl;CGy$cE?y8p4=1il%!YOmf1bDWc|KWF#X>Q?2f z^XWf=g}ItcLgilU-6_&Eo-FW_S0hed>%Zd%mB_NEQFO zeTfmT0FDFLR1jNtfuseWiho)@Q&I7>8L$=R1eXp4a~Ic>B2OVW#%#^@C{i| zZVzn&jORF_C&Oz9(><^u5Tae8IaTJ;I9VJexf;}cb)BQBGEsRha?=&`JR31wrTors zdKWeu#}*Xx$+;lnhG|P{p1A^2eh$7dLU6o{NY{7q3P?PJ%~7xg!9LlvJX1EbUiJ1+ zmN`@2rAq&#`hy>{Moq&^BT7r#vH&WnwHI|x-`K4(?sM*uZQN3<2~jC1Ki9d*63JE> zI%25f#g)WV2ui(%t4NiZXAt+es=L@=^wMV+SX19?o#w8-BK3&(p-LvK{o^WG5)D4`3d*n6=sU(qyfG=aT-kZbJlFmz=s5dElIq_dr~& z1?dc>_nnI6o|oz0`7(PGxgn_N70x^qveE*~z}pJRPyy=S2^2wCRFw^u&TY-Fex^+; zzh_+8`m>qGcHfquyTBrtEo~+%mxlQ2gxM>`KgawTIh~}Te%tLU$c}}nc@d^P$(%=* zPSSYVvY*$}-w4T@YGcUwt!({agsFabPBg&dLq@f!Hr7qC&WDByXU)cvtU;Y|!g=4C zihbwQ(Q5{Nb(@(598Uv8PAw{z$3eJqf1q|&NyCEkTi8f$X{kSrZffjxF`tr+jdShZ zhfQZ$LsCZgnX>Jtk>_VBUA=cYTkKqn3gdqf9ElmW)AkdSc}R)$;O=ZAn6<4Rvq@ffDRi2~+(pxZtS_5=ctr4U6WmYo(&Td@|;}pa%N-yLvt3 zUdk#6;$XM*ECIE~eWKX!3%wJ^if;3lk&{DbKVR}K)ZCK*LFwCpn0)R_k3f&4!VTu5 zp0gubJXWIIEe0>&n?36Mk9cm%`YHN6pku|=tQbEz)Y5Bn*WL`V@NaUO?Cl(p{=eWC zMv!H7)#FV@r-@d3p#G2gyOB+iupOtEz6pit-{2AY{HC$=+ab0Z#PGA9z_EkWvTt32 zninrW|Mm3Kr0B3EFV+_o@eGr87`Ud*cZu^%#l{17(76oq<1GJ91s>*I7-?%alwLZK zN_f1MFr}@3Jchj^*}d~EH*Z2#W-wiqQ6SS1dDFDwIRWr4JY*ZwlaP>}+gd-`bwki5 zHL{;S-+D&f@m_rNC===)LSu=o>qk7pD)ai@aJ1T|jxuKY)a&c~{Pp290kIu@+aD5SA5|h`W=oI`24YBru|J=~ zAfwNo_4Gh#_X-n{P=M=uca%$i;mlRrOtl-yg(FT=re2%g*qr#v+QrayrapFcvAaBm ztfr416monOu+$~-4q516X@VL;)f+>R$??^%id{AWu1*HN`n1Cq451eoKK*);YK|S} zbErZfjCWsx!)rZSM)AVb6h|NqhZsY}>8Yxx$Cc&pMi-9RAZ^xbc6_4BVlYYAi}y(; zS8BE)drVDse5e;AIupf7R!~9v_+n8fILHfl7_ebbEf6QXMwA=Y#sFcCe zj+pj(#$eU_u>nb4dt()y+cI{1jprK9Ujv!8Q!8^t+EjnLZ+p9sGJS=JTl8Tfvd)Ja z+CRDSRd#YX2oYffY_Hi)lXu#E?*M%~DG)qBr!b?ga*6L-GWx(!^>!bZns24i-j0EJ z(vRuu_-|GoRtGPAEbo!2m5ASjI{rR|?`Ls-nzC>(TKbZXcua7wMuh21r}z|B_Z@DT zvaql&_>ropj3qpZb9EpUK7~EAV+W=zWBKJrN;r^4KOJLLfs0mu#}=lbw0YpN4m(9yfE&51A&i-3>@xl3K9uIDIZ7_ZLpv$k`;a=E^q}k zs4$DF#B>H}e(I3B=V5dTm4Nov#V#_FzK%hOOs@_1=DAl-h?2#Sl{j_mApNPY(fjv4 zYi-NY81bFGgo`M?sR0y@^_U)(jZDrBcyBN%1`;g?Kkx*5QHoJllust*^=R}pv?q^i zAc~N*+f&W9q-`L`vE01nYJ(dK=;`fWb@7x==0zs9 zVipA&?uO)J_1T%A8_obXmT*wz}6z?myNA#@2fYE zGo`xsmqxk*Lh}HOcPhsTF98~|H_Y^>Iu;DMmAqLc^u`c1COVjo022{sgpv`~4mnm5 zYI8GF9I-HUA8hbUB>UT$N?T zlJTsOh@J;x2QCwiVvk7Fbe%m1JYB)1E}!y*5zDW-wbCc-1Q%?ebbiM2+*g_&?>(Ri zBU6HG5O+waheX(qkUHZC-LI+d8;A$-NR5TrF`s%yh$l$zm>P zl^q#ih(ZN+bDJC|HP7uZFkG6O-v})%*5~9=c}YQH{gBYaS-d9O3Gr_7?|=S$Z~Xe! zv?KhNyT@cv^hM^R%nl}1Q+P0Z(Q$QW(ovGrSztobQQ&jw58Xal2TX4PBsn1>j zUM$2>H=y?Fvvcg@yXz}b;58%LX}Z>_>f>1k`?U4`3clS_@%~asBlcLj=@=So&Zc|I zd(#FwqK*fnecpNB1X&_}ct-s&QH}9ATPh54wejpsNl%6b*{Eh{e4n-nmLutPOTc&! z6}^v7xx-cqGZ)DJyF1O1@0q+~Lp~w$e1dRP@=bL|irs92@+8bOQOV%!`tM6z&cv6? zLS1eY!~4!Jl-p*4f?l;WK6wBByp7Zjoxc@YUKgUgHZ44*a6LVEdwO7deH?rvU8xWQ zaom`0d>?+!%b{|!#G!(o&C#xK27S(GIHW663L;ZR@WfbSbNZKP#;vL!^ES23+S4$D zKFbJlUer19HhJnUMBxyz6E%`^-B-M zk91}G=M6!g`g2yEM1k)~o?a4rQDZmskVccjgO3?*cSpPBx?KH&Me0p#L>^h2V>b96 zFXBxif$b*rU$$)hy~%_smTY#LFT9HCh!;)xvld>(7NTxID#_(5ypw(Z97FZj9Mrd9ccGL3AQa zYT-XUh$R+(67t@JQl@?WIE>cM?Xe3S!XcKNnIo9r-e$Q%S9eQf6n6GTz0Fg@J8kIO zjap2?++I!Wab1N9hwqN!;Z--d$1EBj{<*+1 zXZQFCc;&*WErw6!n>-mRR03WrD4Gx>JmaPD6FR6n`Osm^`-ctjS~kQ;hp(33}u5eBUPr8XS*CN#68Eor~ojwG92pjW`%u zC(~&<`~FnQZHgYjR#N?6;Q*URp*?mobNm*PKo>l#AznEiQM48N?2ePXqi^JLwd zo4(2{iwL^!h{cEz_2)4XUqXZm+Z>HHXn)B%X-`L)tTX%yB=!l_S~it+kDBVGszlh} zf!DMx!SfjgBv%D)9_3j27FVWrx)GnfYxB=RLL&MRRa!+=^=u~e)mTf6*?D^8K0G^| zOr*q+PMApRhZBm3?L+*FBkXxeyzQ=;FS)Il<9#VN58T$PC!q|)_OE=Pnbvk^Dc2U$2?GP&RbPZ%Gm${~`9zn>$=CY@E+g*vUN@ zc!>`q+gEjrEMtj)ZV0Av;_Ihn5N4Kv+L1xE`|}56@%C@T)ECG5yXl3`Vlw@U$*TQTdJy=@v17|;IjY;mx%k_q zLcD1X;#%Or&mx3qTW*b;)?Me> zrvs0n3xg(xG#-^bOtLRk5-K4hskpbIbpvC`lEq{DOH5tpHUB;J6YfU(pgmZ|5(Af$ zyfeYOv*5y{_r#*rY$1Kqb-;F$>Eb9QSdWJ%;iX}<&9}?D)s?mqywo^ z;?bs5NNbE2kM$HNS@SYPR+M;Tm#4hA*QL31WV&Qzk`WuvTC?cR_tWEVU$uoYah9KD zveDxP(WvEN_4T7-yP09`Xd9v|_c=UV6(yxbuW!h9)v;-lo-c9;52cC@C66R&OcvW( z{uHnI`z-bgzXy{7ZI^aDsv>(!-v(2gllS{<$uKJBNNB&b(LJcet#z*2*`jqYV8b8B~k#dO9d zW2Q4D5r81;fY-27IGvLJ?{%`SROZk{Oa>|B#X)}j&E_SUS={GqzCWmWmU^xksbg;H zdahb!SrHF7*@nX}?dZl0dD6Z{(si`D+y#Uwc>dod1EVpmozi_TO`jXl>_sRL1%_A! z?d%sk{-;;nC5v;LZ4p#n%8*R-Q;Lmu@yt;r%vU@@eOd8xWUy$3t#t;HHJ6q9(_6G` zvKn;DCpComTdY3A0{6HIoOU}KfIJ{UKOUgyUAl!6flvJvO>sv?QaZrq$@jh2BFD z7P3Ph>&RUiL&$a5o7#{qyDTws`c;tCbUZhkIGnN0%2?Y+V3YYde;E3(e|sXgj|dul zm16T~yn6h4=QYX5Sa_SOwN;%<8=QgqXNirix#~OOXJ8Gnnc!Er{g2U7R$~yid2hwq z_p24MyxV|2B>HyrvhdsJRqOh4}1CZ}Cf^A8zVM=?pzR1i+ zZzsL4La4C{rs&rw{F}CiZO?nX<~7f(fwfVA7lh-zMMCeR-2133Z@e%9vMwfNgE0co zl6-}Jb3PcKlKqysQo+7Q%DB$GlZ%U|KH&`@dEM}yyKB^}mtNs4hzjbxUXdL3U=O*C zvV1?8fA#FAk1&Kx?t|0{COvJgKgwr}XMd07$-_o<#lD~E?@9tuoJ0qj&Gs}D6vgYf zCWc2k@fyxNkkjFE$t$U_baOb-5a!&sG!~H&5+255zTF(SxjvzlNMWw@T~BtvZnp97 z+7QZWxq$_a4Gs#j9rNgD`|mwS;^kAS=opR>>`tN|&7&aSQT)=qlLPNWKd%TkAuPm~L_KUA22E}U~1yqXBLITtrjorrSu2Q*D$ z^D=OSZS3~D;eGq=ji&&Q2c&n`w)?ld)5VoYDB76ZyCEPS_PE(P#LY*kpz5vwTL+(K zYh)?Gw{#Y44<_X)h#-)x=G*nMW;ak8y9^WoX z%dK8U`j~nxzz90pCEWe`c~rH|<6?B`Yx?(es3&6a+YOcdQ<U% zYI@LsuG)~3W|xL1dP3ud>~vKp?p?eu@qAU9UZZ9_o;P3Y267`d)}W;9_ji-8Jd8Bu zb(A4Kwk;Yo1da=3bkK52gyKaO5X2NU*>}$>Yo9DwTHG3jp?r*)UAUO(SG=Y4%)bd z&t)wp58N3AnT&iQ0+~D-F#b&fu6c++piT=A1)%;Y$l2yc9DXfat}W}1R`#lj5^;10 zp@SN4;s3IdipBqxCfAm8#~?e;73C)N*AVLVkrL5+NJ@YR_W&l-DJ0@A* z$EZXuI)Q61M4<3_8agQHCcc>sBo^N+Ma~y?L=5WUiaK#ck_WyW1qG7PKDxNv!k5I= zB0vm!01GfOfolaGKywUaIwd<8FC?1YUV`yCzC8AuKh5!K+fg+^M2@qr=&~@oVpk*#4 zqPXW59Td|8sDpAR57gPjFU7ct!@o$C%cL420ga`}v0&rigVIJo96%gm&=^e4fNY2e zlr{?Dz}$?(e?AQ2c!om=I%JNj6Xh|0)@kEex>!U5EfY{FkSBYn7k4Imc#Z zEqdgC?ku(2D?yJ%o)>6v0tx_qW8IGWKQ|5g@1ETG9!5L~jauY8_d-m?pjW0Uf9Sgt;zlR``HkvD;QmQlN&*Of(sGaizCRH<1)%9k z+f5CS{wK=-0p$L3+NuZwkUm*i&;!z*=#ml8{6rsF08PmM%3#$;D}F0KhRzQ!#04d71$gQ}iU;r>nc&fpei);h=c~sKI3Me9 z1!0z_w5^YQI6YYf3jng8h(Z`p{zLi3AJW2i7*)1A8 z)EYn!|11u`ZgrIc$Ue1glmTo%QLa3o=84pl04h(Er3`5MM~{=h1^=l7z=X%C0sdt~ zYqlD|;%Q3n)B!wC#G?r?d!iIAK*AG&v;m1vHJ30&p(EbMp}$4_FBFc}Jsp7llLqqg zQ|Ag25>f{ME@J`Ufct|V7wNw_56}aEpG?B-H^lk=uQ5C%5&0QhB^epFmB|1g{$$gi zeHljjXv2&0-`vvw3%E7c5WxSxUJgZi8z0qI7_f;e`W9or>QjVkCIFVF@#2^Rn4e^V z766$inZFg_`bp+(4KV*l@Oc}6{J;2UY##^rkLv9HUk=4O0`{Mp`nWvOzgq(d$WLP=NCL?G%jel%zZt2=*g;SEER_VnXpKz*m_9Y#PXRbTkzpDj z`H2oQ0B-*XZk`2D{O6%O3-GknTUm1fQcq@1`GBD(5-bEPK5ZV?mk*`%kIufszFslF zdrAQ~t?I>($@*^=QNloYR*youUX&tP3+!p_~k&4bY`G803 zFOSFRu5<#{pAOt- zoAGU1kNxrkVP>cFttX!Wlut|XtQTPPM9u>Mt0$To21Gt}U^E7JT+#oM+H3;w>Pc2H z1@J=o?*xX^egla7Q<{7Od_^I66zSjTap1`dAR%ooA|bKDxxN8t;00yKxRCK6j6f3b z#e>M@*A0?LawB9}phSdpvK0$?cG$}bx^n0yqr5Dkjuvr$Z1)>LbsKU97?sfEjg0BL zZ_Sqt9TzRN-Ijj~0?MpyS965UhCClWPef_@zP0^z8933tlON!kbGdnZDT#zsgd$>T z(G&i@96v-5NWbsI9$PiSUIe-BA3fN2ic{U+si~;smUItxd1(YU*Y0)%yMrA}gI}AP zD)@b4IATZUk{`-SsoUMJTnC^3kUjk|4}{WELZh)-)|GXUiogGwn>RB8^0=89rrFz69QpYs;WFFYDU;o zfp<~!lrLF<^hBO9`35=^jB#N7Z(EwYQjd>1>F=~&M0&fwY;LZ|fc$rhg(X_ZZ=e-c z)8L_yd|=_Xe$=k6)c8cDh@VK%V1B$DxS?r=A%_zL+*B#q_<;+?k!qOhAWj)7nfwC! ziOpI@ip?sOy`r`<36gK{L(9Za7i`kLU2N}iUraKUnm%O&Z6Z9aD6jN#Z7S_(3084& z5iphTI(hv(@(fr}8R%@~5@%JLK-Iv5d}I-Vg<^>>o3ne`_a3kC;HSY+RC2Z){&dX^ zIA!8H@ppZWkLA_oM3Iz3xU%_Jav&PZw$B566>SX-B^7E#*$|CtRFU~gtcKU7_f6XC zTCep8Y8dTa;GxNofpWK`xu;I?Q{B=t9$$Emvv}M>LrSJnN7jw_^4%7PInBd(&@ICr zK6pA-seUNIZGMd%Ssp7(GJp_9HG64C4Pcr}{1lr#!JYar0m=lwZkQ4Gh_(kSdpR4E z;S%Wzli|rkr$Lks%Jjb1rsjJL{RG9Nj5aZ!H51kk5o7{kVLXPqRA_PTHH9%+d#%q+ z@#EPNHty@;vTiK0KdJ$SoVeWsjIXudmd;qI z$5xj6i^f}p{|4U8%+J^HT3eFY$_~lcOMnRCc>av09RpiZk1?Z-ub=I! zmg&~ime*v|BNrb1-rpawcTeAC#gFux^!8@6cHURyXLcmZ;slrn7LP<{*w#kRDMnB$ zRo0Ou%38o8VWKfxO;FGgO8bVkuqbd4=p+6d#9c8BoVmLxFr%}4%TE*wHmI%8#%JPY z1B0+^AiyuN)7M5n_yZL`aPSdEx^YIE z;SmSAGVkymb%m*ilA^8~=i}{zRA&p~dHkiirI6_h&2;rp5FDQeT9Fv4L)e66B8U{w zell3L!gPfV$vCyO4NXbY1%bV+Zr1o3jJUU~kXnW8o7i=gMnE2NzooEg(`SBstlKXf zMz3GL5FpTqB0{(cRzE|Cu;pU!fZ|W{xJkavJ^xtGq+VSfJrZzEy0z6j^?UuM-0aiP zl?I6iz=RAMC!c2$&*S)DfuDFnHSB^$bTJI~|1+F18$vGU*W|5;X3AEJ1Jj0AxuM}O zLLQRz6!q0BUCS$zdeYs%__ca#wP;DD*x?{?puQSSb#vy_jyBv2;Bv+WG+(iMJemf9gU@Ti!fFqtg&E zqL980;}<64hkR$p_o|#k&Lp?CALus3%JXTz-~7Hiln6#c z(?6P?N~0C=6BC-xthK7+TINtkEGkukkiyNw?u)R~_0==^=~*^L^tC|(m7Dgwfe}7h zLc(A5jvq^>yBIP0!9bX;Vd#1~0b)*4RQJ70l%WbEj@KaW0euY@dV0_9<0uD?xw5XB z(=V*!?7}1JD`*A#V%)3$Q9e~4y~pZO#H~*-mQH=WTE;MGo5p9_!MOH3@>(k*32G_J z$R7KyGZ1+x{G{SLey=Sln`&!OGv@$i?+)^|)bM$oj^4M~kM***`l#95-4IcF_P!>* zfNQGt2_d$?s(v^D=xTLAo{e3P^J5Xn-&VoUY*x>=lV?(s?Un;)wnY}ZBRe6OVB{`V zYquavZ&~HoC*|4w+P6z%85W8r6fa^(OH@h`VP8nB3s0unt9%O1idxR*h|Tu2S;|eZ ziYX)xL)=JS!oC*bpx1vKjUc~-fu47YmP*6&U&xmJ9u$}9$+N3+y0Ar45#XJ_*4nT- zT21NQ2733r+~26jmW|P;p@B=MN(f>y!gn=d_%2?R-f`AlP9R(9;|I{GozrYSZ+mBv z8H!OpZ#>|NwLObw$@ETU-sf}a?z)$Z>?w|~V%;h=0x;V;ziuAhtqJLo=?NDWesMM= zVo~LXj>*3RMq)1J?%KXA4piS&O_GOAKk>IQ~WjZojg|{vtBeD*^P*e31^cTK9vS{zVm#y|D zpDBLBEfAl%+_$cLzYkK#QX0^7^8WU1FzTXZ3XqWqM%HAssQy8QJ&`_#Xklu7LYL%O zfA0`~*-a+Od2U7Tp06*y9dMn$yW{mU9%#|+{!!RZ%kV@{uAIdBZ^z2s{e}zw=7vwU%!mFNQ!dTk9Q*I7$TuspfG~d3O2V8{pmJK z^}3)!=n&xXys@>-qAg@x2WK^F@6hH)^2}k>TC$bV5%3W)k{q0yEVH{d9CPKnpS3CE0q3ZsfrHOom=a7E+$U z)uXDwX&ULa@X(SG_~KT)_@rJ&zJV_=(b zT248?VVg_d=hPimu^^;fMojO{pI9a(duU7W`YmC!@hx4fD=Ydb6TlmWw8X~IFz$3^ z74kYW=?i3$t*!;Ddg(Ng_8#0XcFF}E{)99hd7MF1S21gswD^%Dq5;-fC>br*t@x5_ zD?)bGPYA0fyGs!rJ#tlTy^3fcK)&cM2aZDSlsyfg8chW`E0Rs7Rt>Qh6P{X>>Q(mx zi@fS2Q*ftqTXf3as~dqD=Me4cZ}Cq-B9ADiVn*>f+3$z1~l z!ZFjl5Fz;YC^DK0ecR#d{`CkpXUp*esD>t1Uj8Bt=Xzq7>{XKp+-~s)8$Wb{4u?=b zkW3hcOrP8dw?kp<&TrxrOEc!ZqcXT zS|RuiRt)`zp_pq+X_;cqDnc8+=bs7C2ReyVrJ|2P#Mh2Z9)e#>#v@NqpyxOH`(q8e zn7md8h{spclzp1Ix5QFsvHp=IW5nNGCXm^GC;D?y(6H>^VSEOzL;5ohRXf+cCW(db^w?3+%?v&2eRVnUT60t=8&%zAt*_*M- zNbu;eUmtZ1S$kc?jpoK?AFvxM1MN&qT_WF z{u`jgCRr($Cm03IX>D}WfsB5cZ;Ut=pX29SBUiJ2w%_ck*~C^dJK3SmmKhc9hmalw zTU@kBntC417jFaN(zG0p#CIH&rA@AZsCspYYzKX!MAwTfr_r^EBU?rDLG*t`NQffW zs^dmF8eD;~z9XJ892zu4krJ7j5Cc(=j7#Pp=#k7EHb|(R+lhjSS^xW}ANT9{IH|pL zP1oo@CHbY5i;_JR<}w$viXzkRL6Es5boU#y05TgCT8SZaf6mE0jwbTi7@Ux!^=IE8 z-r5J;eC{l@4PU#OZRCC)(T=KO*%ea1cM)zs@s7qV;%ytRYI-S`wDkPg3T-x~j=&5? z7=X;Cb>O4dwmP8B1v^gAlh~Z%|Q5v8ejUd=2s-f4~n8+bBdQid$ zI8^Oi8?2<3(x9BSQ`ZX?l%w@d(*DN%vAW#Y@`o#lRpSs>hA96wufm#08bdujzQ!ws z)F!ERP)^jfjNp$4wiXa40`eTOO>4Xf=F@YAa@s1PEf5yoXhU63aXG%*S-DJis1t*{ zagc$%+&Z8*68f>Y#|NP(D{+s5+gBCCmqR1EdSCVCZ^!2&2s8K{ny0S6C7OOxd{v;B z7n0e0+^bhvomxXT$l+qp?1&rF;PU3Op58`y8UKrouLEkZ<)99c1;qM?{ee*U6^|mS zr$Kk}e25!(e}~zmrJA|5IWq5OKqFku@XxpzK}&WGL1iA4$IC5MFKcuz_Cp!1ILyDw zw}ytHorquL+fUCHrm&592ieav1nCb>H;iIunOHPL0g>gHwsnnA@K;6O$yV@KkP>7d za6fqBP~m-69=(?cDP(Q*VYK5Gvjbz{`u=%9AGO0llc-oy4Q4}}c#^^pg7}?_4L7k3 z_aA28)KA|AI09o>0wbipD1ck;!Vf)OU$8+aC`!q43dW}O8w5Zt1fcS_WTf54w&|v$ zwQ}|!cVyFe9XeAq)Fhw9R*W#{=~i#N7db>vUm0?BT%eXR#DhfPEz`8&cfJ5=DROad zU(R!~EseB*yzHm+@ksDB{+^L&wDC%_1y_x@zG>A_q{DP_Omf1tkG=ytZ&kZQV_kLX zw#fBF^`V^_L?6lblpy#z!E-~|_@d1Qia&mYx@lrLpV=)=yU@or?MblxrRan&=er5S zX=tE%MXyBl{DzbqQEM%PJ9EqKJYRazDMlc9_h8W_H8WrPSFfa*MsI=s@YtikvBLI< zmGui={ov5D>RCiQr2G&QRFrV>Dq2F}_xY^BGQ`McV(6ss?ZynXeC=NaekrN2>*=TM*PQ6AsraiS1F< zn_Q9X>K+k`CQ5eM>~Szc6`CXiQux`8nD}O2dQ~kE>Zev{)2xEGR(ySolbGiW@qcM{ zEvx1?<(+MbH-D0AhSC9j8#q4V?};TF%~x#a zZ*&>{_*^P}%?xjB2lJU6wo$;6sY%lgh)pB?ev9vzZUXK?wX`<-0$pB=~xw{8D30myh$cA8Qi1+6D*d zUpw+LH@2*dsz9`l(y!oZ8=MF9xqC3juIY-+4(+YyZx z*EPS%gT-Yb6%jjORo~;^PoytN$-zX^zn`H)KWP(*9Pd;PkVt-e1x7oyi9qpnR?EoBy&!jUNG_z;x(@GElylGo2a(M!#%p+eWnroDZfAt#h!KE|M?5cLi6@HtNXtE zvfpRdXuy@1+#dPGiU#ZY-fD&rR4$12b^k3P6fZU856<7f&#A^(*F=6UOJ>f zKtMoR0VR}_RzW}nq(h|n?(XvEmG}MbZ?y^9cV~GBD-IDwS$(*s`BX9qp!6!G??YF)?v70}_Xi=Ou-0MZRk@vU$ zvewF<@;G1|>yQW*(Nni&j}Ajq*mT&IK)3A1cg~R5y1jHSar%SfokcoU;R3;Caqg4I zBJOUO4z!w#D;WEZc4hY;k?%kKoZ|m$)^K`nob$8B3Tyo(1^p} zEN)G_;v>_OrYFI2&dPo;C4uow!Gpo+k6$8zfPozixGezZwma3M9%dR#dxxZ=d~0 zCuka25ao@VSzt*g_pc~Dg5jJL5Ii(fkMwDN&OYe1JyWJ`Et_N*{;E{yH;Da_8IYE+kn=A~k&iGE3nU&&Vg-h%uW zrzUE;`q~+|llw(Stw+lAJs-SqLjPEQn-eE5p4qSIX`PuSw|RXG6JSDTW|keiCn&Je zqPvfGbcepJqlJkj1$~YqgFIBS)R+47{YHDTPypjxSae(Q%%8L#*aB?4kl9#0#tY}3 zZ^q=-$RD;MHkFw^j61qk?7qC)C|jMJ*=+U++4h)&iOFLQDv}Sajw&%rmE>$5eM;9; z7xxj?Kg#g#_R1AF@5G{Rl>PnN0 z5tit~iQ$dq61Hy%Yv`*Ctw~^%mnHM2;6nZ@rO!HyvP8!x9zTG@l0YNn{1-5YwA}orB4+jW|#$` z-<)(`Tx z&HSj&-ZKU-(u%yo&DK**D{-l3=7UJUmk2}r(S5UD_ap?29+vcQSk~Sh+pP|n!eLm8 z?HI-vmC^ahwjG(s`7u^KSS0JEK~G-j5TK)9#KAixILE;u1B;TBkPjG*$6$*nYjv8f zskr&#MmN)y#C#KOudQ3JsI;RuMVi;Q!+^jZ-U^V4(f_WyhW?uS_?P*NP3ipM<=cc9 zCZ1H$=_?nCLKQM}1H z>@Rhz$g?FK`d`?qSiH}M@!F_Xyos!=Ybu_P^P_p5Z9S_+dhnNr$^ zl6EZ=S7x3wklf9Xtl%Bp*0r5=P{eQSW-n2i7yjz8%`#91OV>BbrRbe|t9}%9J+ngf zX*F7~5zT%ETV_R{>Z{5Rtq!#~(kI4kEijB6r&DH50-0I&z|_uHn3&u-^HzzB&JXyk zYVRG@4msh}s=k&w#OF0(2zGLci})2iX74km9$4(q|0mG9_Xo43^MXsrg7Q5h60=~& zJJv}%w*-?si(%c{bzEO{hvK%vlLcg+sn#?w^Czn%1+!+9zEHgG!L?6!t;Rbjf;m9$ zFi9-8>QAQ9`u+N?ap_++m#O3L&t5LLS4tH%>H4exb0gsz?Z(SUxi2)nB++#-?R=z+ z<6(h3tXJ3x(Y3Uyzt4L44^5{M?g#shBs`2FW}e(tUy@CMZB{=j8GLMA{`0QkdkkEO zJ+2$;zF`Wb2D?q3%_h^wauE+}NDe1HuIaD7mk`?38hfEXS$z`WN9nb3a<|=+PgP=? zn1avs=l0GUSKfh#Hy2h4)RS&**JM^Sxuym0+NgAPG^jgQvR^@;GZd(spZH1CHyfVi zpEfg5Mfh?nmL2wJomG}J_3PK@Ti;4r^*QP<3-ld!eP9a1Ur@D}GS9f>YI!a5S=8vv z($wZd6oRVZ9aeZ?sR}S4#Q)?qNBmF1ZN{hD9chL~jclX$_lbV~4l46+w9A@h({!=w%i^doKT%A7sLb%; z(HAYvhl7L|TYj)NJ-?;&>D(%&FKvnmCZT_2Z`u+0x-rrk_$u zVP($Tt%ZRGxuN|*lEs9v z-&fQgam@eOQKcg@VaD*I%&}2b{^NI*DHgvX-pXICDzBu9=!U$FYC(F3e%z=WD{Mhp zbG{~A%`LA)g78L$lj^eY?NR&TwPI8arpLA1sS*v2MxWCR3=$-1X4<6+whB0Fq z@Rck2%F_^RMZ$jk*=G*i7GaG4#B?&6H`Hz4tj^HA{PcB<{dU=wPfXc*Sz)Hry7wdb zq^ZV!LrFsAR{>4Gzhmq^shi>o_i(P8GX474tgb+Pw=qH_78@oBTYY%y`iO1Z70>n2 z3+LIguJGs0CQ%6ww4CY22j0Z>Abt`@pYi%ok!_k5VFt_kji2RN@v3u*ZtQW5h#-U7 zxH@t4an)hxhu=j7uzQ=kTrsX~`&m{)M^km4hkXlr^@pYRR$3N^O*>aoPo`7YH#3)q zi%F~LMHR0b_d6X}J(wOnZmoW0uC;e+pV*&WGqQwzuu!{nW$NIqhgp9 zCmSV*B>`1R?ueY|xWA)6Wbl-1mT_+9)bhzJqsNmTj2(NvMD&4EwE2~*pBw_en^+4) zNIcH&x7n%J=q7&bAsf@z+!4mKn2}NbLqPhpFUWNf3$}(&mq4`SD1_n0Tl9)}Xhyp$ z)SZW1O?Px)imfDy&NBS=v#geUY|jm9eOX zHE2gCWXBzup7;kpatgh9YqxDtCdA=}+}D$P7hxyoQQAdDX z)RFlUu|TzyQGQR(De+)0W5i-R?>=oogCOByuM-N)2<_60_f`xAV~QQlR|dZHu5|Wp zY$10l8uoCavWR^~kuvfI`r)pgDI7*s4K)|t*smhe4{8{)zv&UR&k>izmkkiq#*Wm* z-*l)UW&HRf_O@7GyjYb=ZhAlWKt6T8^195>D7klq>#uJn60Xc6pN$8|JoJ9J-JEx$ z6<$ylh8e2}FYgOCq}McTq7fb0I7h)!t&aFIszg7!L|HV8TWtGu{rqFFB0ioVnf&8E z%{-pq>bH-t|BxN2s26$VNxbfUS7ErH?$-iVbLvdo``JT>H!D=* zQmX!+sorFg8}ixds{}|jZh-RR@_6>Hwg;Ct{Rv?Q@3eRbPi!zQhcM;Jn7PGTXj|Kg zXxHo6PU1DNgWoH7@sHlZhV^C#gJ~w$dl@za+Yfg3x%kWm!Hk{!a5_0t8u1N$e#hXr zowp{|Tz2tORzhD}iFO@A)+W4`o)x{i)3Ke`nfoRCNqIP0$2_d-BSX-dh91FK)@zg2 zi1G#4(^7Tn5%m7mE;YQT6d75CdhyjnCJ7|H&$Xm%QN`3@_i4~zv1})nq?i@Y^-c1X zd^3jqi0-u+Ix#ijkhC|x!kCKxDH5qoi4l>gJTYDDqG0pcNhp4XD?YSwg8%DC&%F0# z@%!~M@&f@*&#+Zd$x^GHoJxa1(u+jFUxIwyVfd5XF#4bYY#ul2r^&x@PVYT_8umL` zG=tygJ)!IUY4l61KU=s|j|(E}9c^w3-SIsk!4apJ`9{fm&@!~&OdQd)jNL{}w5-mG z4wFxpETlQ2CcScBhQQYnqYaIPB7r?$R8^=ZOKtK#V@;NWt>inxU|A`DKBaNo_i4p$ zez-8kFHf%$Fo{s(XT)Tb{q#{T#Yk&wV_32ElC-N$g~swCi`OXmlY=hrrx3YhUE#Hs zxr(tx?j>n0bXsC|W+y=Foh5EJRZ%cbq!d&}xaocj^=~MR3U%mVI=Duo zGc~u~d2>HT&OEDKg49`H-zuydnwBhPKXMyLPjdJvRF>8~5tW^mLvVN9Zt+ER>pNWh zj_3gbQEBQG>`OO$W#~KeVrBWu6Zu_K$Q?I?+{rr$;+&LAFf1liNhc$&g{M}wn_)(b z!))+8BuWSxYZan3yxvk-{BctrUbk0TRvjvjAM#G~SbJ#{v(Qy^iV4#J4|CS2locK7 zlF*+n$q#4^C5G{s(_^dY?wVcQmo@QzAhbJ_OHv?YnsvjOF=Fp`Zdd-(2%GU~yCSy{ zyCVJJWE3BwWr^p}emUG$?;fn6nO91xyoX8i;Gw0N@FgctzgsVCVW9?C>jK~lc9|5qtx?Z&=a~X0tc*EP;v%(!qYFW0@Rjge45MsfGc&OaX{QX{4YYQrrVzz|?z|_-U%67QS*zq-=X;W<`Seuw zZMa5^@U>q7gLfDTRDEOm+_KhMYubv;y94lId#zsfJ&p@mw-B9H46K;gbHYr_knbk$ z;|)q2-I5!uG<)?twA%8fcSre>R8Kn$g;@qIT_q@-l?M|q|LB-!>!l43NnyKLI;y~} z&qF4*s;iF@Ynlp&Tkcha)gKH5PZ(M?pWXl$I{c$1#vS$`e7f3Wf9 zmC#u%^Eg9g?yzlz=6xP?k~R$^xtv{vTbD`NbKZ1l7JpW$DTp=5%`^DClGxBu0Q+QA z%KLb$(JcOfQQpGT8*P6lrgv{5Z@eTGnR6Lq@Qk3xXo;FG|2Xl2!amX|(_D2y_+H(N zO9YPcil7nI*u=+fdG@X=Y+YBPt2fBZx5#As$^~X`dNhu+d!>wU8SV@A%bToDcCEYf zZ*d;|^qd4!C&6EnpyBKLreiH)<-4%od488{T2o(3zEky?w{l#~y|=19zx*jXkF;3) zo?b(wl6Y_7Wf|XGhWq-XPfK@(Z{d`7Y$wR(vG?Kbxc$QK%f_8i`6bp*mnHE_T7M@%SBiUrN`-4;>- zCkfGZpEWr*)r5^>+1d!1y6AWpQen^d=dJ{PyG_Sf?}=w3^Ofsy0fP{}(DK`9iSJVm z6i%fHKgli)KHRI`oNT{tftvVDYeb%xxT-NENg;$*x1FqK2$u2a|}pEo0o z;&!iU!9l{z=e;&5(EtLp!RsrB$a zmVW$I6(^rS-i+u|hd6QKN+K++W-DK*`N=W*ZNYp&!$j{$Ne8u98zsu27sFBa^4&Nc zYOOa(8i|EOUq7e6(iHRhP1bAAC$Bx9zaGaT+MtcN8kS6cLx$XXzl(NPskmmdwY%rk z^h807x#9im6Hbx!RpP0-NiWBkWjR<(ERndH+76z}3udE?MO;VbN!uBAlcZl0`C@Y- zhg-TnAe{*oMd4gaRKhf^$eMB0iJ8b6N%5S2xX2o4EV?F2N%?1;e{1Z=r{Ve6jC5^>{O(QO^?_NrbM!*e1MY zVVDHG!Bgy+xl@)DuY1+n4~tx=pW4V!YuFv&4{gvt%b=E(@CUB!v0j^9NFob#=)rw< zh0Z04FD073;IVSST!Pjn7g>F%ew?hZsv%7nIg3B5T9&ba8V~=T8# zKUvoNyL=q&ey<2&A#CI-WgjFT;EXKkM=A#OGOm7ji_SZ4Z!zU|%OK0BJ8&P?qt?@S z>G`EF_Qo!i7v=_zsjlKFu66ti-k;N%^_h&Sa(bzG@MNl*#RxkZ=ktb^rPH}oBGcYm z=ZYR;1gfaqhdz*K?o}EwkkyqcglW2o8T}(VVzAI zNq3*kUL1>xaivw4?#oc$KH+_C*u&W(&QgxcHXPVXax4)wA+#zXzN5HI)w@nC%P7_Q z%*h``+6P}o2or&L#@$YJ@iubzUvlDDNM}0S(rn`&tF$PWw<$MQb?vQAX2(gGp3$($ z9kj^Ja&P3Azq72mq|?mGNkeJ!NFRJR<{^vMTRC-YIbxEBVrF#ntIr)Kp931z%Nm|zhcjoEdkVG24rx4EcpH9eMcl zXmC~p%3*+Q%<2L0ewM0Lzrn1^{_28Q#^mm?+UwmFi0)}rWxBCbu z_7`bRYVeHQHWYuA(8R4Y^Ey)O)s2H!b1Y9^zIGe1*V83$z{2Yn3ZEx}RfaKC`np;V z_6vth-%-2#Y>cUs{QI3kR9hpQjaTg`mlCB#ro=vW&|z5$Ro3$Vcw~`t>}{#Kl*2d|<5miRa;u?<W1#i}P5)Nz<#<1&bm)%OsQw?i$ zMfRLZOXo^MTJfJ7mpLf?*|V)&yI14gQRL29>`qziE?(@O8)49xGgxQ!J!U z+btqv43(`Tworrrx&0rs?I!!W74eoH7M~j zG;;q?Dqlse$x2s9o8p@WyQ?StGB>d_`2@|7jgzv9g{+`Ve^av^I+>z`TsZ4T0_6<5 z0o;a+(r>T#s+6A1KgTt{Dop zJ?Qyb*JY_-t42p)ncLA0bK&Hb`sPnhk?Ykj4XAEs-sIdR#kB9Ha*XGk%DLIzn9$pF z=eYY&Jx|lB}o6%a-<)U@yGIXL}>{mbGl4MPF z`S^FYfczI{`viL_R?(C#ORX|p zEOyzoNGSQ$qJt>M!+}s&j4!G_pK60S9uPQaM_N|pD!%q)6ZgSm@9DF#(5gx^eLpL1 zXF#8Tf3idDDa@`||GZ5W|EK9<8~s2~UCmP^q1*W%IV}`)3xftLMwVG0)une@>hyg| zq@Uo4+E{A;wu{m!8Zm$hqx95W>}fOvjD)o0g_fSPNH*s+age!bnY^26h}X28q(#C0 z^WtWhkg+guIp^3|u|xkMcR%Ebk=C57+*2>zV2;`0-=S z%5^(+JdnvFPfN;ivFlJTp>j7T^od$eX#;OY!kC`WUCF#Q*@mL}1{fw~ei6Tin}aX3 z!C8Ypv5rV;9Q>u^JENknLTxOYK{YC}dyNm5fnHZ-<H=#2xS3Lrk7*?b{te=;Vb{~^KTVF=HYNk?6v0bq>kYUG1M~Qc(L?Puv>btuQ2CIrp zBL*hE;q*C_)Ru$2B2EGfwL*-wW5@J?%yS0DeU08<_2Z85%fF!4Pxv^0Q`u6eZ(xeg zk5e7sVouX!Y$#dFmRxlynwygDzyFHhU~rq{=>q$##I%1HCoB=qA9$fFC!aMm&$_X`|(b}Hj zNr_9QNvD`Wfo~kBgRcVSW17Emiwz&We84|f^}d(K*SSy4<15v@ME29tq|zQ?FIBzo zMwqj%*`ksFFKpik)QN;GMKLIQrL~FYx;=|yCXaj0URm}@kDg!fZIo^3ed63}27K(? zbp*Qt=Fy27nMW1n8nKaGbFXNuLL#|o*||d0j;u-BVgd+`^dh#Sca+;a`)?|JFtaxH)Vp^$N z-pxApBcZg3eL?2{(`WN;n@JOeP}SFM*41m1*pEIq3o?22Zq&=qYwthKNXzFJ?39%> zLGx;wGRrY#N`t>dC^nbG{UT`epGNS5mGYx`+ajtJodLbc(oMUIO?_P>zg9nW*r^4$ z`Ln@p8ay z;uZ$F1S)gZb~bY>%GC`lPWI5zvKLpg-t~luK!5JU#Xt;3rmL(e#~E&>c2~7+KkX$Z z9E20}rS-0el{IjUU#U);2$=*U9>0s}U4ap9h4S#^GD`sDoK2m-FMVCH)+qvyOT@$gIv)()T*lX#;c!joMr|5WS z&TUCCRsnMZHUvJLCu#G^Y-y6a{~ES6qq{h?ysPXulwY?Bo~VLTb@vaRbNQLI?vTNZ z58B@3Iq%1D`I)!wP#PZ$`Y%0f*eN|8TA#4FfwN-Vc&l*T-Wr=TVV3q_sFsX^L})Jb zy{MPy<_-O%#|bde@J>(AxCu>s^yBV0+HR+RLd@@i&I7@@#wrg_$#+slYw94{dlM=d z&{bfd?A|~QxiwM$^!qyle7WDQe0+!td-3qYgp+^dyA-MZYxT>lSt)Y;D)u?76_oO0 zxQ~s}6vuw91UGMGy}p^H3=)rX>u)WUTBl$3rT^WXMib;%;IL|N>-l}O+ecTE-#Z2~ z9x>^?t9u)MWcB9BG%&Wk>Ll8FeQl=hoz@YqXWBHz{cXykjg0Y(^$&Ja!E^iKx58l4 z5sXKuFXwzV`A_g2=3-{~jxdg%ONO*=73wp=l2m{8S6@H6?LiAm`POycv~j<5#rZ_U zC#aQ?qNYSZw(Ra>j#=gF=Io0B2f=E=abKG~9}`LT)W37n!2;w|f-QTP9nd@XWLb11 z+-3FF@JvItQYd6nB!iXax8I9mF?(0q@ zIY`}B+ygqGKRTvO&+(lPbxM^C{@pX?fc|h__SXIV4>&VMFmw|3=>}S(MZ6i8c~PNY z|4$c~pBt%Ponz|iYhVTWJw zYY%1LXzjnpnZbpjizeRxhVQW_Ypv<;Dm%W4H)AsYSSZ-%h*m87XeQJtOENg@Jyp#f zdY`)_NpL5y7`pKohOT}!nW9Y+(jofpfPT6Ywjm?sEbG}v-Nqj9grZIP1b+(sH6-Yz zZu=6DP0?lu39y2{;-5hDuw1EeoOksuKLR)OX=Xz=!X<-GuTD159(7W;389YQ%&^1I zB`;6b)A}ypncmNCrf5??!S}~=bCTT~Aqi{)D2?&2ZG;Ul4Rqs3Z-(JxxOvE;@5@?K zE4a#P9Mihtx;e`(F5=}FW|vaPKm{fXaBx5uKcd~ib$cwkIFCmQ?bFfH#fgb3rI9q7a{ zO_vM~4^R;bmOY|X!P#+_O^``lVGs6QzuLh34;#=*>CQ~e~hw?xLYI_S&>`UO& zTqCts*?4CyT!|$%P^~ZQvPm^xWV~|grfS-U=usxy$D1BzftNWWh*xRbgix@s310v~ zmt=pOPMqRhSjbzKiVKXOB3694-~;^dle%JjKoqeEtZsn_IOage7NmexG=$oi0w9hM zkthOKsJQTjVZ9M5w-=!2w5VW!(vJWpuvrg4t20&tj*u)yY5*qk%;qj|gj{H5tqu4h z+}17V051RpVWb}5j9C6#YYdbj!B-}L6#@jwOo4rb)^#%=7zw7E1FFcg6${|{B}6Fd z?RGe`&{{ZhG5at8j5A8{h!1jr#y ze4PL-#L18oa2IjH-m z8W-gDfP_ar;EV@A^6zpu!!aITI7S?A;!6M~7XjGR@QnPP?2bQ$T*X7HVrkD^!sGS@ zzk2{Yh{*nVR0{N1pbJV3fk@89Kq9dD`B_1Zjar!bAijR+O?N?Et{ARP4rVzXJDUJQg1?Mg=PQLg|BF z++sbh^R-Yu3<*$BNX~u0t7P&^{K*$G(9ZkJ+{YU-fBz#sc7Yn|WG*&cuNM#o%tIJ6 zi0N}?K;{Dp?;wT7J^(GExB+mX{Q{&Z4Nm`0a}6$BUV@v)3;rVg2hjJ00P__DP`*MB zzJe7e}EB@ z$6gcK{1K=P>0CiUk-1>#y$e?ap(5bLXK&&nd?8F|`PSPQAz!PI3ABFo{KyNa*h83n zg~XRRE$chNy+l4dB({3O7(d76S$qP!f$TLtQPgf0-wf&(D{Vu?FQ77CfBvLH=Opf3nQU%2!xJ5ma513?Jdhn`j8 zKU+bdpxnB^y1|Lmhc<`!OTT33<3|-J3LYqmi}l3DgVc`-JF9_;Fvx2!FH%azhl>A? z*ED~#kMO6o-TDuUjQ~<#@97zf_fv@F>MeN6sX@hCs5l(|zAVfv+%i3(%+^4J&{FmD zBQKy*1ZjpF4lw+urdZAu;Wgz8-VFzY5ZQ_d2PjZG;NRK7p>Ti}QGNexVe#*tfJPGO z1iq;S2yJRX4vIybB^Pb8jX4yGN)x(1ZlAk@U$B|de;Lt40O%mJQwp*(oOlKmI85#$ z&VqE~+A>JW&8G!nc6?#4Z4D-w?O- zIW4@b6rfWSpn(Cu*NghUF<}9vqk-#yuLhie75t@ziVO9i=pc3U+3-X(8sf*+MDjyh zY#>Jf|7_gx?+VD!I%lE)VKHa9|7SZ76cq6b@o?!Nsi6%%ND%snQbor=UajsSq0cb@ z4I)|p?D+9-uPwUg0V4JQAw%f@v-`)tFDDIsq&~D22q9vig7Et3Ipnq30106jqLTho zfRAeH;_&ec2=!7IZzP|LkotbHXU+Nn3x&fFR7Ma|zt|7|0pG>~iU?QOagZz82S`)< z2Tt*K&uKV|sRdG6W`TMGl!`yQ{i?@9P`f4gE*@b0 z&%Fz;zkx^sa$yQJkBb*6CipfUkV9l|sspny1X6(Cr!RJKX%7*!plSke15p~g1jw1Y zEmB&Qa5nB4)83X$fC#W40?`YVZf1{Et+0nKn7#jnER_hcs5>DcXe$)lf5yUaYlsPP zu$_G(FB1$`uh zgYcthc=MzIrDC9+W}c*-r8))j* z2uP5AHht6di|3GqlujWf-U~`{34bw1CqPXJ&WxxIK2iZX8ptRFGP>CI$CCas`kns& zj3-#noxtx>O5n{5;1(iNb{WuJDjxow1ALuv*4!o_A#g1nnI8DYHK2JqG|GZyot2Tq zRBy!risUm?9T!JF_dwIkvysoYw$=?lNNEsKk~wz|PXukwIWrD;m%5dX#U zj93381G)(NFZqzYVn5s-QQ)(2P5~rM7(}wh6hM6md{zqQ zfcOvxG`BrF;Fkr~2pCWZQ2l2HidqQq+(Ck%SRpj;g7aM1)98OR&}Uu%Dfp!D?DA@a zOfTi)0wB)_Dka#73tSv`{yUz3X36k)eDJ}XQfR9y1?V>pMCcASUO^{N>{w6}p}XL+ z>P$7N2p~bI%HDXn*}{Q>lG=)b!f-)#g9yorcMZS+e?ioU-{$s<#0ViDd2rlJPLQ3Jk?JgDfE&DoOY2RL z(&d-XxB)K3EQ6$Urbwxh=~);E=n)*EGDAWoWdI2xxG%Jn83#~3#6X3)I6=w>zn1}b z5T0E(s) AzyJUM delta 31442 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 /dev/null #quiet then if [ -z "$2" ] - then #if empty + then #if second arg empty (really im not checking if you put tree) printf "${GRN}[INFO] Running file: $FILENAME.tam ...${NC}\n" java -cp ../build/libs/Triangle-Tools.jar triangle.abstractMachine.Interpreter $FILENAME.tam exit 0 - else + else #youve put tree, so lets see it! printf "${GRN}[INFO] Running file: $FILENAME.tam ... and displaying AST${NC}\n" java -cp ../build/libs/Triangle-Tools.jar triangle.Compiler $FILENAME.tri tree -o=$FILENAME.tam &> /dev/null #quiet exit 0 - fi - - else + fi + else #error msg printf "${RED}[ERROR] Could not complie $FILENAME.tri ...${NC}" err=$(java -cp ../build/libs/Triangle-Tools.jar triangle.Compiler $FILENAME.tri -o=$FILENAME.tam) printf "${RED}\n$err\n${NC}" - exit 1 + exit 1 #exit with 1, failure fi