From fb43562e053fa541262bd12d95efdff6309316d5 Mon Sep 17 00:00:00 2001 From: Sven Vogel Date: Mon, 7 Aug 2023 16:00:50 +0000 Subject: [PATCH] added source files as well as image files required for the project These files were uploaded into the repository just for completeness. --- 1191225_ausgabe_tabelle.svg | 1379 +++++++++++++++++++++++++++++++++++ 1191225_erklärung.pdf | Bin 0 -> 71319 bytes 1191225_program.c | 304 ++++++++ 1191225_such_index.svg | 1359 ++++++++++++++++++++++++++++++++++ README.md | 30 +- 5 files changed, 3070 insertions(+), 2 deletions(-) create mode 100644 1191225_ausgabe_tabelle.svg create mode 100644 1191225_erklärung.pdf create mode 100644 1191225_program.c create mode 100644 1191225_such_index.svg diff --git a/1191225_ausgabe_tabelle.svg b/1191225_ausgabe_tabelle.svg new file mode 100644 index 0000000..d22f36e --- /dev/null +++ b/1191225_ausgabe_tabelle.svg @@ -0,0 +1,1379 @@ + + + + + + + + + + + + + + + + + Declare Variables: + row + year + + + + + + Declare Variables:... + + + + + + + + + + true + + + + true + + + + + + + + + + false + + + + false + + + + + + + + + row < rowCount + + + + row < rowCount + + + + + + + + + + + year = row + 1 + + + + year = row + 1 + + + + + + + + + + + row++ + + + + row++ + + + + + + + + + + + + + + + + + output_table + + + + + + output_table + + + + + + + + + + + + + print "\tinterest rate [%%] investment [€] annual interest [€]\n" + + + + + + + + + print "\tinterest rate [%%] investment [€] annual interest [€]\n" + + + + + + + + + + + Input: table, rowCount + + + + + Input: table, rowCount + + + + + + + + + + + Input: array, len + + + + Input: array, len + + + + + + + + + + + + Define Variables: + x = 0 + max = 0 + current = 0 + + + + + + Define Variables:max,current,x + + + + + + + + + + true + + + + true + + + + + + + + + + false + + + + false + + + + + + + + + x < len + + + + x < len + + + + + + + + + + true + + + + true + + + + + + + + + + false + + + + false + + + + + + + + + arr[x] > max + + + + arr[x] > max + + + + + + + + + + + current = x + + + + current = x + + + + + + + + + + + max = arr[x] + + + + max = arr[x] + + + + + + + + + + + + + + x++ + + + + x++ + + + + + + + + + + + return current + + + + return current + + + + + + + + + + + + + + + + find_index + + + + + + find_index + + + + + + + + + + + + print "year", year, "\t", table[row][0], "\t", table[row][1], "\t", table[row][2], "\n" + + + + print "year", year, "\t", table[row][0]"\t",table[row][1],"\t",table[row][2],"\n" + + + + + + + + + Text is not SVG - cannot display + + + diff --git a/1191225_erklärung.pdf b/1191225_erklärung.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c50455e33169415e350d5adb2842f5bc3dd673ca GIT binary patch literal 71319 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 N2Gu^5IGR&5JY z3Ig&<;Lh@ND3U)7>xt3#L)#`vZMsDjV7HtqdU3I~+BC`s0U(Ii3XF^qw>W&%5z?a$ z<%$HxyAgHrMIOLehHZ6Z@ z2Mqw)Dr?)3n3Oaz&DTQlOqjUIa=Q`msGB#&tqc7zK>^3>kGVQ{!07;x9)GEeO4R)^ z5X)W9rwmP2)?h{`gnjxkKuCtf0PZ1*4J0wbv+s^*KZGHT$`ZNS=o)JQXSm2hPfpt1 zZKWr^0Wb<3)t>L9^@|eaXw8piLVg4`WPkg9-Og7&+w5HdfFxoMYl_=4PXwtzp3M7j z?#XixXRBMzj}t79UBBbnE;G{4>e=Puy>L$AI02wDLJ^~r#M0I}d1;J&`FD|q#%jd) zO@PjVQV`m-7!ug0M=yqD^g2;sY}0T3xA{yff&h4;UfixRZ?$=&1Qk=f{*6DYz-op6 zC>2nhZ=8M$9f?B|{#HU)V6C+NHOZkC5OXZ1ZjL4UQ@&CB=68uJ-cV?54-6D=#X1eh zJy;KnR4mZo!(9@hJQuh0YI@B5V6sBSIa(lTpE#l|!2_3*OE$@#_CkXCO1LLIIz!(GD` zw=CSk^w1P|TsdxOrg2tInJtLm8SZzl$S@~Robby8KSO9{r|`8BoLH0cz6jt-_*k2w z!(J%o{h@Gf6wn;fY9FpnaewDUD7@P5&)S*Slrxlix%BObm1Vn{Hjxec-M7{fs9qwX zuoSS9G^Df4(wwJX{~&%ns(%(vSv~G5rscDg$}@hjOVJh0seSb3bqG_`X1=wVHhxwo zpuBywp|tMa)UgI|aEae61g~f17fK2N#a3Wh;Tlns(uWV?x=iMc@gJMU(ph%^3lL+< zvuw6gfe0>O_pwpymEj+;=R{MtP}nF-?{?iix2PUULP}l^jRM-^izYN8DhdC!r(Z&%e!=O-9xK`+c)qTonOhUk`JdQ)49T+TiUrfy0QQ2P z@QoRGzaX=uq+SIia5=m0!)+#&fXh^Vi=V~zm$iMVsMUl3B8YzgF>_l9UQ^OaI-g8AHewbg3mwotm?Y*?)H+!%!^JaGcaLHtfios_!Q#g2(J*_16lf6-ggX7>#;2R4ckVyyPfjy5wmlI0}|NFy& zP5^(y84mV#$Ypo^4&!d2un3eluyr%(2hlepL@L!kq0%`{&Umf^mQxej7-G<;CStGq z=@c5|Za^gBiA$gT$NU-Qc1hGgAX}fU|KFSH55?(?w>cnGI)91#;%lPq;=#HxJ3sE1p)I8KaFH$M{U4G}2_-ACZpz!1wo@Z2!diVLEMcq-awlSIAIe zO=@V3Aem|?-}9VrXC54mZrcb$htj(dRFG#S_9o@a;#&5r_^cvM24H@|La$0r<5_>m zX3G*%WYg=hihW?WwlZ?XNGOTHEKw+5Aj8Ygo{-X{b#i>Udtz&jR>FiQsU%$DJg_eH zU<)8~E9Co>Y<{yCMV}9E!fw}Jkc?}81n&9cuk1$NdA&i8LBn{1Q&>RaFRzl)kwGbH zxKufMp&T){0C-w9Dc87vVP;9y7tw-$R=V`@{yh>qbL;g>H><+iQnTja4q7PPtXm%- zk;9+F%urMY0?suc&y`-${_Bb@=;}SZa9N=&R=uvffM*YygPjjC)qj-Hi7dI9wRY?KO;+)jfXzlHKU{ zGi7d=x~&8aPzHzY7Mm74EDtEh#6>+jU)xFN{{prbrLqRggNr=w2WFqLAhsIuzf_|E zyYmiH=Gbc1kHG1dCZjo_cICB|J`32>EUw9$+o@wfT4j9!k>`z(vwNOT?zf{KC3NRw zCsIbhmUI0&R#^?#+k>q}bB@1t|DaRc8T-A2%PNLQS>335*KKC>-Gzm0NNz1U19d20 z7g~mng{vS&aQz8z`F@xVopmJSeaV?RTxuP%WNIvZ0q8U$pW2f0=4%1Ikq}2eU_5*Qt09wo58lKt!87c2->7a&X%w)I6Ik$^ zR19-zQ~Xuf550K=W z1fAb6_x8Z|MM zrLOJs_nMg3wxUxI;DW+ji!O4xvj*sD11R6_6)iJ|vxrCl-Y3O5E1uF?a_OFgj{pVD z%>h=qSz{^S|BY?8C&bKE%Y1LYmFDI}jA;w~4cx^je^B#3YsCZGXLKe4I+8FI?zz{G zt2w*@O|-P3x&Jr)8A8clluQ9Qx=Z;y++OCgkSq$O9wv~pvSxjB%fxMg(qT<%Z@vv88Y=%Tx!CVHn|w{De^ z>WAOxs$A*A7~TfX7P}b6slrE}PjzxHwUi92T@r_LPB9pF%{O08GW)gB9bhIy;|*@) z>VifBJ|-9aoEW`9UVi$X1p%{b0C!NnFR7c^?Y}};?`KI_ zbdo&%ebX^uKG13O@>Uh1-Sg6pjiJm}bK>ier|Q($1+yxteBv^oB(_;K_@vGaY$heX zQL6cf#NFFZFGbeH9y!jn0|qpD-PAVzhRQ4$F=2px0kq1)Kl8wMkx2e|?gHk71=|zA zC`Pecxej%rGDIohO<1`?pNs!MGJ4Kzb7!svvV4n$z2)$sn$0?LBeP8jI6*b=`K`dt2hptcVI_mbf-CAPL2PJzS9X`nFYFRbB+yU22F)3N7N)Jzq_d1&L~9oOj6pjW~VnQXydJLCO_DT7g&B4xfDOl_$^rtR!+9%C*q zn53tQcfm=J=IfqYRDKFuDG#IfL%Sg!6fN>HSYH zV={OAoOv|zjM2T7pUqR!RsKBkrwJs)pkG-Ro-#G?Ov)E(A68LfIRWQY6k+aAqCR^# ztV||OOXG+E+`TmUB3j{7_ae3G$!VWT^DFrv&VBY7)@izLl-CG~oYxD`I!mocJ=G6^ zY$J}N$?4=154a}+5IFBT&ps(dA)kpug7Z$W%pOvrC=GT62P4%Qa#=wKUyRIXWXwqvMpH6>#3& z0#7M9pO_xL0C*~HG8l!oo)z%6y4W34EUm`11k9No+mfDDZ(snnwVG%hpLJ&6%p4;k zFo_IblZ?2C6c!5nh^h$Qm+zdgHa#r@v=Vi3Qw5yQNWK6T(SP!qqV%?21ibI7Q}*kN zP8;Hsrn2et`jkZz#iEas`-#JW$7DF>bxK_rR@JTZr+39}@7aGmhy_ba z+(cv3ATOl|wf%H`pL4uaa}vo{Mse!Y))Vs|tVh&+DKIh8&N}GU2;eB*2q&-Jbg8+c z*Gy{fk>-8J4n*Oc%XzD)zB@twdNey&WsnM;^H}@I0APaT0 z)vl?(udpb;N+=^%RP=8cQArOMX%!bBgeZlO(0u~%$7;+DJW#NTD^jp3**n=9*-!w1MgN^= z#P&Du?HdYq3RV*%;Qe2D|9WTDgcw_ynz;Ne=ZozgfzWx+Kic+?zb3H(Nqqk`i33PtXaBEhocC!Q|D*vO0$%?fG(V7fKluM8 zk}CUsbk+ZRDAoJUsCqh>Qv5Tdzq6&{YV7hiQP$ST-1KjfhUI%8E-O11JJ;Vw8BEin@QC)ZE+!Jvn=Q|F}wD4nUS}6IG(wV$oDNA5s;mJDvRDzhE zJnN(~d!rnIwM@FTxk;Ly{+>_uS!d~oj}-D|53q3GpnqyXr(`M-gxut{x||&&s0n>` z*KeLGXt-;faa|@Q$LCqKqWri1(JOM?g(YvPpnMq4zpMeDKz(1Jyt7gxB+#Cs9;17J z0#^$TOdI^vo-2ZZLJzn4ffM4{UHJ0;`Egz_ z#=pv)Cb5B^p-3km|1BqJ_2XaZ>IB@-S18c5_RN<+b}rP}_#5t%530E$A`&1}u{_nJ zmy|#?YS(>OKrbeo&$Mqx2K_0u}Z0MJmu@sMDDJ?o9Pwr5e7}rv6PmYkm>g^6~|-KLak1fsLrMdGBrfcJ>nrNxpj%loF z{ARIp$8ok`joT)Z>6M^oUag#c&7AkjSGbKF69Ke#N?>CPTf38U2fU&Gy>uy4MhZl( zk~$z->=n_E{=w)vmn{p|ua%x1cE*&@Ofj5p8vBTh_olE#PQ4)tr*xC~w0pU6HF#We z6*5UPM(|j**7i4fl3u**j73gyHqp^?>b?_X@d|qC@?(NyLSX3@+b(^(sG7%vrTu#( zB_Y^np2zq0aR<$2BFd|FxOaw<;XxjjHHekvHSA6gfyFbMusU;$=<8MHK!~JWlth2)y5-#5Jg|YD` zt1ggrcg8xa-16aBvmfKWEi(``igOWkss`nYCE_k zciMQh#|N{e@Ozxk;Lz>-H^(2`Ua+6#yk6OtN!C-I9rGs}9$lh*$$;j8N>rki|Q75P_S%g@*d^ zyBe-vxJn6Nm~)@mf|GqWqPew|VHhNyHrFT;jo4>VjLBQQq5JJb3R7BS7e32>GS?e~2mcvhxrX!NI< z4j1ubpR3RrQ`E|h3o-`s-)kIcXuq!adVCiqjY1}^0U|cHsmS-90?Tv3iiJ`^&Gxn| zy3EZFk#-ve4cd)&rmOGYoyPAEIQxeS)3(pzh-L5B#Al4A==2{K7hES76r8^|1Wj1_ zZ!<2htw2bIs!f>h>Od#N+%}o@O==r#4om3`%8=u4KY4S-KTAC)o)|sasn`^C+gvvx z-_!4C4rYW6An%lJ6Nld3=?*h_tg@1D9gbY!80`9f@mKsJ5ZCUCm`fW8v79YAU@uFY zTdoboUk&yvllKTP2}Zu{U`ZA}h0WsMTA>7xnu2X+OF9_thPq}YRL(#77U9~JYgvKL zetD=ehj4r4Ofol2f=TGdgout-j09kGF^y8UTgwKXhi+S zWi!+nwW>Tt>GrFNc@E3qcIUESK^UXnU6^jsv(@mpmK6})30egPsk4~lVjLXnf zH20;A!x(2#nmI8i%$j(@e|dWCbLWF)DJ1R0lb#07vx;zgbnDi)>sEd0Jwc)D$eG1y z^9qGDRrhldjiH@y^;Re`8O*TY9zP&HN?8I8j-t`rF4I7hHwm+R>yB$Beh$1RxLtnK zfOY!$&q}jA_+66OZw8ILWL1_U)RPIf1r#x1D|;`m_aIU4mL@;ZJKgt9+Jm!==5(7a z2M%o-jT+wR*<+X3wHEejgxV`pW|!Q zKtYAj>_!-KbxX=bQ}v|ErhnOwMAnA&`XB1(sgI=fKpL9Hg_AZ5A~Zh{!N+3g+0N5% z%Z>vZUE;NC_nuKL>#3cG-<$|ZBk2j+MaaF1RE2XRh9Df9R(o|{ww~0U%TjT`_D1cE zwxj6oW-GUM?XNRqvudf-p*80R&GHu-#ljwU<>Qz?S!?`{f&C~~?N;DXc-J`4%T?_u z+*%o|w5avgPuai7)8x+$1i~BX{KG!r&)B7k1M*LgfF7^zLZ-byM!eFl1QM<=NGbc(95R{bThq&P241)|CEG3focU!;hqG`md z?VX?7Rnn`4mut5_7-o&{HpaA(Pddn}Sj7W$`Rn8solXC=>&$1(Y^x6Sk3Rq>Hmbvy zJ~$UD*k%(ee4n*{1Ff-uUwSn=m)MEq@XEO7v$zaIWU6?Sf3GJE-CFyR=f0V>fT~ej zH3V)@Yg`a+J*EcYJZ#&Z-nBU=(`~0nFR&2{32ZS6^>9l&8-nbo(^%$xy<)rFx7{}P zR+K!(`s!|Kd?0g=pgyJ*u~_t`Ax*eQ8x0GH?^swy4waQX0M4z;U1onYR&G5e;$F9t zsEzl*rdnh3ESqp0T~VjGX9mXH%LNWkP)?&T69&zTLa~z&-P+l|uC#@dS2@ol&hhAE zha9fHHaZ`#q}?F4QB^dxmU4I9OMo_cPh6m90Gr_OpCf)SsuUl@wG={m}-ab`@0~3XSvbk~1O18MqG&|^0EnRR_2U`suNVcmZjjHJ z=Atv(@#>v&i`+#bE^DLRNdHtj=)P;l%q83-a?|APgdj4u zn$HiY#8NX@Vb(<@*8=A#?5Io{A~A>?)wcW}pS6YV^8g* zALIw0S@i`TGtgc`OQoW-Fy6k&;zLfDdu?`)MVVZR;yD$A%CxI{ZJlIPWdA_ge7}x*Z8PPhxhq7yD4oZtsjbvq;DH=$1-{QJ9~p_jqtmgD(Q;R*enie{^Q|#I4xvI$ zWZ`95XP0?>!2-c4^s|{ySlh;D$nz60(C_NSIx5f}&z&%6KX{j-o2vz_Da)LZb0?o7 zQ2WJjp~`Oq+Gep$TU>Os7J!{CEKf-pq*u50n1Q@gULS_w`r_*IsGOq@@C?Wg^*X4$ zd0KnoJ2B@nsHDwf#uxMpEHr*2Z`99w>Q5hXcsZqd7JDA^5z6cdZlIwLSe99IqAK8i ztlm7OsWNGOlvCbt;vO-qrFOC%G+KCAMtdmdmpo%w)y@;{z0>8W+jHML&96v14T53; zCu7#GufG;mY8oppn+V91(p1jB5+&OnFH4I&!z367H?&;MV|E$7&1& zOz37J>Cd+9SH40PovB?#bGDeaac|oN!}e@)P4zwY1C$owQ^~gdVJt865nTl;9z|zb zl7&qgraDQu{V{HFC-W__fvhiP-?Ki>+8>Xc6MVnn$eT>hOPsm@K43BJ!uqF}huZ7mk3!GTF@!_q8 z_cOXczO`mM5X;Vin{aQ(1`Kg!F-+b#te$O{am2u*!-hc^CLs# z^!?87KC4V}w!jN+S(Y0K$e1MUiBTR>gJJTZMF}Y1JbvJF=c7v2SR{8xge~C~*<)p- zD|p1@C!>F!owEH9d@QpSM%W2#2_2!gjZSdmB*Z4iaA8SgWBQlg#EYtAHfBHuP9H53 zn#Fic57UthM^vuLQZM5A$vkm-c9`5>3hkrzE~}=8P9`#Z#(k0=oro(^{pL=hdcz`CoX(_6#&nF1vo6td9o^rE16IN{#d^@T^Px{PQBG9=@XNsb=p@U(ssw zC5IwoJ!>P@skq^?#9849T6T#eY$a}Fpla35HL$mq@dePsO6Q_i${s7wnh-izPv@hQ z7SMD1OtzOnnVI_^?d584fFk7>1>7SAE)HIKbK{lu@)HR=T5Nwi z;u8zRZ0p!oY_D(MbPGEs1Aq1&;C}@wR0iNaiC_gTPN}~I7d@ag zMZ&zx7Wtp!IIUWF3++zx{@|X5B=z`6+Am)w-*k|V9va6v6vTS5&oDHKH_i{eX&hV* zy&`sWfIGBno;an9t@HV2Y5%lpN{E1-*Z7$t_ z-0eL%wb028=C^-t2bk;|^pYCJbb#}^r;>b8=<>LwxGh(1ae4QE153u}Pj#dRD0Y^X z!~ld@_4bS>pJFJEIW#h1W^h@_pqOj!+B40I2FHJ@9JJlVOkNq%Jm8+Qu_D)~4yuk? ziwNyAna{)a%pOa-r=*awTP(N2o29aLdh(ae%Ld|aap;pgn&XViKKuutdx%uU9V zuvfH^p(a>>i0c%M?L6pbZpwT@r?0I~s)bL)vwr9#hgn8Nv)3P4U2cDqDjKzhJ4`=2 z@yg~`F1g<4?Xc1hR9Nix<=J*uJ|ChIrp_A>_~c9708T8_p_Y0PbeyWkecxO<*vHWJ zk74k+O3f;db(@ekg)PtncoY%?5;>#RZrc!HR&fW$o!$|uFwSAn^(;_UN#E#u=1)50 z0Fb9axPXc9gSWo?koq)!N?3mI=$_G4Nl*d#%K=3#P(pJ*>EWV8CR>;bde;80h)eX2 zB*ef}9|AH(gPy(b>6O3FW!m@t+vGZ4u%PO@+lfHIi(ET<#teAH;OUVD79IqY!hpl} zBbGLBdyIxfXw1*M3Ad<#j(~w^ZrGAdRu7cjbtEQk8~m06_AyhQ35MxTN8%0Qy&Gp( zSZHUF!IcHOBo}IO>EgkdU3vSTx7#c(X~@H(;{xud`@Oi+17qD?yYUe{#9 z6~#p_Y^#JB4=c-ZDpPPl{e-RH;>&-{!!2&eni5|-uH9m9;97Db?+~tCouu56E)LIl zw7F=5pQYouCz-fk!OWCWGU1tn&BWlE;v&Z-dlqR=zl#5D&s2K?VqN~TM3cMtg_}1t z20_RHlPa|rAjgEhlBugv(S+?U?geDXE-Ga2#EN^TIz8=E$Q?%zARD()IIEG}d zi0Z*@)n<3SY`p1@R*H(XBEllRNR8o{&rMYlc>Q1<3ac|}lyW$h?0 zbT;^Y8Rv0BkV<^tac_TLt@k?VLjU=bLAc*9e!@SEP*2yb@+6Qu5RGQs1nF>DI~snozp8a7_u9N(|#lEPxn zbU=pOqMG~c>~@S`inmE$)4noK;^I748g74$#@CW{^+`4_9dBgqte!v*LlVKn&){#k zJjW94Gio3R$bMOI(Z&*0#3M34q-t9ntgz^^DU7Y{o~Mj`KSSqGzG=ZldMIDZnV!(S zHV5fvKswLy^kaj;Sh=;1^?+-3jl4mXTt~YfA-6xsK*M5OW0tcaxHvR`tT1Np+Ra?| zT#-H+Y?BBk$4G+^*H_8zdFq{S=H63|W2Qs%D{+90>N|$Gk7%l#=RTqPW@ZaGw9hL! z2Q{?M>k-FAHh*2yaEo2j?l=(X;q$u1wL5IoT3mCmy12r)Q?q9)&8<}}zY9$pL>2;l zKTf+0SQDt7&Kwy1yp7NZykCP5+$Q%sBk5k6FvL?j^6eR}aoqV@q<5)N{@huOhYhMh z^jKEBbpu3Oq|L{pqnM!G9ZUtC^cWE8zAD0hVE~%A)wM5OyItNI?ecs#V0pSSiJMiT z+?S|eIZ|>&%wsc|wh*;9$~{GXOGgdxh5FGk5@J)(deQeH*-5!YrH>to0cW-+EnRaJaX_2@OXJd7` zT{KkUEAtx96_4%cE`j8Ls*ELwn2wnXveDAyd$nV^PAAwZcTWidZOMpDo~V z)9;0%8+;%A($1&;N;X{}{dSF^#-Z}chId|B3KDQ(#0L}XdFHU)2=d8*=ps^tz%~`*7zC7nJSyY>E^(9$xL`GrqOQ zTV$~BLu@GkcAkdo)m4JBk?aKS0LeVuqk9`&q*w1E$m;XP$~D4tPuNFYy3(K?)b9kx z7(L|26Pk$m8TBsHHS}nS_`t1s8-kr8;0h+O_8DTpBxP9>8IB z&-5A>EaST_ye>0P_!6ttdqXQ6l+RlC0{Pza2$m}64gAV?Q&JkK5e-G5MkYmvH&-z0 z@~8j4QbQ5rcno)VGar{L!i+*s^APIM*82zf0_8(ykiz1pxLv3(6u?jD4~4`5 zNaam78_-S|Wdwrp+~@@gR08hs>xZ+7FFwjU?Z)ylLxGzB09a`+$mV~D0$sQDl132& zB}GSWasIcWO8-5Twd}Rrq1xTj)c&9N>0f;C-vBBv8ym+zP~u-i^MA(@|DS)B@&7X{ z5h^YI{|-vL?}>_{k+U_$Jt7MI-=IZLheS`mg)?#@3gnd(uhRUZ2M?*0uu&eoJo8-u z%$eVO;*$w`#FybzwIkXPBUDdZPtEVfpvKr!mB^rB9IL{hQ#BE>%h2Pvq^jjavTIhE zkQ6sJ6*m_hC4qMryLWW`!3<|(*^=b>2cPCGF#eOB^-JOB&ze(iN#!2=_bliCA8OhA zj0Sg#X5J}aMg7}dAHJpNT@AHi|LlliwN5PqjK8Vp6u)!A4Af-(i^}e5<$Bbs%9}|3 zX6)YvX}oUEifB>|F`(}dRnL8ajs7>op&R=LALRvO^i6J=za-_qW>m=_kzaF}arInv z>W=lFf|tfo9NyA=BAm-;|0GTK{vrxQIz9?~^tUcPH8YX}w~{CSJldAF&tg6GmJXBo zoBd$~$Na_k`LGJfn}6DQ`w4X6%GyXJL;bfzi{&?e_cX|Vsy7xYEcj1Z2vC-op=)Lq ziyHfH=|8_WYpMLQ%6y-VQ-uFbL7}66Gv%j9bCoRkN#fz(q{P%$&Lv+KYX8%OEc;XI zNBIBg)3VHLC>7I-|J2ZdOaAA7w(#@VFqk!Z`KaZ8j`@+1oNvL>Ep^M^Dt#yrRFuW| z^I#_CW;LkWm7V16Sb~v}k-4uj(0t3)pDNH*D8rGwb3^-3RSILrT_$wb+?NW)foKUk zvYo7$x%mSV7xTd^C?@buPm0bZP#(# zwDV9r3Hs?;-r# zK>~GQVPUh36XdR#-HKyXE^t$9I)IFPUT&$LPpDlN=lyQ>bDJs7|4qk0tKZ0c7pr#M ztY+B^kGMlBSNo@8HzkL8-|4$5kA05l&ai>2akrVOZJye|l_+9m)T%ld%;eh&bS8OJ ze>Bv{ORDF|*V3`?OS~8=qO4LaxYE+knY3~R4`wVtjUauDE~L^g1T)i@e5#;UQtFPL zu0xG-cRE^Qg@R{g7)4o`=3k^Gv>Wnre*Q!ZJ9+9m1uT_qU0d@OoEc))wi4){Y=5mFFD`)l&Cgy$xrE5Wh7`eVq|#r!&4w!TCAx=VnM2Yy3^U~@+NvZ2H z?L>L2cIdWtMY9vsCV5qtCe#iM__t02zc2JR3<H6W@OaY*b0!x&g|?#v+WL(4YHens(%cy5*Xf^ ze)jbaq5eH~sxmfcV4*VvD8^OV5FQr`_P~}$$5y^$_>`5DuPt(}SZ$Pt zMXswV?fkuix3pbH~aAgFl~FG_;?4x(I>S|B(|rWk<%g? zrzs2_toa@ju(90z<}B!Ko}9?xDKp+3!?Kt8p3GIJYRCTXp{oAHEak49RMO>x7#{eblGN0PxJo96ssKc@|; zThZtnZBJ%R(Im^xmDq7I?xm^>R>4tZk z4G4ckl7uS{ndvq7{=o$%+hxyh?jRJ?em+}*l6gc#sCns@(b(_Cbz(z7*9W0xKm^Q- zl5*ttbE;_1s=$E68*hdq^88HC>I-Tj)!zo91Ao@nvb63>?EY#p@fl#wkD72HU zEj_=^XiXRzF?5#h&X23C#w!}VI#dKVIk6a=xP2ciDM6NMO@K3>u;yEqI7tKisghaG zNf>9e*#V2R0W(T#nAjqRLPU z*`>rM$u_+UvCm)0|45BKeJK33^gtF$;fn`^&a$`LK`UNy=)YH@4p-N>jB{EaaV_7n4% zweesPY$)-I0p@J8_gYiz77aAmPCauOoUw?|8OB>blYElz5|rn_iit-}@UYl4#?3U7 zuD5UN(46&OrUSiqsO#qm4?FVHFunaEcU~uVnI%W4s$7I|<$xUs2=E}Ev)zuhQ(&Pw zy;%-0qJbsdEh-c6T&|U)j;RuD($?JBZ8I{8H8x%*@r-5MB2#3t-7sDl3-`8gcRVGC2M*&_+Xj*_d(uo0`Ap}pv zmuaw(%23a~P40>gHYu`rNrXSm$-Zahc4kH$&S$%)MG07Nshy_!{jRlg`4+ETqXsp@ z5bj3f1_q-`Vg6I5X6YNS4kF533#wh@hLi_XrgzER*9)rc{th#@?@Vvaqc41;PgI0vYC(lLH_(V!Zyy^)wa4QH@s1osDALEFHISlz8JwZ96`N^U6yQWXuVwCKs z9=2AdDh5Y8(>>l}9iZnN<<7yIg5y8v1c7CTQ3py4Hkbzn;K%-qiby8JA>O-#10$(9 z?`H@f{LI~C+m6+2To82dkro@^(7^dLqWTT@sA#teln;#swhO?bo1vR^%K_EzmIN94 zx^-g-IKtUzsI!T1xOXtwVlSbBo=O4j+buQt8&Mfu>=2ju;SdyS3d9hslx{wse1V+4>Wp@|9n=Y_Dd`CSE0Gu zSar~XHK~{0$(s7XNxnXHyzcDfYATGtzApUZ>4<|K?!J0?K3sQ8p)dU$GkzMgnTbK5 z%EV%r`%_D8sftH6V(%Au)k$ys2*nRp;e7i&Qaumj0PHnYY`?FiGd5N2MYpg*y}4CG zD_73DX~pd`JQ8GJ0GE=jv$?PI-f<*>7egS{`d0W;y8sxh@;G>FCibnc$EZF)N?y$= z=z+g2sqRIp7D<9@i6v)K_cpAe<3DeesBc5$LJq6FKZEXUqc2q;X}`_8Z((J{VA1GK zm=d*w%3hc?{|{K-T-C?Y)^hb}o2ske!aA|>F?TiJ^26#FiL;H~>q|!A?qzKwN5Gq_ zslSbYoUr~17l(L)p96knzX9V}!oJ2lM&me>5T7o|%5D5}*%!DPOjvII?OID$-?xG) z+m!#yy2e=+rLKRp`$>D!;g(i)wgRPN-d`coVdyb`IGeZh`|I|4KrjthkPu(VAN0?J z`e%`d`kbL1rT_guj?8s(dE`NfT-YzE~|FZ*B?wehqJ7FX6O-645x>Va6UCB+qPuMWZNN3 zi4=Uk(e&w$10_~$7$0AGra9n&H|smfZCHM>X|k+5)R+e=tJdO8+nu&=?hy$8z__E)0c6z=xMC5(DG3D!ODqDJHPp>nYP&uSzzp<%n z0>zAf0oKR)CO;{&diGzmz+zdVn^7*7x&xzblMu(vExFTz`+L$yh3x{8d{Fm=Bsx!K3A0oWvlf2P+k1+FcYgTx{Hc?W{@UnWB zeinQ6ZJE2V$ZPP_1X9CZL3A!<{BSD2ZoJ4@vw=j0+A2YiMN(pvt8yTrRVS1Esd;RH z!UHcc%}My>DcO3~5S6Ksb#)b7MXni8c$v^*hbt=+p6+bJ+!?lrtP=!vt~yqdR3?Vi z^cJ9++A+~d+k(c2GGyPQwuVYe56!|vTNm{9RY7CVypGNYobJz3>XeJ(3Z`u(~= zjJuPfv-J9YR7HYN#$o)E3;yqr}Ibw<5UPhoq{e!E0^vw09cA&KQI`|q#*NOTOYjOj=gHOuw5j8?fRG1<#d_3kDq^`BT7 zIcwNS=o>g>4BG4Y{LyuSImMj*IzWbR3gThvlK0VN!!^cuLz#=1h5R}FH*}#F-707n zjq>Dy65>#~N|A}RqI|+tj9Nuc(}@iiBg+f+*j&ZFiis*WNReH9wg>ZBdP>UHWH1*g8g!=Jrb+eC3imPoYF<7g4RI$V9_3HsvE;@GO-Z?jiw@zIeJ!@M@L zd+mauYIgo^ie%g8V+hJn#U%GtFMyG8g$dD0&OEZiSO2W<2? z!6o3VF;JH!8$rcJ56TQU*J0RP|4JKmK5Da~wpT8zdn~ck-8Tab-ii{F%bO3p;Dg9J z%b|}5u+dh2R-%4izoza-ram!TYv|X_YAUa+741VuBkXKpr)7{A)zT#Inp>+oqTVS> ziXU@|*7P<|qMBnulk01~%{F7PE%I4KbE6QJaD${(v>#RwGLfX){apA=>q;NDRSrbPKev;rjX5cND!pLBNw>u1j2)1>-H;uoW2itKfSzy z(X3J(E|))~ zIDS+}HbBFyH8YHdXHsd>z9=DXVE(Hz;YKCM>G`ECu+o=-JqFw^$68to<5ZsS-@r+@C?V zW}4NU?0qct=IJhZKX|v~u&RkVQXM#K+f%LQ*;yoO&uO!{C;A;OIn)yl{f=P|RD}K! z7Q0_6<(JrjH}hD5U!Pis$vlde`R0ZP-u2|eIgfL?_Kn^t%xl;Plvr)0ZKV8?e3_bS zPXD_nXCL4SZ8vSKfB}W~yS?3?(9lk*ans7EE&j(Es|f%@D(Yfb9RN17eZ91V6wld< z+N??vJr6ID?Woqk0L6eW*Y zg-&$Z2Tc|7I&T*PN&wmXZk}3WpO<@HA9eSy*FscN@iDdv5`}8t+}wuy1|ijfGg@t2 zm_tO^z@KIz%8VVP>6`~y-VP?!AQiCI?X}ahu5Kd~U(sC-P1!`~f+m4O*C>`HT3zHP z$AS{)8WD@s;OliS<3#J`+qrty+Jm)Zqo4+@+#M_aiMDS zGKDuLhom>O;iMo9xu3s6KkP$~(Ahf(?47rO^c@O_e?OqCG7 zeQ-0waMJVk>!mpVZDV&$hLAZnfk61Tkl?)p?Lli>8A}Roc_Yi(YJ!C(oiurQy>Q_z zqW#nE%uz1z#tQf0B|!J@omn2|Rszz~20HO-F_GXEJpH)FTh};Zr^sHeI|eu#HZ%>K z)f1yz10`~%3~tnAFJ{X%ir`Al#k$pgy&FF#7ccPinq;@5RmV5>?$=aVHShDM8zy6S z3%lC141>IL;7r-6eO#tjuLqqQ1URg#U4z@6>fofX1r5CeggQ&TT8;r3JLk`5&Qii* zeca_gC&;dGQ6f9fUoF>-RG+BC4B3WU&kX>g{V%zm8aiwzL2kueC$VLTOI_mP`VO z_Q*~h8g8ndz3|XznSy4!EwV6LZlVPe+t>E;o*|}~TdVUJ@~fpp)vODN-e;$KsqNhtR^1K4e)r*CFV2x|MoBPM!h|7ic-yo;RObK)eb#$G5 z9cFn~8(g}ahqgKyUwJpsRwl&JDM;-Nd<3@zA&Xf3x%ujMY`xxsQ(g4RdH2&QInk`S zNIrg*Kon#`Im>mIRWctVMXkz3j6UHeU(TDlgHKgX*N^$cDPOyq?)`3H*EcbdX4pvg zj<$?*3oTX{aFPk;w?DO-B>quSWxE=@B1iq670m42Zbla~Zfd|E71h#aI`;HZTS7{D zp-F?re|4Vmty?Lu9fZTf7)cWK;<==WWrZ1C>qeVP_g?Uz13ImYoY9kzIdAFz!QNX& z)wOKlf=LL$AwYr#-?+QGd+^}F-Q5!cfsJo8cyM?3;1b-O;O_2kk(_hxz3<)be(zuR z7#+sQ7_0VPYgf%xHRYRM)hx1J*J<9k)B+s!Jyw<)CgY^pZ_Ik0+wtS$aFUbpG}Wh(uDrL7h)Jd%aR4-u7cJ4N;A5r zcfjnl55XYDm)g-3XFs+9qO9Y{3lAy8GSB5h_}#3ATQ zyLC)7ZGsn3Qep!z!;5*APX^|qe&W`DNYq$3sYZT+Q|oOSEfr5N6UW{s2`{3-X@2-N zuJ2xkm}d?IVp(W4uKfuc$g3m<6=eH3@y?;&IcNK0V^9drp%b8^!)=-qO;k|MDe zcQ;pW;TMkmHuINLN%T4+5GY+C)y|`X?+=8#>TbxAXRg&6_kk!R8&#_osW8GpUAZX2@Zu6mo^5jiO^E;jF6`6sa$e-Wl2xf?M=c#B1wOYJP zoCmC4p)f~8^E+|B>#?1maiC9(tJ!xKbJ}=DvBVAy$bCtU62g#E-d~CZK-YjNGo+j& z$PXFfB}Ho~j^yzk+$VuhD8!+uNJRR}>NrdL-|Lj3!Cg;1gr<*z*O3gmRhYwEZ_0m#OPOC=t1u*&|Z@NS-Cq1Jm18*L%+?cWz{|esz7!6CttXyp{Y-Uh=dGIXKtal$GEZLHiTRP*J9<#`5}) zx_NZCrVKkeA8yrgw)z)zt6mLf{hGR{aZq5t-R8)#yM7ZzWmVRe2j{!scda(K@E$s! zErKNSmH=2=beO$qi(8Mwm^dw<_)MPmO2>5^14DIbWVd;$lCxLr z_DAg!C2Jr4_^!Icxrfd4^&0GMJCH5-v0w&5YsS1mG$uagy1$nJp{ev7x&}de7nl1; zlXg?1#QSxNtcdqLK*gN%=SBmFiqB9R89)Z6TIVn5mq+0}`+)}D4==gaYHu^HkOZH7 z&+{^OvT*kK@OgYtQPSV<>hb+aYX;jC6;#D;iPXiEs;x;Z^A|bZj)B|9 zMk{0_z|d%{DY4Z~^|7+Y7{O|9$Hgh?gXhCY5gI>1Gl2wXO%4cA$vw7jR_NIHTKlsv zFrtz*JNG?Fq1lg?bz3+i%m~S7X$@T! z79gz$H$0?7vv??7e#Z|?gNiDg_w;F)#%HODNB`J7tkj^@;MLu|8y+vQHQ{|)vT)|5 zLVVeG?&i=OxP9L%EuK`+?0`tiN@8JZE&6B;nT%bMo7uE?!vj(s2x}d{>mSZJjA8YS zlDM0qvgY0eUe$-&qcx9M2@$Guc9l`gfUt`!`#bcQ4LcoJ0H9o4%Wp1k^l~#@9w7mt zb%j8*p=u6QFk)2j7W*u465L;jW2Ww$--d*3?UrQqHRveg=vT0e2m=1WZu`7{(ZX#g zZGbL%Y9%{;mSy`XHH`ZqyYmGu0dZo}z}%}Yo&^QJ@$h;qN9%)1B)Ka*G9Oh>5E=lU zE*Ln}uds<>gbdvjKd(B$IgQeHKm!91>m@FV5U@o2#m~nx#8z$glqcA)y_-CU)5KTi z8y%)r>hPd#&b@Ly0JQKcEm2RCO}Mt(rIwD z0pY<>!|ijhJixn1J~!g9CyQn8CneYEsp7RfJg%M&ZK$NVonG~iyrxO_{FL97)doZAE)*MPrz*k~VCoOuAjdX~*uD zcXE0RXlH&a(%pr7|FXYLiRw+BW|6K=#I*!SL|yjF$hh&;JuvCK`A=hr%e-toTa&zm zW~&>kTbr1WON*;kyl(~ovkJq-a5~*r2{#KwZ&Q^}_ESJC-kgIB z_*tGqA@0+FDns9RNycTi{Vt{aT5F({7s9~h-A{M>?bY%pz>1Px4jCOZyusKgKsscv zjwiiC;1#2MOvvhG$SPV}NVo7YyC$k@GaQPl&ovmdG~@Y>sXkMuS}b)?SyrJN-on5< z6bFsru4=ko721V8psQ;PlP?y`{iIJa&}BejliVxOXkeSXE6i=Rxo~#F)p;_sWht+A zY2ssf6^#dIDNv(j@l;Q$Q_%wD_VW%@A#;JLcaDl*E<=X!KFA2hr&jFh-2!0~z7q=m z2jlc#V$0(@u@DE?NibQ`&%TA)BhOP>TmE?4P4Gx#v3d*1v{i_Qa z*o3}8ET{cmwsAW$I)SbJsG~|o2G9V94owv|0AybMz(}pFRk>Dq_B5X-j_%M)|%V6!l@zOUs?F*e-)NxA^5xT%h&^%@f*niHJSk&Ak zo@34hIbxgW*X!Ka-$F(kJpon%?ZMOB440#VT+tlWk;u_Qu41KJqavo3#wWZRkMD{dzy107h~Q@nn$D$?u< z9xIM0kK^5aXC|UF(swI4NYR*SRM2w&1r7MzXF;Ehr+iK7;)b?=3ljA$-ag-5W|hyl z3$)j*j=zqTpw#U_Sv*vM!Ao+8#6S-`VC7Q30q$Ssd3}iH1?%JTvPfIER22*;CyRg@ zf`wJHNFb~;!^_n~z=TCzbOmT&%v=}JJ`=H>53g(=Ow#P zWY8T-LZ=V7%?h~us$r=V-Ql#BH%8s5;zAFSOZ=xF;3=**TCHpw9Sq$)%@)38Ex}Ug zZ0Gyv?GE(ZMFDVJsr0h<9C?Rvfwie~5gDQX#YCGvP-piyD%>AG(%o^=1)w?sbR6j} zqj}^u(UCcK?+q1HmI@zLi)~%K&us}pPTO6G(}Y4g*)QEoORVJSZZ+zK60)*vK1_YG zm!a%NM$~hCL<9R}t^xCEWcw1BC;BZG9p=P#x7M9|75nk`Y4DvGlMQwaJ${gTWa(f{ zo1NLl;&0fMB0}>`y5xty2?3v&U5LRQIeiZvROfNwDR(ZTY{qc!~;={0!;PL|mQ zTeZLS)mrNIl4@^&N%fr+r?+O-Iu(k+kQWH;v7zq{D&{yOZ7NQkf7~6aL!)yAk|!KvCYL((5}ZGd{{rZ9W}ZdHn##~ zP(HbK)KSIwrx-sTF$Gr-4+mH+)XU$tOz64tXz? zpb=Dl4;EOu`UYlXFCN-KsE+k{Oh36f)n zL{#VJ+o%I({NZE4{wIuYut*5|@8U->>q_h9#+kRQI>Z^!!5%31kxvYZB$#e_khdWj z+LEfIF26YpI7$lCoVDVDesUASvGUSgJZV#;ZEh#E<$W07yD-M8J>HFL-8)E$@+&UW zQnekD9mX=gJwH^w+3c1EWnysfAh%^?Mpw>G%8_tQr&7I#kC@#UWB}X~N{1CGwPheF z?KV8UgO8JGWGq{ZRUyz{)WY_vlR$$^Sfey^=d%v}$hRAN*S@C7C>*7HQ8iXIhvx3c zTUpRbRAiRKl5X!=Rd~Yj%|5r{$j~<{;)V_~5WZ_Gm>lgGEUC_UJryiffX`Ni6c$cj zw3|X(yvz@*`ecb76ggq>REtUInS8 zWB{K4d5pwer~%>(2Sj8=lWN)OogG>e$)E!vE3!m)r#{{XfE3>9<09`l@ zS5f^6|LgP~^!9|F$DatmX4wxvXtNGs;AkjJZ3SV5baG7UzFjzFjxrRo58||2T0DWr zYmZW3w4pyV*DIqF+emG)-oGrZ&FQK0RFU`MwCKOR9F%zjM2~sD&T>P6VBJ4!9pi9a z=1LZnxmIX(pfx`VJ$up7Cl=HlBP%47;1S>$CH0fV8TnoDt~?baBL7j1S#N}BwB9Am%R-R^Fj?3FyD+!MSt}|ocETpNq@ZT($ zgC|95Ge`%y>e$0OCL0MP(U2>4>2Q++;pa;8zgJJibARoV|E?u-h38;}1k!WLa_Gmd z-glAwiwvy~kwVvkjeBgAOkai^cM0cvD;2NPqzmv zaebL*?P!)~5b)F5;$_cNu|M0IyoYu3xd$9y3)rt#)z!rOysnwVEZ(B#@ExC=vdny` zLubEUb&hHc5Ap%vvFlaLjPB0>ivVgYd|e+Sr3DgD3^Uaev-@61!y5>NwVr`R0Q|LX z>0ktVs*vVZ<*xdCpvoQjH{}Sqb_?7w$B};Bu@T1c2=2%Zy6?BVfI9Z&eA#~5O6N#S z1muZBtl@46!ldoob5@!Uwexoqwa2!l^%CQgS8ob77WI;CdYqebJ5~=y%Ir?I&Odww zvO#sJ#kGazgGmcQ)yG**OQbvT6_FAkvK+*Io=KIQado8R`v8lJ0)Npi$Bf%3n+~`7 zT_D7>N2;PtMwj00@*~1EJ}tJQx7_cW$_SRfB}=CD%DBXx1Na4vsvmf&YuVcSV@;wZ zXe^u5J Ft0$&(ag)?f*pO(RhV=txONbmT^&M8BUAp?yOM57mde}~5r3Vt~J|&}v zt_hQh+IJ#C%HwQ1d1M0$P>MdG*K{AO7wU3gT6RCw~M`V?5hXM2v`#gk6ruM&fQ3 zAEy=@0BzR7PXmd8*NFk?52j#|45QoJ_xN&tvG%nKmm7<&x^6H5t3kM8;a-xz}O?5tlGGPyukVM z4K=8Gm1KK3VsQ@mMF`5=qkzjamJ*?+9RH86&Bo)brc8_T6FU1Y_2_t zeC@o{p{lT&s2#Fu2R~LR!wvT1YKW&LA@PES78iSBwjDjM{|@%UFDy&^HaF*~0Vo_R z;^VTQ+crz*%heu|tFrP#_jnPZCQKllOA|XU<0o6Fs{>}>?&`T699RsssaeedfEu<= zF5DG*$Ac8yrQhD=dJKy*daSD+&olFK8F+ZQ@y;Y20)`~ZMPDa;Bf^5>tXXw~Q;!jF zBP7SDJ$BqntEpYJeS;dsc#sx7pqIpdF*0-8lK? zP>>jsvhKOE*#l#+%MJHS1y&Jzbv=A65P-PXh2C7~ z;3)y5D*#8jDD#lfN>Yx#fmIB}h{Kf*(`i=7b%~qXPSuc*kwZEY^X&(cwAM>S-`H=x zzd>IGQ?p;jVnVpo@Kdc}IF%(kp=>tcDIh(AElgGAd8@E_CuDK#Hg94y>PXPwXn~ca z;1+Y;#Q-D2JJ+nKZE#HU{O`3f!QizMPA&c>NS z_msLB2JEMdRIgK=A~8=vm#neiI1n1)a_%l-XxM$U_D~s1e}|uzRsr~Yp$E9{=f=~7 zgo1wNpSi5PNT`RQ(}qWR>b^TMBq4?M)X}D>>q+GqFGf&#^yMy8XORMn+KVOOTm%3$ zSe-9+?G@RLJKM#*J;Y5xXd1(4;701H?zoigLILmB3GM+jDWrtI37Q1o5uzn(Y0u2$ zjNC>Myi!g@R?6Y;!=$)*bXEiU9?1KSFO}_+hRhFmB|!PO8XFgYGe-P1xxgDCLPq>x zD_voAYjLCIP*q}touz?Bjd<=yzd;M{JE|T0?JJ@D@WExXysI6JdaWjC00)6;3jS4* zA|dg7nz6FxR~}>h=9Z&l;jxS~)xoYc(cr+sk5^)9Uk*{b;=}y42wsq)iM@kFxXdc4rwoa#K zQ>_;WQ+xMapc_3l_gN~Wbe}f>Nk3vTI&V|wUX^{Edvy1&jRVHN(6I4HoPtv575aL2 zZZH6v;sFzpxM?hj-z{ew0M7MJ&^F;`DOYW)hXD)602L^4)3rNyNd;9O%&f-?c~3-? zHNkr8fQ19?WGtr>NSkS8E5pxyU66l6MzC29j96NZrletG%akCgv^g+;kGr{2ju^F4 zr0rXz(MPS8Y12@0`XIUGWcj}o69u@VM%kCqMMTME*EGUi{3SEwNE>{f-?OA-rt2O= z!pDkveE}2)2+$Fu}dYX zFAZ=Qik3Rn;V2-1;LzRq)P5zLMg!CG#%%AtJyPPOJ^aL`wF)&bFt0dS@2&U)&efU@ zY4(?cNlHHIn|XEZ4+s#W`iT%TavE7aHlGoaQSF056iRpz_B7@t zfD~$_BN|?iE9u~nzZI@Bud4zFFddsq%GaRzFU}mjO*65>mejU8`z)Nc4*=E7mME*k zSy#TD?~wKGo5w|;d(N?izsm&`tb@zFzb8NjO!6&I4I7?k-%DuG@3P7Yul~$f#}gc9 z_w|JoD4J6@;6NV7Hh{#fn-QQN_n$w&dATUByih3tYXq6n~O%{*NV5M#1NnTjgFH!IoSH`wV}L; zBHvwa_?l0XvjDomEVi--gK&Zj4m@MEC1K{y@iAABXW4Q84nh-@0)_ni2_%a)+?&g7 z91d*(aLT{JzbBFEaR+H>K<>{<;i>_w^K45t<_%8+2QdfO&$_)mvF6p|Jm5mpt7ybm zEuzi>yg!VZ#c0(jku!BQ)kw<&AgM*s+>!xRZ zq9-e@b)-{);WfPPUUj#7Vr`Wyb-!*!ZY!Kp-9Hpi-=hzrM9HmUg|~ z6#Yqr_ygEak%%;gbuhGsKk~$B?#H+AcLLrWC73ZhJ2>CG%O}|De%+FXJ%tFso3lm- zH+P?s!j&n+bLMZVtQqE*)5oP$jT{PdN z=mJ@|s7N0@hp8qDzvJGkS%C7b!1#F}2NNHEWO{;sb8<+R91Ug8od%x>2z%{~l!mr9 zaX6VSTxprP$-h%`QUftodUI3vgohqIo$Ez;bH>ymMa(BOaA58hpb@8FQQi9NM*#)} zz|zdzi8EKOzUs&XSX#wp>bx2zlS%rOmF3yhb;9_>KxBXpXP^<2eUR2!#D1IBfnYY& z8lMF)SOMjl`|U%M5l8uY-bBsig*SRCw z^%6hP3^$&uoue&AV%p&(d}dIw=RU>&gqBKu3qUM!eaGBXPO751imJPmaguM(N#wyD zC@*9{dwmxTDQIB8yP&5bN2||`BkpX!*vonYdoae=Z?h*MI>x>pEyM~sa>LEMh_>&o zyLQ%p>2<{Yb^;^(H8!5rxR-SkO(q()U9p%b%&^KTA|8-k_RIhv)ltNz)d|f`@1eKv ziPJ*fvfF1yBrT;T|9~Z()a^}GY?4Z*PGs~J@fq`M@38Sxp|t-W4}_&Q@2Rc1n8x>n!RV7wR{J;Q47srBOx9!5f z=n-80NE<`(_7Y&bj8xm?ci7~ug&oyUV@hC?`U`LNC~qFATWgajEf_FwtIu>>nk1ySSbOFnUg~xx zjlJLJI9|d}T*NUJbQ*(qnmyRph2iziai{rFnE_=~hQC3MNT zKX=xw)egSK^t>IOptVR)IRax*7DcVX)m3MAeWA1U-ek==5M!^Pp^0NoWgegFD5{0^ zmvoVn-SVmdc`Aopk5e9+raNGIpxhrs#wU+)Z#yOo>?TwQwZQaSd34PKTLao1egZH= zGz)0yug-CG-)@}g8!(CRXpfmQpvBp!%edF74@mxbPkYi{8i#QyXHbc)?xO%JL46o2e zPmKS(Rq949FS$GHS_wO8=#lxTGuRWhTVnAKl8P3+pGb8aK(+g*9KXandchk*dFzb^ zDZ@2*L;z0BZN@P2iMP8yn5cQA36YnIP0uiJO}F~EhgcJq26!#mfv~#h2kPT##18^S zo=X}9Qc(}$G1u}cJ0*D?q;Hkd=sF2lgNGGk_74lz2=WRK>yp=%Vo1AdH0a|qqZbtH z4!R-qYxk!OR7HwzMW&gqacBZmn3R)umK)?nip+dFH~^8pPN6B=p-ykG! zo1FfP5+F)sIwOQ1RRyg-hi119<@W~WY+i}2zT3Td+9NX5rk}E=;^EIuTMYWx#4Pa%UtY+ChR)7}^iW9wWgbu4pt9EO`0e*4BhlSyEOsE(K?5yGu z&8{oIg(QxZtjg;z+0JTBls4pb2yXE@epzWv-8RHT>-o(LoT7&vo&sRMMm@u^B61th z(=?bkQH`7WiM@Uf%mb3a`(4kAau3Tc8{!f6s$cG27LOkUz#;(oZ_g-9!kv+$!4Pog zHjYApZ7tWF6Q95EWV_X*$eoz3@jG>ZhUDmEbdn-d%n;7sdiNoSCCRUCDlf@x_Eav3 ztSDT5e|q1x&Ya)*&`utr@z#6$nxCITA_6QL2@Jb)=a*B7HnL+h~>bkd{;`8mYHIoMQq{rc)Gl2va;Ta%b{LH9=AFeO<{(y3g zA1a8X@<`a`o8_sZ*CA=AgrlXWqh(K4}enL zCEbq?4g&Y~w&)KH#L;pe+S_YguOlIveK7MB6V4p7*>FiQi=WDbV>V4*~MpvTkYhn$3>xqG#n(oIw9>{0TV=Wm*3 zW}6!2*SJ0!Sx@vo!7q(80!!Q9-pZQHduO*_QqY=BN1w@DYL+&?l=oCDZ{#0fH~+k6 z!P^U#m2li^A_&2wEuI2)SA7~&T^JqVOpa;hvc003&oS-mDep<9c;}UCV^sT$o{+KlXIm=x<`KqN%@|M*Y)qFUqW0$#3Q_1 z0Ea%TqS^U(o2>$Lg2dJ$Dz-Y}_t!Q-03Y(@_|vT<8bAdu&ZGYQAo6Y?C*UE@;PThjKy^MKLpl8szD98Q2& zsH6Vn@1JHeH|&HD>b)Y?+I&#fHZbmY$7AWE{_lJV5I#7oR=_# zoK;AcKk+>GWMC=jX(fcx+G5R9^*OTbct4?{Vf*eUPZ4Lza^~3Sjuggv%LHx{?dvv} zR3B+Ul7%E3*11l4WREpw)d~ffWiDrO!ITp=$f*$;gjZcAKj<`0&OmLC~S|9(oPp!kV23m61{gXb9u98x!*O6Q^=cec7yu(m(-KCbkh+!5h znnZ$n%HW;nW)!rqV8>8@qpN~GzeYe{$j~R#)FB$0#OMOX=|j{q1cXhU6n5Q*d%7Fz zA3mOT*6tTm&1OwD?vxNO)os)tJmjGna5~EB&UN*Wq*!Q zV;|_%=$U+!j>p_!O51f&)3Z3WTZ#5E)-{JG@2Npac zlv1@cXSy;@iR#j;71awWu2vRbNR!&gD=fxO?{E!$C!PH`jdC=d`}Q_k1B&{cOS`8o zH$S7ezNipCy_}x%47?kc6|PLp&@&u`Lo^V>wJ$Ye^936Ue!#7KFNi+klO7F`mi{4n zpeW`Z}kji4|W=DMqK zr7(#dTE!5kvp7O`qOrjkFZxQM)xREo0Hdx(?UOJ9=4=KucH!$EYWHrg48#|#tm2sx zqlfZhnXU$!S|Nz|7cWI?q%8~c&2ybo>!@HBpS>iNpWiv^_Fa@{8JihXc)Jt1 z?_5W%JaPQ3eTLxpm4P>m3r=$6(EeNMeX@+ElZdJPsHCnh7XlR-_03&oEL;{l1$YC` z3w@V;%yWK-z4As=1i^fRcTYaC43VvPdx7JTdU&LrCukn!o{4L(%~!H7U*9EHL3viP zb8mg-5_dzeh_x|ow7W-j`(}vsex}tSc;RLWf)ae`b4$;Lf+ybTo`g0ow9mnwvjq~h zHC8z8NgyD?z4b5T5nRtTReiwQDOJU46Q4M}oSvD$+ZRwdW8R{DQZuU+>Sh8ONhvBwpM6ETwN%YwlyRi#mw8iS zC;V2Z^BjUkzi_;w4NH4XUO?EU&f7L4^z!9&KolbnC{L)}^hQ}jTl!{PMDe({JX*0v zd~C;gl$;vAQ6@`#$&zhHUT-Lf>-Lf!j|N` z)8!_Pn17i7#(fb^C!Hz%-6PrTOB=Gq4z^{(@n~8K$-N{7ywQA4^@Qq(0M*LGN8luK z7#?unyjT^Nk{t82lh@J7b_kL)zmwv#bzK8fgeW8>`d1SQSqB|vZ|16@FnhejzS~)@ zQ?N#3LGk*()UW-T@6;8zyUEG*Ty7E@JvoP&<;&;HPAo$#hdvC>RyP2A4@8R8dAO8j9g%x14oRcwmz0?dbAM_6v#y6*7U zYcS&6A72slFw)r>1v9L?kw_Z+k5hOvFC`O!q4ae>3$htE#`&u5Axrm~;abxTa9aoY1ITXm( zNU(8fMV9q^C3~Zhhg^A?EMWgwnT*xcgoAN&oW~JEC4PReAT@EgusR)62Qp(eMcrBb ze8iXiMk#Cd2Kpz+dh36c<8RsgWq6pFSpN~@Q#FRa#rUV1!cz$d5hDi!dox={8~Z<| z7-*8yvjQq4$O=hFD5z2kS~@t|{4wB9Ul-G}GP86er1;ZJ`R5)>Jrf5)W~P50AS7ht zN~lRl%f>-S%f!G)$iewke1eIIQ2X~+BpvlE%?t#sO)QNF8Gg42IvD&eufXu<@~KZx z*TBtx8ie(1|ElHi^qAkbC^;HgsSfx!r6>N~_Wnx* zf1dYuH3?;VC!?p&ezywgIT$@X@4t%U$!ifd)wBP5=rVeLU9*{E2XJvmQ6^^4y> z`!69d{kxa;ms7^{|6G9MZx4i#k?}u05bdZ1={E{kU8xSnE%VWp(S>OVX4P`W@muDtixO z=LplU%$qzdrzw{_CL4IL&r~P`1oy8(MP)rhjGv8&%yP!0rl6<~)#u4p?~XaJ=Xld2 z`>f0}SKrq4mVs@$Lj?tzGYoMZuWw++t+8k3Y37nRsC9RLJo-8+h?hX1 z+4s}^_-lQD#!ubE{u;hVyMWmRd7*lXPK4{|gSJ{_5szU%I>*0JwlP$uJ$Q)Vbl6`44OMmRf45${8_wgTe<<#e_A z>APk+{e6DIBYuhNPd04>xgBGo3O(*h{@;r03A4K$Zz>TFv}1Y@s#of&Dv9G5?Np25~aTUuH^RPdb5v~eyk<# z&2HhR)Wzw7k3J>ORgL|;Ncnb%?H0U_Zfo@7c@SsFVzJ*i!W01Pjii?s`iZyll|`f7 zl#|N0{GgzBgR3B}(m8TXhQWO9L5d0TiE(l}Si8L=Sk=0jXYO^T1UPquV49y7gb8e5 zUp@Rxgn>lRCj^$^Pz;tEP#~#Rs~OV*IT6h-;+qe59-e4j6h6KNJUzvI7e90LKGcT7 zlqka;VQNe6VgDD^`?QSyQoZbK|M>h&e+NweR`Q1FUt!RH^ZEbNg2|e9Fd+J0^7+S( zb$&FNBzm8nNOL1RhX12%eVhRjxPn{{_GsQw=64BFP_~G;&YC^%sJe( zB|x$mWKV*?V@){yV(f7!VQZPe7F4^M_ZTsl8T7s9Y_1Nm>{yUyJM})eNvS6Pm!u zL!Kp^paeb2^XD?w68xN42%N*R$iMw|IRDTqPEo@ool+0RF${kVNARf1eBXSLGz8{~h}! zEGhD2c%DqyA4~Z!8}`471o*O&n*(4yC9REZo{Z1a3{^BTF$3JECo2zBsWSR)I1E{cD(izyGJc{9jsWV0eFQ|Nq_a{x++G^ndr5R^oTZ{&*OMdVoU%$m+?~ z{+6xc9|z^%jOU-jm zjWxTh3ae8BTiIBLV^;n9aYA1#@+1-pc#1%ZFTNxhGE9Bnu~6Tm+KHipkpdBeWXuJi z?NW&4?4DH#3X+JOcIWoe+0Wh`R`xbs`dBno9cb9FYJ26^7nrAdH8)*e?h8>dvO*-X z6l1zia*e>p4sl}Lb8gT9WMXuoQ4+GGXyE8Z^57(qJ4GsUSrI|93+7Iu+V!C}etM-w zkx`fT1m*W{_!z^cJf*79V9Ku>>q~m5L9V$%WNDd-=56`sb1nF6p0!mqafcCU!d5xO zfs$ZNe4N;iocdQ&88mTOA0AFa*DHTrt*4E|e(C*aWV;shE%(=!-{bZ9<|rJLFQCRc9Y(!yXcx(@D0mxFCxnHfc_0&^Is| z^87ivOkP+BU6I)R(+tetY~q#rh3ljq>XM?uW8@)2QS@<}KQDW2dJcO$`fuWojVtF575OguzOfubnLNLToz)_g|E*%FQnxT(C!f{Ewdy}9KtuGp3%6#@_;lA zR##~6QD5NQ!URL!DD)sAiOKc69T0?2U|Wg1netN!#%$4;3)>8*!h?m1-&1jj`gFeT zWayOW{Ll&N)Dq1lRxA^Pay{QG)ttndWlg03HM7EB4M?>^wWT*`D>E zsGHT?_GI5`|u@w zm26nl7mAm+HD#cQGsdL~JwnHGjIL>cM9RZZKfG3aq0#Ozp9HA+#fVgk5+JS~-hMBZ zlypla_e{+vpZwuNU>upL(MQ8{XQQ(=M|o@Cp@&sHq5fr?0(SO3@zF%>6HK+2eL3td zUq6TJ)@KxOQnE}C)O*XGdRiAa#bXRvri~Hv%zHG(Sa?ZkNrctW=7EI-Vi~>3 zw;0wG8+}yH`_vf72lNz+F7HO&WA2Bs9^TTw&44N0;;L&yFrGh%Xh)rmNRXCvscnc0 z+A;SNR%ys5u=wQ1N^mwl)4C0OsrwjgbdPJGI1FntmxfP1Wv=(<(&?f=zZ8&5g3i`eR7gG) z^;s|mS4XuY8!i{VYR-TR28r&p2XCl?9Jb@Jx8v(@osD4QFy3@(mB!>8%tj`6?@w1Z znTFfm9YDUKpP#ffX;vSMuNfU^#W9hB_@t=ijP>&m{B~-Sxt%xm=W9u;1YkLE03J7Q zowe0um<*l4{nwE5HlBtniI&cj7|KMpqOr`wp6ROlqm<;^O3{XvIc*(~T9`gI3q)mO zORoT5b@!HU?{fezK5zad3ax@U@8joOyAcHRMF*$|?uIe96X$7G$r5P z@U+8Im)^64k7h%Irc=)XEyFD-f)9>Y1nqLT(mlg)Cu)1t*pu6Z#WeIbC81MP5MHWv zw^J9-r^n*))|`;ROfDSi&3>soRT%K?c05lB+$RcV{jkpJHa%ME6_8N{cfM0e63UFb9?2bT>oiA0;tC)wDAEF3&o-iUR*S%r> z^GhFEv0q;qd#G(=Lw&;xs?TQ?@30K9p%xVLtHSG6r4?-p-;ybAI_=%H6fL1T>bgz{ zQL%-8uw(B9?=|#0V$PagfA&57uQG|D>mT^`Pv|x5rWou$8G4{|qmf0aRRn$|n&wJY zLlbF06}c44gSemaR+E3e%#14z54_xHe9yjMe>WV%^qk6rKdTfjlo#n|X-jQLTQ-ZQ zNiE(XqEZPRturo(ulUao6h>^qOR=Xv zETj4L0!iY61hBt1u)`N%zq?373ESHj)~h-OeJ2`z7H!XLF~@c5lIi`nZ7`D@8SgPD zLA0ffEm|@3XHr^-Dw%5qg*Z$%wd=M#@6lcrqH(JVYo=%S#W1l6e8Z0bw~J2%L=+^h z$4bd>z|^!I>1DO?f^hD~Rrs{};B%_o+K?)~!hGH3(SEbLgS*h}EZ@HRWVLe(JqMjK z26ghLh3A@FhBb$!c(zH`t9Sc3>oCl!yOl7CCo4iMS4(*5q+`6h^Mu`^aLkydX_11Q z?#KB$H-+MN<>D9pFT#d9nBXfTUQ(A)nwB+u3LoYr;HYwao6W#*^cm^m$HCI{ug@zB!AA1%BJZ#0)7aT3;F^;u;ClE>fU_=ri3lK&D#%5H@|1i@8( zbC-jHL0D#Pj1W2!2~9ma6GLieM}oCZk3}DHj%-cL=knQaGd)f4K zc8$>cV^#9F zJ?eJFPN$1{-xhp?#e+lN;mz12CIEMKA zgRlZjsK^}K*$WhvITTMpgPa-y{+KczncCL$wjKAh<*kP(c9tI*K|!-STYU`A&zlyX zYjS7Li@%?1>BLNtFXTv9GL7l{zLMkMiyxyL*( z*8K}Y-%vsQQaHk_DvABkDTJvCezD! zeku7MT-f7nPOLiYZzo6klJ;1A6_cftD&siv3K_R~#DidGI~Ex~5F5`7)~3I-ay3$d zPx!TOL;veFlWyDbjzZ3dwND+xs*ZL3^*z5{yhDNJ2&@0mZ=D7^ZtdLnW76N{>h**q zNw5#0l9DuG#@FMQ606u)HiBa4J+O602FLP_s9`x_qn)qiiK@7j8Sy5#rFQ*xm(&*S z<6fDyzFNC1y{rCmDj?qWZDNH`O?Znjve_K%0_NIG%>8zDZlL)}OEd5n;r_z#8+q8a zxCKIgI8(k7&;HbO71^zKhpXt=>m;5m`ZNw3@81MThWA~>xQy}>w!e{@*X#bSHzXk| zIhvL12S&;)-O04QWXGQGGgtAQ+#!lBln% zQ3$2sB7!QneUzz+wtn385vocJFifFE?Ect6td2f4Ke|-@aAvpW4 zIqppI&RZt@tSJO}`&T`F>$6~;N1aEMhe}4ne0m&VvgOYldxE;!aY~rJj5ggzQY(ob zU7+d}{QilwImMm^T6B~&db`0+dRcUALk<>s9+B7X@{Yv)poAY9R!*G$@y%qEgqpbh zmBv%4?&;5=Gdydx5}h+G+i8*WhlQ~%yZCkj#CC7dxe|Oq)hTw=LUCfWC}GuF`+WT_ z2e7vgIyh9w(2I7&X~@;R4=B{RW;(8cJ$rm8zaef%4U~2 z{I%JKVS}&6UAF7wWm6@4psZcTny7{pzO0hM&nzXc>&#Jb)-h7EJa$d0ClwKwIJtXO`Rg&s2jz(xIH+;vd|Z@4?K-zAu4&O= ze#c0tt_5mV!Qw7$h>4DS4WgY+{iws|3(vJtC}xfc+s#kY>cRdVA)`OI%UYTb=Vm#p zg(slc@)~yr1ocOF7K7B>9~??(@$#uwL&KQ!ca_v9j!ac0H~g1hKkgdMl+fMjhQ&QP z8U|YFo?bR|;(gI3%8 z3wG1)$#Q)$b4$wMWr;)1A@7)07=KHpj%LmHB{$}QMI7uUArYPHe!3;O8+%ihnMY>| z)XCRKbR&~m@wiQy1av+h)!dJVp+(&^@sQ8ropM}Spt{{{Yv>ED%l)})_<433i#wN#@cNz`$yFVv~yA)Q2 zp-Cg)e_^5}-IN8^@`1MgC8a*f5w>PmuC;`YV!e6TyzkLyaoG@jsK~9X4W&MD`&dPp zb#v-tBfTuB{{u_seD7^|Jk!Pdxc|}JTSwQ8WP7+VvmG-t$IN!jj+vS5n3)-3h?$w0 zDQ0Gdn3*YNX69$7C)1fbJ=6ED_5OKpouzY1Qb{H4D%F;BzWQyLhInqe^OM{!eTZ-) zlYz%aK8+7mMIX#G2VQcBZBO+}AczvgarP;-GL`w~$LAJkA=HAREh+}M>F*+eWg#4Q zM%M#-rARQ^#tY8!shHP|a9?qY=v68dm5TuwHXLB$U}tvCJKURn*IFReMtK0klkyu& z+9HzhY{RS*n+!L}{d`1moC_Q%xhEYCZ{PwgEm~^Xo5x{_tS6SDs{4w(OcMh+?+1@?otq7&FX~|RPM-QTo&V1oq z?o!3%ElcLNe5AIF4g*?LqR~3NQ?T!t<`Xv-Z$05^C^|ECcH6*)NeF57r&3>v?nE&G zB9sL(G?DN3+lQ@4YOrrz+uMK&HfS7HW#vnjq%KAGlhos-L4~G9rOLf_O)b$e?B#kfMRcFJ^QemuE zCj+YOoI4);9rcg%xG&IP503mxqvfH=`$za>FB|vks4e7idZ~a;`h&C0x49r@C!txz z#?9YP0sMn;3(Abhz7udK^n5@R?al%`T|kuK;Wls`>oaKDADvDQRDODj!&a+1o~tz% z(_BIEU7t%kQmZ>!s~(gN?3aE;vZ6x2S`mEZBFrg0TJ*p}Fle9Li-OQ?IM z$#nG2Il3@$4!Q603@+O+7wi}DDRG2%q&79`5#e#+(d_+hTfv)a=V*5rcY=2o&R?7P zHSya%w2_`fzKA`~95PgO7+f154yOzoBswSFB~a0dF%L3QFn?oU*PhXF7%84E?t@lF zoJpzCa-NC99+fmStN<|MXo_3@ZlUW~;X40x2vD11Za`BBH!pdO{E&t`-xdKuFZ47{ z#t3wmX%!PRF(z1zip?i91~C;vosBzYJ{9(H4C)fB^Yu+<;jJv4Fde^kK3aA{ft9=y z+4hG=1sDrSS0>fMt#@3?|V)z*(jc@%l5KQlWr@chzi& zYj<0sX*+V5zvG>y<#^=AGn8Uf2*pqf$MVeA-m&;bepq$GKhYTK9&GMA9R0E?kJSNr z<<{IuM&SUDhT&`Bj`Bd$2%{)nUZoMLG`Tq;MMlKA0&<5uT1sIN&V(&+S@W-Yw!6zzwFR_yR~Kk<;1BdU5yn3~RFPzn>Um6W_x z+qJ%gbhd=&1Bz2>6u$}di^=%1u(;7Mo6lT={ zHhN}v;@ae$DUuj!-VAAlI8ceO@nNodhZ(U~G zSm(jfP-`q-itQ?jOz1%rLK!x@gh!cS=}X-zWs0j~2B(9rg+8xILXmZ6`^4^7J3qe- zz&LyTY441%b3D)MU`*&!%&d6!`F=zY1kb^6KKXH= ztB%vM2S0^^f}J6YGd5>Q^AtesRPFL~LE;zESJ}t~V~KTS?~R+P zMxvXR8whHoKVTwAskN7fEA$R%u}ADy@?I)|s)^B;=XcCV^S9)z23)sc9tP^&?PD>} zu&~i5KnV)sPe<5&eQ3h0!(W;U4Gz+AQ?bJC%St?iyX;aD)|)QxpCgPPpF^D8n3tB) z4)VJ~JGIb-^9up`0eHIsg){+U7zy;?L}nj~lQif-Y4sx?vnSd++)tK!j2WMD{1^zP zHsRs+T?UyBG;&N_RBeh{3yGs^5p7~W8Re34cWnI0g3!#}3D`T+5V&{U4wdhEHoCQ| zJBF=dF-U87VJt#+2{iNG)6ESB3ef@=%UFVj$V-K$S+k_8O4kY#v>Q0tiIsKqKT3xQCuDkFK zoMXP#uRt{(52xJlsDmJF&N7%N3pM9UwIgCvfpccTJ7`O`KIIGj%)=OfRD(|pF^<*>z*l&K! z1>JR95RFJ~!lWQFPSj6lWaI@zpR7B8y1yR|w0EZ*uNiepWT#2OY%IKCETWoHm@++n zU<|9hxTzbQ(aavSy>Q$#4ZexlQnJn;*oXt}&JRVA{s86bs&^_xlkW%JvNpr|{jvRO z?E5}am9wO(_?(L~t*x`^biYs%3v>~gxLAOMa99X26h=@Rewj2Duv|G}qjxPX&RatplMo8e57mMmH-5A;9xP>nESjD?p<`80FLHO+CO8&jkrh8r%l-^tIIy?Kl*J@_8L}pPZz%5)$a?F%7mp^( zrrfOa(As?~c(nLEm)G2p<@=Y(1If*B4DaZqkuJ=NHViP@*7<&Ph=tP{x_^h>=G8baTsCtaTr^Z>t)CAdgLTI73yz2&Dh{i2 zW3!t^X!F*7WMd=wz>A5BQ)z&{gY%_+OI;!{GIa;hp;hR)K>Ndq0YwJL*_k##k_c)` zx}E07MR)pEj9BcI*|`D$7iBO-?co4;pdyuWo;rOSSVx+P+h4Ph zi(|z<`ID@@sVT+6qZDCF<-KBBMhw@n&y?i6Zt#d4V@@X%* zz=ryL)jexBW{9}76w@U{9U03=kw+0(R@O_9+R^EWLf@#`+_kzIq8f` z-y-nkCmo2msbm?j!1Cs*{Q~ql^?A|^fq|W$gK$@}!18t}s0)O{42D3#FU3&`?VCR$ z2b(vagTUq6ksW}4uBYs}MWXoNE%2O_ku|sRts1>2_aM08Nnx=T`#nbD&}L3(foPMX z^U%y5R;i6YC`MrqZ;7AuCnJi`X49-PRFC+kl9U{r)Lk3I`ljBmlbqyPG>irp8;c=! zTa;&-%$U*?@*vbhj+>{D2(o#-pm9w0zMB_hHTXzRN*XU^FS_mKcGp8&tU@sbyL9E|O1k1x&FsIqemA7nM5k$AAEJ)KNoZRg|pQbBvjuLBQY zz_e@k_Oida@0yLNl#^h_Tp)&@-o}@sqX&H)*HtX`!Kgvo4OO-QTE*ZLuqaFL*hon5@f`$2_*7IxL{wDxL_$1;jp2v6tn_$cP`O{7 zajZiLPFu}q_9gevO&g0PiHr1`xJ_*yc^&pwpAYh%8`2chwqiY$v~|-#w9)1KnB+M% zKrtZofRSLyKl$rWz^cKx!RX2YPgTdoe$^$R7@5@tvR1ai`{t0-az?!mD6yM}v|PzL zFu9vsJiM+C7MfN?3$SJsfbvN-@MSxg01+O35A%e)EI$%|Dpn>c(4U}2N`AcvkDA%s zG%()tyW^P>K{7$nW|nYvlXhck-6Dx2L9lWZ#P{U)bO{1Rr~?gP8z+$o1Q}x%8cE5w zB_zZYPm7dD9XsV@;oNh=bEy01*Rn(dbY~N=x`@?bl*MaTU(T39ZAybK70B0^mQUL6 zjBQM{7$6)r2qP$DdFnEEYQ?|!8u3*_;L1TN42F1q!jjkM0dDwVaM&$6?tEeWX@QY!*;kfKi{?y0F*H7gzJvwUkDnHy8ZpqHmaMp4|X(8Rfb7J?csi}3b zE$Zz!S_5;+@3g;F>;&43Fliv8)0eyeUD`>+{X5$Ala%=fAIHk}C)>sFhI9X7yZ(Ws zGW?0l{w*LE-C?mv`=0;g5fUf*6J8=gA@F->;Qk)}9D!wbPySLYfC{3q^A3;Cu%yCY zam={Xs;atrid@*5akh;or$?)Ovdvslwi7lh)#cuEem8y%n!L;Edvu_52fO30pg_&F zLY`-nlFzhe;qXA zI~2!-!sX`z)S~;@zqJ&fB@uJmEMk&2pLfJB2^8Z&cvR@J@=!n0P%8~!2pR|72ZJ2r z-s#rqbwb;RxlD6`a}#reay#h98G58TuS*e8GvEvL?;Y>!=(DM<9g1_jtk2#uqcUKx zbl^ANTqZomNu(l3&JOnu&+X;Yogd7Ke@kx-U3~SuTYxTxb$E0o?PAJp4%-qSa}9t= zF}QPAn$Z_fxO)U4wwky8ize|4OMk_r80lGmF<=b8L&|?bVE>U;7n6~bljNh2G&a|< zx0Tbju%&vX*zC=;|D@V~k?VhC!F$W|JHGz!_}}XggjWKcjqMd(e{G9&v@A@2$FH-{ zv;9Vwz47ZTe++Q@onL2R`kCkN`E>@opRn2Q0N`IEkbms&pZxk8VfJ&;pJd$MSm!^2 z?DUL(NwWW}9NC{`{7KmTSCXBc6-oAh3VPay&dz=0$_aDocncoaSi^uX4 zssEMwwLL8!>+1o&tz&uJ>s#KpU)rB3X1ceY=4}}p;~T5{KR>_9e&Z5f38~!qXW_%L_`= z1qTJ_;EBdy@e`xJr`2lrfdMBA@&XJBVk5-cE@sem@Cw^-3Toi2S}}jzeppdEd2;!t zq_kR8YB##O?Lhj@Glx_lr0-T0bDp`J+9ZlvREZASys}1Rlt3up&3Hi)(>A1NVNOb% zf%(yFljW+Vq2$fscvXIvBfJ_}%FIOWQ%4!^q4OyPDj|^J42d$zGe6;*jDdndFD0ShrZjnDGH<{mgS;gk%_c zQ<-6T=R(B-#lmxWe+7x6rlOl|l+Q1Pmps5iX%h%!sgj(c0@CWBW8Ry*)IFY$ zK3serc`rI>y7X4}d#C(j zo|f59LMOiJ&J5kvw`F8S&qDwu;L~*hE=EYoI4~oOZu&_@r*Gf({z&RF#527MD}*Ww)eJUXz`ueqM+%wqg?D# z``MAPks0ayo?=7HN zLX!vYYpWpopl>E7ayiU>~tu$M3#NzqsW^(wZUtperUl)U+-B7zslZ%PwQuDC9 z)7bvvYQ+$jzxBN)2N|2QViCKd(_W#Zr0)ChVOlT)Msd*NbY?IOh4Yhh7aW(;8dpD3 z$XoU%?Rthh>Jd*%!kpFhLO6(6cscuMPQZJIWcSOp51h5x)~myxLA&$-^1Swib^(T} zDU`_~X*GoBQG8HRrc=3{ch?@OTC-Vp;Tg|PF_qU>wGxU!#5U5}IyW)SDaHeEUE)@f z>ss^{Yikl0uhJ7!%1;kjGwVhlTcaMnuiS)gv@7D=gz(O#HA-t2SVQSC3GZjlE#d?jkUwl8lN%Y7(hfQs1P%YEOE)vPyNEGY}g|r4LduPeGyH zkbqE2s3oOP6XzJ{H{?3yIJ5_K&oj8}9%7Juaj`LfSvGY!pwl(A0BwEm`7jSGeqf{9 zYww+dE;BNL zHY>o{bWnb8^ zBU6QQ`;K>qlc-)ZCtI5liqdNoRBZxbH62nMmrZWxm}_)}beQ@6HCVye^!qFRTaX)|i zop(+X&)WY8DJf@QFqe=wN#QaP=sY*-pg3H2l~!nVy;SXly>xuyyVnwAX{XIJ2y@r& zDNL~C)77{O^^RK1jK&Y`Y?yR4`H-{!vFi%gE(6y2VwnN~b+Au7Oi8a^sK^E9LT7Rh z>YInWcNDKqDw zDb_s+@Tc19Cx`r>nqlU+d#^V^0hg_u3Oxd=J)Xn*!#?J3_GeyPJx4x^ErU>wsmBTX zfgCFAhLBl$Is~wMd_tCZ5+0PKBD%Jcq+S!^VKEDCYPhoKU7hqcMQvr1uC|a1d`2a) zRq0(o!pAc|5P^`4`08WMA)d*5)8%@La_Gm^3yaX|=o9N~8}LqT+gg8YR|bGr5`mQE zbZljg=PM^n^AZm_W_v3!bRS)P>KVW>9(RV-5PX~*FLd$R38#ph^ph`op?D!E5aj z6YUuTj+C=nA+yQd%rt`LV=$cA4_cU_Wa4-!5md{=7Z4+C>C859(z7cY3X((5{?+T= z@MbI+K%gn#HK+GDyL4D`2mmb5jAY5+w}zpJ$p!)8{7&ua-#8W9+Q^6<^4-buH-r%M zkt(R|7iBqFBlO-^y7Wx2;uE?rH^xpl_QWtPpwu%{$ebp0uY~0kFXm&S1bz@6K-ikj zGvmvSqs0*jI)AS+{E4z!dd|1^W6IY>UQpj4Wv0#22@y_W~a4NoideRz`Q-T@-2|Y0y15;%vAGr*2poaS_b>c zjF_eu+y+8>adDef`&F$V=PD|8$1*#Ix=gFl;WF}UsUalzL_|+DFRDMWspSJOP5WcV z)9gNjU?#1fX{@J-#lD~jP^(mvRaS2s^{<%l6(C>Y!kv7%wZDWhBUz)SMMXD;Ls=f6 zKa*tCUMLrw?>ZIb*Hwn4OidVi4Q5MiCWC7TsyCF@>Yjmts94?@Gm@pmn(9T(sMyh< z6d}1bQcaO2nyD?Zkfch6ZzFPne^?p`8-{fS*~#SF7)07$!fY26pMvj|P8WnC0k6 znMnyZAuJMb;ZbtXYJGOn?`d_5_3s??BHEx&_Q3vD@VJBa)ezGN${dY45`+|q(X!j5 zFpaAmpvLE74wHR7a}M#L6ORLFyMqr6&|919_6I&K@IypB411TWMkD5x>g{FqW3T<* zeP~yk$9PMq(~hme%em6%LZ%y8r^Y6Rmp!6~HZDiPP`|SiGc?J~DM5PXW?Gdt^So_0 zLqGNrhRUUU$a1~mwsx)d>Od%^D&7aUq%1vhZn})#UO`|*|J(K=%!)dYXbyR=gQHC` z{QR6nM-=&R``oc2)OCzKjJ;1Q%z8kzK22uUIBwKNnrF%Y7o1jV9NoEAcE0&Om7wJX zj{_B_vQzh}wrZbEX`P~G39yOUs`^)GZKC^ah<)2~D<;Uap;YK=w38~L*6|WfF{{Yw zj5V@;aJg;ky-XzNl7^iWE>IvJF3KzBe`4U5a}YS;H-y&*0FeN0D&uchgs-rMqHrWk zt=LTEXFPd;-?~2vjxTmZw7Mf=74*Iyf;RIu=a4B4*!jMETSF-&$pVT2glWtuBcD}b zRv#F=`PFjOLlL3K2MK{Fs$C+p(pMeW1zDUpd{!5;5%OXRgg)81v(OCKLE8-yEC22_f=Vs=~5_K_XzR!9*v#*%EG zGJ%Q_5?>ORZXM~hCDswKDhPqXm~*!HRRd@!!XTl7>D_{FPAJG%NHg!rDP52*jS4%0 zx=983_07aB#*4csC(1r2AU5&E*VEhg3=AEXkn@*5JeNM&f~fDjXijg9DloD{`7Gj@ zkt9-vuzzet8W{z3W7qQ_`?Mo-4gq1aK6 zo`u*L9G}t%r->`DMHjVPRmywvZEPnAL4t&HU1*Zw%wV4&6tGhE`$mfR6YnD?{IUrI zLxfB%K30I$BCAr}2wyzi@EEfsU(=GeZMN_Cgz6k+ayF2)<9f_%2THqdi6u1ZUQRSB z27G*coZ0zB;bUYi8L{9uvtQbH*FEA^Q@R|xpcbFha|tM4J<60u<}Y)JQWx-YwUdd8a2|C1OFGBE%nOCS*_`dmQ(n zD1t5`1DWYLQT(*X2f2g*+C+TPglj=Txu}#)WA2gPzqjulaT8kFJ0Z`CK&ID!SU`-EurU%(6EpopHHl9CyLQ;e9tR zw+X2H&E(t${xsBHsDYxt;uHEox@)=K4u>u_22s=lH1b6ct>WEx6(4@~NX!8nHx6Yq zZD~y$QZE*c4SfU!f*|!oD5bA`#z@f1a-7u5}j zAQuP8_7qMim?|8|Co4QCNNhve3SIDA@LwQrqi^4B_iUpMb0^kGYmk!;q(kNs6mC?r zmE;XQ?H?4l$BM&-cmG*9@s_gI;(#4>aq!D^Bir>|5^_?kDa$ z@6%pEUV++YHY&P(a#MQ}f6Bg(R;}IDqwCfw?oo&O96XJ(h2l?TLPf2{QQcmQE>?w6 zOSl+(GzzQZUr{wD%p5yxcvA^B_u(3Cv3*7Fq#SMz^$_!#^qL_UK9g<=-k$H%xL!4Q zPo};R(}M4ZF=snC&QE3IWf-}B6L_Jq+n5qk!{Ebc!$`y8p>-tkh?y#-D*5vzYC?;^mrq%Wf zPzx^R(buKdnb(Easn>8++h`+6i1pO!Ql)S#KA0m7R=N!$OLi7GsNDj#*6IXxDPkK< zFe)4tQJcpYV=xr<$}00U9TMEN&&H=GohSUDQ({*VLeIDS-8${0HwJDO!1+L_K4wc{ z{>*Sq8_#nq73?!w7Pnx#FfF)l@51Kxy)?eq$=r{~VyEc0n@xe3`5y^NcE%aI=tNR) zqHM81?T8`*Ax=g`Pd;xPnIm!<&K(?LE_t-rl->@Jb4D>_vU?yn=4Y^kvQ+!X%tiJ( zd-%$X1(yQZuqNg(bELY%`I9qB#@OmH;Oq_o4A&=n_HxAm;JMqX2*t92Fg&ma zRLJEjYpP&Q`09}-{QDl@Hs}+tQ~v7H&Dil!#pbC^A)dAA1hWT|T~?+c!K?Ho9UyGG zh7~SWIAI_VF0f`BBaVv;@4$&jOV&6hiis1N0Lx)$3V|=3DPkppoSntN#<}+;Z9z=f zd|d5@rv;Nw@ybM#=+h<7)mD6?*qNdChf6T;oud>YG!PxQhvY6hv{9_(nvc$PG3m{0 zCKc3VR0MP?ZItBN(|`blswrEn?g~%mMPnvc8sYBKdH1UXOJRDMNX>x7ftTrU#~F9f zlF7toES^NrW&->boc7V%`%fr`$<$7xLDx_b1}^*|R%6f7eRN$5I~}049~&POxdGXIIL1*HCBp-i9xXI0H%k36qB?v1zQj;UD}dOG z&rm0LsoR;dm>%Ik1(+YT&S%jx90D0gT=p2vU`w~8GK?OlC+5qP9TrOB7{Qq5rr?i| zP@-jVOPw=Bm$4BQVYrdkN}JQ}W!|Lxnk%{n#UUagv!q0VIX;k? zYibwKIlx^5oxvXoB#Twq4@_i*Y=U7f>5cm>E@=sO$fD&9O-*3vYZ}LY@GuhF<$6R= zrK3@iPf7XUt~j8|;6@eRS}gBXS{8n|Z!hC_Q0-(yMG1Xx%=kHBr<=f84%T!i!#Y&_ z%V$eDHlY!ch69p*$h3{_WPZ@qtiZJ4+|w=_Yv@mmZqy)f6;$3hA3#@X^Nl>NDT#XxV+1z@7~RcMzfPtc#<*!LLgt_ zDO^BfbUlK=@)NgfO67`*9daZ`x*qR_v^XzpC`^4I!Nvgq616@aZjv~Lm&E{=ea0cA zd~NlS=fhZiU1X=5UXYoQvcXd7k0wf51_qZamIRhPZ8XrhT`k_{XVK-7y*@A}YGKI0 z3DRyo{*p7+q19C|P5lSsjp7<(-L^z9s9@XjI0h^Tlzst8TN{ zZ9@Z#xNC#WKA!_Gf^0z4UgRl*{f9BPDjKI}%13pNTnr>+nA=$S;F;XMZPs_s~Ul2pEiqB-jZK?#IJ{ zAh^zBeB{Uh4F)gfMC8zcT_HSz6C|(;JhC|yhSy;gXp}rtX_ZVv7P#C@YXUMW8HPHS2(D(B97K_PS;K zzMSEU>UdGhgFWu(QnO=$or)Ft+G>Mw1q7ED+*buZM(^WvTa#_w4xeu+#aE_*C?iP& z1nxLy9ikX;U228nw6!-6b$#eddpN6s&p>{%Sk~mdaCSzbqROg**Nu#v%!V^DI75_3 z?!^U8yiv;jaosOcCj7C1e5!&jCijg@O;NdstzbJ!O$8fu7DL~Wna!2kjJ@sdbk|lW z@~4tnwu(om&HLwKYU!N>?qxY;lW$}2?p_Q&6Xk2W>SA1!t%F$84zBBDA$)p&+s?E7 z$onD^?e!&aqnGmsj&CaXKp{w85`CiowGoKxvdRz=TL(k86_1y2r*&k=&WvZLu-k5H z6~rtsQG61LN3DVRd)xPi|N^p8)?*P!{_9eIU4wL5{JtTS0lKirnbH) zA27Z|h#7ibGOx5k0?78YGA>J$$VifRCfUuf<_fcG5-G}xy@FdP!*K{4h4tUI&}#sB z)rVc3yMcR6=bH=QJN5kLE?gGkd#*p5df4{UBET650SwQzJl;kDLV>cc;gCe{0Xrb& zC5As81t6Ad1+?79@ii$0ksQ3|9lEnZ$aRYJOd3iE6IbE2v$9gROYmtw;SWPRHbJere$wj971QKzw7{~<%_4`%XdHMD&VcNH%T zn;gH62~wfkw{WOKzbg0{K~!V1a6YBJmOe5l?$l~x=$FN%!=>N?mC~8?6`+Gj8~U+9nzUp z(C7E=SuPirY8u!Y7doT5$h<)ET~JyGs9#wIP@lt0&y$%G?!dshzNJw{I;0nq%o_sy z@&?MjaQ&AmaBU8V+H>!h2Jnu-K`jmt)!usOCGuh&J&L6jBi}as$d3*%@sppt>9YWd zZa{+J=g#Ji!AK0vd{$$SYQQe^cLIaIb%?|0?S?F4Z1JqGqFF$QB=rJ^Yyz({?I6-L z*wMHera1X;@;MVh0Qshm2cX%&&ztGO9IBs#F85--K3EEZGPNSeB(jKn`x@HIWAlk$ zecQC0#|bInGp{6pP*aCIq+{0Sbvv(X+q|47gb5MNz!$f0<)j4Ey?o4*9d@rJMlDu7LH|AH0|Z4nB@ZyY_jMZG7R}ezZ65yE~{*T~j&w zK+jFuhZ(mFs-|P~z!wO?(EdZIzO5n~LTuNACfp{Z8M;X>LnlOW6QtM^7|Bq}RPO6s zsvm2JbxLHOYOow*f;$xiuX2(J2Ip6TMqLqcaXo$+absf{8DnGdaRdnGD)`+RVIBRC zdk}2#q&a3%_-v7Vy7-_6R?s-X)3hjO(HSYu4rFz=&>bPrO*<(>bBgk4jwK7Q&?Pgondn-Mq(Un~D9X&*O$uNfxD$spiy6NZdFr`=Bhc zU2~=8{GEFcv4Dt~m6g7i8?UmUxjE;(Tk^dsxur)ZX8cub{P=F$wC%F?2T_{upIa`{ z`GV@cPxnRa+(!Rs;9(~=5%|`|sNJE13WhBz#<&ZGz(Q=15}!H&a1@>#pAV*naOi`t z6yffp6!L;0#Dq^bLeeR(^BR`I&&YOrpJPvvXpPEJj(}*$GXU}~S?_7MWYC^dSNI)! zE9n%kpoq#MWj^ya6Kj;!5Ca8fP!>p*uoE^%VZQ1b4$bF)%F_NzCgRSpyd(sAKJyO=6NB&1_eThbGLaL% zMG?zM=tFvqFjK8it#~*`GivLKB5dkbC@ zZI;7PEy4-6>j^{g`e2=(7+Ot>uzTVj-qf_~)g3ofk?>p}qt5HTGcP``r%sLsCzR|B z$^zEct52Vx-suPo8G333O=16rI?fp3CT$Jl?%$;kD9!CaBs@VPvwEP~Q$Dmrjp*h@mTEEz^1K zzC*MgPWosvLU@Bt_&ORfL_r5K$B@SNHsT?4BYOQ1w<;?6hB5Dw*O<$izIS~CZh1Y6 zqU7_eLfGS9RKzd*=CvZ|+5V|d%JA2!T>lYO5>yi96_xlMRpPTW)B8!&yopi$pE)Hu z)>oNL23nTaM$P;NE3y1T1d`@I>TLe+IHfA%_LKT}Gt*w~xM*8fl&`&lplFHuT=uswfIxxD50Ngn-!O!`GC{qMH?J=ecdHE+Dl zFXrZL%^$4OuO+WX$NHvA_DVMWwEXY;`Ttk?uPLIpj_~*9$M6>-ZH#Y*_@g!aRnPd= ze*POpbQGf?9b=8uuPNg72{XSn=@q z7}o4iQc=cEDRo?^&v0bPb$cY#|H7)2N0z{+{AyCr|56ehJWPaaRUQ>97e+wXlQt)O z1)xQ6Hx=n#N3^9S=ME>oe|SQ;iz%vU0G`Owlu&8Va&v(hw6{n3eqkSb8d`?JMtxdT zp0A)8jA;1O?&g#Xa~F4WeSd!jkC~cI6B8#hn!?4&r5``={3LLRmXa3}hmajJh)Y|h z!g^eru9183#qmWf%WR75W#U#zNSPd32bnBVTHA}{zyj~6fj-ybRxVbX)24^ zzCes~f6~+Mb}XQmF_XNNF`JF*G@H1@D3lwZ8b6{Ics%UdE`u<2R~)r*B2)DBhtEr+_?V65NqVQqb~u{KyqS^LQ)ZT+fJHaJl0zY|m2`hHX2 z_{dT(LQ+>hjD2hq{=k73?9Z`IC*?H2kapn}-@MLb=`_f`a`83%3jro)`W+wa=Q}~_ zRo`(?$V{XtX$VB^4@3N1+SHUjs>+ZQ+UAk|ZJrUKqrCV&dP&jd`rylaPme0|&y$3P zNqR|!DvytVAg$1pxAPO!gv7*bY*bWCOl+JAB_p<~X_MzE*Q2)p_bK+X|L&uHHuHZF z*38U|zwQ+n{{panm0kRASH!<6kp7E?cB5cimc#}DcThBt78+L0m1l4L=@C$IO{DC* zB?<8_ms|f_C()g0{h{f;LX|P0O2tws%7F6CLI2)h8O8?GkR0yMKdYeb}oW zRgGQ^es#ukizXLTC~N)%*pq58^A|S!4N0bdm7D&DEG6Ur5lL1O7g6FB|J~33;gJ97 ztN!nv{*_s!qGx5qqoZSb{rX>cdbWR4)Mom_t^W&={D1KDZ$0bpT`k=&Tm79_=l?{K z|GRbmqp$x>W&F<@EWDpp^M7{r|AwRfyh{G%?0((x{dsm${}#}M@elX&=0PO!82+f; zx8uj7WBJF-e~)Ow6!sR;N6%srk~npN06gk)qp&pvwihT&KqQ*~^MgswV24|? z;|;u11d(ufqE{smnOOO8(}!}!FcYYE<@q?w&G_wSoqgF0hrvJ~3R{>ZOkFD!!R7G_ z7}Db5te;rf>MTHX)4~)>qmS$6=IDYR6D6Be@SEcnKI~PiVC=!pAbCOY@@>Whatt4* zSfmKOgvaYrrKSw;9;~3+iKb=ZE{L#-|HYN^>k;Jj@U>%%GK>&;kRsf<)(u7zT7j}ivXANt9Znu@7hxHT^$_oBrP6@E}*nOIs u=QdNaap?i-^15&BaQ3Za2mfwdTRUwVJ13i0yRp!+y&9L8SU^e;^8W$aNr@Q% literal 0 HcmV?d00001 diff --git a/1191225_program.c b/1191225_program.c new file mode 100644 index 0000000..42476f1 --- /dev/null +++ b/1191225_program.c @@ -0,0 +1,304 @@ +#include +#include +#include +#include +#include + +#ifdef __cplusplus +#error *Please use a proper C-Compiler* +#endif + +// needed for reading proper input from stdin +#define MAX_LINE_LEN 100 + +#define STUDENT_INFO "Sven", "Vogel", 1191225 + +// name of the file to write to on --export +const char *FILE_NAME = "info_export.txt"; + +/** + * @brief read some unsigned int form stdin. The value must be within and including in the range between min and max. + * + * @param min minimum value + * @param max maximum value + * @param msg message + * @return unsigned int + */ +unsigned int read_ul(const unsigned int min, const unsigned int max, const char* restrict msg) { + // buffer to fit line from stdin + char line[MAX_LINE_LEN]; + // end of buffer + char *end = line + MAX_LINE_LEN; + + unsigned int value; + + do { + // print message + printf("%s", msg); + // flush stdout to make sure every char is written properly + fflush(stdout); + // read a line from stdin + fgets(line, MAX_LINE_LEN, stdin); + // parse line to unsigned long + value = strtoul(line, &end, 10); + + } while (value > max || value < min); + + return value; +} + +/** + * @brief read some double form stdin. The value must be within and including in the range between min and max. + * After each attempt to parse a meaningful value msg will be printed to stdout. + * + * @param min minimum value + * @param max maximum value + * @param msg message + * @return unsigned int + */ +double read_lf(const double min, const double max, const char* restrict msg) { + // buffer to fit line from stdin + char line[MAX_LINE_LEN]; + // end of buffer + char *end = line + MAX_LINE_LEN; + + double value; + + do { + // print message + printf("%s", msg); + // read a line from stdin + fgets(line, MAX_LINE_LEN, stdin); + // parse line to double + value = strtod(line, &end); + + } while (value > max || value < min); + + return value; +} + +/** + * @brief read interest rate and growth rate from stdin + * + * @param interestRate + * @param growthRate + * @return true + * @return false + */ +void input_rate_and_growth(double *interestRate, double *growthRate) { + + // input interest rate + *interestRate = read_lf(0.01, 10, "\tEnter interest rate [0.01; 10]: "); + + // input growth rate + *growthRate = read_lf(0.01, 5.0, "\tEnter growth rate [0.01; 5]: "); +} + +/** + * @brief fill tab with interest calculations. Each row will contain data for the next year. + * the columns will contain [0] := interest rate [1] := investment amount [2] := investment growth + * + * @param tab 3 column table + * @param duration number of years to calculate for + * @param investmentAmount start money + * @return double sum off total investments + */ +double calculate_interest_growth(double tab[][3], int duration, double investmentAmount) { + // declare variables + double interestRate; + double growthRate; + double totalInterests = 0; + + input_rate_and_growth(&interestRate, &growthRate); + + // initialize 1. year + tab[0][0] = interestRate; + tab[0][1] = investmentAmount; + tab[0][2] = investmentAmount * interestRate * 1e-2; + + for(unsigned int year = 1; year < duration; year++) { + unsigned int lastYear = year - 1; + + // investment = investment form last year + interest + tab[year][1] = tab[lastYear][1] + tab[lastYear][2]; + + // interest rate = last interest rate + interest growth + tab[year][0] = tab[lastYear][0] + growthRate; + + // interest = investmentAmount * interest rate + tab[year][2] = tab[year][1] * tab[year][0] * 1e-2; + + totalInterests += tab[year][2]; + } + + return totalInterests + tab[0][2]; +} + +/** + * @brief print the table tab as layouted for calculate_interest_growth() to stdout + * + * @param tab + * @param duration number of rows + */ +void output_table(double tab[][3], const unsigned int rows) { + printf("\n\tinterest rate [%%] investment [€] annual interest [€]\n"); + + unsigned int year = 0; + + // print each row of the table + for(unsigned int row = 0; row < rows; row++) { + year ++; + printf("year %2d:% 12.2lf\t% 12.2lf\t% 10.2lf\n", year, tab[row][0], tab[row][1], tab[row][2]); + } +} + +/** + * @brief find the maximum value in arr + * + * @param arr + * @param len + * @return unsigned int index of the maximum value in arr + */ +unsigned int find_index(double arr[], unsigned int len) { + unsigned int current = 0; + double max = 0; + + // look through the entire array + for (unsigned int x = 0; x < len; x++) { + // test if we have found sth bigger than before + if (arr[x] > max) { + current = x; + max = arr[x]; + } + } + + // return index of biggest found element + return current; +} + +typedef struct student { + const char* name; + const char* familyName; + // 7-Decimal-Digit UUID number + uint32_t matriculationNumber; +} Student; + +/** + * @brief create a new stack allocated student + * + * @param name forename of the student + * @param familyName + * @param matriculationNumber 7-digit unsigned uuid + * @return Student + */ +Student new_student(const char* restrict name, const char* restrict familyName, const uint32_t matriculationNumber) { + Student new_stud = { + .name = name, + .familyName = familyName, + .matriculationNumber = matriculationNumber, + }; + + return new_stud; +} + +/** + * @brief writes the format of student to the file specified by FILE_NAME. + * + * @param text + */ +void export_to_disk(const char* restrict text) { + + // open file in write mode only, truncating previous content to zero + FILE* handle = fopen(FILE_NAME, "w"); + + // file could not be opened + if (handle == NULL) { + fprintf(stderr, "could not open file to export\n"); + return; + } + + fprintf(handle, "%s", text); + + fclose(handle); + + printf("Author exported to disk. Goodbye!\n"); +} + +/** + * @brief fill a destination string with the format "Name , Matriekelnummer: " + * + * @param dest string to store in, should be 100 bytes in size + * @param author student to take inforamtion from + */ +void generate_string(char * restrict dest, const Student *student) { + sprintf(dest, "Name: %s %s, Matrikelnummer: %7d\n", student->name, student->familyName, student->matriculationNumber); +} + +int main(int argc, char **argv) { + + const Student author = new_student(STUDENT_INFO); + + unsigned int offerCount; + unsigned int years; + double investmentAmount; + + char info[100]; // hopefully no one ever has a name longer than 100 chars + + generate_string(info, &author); + + // parse command line argument + if (argc > 1 && strcmp(argv[1], "--info") == 0) { + printf("%s", info); + + if (argc > 2 && strcmp(argv[2], "--export") == 0) { + export_to_disk(info); + // abort, were done + return 0; + } + } + + // run for ever. or until the user decides to kill it. + while (1) { + + // input data + years = read_ul(1, 50, "Enter investment duration in years [1; 50]: "); + investmentAmount = read_lf(100, 10000, "Enter investment amount in € [100; 10000]: "); + offerCount = read_ul(1, 3, "Enter offer count [1; 3]: "); + + // allocate table + double (*tab)[3] = calloc(years, sizeof(double[3])); + + // allocate array for all offer sums + // alternative dynamic stack allocation: double totalInterests[offerCount]; + // alternative static stack allocation: double totalInterests[50]; + double *totalInterests = calloc(offerCount, sizeof(double)); + + for (int i = 0; i < offerCount; i++) { + printf("\n--------------------------------------------------------------\n"); + + // call berechne_zinswachtum() + double totalInterest = calculate_interest_growth(tab, years, investmentAmount); + + // save this offers total interest for later + totalInterests[i] = totalInterest; + + output_table(tab, years); + + printf("\nTotal interest after 3 years: %.2lf€\n", totalInterest); + } + + // find and print best offer + + unsigned int bestOffer = find_index(totalInterests, offerCount); + + printf("\n--------------------------------------------------------------\n"); + printf("***Offer %d has the best total interest with %.2lf€ after %d years***\n\n", bestOffer + 1, totalInterests[bestOffer], years); + printf("\n--------------------------------------------------------------\n"); + + // free resources + free(totalInterests); + free(tab); + } + + return 0; +} \ No newline at end of file diff --git a/1191225_such_index.svg b/1191225_such_index.svg new file mode 100644 index 0000000..48139a5 --- /dev/null +++ b/1191225_such_index.svg @@ -0,0 +1,1359 @@ + + + + + + + + + + + + + + + + + Declare Variables: + row + year + + + + + + Declare Variables:... + + + + + + + + + + true + + + + true + + + + + + + + + + false + + + + false + + + + + + + + + row < rowCount + + + + row < rowCount + + + + + + + + + + + year = row + 1 + + + + year = row + 1 + + + + + + + + + + + row++ + + + + row++ + + + + + + + + + + + + + + + + + output_table + + + + + + output_table + + + + + + + + + + + + + print "\tinterest rate [%%] investment [€] annual interest [€]\n" + + + + + + + + + print "\tinterest rate [%%] investment [€] annual interest [€]\n" + + + + + + + + + + + Input: table, rowCount + + + + + Input: table, rowCount + + + + + + + + + + + Input: array, len + + + + Input: array, len + + + + + + + + + + + + Define Variables: + x = 0 + max = 0 + current = 0 + + + + + + Define Variables:max,current,x + + + + + + + + + + true + + + + true + + + + + + + + + + false + + + + false + + + + + + + + + x < len + + + + x < len + + + + + + + + + + true + + + + true + + + + + + + + + + false + + + + false + + + + + + + + + arr[x] > max + + + + arr[x] > max + + + + + + + + + + + current = x + + + + current = x + + + + + + + + + + + max = arr[x] + + + + max = arr[x] + + + + + + + + + + + + + + x++ + + + + x++ + + + + + + + + + + + return current + + + + return current + + + + + + + + + + + + + + + + find_index + + + + + + find_index + + + + + + + + + + + + print "year", year, "\t", table[row][0], "\t", table[row][1], "\t", table[row][2], "\n" + + + + print "year", year, "\t", table[row][0]"\t",table[row][1],"\t",table[row][2],"\n" + + + + + + diff --git a/README.md b/README.md index 2afd284..236b59c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,29 @@ -# Zinsrechner +## DHBW interest calculator -Interest calculator source code for the practical project of semester 1 \ No newline at end of file +Program desgin from school. Function and variable names were translated to english. + +### Compatability with non ANSI terminal emulators + +For the best experience at least an ANSI or UTF-8 compatible terminal is required for special characters such as the € symbol. +Please note that a true C-Compiler is required to compile the code. If you don't have one in order to compile with a C++ compiler you may need to remove the macro at the start +testing for a C++ compiler and the `restrict` keyword. +This program was testet with the following operating systems: + +#### Windows 11 Pro (x86\_64) + +Tested for Version 10.0.22621 with SDK version 10.0.22000 for Microsoft Visual Studio 17 with MSVC 19.34.31937. + +NOTE: Due to cross platform compatability no “safe(r)” functions like `scanf_s` nor any of the `WINAPI` were used. The code should still compile and run without errors or warnings.  + +#### Linux (x86\_64) + +Tested for Archlinux with vanilla Kernel 6.0.11-arch1-1 and gcc 12.2.0. + +### Compile & Run + +The code can be freely compiled with any C/C++ compiler like clang, icc, gcc, etc… +With the source provided is a  build file for cmake (since this is the default tool I use to compile and test).  + +Build with cmake: + +`cmake . && cmake --build .` \ No newline at end of file