From 03c3c0d353fafe280eaf4d43b3ac1d34b6e63c28 Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Tue, 29 Aug 2023 14:29:46 +0200 Subject: [PATCH] feat: added main function flowchart --- Thesis/Thesis.tex | 46 ++++++++++++++++++ Thesis/images/main.drawio | 82 +++++++++++++++++++++++++++++++++ Thesis/images/mainFunction.pdf | Bin 0 -> 30767 bytes 3 files changed, 128 insertions(+) create mode 100644 Thesis/images/main.drawio create mode 100644 Thesis/images/mainFunction.pdf diff --git a/Thesis/Thesis.tex b/Thesis/Thesis.tex index dce0d8f..c97d353 100644 --- a/Thesis/Thesis.tex +++ b/Thesis/Thesis.tex @@ -31,6 +31,14 @@ % tytul 2 poziomu 13 % tytul 3 poziomu 12 \usepackage{sectsty} +\usepackage{tikz} +\usetikzlibrary{shapes.geometric, arrows, positioning} +\tikzstyle{startstop} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30] +\tikzstyle{io} = [trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30] +\tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30] +\tikzstyle{decision} = [diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30] +\tikzstyle{arrow} = [thick,->,>=stealth] + \chapterfont{\fontsize{14}{14}\selectfont} @@ -1031,6 +1039,44 @@ The engine's architecture is segmented into modules: .2 CmakLists.txt\DTcomment{Holds instructions for how to build the engine}. } +\section{Main game loop} +\begin{figure}[htp] +\centering +\begin{tikzpicture}[node distance=2cm] +\useasboundingbox (-5,0) rectangle (5, -17); % Set a custom bounding box +\node (start) [startstop] {Enter main function}; +\node (pro1) [process, below of=start] {Initialize GLFW}; +\draw [arrow] (start) -- (pro1); + +\node (pro2) [process, below of=pro1] {Initialize window}; +\draw [arrow] (pro1) -- (pro2); +\node (pro3) [process, below of=pro2] {Load OpenGL}; +\draw [arrow] (pro2) -- (pro3); + +\node (pro4) [process, below of=pro3] {Initialize game}; +\draw [arrow] (pro3) -- (pro4); + +\node (pro5) [process, below of=pro4] {Main Loop}; +\draw [arrow] (pro4) -- (pro5); + +\node (dec1) [decision, below of=pro5] {Closed?}; +\draw [arrow] (pro5) -- (dec1); +% Arrow from 'Closed?' decision node to 'Main Loop' node +\draw [arrow] (dec1.east) -- ++(2,0) |- node[anchor=south] {no} (pro5); + +\node (pro6) [process, below of=dec1] {Free resources}; +\draw [arrow] (dec1) -- node[anchor=east] {yes} (pro6); + +\node (close) [startstop, below of=pro6] {Close}; +\draw [arrow] (pro6) -- (close); +\end{tikzpicture} +\caption{Main function logic} +\label{fig:main_function_logic} +\end{figure} + +\paragraph{GLFW initialization} +Very first operation of our engine is to initliaze GLFW context, window and openGL + \subsection{Dependency Management} There are several libraries: OpenGL, GLFW, stb\_image and freetype being integrated into engine, they are simply included at the top of any files that need them. diff --git a/Thesis/images/main.drawio b/Thesis/images/main.drawio new file mode 100644 index 0000000..e9e3869 --- /dev/null +++ b/Thesis/images/main.drawio @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Thesis/images/mainFunction.pdf b/Thesis/images/mainFunction.pdf new file mode 100644 index 0000000000000000000000000000000000000000..027a11396ede0827bbef0e0b885759cbc5d2aeaf GIT binary patch literal 30767 zcmV)PK()UmP((&8F)lX>C4qr~feH#SF(5D?Z(?c+JUj|7Ol59obZ9XkGc`CeI0`RD zX>4?5av(28Y+-a|L}g=dWMv93Ol59obZ8(lFf%ze3O+sxb98cLVQmU{ob0^`c$C%k zIDGDX-*@)qoqbJaCX<4-~aiZ-}n4xa?d^Y-t*q&+;h%7 z_r7-k2mr_kM1X0t$}5(C`0HW-GJv`5%?(pprr)~kUjXGT0Ja}@tXQy0{G(<#0QF*d zf5%1Z!jJ7ecr$3NtgT(V-_`rC?3 ze*q9~#Ju&(S9UCT^O=_`us`?={CdTL^{X_q_1m#5i0SYJ3s!WF`D*Sy00~D&zgo3& z?YeXc+>Yh7tbEm)&Q?1PT z+$LvF86U=Rgkh`n^56_osU1stlR(lqVi4ofU4MQD_ zhlwy5rok*Y8(LujEQY193ND0;;ZoSjYRphIBGp-0st%-D4r^4Z^n3r|+wm>Fecxx~ z{|n!zl`px4+(Pr{-NIwSW8wn-eNuCi_5t11%GYp#@-+oa0rS$+zt$<%De@z>_Z)?e z&s}G^&T=neU(aw~p1&$EKX_^I(!5}3ZFqWQR%BM;D)xx zoQKa1`3BXg=O4x=DzJ^=*jgC-umtJC-)b?8I=T{{S;gT3%vbt26ie!{7Ns9cv4tgA zwl>qNwR}7mAzZ{M&BzNDCSlG(Ea^lI52JNpEnI+Yt8JZyEnI^2Ux;;uvF?@JZge2t zf%qycTa#@ooE^b1s6;HDO;tlF?*|*@Dx?i#y9=-#R!0Y%pP@YyQ%g9vCt-VwILDN6 zFMUK%=Z586h*XO> z_rjR3&dFr#6XVWO{@ewezhn6Got&Z*^=={O_970$nI5UMVV=L1%LcQ<>#~xjj)Rr2 z!(K4^yB4_s(jM?(@JkPYPmH7dLi$4tAF+6FY5F5p&SHwIBn)H%z&3b{EQQBV|DPmB z@u}^w8~WjQ;6cr}2QG&nqxNY~r+x?5;|$G2&1irh6JNR?%HdwrkbB`pq&*w1ggxLU z-t@Jn<#-}!-1QnpnO~)SJM9xZIh_>UPcs0)USvZnaq$}N$zBzqs`T_Vk>=u5P zJ_$zfzL6&E)9ViELjP^hG*dbiIU&Y zm6A!Skdo4+=~r-l9S(D_w-4cyACS-KmH53%ct)I%9*4GMBm9tY8-5G#5I-p=(?~NN zLRZqC32V@2DaB`p}M?1w+&_aMAWBw{2M{Dw({%psTI_eydTxsPlk50idu6d~>C=e3D2%%PJ6;@)eHVK>YyF++K^o#q&H1fGZ zx?S2LZId3Ao|KMiOxhplK=;Cl`%jjfe0vZEuN%C5uy?RO{SJCRK9s2-gwXSwf!eYF zE&qD-@qUhS{xUHk@BE~Mj3s9wXXcY-WHnijoV8FL#dd(O* zhD?Q{VjOw>4BbMH(=oyn(nMy#GCEwTP2&_F!KhYz3XX_R;Mo3vHLus0$d&XnjR|@Q z_hra$g<)bscplym4ic?+FZ@L`5Dz&*9}=dc6#PmYE44sGxCeeItR`2$4%!G{_*!=( z%JEc!>pILP732#c4Fa8tQdBLxhim!y^iOaE_4qpY30WjAhMS?1Tn-wsSjITngG7oLqPSox_Xb0+rDVXC$$vF$< zVh&n}yYPDl+6fUQXesLW*=WW70R5WTbO07h7J^m>y^!YzXTsd{gK%ehFa zY)W5_HEx6V;TG6NHV$5f7Cj#|=WTM9G=c7yCZx+~H~ll6MQ=ZSev#WT;)PG}`%6rW zMW4P~d>y^-y7Z0dS5dl)(Zb$|E6JH~7)SXxY+;hH4=M+z(w_7L0oPyYAk0WVlnxOC zEJ-iN75oYKxmJP&+62yVioAs5y$m|(%=9{;b8sp0;TGfq+Z$bo_UC$WwRpAoCESQQ ze>>Wnt*AGTpyn{$XCJnAY&RNo-`JOY`=jBGnMR{yTM>;;tK(^u3(#dLG#ZVlVdYeZ zD2N(CgXN$x8TJ3MepZ(rbXw-nfmW}_CwR?9UZPNFv|2&S$_1lVs|AszkWMn24cvMB z&-Lqd2425WZ{TUb1x}x((0;Rik=L)aT8;m)ex zzZp@GSPE;_$yU>Ute@3l0#+|RuQwY_yuIA|k$ZYQcY;~{$UwDzt<7d;Yud6b3LDjT$4XUz8CA zjX`2AEa+V>8UFq51b8i0u$W~=XtG&k-X5TWS+W#HqY3MmSp7y53KnY(`=R%G?2r|+ z@A;THFJ!BO)o*s#9GGTpcsNujOct}&!s^#JEoKYoOqjA^!-1d^vTE`@AI1+S*ljLG zX!SVQrXPES3!gnpVX<1ZoPQd()ru2u(OHpyV9v{T|Ht}e&I^a#!v-pQTpnP&2Q*@i zEQM8;buug0`ea!KgB4TQ4@)@gg{+u;&&SSr;d1&Ip*`U7@%Gf?3sAUcvl(o>{(#+v zf+g$i_zYMh1-}2PelNJ4ex-h|AJaH$G@hsGx7lq5yIQ{;j5eiyITjBp%J^?Std;=y zJbA2sS16E&X*Py9tAT%<;BYw&E?$4g<#K_^j;R3lrlcecSuy^e533~~g8m32^hEO` zz~&a9ghPeGS0xwW^Ih)P@yP@#T+r#zO^P6i-EfUQ{~9UrlwJl731&u zlyF{D3?0n~OU@WM8W`^ZnqYXAB3@GBDq$AKR##F|0=_t=MqtCUW{ric7=O zS69|E!l8||^_Z^4Fbi8%DN2S8^$um4XrDNA=uiljc!uJZ7>ehe)2ImGzxh;hUYs#% z5+kf^8aD~kXJ9yoLxo~!Wo4iW^$eU-Dl01?G}K>-n@=cP)X@Z4HTj+oau6oL_%o(5 z!cns(O~v$h3?0hx6sM>dH7c)~Sq=B>QKLpdq#`&9CISpkp0jb?+BK_Jt-N5x^7EH1 zU9$MR&V_9)XE)E8J#A`zvTp1dwPQxtjH(_{Rar57SozSh(nQIS;-Yx0Fj^1^hw}4+ z0l&}dal4!jyG^!Q%qF8juhVKIQJ@4$8>182!>M?CN{mM*O)6vQ=mN}Gkdx7#3S-uU z(`i!Sc1{*Poid4(=Y4}RsZb`fltd2KLTy=TxG@?|z1R>950JStS`fdfA=(;F9pU&C zj&J6;8SzL29|$*kmo$V^q&?i2nsCvQ?#A{8tggps7#|(qX(%g&9)l54BVs8}bX5=W zj3peQp2pEV6m(|nRLUQ1XiWK{4Xg(#A=bEHQEK{(md1uaB+^<|nj+&nq6Oo!Hle+H0ycdkGO=k^7+a$o zTU%0OBQ_akBVnUb#@88bWI652!YO@pTy#nIvUZ#re|HLIUJ~i``;)uVhrr($?w;Ke zjil-V(bfeG!5$}c&%C71mkj$(FDWbSk!=cNdo0!rVlw99bxQAOBBa6ih<5i(A_Z#$?(%k@Tt@yoROs|{rL87c{Iys&!?oA91VB>3s3^0 zM?O70XF(=M6O;c13}teX6*VkZ@l+y_Dk)(iq8*QOihUf*(<91CFB+iH=qfpk5wZ`a zBX1Y9jxI;`M~7ESwrTchDW!Z=wk(6C9OGMr z0L@@DAn;NY%6VC0mS{1h#2Ef*xKJ+|(CSbsc@7CrNXhM!6xeErME=W%2GU2_Q#?BL zSf-n)(TUU3V@^w-);&|VfE^a&v}yL-?ry_rWhiP&gOf86N<7SNiG;_eU=C_#4F3kw z`$n+ zPtqs5S2eb)f-{ibb3-6C;l@_v)ey1N(kfDprGl7Sw=k?Qd`w5FydTBE6j ziD)F+(urf~84ae$?Dp}9Q5e?~CD+a9Ns{Yk&28C@&P4dS*)6@4(DCi#T6+qytYtU) z5J{d(SuV?Di7-n*6G7JWQXQuc>`nr7@lugz@N~xj0iLH*^9XbdP$f@R8jACVlDLWP z7!Z|`q)IJfo=(Z@QmBhF)H*DYS;-#26$f~s^6A0E?3SdVIypKyCOMYYQRE2A>cyNr zNIQl=-&j&d0zFvgOrAYJx_ZVW1G{-mGc%N3NXhcLvU%8ZMwU|%wx$HsbzuG^43I_ zWC0svc}^V*@G-{a zOiQT?5~o#(Hi4jt!iv~%QeD%-?XBT{{$GCL4XNf?LEL-#4VfZ2`d%6O)u@yBRE z_bhxC*t7*wTC`{9E$ECgq2u+u9Sz30t?lJ6zL^ z3g0HPs{$R(?P%9<`!XTSr+PsEQ^OWB)do)bXEmi5fuSZ@?c*_RgJ4ml(wgc97ngoKh_ zO*n&aB=~&K63|C>;i{U6QNeZ6cTPv~ep57aH)VFMT z1y3$elJnYlvhVCxC7v=vi5n&>WTO?b;Z;iZ&~Zv!RI0@GSVb3$4d#k{^=`q9gLGrZ zS0N z?Apt{)io8nIg%*PAfZ?W@dPr6-CZ$2U+VpG2uf5OXBs8yaiIXlLZwj98yk+|=k2Xs z8XBPQ^@S6mt@Xp`E0Ds#&c$EBmS2G|hUpmEF|5L%LF_feUV|3 zrq5w`0mExB3_}vbbPPIrpck7Np!<8{<3jar`UmYzJpMh# z`4~S(pXtpHLA?>n0iTgEmN72Ja*6(?uh1S!*W2h`Z>x4v?}JKIZX*aGws6%RF-gh8P3!x$_ZYAUO$Y<3DPx_blpd~I!V`+q-z7|swG|L zlCA{l3X-mT(v>7#kCRcziY}7uKP_34^pdXUNY`VeYc1)Dldc%)DkNQDQk@*2k>1Ib zJZj`oUp-SgjL#U0*2hXC$k7POd<1R6UWEHGq#Y$A4 zr|`k2a2lS1gBV1dpr=rbp2A9=!V0Vi>oCm6un)s$7}6LtNL_#(zlB39!g36C80KTR z3d3g@G`u^XVW6-w)5Yz)W31EVnT}7xAkwGs%iaPCN;OX1eL-Ongi4muR}l9li0#L-j856UY})@<D`zJ}n!P;xESxieH3JU3LUP>o>E>6vj8h(#aBQhv*T&4`N`-05$5gmmyA>|O7Xw$55q$#zp1DY0wQ^#jT2Z#YT zeo}NC!Ic%7W{*paN;C~<(=$`miKdix`Z+B+EA~H4_@X1GHyg;?&1`8lE>Ub$ipSmfjJMJd!uAHC4g! zbQ}za@@Y(r~n(*SAabPy(gM>-UpzjHbr zuF{MS!n%Bg?koNUqP4T+dq)$SInj zLSsIp(wGk+P2#`(bdF0TNZ**&j(O}Dt3BG-iJ?7p!$nKH%p(u?bhKv9x8m&!JC?8* zebUxwXG5wZ+7Rv;Gw(Z!=dt23(S{zF*EqYSXI`?ip?6GjOk;FGLu=o}=~dOIwRL^A zt*YtYQQ34>Sruz*V)b_vSF_@YtgUL+RyAvDVsavH3%ICHZ|Tv&xYqIWl(>%?4Jfwl z=*N$9%d5t686FeyUK!YfuFEzsCR$Ub=(v;_11l=4FRN!os9LPZ!p3vG(P|O_7G6f+^$nt7go?f3J{Pz4`n2EF0PcIHrM4?0$CtytTN16)fIWUX39rrU`GC~070R>QgrGgyWf>oT$O zBtEiMWl8qKn3c$KY#pzbvokTTrQRZp6w092iOrh!GX|)@M~~`6QKuO2)ziu0v~t~_k$1d0QeCG zIn09q!h8s(zeI1E!7$_@jG(XlB@{pyVHDvP?ByH67!)9kBm5kSAd0XU3K0&0IKmPR z6Ht^s4y90xu#Cf@P=c@=5(tMu8N%TR|Ap)uim(#O5mv#l^f4I0;Yb*cuo@~6j)JQ6 zKcR-h(J%tx7!GS;B*HVG8sS(Ng|H54(*J-Yj7C@wV-SvmT7=^f{v8_N41|p^7U2Y_ zOCN=akVH5M>Jd(caR|@kunEQ^JPR5SPJs#O&tNKt(_kXP=`ac5449n$8_eWz7MzK2 zHZ-M=z#N!@u$jZNVJgBFn3nz&T46fExd@NIIWPn9c`yrM8_Y&{E{F4BPWrFV4$TM` zz}W~FBK!n8pcUaFn2WFz&Ovw{%u9a^i#c2ZZ3vgbx#^E!8MGsQK8MR;0m2oq5c4m9 z4umT?Tm_5LAHr(rM7RbPBV5bjI#`na04{{32rq(V2rowXKCFlH5nci-5MBxwAiRvj z%V8zLD_|AED`9o|FkHo97pz6N0oEb>0bH17ce5@+cnyae;o|hWa4oDyxCt&ncpY4d z@Oro`{SI`)-huES+zHnsybHS1Z^PYi1HyaYMub1*@Mmx{!YyzM!mY3w;k^jo zg8Sfy2=9km5k3GvLils|ar#Yo5N=EV1s;Oi5pIK@Abgm^N8k>GkHVb@e*t$Re2l|i z!aWGL!%q>W;AaSX5WWGuumxcsY(>})_oe>~JK+BGpI|44yWjzY1MqW%yWv5EdpLX? zwjq219!|dwzk){){+h$R@F>E4@C$^$fyWR&3BN@66l_nw22Vo@;cuZQ{VF`e;j_?- z@ORLceg%FH{Rp3f9SEO?od{omT?k)<0fc{m-3a${cmVbw{3ASp@Fn>D5vJjNg#T;P|L@!MzyA-n>3{vNZTiRGW79wWmQDZYdu;lL z-?Hf+{1-O;aMq@;InAcO_dPcKJ#N$A`<6|Am)rDrb8Py%+@`_S-F$9_FO7eF*gFQWx7fM2FICR&o^ zH~Mb~(98Xo2k1h7XMmn>T414bO|va@q@}?^13sNr1i8p&1M?6k$%g^DJsFJ@L~28Z zP;Eg$xHb~Whja5UFr4dIRw$nvwh`O1=-G2w|Jsho$B!I4BG<}CYUPtqhwyl9-4T0D z`C*%YRW5z4R0m!5mnVA ztH;t2Rq<$nMq4y;WMzfua%!{|suf05y2zhMzI%A#A;I*X`y}Dl+j}nKVLX{>6XoRx?g z+0j9lkiHCJWXHt^pW}S)kS?9~|nCDHPxFiy7Q;sAOh#p7e*b$tTx+BVTU{Tv@XiFr> znn2RP{{0QBESto@fKbuDT-2K!i1aQu34CS}IE|I+)Oa*vw4e}Y#$JeX;?c(03{jWU z?yjsDDfT~k#^6)$9~pf8?(Jm!lW&sJF?%bY{L#bj&0F!owfDbE>G03K{tda{rT594 zo@!kJ-1*h~$6v#3|Oq*uA5&v41otPc}@-9eTqo7&_3R%-?^n>q4TzsZzA^!jWL zmxH58gV~H&n`z8B8J_Y_8>%8kwVbub4kx%)vVg2Y1wh>l^hmk^p>oG^Ng|*}tbaM^ zh=@q@(@I;!70HDA#KIFl6A~w06|Rx?JT_SOi$U{aj5phmHye>RdU%=h zrhxP27A?uL2U&AZn1+p%`i=h&`H?hohL|$SF!(KQ7{<)|UTz$Qx(p-QPUFNb&WUfZ z!2V4RY!lu(@jgwRoX$o+`mvMeVNX|}w(dr4jgg1=*!=-#z(w1O$hkTPu?vOhf7(4X z2Kkh$lZ*A15RE6_B1G~vdP3qwvBG*8eQETZNfLdqLiGL6m(JkFG2hHJs4y%D$it#` zDxiWM=A1#~ADlCYyul>}kz+{ zjd{&^5pY`_5hQjx!dgrfNU;bB8a)x>v?0jXMJR0nnm z$-=^jg#edgLM)mH8iifUHF~?lVexPSVc`a%qP$X(W!7o`i_A)lh}llF6K;=oC`Ch| z(Q43Ch-fORZNgb}#Vvyew*F~wOMf4k{+BI;+#25=S-5lM#wRb1jM_x#53f8rme&1( zoIJE>WnHLS5_%; z*)Sz89-_q2m=fpZE3wzl<7A0ht_n+=rR@^R9$MmC(9cYPSdQD3>FD?z1<4-9%*`Nh zawAt#Z$^1PRh9Q|s`4IB%3OKFTzT&kUu$LSb4E|c&ui)J0z%qaSFfo(*{04oIu&(% zQBXgDK2%hup>L6rokMLjH;^V5(`9d{18fJ8|L#gFzB7e}Pm|kXPKv2yr?|LHB_lWEEC+SPr|9^5z zdIx~UiX)H(MN)JnMrE=oBD>lA_E2_HcQ@|7k1Li?XEEEj+9Q_{!Fl*wvY25eJ1dr~ zCP5E`>hwkn==9WJ)UfdxWi}=wj%g>OGRioZ5Bf7B|3V%431#HvIGPtZz`5ABPd;#9 zpUv*6NhFkcfk2OjUuzC&`NV2C6gU()lsMF(u}Vf6M!EGy=zcSq~Un zb&SCwhQ%df3LETIRt_Xw`-uhDTV$qz4V=}+5njpTv>EIm)8?c(vrK5z>EhJ_VPiQ~ zjs_0rr>?eE8BAM_lqs)J1Iep^T6Inu(1{nBt~LD*S!tSVnrsz@h%s}irA0VLyvV%X zvdOG7Qb|{19%-3In}h~!Qa8ms&SJQO-YML!y(=?OrlOnqB@h=JWSFd zsx!^B&Ll}fsZOUi7*T;N7MaacyS>X!?R)4pROR8lQdl=YhVL-x4Tg-^8Vp>Jllo>u zIBB}dNQ`@M*cM_$S~`G{l|a1#myc5>}rOvb(Kuy0ouGPEVWBr5^68q)@K`o z>gbb?wH<4#^`2w`e8lgQk6_B5lRVtUczV-NFN=l`gQk>m zR#Pf}#@v=)feDS04)<|1{o1HeqgqK*%7kUbGv=n~_*8QGTohC0y=F4o~Au9bqW0z4f>T-RpjQ52GopsraUH zh5L3+sL>@W6ttp7Ti~l<+mxL?L@N}O zMv4+7N9z?qG6^~$S`;RcDh9i*4jqUZ#cC5Y+$cczJS)&W&z=}Wso5Z2g%Z>Cbr-uI zjUM4!(kozr0GZ9#p(ekTIAy0Z;0XjoQ5Ky>k1-%V?Ad8~#v*t;-T)2fC2i9j(>zIk zi`1e&Tb^T^@0jbE?``&<9k{`BCzXBqf?&@#>RqR~imn_XajCB2&SqCUjK24;)5o%f zT9idLy;^lKM&u}8%@Fy7+fPJ}ar3BU6V8pY*58#!@~rBTX;nqYn)M*9aV9ysOg>~> zNk=nia_p`z*m24uS9g7FSz+NB+?`}waoqUf?k~_|wDawrQ7`zoHz#DadpH9Q86p*; z-Q}d*i>sEQvI1;X6gPX&L9QbspC=O@?H}B^cmLp?ZNDRVum6PvF8TO}e;9n7K1WuN zpFTPG^EVF;Zr$-aGWXYmpAYUQRV2_yj6WKDAICB;{h|0*^yh~O^=$6yZBUf{f}Lk` zKE`wKn2Pr|d*uv^d@ABcq&~#y%xELjc`)VR#vDADg9lU`eG_knvs6Whf+UNZJA@8# zt*}lMV?`r`n&5b0vi7XJ#!y4ygrZqOt9D-A*~Qm8EK#;WU^8E+A~6+-t4NWGM7ho@ z#0nBqk+_N!F)wZc!-~!ELRu&k#YS4Iq7AXe^10#W=$zPc<1+L4mh+sQ-b;*^nlH6p zAzxUyHg>JhZM@#xZM{j}Sa@~pR`c!F+gI zi>hb*pe2ESGJ4pD892r`W%Dr3)euBmap`VbeahV?xe0C}1G`9olm*;n5_f6KjP88C zZFURl$pLP)%9)~8=TqEGjT})GFNzly#p5HY*kPI5ojI9tIX!OC<95588Vzc4eBLhe z{NG)%@{w87=ZzU$K4az_V5_|H4Z>+%IR zojq=CL*wG8XF;O+{?3)ZS+w+p4VD{j-f+&e%F6SL$LzT1!u@O4ea!r7AAt5ET*1Bc zbEef#fK|1ks9R{?GW#e?`m5~hS(TSroI*H_LY-5qYGC`DMNM`$p=zu;gQ7a8f{I{! zs%@}f6{ex1lVPH5vVEer1{SDY&$N1R;pu5V4boAdbn!U)C7|Gf{321Myu0F29#gD*_p8UB1ifbh*5ClU|?ivLkA@nXJ~ZY;(%8&8|1; zye`RVlTAReOOoJ~tyaBWr=!>>ubus~B|5*y7^oAqf(hu`|q0DSf^H zazoEHMJfEgDJRjHJ?ZzI^iFN;Z1@1366V0xWnEbuA;Iz4)PTOqlw8O5^a!*%&9yCc92zQ%0yur?|g$%mGGSjF3tPcYiA#c8naA=mN)!G+IJ_Hh9^y2Mhh9 z48-%vOVgskvJajbyx{S{=Zmx+=iu+9JtyjZa@$`Eg||=o2S5Gi4gJC|(bH+WG2A)v z>-*VVcl3=Xpk|q9JNJ!^l3CfYnh?o3o-pSePh?h2qb8#eCQVkqNR9@AilY*t>sjx} zxH2cQ8mPj9@WUHI_^m$_uNexxBcDBaRv46G+UmGw4)9rjw=rNv9=@fNhSJ# z9f{(0?ik+&qwH@Qnn>ubke`;AjB{+01*KU=(3J9^Tn10cWxvj(H;H@DS_$c6WE9)m zvE_rX!Rqr>;JKOL`N5USiasua`6|HySD115?HGW~Yo?gl(i! z*}|a*PRE>l{!ckW>>NL%B6_C za`7?jLEj_AJAIEAKkeIJ{F3XfVqJrqG;Ydz&*D)IxSF&{$-s2nxm_3*-fWUQO;f!WTIjdO}g= zq!C?yE_Sg+Ij>^H(k1uB^RAvV z;n9s#H%xU}%>Kfd;exU=T335l-_Vp?aOTkUN59^9#whYuaZoOvQa-8uoM~rV%)Gbh z>5qgXsK7(k(V9=?@87g8`5m`lSh~yleCaWx0S&5a2^K@7R0*LmYQR@wg zMq+VkbxgFhd}g&KzC)JT%xd{8y!gs9e7hk(-B!WE@L_@EM7@cGg5w?IJ+mCMJnfEl z&)xKH;V$z7@&kU8&g?TRqf3Ql(uJl~<}UMtrXBj7h8-r8+jOnzJt|lV=37@5w}VO89Htwf-jms?g?;b|@`0 z4|R{GBg{>-(LBL9Ie50A*}T~NzUD*sSLB#QCN9BZl&ugzxv_!4g~r^A0&(j6!mAqc z{$_6_fyYnzPY|8qqXRvH3*`$P839d-1q{Xjmph}@3jF0yU8TK- zA7w>GFq4ZmSCKZf#Dt5Qa<@bn)%o;QuU@$9m8;utFYh}U{>6nC{e0VH>+ikxXE%O* z{}v*2�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 literal 0 HcmV?d00001