MFU2  Shunting-yardFC:\Users\Karol B\Downloads\Shunting-yard new shunting optimization.mfa4(@0YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYATNFq1Lucida ConsoleAPMSASUMAGMI """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwcO 00xlg_;)m@tj:YPFa)2H*KIQ$G%(Mq*7VZ-(DuSBh aKgw!*x޻}v ">~}^¡.\܍[nDm80>.y_ ].1SFa[R>1> V\5o& @[9qe ZuưzUΙ.o}@lg;mlf<pݷnfz|V`l2Ab`8*2.Fߟ!wJdB!˙oZg :! r+xF˸ LJU -I_fiûl4 HυYn[BP31Xok;w NY& @-Z̷A>0?7 |>3858Y:΂kRX+jԗ^8?d:pdѷl\˚E[g7H0;a%\̧zfbD+ufܜ۬]`| TÝcH?n`ïe3}@]qo<*=uwLvF·IٓzXב/=Ɠ]~n3n ہ1z泿2i.]$3";#=7n̺4Ǔޗ6ţ1 D!{AkOek4uY?>=S󹽌eo"@, |(w]EP*\W(<}YezOEA<7n~V{bX4F)T ҋJ]=.?{U>}< O2d118W.T`Q3ҥ%H'D7(ݖLj>!¹@dm\?ݔZ$L|HLOq mqTuh02 4]`$ J-+GiY#l iӝd Z K3ɻ߸b+18@&#Ϗ6*? iy T:W7=f~[8ouY~ y|&WE`; M`+).%L Z4@r&a?l&Qr怹#"YbE6YR#F Q`Qt]O HN uӖ9FyXJ>PZ: rdm1ǶC_Y&*d46KY(Y)|"YbCow(odfJGguv.&ۨHv诲%"Y؄za767}r*kxY>bDUjK0Ϡzi/{M7]3Yd^mSw@[Aս%ʣ5JAcfO%|FOЎ:f06X$1mf f WY39M03) 7rMG΂3`|ΞHdͣx {of\ 6t{+.4vZ*rW+wEXEFW<x@C";C;F/:=74Lޥg`U]БLj*0XUѳZX@##`idO컇F>[S% N}됮VɁ)`}[4uv4#҉i]M7)T* Kygٕw˹8m;{ ec ڦ.Tܠ1Tp_c^يp?T.ĞF5R?S.#I !ij}j S݅w)W>}]~M +4uU o~NEjڪڏUj߯G?=wFu=OBsSѹ`i@o+*'|ZsX5鳇kv 7y[Up(k =R T8~U_~ZTPꛆ\ jW&bd'/  xUoHg݊ݲB6VvA !7Bf9,kGIB!"B}9"`8[ٺbMVQ {%vsn^|D{ PP;W]E2:|~~u/Q,=!o/,%ke) ⣌ڡl */v̚T" *-Jf7~S\%#^u[)jVӈ*fզveY!nb[Ӗ̗:=zUBBEAPǤ1iC[ݸ[;=0倴JK\ ]Ӯa&pX/u?,z;dʑ@}dqĆcw9\8Swh7'?,ucB*"EG _sWgTb h}$O(uMR##a厺6tpA:2>FL[؏ryP#"/Xz2cu= jǹϪ?w~GjSG-$3L?.>%S*^ט<ř¿nϓ$e aԸ|/qʳຒ}-J7$jL37t.+ 4ŝkvq$a*!b@"ٳg@<\[.&MH}Kt!䅾5,z`ݫȧ dN\έăa:DqѾygE,c.%hc[-n)btc V A8B&Siɠg< :C.]}Mʩt݊Ŷ}lH^7~.quߙg>ر*.e?F n`e17|pTQTTQU_ @[xe?hQ_' N>AQp)N./(d8HH`;ep G!Wǁ9b=! w߻pN_~{?HAY@ 4sF;mMe5seQ+ F-1:7`o[x]}5pi5hhQG[>޸,_foygvmE;Q+ÂC ruDmQ;s㺥Swy V?j ]Trw yQFm*8sFk{:T0 Gkg8LmTN 2{]}C'~Fl0jK^Q+~7UFf Nf\T< ~y 8MysQ&N1ްl4Jc<"DHKX@4 {aqNY83ߏiC_Q(ħ͓qZ+&ΜVp8nPi00x͗j@t60T2e ja~5+Bp'HjFƍ$2q[Xsf4#ɗ7?>]ܛ<\(gDӏǩ.Hs8-d|kJաe2u;`sɔMlt[;:H6;G߾TM)tݼXi:СzU\,&RYzunyH>:4uoBelk}?o ɷ;t'm?VcH<=#ZY'KОP]Y_L_q]w=?xzbVKV4Q,nud[ͺ=\)hl؂-}=y՟DUuʇ ђo_]jV?f|t`M^kk:WYe:gYWΗy+ANsOj\|JtO=K|Hc8|v L?=*¤s*mt}G"!܅MV&׏Q?Ne:2ߡȏ*ɯt2)u*Pv*n=6U<l',tbޖU*80aYʂ o 'k.~cz'7fإJlaAѕJ!ŽWܡ! Ԓ cA3:6y6?}xsKuhv lrkKY]E>UK x1o@op`tt;n#t OFLssMc~Faq&dH8I =@'D=NVswO\#O91LP\^kmdמH^ta axڞ$Z3/;\kXqzZI4;5+ <&Ҟ='U<f4۰ϗm`pE$s+y-F<wΥq#Da3>Km2g ZA ʪK-)Km`[fyIuv=W{dNGU+lAKLcBH{<=yв^u9Msh jԧ78?B,F7 Ͻ*-|9ɸ7VrxUr?YM,{x;0D(T|;* N`C%`ðDJ47#~U`{HG -5:H^T=iu3$iea 2sᩡ&O׸pKg>9' uᠣCx=6h܋=]*7Yo 1fv 00xA0PQ{vi OD?5)+8 )@Rtdoe8 qPO%^azVzԪOw@^#Sw |Bt_xCBWtt3qyCoH]/O(rnt:|~/df]X$]D)tAOzeހz%i ]L}>-aƢvmRPn. x C; vԎ=T*$+v_tRu2Jʆ<Vxi@h&(}ݯ&zq w紪!M^Һ~10ލE+<vw#g_L{^' @Гˠ8; }vTKxƁAcax!CST"NN 1!m |":О"*5?+~9lϺ3|&H/-Q79Ԯ?t m KLg!xݝ tT՝gI2I&d8 0(A b :6Fi0xtF3DHkhc,ht1YHV]dFEMZtlCj|]9|$sZǛhTG<-^Cj hYn_:[!T@6w-Ul RE)`Qwdwߪ%.mSշ[ fUK({o58J da Ζ9փ8 qG'ehbDs #[rz oZ0VԘJ!J H:{><{VCjm +wBfo$I)m!JNPz 1~d ]6M{۬wQs]1RJrc@LXXj3ɻղI뛐:(elcRui"ZcNѱ%>lڋN17t H?%څW<_Z=}mݾy'rĎwf>x9A j @ wρ|^ }.0iAbv̌7ߊbD  0&&xvL~" ^Gs c2LӲCJuWo |$lDsbpo*wm_ObDOigY3nZQ!ٛTyn0 )s Yhce2p7F]wu9(B;A>'@_ ΉQշTaFyu ny~&fH/N1uM Fd4'+I[|[ 탟wtBÜAc"c]5!D r4I tl^{e09}#(l%SPK& %/}!HnX@/դ/* V͵ Ael=?C~ @^ixѬhƧO@2IdID!= iBA?@!i;siMD!}یiDX  W7Pky:|y|~1yz8ea ˆT ^D#߿lh|U @3<a-g脶xGSƠ?@2G }*Q~BYgEP6`嫃'޶!+z.z?hf`M D x^jֽ7;}y\{ȯW k7F7ê? ?ݟz=n H!g0l5>{O4ü ?i{{"R}c(BT? 'H&|߃G!}>Jӽl5V~>믚;0:p"Ư9<qY@m #ZJժ@jŵ2xH?֭0! l >My%;e K^}kCm$o=l& ` 3C 0#6}[j{OW~zf,Xboqok$O>V`엁}g@{@ *-qT<}?_>>w1NX2[|gjIû}䳪HqByhi,7F_6\H#"/$`KǸdGw :߃dևޯu bؽHWפv9^D4ZVO'8z11?lVp3* ' Ɯ' Z'aw9@ݻY&h`Gxsͪzc|燨T+zo [>>`bxќ.Gd2}P'ߤRW+ -;x>ns@32+ӧ=QSd 5u . .E hy }jDatLpzzW*P *g&\yz~]w9 mFn}PTVVU~كj_`RMaVC#otd ==E߄> |gۀeFN>_v7 */ĸj߃* z H!,(#ߌ A-1 np.wٕ`+>^6.X`9(f#xQrc} U g~W^6t-\?$Ԫg~=`=8}Ϙ.~iFFIFnd5ՠ5; A.AEmg}R%{ߡ-ۯ;;`b?P H@hU/﵊o0; #W;'& ~ru/͂WT gvKyr)Nt+째f@4cc@w{+mk^ (Bapw7o ɩg$KѩqVX/]{g(;qÔ Cy切kzRGl \ S ;0=\T*;057V@>MQ~Y@-B̗#qg ^ E p8(RRӌ/ gGQ7S/Qhx^ Poo=Yff?WGsd /x䫀@غ9=&r9B?V?Ǐ3ʆ>x#@iž}j>JJPP+vPrz0[? -S ,lְgQTϘ\vrrvJV` %oP/hWuIݻyrӻG[^Og5Nεd/??*iF}Ph'قֿ>3~8~>Њ A{k\f7);O=,A}\GN;{_a Q7 m293Mo+DWP6gy_RFv'ONF.[z(kd [#b~۶Ho{zVD>\]sF.gwv?Q"wEjǤodž? M~r,o)_S~pT pHEؑBolPFFo3[v`;݇!;EN2T|7Gﰖ}Jow@EvZq(@ݏw!%ԡW|_S#N甜z_S'#d=!]9 W9g)S%g찏_~@bgۇ< j3v}:\6B&߬AՖ!nHWd?̀hW|ZkSz>2 ";X~|~?&, FX%sk}dߌ F,r]dS;;v>J=GK.86-`S|Tm֖S>5oukڧBN:PbcfJS6h5[<V)k]P,,Pd~:;yZV9/}*{5k?g(F#ۦO̧f!O-<7#ۚ-(9_4̯yGĻvJ+Bq3r(#cth*"3U|sP;'~ހR}p2FG_zNr3c .Xd |*OnY/UNH %N h-e}?] >?K5l#XADpqvl{z|/̧_"qZxKS\q-Ik@.iŷ -G+v'oѝ;i~%Fg>6UV[",m{o|_7@'"2U|5 CpkԒ=Ө? x6,iŏ|~w!P2{,e+`$ T~# |&|yŏ຿W";PV73+lmǾߌs`UdT)'TӲ|VUC4eu?cgO?n'Q~x`ߊzP -TW,ķŽMBzÐ[~{85ԧ$} ? Mi)>zjFVWUk̾(;=-zrJQ_v٤+]`c~/MWp~fE'6rTB4n#q98)e+TbPʾ6S a}8޽}ե&glzMdR, 8p^f"7~[ BHQʟE6IO| ,)qhpwWzmJV*z}M|=3HJ,__nx~Kn+22ݻmRt65ʥZmzS"b䬃 z7fFLgJ-3R@4~/A~[Q^FRrS og3k R,եKypmA^jjyu%i7&Lhv>~r\9Gh﫽j^!j̓Sbɜ1鳥c}{IVv{?:/6z)x+rmU+s3ߖ8-Na7?;k2H_0;(TKaw9ԙ'Gn[1+-%_m.85%' F)E>AtA.9c~bԏt]2wFr~Λ ]usFRRғ)3oH=M7.1i39}m~VVq zkM,M˹)e&xMʏmH留 Sɛ3:vRs5U.huy/Yǝdms{"jSWX%O=D18;Kre q4~Rj ۸uߵ;&5'{ 0I9U0//.?u+.ʐЦ̐6Aڒ `eOA]~q.soiZuAyIj\#w~cQndEKkc{< X{EG,՟{i_%gjO_Z2`տ7v?X}ܠabv?|gG|tկD}ybSCf1qw7-ч {_D]~~bS8$VG9 z;mc`ꦿFQᆰ]0w_<~ߺ={Wso~ޛ̏L ϣ~'խ]9?7Tޫ<@qڕ5W6*giiyeD)馹wtM #y33'6)Ye^ʺ_MIı?bYٓz7AFnk/'czjsgN&fλdL^G/vܽhH;0 ,Zy-uPo?˽[/^|Iv^LapyM5 퇆*ꉝ7_|IL ;oo;A7+ ǚ7՗3(AJZf]]mS_pO55֮+ f4M'@F9gko\M[zdGzps]wTxΈ M/Yv7֔VmÆ26l}ڲ5(.\`)۠OI;ҳ3/-Y^Q20V,f_b2feB9} i)LyܸhfΌt=~{Rs׻(MhbEeG^{O@y \Pu@`o]Unq 4]b P\ aѯ=؟[޳tC2-n^ղH7 Ұw>AOq7"%hEs;֞[tCv}?o4eAZݭBT?K x9.ʠ }}ݲdzE7kWVV_uC#N1j7}y;bH)!PYI^ۣC */koBGڃ_;wرֶōKBچ0fwP'쁬dǗ~~U"BeG;v[~ny;W4yD$s@ޟT}|!E^ʜ1q;&OGrswh%)O>;WoX[>.{[yȽK_{9y%R'C@N2ǦrFtf{a78'E++E"sN,Ouv,y8dKj`GO|9$Ȓ}ZQzCC{O] ?ֹc/!׫>}<^,,g )K%'AS/@Y}.vfТ;/4PC{HJ}=gIJ1m=s";('c4}=K7XN:N`4S4Wp ÇydgMy'agQcṣ f?a jZA :Jda@}vԂAx d'vUoOj}LⱽC*zT洎bZ>_3t%f䌦_{Z>`_cmӣWpvoeE#]NakO(k| _X ltzFGWz KU<=ζN'o<S 哼|僜QJX/Z;)GN7 9{|cϣ^; z){޿&m$E>_zR"i')Y'Y]gmtk" ߣ-ϱc Q^x=j.`- 1.H2Iu'4jxi_ډև, b߽|W$=;mlEMX:@<>[uv]e-Ff|\x(Lsས/>]KZP*v,K_;)FR?&}S?8Cb'gq o D&4'dWz+ -_r kҜwNrśl~`=C[=]}DԸgҚ@<7HNuJAU/`:a&}!w|;O髳7}?#ysDutzأU>عc'oo*fʃ/I>gsfQW}쵫"/`:iu0#;*0G^MCbi|~RfJ+E|u>䅶=8P<]oJ߶Kϡès>ٶ϶z6yuI.}=^_ZM"["ʇ :{=9_g[gUa_-d|R'+<_3^YZM^9ZgpD*b/l+Oy5>y=볼>r4ujtj٩rRu027X+=b*!߇90+Z^_9c5j\NA5/R,/p'/TkՀ쥞pC!A}T^A?-hgP럭: zH?"D}P Vi ..b__eW䯏yJQ_{w kjW'KlwԽŗ^^/h$KTO?3 K~Kj+&܈l YoT~5QϽK<}K%>f:`ސR7'yDz|ml- 5 oDK}"?烞l4k="}n/h'h'ؓ1qćcX$lDŽ r LL~wo_=_,d%ˋ/(@1qS@|R @]4,_pv)z~ˇ>ޓY=⎩㳞O~- _1}yf`z޳d^PAr~Pu*:}9yc;"ξNh<'HP)g[>M{7Pu@CdZ;Qpް MjЗʫOh=Mуuխ~T:5ǀRT*j@ÚoN6>}+Jl_ioOQGz|h:ny o|AkY0Nɢk'y_ [|Ҁrsvpy=-E+-_l+?*#?$]/rrg[Q|?M_J :N DPlc-:}o<ҋ0.zR(߫[>ŝ@iWbO[ _J t ;6rtU_ֳNO9yT(W{XaC !uzܟYϢD4@z!R;B^NzH'0ì81] _d"}`8IB& 2iIL* I_ʞJQ 8o{ W%n^9/q>|{y}: cp$JUʕKf.EW4 .@IX;De)}J!ZMAh P߽,{ӤV `O9jBD/4rpO_ "?\ëd֯_|ׇVH;?ty!+ /3NX 9. G)`j@ի<}O70󃫽xg[_ꋵ|U vɷKkW{[?h@y#Za{@ e pQ ?P\AXi;}I5 r/翎׃9բGV P~=YQߺx/tOR1Tk^iwsA3xf~'$UIb^_y&J?یΊrWg"}ג1,uoy28VW5?|CMg g@ZEge?R1|g)߷ =}': Th01X>$^u `A;"ҟaX?~۾ g j?{H׽xOeW?M7 YkBOU>bGX狀|=yۇy>` xWqC;Q~G%(;83K{{ :DT?Au"9;ϊr)2}kAL߾W=Uz?GuDP|W=lwx.?ߣMvu|B[>v@*n0b׷R!ݟ1}XIYR=K | Wq<|G.>',bO&wq״\!_OHS|i?gi$֪y:>\큞|,H|_taxo]^e^Ww?t_=)zc׳tD[?M#Sǃd b`h@[D_w'zKKdF#r <X3 ,zDx:7ѳ?1;`9#~|'U_) #?CY_1{$2~#?YU-T|9 V~r]u{Z-;+&=Ъ/N2`0se"z3 iPR:u`eW~GU}ՕՒn`(?.ٷQc o!Ӡ.\Y vCx'8-L+ * <5Gyg*pU]aW%\pF }wrgY1J>y1gb7ݞpwPIpy}>wu'3s.c;?De?+۰<@G /_gCVs@fFܟB|;E>Z>^YKϐO|>:G~ x7U]vW}zTɀuvӒQ>zSJ41]d_U Pw@ e_99@(fzw6agI+~0G}CpT|~(,3Ź߉[kmx֏/9@wO9?rެG|,aIýV|/m{P>"׃k2;5-cL__qT"o?F/@Y>!%& {p'P4+vy >KA?ndi[f/}ė6=9 @Y o?5S~r/`k~Y(_N<Ěu ([o' Y_QqVZT]vGyN%Ba/}-kV;ϺW{ 4@ID^}5{BN&G=?q/}kd~k^-H55vy'_$v4LZA=>Kc?8 luU~߅xt g~xW{Adk|׀N;N$Z@뀚,M_wx:`1 :?tfb_Zv{o}?>-33buȻ@iKԵ` {ڬw5{3wws޿oy 9* S!;B}keE9aqp\|&/g/_d#??m;BUmr~!eΏvy[<""+m>QQbHKV=ZPd%z}U">x^pί~+u ,~@} , Л+= #_k~Ŀ[\*6Չ{4.CB|@W!a5@סg61bGm1{ul_ ww?A'rl)7/+[ĕٳa>N׀#ĿA_$V$|~ y?$%zͿ=c#?; 'RgiN.=mJ~#".VfXh| x_7ũXkzQI5X?Ǒ[\9@T;J'? vը":ߵ[?<3$O?Gc߸[/<) IEK}??w{ Tjɟ?ubb?~(j"@ +POY N-=̱DBt 옧i-"OxU~h+f4_=w,>}OI(w FbzHH/Z~ߋb?ts.;_īzN҇8rO,7"Z\-ɎY[V;+`b]bX(tעCBe/>0jr7xKwii`yJ 8у]Lʖ>97S] Q)Y?"Ԁ1wgBF%"I@K5E}]@-|@=`-~H#@ۧ1O5@G~)RKQԧcPvĴmUB?Fb! ~gEmp!? @Ԫ-_{oL5ٟ'OV {DEO #N_@SJ}?8#fٟce .r7wWBD~kR/")ATG43@ 8;,M a ÛA3<w"8(m쥖Eȿˮٿ?{ψ~/{}+y2ti}1._eiH}&{_E_ k*hFe}&(ua>M,O}SeW8 ʟwzuW-ཀྵ\5P%s/! Q"-ofrz [;_Ϸ#+?l |WZ#ppCrBQ gN0?8$1|w]?.|B~W~O9u4=c8{2A9z儏YKw |"?z:| k_tm}w; y#Z_?wDv'w cu*Di/{/?m===/ yTK/݂ 2'/v{ƈ}&hi/&ej^POVOV,oAKrnS.hwȏXP_4Asf>rv1F=-J[]᯾ E pJKFJ1{W_=Dڿ"w #?bW|q7B~LFf/&Zz]{c-]Cτs~tJ>pJGvY:>>Z~W\7)UO׀[1<1g^cS8WTE Z~q. '|W=@ȳ |/gΘR-Ы bWfO})}%Ki#ϣQ䯱(Z1i@7 }DӖO'}' yNqI7>u껁>ƀ֏Aͳu@h'YVkѯ$w g}ʿV`83 gzĥ:@kKKy= { =B` !ugZYqF|';uHM]7{5ϟ\ラh<@o7j"~ Py=&.m-MRm2˷waP$~k}^񏿯1ƜőwC_5AJ;e'"و_={,`ெ#)z:D٫}H? xx0zě>XїgZ1ĭ`~a-o&!Z2{%}'3 < 1>W F eDGD#k[X:~y|P[,x=_wWvׇb7/ +K 5Au<T,kWWv-y Հcn.-/Kh>h{6y=IWYj <Ҁv+D/}1@}0n2SXYh-_%ω{d5kZgW[Ϣ;WjY|B/2Wm@͐^U` \1RK`;"0 c?<@x@tG`Xչa' :̟1d_a(x}ǷXYŐ{=M{=$̿Uʁ:@K#Ο1@ 9!lr{E-͊鷟oȿF<`?}Y'MJ.~]~ߩIyxܫ)%o5/ztx-dQLNV]u҇]P"R_ C_sCG{ \AFDXwjKNA/ТQ'XvHYHx0WD֞.'ϲz̞MyWʞG>E'|_Fn7=,Xqg[{2׍z ܢB?!_o 3Rȯyh7SW&ɞ_wmxOԫ0<$D>/[#0dƟLP?m6wNbWP(󧅤o$xW] Z\}D{}(8+C՟"|-e XX 2|Fws9AS y̞o=@1|]/rp%{8 2>WWa^zޯ3@-pSb< 8'\ג]⯚4%`K-|yCߥG&lJ>y-zKRG߲L4w<`ąP FCJ'jЛM!c]&{,fK^n.R7lֶN)+u{}?K￀#0CoCdZ6LfGJk6se {^a[u.TM)"w;W8= yAWxW?M8  h :E~*/u~bZJ:{S1?T)tp5I2%@[tRWNWb".>C>1~ `{ZH/mE?))*RKEm9y9{Б+~YZSkhk;X|t_I5 F]y=яϛT?b6_K=þD~:~JP⥪i,;r-`_QaHP  zֳRf_]<=W~kTN}+t4,gZ4#?K?=3 9)uMf{~~W,*5@ xgɌ|R*JzBn g%}>X]>錿eFMoM66bmmwcW~U\}pTWFu(i" ݺg ;P9\V4@Dרj'3k{MkiAt%Zo=\S kT#SIG(k^MOT_qW $? DZ'3~Wiŧ;n|^1{*oq >9Tpdﮓ@ItB+-X>TO|[U5@)}Z+r=Ч 1<q:poP1vz@Y 5AF$U(NO;&L $P]j@Jz DwK!OYo_7\@ROdxjZ5B7*<8! ʏ3phFֵR'n\ E;M'*zU1i*Dg KgV^َiB ;J wq_YwUYAƝYۥZփ@uAwJ<"a`__^+832~[M^E-끲&tCSK[?}Z9pϼ##c[-Դ^rR(Wu?*`T+ݟg٥kh酞-y^NaԩA{S (G~:wԑ'Y=hoܽs&ʃ^r3~{--끲&hO֥SCwա=?~@<@*F~:q,-`>]9;o!9q=zz0PTRd|%=ЯZ?; Wr7E1SS%=У zE/n܊BX.#Wx%(l@Of"[U 7{ZsE~u`xf/}-=Ч oIn3q#cO_ L-fW;0&*B}~' b:o"zo߆5cwUVx͟*b3cA2Ɗ~e0é`E~2~5AM3%}^{2Kd^28L~WFb@xI#?gÍpW~'34`U#(Fea,n_D W[r s+AI7>?MTZrb`j AE:}TW|`^g$(7U.@~W2 8`ƻ#91ҝT`BHDSi],2)#? zbb- y yy!V|ֻo^4 ߺFfxA>/ 2 Y%@곏"ryM3?s-#DN+{B!"cf_HZn/8;Lj_A}!5??b3~)}Gv,kd-4 G~+PV?sfRn0SG4@Gp/盛{Y [B%Ljӻ|K KW 80'L$< -[Pأ0\fS#\$8f:)~|xGE_Ea,ؚ@Ξ8GQ@_U(*~hWJ驃gx^?5ndC"Ёcf P@ol(뻨oשe5ۺE|O \#-UW@M*e@we5\|ѝ-G ׇW o}{*_ui (|@-gnq=|do6j( p:v g{=X=?kjb,t(yN q}l|M^\:4@TΪ pOo91QX#8/aϪh̜vϚ<ёdlBتn9O'e\8wq啥&:f''qjh ̞t>5Ƨy1)I "sŸDNKU1}Ĝ̌x% ŏ{rZk8ƽEyelVv`#pÅhk\|RJ5o:y8ρ9S\zh=g)c+_yfOjy͏KLJsOo&Ϗ/VMua|\LThS3<(klBRJVA=?~\_9VΞfr0GL9|f_ZLOper@vĤ!dw.HONF4`kKJ˺OWYgMsNb-.~NW}=e0gڽisSM;t糦?jfaԄxAB1}sS2>,WTʕr$N}scɲYSSd *^Ȩ8{j&x}EuIA~ pUQ/Z5?=oq}lI9|>7\͞UgRcfLqIEPf)?gI㷛=c8u缒 Yh25.>%kzp\ЦgNǁ`r'e^&GgNo2\j'Ξ6g0~ҙƥ%EN8ά(?>5hYO561eJ>hδ1\*tq&ȨfQ}_pD[qhkbJFxz>r҅ S8h R~Oͪ ͻKgMn1& @:~s5w,5yBjb!&\_|JCfL1\\1i֙=/ԝs'e'@']m|ݺxryo(?9xRy>Wf1{F>w.[8!7oPC_57vH=Q񩓌c ع|n>&(0ƗO-]407o:.KHY0qҹYɱQ>.D3{?Zrݜ)~H-mְtxwM 'e} b5^;'x~i٩v~_1|}w㝕WͰY}x5!ހyWNa2g??i(.h[_ƌΆg92buA`˚a4lբ=H.6lxW.YwQ.2Ա~ټ ԕsoKfC8׬XXVnԞ?(g3 ˜IV$d2{w͂y\)c6 ?pMWMU/a0]Q煮;9+5&J= 5||ELsOdD9?8~ť9v[ ~`mZ^Bϥ~Q f?jPo+ 3bT>1)?7Q3eDkbq5f?hQ1odJeKa/_SYϾ ;n=%;٦![ʦ::Rf?d_9p\*PQV~`Mָ͌b(~3~Ġ?RWU6i=&;^0:j_qu'X! K-gD,y+wV~㬂DlZ*0#V~exQ,ѱ'~`kWx4:Q8ُ#/X5jTTlˆ~pl}}lI#pC:~\`Q`˫ ۫n_0uRJ|42c.cCX25I?6G ѕKʮN]e9 V%?1)oh/>zO+,įM4B4aѵǧp򏵵`!gry bα;n)<616t{F'ogYiavR89 ?cbZ@cLrُU[sõ&g$Zf8(G첿|t=*WA@eCpqmMyqvZ\?f*/[ʜ8~oH|o;il_THe{!56B:>[pe~j\ Rr\]x3#>tDKkm0<|We%mau[Ǐic`WDF'@!~3s"'V@!<-w/̌ix l~hEU4::z hM)/?z|wʚYp1)#=zhyATk+uv7~`uEcc_jo=rkE8~V[ُ]?m\zlȘsQhC*gF["c//8No^w 33G~@߶l{qIXҽf?NߞX ǧPǓ ̝iMH5+M+/`4Z^>en׹`޺~a3%%8=ϬrFAj5~)upKv/uQIQZb_55~džŗwaf?N"I癇VT̀O ?\; hwXPd7qB>>t|ʥr^mK Y2'ٳ<׿#cƾdz1 c.Ћ;7=? 8]iK0B<>[+Cf?Po;?ON<(g[|JV5r4O߯o1.)c`_3._s&ڣׄ~P_$G8s!~CmLkG9OL!"/c. /_,1 Y~ЍޝqI80 ~Ѝvn]rF^J LO1o}qttl|'=r5d:gO0B5: ο[0B5zv=-וfآc6B4N:9zy pIz~ЌҸp3n[ɗP|eU+\3{l 9S~Pn]G.@._f?[(y+KDζo6 Sp ,mOW]19;n Y_ccGJȹ O _lm4/=9Z 9W"}k}/@w_cn016gk)c?SIoA|y[-DHϯs,5A4~'4,GXd |t͚tfV|ic|eOۃ__V863xvb _|vw+hU< ֖=e~ZDZמۢC[5|Oj߿ROkoZwu/g:fc<>XsҜL{ 701ʑt:Zuu3H=IL8뻞~ʧNNM{$WDcKכsuU%K=. jK˞`\x͗v?1qHus,7ݻ:6WɄd~> %V6hyi[[㲪YYxy/#c3'O]x'7d\|7=qwk4:})@[Jn[OF_xycn,<{5Z(K-=g7`|'Ι"}Q0k/F]qb"̟NL)ǂ.ս[XyKӞ>kp\t^c.fRv:WG̟ꠉ3.F￰+˧fgj%R WY2{}ϳ޷|n~vzbl֘ F/W?_pvqvFhS/ 2ʖ>p5i}=74/[4pRzo4RL*;\Lon_Z>kҘtGZ $rNpx o^ۼt 鉶(KʏT`tTLbw|f4şe 3c~z~r&f3T^o^4hq} 4KyQwwlZ$.\ҥBp;3 | $^ne_{aUuF}yߘ=UƸdKge%55{ϣ׻oqnqq`?w{:2{};V,Z0gJ1q_<`J5>nq{`w>feœǧe܂+]7Jā~e_'l|ڤ4{1q@6n҅5[dq:\ryMSRl1:^%*ƞ66jقEw7ٓG_y7E J&OHI2,^@dlbX.WͿ3y[ _bkf9gc"w} Y9%Z]S?Χ{ ͜HOVcS2OQv x;nZ|w͢ 卍c0j%jL**[A9smO<⮛+NO+`N?@jVsU-^g__iEWM/JMKv8'7}N-w޷ſvkwn;-/7=947>| Dڒ38#׽|S?辣U6Rlڭ}+ 'e8lMu H^~n6wsfKIq)!~ $f_dي-w Sqzko?ҼbYs &q~/| 3fd-15sl~ጫ\7,Uk6>vp/l5\(_Zç562֑?uUo <Ϙ#4k:i믻jfqclJ- Uߤ 19 ZPcO|;7? *6)D%S3O/{m^ղqO7<^ϫ/ݳc{u]˪︹jܒgL{71Ĕ g-\y<{Of }W}ag3qmKC7.(]8yBVfJb|5D'B,v?ez5޸d]+On9 ?޻;omVk{ْ^S6}j>{{7wVE\0v0ΑWT ֖9.'Y8dnUnuٝ Zf ckeT]u킹gNLKNĀ1FA K 9O0f|ΤE3Jʮ]Eŷܶ}}72{Oe,\xye%3 &dIzÛ=d蘸ĤlI¢3gϝW-^,h ϝ]2}jsDGNVFZb9ԀJice;r&L~ҹW]=o޼k$jnٜ+8&8ǏHONJX#=F!%`ONIK3.'w`JaaT(*,R8!ǧd{G>&N~p<"3..'$SRRҙ#--55M E`NS(70:222 \zd^B9s =2rh ߂58́[,~^7\|({ ([ x!O!^C.O"~H~Qd OsΡg tD}0Dw?6;r~TڤAl7>O'%X߽޹w'D'Q~LR3~uPs>0$oRzA.@. e[% x x1H@!Cp),uPTp1tI]8tqbA8v`tutp!kz^MZ?}{wK+>rP3̨46zO,`<Yf;=BiEƷS=zz23AO-o~zC  ·J`fCamV>wF g'?%x_XbEl? q<L!X+H;m}ObG:l~|v{}}SL&e^AijX_+ѹ2H!_1?z]̟u4Jat7JkL"`|=`/ Xy gD[ ˼\E ^E4]nX~{c+"Q Ԝ7QZ3d*j@yd8bizQVf4uZ3j s^d9 x A|d"cni5wTį?selkcZ3n-Zָ*0 0i CW 3Ce^yZe_+??wiY!w͟?i{޿ҿR^&A xc`AX"aÄ&nxӁd{Av\Cn }0 H+ zҏV܏-Έu? af?i?.I׏{O~y:$_b!_~RV~SZP^Q^RR@7 x E@.ÇPJ-D^9SW# 6l:+uثxN盗3}.|:M)ul{}Gy~zlK}ZLkYq,>wbßU  xՕ  ,A*%S .%KV;L" dRdžUݗZm]pь=8kCG|$<%drI1޿V.Wg̾xs^ ݎGΧ2_ :>T/{Yz뇾u?V0U;RΫ~wV'`E_',x q xՕ  ,A*%S .%KV;.(Kp.{"v6m*sqo^wVHg|Gc4*Xٰq|h%3g _3g^+_0^mw޼7|?J<*6z? x!O!O6g X֯@{CՏj ~3AG AX?[HOA~TCxQR`F(L響2C;l \/C\(Oq  @ x!O!O6g X֯@{CՏl utDۏ~t?|qa7>O~dW' (ѿ{)0^Dc~G~o~ҡ~F}A|ozA.@.0#v# x!O!O6g X֯@{Cx ?fq.PStbn/BnJ//?)+)?((?) AGMI{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' wp/xF $)ƯY1ʈQL3( ƪ:  xՖK =F5\<ކNi `X8hsٺSqG2z8J뼴8 Xmz)9bcc9<rM[H&xHUJO~Ώ#~d-9v>b-֮?DM  xc`@  l$nu0ج@4p4|7(@혮xrQ̦p C4 S/1`RGs.K 2r>cEj(4b>֠h>C|O/d4-V`$)|e>wZOhݾC[ڵ   xc`@  l$nu0ج@4p4|7(@혮xrQ̦p C4 S/1`RGsVB ˋ1e) ac>Xr0ߡe>b‡H+nZOZ>CvsXM!t  x= 9728sWo(QVS} 0b$`ڥRf9tYKCBŎ6'BQȻlCQ8be{T? iW¿]~[݅<F??Ғݘg-?>z5oT/G9U|o>/ Shunting-yardH<&(%' &(%' &(%' &(%' &H&File&New F2Pass&word&Pause Ctrl+PPla&yers Ctrl+Y&Quit Alt+F4&OptionsPlay &samples Ctrl+SPlay &musics Ctrl+M&Hide the menu F8&Full Screen Alt+Enter&Help&Contents F1&About...  P Y S Mpqsw Error message  kclist.mfxList%Y kcedit.mfxEdit Box%Y AsciiChar.mfxASCII Character Object%Y9Main-6{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' w?? Console  Movement #0List kclist.mfx%Y$$x1Lucida Console(((  Console 2  Movement #0List kclist.mfx%Y$$1Lucida Console(((!Edit Box   Movement #0Edit Box kcedit.mfx%Y  @)1Lucida Console Shunting yard token output   Movement #0List kclist.mfx%Y$$("Tahoma "Shunting yard token operator stack   Movement #0List kclist.mfx%Y$$(PTahoma  Operator name   Movement #0List kclist.mfx%Y(PTahomaLORLANDBORBXORBANDEQUALDIFFERENTLOWERGREATERLOWEREQGREATEREQADDSUBMULDIVMODUMINUS Scanner variables4Scanned character index!Scanned lookahead character index Lexeme start Source stringScanned characterScanned lookahead characterToken categoryLexemeAlterable String FisAlpha5ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ isDigitDot 0123456789.isDigit 0123456789 isDelimeter &|<>=+/*%^! Movement #122 Shunting yard variables4 Read token Read lexemeStack peek tokenStack peek lexeme Movement #122 Operator symbol   Movement #0List kclist.mfx%Yrr(PTahoma||&&|^&=<><><=>=+-*/%!- Function symbol   Movement #0List kclist.mfx%Y(PTahoma minmaxabsfactorialpowsqrtexploglog10sincostan  Error console  Movement #0List kclist.mfx%Y$$P1Lucida Console(((Error variables4 Error codeMessage Movement #1 Throw error"KLBEDAEH1STVE> 3%"Segoe UIRegular %"Segoe UIRegularl8(-Throw errorN,-"Abort parsing  "%"Segoe UIRegular8(-Throw error"$  &Error listI5  %"Segoe UIRegular 8(-Throw error.  2 N1 =6-,Undetermined error"#   %"Segoe UIRegular  8(-Throw error.  2 L1 =4-*Invalid character"#   %"Segoe UIRegular   8(-Throw error.  2 J1 =2-(Invalid operator"#   %"Segoe UIRegular  8(-Throw error.  2 n1 =V-LMisplaced separator or parentheses"#  %"Segoe UIRegular 8(-Throw error.  2 Z1 =B-8Missing open parenthesis"#  %"Segoe UIRegular 8(-Throw error.  2 \1 =D-:Missing close parenthesis"#  %"Segoe UI RegularR 8(-Throw error$  D1 =,-"Unknown error  %"Segoe UI Regular8(-Throw error 8J8 V-8Error found on position   ,  "  ", 2 SMER )This loop is started once if an error is found in user's input string. Prior to staring the loop we must determine the error code in the "Error code" variable, which is then interpreted in this behaviour and given a proper user-friendly error message. This message can be then displayed anywhere.+Abort parsing when an error is encountered.This flag is required to display the "Unknown error" message if the error code is not interpreted in this group. If any message is assigned, the flag turns on, which prevents the "Unknown error" from showing.JError code hasn't been determined in the main code before starting a loop.-Something unknown is found, wrong characters.!Operator isn't found in the list.BEither the separator was misplaced or parentheses were mismatched.!There are mismatched parentheses.!There are mismatched parentheses. )Message is not interpreted in this group. &Display the error and reset it's code.SJBOError variablesSpriteOIC0 Error console0TSLOIC2GMIC# !;!P[!P[P[!;!;!;!;!;!;!;!;!;!!!P[!!!;ﻥ!;!;!;!;!;!;!!P[P[!P[!!!!Scanner variablesSpriteOIC2GMIC9n ``````````4ޅ4``4ނ4ށށ ށށށށ ށށށށށށނށށށރ ށށށނށށށށށށށށށށ ރށށށ ރށށށށށށށށށ ށށށށ ށށށ4ނ4``4ދ4``````````SPRGError liste8e7wVsīV!Nf<FǦl>Nc8b<eQf>ܽawvvivuuxe!DNE22 Operator precedence   Movement #0List kclist.mfx%Y(PTahoma10203040506060707070708080909090100 Operator associavity   Movement #0List kclist.mfx%Y(PTahomaleftleftleftleftleftleftleftleftleftleftleftleftleftleftleftleftright Operator arguments   Movement #0List kclist.mfx%Yff(PTahoma22222222222222221 Function arguments   Movement #0List kclist.mfx%YRR(PTahoma 221121111111 Lexemal token list   Movement #0List kclist.mfx%Yff(PTahomaOPERATORNUMBERVARIABLEFUNCTION$ASCII Character Object  Movement #0ASCII Character Object AsciiChar.mfx%Y Scanner token output  Movement #0List kclist.mfx%Y$$(PTahoma Scanner lexeme output  Movement #0List kclist.mfx%Y$$(PTahoma Shunting yard lexeme output   Movement #0List kclist.mfx%Y$$("Tahoma #Shunting yard lexeme operator stack   Movement #0List kclist.mfx%Y$$(PTahomaString  Movement #0Text RPN evaluator token stack   Movement #0List kclist.mfx%Y$$(PTahoma RPN evaluator lexeme stack   Movement #0List kclist.mfx%Y$$(PTahoma RPN evaluator value container   Movement #0List kclist.mfx%Y$$(PTahomaRPN evaluator variables4 Read token Read lexeme Movement #122p p pppppppp ppppppppppp pppppp$ H l``8 ,X,DXXD,,X ,DDEvts %"Segoe UIRegular f%"Segoe UI)RegularF:  !P  b@-6Initiate scanner module P@-6Initiate scanner module ' &Scanner module3P P@-6Initiate scanner module,1  =-!P ,  2  U U U U UB V4-*Start of scanning V-R0-&Scan characters  &Global loops4  %"Segoe UI RegularJ  L<-2Get scanned character\1  =D-   6  `P-FGet scanned lookahead character\1  =D-     &Get lexemeo5  " %"Segoe UI Regular(  6&-Get lexeme$  p1  =X-       %"Segoe UIRegular 6&-Get lexeme$  f1  =N- T  _ UMINUS "$      %"Segoe UI$Regular @0-&Scan characters '  %"Segoe UIRegular @0-&Scan characters.  2  %"Segoe UIRegular  %"Segoe UIRegular @0-&Scan characters.  2 "#  ^<-2Get scanned character   D%"Segoe UIRegularZ @0-&Scan characters '>-While  &Skip whitespaces2`  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,  2 ^<-2Get scanned character , ,-WhileJ  $$Q  J  $$Q  J  $$Q  J  $$Q  .  2 *-While '  &Token check  &End  ! %"Segoe UI Regular6 "!@0-&Scan characters8  01  =-ENDF$-End token `>-4Disable scanner module nL-BInitiate shunting yard module  #" $#&Minusheses (2)(  %$%"Segoe UI Regular  "&%%"Segoe UIRegular( '&@0-&Scan characters:   -$  :1  ="-OPERATOR"#  ,  2 ^<-2Get scanned character F$-End token   "('%"Segoe UI#Regular( )(@0-&Scan characters:   -$  :1  ="-OPERATOR"#  ,  2 ^<-2Get scanned character F$-End token  *) +*& Parentheses  ,+%"Segoe UIRegular< -,@0-&Scan characters:   (J1  =2-(OPEN_PARENTHESIS"#  ,  2 ^<-2Get scanned character F$-End token Z .-@0-&Scan characters:   )N1  =6-,CLOSED_PARENTHESIS,  2 ^<-2Get scanned character F$-End token  /. 0/&Separators (2)  10%"Segoe UIRegularJ 21@0-&Scan characters:   ,<1  =$-SEPARATOR"#  ,  2 ^<-2Get scanned character F$-End token  32 43& Operatorsq  54%"Segoe UIRegular^ 65@0-&Scan charactersh D5    ,  2 ^<-2Get scanned character  ' H&-If level 1  76& If level 15d 876&-If level 1 ' >-While  98& While scanned character is found in isDelimetersDigit (2) :9,-Whileh D5    ,  2 ^<-2Get scanned character  ;:,-Whileh D5    *-While '  <;t =<6&-If level 1H&-Get lexeme  >=6&-If level 1Z 6 _    :1  ="-OPERATOR"#  F$-End token  '  ?>6&-If level 1Z 6 _    ,  2 J(-Throw error F$-End token  '  @? A@ BA&NumbersV  CB%"Segoe UI!Regular  DC%"Segoe UIRegular  ED%"Segoe UIRegular( FE@0-&Scan charactersh D5    61  =-NUMBER,  2 ^<-2Get scanned character  'H&-If level 1  GF&If level 15  HG%"Segoe UIRegulard IH6&-If level 1 '>-While  JI&While scanned character is found in isDigitDot( KJ,-Whileh D5    ,  2 ^<-2Get scanned character  LK,-Whileh D5    *-While ' MLZ NM6&-If level 1 'H&-If level 2  ON&If level 25  PO%"Segoe UIRegular  QP%"Segoe UIRegular RQ6&-If level 2F "4  E,  2 ^<-2Get scanned character  'H&-If level 3  SR6&-If level 2F "4  EF$-End token  ' ' TS&If level 35  UT%"Segoe UIRegular VU6&-If level 3h D5 +- d  ,  2 ^<-2Get scanned character   WV%"Segoe UIRegulard XW6&-If level 3 '>-While  YX&While scanned character is found in isDigitot (2)0 ZY,-Whileh D5    ,  2 ^<-2Get scanned character  [Z,-Whileh D5    *-While ' \[( ]\6&-If level 3F$-End token  ' ' ' ^] _^ `_ a` ba&Variables or functions0   cb%"Segoe UI"Regular^ dc@0-&Scan charactersh D5    ,  2 ^<-2Get scanned character  'H&-If level 1  ed&If level 15d fe6&-If level 1 '>-While  gf&While scanned character is found in isAlpha or isDigitB%0 hg,-Whileh D5    ,-Whileh D5    ,  2 ^<-2Get scanned character  ih,-Whileh D5    h D5    *-While ' ji  "kj%"Segoe UIRegular lk6&-If level 1.  2 rP-FGet scanned lookahead character d ml6&-If level 1 ' >-While  nm& Skip whitespaces2L  on,-WhileJ  $$Q  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,  2 rP-FGet scanned lookahead character Z po,-WhileJ  $$Q  J  $$Q  J  $$Q  J  $$Q  *-While '  qpH rq6&-If level 1:   (:1  ="-FUNCTIONH sr6&-If level 1:   (:1  ="-VARIABLE\ ts6&-If level 1F$-End token  ' ut vu wv&UnknownB  xw%"Segoe UI&Regularn yx@0-&Scan characters,  2 J(-Throw error ,  2 ^<-2Get scanned character D"-End scan  zy {z {4$-End token ' ||&End tokenص  }}%"Segoe UI Regular  ~%"Segoe UI%Regular ~4$-End tokenV4-*Check unary minus L*- Output token  ' &Unary minusӴ  %"Segoe UIRegularh D4-*Check unary minus$  "$  F D4-*Check unary minus$  "#  "$    &Output token[4  "%"Segoe UIRegular :*- Output tokenZ 6 _    H&-Get lexeme $ V- $ V- F V8-    :*- Output tokenZ 6 _    $ V- ( V-null$ V-   %"Segoe UIRegular :*- Output token*1  =-  4$-End token '   %"Segoe UI4RegularL N>-4Disable scanner module>0-&Scan characters ' |\L-BInitiate shunting yard module ' &Shunting yard module_1  \L-BInitiate shunting yard module U U  U U@ V2-(Start of reading V-J(-Read tokens  &!Global loops4  %"Segoe UI Regular VF-<Pop operator off the stackB V4- T  W  B V 4- T  W  2 X$ W  2 X$ W  2 \L-BRemove operator off the stack2 X$ W  2 X$ W  N \L-BAdd input to the output queue$ V- $ V - V TD-:Push input onto the stack$ V- $ V-   %"Segoe UI<Regular J:-0Get stack peek tokenL1  =4- T  W  L1  =4- T  W     %"Segoe UIRegular 8(-Read tokens '  %"Segoe UIRegular 8(-Read tokens\1  =D- T .Read tokens\1  =D- T .Read tokens &Token check &Number6  %"Segoe UI*RegularB 8(-Read tokens8  =.NUMBER8(-Read tokens<  =".VARIABLEnL-BAdd input to the output queue N,-"End iteration   &Function5  %"Segoe UI(Regular 8(-Read tokens<  =".FUNCTIONfD-:Push input onto the stack N,-"End iteration   &Separator2)  %"Segoe UI0Regular 8(-Read tokens>  =$.SEPARATOR\:-0Get stack peek token  ' >-While  & Until the token at the top of the stack is a left parenthesis  "%"Segoe UI5Regular~ ,-WhileL  =2.(OPEN_PARENTHESIS8  W  hF-<Pop operator off the stack \:-0Get stack peek token  ,-While8  W  *-While ' N,-"End iteration ,  2 J(-Throw error  ,-WhileL  =2.(OPEN_PARENTHESIS*-While ' N,-"End iteration    &"Operator5  %"Segoe UIRegular 8(-Read tokens<  =".OPERATOR '$H&-If level 1  &$If level 15 6&-If level 1\:-0Get stack peek token  '#>-While  &#While there is an operator token at the top of the operator stackck.  ,-While"$   "%"Segoe UIRegular  ,-While<  =".OPERATORp F T  _   left R T  _    R T  _   ,-While<  =".OPERATORr F T  _   right R T  _    R T  _   hF-<Pop operator off the stack \:-0Get stack peek token "#  ^ ,-While$  *-While '#   %"Segoe UI.Regular 6&-If level 1fD-:Push input onto the stack N,-"End iteration  '$   &%Open parenthesis2  %"Segoe UI1Regular 8(-Read tokensL  =2.(OPEN_PARENTHESISfD-:Push input onto the stack N,-"End iteration   &&Closed parenthesis2   %"Segoe UI2Regular 8(-Read tokensP  =6.,CLOSED_PARENTHESIS ''H&-If level 1  &'If level 15 6&-If level 1\:-0Get stack peek token  '(>-While  &(Until the token at the top of the stack is a left parenthesisack (2)  %"Segoe UIRegular~ ,-WhileL  =2.(OPEN_PARENTHESIS8  W  hF-<Pop operator off the stack \:-0Get stack peek token  ,-While8  W  *-While '(N,-"End iteration ,  2 J(-Throw error   %"Segoe UI'Regular ,-WhileL  =2.(OPEN_PARENTHESISnL-BRemove operator off the stack *-While '(   %"Segoe UI8Regular` 6&-If level 1\:-0Get stack peek token  6&-If level 1<  =".FUNCTIONhF-<Pop operator off the stack T 6&-If level 1N,-"End iteration  ''   &)End  %"Segoe UI:Regular 8(-Read tokens2  =.END\:-0Get stack peek token  '*>-While  &*While there are still operator tokens in the stackarenthesis (2)h&  %"Segoe UI+Regular: ,-While8  W  L  =2.(OPEN_PARENTHESIS*-While '*N,-"End iteration ,  2 J(-Throw error   %"Segoe UI,Regular~ ,-While8  W  L  =2.(OPEN_PARENTHESIShF-<Pop operator off the stack \:-0Get stack peek token   %"Segoe UI/Regular" ,-While8  W  *-While '*N,-"End iteration lJ-@Disable shunting yard module nL-BInitiate RPN evaluator module      %"Segoe UI=Regular <,-"End iteration '  %"Segoe UI7RegularH ZJ-@Disable shunting yard module6(-Read tokens ' |\L-BInitiate RPN evaluator module ' &RPN evaluator module1  \L-BInitiate RPN evaluator module U U UF V8-.Start of evaluating V-R0-&Evaluate tokens d  &-Global loops4V TD-:Push input onto the stack$ V- $ V-     %"Segoe UIRegular @0-&Evaluate tokens '+  %"Segoe UI3Regular @0-&Evaluate tokensd1 =L- T .&Evaluate tokensd1 =L- T .&Evaluate tokens &+Token check &,Number(2)6   %"Segoe UI6Regular  @0-&Evaluate tokens8  =.NUMBERfD-:Push input onto the stack N,-"End iteration     <,-"Abort parsing`>-4Disable scanner module lJ-@Disable shunting yard module Rems;if scanned character is found in isDigit: set token type to NUMBER add 1 to scanned character and while scanned character is found in isDigitDot: add 1 to scanned character loop back and if scanned character is "e": add 1 to scanned character and if scanned character is "+" or "-": add 1 to scanned character and while scanned character is found in isDigit: add 1 to scanned character loop back end token(If scanned character is found in isDigit.While scanned character is found in isDigitDotIf scanned character is "e""If scanned character is "+" or "-"+While scanned character is found in isDigit9Check for scientific notation like "2.3e-4" or "1.23e50".Check if this is a variable or a function. A function has a parentesis '(' open after the name. Here a similar loop to the one on the beginning of a scan is started.Get the first character.`Inspired by: http://www.speqmath.com/tutorials/expression_parser_cpp/html/parser/parser.cpp.htmlEvery loop the scanner is guaranteed to start on the beginning of a new token, so we have to point there to then evaluate the whole lexeme.$1Activate all groups at the beginning of the loop. >Find a character on the current position in the source string.<Unary minus can occur at the beginning of the source string.If a "-" character is after a token, which doesn't allow the unary minus, make the token of a "-" a subtraction. Unary minus can go after a subtract token (2--2=4) ;Check for end of expression. If found - stop the main loop. Check for minus.Check for parentheses.Check for operators.!Check for a value."!Check for variables or functions.&^Here something unknown is found or there are wrong characters, which result in a syntax error.FSkip over whitespaces (spaces, tabs and new lines). Here an infinite "while" loop is started. If it stumbles on a whitespace, it moves it's position by 1 and scans once more. But if everything else but a whitespace is found, then the loop stops and the code continues to run. Space=32, Tab=9, Carriage return=13, New line=10 Determine a token and store it.uIf a token which allows unary minus after itself is found - set a flag 0 on. Then turn a flag 1 on, else turn it off.UCheck if a token needs a lexeme. Send a token and optionally a lexeme to the output.Reset a token category.Check for separator (comma).LIf a token is an unary minus, then change the lexeme of it from "-" to "!-". oCut a string from the source string and store it in a value. Do it normally if the token isn't an unary minus.#If it is after a token which allows the unary minus, make it so. Turn on the flag 2, so changing the lexeme from "-" to "!-" could happen.,Read one line (tokens and lexemes) per loop.1Activate all groups at the beginning of the loop.(>If the token is a function token, then push it onto the stack. BAutomatically do operations between input, stack and output queue.If the token is an operator..7At the end of iteration push o1 onto the operator stack1KIf the token is a left parenthesis (i.e. "("), then push it onto the stack.2/If the token is a right parenthesis (i.e. ")"):8WIf the token at the top of the stack is a function token, pop it onto the output queue.:&When there are no more tokens to read.<&Get the token at the top of the stack.If o1 is left-associative and its precedence is less than or equal to that of o2 or, o1 is right-associative, and has precedence less than that of o2.)Scanner variables: Flag 0 - Unary minus character. Flag 1 - Allow unary minus. Flag 2 - Character is an unary minus. Shunting yard variables: Flag 0 - Else for loop in operations.2Pop operators off the stack onto the output queue.'GPop the left parenthesis from the stack, but not onto the output queue.,'Pop the operator onto the output queue./%No more operators in the stack - end.0>If the token is a function argument separator (e.g., a comma).5Until the token at the top of the stack is a left parenthesis, pop operators off the stack onto the output queue. If no left parentheses are encountered, either the separator was misplaced or parentheses were mismatched.+fIf the operator token on the top of the stack is a parenthesis, then there are mismatched parentheses.*HIf the token is a number or a variable, then add it to the output queue.%If a token is already found, prevent another one to be found in the same loop. For this deactivate all the token checks, which are then activated at the beginning of every loop.4eEnd of scanner module - stop the main loop and close the group. The module won't be accessed anymore.7kEnd of shunting yard module - stop the main loop and close the group. The module won't be accessed anymore.=If a token is already checked, prevent another one to be checked in the same loop. For this deactivate all the token checks, which are then activated at the beginning of every loop.1Activate all groups at the beginning of the loop.3,Read one line (tokens and lexemes) per loop.6HIf the token is a number or a variable, then add it to the output queue.EvOb Console0TSL Console 20TSL!Edit Box00zE Shunting yard token output0TSL "Shunting yard token operator stack0TSL Operator name0TSL Scanner variablesSprite Shunting yard variablesSprite  Operator symbol0TSL Function symbol0TSL Error console0TSL Error variablesSprite Operator precedence0TSL Operator associavity0TSL  Operator arguments0TSL Function arguments0TSL Lexemal token list0TSL$ASCII Character ObjectICSA Scanner token output0TSL Scanner lexeme output0TSL  Shunting yard lexeme output0TSL  #Shunting yard lexeme operator stack0TSLStringText RPN evaluator token stack0TSL RPN evaluator lexeme stack0TSL RPN evaluator value container0TSLRPN evaluator variablesSpriteEvEd(     !$   ConsolesFunction listsOperator listsEvTsS'EvLs$EvCs!DNE!#% ( &'<* +,.0 8 ACHK{X^-<@DHT`\dh lv2 #default#itDz10.1.0^1.0com.clickteam.runtimeȧ 1.0 bcom.yourcompany.yourapplicationt Shunting-yard1.0.0.01.0.0.0 , resourcessrc 6 #default#i  Bcom.yourcompany.yourapplication>Touch the screen to continue.