From 8e0428e91eb486893155c84477e9465aee3ed0ef Mon Sep 17 00:00:00 2001 From: Giorgi Kesidis Date: Mon, 15 Dec 2025 23:48:33 +0100 Subject: [PATCH] alles zusammengefuegt --- bintree.c | 100 ++++++++++++++++++++++++++++-- bintree.o | Bin 0 -> 5658 bytes doble.exe | Bin 0 -> 74295 bytes doble_initial.exe | Bin 0 -> 66659 bytes highscore.o | Bin 0 -> 3871 bytes highscores.txt | 3 +- main.o | Bin 0 -> 2616 bytes makefile | 34 ++++++++-- numbers.c | 96 ++++++++++++++++++++++++++-- numbers.o | Bin 0 -> 5854 bytes stack.c | 29 +++++++++ stack.h | 5 ++ stack.o | Bin 0 -> 3979 bytes test_numbers.c | 72 +++++++++++++++++++++ test_numbers.exe | Bin 0 -> 109306 bytes test_stack.c | 155 ++++++++++++++++++++++++++++++++++++++++++++++ test_stack.exe | Bin 0 -> 100913 bytes test_tree.c | 118 +++++++++++++++++++++++++++++++++++ test_tree.exe | Bin 0 -> 105293 bytes timer.o | Bin 0 -> 1167 bytes 20 files changed, 598 insertions(+), 14 deletions(-) create mode 100644 bintree.o create mode 100644 doble.exe create mode 100644 doble_initial.exe create mode 100644 highscore.o create mode 100644 main.o create mode 100644 numbers.o create mode 100644 stack.o create mode 100644 test_numbers.c create mode 100644 test_numbers.exe create mode 100644 test_stack.c create mode 100644 test_stack.exe create mode 100644 test_tree.c create mode 100644 test_tree.exe create mode 100644 timer.o diff --git a/bintree.c b/bintree.c index 5cf82a9..9761ea8 100644 --- a/bintree.c +++ b/bintree.c @@ -1,36 +1,128 @@ #include #include "stack.h" #include "bintree.h" +#include -//TODO: binären Suchbaum implementieren +// TODO: binären Suchbaum implementieren /* * `addToTree`: fügt ein neues Element in den Baum ein (rekursiv), - * `clearTree`: gibt den gesamten Baum frei (rekursiv), - * `treeSize`: zählt die Knoten im Baum (rekursiv), - * `nextTreeData`: Traversierung mit Hilfe des zuvor implementierten Stacks. */ + * `clearTree`: gibt den gesamten Baum frei (rekursiv), + * `treeSize`: zählt die Knoten im Baum (rekursiv), + * `nextTreeData`: Traversierung mit Hilfe des zuvor implementierten Stacks. */ // Adds a copy of data's pointer destination to the tree using compareFct for ordering. Accepts duplicates // if isDuplicate is NULL, otherwise ignores duplicates and sets isDuplicate to 1 (or to 0 if a new entry is added). TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFctType compareFct, int *isDuplicate) { + if (isDuplicate) + *isDuplicate = 0; + if (root == NULL) + { + TreeNode *newNode = (TreeNode *)malloc(sizeof(TreeNode)); + if (!newNode) + { + return NULL; + } + newNode->data = malloc(dataSize); + if (!newNode->data) + { + free(newNode); + return NULL; + } + + memcpy(newNode->data, data, dataSize); + newNode->left = NULL; + newNode->right = NULL; + return newNode; + } + + int cmp = compareFct(data, root->data); + + if (cmp < 0) + { + root->left = addToTree(root->left, data, dataSize, compareFct, isDuplicate); + } + else if (cmp > 0) + { + root->right = addToTree(root->right, data, dataSize, compareFct, isDuplicate); + } + else + { + + if (isDuplicate) + { + *isDuplicate = 1; // ignorieren + return root; + } + else + { + // Duplikate erlaubt -> nach rechts + root->right = addToTree(root->right, data, dataSize, compareFct, NULL); + } + } + return root; } // Iterates over the tree given by root. Follows the usage of strtok. If tree is NULL, the next entry of the last tree given is returned in ordering direction. // Use your implementation of a stack to organize the iterator. Push the root node and all left nodes first. On returning the next element, // push the top node and push all its left nodes. +static StackNode *iterator = NULL; void *nextTreeData(TreeNode *root) { + if (root != NULL) + { + clearStack(iterator); + iterator = NULL; + // Root + alle linken Nachfolger pushen + TreeNode *current = root; + while (current != NULL) + { + iterator = push(iterator, current); + current = current->left; + } + } + + // Wenn Stack leer -> fertig + if (iterator == NULL) + { + return NULL; + } + + + // Top-Node holen + TreeNode *node = (TreeNode *)top(iterator); + iterator = pop(iterator); + + // rechten Teilbaum + linke Kette pushen + TreeNode *right = node->right; + while (right != NULL) + { + iterator = push(iterator, right); + right = right->left; + } + + return node->data; } // Releases all memory resources (including data copies). void clearTree(TreeNode *root) { + if (root != NULL) + { + clearTree(root->left); + clearTree(root->right); + free(root->data); + free(root); + } } // Returns the number of entries in the tree given by root. unsigned int treeSize(const TreeNode *root) { + if (root == NULL) + return 0; + return 1 + treeSize(root->left) + treeSize(root->right); } \ No newline at end of file diff --git a/bintree.o b/bintree.o new file mode 100644 index 0000000000000000000000000000000000000000..861d2b295541b1c5599a6db455e5d54647d76fb9 GIT binary patch literal 5658 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 literal 0 HcmV?d00001 diff --git a/doble.exe b/doble.exe new file mode 100644 index 0000000000000000000000000000000000000000..85ea1934c2dff9f16f3a996e025e31374fb56512 GIT binary patch literal 74295 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 bn+))(OuVAqY?>#%f6>qX#NM8|xnKDPp5DVz literal 0 HcmV?d00001 diff --git a/doble_initial.exe b/doble_initial.exe new file mode 100644 index 0000000000000000000000000000000000000000..3db2f66d69514a511ead6d67d2a0cfd643ba8889 GIT binary patch literal 66659 zcmeHw3w&Hvo&TA2hsIdbik3h;03gJGt~iNi2~N}DWNctXR3N5jqQHlfbXtki zbT~m_MMU6n9h*={23?QSbT|pGOW+leEh0Dx4+Z7}m(CSCVljdZ!1An{a`vN}OU z+}3@-nS-;^it8kL@pewHkc#?olD?#m>2Pv=gYBKovTY8bknqqJ=EKR@hAYbigp(LR zp70t3O#OEfUgKDV{cv+mh~{r>=*C)0=wqdzPi81@wW{MRQ zh@)Wt^(ar}9T+Is-v{(#xp#IlMo#HI@Y{m@z32{}RPJXn8W5`k1MxZT(t)R_la!tq z9ZcW9lre8A_k*aDn%jo|-XstgZbmL$l|#U*kv(vtVE=DXC$(@HUA<7S|6-!s^URi; zKIp&MwcT~I>w_-;(_GJQ5${u5M@L5sEPcp$zj_()f|pQHZVie`PaNZV;IbB%`bC}j;(oAb-B(_{Epe@<*|*-~7~EG* zLto;`f^YbWTKBy<8y1=cVJVxHxS;1SHOai)g_WthMz|5&Q11RCec*Bew32ggKxeN^ z!FmG)2mFxzNiP4NmqNI^@DFm|0{W?QlZEMsxOS=QgNS9QcGv4540F0py>h&&hc$!amj{Gb;{RByRV8E07PJEmDz%Sru zaiA1@>>fz!`Zj5J`jS@OUe~7@Mn|fX!|4iCsp{S2s9yJWJXDoDc74h_I+Csi6K`+C z;Z6Q79Z*D%T%WA`^GM>EC-XrlUH4vCyAL9*Pd@_e6f&ot|MTdmpkF%R`RnXcA^rME zv<*vt7Ko=FfFoSrTlq_}@wZ?*&oLBn6Mc@ZlFJ7WuhSm}YI+_59)Q_{bdODpP%F)G9sUhD+an5p9sS2&XX#v)8ogxu(}#W4Fr8SSe&jZ;5^9tdT!UU;%h(}HZI~W0b4KrD+G%{Xjzp! z30D7n6{&nQ9R(|hM%7N0;XjJL$&1{>f`BvMlXRy&$J|3e0qV;lq3({*3iN)Cek6Sm zK9F>e^xQs@wL87<_7RG-dwvQd!LZ3J;^rPoHI9Jl5ZU?|(9^#F4oLJ$5{;b1$@H%Q zZuJ!0F@QRQraJ!sGD-K#Dfh{%-7hEHDEWOsp?eS{)2`%TYeDgGqP#wju%1gbKBr0t z^-{9(b&}ipaL&^grW%PJ5O@oGSeCu@9tf6#4M1-w2gbh%L>1uh3;=4;J!P9xi}pOz zcGJze+ewdrdsX9vOTg98#=uLtizqXKI_umcu^ETS@~0Q@mZnSUZl`nk`UW%$b?5RC zDWY`D%}syIO>vQ(zU`QMm`EIRzsj#Y>Elof4^)Ii~J(oW>Iy9y*!qJTe$i+emBj9(z3+=_z4`Bk7}%iOhh` zJi_8vK1pUwAAnat#W0doW1-S`8@$$ZnWu~~R&0Ux6Xfn@{ zp)4|DgWx_4ykV4nQI_gja^}NTN$&5zCUH+=sAhwC2|?CfDH8>eJO^l7pN@ zua7)&7z2EY8w&AAHz1(LQ*7PQ#03K1FgC|0FYW$|4_f*L$dk;yxmEaxX81_D6eX<%uMPaZ;PQb~?$yA+)d^f3|9!#sBk0L<&&QhM z_XQtB{v5bxZV^xp4BRp2Sne$3=r}zWXt^V62n{II`>he$Y3`3`T?%nUNYhBuDbE7Z zBIR3^OA zzaU<{3%`!lAW4@C>GaM}u>W~roqB*!dk-{`xA!jWm6-Ql#4(2vW^d)7qoU`0SisZV zq2tX+(k#9mY|<{iw&r1hSVhUiM_`;m(%U6G{66$BPipR(7GjB#W0;|VJ?2hxFGZ2- zFlHkV@M!uoG@c}L=Mo}~8$!M+gux)kIFepTg3#R1sk$kcE(Ea8v+o&FUvE_(ISb5O zT|~{AYSbWY5k{r(K>EWpPLYs9;8G}sd<`8BLVltd45-8;z|I1{upMD$Wus2)u527m)L zEGbVl4k9TL3FZ`yV2YumI(Y=D^I`LglE5>3VKN4XZi(=DAgH0s5AjD*PV~CQ5t?(m zo?HO6sIe%8!Y#5=cs#0?ON4452tO0H#b|-ispt0BXa3a;xY`Iy+($!F7e;6qiJUwV z2rr*2sa$e_v^sarT`=Bv0>XHo6VsOwB{|KlMtHp7^BGJ&PC#sQgJ)KW3X61sT4dEs zfxZP2upc=buvbW4YzHq=OJO1XlBmljavsl5eHoBNPy0R>A%r zz(`Pi=1*BChIa*a7VdfFi{Ws!y?qJcqA%7pZ)z8beNFp&W#E z0RJ=vP@o@4-%YjU*vet%u~66^QhU*_yvgcfur6eY6`%&y1^bJrcP1&|-ClwLkRlF> zO2iuG)KPH>u>b`fn(4wBM^)6m<4Pc-)S2&1RTrZebZHV+jj4!tiAEAec=yLRn%t0o zIzgd+uc}lyZl$Y@N`#w;1U*(kYkSC0=$LG;8r<)B6TFK3Ag&)2gw1*w7I`QmYS1FJGk+4 zf5<_(gOmXJO(DiGSP!%Kb*S@%ED7?G+($S*4XQL)LDZgbw6T)6M+*IcSg&m*~oq0U2I_7Jl<%yX{z4*-*>CnIr zLevLHJv$MuG#3D?O`=CSkaGwLV7fe#F|#tXH0HgK9+hW{%I0=479PA^P75JGbFYw> zIwtz;DZXT#*dEBKH2DePtWOm&$>S({)nxB zJ4i+lyXk|c{`ED!pHVts*+68Ky-r8+$n`zzk7A2%ATfOUA!|AM!%Z~1jOSrDq7p+^ z?!V!h`uM2;i1(EaST*i>Gdn)}zzgviQvOr_gjJAsMNcf56$cT5dSHc!;{K}sp46%W6#rE-`~oLYF~wGeT|iS zt4&@mPglXR_!4KqvfGyUDhrlXE@|pnmsjxD-v|2?47~8}6%e2~=T0mVMu!Z!BA9!4 zQn%#)zOtaurD6KHm*$|i6pF2<&!2y6J;Y_mTcrAfSHI;JXfdPk+R?o{8&IF*F9XKk!3z z-E3T!(sey~Lhr>rl;1=RCl9WFIc@iC@g%>;MfYL~(&WYP&_ zGm_;x>;$^lHb`Mmtt_Y<@T4$X^kiSW6zEmSmpsWE(822qM;G1)7U<$nj4s?p%zEcO zjn>6{J&xg!+OPDDQ;Vso(C@bJ@?9uT-H744vZyFsLxX1T+_iwg-0ACZ*=Oopkf%}I z5Dd)z)VdIc?IC8pieg_SVU4o(E z^yPD?RhHgMEuXsh0ZNuVb1b(4)#xDCK`hU`8rR5pNLP>5Wm;A0-Nvfe-77|#O%zAbJh#OKl^qdNH~ zPs)=&`oo@Q;hawwU%mQKAl>%DDcX+a@iH|Zd(j8}16cESbD(;Ds$#_JcrAN|C;2D1O}fS`E@0{V$@$SXgQuFwSiN)O z%OHZB&!@lrCSVAU8VXV35z(hd3flpOb05RV#`6c;SRQWJwk$_mH;Jjzm zHRxa6iSO~PT#ov5-y0ip(Cc?X%F}5c?*>GHivQQ3V+_QR$tWid|xJ~UF{g~L$ zf5b9eIhmLbrgFW4{r3{{IB(2Y#e5S?ssu^g-{makUO?BF0Iw~5;q*loa+OlR@5V2} zR3znCchZw`6(&x5Fd=;p*0+V}Kf}GaxUXV2$ixZ2+#?@=m_M-)bTZz*FgY#Q|5eyv zPYEdDzV>H{+~~sJ?tqK6 z!}rp=P+}4+{Wpk(r|;F}1DR7kxcS0=r5YuuAp_MoiCoY8aw+N*VtyyDzay^u`hNU# z>v{m|jeYBI8@<5O`~loXe}3OOx{V&sSMz%+-&-_0tKhx?fSia&E}$K$Eck{i59fkb z8qs?z9Yyh#u3ir!>zt&w*L%EJ#f!?66GQetALtH$d;vyV+zI5%B>&BF-QsC(gB;)4cRS;^{a?1+x@-n>Vb-B-bS#FEH%V>e|;u3}3@^2OERSp0DbyWJPXVm-LPQ<_Ep=B+a(1SZKX*8j!N0R+=|8yz%zo5(SA%Br>HPe$E6mdg% zm8YO`kU)lgVE-qn{*>(xlY8=Df3$;-lsHk<+fY~(|Dmhb1^ef8!~RDt_TK=1g#8C# z{|&JJk?0&x&(Y$lb+c^i&L&tH%*7&3jYofeR)d07leE#+`St{Yaw4vZ-Z67>mlFq>g4h0%t{F8T{nQm z78me^#48Yk*kK*vb(}msi`F;1Ef&D7a^QA}87bc!guovjIPq7%tW0_4R6Aax3P!N_ zfDf~6S`A_vQxv_xv+oqY>Y2$r%XyBM?)kN6*%1$bTeh0&5*0BXVL|ad3`E}KvGmo5 ztPl(9N?Ksz$&}=6cqoNW>#-9=LzKZ>ukZBq-bTyUA7FKfsZ<*+X(P0x?V{@CX?ny1 z<5>C!u%MlIK9%-7<0Rrj9-ST^3CAS)HONUMQ)80+GL=e_UYD|LL$03ND z1L_ zUO?2ij9}b1y7XLZm-g9G75_(<{^({=uF}uQ>xomN{<#wWol39YF65akt&@0DO}9z> z7qI_E_E70p`L&_XJsH>AB>s5m2*i}qhy1Iom#sWKoS7}RQ+WJU)U~e$0 zg##VIYiF^x(9X74b7wRdTM_5KR=|2M6x4Qyg6% z(UxHNDoqJ`W3ausO(1K#Iy*YzT1#gn5^RrayE~&ms|UTdzz$GoL2g%PG#cC$m-zSz z$MOK5x(w~q_5^~_AeHY7?g_?%VO8Dvai^d%{Ou^an$y(&A01L1w*3Fm!8}@( zwn_77^;(5itJP_4t)9Jq>E$afkG+2uyNzd-#&~iYuC=AhFOO+RE^pCry@xH0UA?qL zwF>Myuw;_{-7m`XW%^jRxE{!eTgon(sVllO(Gd)jn{@=>K*4CVGpZF=)>gZ!YL+p* zI2H=;Otc50q4-{{xV~x=%J@;cI~Z+k@7$wB1L2+ISG;=dW_R62Z|#lCm@g2GhXUOY*jE{@epkv{uDCivMUkP*w{FEx**{Q`k z0`2X{@gGtJBPfJA!4|E!v8GZ<(HPzp?%X4_<8u2u0`WFTTfB^SWa>Jx;-x#U(3b98 zrfJ2|V0?F={Tf`LEy`aQ9ewrr(b4@l=ODib=M^~L#&tF9vS<08HD&Z8u6U>;sI>+{ z?TKjcD$$6pmKI19)0RfiZDU%vQwwzvJc$LW>8Y zJA-jp4nB=^&_Qx7^kv}Y6anlMpshhB~EL9 za%Nmd?ES`xDYAZKmS+C~*0*+!Yi!$`IcI*`!eu1Ra9K16?c`d@vkXc9_fsQ zy3m!{mPdoTS6-oQNQ4jvP^oGx4V?=3%s9&Jo7HS|5^6q zlWY7ND7X57f?Hc}@+&od_D?pBjz=TB2Q^G?h$+ec}nSi!6D=+ec}SfzKQ$*(jVbGjy$E#3mJP6c}hQpa|n4#=Uv3u ztH@Itz&V0Er5%f)?=2$z8S-0*rC$W!_<&L-q3ExnYncH}9&17{cV-AIq(+>bn^Gq3^LhdiZ~I3GZs(m2jX zk*D-Ie`2y(j8b}9Y;Qb^y4^RM7|H{y*N)I55Hhv$N4hy@D;WS8|y>J zJCV{)r(Q)KF^PFD13k(k{R+WPk4>%7Y&sH(E2Iu3* zJCUBic^LUYq@OH(pXSo+<7v3qoV_?Q$?ojqH>_&Val)Q4Y zSnf(kiDOnCo3%2pB)2IilI_bHa1fo9l8#vpg|B2+sqz)>FS#s#LrzI{Q&xogjJeF5 zCmwZ@2j!!aPpV$p3_)X4gTCfA?bSGQsW!ECN`>1bZB?Zos-tuvY== z1ME=~tnkx_tAHIg!O8(U4%l%MtO>A_fDM^o-vn$Jur2o(^5uU9g1 zdYMc;GWE%Hi%gZgJLGj-ru$`jk4ztv>9aB&l<7&C4$1U4GF5b6m)C!hX+Hdpj&o(Y zNTveH*k$s%Bm-V9ubndWWR$<_55j`)`h&1Tv7-{3-0@%qb_lV%*IqC8w`v@2?8Zei z!7Q1zDH!(#VsSU^7-Bt=T@^;nKs)x8GLiq7?F|NY+raEIx%I(#W4J94ZfOs;xVxHz z5!%<upi_$w8y|~Gwm#~zvRmOHo0#G>GRAxaCk_C#p2O;XFHAE zet*R84~BP#qS&fqMa&-y#{J>o9zVUNiCw^;D1WQYg{(Ci3^H~Rqs_?9W_q2FzqvEq ziY@-OXfV)1dv5JPf)a^DEEtvhk61YZR^g9Dg3Yuq>KEF;BG=_~1Us4|d+FUxTn;~W z%|JQNxZ2Iw`QQ`m3dI?uksPu4=nn^A);&}MIG3O#8uthA3MC*eVSb*jX8w?Fa#ca< zN;|?>rwDxmk%&LOHxk4&m)C%CJJ>oS?+>!;1!gFW?YmHmKN7(Et>6q%Lz^2}U`J;( z&bBZiEv$^4;DEGpfaD8x?(pMgMKjA18aCth2bq~=i|bZ#m4mBTyd~5Lb%7A}?{1Am zL*aNUn_(}BVWYVft030ej2&pu`Wx1Yt;ZPqENktI1jFnr442Jqfhc>NMG_+SdGdhf zjtE9;%HehmV_%|Nn1GLo92({yDHreD#n`pXPkX;>%Gg#0M$Nm}#q5?C>3a#oo@WbV zi&;!$`rvU>IB#&*)wsQ@R<3AihmElIL7hM(w7es>d`~F69QIlc|H8&?e0h86^3vrc z60z8hXKGU`?t0*w&kXu)!9c`P!Dpu}{Mv$rJq|k_dAkLx3pjLU@I*`QhM!tc+1kCgP!X z+?KJRlgqq&yla7XE%0BpfD^HoX!J+=yZih4`}>ji@jur6VE==UK6vQC!w(KVH1yE$ zL+s(ghqZ@G9(F$Ld${T0$iv+a_dVSI@S%qX9v*yn=;7gq*&~IIXpfXU;(WySNYf*c zN4g*B`ul;uKmPYb{@vq$rUkH7hxrH{`TT!>nYb^pl3&^X(bjnuf5WA~w`05u`QKy# z+!Db2+rb-?_Gy{L0m=cOg|?&n)^h|N#fll5Y8thQm8-PU)pWyATiy{*goD@6gF!2C z5r{UoT@%KQ_i#X4zEl0xqDY;s;m+lF90yNjEN|UGH!=CVA+%#>b2A_)jKu@ZyOz`a zdn~iCe7ZP$(|OtK4Jplbq*;zUKC8{jpV8ild+YpPB21HRJYRt6GRw-(HA*-jYeuXM zb5=YmWJb%$<%Kx{TjXb0Q3`W7rIyab4lHuA9Qk^&lp#kI<>cUDkwBc~=hGYVW@hCG z>2!P{N3M{AF0w;(ub1qHwMR>+IT&NFLcRApo-2Uax1g+{vBvGMukg4l8@+Bb%;&0W zsB(Gzb?#06O1ICA$3bc;wlasQR=wLl4p!FqSQ~x*irN}H;nGlVrkg!}jj_;k4D?EO zeS?3a%L{2Br+;H@oqvsr zsIMg<>)D(PG?%y0#EQ+$D2DvJ7-(!>Mwzv$zuH~R3MNJIS5;Tz)v>zoaD6i<)m8am zO|Pq=YO|Z2W8k_fDjKUB0eAar8yhy&R@H3syXv6Sxdx7}uGU+-snP9ktfykg?`HFj zVz;l#R=mI{CgXeEF4S3Q0DXAv9%+Y$W9J!QqVI(Zqm-R*fGcYoHz;tC0ane(U#ys@^i&VPL)JjYvAUDd!Y zHi}$cJTm5QsM_Rd@Ox`(ef8`;Mj;%d;YL>-6sdD>bi*gfY#ZD)?u}Iy=)mj}1JzsM zlMbsHz&bait*))C+PIZ1Ho#=bs+x*QcLlrDfL7HsxHq}${FNI~!_8Z#p1s#7uk|(f zU7H%&5(DJgTw7I1jl#R8tFp3=Ej3E(@thl6s?ke+wQ41I!pp`fE@$sEN(5Q7s=wBU zo<`lif;&sGfg{_jzM&2_K@%-Ainy`r{5RCp-dF=)^^q#|8(^K<`VH)I0}maYTi;DK z+Kf2DX~EXDe&vdILean{v(>vi8`%|BScSKtk}bEwHZ-sm21F=i4P+attJswjqcm)* zsA<5vm-P-gCLM1*D>b21Uf+nI*;s?V=4C65f?5m)RU3JLM&sAluvJExH26jg18!Dk zz};JX6zW_X>e*@oN_Oy6aVObW1=Fvw7S)@I)>?};Zme^=eXQJoy0Q@u0UK*nJ9=y3@Nm?sYV?k)$HRgrpie2Z^;R^W ztKtTDg!C`6l#Y3g6|-Th&+T>BLolLO&#tu=lPo3v4O{)bEwy#*I-`&}S{;POphbRH z?{BE}Z$@8qPJptpuC|&ZxyD2i<7hpiQ9avWV2F{?(veJKG^;Q$sZAjR6!DueD#yf7 zqc(FJ#k{lo>OGAcH?WNcSa??1hOHPEs9#oXfuS}T<-~WBtHA?OK-52%Btm}s@Gbms>;%8qf{tVy0Uy@waZ`O!Lz{i ztR}N~B6>gBY$+j0RA0N%RwC>P*Yo?_ zb=7Q(1p$UK&+fKb3W+X{+tkIX+!b)FZ8ijk^N8_5 zqg+lQZmeqX_|b^WZxp$_H@ddgV{(g`w;%IO%p}X#;H$`-tP-6ab2}`X8eBJ^wPTYb5@&%NH;{#0 zxI3|g0aoq*0co7wMiCF&^$itlj{zg?>niG4mjUv^Mc7`s=A>o1WzG33M}47OU%KkB zCZfrj_1Z_)lnYFW!a?O5uqY;%=fEx0N5pE8UvH?t(dA=eJ;(uE41BP~ktf&TVijGO z>xVpXgdmnxI78+2)jG?{%JFZc)ph9_mX(u@yJL~|V3%gV@^zS4gl84%0JT2Xbckg| zU#KV(Zv#h?25=VLxbsKwq+-_Pg;!!}pEC+uU4%`M*$iUy5!YLV4(MlB7SdLU-(N{C zBVi>3<5lXBnM2PSI9MK4zimzh{?E+rm(Q{1U5U%vC9p5!;dWGerw_+DtnmDE9Oo8f z&%0>e(s}c9!N5_>vhx?s#wN=WHhcE9v$L@~l%3)gzfBx(~ z$Lvqwp|eXax}@-YY(5r%Qx&MpT*%&sdb7?WVzWVuLuW6BSaTM$s`*z!tap!h&H`IN z3QxZ=JeG@&?Rab6TuNvs5GOL1@XcXAuCtIY$od$S@PF9dQhSBjuQSJ`m+stJlDJ{# z&XQ}qmtLCXK;=r{67BU=XDr&;?*)@PaXy5T)6aRH*wQPmvRIU;hkBoc}3mX;dzAvu6g-K1>U>=|94uT;;Jk8 z4t%t;Gk#?(+I%JU;FpVi{VUt~j{KG4IiD*-tIF4GZ{E8Tk7ul?XBAg%*XwQX5`*)YFqTer-hzi>c2C5!@UAVjhw*dC6TDe{DWORqYRj;jFQKlU4 zf2Vo>$4mX++>U4FUhHhS*A&DOj<|9~GhE%&MW*KJqJp_E$$BPNm)*-se#{;?Aqu*a zxrZ`CZtAcr+Stw=?aS#VS`2xkP&wv`)(~!K;jJ|||1!$31Vpb5b_JogNy=&DN+zg< zhr%L2;qr)D;^{&L*%Te|^dLR=s36GT28*~CZt%JgkS2VYW+E+|z!{i89-`a^oW4nL zJ^`HmNpR>rIEN;|`5AD?TocJm-zMsw1ZNSN$v27aD}hro3C{Jv8N%XXB6)TL$2o~S zp8<|G39m!IDVzl7S>SX}g7fbr&m=g10uGx5rvOS1PomdS;6x^&a}96?aZ>*xwv5%{ z>O~Hr#$M5mXL(!pF#5=oY<}Qu#nmu}P%Yr#=6W>#x{f1iK?!s)QA<8Z%L+M!*OFf+ zC7y(n?O2Gi>*!KH)R##KK+=sBCDhkJ2?quN&JxO64)vu`0@7+U+tGyo>Xi}5;!s~L zr91=y4y`e8$J}(N$kqUujBI;%(lmn}F5MB_sZiTs2~BBA%8hZ{4xAE&qkpSa)FSR! zvva!`RnNp4C8#E>VboVSWsN2Pgf;BX-6(624TLpRL{n5?F&XFE020=q*I{Hvc|1uB zO`S^9ajek~oX;v8JP{tk^TX(I5Knlf`j)MrL-wIJG~m9K4}4<9G~A`t*KUkx^>c`8JdYJBP))buvu-4bY(&&c{ld z#DeUzz^w9DJNE%s*qI(Fj%HXHzx@Uiy?+s5b|D}GXjpEs zaV)DiDhU_F$t9tT+1kovOqP&RxVV4{%i7^A<-exX4_ zm=ZXJRwD9>>|6p>1WttwN5zdVqD0tPe+iVu)>lFhCvbQi<5aF82*UP69^MF?PbnN; z>qCId!ycdE;d=oINC=H9jNJuD#~icI-w(*oERZh%a{W9r&es6>l@3w;LP$vV`4^P0 z;PlnMGig&NDv20w^$Vh<+H?qc(Wcu8Y&le$J_jfSfjmw4Z*6<^O>g>)vuH2hnEp#` z+C7Cf9RLT>raQ3jjvx3~S`@!?haiRY7#h9e zLnJ}6@S74m+lSYb_(09@mOlXJWgUlvsmCv+O3zibRC@_|$Ub3ci49}ZaVG7ha~F?3 zny47`coFqPTL}9!XV9Ux=$6(Pt1Tjl zSQ}M2s#`458R0Z$z(~UKaS5r^A%yT}P>$;mWoN;Q^jZuJMayz>_;)6DZUVmO7pk_A zs(!IwxAXYpMO?S@_~V6!hz)Z?<_d#}%&9n*#& zrB@%c- z7~xXcxf}U$?JVcv^to{%4}Jhg8xe*${I`Y#681sN9Lqj(MP}Ggc%oSGq0(#zwS`qC)fV%BBXpFUJ5G#5sNh=xXu9VkcG9 zLQDYUR?K^K2vPnhXgC+DC}FqH=Yazh({U#4-j901SE;9257q83!#>0z+W`eL4iyuI zfFs&{2{1BZLPZ_E`{b=WuJp>-2_%v$1Wv`kL^yIz+l@vSR`sA}hVGnB z0kPq&$~S!6TZosUYNTi48;4MBvN%TX*B0_L)32>9JIC*|JOjEshCV7M+M;4x|3q!U z+r7eda8jJAZHFeuaXmT_j%=^(x_z)Z%~+nQcXW#O8auYwZAc@T^&yBeY10AJ7Hz65 zXQXOw%JJTZHknm>;b z=jA+MLfvJ1wd?ZmJCgpkV0#2_59JF(y)C97PYKLA+1O;rGltAk9{S*!=wIU1qqvi5 zG14c|2*N(vnEjnv_aWfW`}SydDn{gg0^~)Ma8F=(FDc&I&>TCdL#Wm<;Am)EV@~@s zKn5*1uL4pCBIAv5MCW3ZYZKtut-1qL-%nNbLwWdAtg1^m#*T;ba190*GT#LIS`Rhq z(N`NF2&_t6t%n-*3Uv=(0tAEu)1hWN_v@%ddxR2JluwZfBb`f?yMHhLA-f zTQE%7MXGg_4Fw&N*{fqB!;dqu;Sg$YUSo}nG6IzA_8DW=EoXyex_u~05Jlrq_W4`g zK3#aJ_}H_-Lar(4Wz<)>Gtp}pm4sg7_c;2rh8)rG@Pd3@iK)E~fPj!^;)rd?{4G!% zJ7Q18pWzsjwne4h7Bqjb9?Ivt;mpG4i-9oq{S>d>UgOW+kLdQnv;}W}F)gGx;|E}$ zp^Ig-0q$7GH-Y0+dU1sB0-{+UCjs%{rhyTE{s>611t%Ya)1U>X7?8*%s+Q^(LLTy; zJE7sF7Lm@xe{>1?ZjXhGzRO28oGfl^(d|qgVC_GuUz~uZ!Vh8R4&1Xc`JmFPTO&=U z+AqfNc{wt6E2|Q*j6=yos{kPnz2U~cCyMvxsF6{;^MHltS41hwqepnFX)vFT8)>;#NT#*8FWv4)I(x9P21XyPKWYIL|uZ{_i$ z-)Y^dn4J1sBc&xqGvkup_8#xo#*@C>*BY>1FHbcG%$bbd%5+Ke?%{adUq}u|?p@G;jkMX0V*Dq`tcPFXa1R_~H-oS{B+gvqvmM*3_X%x!b zne?xTY)ItxN_i;GWIN<*4<#R!Bqa`w>SDf1EoVIrN*sDhBHQtKYoWaQyu`t6GT?ad z-%3ZdMXBBvV?0qNcP58)``B4c&pw)+5Fpg<#YjcF-+_BbW4Al)U5R%8yD{mI4QVtM zHq?-#*0mnw8{`qfH$2FpQ)V30UerpWy#h8O%7*K78;X^td|{qtrFmvH93%G15sh~2 z$L*(brMXF$haTM3-#W+TQLmsA@{AqpRKGA}UIi;;_>YV&K3Ou+C_JIeGPVqWyofE- zverY5!bOO1BDV0>w;-vuXte6i->Rp^Vfl(Zd>TncT3d_K4qlLd4@uxq-ysdb*mNkL zf2VYRZVI|DnS$=kR^7$B2Bq@y#e*y|1>FS>>0bZeuKUR;=w31f-EXn#E?=}Llvi(E z9Grsg0*7?3gzg|}I^OAa|HTw^Uq1!iyLH`3*yj+ntj8fhw9Cf#`A+^a(ip#wPa0<% zy@1yuYY zqSnOL&})sg-!hdLF5}_rQ?N$E6s++%-5TP}tbA)fyqk{&P>_|tKF$fOK{(d}$CpQb zVb`53q++I^LpU^okL@iHlyIw#nlJ_3jA;|Co$lj%_Q=>zP)WFOgga-bJX1YU(EE+VVu5?vGNF6RKlTraY< zlCU2{xP`BDs%Di~HR+?({UT zg%^I^n*mwlv~g$e6FvCMbnmlqFS2pZw{iCv+~o{*NcTGX3bBnoVF~*hHf)Wz;aico zD{JtQHY`+HSc4I2BWlSRY(MhC>j-K+)N>#cj$fjcSH6s@+|GP83MEa4^aOjmn|(v- zPCa+L)v<~;XHl=RLe*YljcC%tHD&qnan|0ae8X|6$uc5q)63pE6ZE(yMOp80!wA4u zpC^y9K-OGlc%Af?BIPY-#GSr@X`#G&#Kt{s<4#ZN%38ABXTi?nwY&0pLks2eCQYRl zn$qGd`22A+AJ<|6pEqPy@z5l*)cxuSbXUG{7WFElxv0?!5b;$CLsPR~h0HDkmtJ8t8Cu8q5MTHMQR+=p!32W{LJ8Qf)$ ztD2z4sc2*PkBT-XACorpDJ{-Iw0Rsh=60SS+88pcerl3g>i)MA=&pL@S=6iSq-wA6 zN6*!1)ym`JtX;2s!?8Fc));FvU9U5WHuMah#lu(QgJV`m*%qaR9&L7@imWBQWy|}f z6K#HB;~uebZ?bWZ+qgGPi+kF}z01bE&BlGdjeFa)xW8)S-fiO^v2nl0#yv7E?!z|j z^ot!3H^sUx8~4X-+`Fd5{dF7nJ{$LL8~0~z+`Fg6eZNO>0;WT)A`O|<7-y1M>V6R{Hr{GN zjd5pDud+u~dyPMStv;+;d3>C;`N}sOn#nREYt!qD#<=~q9!I~m=WU@zw6Y<1fCaK< zKend&N#{C`}_e0a-ez%P~Q*EK^K5XOOZ{vP=THO0=-1BYR zM{L}`XyZOGE$;W(xEI>EGv&R?8f%`haX&sS?(_uv47jhcTUcb{o^Rv+!aKzM0ULMC z#=X$S{YN(LgVWNTp76KoUTouDWaIv}jr+-IasPsidx?#^X5&5w0!x`?e;=9_clyPF zq$Bsx%5B_>ZQP4&+|$$I{+Nxs)5g8T#{DuI_u*-Ar(a}%l*#8kHtyv%?j9TWk!f*% z+{WE!Dv~j=H;4a&}eu8#a zK5uBDeBPv~^!Y-i#aZzAt||DuA+z#%lgv_gn&FSv-<8jwMZL=C7sR43V{0+vP+Fu_ zD^K9_P0BYW@OfRYGxEAJMOpXx<4PU{DLbsRP>?k>Hm}<~f#sFg8FZA_nRrRB)6SyT zwM@b544GAXnPiq;mzqF#<#lIKud)HvUgLYz>Os}Ye_nyRO$6dELth!d9>AQ}QSuE9+KT zD9D;QhSy1NDOcWdM%;&N+z;Bg-(};z$j03{E$+XtaqqWr@3V2g%*Nd_E$(R>_eX8q z58Ak|Ft|&fe|`d=SN+{+LDk<)tt?y6r?ddi%;TNz@9V)}vi@$!topl2W~n>9Rcf;S zeirpA>sReHeqUaFNVW3#IBQ>3zA?clqw94>J&vB}wf6UJC6DUeWf7%?f~R7u$t8C44IYJnPiq;Hxt&F%dKb zab0)%BoJOPgXhqjO+NZj%#RL19t@5Q`{C1SWr)E*!gSc5;UpaEVdJIui$g%f_72G- zpH3ezBosThYvW3H<@2kXl*JUJ%%|+EAZuPR`i0cAt2pz{(NwrcY}~ilxO;5e>3vpm z1d-gkr^UV9#@%P*?zC|~YU6&_w79p~xO;5e%Wd4BvT^U57WWn#cc+beiH-XMHtq+f z#l6YKz1+sV*v5UojeGyJxNo;{FR^jgY~0&y+#j75_boQ=#WwCmHtt(&+z(BQdxMR; zX5(IHUH42+}$+$6~v;fb{L#;UU zI5rkeW?UT$M?Pau^d}pI4Vl#_Y?4{(-Zz2nYAiU5dX;Ta?d3q@W*kb3Hr2}G}!Y%ep)mg&hz+V|*u^ ze*(?|*oR8TdZ#7fd>1(TfrBLvaO}SzCY+am(}fdgz@fIV8UXKgY^L`*(w%F<$zqX2 zoPYCBJn5wIxdPr!jq-?&14NdK=T_8RPMS|Jb`Bt_y#!=AAnGo#fLsSiHyDx63rHOx zbkLQ61OTC@M}$0776C-vcMv$A14NB+0`gA;!9>fb^%Fo2T6q12=)hbC_qPBUw&2X6 zpZeh-TM5b+0WxHvd=((#KD7oM*s$Fnz}I3dGH(Tr8VdxSRzR#aycH0qPTAiq-c=)> zcp=Jkd+*7yk^^rV5Hb4#o<8V4WoyEcXM8gRM+C8~lly%fRFt955EPA|3WexI3gA#l`h zLPf1&8FGXc9l?&~$X@7Vk!KZf?y`8450H}<$Oi#Y-%k;gI|0%3c84hJen6n6Y_E<$ zJKm&+{-yKs(<^wY@u_y88G3yMwVEt+jsnunYbo7-0Ek+(3GP1zWWXX}8W1`RZ+Qcd zla{tP2QS`Gzq}K476GE3V-%3f0kL{`H6T`B4Fb|_;obv?n(YWWp9I8-PAXcNB>N&D znx)pi0P?6s=2L+5TV#HnY5|9+3d%F_iji{oj}ZaZ0^-x{3`AB5NVmnRHv`g-62m^b z0a2?PLHPh6AY-C@7?8B?t0-c}0Xb=b{0NY8i_CunBm!KM%;@Vx8tx&rcn=^0x`crp zvKLtV`8wbf>Nu#%LVy_D{eHaN8Q+AZ!-xQTiI)ZPF+ju zJ*zLQaRLxE7Zs3y2gC`=hF)(0QevSq6K_ZAhfbGJfRqn7SJ(TumO-Fi*Gam zV)eS+fY6SI!Tn=^sC%_ptXcNBa*I6Q22MY!7~D?)V%QJ_*^dEHb5Wws*slROj?|EF zK7Q6bWNBp$5Nl7lmLPfy*0%?P5zx4c%cI)85jfqtef;7jyTL=iGd!~uI0P{?joEnZ z14RA0Q^kUooq&j6zK!v)ST;aDi=%*Q1TL(}&FGN8vXjEo_gT^zFb{N=zYL@h(Y z4S*O?oha4;a>(MnF+iGh`$Pj`ekXoYtZ`b5-2t3IORWb0(JXp>1CYnSL0F8w@*IFa zizlxXouk0<>AXmu7XYCdh+*ebfE?8ILca(%cSKl;rPf=(v9|IoIH3=8gvEF*3@YW8 zTIIkgv1qXckS!Ju4+8SIP6ruwFCh3cwZ&0f_Um+b&)vnC)57cLR7J-jI{yiXdTvLw zdokYGeB8o)H6V{#thxb^CMX4NOOlr>^Y91yjp7L@M;WXMAK?*I|covOAN0Hoj2 z3w{KMdcrM>wRT2=VX(T(qSr5}7N8JG%5yH>G7DBxo|tkVORe_-hiVy~xfT%hJ74f> zZtsi*;R$*zOeOeixlf0nI%`8MW7b5F-GC5#ArGH1qF)T^{^O@9lZ?iMFYMEUT29^0 zXhCu@rdfDB1f07}bkO4hnZ4<2z!|jEItqwKr%W7w0EpFBUjsz#UWq?>?=0-rsQv{B`mENq1SsWln|7rk^&qBEskU~p*-UCPpOiHwb z#qI(mqT3l@_BT|^0{Jo^>YjqA^$H;U7W@2`=;&4@I&<)%#4Wl!yak&X|5}s5eKBx` zEOeFwLa{C%r{HxJAnJGh0K0b1;?)0JE<#!PJEOcDJIjL*vrw?4MDPx5kqBOk$ID-}m zw*o@Xof^E_0HG(r0F?H*0}wh4|M{d1@(3WqmRes2q<@Kdj&u|dbQY5}P6Dz;mzj9{ z5|BqNbpAlKEbX3qp^(gwXE7jj7?5>Wr?e&02#4J_(wqUEs%5Z z0>ryP3j)aYasgtsSTi8~mRg;F9Jcs#5)dL{XmJn_Ym|5tkT#3V^bTqD{tZN9e2EEE zn9~vyo&!!HTF{X2Z9oQqC;G+QMf9eO;Eu#je*lBP&R|SkhQh6#Dj(Rf1K)*KSM8y2 zP~}^r^tKL30ZpW`goE!_M(Oi8^ucJ{5ZWDR54HHfr6U**Mm?CavHNIbg2@5gs(Lc56?FZc8In+yra@gQpp#Qe?lNnJb9mc3!VHm4g^ zewy#@z{jreiNtVVXRrk?%(d0n8BXBMLCrz_GA;GCX&aW*wzItjxDoxW)Z^h1_x5nIhZU6f$M;6;J0YmNp1Q7D+QRVpm{;#)LcK^-h6@(uKE}Pqf zfvEXf=tGkxP-*DoqS05@yusFZ4ZtxL#!DXwTuEO(;`N36M5&&>a)&U~(kZ>r-$LKu zwm|q-xovLXuV|>P^Lwl68!%O+o*Y7iyEWKCRb_M`Ql?8nvXPN{SqOyfa0FQ+8jN5Y z!;deKfIvqex{JR15D#^R@jCBNJg@_w0`CZP)e9JejRff<;{IqNOp^~d8X7S`%=aJ! z5?g!?Ez^ztb&WL*Rn>04uio8QS?jNJduuC%KJJ=I=yV1Z{LoTFs%Rh-3#t#Mz;zm9 z!Dw|L-sX-Pg8^QZZTiFl^N$@{B}Kfsp7iqX3hot6vjVP9`k2a_V@wtM+tI~P=EoP@ zg-ApIo}m-4R^-;P;YWiVofvZzQB}p?;H}pO3!8aD9TD+zxiL#bk@@2w%Slu`BH`am zLnFF|5u5!RL*W*mTQ)GWUT)Z1L!+*;_@-c7;%)4Vx>{QBDspmP(Hur$MJJpigOa-| z2=>77xlO#QVl|y%E~~J^{e+=@;ChXX?`#^0$JKpDqfm8QGF{0ClG;aQHR3QE%pvV z9$*yvjn@q#)Cc)Q2cL_JF(Ii50?I;cowRjK@QXCyq4J;}jMO?Lg1L|6RdoIM}{wr9S|vgu`+DNP7%o9e#2_p)s_E zJwnmWFhKO;H8ER53<2v(Q<%hOdIBv5i$Emg?}+*Lgu;G$l`+h{8{NR)Ug|IPmtf?r z55^nA;>#W_ZZ-MZ7-|Q57+*~gty3gpE+wR+{)*cNCQ-#i#st9JcPC-+86meXkA8}N z#sm}ym|G$s$6*&ftMwxyiD|7qF+`v824ZnUJw5`Eaxos2W5P5h@yD3_i0x?FO9?bX zSA>aBbBtRvh7rc!*-Av3ckw+>%wNgOdb4HNl#d6>pn5|JlVPVJ(H``NVzm1W8dl=; zNrNbYAdl^V4|PWUvBZwpUQA#*{JZf%2^x)f15?xCrk^sLFl=S89rOGOj8>R|wCjOP zILyShGg{U>!fp;>c@Sv-Kq81qOh)7FW-vv#HMA449uCI)5_u>0Doh-$qFMT-LJ>Po z2J4KjO!x6P6`i#RL45if#!I-x+oy$G2wP#gJ*HDrGe#XSNq-d0GsY@Hxg?j4-ym&h zkHOb4f+SRT1b4bCp^HM>WPU#$!^kv)zrr7j1e-&xp=RB0MJ>J`D6;Af_=GV;%ohv? zLNAY)ol_Vy!(#HC)q;(szvyN%P1pq*kB?%Wh2aLBYmW*%9T=jZ=ESjpFOm_9?aPhv zI}o*<9+C78WQusYw34~LfXa}@Sd>Xu_90YZ2FE52iZZa0e!3V?RQPR++$mMpk&HI> z1~GXarxW@uW7SyBkg3@O4msIe(hyK|G;SM&l+KtXmXJvFMO7#`UOu>s(a-l=4ORJ;v3{v$=M#=w78il&M(;$Ikn?s-@pguJBT~$iLkhw! z?S5ds9*FU=b3COpM@Hp`6qYcRrZtCh2qV^2xf+yvOenr(h>+sT8~l?^95TAJ2!gut z)H+?H;=Thvm#;+=2;vg`N*-egqx6k#&^(^5+53*|caTrVRqixHfJp@q-*(K)ln z>h_~xWP~P8u31RO)tzXjpRt7Cf!j355-stB01(|?*H(X3wXYUW2vt_qxhd9c)frDX z93rS#b|v)bFb^T-*|6yGah)upygoCg=uQ$@=VckRb*E9gr=kuI4H+Qn+~~mglG_AU zA8U@FTV9T-6dJ}ckBV?4cjnxLnp|J)smIy)yq~beGiT$wLuPl?g)*_S%;*(6X+?RD zIb$Y8F-L5JW7|&O(j8w4F-j>H*JT(lbd5I%TZR%vB|~6@2>$4U-onBwY>8-4P38H_&xA#f%kaJ? zJAhs^(Y$V=g{QdrCp(*1F=n!#I9O&553t?jGhb>u@nD99vt_NSt0rzlsNou0!2C%F cSe5U1>B~*a;z>NeF~0w2jNZz1GuJEs7Yvdf?f?J) literal 0 HcmV?d00001 diff --git a/highscore.o b/highscore.o new file mode 100644 index 0000000000000000000000000000000000000000..e9b31f19c3c0fd12532a314cdaed342abb4a35be GIT binary patch literal 3871 zcmc&%U2GIp6u#Ttl|m)ENE-_g9AK-ZKTAcxMnt!^lTJ+=H?|E$Y3Q=u(&EzH>};VB z8YKmFGTBH(eeea04{~6&?nQ7kgP&tQ~S_|3V!F_nY*);$RjtI zd%pXfbI(2Z+@G20{a_8FQd+`TkRuNZrenitjzyLAFjnJYtgBeG$xdP6o?vez9dXz_ z42D>EB6w8SojSj>Vd3}5Zn)6lVdz%8g~lOP7YZf|?RsF+^#o&qb;7nBg4?AE?ZTMD z80?${@r8EnaWagB(JZ#+YHP@@Q!{RBqjy7^(dO5T&T`FEA=L%Qa>yKH&eTdF7R+#| zF|#vks4Jr*D{N?^W_FT#K{FVCbCp$=PKdmlM(^M5h zUD8HJ%2|3de3ok&b-rP&lq@aJH`IR^M)E^DuNfqAnh`FB#Nc7Hp_0Qc`ZlP3%w*B$ z_iD&apRaOe(RaAbPcynOF4SlnKBBR4{1e*G%X|iW#&6S3)P>ONuMbz;^IQj{rmUrdGN$$yj){U zU4;STnc#^Y9a&)MJ~+y;^bz>aHH^{PkCT<{z?ejGvNZ1oV}{62@4>sdp4()~c2SEA zrker^aV^HphB4YYn5Z=p-+S<|tYvs?Ek<@c#x2AuB1OIn2PkM0)3T;`Q9E~?G9VW= zO#20yZY!siH9Hkpm-lJD!HL{3g5Yt^V-&v?=iPsuaehcGtnwq{G-+d84`bMNY|>#Z z6AvV{jJKG_i_Mwwek9;LpbLwQOwLWKv$bH&?pXviXHUVHGUl*(r;O}m?pas%=CVPF z6xnbrWUHypn{BgZ=PW#y!DE{-Y0UvXS*zKWYckcW*_nlYD~$+7Gg<@nW?L4bPKZj- z7`io}*yBIK@wB=`{_k{C+Hum*A1mYyVg#cjpfp^i^Uz|TbFFWp+DDEaRWCdOp5?*qu zF^Q;cU;iJ`kMMz9ieV|b{6&KORk&2s-WBXoN*Ng{-PbOP;wpA~i&GxA3m0Ai_7r)E zb(MI$C9chkW3v6kvMuopmAId{Ra6I?2Yu`oHZ-Qbm zx2HCl&tlh2AdDoQnOcAlBvY;STwy;d0}sGcd*XR zh>*RdDSMpr<*y1N0n6 zi;`Q9UGzNXwgXjiGzcVmTmlk3zL4AxKq9IMiGG#nHqcJ)g}H4n#Xwb@+X5u|Rs&UY z?ttWCk~=B6^OCzPxvP@D~wmd8? zwVwfrynG8J`hE{YZv+n;mmHdGBOW(c8_{cJ6X)nu3$0%wx_E__&biP&BatGt0m)Gu z!j7U8eQ8SxZjVHCCkX8;k_$=HB(<94S|y@;L-g&CT$e=jwJEg0zJWNs=BeDny?M;l zKX9yHk0w&FU{uh&_E{LqLR$ib)`W_SDa?(Xm@oWB=FPpR58_#EBfiAR=nXt{W3IMY zOKM&Yq27iu$fl@ZEPTpar5}=R*3~xrGl*Lap{5&mwT(SL#?HfrZsOH88@LauF5$WI zP#a<5{HvgF-7dPz#XpCzK+EyLj*uS6q2y`v z>OoEWHD7{`KM4A9pqFA^n@3++kXF#`YRoGvq^DES6G@xKdNDAA(d221BBn2qj1Af* zw5DW}PP}VVl8HMR!r$2h@6~rKmevcIXgs0Y8`}09&kshPsf-o$N~Q(|(|tC@BP^io zUO(9;-1F~fiL3?AoH@hf!RbiFVl0|Ck&L8bnthto!E|aMrn6`&7D*SK literal 0 HcmV?d00001 diff --git a/highscores.txt b/highscores.txt index 4edd5a7..6977b89 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1 +1,2 @@ -player1;3999 +player_name;5967 +jan;2993 diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..a5219dec467c2f6498c84d6068a1c1cd2ce3c3de GIT binary patch literal 2616 zcmZuzUuYaf7@xhnwlP(6l%lDBN6l#h&E_mglvL!>cI^sALen$F5-yv&xw|!YyX)>= zatTC~qr$QV@*wD&f)9Q1$+td;H7zDe!FvoCFfWBjd?+Gv(9rmOv%7bDxeV;g@B4kf z`M#NN_hv5l`3ZvUx8sDo%2AAnHmlkkd);h=kh20ImyUV%3ouYJIVv2cn@pu;=e}I~J1IL8@eOGo^?Spzn~uw?yfU)$^DdI|s??BIpTL#N&N`46s@)dhH0-jH^HCL7YW zH#BhAI|cF-0NmoYj}8tTsZm>LL>6{GTWRb<^%nnx5(PDNq#ZZifT%kt{}tqX(GbG$ zL(K3HTb$0zJ)hi$)b-FDkP%1PcBQTJ(stznc>d{$OLYjjJMPr;J^h@D&z;lE6Lm9@LY>oa%Ouq7;#sF3$7 zAYSp+cc*e1}oWgK{r7*1@Vf?97MJHo3Cg&)~^jfo;*U0LQfMFI$6=8-yV^umK+kjU8X!EqW8|x* z_a>khIrkGF%F%s5FLCq`ke8#|uU?Ft0p#zu$t3~3%x8=MdWEBLKvB_@+EB+8)B=#`9vGJP!BjA=>ncd9}pA!uIHZkb+QFR87o!OsmIZ5}N>f zjlk|&t##yM&9A}JsqwB3jEwU(kJO-twB4eZCMw|fht+Sj@C^!1(6oF33g4c1r5vdV z-JH0KsDO88dkf#1c%DZEd^hbad}HEHJq_NI?d>(+#QzRa;bObfx6Xyw2+3rEnjsC9 zCx)qNc0LdxV`UYsNpMYp+1a9E`XWB7a+t}t1wsur*`MR(LgRxDM(JSYJD6$*bEAX# zvV-}qgZZJ2SqIDex6`-0yi8QhsMy}QPpqQ8=wAV0NhYI~jZ7w^WKBDx>T?-5YO^G3 zGR0cVrASGRCSr$*+bb_fYu#lN8F~tno F{{w_j_d5Up literal 0 HcmV?d00001 diff --git a/makefile b/makefile index 1f15f75..b03448f 100644 --- a/makefile +++ b/makefile @@ -35,15 +35,41 @@ $(program_obj_filesobj_files): %.o: %.c # -------------------------- # Unit Tests # -------------------------- -unitTests: - echo "needs to be implemented" +unitTests: test_stack test_tree test_numbers +test_stack: test_stack.o stack.o unity/unity.c + $(CC) $(FLAGS) -I$(unityfolder) $^ -o test_stack + +test_tree: test_tree.o bintree.o stack.o unity/unity.c + $(CC) $(FLAGS) -I$(unityfolder) $^ -o test_tree + +test_numbers: test_numbers.o numbers.o bintree.o stack.o unity/unity.c + $(CC) $(FLAGS) -I$(unityfolder) $^ -o test_numbers + +test_stack.o: test_stack.c + $(CC) -c $(FLAGS) -I$(unityfolder) $< -o $@ + +stack.o: stack.c + $(CC) -c $(FLAGS) $< -o $@ + +test_tree.o: test_tree.c + $(CC) -c $(FLAGS) -I$(unityfolder) $< -o $@ + +test_numbers.o: test_numbers.c + $(CC) -c $(FLAGS) -I$(unityfolder) $< -o $@ + +bintree.o: bintree.c + $(CC) -c $(FLAGS) $< -o $@ + +numbers.o: numbers.c + $(CC) -c $(FLAGS) $< -o $@ + # -------------------------- # Clean # -------------------------- clean: ifeq ($(OS),Windows_NT) - del /f *.o doble + del /f *.o doble $(TEST_BIN).exe else - rm -f *.o doble + rm -f *.o doble $(TEST_BIN) endif \ No newline at end of file diff --git a/numbers.c b/numbers.c index f59d9a2..24b4ae3 100644 --- a/numbers.c +++ b/numbers.c @@ -5,22 +5,108 @@ #include "numbers.h" #include "bintree.h" -//TODO: getDuplicate und createNumbers implementieren +// TODO: getDuplicate und createNumbers implementieren /* * * Erzeugen eines Arrays mit der vom Nutzer eingegebenen Anzahl an Zufallszahlen. - * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. - * Duplizieren eines zufälligen Eintrags im Array. - * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ + * Sicherstellen, dass beim Befüllen keine Duplikate entstehen. + * Duplizieren eines zufälligen Eintrags im Array. + * in `getDuplicate()`: Sortieren des Arrays und Erkennen der doppelten Zahl durch Vergleich benachbarter Elemente. */ // Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries. // Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while // creating random numbers. + +static void duplicateRandomEntry(unsigned int *numbers, unsigned int len) +{ + if (!numbers || len < 2) + return; + + unsigned int src = rand() % len; + unsigned int dst = rand() % len; + + while (dst == src) + dst = rand() % len; + + numbers[dst] = numbers[src]; +} + + +static int compare(const void *a, const void *b) +{ + unsigned int x = *(const unsigned int *)a; + unsigned int y = *(const unsigned int *)b; + return (x > y) - (x < y); +} + + + + unsigned int *createNumbers(unsigned int len) { + if (len < 2) + return NULL; + + unsigned int *numbers = malloc(sizeof(unsigned int) * len); + if (!numbers) + return NULL; + + static int seeded = 0; + if (!seeded) { + srand((unsigned)time(NULL)); + seeded = 1; + } + + TreeNode *root = NULL; + unsigned int i = 0; + + while (i < len) + { + unsigned int val = (rand() % (2 * len)) + 1; + int isDup = 0; + + root = addToTree(root, &val, sizeof(unsigned int), compare, &isDup); + if (!root) + { + free(numbers); // malloc-Fehler + return NULL; + } + + if (!isDup) + numbers[i++] = val; + } + + duplicateRandomEntry(numbers, len); + clearTree(root); + return numbers; } // Returns only the only number in numbers which is present twice. Returns zero on errors. unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) { + if (!numbers || len < 2) + { + return 0; + } -} \ No newline at end of file + unsigned int *copy = (unsigned int *)malloc(len * sizeof(unsigned int)); + if (!copy) + { + return 0; + } + + memcpy(copy, numbers, len * sizeof(unsigned int)); + qsort(copy, len, sizeof(unsigned int), compare); + + unsigned int dup = 0; + for (unsigned int i = 1; i < len; i++) + { + if (copy[i] == copy[i - 1]) + { + dup = copy[i]; + break; + } + } + + free(copy); + return dup; +} diff --git a/numbers.o b/numbers.o new file mode 100644 index 0000000000000000000000000000000000000000..247f8c49035397359b5705f86b0b5d9649b08b4c GIT binary patch literal 5854 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 = data; + newNode->next = stack; + + return newNode; } // Deletes the top element of the stack (latest added element) and releases its memory. (Pointer to data has to be // freed by caller.) StackNode *pop(StackNode *stack) { + if (stack == NULL) + { + return NULL; // stack leer nichts zu löschen + } + StackNode *next = stack->next; + + free(stack); + return next; } // Returns the data of the top element. void *top(StackNode *stack) { + if(stack == NULL) + { + return NULL; + } + return stack->data; } // Clears stack and releases all memory. void clearStack(StackNode *stack) { + while (stack != NULL) + { + StackNode *next = stack->next; + free(stack); + stack = next; + } + } \ No newline at end of file diff --git a/stack.h b/stack.h index f7d542d..98505af 100644 --- a/stack.h +++ b/stack.h @@ -9,6 +9,11 @@ The latest element is taken from the stack. */ //TODO: passenden Datentyp als struct anlegen +typedef struct StackNode { + void *data; + struct StackNode* next; +} StackNode; + // Pushes data as pointer onto the stack. StackNode *push(StackNode *stack, void *data); diff --git a/stack.o b/stack.o new file mode 100644 index 0000000000000000000000000000000000000000..381a8d2000229ea11a7c7b9de56a668a4886a200 GIT binary patch literal 3979 zcmcgvU2GIp6h3!mr@Ljg+i6!zORF6ageu)FrPNYDR$9`n3O10cAvJZoJKbHn-Dzfb zX>A}OX+o&Hw22RxV8WX(nE0YX;6bBe^wAgNlQBU9F_LxKU%xp(I7PD_3CB=_EP zzw_O5&i$D?Gnoqwz$FauELQ>$D_aX?f%5uKtUD9{bCUp7Y)lw?JC;e6Qv%wsPQcjb zv8hsNLxO8KPrL=c!`)~LQ?MFIKu;nz=jZjHeE@kcy7}Q$fOzq~nt`aE$2sJX_o>S> zIL|l|-_!3SjxvC|nh!#M$lFViszSXzL4enFfuVcB>)Tf)q4oim6!K2HJX8g5-wQq- z<@1n?HNxZe57Zz4LCh}_@RdK{vi0eyV z^}O|^&)3p911doZ3->z6LGn@}#C?*!{Dp`?E~{fHhuU#LF%JB$@0tJUZW-NkCqJ&N z2;VC;!a}MRIuTGAE}TyfC>o))80G#dRVdV6#6ste+7Gd`y6qioO)O^>01dsO3c-=% z(h>9f%-KwUPekC9~7QV6$*A5)Z46yfDBnOv=$BNf|YVkmQ(2&V10G84J3y|1MJET zq$=dUuY;?r5c$M4nr^G|lm?>0p2JOh4hJ=s?KxmwL5fE^OwuVDbo+6l^%r#&H$%}tjSOyO2lV~=XjH+Is`h~z@*#l+jwpgNfER<-2>RC0 zXcQM)18RazY)2@nuP}X;)v2BBolUGcXl%xvj50N%>w`KCX2`6^q3B^#3&rIqjn`xB za2tlz4`}=Kooxr(h#K~Tqfr4jNElu2Y@L}%2+J@Ru#qk^@_S;pgy!bQ_Y zMu28qD@su=73{{{!0kif=bCF&)jp6CMCE-f8gd7)WsE(DG*E*Z1z1q&R8FCO4U2+$ zW8hcR;CHJ2rs^RUrZK1&F|nuWOxyC87W_do&S=s6M_Txn#$K7xLN^hZ*R)$&_$C6U zwcrvln&vfD>DBa`TC|5aky~2xIgOoFLKvMtEBvUG_){}9I5A$boYKTd-gdJ2iD5fk znYD`L(!`KC=Ga*$H9MQPoJuh}G1@yh=A>rI`I*Y>M7}s}_sVYfu#NY@$+^5$0PZ)I zhM~bY_Z%0V<{H=lI5+(W9HvFn)%_XYgJ}sz33}l zsNiGa<>YU3h-V7SjvjoMWH1(&aAqPN%J_$`hzQLSeub%y2Mtm9`&cyJ%$X-4riHj0?(8L!B~m8`)K! zXZLOrk2f!9(%;%E%Hy3{!&`epdb|afhl#bgX$D{swH;Uj@U7HP;rF$QsHf3mK_3b# ze;?9qtMb0kXeor1-jD+8keVs2v^2uHOKSA!iLn%eGSeY}_0wD%mRb@u8q45KthZp% z;UBCijtWn&7=FvC9(sPHI0(>jQ~3Q=8%b7FShJBGK zeP;`;M{4v%Ca^)N9hTZCY9a>3Bu_e+5~G<5tUB|8#O5ULJ&9eGSZq3vuWlg^9|2^U z_f)tbHvC=Wb{WQ1a22XTJC7WE-;vM}UC*KQ0HBvB$we&dIkcxjD0e!V>p8++`+q{I zsO%2a!synu|0cLC$nlwZr}n>uMn9HQ^G`xERT-T^ztsMZ&~JmvXkWvA687d@gjPdk z=P@l~9cRf!@P&pP`V(0%t1d(e_2k&1$64EU#?=(@;H*v2x}R3$q} zuLVy}O-n6*k?w~#Mdo?a?Do=Wf}?>qGIw0&`L(KAisOU{CtPs#r) +#include "numbers.h" +#include "unity.h" +#include "unity_internals.h" + +void test_createNumbers_no_null(void) +{ + unsigned int *arr = createNumbers(10); + TEST_ASSERT_NOT_NULL(arr); + free(arr); +} + +void test_createNumbers_has_exactly_one_duplicate(void) +{ + unsigned int len = 100; + unsigned int *arr = createNumbers(len); + TEST_ASSERT_NOT_NULL(arr); + + unsigned int dup = getDuplicate(arr, len); + TEST_ASSERT_NOT_EQUAL(0, dup); + + int count = 0; + for (unsigned int i = 0; i < len; i++) + { + if (arr[i] == dup) + count++; + } + + TEST_ASSERT_EQUAL(2, count); + + free(arr); +} + +void test_createNumbers_has_correct_value_range(void) +{ + unsigned int len = 10; + unsigned int *arr = createNumbers(len); + TEST_ASSERT_NOT_NULL(arr); + + // Check all numbers are within valid range (1 to 2*len) + for (unsigned int i = 0; i < len; i++) + { + TEST_ASSERT_TRUE(arr[i] >= 1); + TEST_ASSERT_TRUE(arr[i] <= 2 * len); + } + + free(arr); +} + +void test_getDuplicate_returns_correct_value(void) +{ + unsigned int arr[6] = {4, 1, 7, 7, 3, 2}; + unsigned int d = getDuplicate(arr, 6); + TEST_ASSERT_EQUAL_UINT(7, d); +} + +void setUp(void) { } +void tearDown(void) { } + +int main(void) +{ + UNITY_BEGIN(); + + printf("\n============================\n Numbers tests\n============================\n"); + + RUN_TEST(test_createNumbers_no_null); + RUN_TEST(test_createNumbers_has_exactly_one_duplicate); + RUN_TEST(test_createNumbers_has_correct_value_range); + RUN_TEST(test_getDuplicate_returns_correct_value); + + return UNITY_END(); +} \ No newline at end of file diff --git a/test_numbers.exe b/test_numbers.exe new file mode 100644 index 0000000000000000000000000000000000000000..b1765417b8f2d4cf87f28379cae5bf388b9d7b3a GIT binary patch literal 109306 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%0D)A3}fDIhi0b97_dmum6_06*Z2Z7(giPDeQzyAS} zbTxnb4OP}kDMHPU!OqA|fJvZV27OmMK@)J}!94D7Vuc%7+?J9!z< zvR+03m66KJAjR5SV$j&$;GF(*gkW6HSK|r(VOub3z^i<$#(Dx@!E8c#W^s`g(#ZJH zHr>4yq^!1t`{qIfx#bc1&DThSdvpTvG!VIgQ0O5_YfH#RH1uP@x}%jL<^yZchP&5- z&2F50823B>42&AB(|1CC{{A(-Cj);}JUzuevv_(c28-UDa8ql5Uk!EXbdyRbPj=-l;HR@QPS&W3>J(%bNLvCYeu1`%v3*Dy|8NN?6% z0cT!Db%`3+=DjAqE_0lGEC24%1<))R@@|EIp!UHU9{0Q9g5e0Amv{zy!sGi=4dvKd z??=g-7c52p+S&YDae$0S54V4jX+^K!04e)I+~0L@9&n|t$O3WEF*^J&FP(y*c@Lx^ z+X-D}NV6AFlBTs0EI4woyYKFB`MUhG^&Go1K*(1DqGDr#=)D|iVx9ncXp)6alJlcw z-PxS`IO0x-!R}sol5qdyOpusjaOK&bMfP6GBue5!KR{{JcTA<PjF5gcBJ4G-Uf!-Z`|O2c>*sCzTtse zPr!&W!ULb>34B5m%S-Tf;9JdagB4dU|8|sTaK^*PD~1JUP+JM!yE_7}cml6CkDMo3 z0YlnTNvQNe>P(?@QVIFf!~O-H06w18ws0;o1=6UL#Fbn`?c^#D1wQcvrhLkwER1m; zp!$BsTfOh65yMjk6Z5~I_7bR3{BN5_@v<>P74u6Ja#XM!Obk^~l@soyI3~P{=e^c9 zIf7lb6!1m76B6hQD(S~OL6@Vs&w~l*>GbV@&^DM87x!`SGL?ix%>}-Fe~e(5!FYed zWYpgJD0Hwn6`Z^{=fS15xBePwU0OV1q#^zQT$r!npE3V!ejo3Ml~DEke+-?5X6}1E zY@b2xHI8bo3Tj6H!Q`5sL{mQwn3_6CpVy&tp&did#Pam!kKt1uCYmm7Hv+o4v=#{s zCjQC?ld6TSg{}a`Bv|N&@O^zhFysT98sr*G{2}E?MGonhh6&{QWyUPzabP|t-co)cmUylz&uwy$#J``g)sxMBs?5 zf0ZoW{-h^HBnp2F<3C9GJ0Ku^{>`2P243aRuJa<>wQAQ@Bz`{{G7}A%sW+r0$v;~c z9aHUYG~`Y)-Y+uFa{4hrI_iJcL(5n+As!?)htPzk9!dJs(y9E{4Ea4|FVd_=cmmzR zZwRaM*t4+<(tS9rAL#$9v;J4~50!gjpntSO0afB?PFt}f$^V9{%?15icS8S%BJ`gL zdxZWwp#Mzhzq2vk({d;!C;e4!kHO68Uv_tfrt0?Z4Nj?nJXrQXq34rDNmb=sM|%aE4Y)UKQM(qLBxU>UB1_Zd`I1FnS=R|FR!gQQoa?C??`UoNaKiX z2l;by8QvD-U{+R`9ZozK#KQ%?vHR$bzh(zL@wv*I zlp*XaE-Jw6npS_9wj?!9^z7>8v6d0cGlxSQyZL<&-pfbgnzg39#N{cLL9a<~$2+Bb z?y|!_@c~R4c05HNfAA;l`U*2kL@=OkwxVI%cYQ_J1LS|7qW8n??ruspt^8$@0@|MgEEPaM{;2vdIhX8 zZ#y;}^K^JHtiv~=lE|_NSq{=189qAl(*0p};ALLn!{iwM49b>o6+Xfz{z3Qwwiw#m!}WPFDt}wO^Rb&Ydq2P8|x{^ws&D%$d2>?=$i^bA21@8@D=hYnnEe`zxxkr4eyCSCM9#U>$zv>KcDF zea7Ec>o0doD(BkzW~Zy^3K&qX&skjW%&OnmP~PaH3?SYx+qt^BrlOkHy`a9P&QCQl z6%sbK2EzKF0QG!S{^ zc|d0Szd~we{tGXK`bB4bG#Rt`cJIEUK<=q^7BK7Bx3C0Cr~A zG?lNf^;MckIVk8kH`LzAt2`_*atQkD`erb57Qhy3nriByW1YRgFFJS5`WpXGh0FXt ze|b%TwC5q z){s(!jy_Xx$=~E_tg5Zw?Bu>f&z`@^UAWAfzj`JsC~x%FzT0Us zmg*{e&XfXgeo+zUR9x>Lma5pGVyw6t|4zf#)LiR#;$Lm}>+7B9x3%02&_CMnH2{fj zjs{C9$;;NID5<-mu70zu9T&V5y}cThO__O~b4C;Wca9lNDKpSrXKa}1bf&=Bp)z1hYp$$^itv9T;38nc_(vuF`ilBm zC)$wrx*3&oh1B1jkGf)0%~d{#XwZ|iNIta?NRPVLH~Xpexsl9v`pX+Jw2*(8(JOlNf9)NlMh5l))_yH2kp_f^)->!fRNw|aO--}TS3_I4E}E^bR31L4UzpRBRYO+ zzsWGq4>O|h(eZt)k^G%e{M)1A9fu?72cqIm*`M_~*rMXrs5py?mqo?9ABimQSX8_^ zs(uYo@hwsDol$W|RCzs7{0pM+Y;B}G8HJJY{;2%Rv$D=}rff-DREja7p}whR3%XME zoJQZK)Y;C=<{J2g^)#B-Enhu{qLuvr@m!7`GSfM4;oSLiQ*}*>@ZbFY_w>gXOZdTA zwTOPAr$=i0AIJ3ZuKl7&e*ZY$T!_#y7o0Mogl1RN?_ zLNo{yajyeRpTwVyy9{tD!g;tW0cRj=#a#`U!iy6zp9W0fgz*^h0aJJb?i&G9coXhB z08@Ay?tOqMTrz>N{eUwNcHw>;Fokh=&e8#x!etW~dkHXwo=J=y16+Xc_+-Z315DxX zPeVNbQ#f-9V1Ar;~0QYl%Dcp{kL^ogx$737qZNL;hjhl9*D7+jG9!>zJ&^DVfcCQHk0yrKp zg^$d^zb67r;V#V8rvs+&>vPb~fGKR6hqeJs;ofthcfb@LUWhpgU55n*JXp+GU-#kouqbYsQ7FTU$G4H_oC=b!CmvF3=#onx@ zTFR6LC2^!XQFUA^dum5)x7MTf!(OS}du3Ugg=zDZRApog8#zBFRV%YLs0Ee|h4{>u ze9Us_^t$YNsP|jmcQt0qw5F$em8C0V-2R};E4@(+_66!P5im)^_6crC7Io&75V%nb@Y4(o6qho z6}|@AA6|ydG+!foP%EnS`5M@NYQ?opC~Ory5MzJW^%!nsj8~oLH zFjz@D*0nxLB^J$1c#oy?5F0^j+ZLDb6O8+~XOInIuX_Orkj%~s|4J7exp@(7fTH_ zKrk4VcK*{=v{!mb2s@;BD{(7F#1 zR96ALUcgG}Imn`O*%WqV6Uj7{Vc)-!v1HaHfDTy8KXI>g7v{OW3+B(Q6wkcJAy0Wj z&76%*b2iu1%|V^!nDjZPcHW$Mb5bR73TVxDRK99oc|$~oC8zQhRu@5qG5%CKvc(9h zO3;|^sIsBWO|X@SENlz%{3~}9Z~6EmlJ||^J=7hQmp8gO=RV}4`xH8u!v-@U!ydz_ zbYuk)R7XIg-%&i9{WZ0Cv=~7SuK&LNt%3h$4K!fSn~K<1wy$B|&VB9s0PjRUr=;Ea+@7V9$pSnL|f5HB;{SEtf?r-0}Z~w#lJN9?)@7dqKpFQAs!1+Mx z0~rq#JW%#P!vi}XXn$be1D=Q4AG+fqu=@A)f2js$LoN%K&BlN6>?T72bW$YpH1m(3 zPm0AZu%MqH=xwT*DhvzyH{x`9JeT48r++8?bcarl=Q5oBy)erNNbtXJj82c|GMxUb z`4MDBM9}x0uhZ`=7xcrBGdwPWe#S1*=?zBzLx6E;New%)RGm@F^Gcjq^B2em#m+e! z{mpg0r8w~Bn~z9&V@37SIvkj&D|gP>z^16n$E&PR>R~9mQI!}zThj0hfvL7wnt9?N z41St1E8S4%tHikzKQLMt!xJpAO?2QYip;7JQhSh?Sw$93ZHdaNCGZ&$5COd~fH5sS$iSjI@91w)G_gd_r6NnTFz+R~Do zykgAzjyP*TFVjTQQD;jyiO5*@q-7{i+lZeqC3|(!#gy8LABSxuKiowJv-DF}?6Be( z3Eb#dE7j8STSeK8j${$VXXg|ZcwK8ti;CBJ-KA8>xZyBqZ1ixbd5hSX;cyG)56==6 zPZ}~GukQ3=QE4oBSR7=THY^gt49^wPqzswU<6e`-T*IMIVCHZ*l$Sjm4#jzf#ASJ0 zg>27|sFJ*udHJjJ*v)L@Q0-UD{-&r;kTp;fkKwl9#xlaP*b+m1Acm)8`>M)u7>tah zu(^&|mRMrm2f4Br8I>9I^9X1qai(uW4QLiwVic=HON^@ti%LH~>stbY76)#bRXFgxcMvfwr{xRj?KNMrJuTdd< zd8|IKIOt7i31BR_hZTu?oe>l zfDar00R&yj-gv*SyfGVx=Gb{SlfaR1mHYw{3+j>vmX4DPQJ4`pvF0x|S8SMr!}Dtz-+wkg%3LwJectzDj%jX4uk)K7pNpb0EC@ z*NyVu(95^W@+*1y4q5&hE6#7Tu@YBot*FQOLN*w^wBEYkcO9SlVyX!(@+A9i&w$e68?p8@q5UZh8yQrc)j)c(E_Ad^l_06 z5tjOy<&4?bOJJ5^M@UQb2x%E|gtUke5&<7iX<*Vyh{jfy`^(wLxJ7_jY^|@#&*H`q!WP?Dv!UA0;(5%$tXCsZ zE5=S*9_3dPR7$XkEtuuX2Z$)dM5zQL@k7F}5po+$n?Huo2^O7>%S8>t##YqA84zox zPKcR76!gQaPa=bjd#C4>C3;3S0>@R0>jnAfIHIi8vxv%a3EU*hJd(gBwuP#c9YjX@ zXXB`mSj^{R^u44%An|TO(+{&!G*RvrT3=8`ljP45n#(($Z!=jd6+0<;q}dy>V&1?w zD#gvxLgnL9_U6K!W0sCn6LSf)>|rtF9Ez85d)Q-BE9$XVc**EOjx1BDcUC$CvNrzr zk{?cO@Jp>>zC?jUXR>~UL@Px{Ms!Iw%TDZYhKmbxz9Ec?-p7ldb+%xFeMnqN>R3_y z8nwyitHkO1bGaFfP*WckEY!yOdOthQPD;1zsfHNmj}aUy<6C4gHxnydD$d%n3&#s| zv0BrFcRg4}0;vqH7aO+N|D#tKn35b%i8yw~#muJ6xRkvYlbGc!*-55C8e7kj&k?Xq z-NMe0Mc1lZ;bcWQ)oda(C*Dgb#I9idM(k@hZe_}t1l?6!FW7@WZ;vslqRv7gV~qA_ zYOG)rbgpV;lb9pmNJj1}h1B~mxUa{czjEBs%eB9fUZwl8N%y7x_qnfV=kzc5 zC6$^kp4K-GOS~f;4Hd&ZiX|bAA}prPw*}5{)C96V8%waMvKrw!px(ji~XyL`IHperFiZZPuWtrTKS>whK$`&L1m^Ge99ZbEJQVmCD zP2dS*I+3c?VAH$Yj|Uy@v7aD5Le0<(pG-5hp}v7x#>W#X9xbI1z+(NBIx&{2J1v~r z(A-qbEMqwF1$wf=bt3#7f189^PK#NsV_9t2R}$e>gdjlFp8KA0+#SYXvi5x)Yj~;{ zcq$^_PZ&-;!Vjlfgkg|fHHt5GgTClSmuk`hNyi<5e@X=GW(^@1a!JbTEh9Wg>jaRTJ7a@NmlOA}gp;cs*($eVbf2i<@f06E6Q#&yDB&8Yot(*kz^TOk3(n+^sAUj$^j^+7@KdBS zQHGuTDAAK2Wyr~oA|^iwjLDA@HMLQqXElm3t5Nh>jS@Mlv5i6f$#I+k^@)Z^h$EO; zx!)KyffgM$Ho~TTgT#?U4!1#YoUv+I0g@P=DP9iQDmnrsR1$_7ktJ|z7F|v`HwH(I zxjil=94=+=L6BN#H|pHeIJk$6S}2K}M1f1?BBhNLco>^@HZs|%`zteJsXUx!=4_{m z3}E}Q&UWT_$(A|Dizt)hDUPGiJOlQ>_@(SUhx#DNF?q7gAc~#l(2E_-J&O{@8R%{9 zH5l;Bae5`jaN}0uW|DZYZZH!Dm|*Z@Su=(GeT=ow8UKR)y$3tH8F%#F;8#eCm-eU9 z9##CXMi?J$gz-ZfVZ1Oxl@=+04NHuVvc&17MegDixdo+oNz7F|Z+;qVtRb1KW(K`5 z#w=H+Py`KDgP%C4W&{BWn-ra|QF{%DNu?_?i`U|dBF&SD7{&3TBQ~)n;h}Ho`sONj zbZiM|&YXrHN0rXnj>_vhWbt}uP#cI@WRDn4<_fKu_rl_%JC=G6Wi&4Z62d!VY3wIc z2(LbeA5%K^UhbQ63%Hxou;+6BltW0vIX44=ovk$XA5(6QNI~wOPNDg@%nc%B-amzJ z7tV#znz$N!bYWT~i9I?K8ST*_qq;Gin>N+3M@Olx_!%Q=#aofZDw9ZG>Rn+(c792w z*UjcD6DU!oS=CuKv6U0Ot=9|O=#TJ|GWihd`&;EHSZB;o8$*0!Z#WD#_J%`2Lt}=+ zK~>|1!$CDkL*m57-moZa>9EYpTXLYV2pA|Xx6kVvtyHyjEDW)6o#dD+9^P@HE- zoY>eK5*6OqllBq0G0QjhK1NHc)Wp2CdzEVVHp$F=QHjf2TAYt_prZMg7rI@=?!wYy zk1LN^q7w59OL+z?t_5{buFLDysjX3o2DK&;dHKaMzfHI1to+;pS7A<3eqL!Y>sQo2 zLQ0k7n`yH4(&9o_PB9bv(CTN(sOzwuBYE=fP?}RzO3d*t@Tmw&)N2<(o#$T8bLh1U zBPBwwWf*}n@}L*JreOpU^;(7#L7nX`W--yCQetdmV%{p3Hz!+G)XPtwzgk+-H!ew6{c_le{noukC2aefuyo3PSIqU01Ika#D!iJc)* zQ+cX*wY&+t_?$G&TmbFtVtqeDpfb!Tk*$)QDR7=yE;{+MjE)2`b+#peo~t+tn4Rws zvsBAe2R3ePG;HNVL9>~fjX+?F{Ehinup)IVVT`1L@}?$M9F@qonoFV*g(z%QR5H$@ z@hnYcA$ny_k_q{SdIhQvX^BJ1d#fsAcAC=Z=&* z(3mDwJDFqE zedY{D^bGM#Jz&m|-zYwALQu?>f^?htI%y)zna(YGnG-SnF_+0d3Bpp7If3dl=Q*P1 zS%mtV^B7+PVe^tXk(y!7$KqxEPQ%>KoR6%E=k+x%t8X+6Vtz8uq3$#@aqCQyn7RRC!zm2K4n)&1FBWzJJN2?vDu=8yo{9>u% zZZpR(b&e`i-#2rl&zPhobF})7ImgTdsi-)nP6TX74ZqIPlQ~)qnR8sC=NQY>mF67s zV<_BriBF-Nm&}P()?zY)AL{v?Obr5dd;%x1gr}-_&dnE$+|@j%6Ha03<3zY0giCp< zT3{ypP$!(q)ISnoCkQX#sp?Ki=y(fh7mCdL%$d&~B^7W6QzrqQtNS0gVKKJJWp&0R zPO5g8b64xRCopvlU_*VGIC*;o9F!}Wlc@dXTzBiaVww7VbFM=EZH^`}24*I6I@Q)H zlw$CfR5Yg0w^mq|^k$A>2=yT^TlQ&ZG@Ts7`S_kEiBg9qn$L;yWr-P*=p37JU94@t z9gh`i(%22Lju9BV6KgPS4#bY0%wbHEzZW~2mQsl|7^`lK9Zl`gz-4d%-g69bJ;YWlDrWlV^lc$J>sLs?OPbynJyYNBqjKfKwvHa&{6vjr= zs&yVMZs`cKP$eB1=<{Yq{q30BbL!uu4ziq?2 z$~^PkM&|9vY+Xj@p5M03eg#TIxjfG8;BDIlf}@S6$$1?}3m*Xo>@DJO0(}B07awuK zcU#y?HoO_lOSs%9;W;W{W77s8r%LgxwU{6xejYv2!nO{Z%DKq-(la)^a?P3i++cDB zw$3<{XKbfOFnPw7E}2+5WiI+qfkl^tB9c9yqdjcHJKdc5%?9(GI`fBZr$sP-*tS?_ zevX;BE+1!(Psl(6!YkGn_#4^7vCo1bUL)tlgg4VD)mqoQ5d^7QWebl!gv14c1!l;_ zoWX6J0p3aH44Mr&M~#&XZi}6Nt86NI%EE4o&3S_}w8{1`9oUc~_R?6q@6P$%Nj(J@ zHtWXWHxuB}*i;e@O|Se2(F^pbO<9TPg|VqtUYbK`M>Io^Ch-Pw#m*Eub1Kt-&5T_j zRFVv19sqb=GP8 z8$ZmWC#oa}J?k!(2DVV-`wPaov0vGgs&)iRt#RF70^&{!q=EQT-EaO^@Ob)C?oYb-~lq+A^nJ*G<6nj;U$wig;8 znTFAT7Y}t0#o&_(y#C=wu5au0KNK@tb`fqWhxMp1mFHp>nCt(%jurKPA!d=RKPr4g zuVbyHK^Dg=vCdSZ;iP0gjKLQkxQMieO_#E_0UnWC^ABUBMG9-)t4D3TO@5?D9lTBM zj*<471ex}QWm@Jo=`z_QV1!I!QQO4rMtuK{eX0E-Lu4($&WI50Ej*uADgb|}Efg9M zk`8E#g)!NC8qNK6ut7HT}AV z&wp?um~R-tbxBgwuWRR;HT{Mj6`DS#M;+WI-qg-9_tQUUa!he@)xM=&C{&wbc}^C{ z<^HK`=Tk&APPyrlKB3{GC0tTE^h1}jH+7MHS;+8ugwndP=6LSSCYrKTz~8;N%&O5>|w zHKNwb#pg8h8@-seh^?4(0*)@)mlH>Rt%2-nvNEovWfjkJ^+QfW6YXv;~`d z^q`eyIgM7?O@+^EvdV7ijJprS%~t)0n&lx`Aea4w)ch&7#KmjEVqY5l#a4VHhYR{H z*wLlzt(`1Q>0;{wUC>NmF43dHl-B7{A?T&nIcB53%qr(PP7D4e7%zcKcCks!2rUZ9 zq*%+X_>51KSSp?aa<8}CupRE7J$h7#m7_<6SSxhP68c-ITb9%EH(3G~YqLql2(g4f zTsSeDf2rbYLtM0DhFO_FfSN-n8qUe+ztW@9A**t9mkwE#ebLGLz)4m1 zMKSaFR+XcBD)+#HsxiLHi4b00#TF*B&K4z>>9ZmFpsu2)uEDAH(n|WIDvsifzKi$3 zV*TVmDc*&pcO@l(suL7g7A-Qh;C1H6m*&Wd#U`>klX}@`(n@l8W~+O$e*W-s@3|u1 zS%x?3(iPgTo-L#l-mG6;DxyN6{c4ejI<(4~sw(!WD(h4m(T03u3tm(-V5y4FNbv@o zDMux&rZBDM##E}#H_yk)^r)DRm8S)1>khiLuiEWlbeiU7Q+^+_;eT7Gp$bOQuh9p^h`c* zvFg&tQ|cLMdQ|wpbT!B91J6^JnDurJlJbi|Etznu-sqak;ypU%HgN?qvLC0@T#`X6?u5Q8A^BRi!5vQ(BuU zJ$Vuzj7O+Tg`iH$SF!{y*;OVnhwOdQEIzT|t8Y<){Ye+>6HBUDp`YqeA=qaYxmXZ_ zov_IHzYy$m%Mx9%nP$NrG({o=%dEkZqqi;iFdY}?O|B)+d%ke9+xY; zx$-vT;_dg8Wr5jCJ*`K@?CBX@FG8$mb*&|_@!SI!&3*Z6`}C5wTV%Hv zC2hA9ih^yDHNN(n+q5C4icdJJYB2hFEchBBXLpCe?me*MGbxWn&ZKaviR&S&zOJIS zxzb15r%Xw;#Ne}rJTn~&p-b5-6h;K5O;oYzmSVvd5jpvVf*Rx(O-EULGb+WhRQ50_ ztci!n|E+?rEAsqw7>F)q?>&^iiZ@*qu6I0h`u1LojTXggUdI z>NH*;Y*c*@Snw5sU3wbcOu6Jr(v?@H2{wMoM%nu~wGwwU>B^b9Me&X36rbbv5hpIe09R z>Pzvl1T?@@MIQCEX#&TR6*;D&%>*@@ri>&$mOb^SmR=%XxWvh=dy+++!;a*7U4(cg zRf=FJeUwo@HX-b) zZ$*du2;WTQeF&efg6OWJd6?GD=ia%N{h8dfgAtn(*Or75g8BW3PWx)=; z`)Zxv3-hFeoZky2L+~RvybqsuSO_4?4BT?2Q=!YArqtd19ok+#5 zNs%JaCt=W;aE$ktc%ZH@?4|827iG`?6)+#-rjx_U&a1GUPjrVt_rG-97jFggzkIwc ztlw32^>b<};Y6Hss@Bu@sQITeYSwS4s6YykP4qtt=Fq3uv0Oqg7q1mR6T{f0xYt2U z{e6S~j`yQZdBGs^u;V}TzJblQ5NaC%PN$x^jCdPLt)b6$(<{~Rx|KB**e^K_rO#4c z!V@xO4RFOJdG6ApERQ?81g8c~X*iEnoP$GQg*XM3?JjWR%l>&;YjJowoU6!PIt-O% zc&cRurCIrT_-6&hMP|P0@HvJew}#2H-9^Qv{6E7GztUwmZ?@c<#k4R*5d_6+$~nbU znIaYw#^~bHktbf$qGFt6!?8-ElDYY-)-anX?#|6GTw9u(gEMc%SsuLjOc_Rm36_(H3W)`~gK!nGbBfpyh4>#k!o1!S6pUZ+bHDu#Oxx6K&qF6!{8uD{A$k?bT zTx8bLTz4+B|3i|}oZMXI_-?YooC0Xm>nhG!^|I9VK^70F5AWSu&{fK3di>cmK$6izL0WtSFt@(W>?C3#uJIr({PawN9U zU0hO_SHw;WCojt{DJ)%40?YB{y;lrRd10+-`tWX^I=aj7>yzo3Yn9!A12idVY| zQISITGB<3J)RyVab1%!uLI=h`ZWxR=t3Vp8Gn|N%p4m`ycFwZ37~&0D(qv9vR<=6} zqr8!dgTU_PIO&_Rppj4i^y zEP+Xtc*(97%;!dU<}m0qc2*c8*rHWS^9#_^sM}|8V@V0q$Tlk~E`(0dL^H!EuB^gR z{yIEtwScNplnL$R7iF@u!*uBAT>Ea)(JJ^6&I`KEFV#)42>#Si5UH)mjugPdjDL8I}D^4NkfPAYsEh5h8bzYc) z5=-**cEtM+*)W>o9GqIlWZK{pNd-$lpVG;eM3NP_vR1+(q%En|v*e)7EX1 z=KJk)&OY~^d+&^pf?55e*JgC@KEHGJK6~%8&*R>E?mc!g$x@Ttv?tlxv2&MmubW5> zZ5M<_r$v5;=W+2!FWO>V0m#-}JGVn$D*SCu4E$uYiomZzl$SxhU;wJ zjGlB$67PiUXn3cy%T2F;X9q;c*Dl%$0PUvH9zc4=TDz@8XvDOWcUmbV3AeQe0x3$L zaJ^*fmR;MO4hsN9c}I79tVAkT#%*e1OG!l8Wa~qtjyadUIcTEaB2p zivPP{$ag)Ch;W+l&|!2rwqaXTg5}y}PD#lme zs5)}*d?c0JCGIS_b^gZr5tJ}}mQ%7gPG!aC$b3i_sS<>R7Tj!TYDyG-Xdqift zfx#$>GM6xT8fCwAep96?zO>qrJbi^6!80~9N+MJu-gGLD+!C)WITlzVLJo#%^^Ft9`(<%ej5^{a;Fmxo+ zR7nNSSqx3B0<*cM5D9jn4r|_3cr2jsX-26+>ZycvT7)-TY}-tqAt^D1*Z|gXSC!(< z#bs3XPDN!T z7B4A*4WJmJy6TpiQf9C6s&63fiaXmRNFQW3nPY5Y$glzQI#V%Hemt)lycNN%=n?6U z^Sw!|0f-x7En}N$0b_`OC5xnawEf6B(@h1m7pV%X#$)Wv#!{`&6;?MMwn0fg8r7;Rr9*uFFvSMJVv8nMss@V)f4pe$3TX2?* z;o2*wEDKLmPEejN5p7I5rgkO@;N-@t9Ya9X7NU*Ldn50Mlrd#u_{UWCdl8@!8;vVpy4jzIevRWCF-lnJRc^>p*%y1%QR*hDIxk^wUYf6UE%OJKTl{hHZR9|Y zMP!$7t7>}7Rrh_{G(>HG&waZrP#}Zbo4;L`DQ%1t@{|>e;r%P6YsmIMt)W_ak8U3K z&L`5Uxe*yHk(HEDW3+As>D4ybj11QJdmmOT-TBOY2j31FVFD{}QP2={dTQ&LK;_{|S)pm+h+mUW}gYwZp zprip+oD4%@v{;!&jpDTY7%h;pOF01G{C|%Bt{R{T4!*+W)I-2XB=Vn#vG@ZbW-WAf zb1a4P&*9%${EJ3zj?NPQf-^W0ekut>J0L}?=~6^+AGEGYO>gFj`NxI$9_DY6qFhn@ zZV@?qNK_mb^G6I-%qxoDBSd_$1a*sIx}1yjoG7airSXlTVvksk#OOAWAWX9mk44{B z6;{;TqWHa(vA9MS7AKbK>}6F%QT$G~5H4X(^!7>!0O6v`Dn-SpsA?9o?-p~LMdaRN zLhO0%wfOV&AB1^9MD|3BppzF+RZ`hD)HqaS(WiiTjkH4Qnx4Q@0M707Q;VO-J#^Mc zXZO?3Uiwjr)B6j?Dk36&SyYhpIWaGz&N{@r=lQJU1u<)tm_dLJQT7?J@B@%9Ar|6a zMYSl7jY0faapGZ7@x~Kk))Qj>%cAOKsf=n7DO%Mh#Pg!8N8C6r?%XJDY!>meqHIJI zKO^GZV*Y)in4qVKH0v3%Sjnikaj(qYA#T&fETg~OVm1AF4wDo7*(he*Ey_kkX>?_! zm;qIu6*CTr(v4!yeWL0)vEWrPGnVZTB3AbDWl?%oL|PseMVCbx<;{uGUa|ZcamPln zyjc{T6{Vvh_Kdi3qlg`guM%bPi(>YOh~>nL8dP(mn0HLX;}xR3MUFkYV(u|9TN6q@DHcGhr^Rgt#lmA^K9QqKD@5rBMC87H zs&4V9sJJXDUlg;Bi+MH5D)DOKKJSl3#Umn)cC}Y5IShTS5;K)(vkr-pv!bd-`4-T# zMnuIQi?SmkGV(Ba#@tZ>WzId0-xHTb7Q7**e~;X( zGJ{t61yuc@^xx4#LVQ8G)qM|(>Bk9Ceh76~L)ELSAG`$$Rp7>#ED_?g@n5= zpK!6Cfqw%!*k=4wesKb4k;m!hDWZLx&R(RSKc>qs(vS2DeikQo5f!-M3#9jjq@ZTy z4+v5%XrQyg~06J;p6Ta=yV8?)1iau(k&7r%R-+h@(?THqEWGlpDEWXWuMw5;MseeLQ9K~Z zqgyMrA3qOceo)+i;unsJc(ZK#+o_*;`)P4A_hMGfM=G*ihm{+#FvQ5Z-^$a zidN&B2>2845H~8$w9Xm%u5y!?MP(1e9@H@HKNRL7=Y@>E-xXDR5e)AU<=+(xE>h9= z5x82sOXmqM`ZU8HvWu2Y_>^qI5Claph!w*_E59!0B0iiHl@|qdttkH<`tz!2)%h3T zFI>Co1+nyXG4rHY*(^#nin1??(r%&CZYRh|70Eip%=ltavR%yTCB&?~V)hf_fgNHk zVY(In^D-L6I*N{oG|1D6swH7scaNBrsS&f|Ul%uTlQADTq=QFquMlPTQ}9|*BbL+E zTb)QHa<0Ttq%4idTrpYe(d0Mjh-%tv!;*ap(}yJ zY^b$ctOOWdoByKpvch0k%2k-8e24PL@s`OKtH_Cp_(;zaLX46w*ksBW2dT!A6nzz^ zFlD?bx^#{x{=SG)QXCQYM0Du_aZ~h`*9rzQcpJJlkK)zE-XEU0KIFo*6#gE~)JWgp9r|?rHPiGTs z4iV?k*?cN+VZ54hETZxC9*QRw@#A7e&v8+H9NpVEk|r{SG=;PSn$~BPMR2wqS%XHK zZ5gda#L12o;}{HY7mN3bn~z~WP$iZ=gBY`2lu{AVTPtj}%5upMlry|qgk}mQSBd$( zq7nnuSf)dil1h6{#SqRTv0D=ZQ0ZyP!G3i^QT&kho#)UMo^{J4#l&7MI_pLUD@z%Z!)LUiLtr^ztYrXvHB>40qiq-cEU%IS|PHu31!I?ouEXoVvwkl~Hzb7(7r1 z8jT+lhw(QiLkYzyF&jF#iqKHZ(!NKO!_Id^S5%5w8^vNwm`;g1@QYav`5r5ZsxU8l z?;I6SNH@_U>5$(grxDe1gfktXct($y_h0~ZDg?DgO}$=LgCpb|5%brGY7`fFS*#%r zIeDdgzDPPXdQqCF#T6sK7on*=FXBr@@kLbpGELfwUyE11_GM+Z*gs<2=!^a`l-x2d z-q9>JG>cYL8bgMs#KvZ#sLPq~3G`qek+I(monZy77#ACkQ4!To>66gR)MZ_RxV9*I z%N&YDOIk!CCzc$?FB<40Vr4sBuN=WI!qcc&g#Q03P!FlNMiCEX+%C(w55M=xGHSUD zl++^<7`d!`3V*~(bukaqlMzw1l>Du%MXVebTbo5gvv}7=aoZ_^dN0d=OWfWp%9_Q> zy%yaEs~Ds4!n}_Zj;t71OdMN}=Zmc$iX{5s6NkvdI1Ioiu(Ct0hhaEeNRGDOc3za7 z7q_*Da(Gzma6%0pYk0gXXAtLQ2Z{DaS22vZ8!;H0p}Z7j-7+d>o>8Nrvz~Fr6nNvI zg=x_mv4mu7mhB>TOkRQMT_8?tmThKQmR+-R}#P{gdfqKFzsYAm$*9qca zDWv#n`db;gXN#G=V)lnHbxMfR5wWHh<>G9Nb&90~j2bb6S$bYnofj)x#B5A`NvAZ3 zLA~@qU+a`&oU7B)Mo~sOy=`1noYAWg80eMvqPf2StyWOXFOJ;@j*-~91od6januOw zKG-kCt`uw=UMciPp1#&Iy0AMcOk1N%=k{O%CT@hQU;>Gbz6xQtSKM`3Z0#1aH;VFc zvHG&Ovs;vJJS|pS#?lmp& zDVAVf(j#tpQY^*Eh*zG=`ei^A2;tfxY5w$Uf#|lGq z+1!v6J@iKRZXj4y!N`01D5k+gJbeU{gS*Aj=f&al)y@_ZfrS%|`(7xSN|)xf#WiyNQk$wPc^oe;+{`?wX% z5!Y_L?D>Pq2Bxtzt-zc^{5`EfMMmV(SO=CrXc?qB-!e$_YgpE}1+U`BC6H)4&LZ*$ zOTGL8QS9eVWXY1AJvAfu_4L%--Lhm!G=e3T231h`9I=g@*i{MCY=9cLX7k3m2m!VBQY+vE+Pvgy%Nst(-uOmM% zW%E}^IDhP8E+4}AKa|3_=-;{ZBb@(xEC$!Aa4R4;;rt(bk+}Mq^Nzw&n_h+$q&r8Jg-Y*@7-!@k+!udaF!MH;TCjFUk{x4-PZm$pL|4;|x#x$;w z-21Wm%}d4n+9v0Z{+=s0;r#E3GVVPdc?jo!L6vdQzqQM&^SujeaOZ8D{~cU|YqN1_ z-M(cPEo$vRoNJBQwxF6&^I7`4$| zUwWV?*X!hZv7>qKU|*M`%67Ws=61A)4s8;t@k#plCN_Y49Ugw~1Z6Z(76s^*o zZuKpY%m6+fO1t4Xo8PfY?j=E=1zd&iV6MV$5-V4)tzJ`Iv#L+-EwKt;sqfD8tjgT6 zVcovY!##&G1J!NFx6kC;H-?v3*3}~0nwphEgW1g3%51uK}y(+Y#mM=%w-Oa^zX|IbPujEmn$0vv0+Wy zP$u2y<&3|8f5P`zq|_T#3KwS@E`$5ql8>uSwk zZC{U_P^R2n$}gf%Vp%%9o|GOQz)nZiz3})hm>4Izwcza9>y68PD^xahRk>2RXPtw? zX*3gP;Q+LR4{3T;q_)BVg}z|?mMDsu{`XRpE0udD11NM5t}xn<+^e~3?^25Ye=j|; zO!i+-8@u*ukPTV|jkhEq{kq{u=7(hb7vIIe*Dc^0l3+z51?hGAQ@LK{JDEZJh0fl} zj%{-Nt#iHl+p7>u^~`IO*^P=;U0vU=1{vPLMM$5b`~Hb#q5jI1z&C2a_`*A6!JvzF z$RfFE1Op5A9Ozp~`(sgeSFs4K7rR-p$R>}M=oed!6~g=gkZJgb+XcGh*KyWb zpyc$x=nx=M9+fLK+#~Ch0M$@N34`}OJSES9h$N}YYXK-nCy=lXm`erZAwIppoS6Xg z1Tg0&z|eTVN6sV15D2_ym|mFw@WkbzcKa>jao)GWP_$MuFKs0fsi0uA6|@ z8DQw6a)mtVYru?8fcXK*GXdt`fk{k&p$E&$CcxYR%*hEbcLQ?)|EPU|EsmYI`i`WK zzgG7p(*s?HoF5wsVfNtailk63V9@gp=YDQ5Di_{}L<56Epqvx}0JgSt$|ObR0tEzl z5GEFxjWph6Rne>Emz>o(Nf#C+st@4Hiu#c4E3%9)&EM)Vw;}YH-UpJ>hHuuRp--WvbzD^DO( z2PCFHl^LLukA`9-#Mo5TooxCGIPo%-sDH1SO^03Yg_^*t&e9OEW4rg_T-lxPY*DH@ z*zV-vP$kNtv)L-q^Sg=?ao{ybVCLbLI=)!vJMPk$Qi(YdkcZ$+8bfU{79p>tc5WXX z8Z!grSmX|rgP`U+x-^Ey3b6=(FvSMtfH`C0;buEgU%g+KL$!fC;APi~eg2b3S3d8~ zVZ8-Dj&kbcg9Ztd<4rjxFL-V0&q6ULOonGrP6?W4(4RjfG1+vwE8SIHW7@lo=L)}mYd%**&kyO8sXYen?3V9Qj}-9iv}Q>Y*%y*#nAm%vLOY zCgYiPC|1@&&J+|6{$)UO~_N9`vI;b334R+#sIhnafcd<(cmb^#t%9U{wA7T4tXZo0%D`?o9#q>MKP0} zyHGLn9H`-*`BS7Q&*X&~T>$S(BM{J8`U4Gzh_e;$hYmQ2fOOdP@lee8n7 z(9i3T`PNX3g0LSdd8qEMB7wBv9+UCIR%BCt=;r4$_QNXZQ2F5sPBMQvLdJoC=mq_7 z84RlY@Tj(~DMp@HVZ z0m?y(vI3N&7G*ss;}&HTC@)!*U7%dBD4n2C`*P*Ug7PzqaugIAI=PtN1SMfn=-tvf zi$X7&95am$fDc?%Ig;8cG)1jGBGo;&^x?s8t&OsUri---crNvzGYOG%%l~PppBL zUH4j3&M9CXy(tW{&S3rwnE$vr4CBtT=yUDa#bKCtm~w8wjO2HhDU7Y>jRvy_n6KOt zR?a;JvjLdjSssR|GniIj@cdgy-8UJ`L10q1hhZ8F=EK1J=i9?DTMgzJU>d5!FpUQD z3NVkX3d1xT%wGfZLQNQkKBA$HH-Y)D+Az!xgPDbXa{0P2Osm1%22AJrFw8E4*#gX$ z?+nB2Hkf_DoWT_WoNT?0GXTniST+iJ-2*1qBfwk;#ZWJ+j>m!dr%=p;2J=y19=$t^ z*Fy&L31F)43Bx1}=0#wh4#lJl<}1Lg!}4UXUY!Q>9bj5QF=>g}O%EC1i|=0z#i)Ao z$W!%A&}!sXJo<6Y@F3J=MxOhDm)41NSY^m^^r}%EQe^Cnw9_B!;L#~z(D6f_QuN~X z!J|`(2MFW9&>H`TY!I$!{{AWSDQa}O?Kbq}0hwrY`cGh_MyKZj@=&2PIz5NKP&as? z$v6R#99lK{cl=YM)9L6DiK~6k=yVB4YII6>mVyWMOCP~MH9B=8rx!`1(<=~0>2R|* z$(++HX+HpJbXtb~#9i4W5YOK~292oEDel(MGNbRd*$=^Iye`ZS6|13Y(uX=oD@uX? zj9i!MbS{|~gF4C(wUx{`foJnU`I1Ss#<{=Vn=64_r;VNmQaO45!c{ca>!_?d zmE$QupK`s(FQlHsRv7fXi3_Z;2zj-AusnZY-8g-_IyQU^j0>vwNY(8|wdcI`j z3DL8@d;5n*p02(=+~^#2#c`5YMkkWekAHNb_y%>TJkcu^>o5W0L^5A7GJ8u<=jI8Q+i*#wv_$@rtQ?av*)Ef3VAQ@0#m%vR<{ALcWne=~rK`5Sg_t{?5pg z>&s?GhCHT_@~=RvRPuz|fOAu*~C#IsGm;)LoL=lCS!LJR`p-h((HrnPWRhXOsKK}xZ;>_0vOV8XiV6= zt9@BVOT*J#FW++oRA{xrY(7~Cqx;iwFp?UJG$N<3?y{VQy+(&&aYJG1jpp-WTK0}x z@{pwNp=GXrtPln+wQTR+y%d${U)VZ!H85OiUX1qDpBP^q8^B!-G#=Mm**EH>w-7Hb z)%`me-zYP_k-zQyr;(>KgW;F;9LlwpCt>7q>%(Wt7Mu4D6|#l2`{w%I2{BE3k4}uK zA1j2>_9}tQYP`{(9v*gWMRH>Zkn06i*(*G@1aX7epqDiUtRR`<( z#vA%x|05DbQIV(r`s|VnJZ>Oy0U=P0GVGmTo$ArYH6t_P;h()<=su5d2nnW`L;r-h`V ztmc@E4h^rco>51DKQ;P+D87UBbJ6IBq6B%Hd+=zm#pq`&HZ`(N7a?`6pq-g%rxFbBk&xPvBiEPGa8ZaU|*$Y%#^Q& zV0hGI#-htn3eD}^gY89k2b4ckC2`?7*j__MKNz;))gjLSM543EdahadbJz%kKu-cQ z&h?VHo&n{kMR^gFn)|%*=g&cT%)`Ea4wE5N*-z#$B=)CXdYnVJVoEkDcqk8(#ag;pa?Sh1_#B$L|xF~s6Sbve!1r5o1p&VJ`mB@9p zK(3%Ru;i}u$^!7iR<6@2VV-H`?}fCXqaWQhQ&tY?W%OKl1u&{L<&S>!bgZ&62B*pH zq1836nQ@61^U}Gatc?)sXozDlrY}$w(lcq>KCZPk<{52JeeHu|OM}q{`MWI>``9Op zHmHn7*xfzY$|t2Zs9tUwpG~b^%FDP6`pfdXWaJrwAv(QHP{Q{?LM2arpC1I~oRpdU z`F)_2?cf+i1w9GMxJ5YwN@AxMa~_oa7Ulb(T(T%Xp$q_R0JVAmpzq*#xXAbh#X9?7-)J?y(FXu-;CT+V#kY(tx>E-68 zAste&v_eihI#Ha7MLy=^q%LX2{t8a1SI@U%Ppk3t*?6@Y|4Eh6_e-njLns7JgK`@2 zOCI1JY>P|A7Qr`LSU=~Ce%$|TjGSv10mMc#)y5#e_Kin04MR(`%9 z9VQS{lnxUh2LlZG27TZj%}ndZo*h$JWUq%Hg0h!;hl|qaU>*LW(P8&cXJ0Ct&2%5` zc7wljJB*-o7#>@KdfuuScz!3N=Q2bB(p+eJ*S%f~>ZW=N#1eB!L zi0JinUKXmBGV3*m8d=jk)(J#x(!YK1*ruSB^$e)e$V2beCr2^Hz+1!JQXalg@)Y(= zSLQn)j4zUCnOk*AsMqOUrl8E)Guw?V$m{HbJ@Y$PVT;9f-MQ+WRHD9chS=*uJd<0c z!jQchkn^pr`~It_`=zU>dyT0()pj>^0@ksCB2t064-Vxrg9BN|*wnO2m5a22VZ1M{ za;r4C!qyxn;R$_48#wVD>r1-Op| zxYP5`HutUo_mflNo(ph48sL5=z@45D)$-`R`%&X{!C6wT+|9?4D{m@ScdmD2;2>g@ z%S-EUoNHkRBk2|Fb;hP)n5&6M%F1ibqf{x6oROgdoOv zhsX1uDxi7xI=3A5Iu9@Hb!V=l*U=ku6M3C0Ge;zk%-ZYD6{tH~=Q`G__Gz|Pevew) z%T~^hS>M9G5xF_9*O_`v%IoMUWbHq?6*RIu>|?dG`fXv>-GfU_(cbbBd&{J_)4Tsx z$!lpIXHja82DsCn*BYbk{;dLbXPcB)w85)6=}z>!slI?+2=hn z>$(>~V`|14>}A;JuVcMx>8_BpPJVx0OKUe1VAd~V--s;E>+_~wlk&P((FJJ#(LP_s z@))15<61Cf-H$Nb)48;_oM&&D6!+Hy+~)Jiz_Jl(_#iz&#P*-WuRO4HdWR zesN0NuLQU+4{+}YaIXk(zceN8KM!!P32@&Z;JzZj{q-qve>1>+Lx6j4fcrX^yKe7Q z$d#|XbF6c{mt&pB!?pKb;aXgWSoio<#5z}Ij&&ZHb=^-Cs5{5H>sYVaA+}e6SXakZ z&W~CD3-*mjB5$lS^_o<)d5lZuIJWj_^p(0TtLRsI9v)y()=djUn>X28CdK{n0Qd0# zcY0#n=1y-^YKrz%r(LbYOl}TKcekyQ*V0pP7Nz!LfO{gqJw7GwPX)N232?s@;7)If z+I26R68EPA++PZCr#EdaZLFiWQf=<@ro{bs1Keq3Zt<$6r`#>dx?R_Z`*?u+`2hDf z1KjrpxF@Dm_fG}5UkGq_IBsyOT=z(T`|>Gqe>T9Ko`JFSTpJH?e>}jwW=hs7mf?UjGrvNq0E&W~Atj(sDt#BU07Ps-G5 zQlpD@E}4C7?NGqy#{+Tx9M;V3Xw$*oGAZsI0q$b~?#~9eUkq^HKPB$_0^E-VxSt7d zzY^fyJ01Kb}AaDOSl{Xbmp+ULJfz~^}`<64m0yT{79y$^9Mz|((R>-OFS1{1Y+ zS7vVS9+`FBe^{XI+}^Kay=u>~z4Eu^wI|ui`7!Ie*f$EacT=xPwYVBC*|hilEDuv^ zPjW4ovhKNn*Zsc&nrE+b%VDqc@X}s)^g4Q7>s5H2D>HkYM`rDHQD|eLUgkR1tM+NO zSALIL+sjtYk6B;KzENO>+|+AQUKi(**`wCBvOG+wJ<7FU%DRsRypHbG=F>cTom&oj zorjn9x|7$@>+mSwgt5+*nZ3>C9Mr5(S z+c9GsQ?E&R-9>aUdX%EqsF$-m>|?bZTnnbGd)W0l?JZBUw@ixr-vqeV1i0@Ha6b~@ zK0YPxmjc{31i1GGxSt4ce|AdTUkz}t3veF_aDUw8u6@1{l!@BAYe8=B9xH1Lp5a=6 zr~kOtW1Hn*Aib`@T*j4|+q*|*UH69y)ScV=b*xwI7~3m%lIWC#o^4fVU4^wIzxfV=WM|(s|dzmMh4;Iio_cCrd>~$Vq+Uw3;N3W~83a@iz zX0P+etiA4Vfx5HTUB`OWwz9qQd(_$lTRA^w{TcR+$lLq@z}Wq~sk{4hWTyxHZ9L&t z23}Zlaj=R$B`c$|bL=1#e3F?k_7UJ^+Qm44SY#l1^b<;?4K1PS_0~Vlb!VSn8)uC% zrFH}BnJMd<-FBgCdY=7xQrw>kaEGwm;`H5aepkp{q+F%c>(V9EGRO1JpA=3aX%5@eks7cEWn+f zWVX3qnG*M-0qz$A+~Wc67XsYhoDz51#ZuQok325~xKkLgFze0*xI4T3_w25wy^jUB zpAT?<6Bf3)KO5j4pAz?6fcv=s_bUPJCtdEkC;Be@aH6rFTMqZa9$q?Xm2oYgZ~wt# zzi}i$NIaA5N8mYOe_Rd2C@a$g-%6_m#(u8M+zWeT)^&fiK;5}7xQ_Lztz%!!-@~q@ zo>6*Ke$4vcW#5R<8)x>x&tCqksXM;n#a~OoS7jLeBkF~vO%vhvx{h`ynf}$tL;eHd zef>LOrr{;U$Km0W8VlL0fiRW8ECK*9V1n`e_j>iM69^n2{Jh?2*&1*s)CPBSQVnwO$vKp6*yxGTyb zP_9_Hj)THhR+!VET(U5q1%*eR3iGF+&_P#<@@-H$Ebc!7g`9wVOkv8)P_n5P$j(Yo zj#|9#0)_5rx-vfmN{xki7?cFm?w0%>P@c9hkAp%7>0ELD9irg*I=AGPLD?YXNdN;| z^wEB3yqlKF^;f`fpQ0$Qfnw|VKR}_o1FGa?r`|-sluUBW#e1Rq(JFuSE0$*!DD;x1 zOKAj!pL$iiMhSz1#)pdXxTGXJxqcrM@>92*FN0#&;ya+6LjkVFt`G$RYniF;Fc$BS zrg%-qODeAepmHU#4Fr8HiZtqKbp|1ZD_-=}J*P28vzNKOl@H&zC@@4bR8{g} zP_|oIeGC*{{Z^Pi0!6Jtuywuy%DAP&zX64cbh-ZvC_GD2}=P3xO z<=Fp_`IvbHc(t0f{T*|g~zl?!gqu6c}v2NgYuXq;io}y+m77-89DajpYpM` zzI2)*)+n2sjT`+W)i#RhGO%?$^REbloNi5Dvv?uN`8g=(@z>SiQf&0H+>&rT zQ7lX+C`UnYOFje&9d0>KfRaEtN*?r#85*S=wS4~Lz@Yo`l=Fw6xG|hc{3<9HEbo1d zC~edV6397>-K_|x-k2i_9sdl>6)V>)?BCCGB89mf6xyj;Ntn&_;KSP(Ygu+*3ygYN zo=e^W%0)yHSI_%E={5Djr>F-yG5UJRNJ#Pw0OMMjDDMS@?-MC`J_AatCG$5yajZyt z5tMNdT|E~qfP_}ATR}-!l)E&>&D94=qgC=@Q0gqZe-Mc?a`8`lb!R|QWB~W;l zt!i-*lzEm8{|%HYmiLxpdz3dVUW-8Cr=3+fO`z0S5xX4}h^)D1wc$@%dd>iIQVB_d z;y4TnzkQ}Cp9bX|PF-!h1j@5U9yy9T0zDg>CTY;3BP5ln%K0jC@#>1A{1}uDPcHa; z%J0wr0!+fv&$LC*k0nnTD7Lq(2IY05LpkP0$*$LtR9k`BZ)!o5hd`kg=Gto%6l#_D zU)SO{K(XW4$3dZVl`Gjz``N)WA))K@p87(t@4v1Y--NI%B}pSQ4H9h2jqy zi`K>ypbS~<;^UyiP03Ww8Bi`-lyjg=v-I;Ervm%w}V|?^i7X43-d8h=y1K| z#Q^0TDEqBk-vWjA5mNQ~J}4I~ng1CS_0|tt@V`K@Em($E^eDf}eT9B$&!sega?*-y z4}fyPvPB;#WmZk!14@U{7}fA3C~-qU#O_NEz^+y#`2%3;taAQ{N;bKuoG*hy&f{wJ z$Dka=rAzsDP1S2~yeyelfHH=n+*a@)D7Jpy3kuCIT+GKnq5C^7uTO!Juw?!m zD0b`q3Mdz?ntmUYqsFG)_y(VYW8A9gkAdO4_No?h7lRj0RZLiptLm=wfsvkM3W2#N zo#o5SK=&Y@rw$w#PLJ|cUuGc9=iS4pesckXFr6^?cJMHLY(Q=-lNlII^<}zR!KFWq z4-q!1%`K6hqpuNQD%3__8Xg&Ps^x|W%c_Ud-9x$I>SPkT_-96`G?|{nEb8EdAb@je zr#F>NcG8E?gZQq)19DbNTWcg~?06uBV*67Ash)HfwigWK=ouKn9uu8uxzPyk%^5)H z+79-00Xt;&@XUuJ?tQsz*YIF2**!Si303-Q&+1b^NPRW9?8sm~TvI=4xG9y*%LFkMRtMk!y=#!azz|4Mt8u~NJ24XQQ}sr=&I6f&?LObtAIv@k zPqLgknZ!3glEdkqOcu_cRLw>ayV5?g{MK^ka2g)GW2FB8wt!9!3?>Ig`ud!ZB=Yg} zSgJGEcQ`qSM%Ohm)R*Zb@6QA792_3Teu7D~$B}eWHhKl^N#`0kGepge3=g3Bc+uRt z^T!5X5b=fz6B4vKj~qF|w4pJyzv<;;?)5GR+%h(W9lFfxCTRU2`E4e0aO=bE1{_6XZd z3*{0bFFmI%7$mp}O#?aAsx}>N%N_31#mYRpQB1xxMfa4W2)hSp{>cK%QdB}?ddvgf zp2}*+lMtyqgov?Z7F`d%^1Q}DnCFYt4$4e+WqLBXEI#=oMJFX{6>UNg(G~JgNui#U z&4UA-eIs3ILZ}kzySlb#dz!l2;Mtk(j3qKVQ2jucauzfX^xE1wQsjIPqui$K&Vh9O z@Nnv|+py}h*mgX(3H8u2$ZOdwj2Qwct`)pVz;BZwad_u&3z~v%ZeFt}Zj}A%kSvE3 zTJe&G$v%+D^|Fdpp^73?J!qAdFOQ-l343sX?0d!Bzxq>DaQe-fQ@= zN>QOeoo|Q5F>Fy64e9O_0*iG15#18n((-z1h8whM3s@o@)Psv;7si2Ej5l2hjSNEu z8k^g9?n<^awY6jAfCgw83|x<(y&$U|G*VHXO9BN333_oKfhDdI&4MNql$% z1@xze57NgEXy-cYX`RWX4nTTDg*HWlutVw09UImqherlzzKBj4gJ1fDw{r-+KCwl7 z@Q+TCyLRtrZ`!^k+1j>ccf-!)t}QJ)H>>(=+0lSHO(H`QwNwL8MEY!+w}*7Hx!q{l z+wl#NEyL~@ANxgnzBAw?!-veeL~P$q^-3O0A6BNRhKo>rJn5ZThm(_i7&##=d1zg& z5{U{xzi$e#GfM3Q@Wbe4F_qv#IZLv=rOnI%0_w^152@YdLQ_E!x12eYxqd?9y1{+tN9WLl=+ejoy;nSDC|2+&l>9@RhV>EDiR+ zv~Kb6Zp!W$9AH0d8rVF7ao|8s0!+E-fsy_sDokFA{dI>^!-p~d>PJVN#FpS@uUK4> zC(>xQD>IlJlAClUc@svtDPJK3DaX69VbCQ>=jO>iC+Y6+hcRq3&MFC{ev`?b>CMlfIXRd-mw; zA#VPLmsF7pQ5Nk5%RZ_cb=wDu${c`G;}@f+fpp&;YmzC5PeUHfk6JpW4gE<&A?;yD z$jtEI06?@=kD4E&c|(u}PXxnfWKvx&i_}mi*`G}w!f=B&ScT} z1twPMVYKH=XIAPqi>@F!*iD6W9+dZQuzo;FH%9bnSO#uZuQ97q8CGaV`qJ2RnAo8V zyKpr4^f02848p002Zxi{kptPom_YU?M=>j;ZbO=z42hfgtT?4uOd+t&vKie9W`lhk zab%yX+)xdp+vJ=`+oG^aU5$Br$aiM2YLn`_eo~|3hRW;PslqcMVtmm-zNP*;IAMJfv zcpZZN2-OjfqWSBW+?>p+(RZiuQ>8I^Peh&aGd~66iR#E*hd~=3@;al^k_ygpfo8yL zrL1jawGX2i&jN`yr8@vZKY+$`h{KMY%W`)_D0>}CWtWSR2-(5q9d<-L%FEw=$a*F` znfBuee@1xSHJbG+pK$J)n0DD#L@JE5oWc=OM_H<_5yQA}m%hQoE-0eErx`;o*hR z5-)w~K>=Ia8?g)f`$#U+hi_RM1G5q>8x<}>MkDU>IKMS+^W}HPJwQ|7WU;kzMmszE z(2=>uQ5x>lI8%8Y0dzES8@wEB^71tY?y%bm$|=L0nGB54yBzAJsLRa^9!PeN4A8*E zR~Gs;8lh-Mz#x%sU8uhL>J6cKOVpuDDB1Pn5IzO_#w5Nr>=_H$Lpjgg z2G*KqK9M&>@N|`3fSZUMJcD;17UYz)`k^>ewR|&1de%B=w_EDsnxFtRI}d~&(v3$eJIltRk>d?Fpv%!jLJh95f*qH6tewC0PgzL85_?fDy^(H;d6*OO#%ok~zCb6dfY zyEP?{0oT({Qd#PGCCnYRwAAlOHf?X+iKi1Ans#j=kKJP!7wpjxBdi4gGoY0b!5zqSZsNO8T$?Hs=QKJS`T>T;^U^{tBuQB0I6E zTD}02Pfu3B=TbZ}k^<1~M)oYwA5m2k%FxY9YlMQ^4!B{K?CwkTs0kUB%}-NM z#O*zp%^k!P7pn0^Wdu}eoPfK&0534}LKr~lGw)0bx<;B`C{rU(=#Zy0rIMSYf3)u!^AOOSm<{VM`9jTo&>!sOkYZx4%WybL7p>8kXLKKdN y{-BTgO*|--#tWGuvb=Ox!_zy-Hzv4S#WJcM$`+dEsK?Fnw*X%+%g*bcOZ +#include +#include +#include "unity.h" +#include "stack.h" + +// Hilfsfunktion: int dynamisch anlegen +static int *makeInt(int value) +{ + int *p = (int *)malloc(sizeof(int)); + if (p != NULL) + { + *p = value; + } + return p; +} + +void test_pushAndTopReturnLastPushed(void) +{ + StackNode *stack = NULL; + + int *v1 = makeInt(10); + int *v2 = makeInt(20); + int *v3 = makeInt(30); + + TEST_ASSERT_NOT_NULL(v1); + TEST_ASSERT_NOT_NULL(v2); + TEST_ASSERT_NOT_NULL(v3); + + stack = push(stack, v1); + TEST_ASSERT_NOT_NULL(stack); + TEST_ASSERT_EQUAL_PTR(v1, top(stack)); + TEST_ASSERT_EQUAL_INT(10, *(int *)top(stack)); + + stack = push(stack, v2); + TEST_ASSERT_EQUAL_PTR(v2, top(stack)); + TEST_ASSERT_EQUAL_INT(20, *(int *)top(stack)); + + stack = push(stack, v3); + TEST_ASSERT_EQUAL_PTR(v3, top(stack)); + TEST_ASSERT_EQUAL_INT(30, *(int *)top(stack)); + + TEST_ASSERT_EQUAL_PTR(v3, top(stack)); + free(v3); + stack = pop(stack); + + TEST_ASSERT_EQUAL_PTR(v2, top(stack)); + free(v2); + stack = pop(stack); + + TEST_ASSERT_EQUAL_PTR(v1, top(stack)); + free(v1); + stack = pop(stack); + + TEST_ASSERT_NULL(stack); +} + +void test_popOnEmptyStackReturnsNull(void) +{ + StackNode *stack = NULL; + + StackNode *newStack = pop(stack); + TEST_ASSERT_NULL(newStack); + + TEST_ASSERT_NULL(top(newStack)); +} + +void test_pushAndPopLifoOrder(void) +{ + StackNode *stack = NULL; + + int *v1 = makeInt(1); + int *v2 = makeInt(2); + int *v3 = makeInt(3); + + TEST_ASSERT_NOT_NULL(v1); + TEST_ASSERT_NOT_NULL(v2); + TEST_ASSERT_NOT_NULL(v3); + + stack = push(stack, v1); + stack = push(stack, v2); + stack = push(stack, v3); + + TEST_ASSERT_EQUAL_PTR(v3, top(stack)); + TEST_ASSERT_EQUAL_INT(3, *(int *)top(stack)); + free(v3); + stack = pop(stack); + + TEST_ASSERT_EQUAL_PTR(v2, top(stack)); + TEST_ASSERT_EQUAL_INT(2, *(int *)top(stack)); + free(v2); + stack = pop(stack); + + + TEST_ASSERT_EQUAL_PTR(v1, top(stack)); + TEST_ASSERT_EQUAL_INT(1, *(int *)top(stack)); + free(v1); + stack = pop(stack); + + TEST_ASSERT_NULL(stack); +} + +void test_topOnEmptyStackReturnsNull(void) +{ + StackNode *stack = NULL; + TEST_ASSERT_NULL(top(stack)); +} + +void test_clearStackFreesAllNodes(void) +{ + StackNode *stack = NULL; + + int a = 11; + int b = 22; + int c = 33; + + stack = push(stack, &a); + stack = push(stack, &b); + stack = push(stack, &c); + + TEST_ASSERT_NOT_NULL(stack); + TEST_ASSERT_EQUAL_INT(33, *(int *)top(stack)); + + clearStack(stack); + + stack = NULL; + + + +} + +void setUp(void) +{ + +} + +void tearDown(void) +{ + +} + +int main(void) +{ + UNITY_BEGIN(); + + printf("\n============================\nStack tests\n============================\n"); + + RUN_TEST(test_pushAndTopReturnLastPushed); + RUN_TEST(test_popOnEmptyStackReturnsNull); + RUN_TEST(test_pushAndPopLifoOrder); + RUN_TEST(test_topOnEmptyStackReturnsNull); + RUN_TEST(test_clearStackFreesAllNodes); + + return UNITY_END(); +} diff --git a/test_stack.exe b/test_stack.exe new file mode 100644 index 0000000000000000000000000000000000000000..92e047f507bf30a2797fd00c6af40fbcad409724 GIT binary patch literal 100913 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¥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 +#include + +static int compare(const void *a, const void *b) +{ + return (*(int *)a > *(int *)b) - (*(int *)a < *(int *)b); +} + +void setUp(void) { } +void tearDown(void) { } + +void test_addToTree_single_element(void) +{ + TreeNode *root = NULL; + int value = 10; + int dup; + + root = addToTree(root, &value, sizeof(int), compare, &dup); + + TEST_ASSERT_NOT_NULL(root); + TEST_ASSERT_EQUAL_INT(10, *(int*)root->data); + TEST_ASSERT_EQUAL_INT(0, dup); + + clearTree(root); +} + +void test_addToTree_multiple_elements_and_size(void) +{ + TreeNode *root = NULL; + int values[] = {5, 3, 7, 1, 4}; + int dup; + + for (int i = 0; i < 5; i++) + root = addToTree(root, &values[i], sizeof(int), compare, &dup); + + TEST_ASSERT_EQUAL_UINT(5, treeSize(root)); + + clearTree(root); +} + +void test_addToTree_duplicate_detection(void) +{ + TreeNode *root = NULL; + int val = 42; + int dup; + + root = addToTree(root, &val, sizeof(int), compare, &dup); + TEST_ASSERT_EQUAL_INT(0, dup); + + root = addToTree(root, &val, sizeof(int), compare, &dup); + TEST_ASSERT_EQUAL_INT(1, dup); + + clearTree(root); +} + +void test_treeSize_empty_tree_detection(void) +{ + TEST_ASSERT_EQUAL_UINT(0, treeSize(NULL)); +} + +void test_nextTreeData_returns_inorder(void) +{ + TreeNode *root = NULL; + int values[] = {5, 3, 7, 2, 4, 6, 8}; + + for (int i = 0; i < 7; i++) + root = addToTree(root, &values[i], sizeof(int), compare, NULL); + + int expected[] = {2,3,4,5,6,7,8}; + + int idx = 0; + void *p = nextTreeData(root); + + while (p != NULL) + { + TEST_ASSERT_EQUAL_INT(expected[idx], *(int*)p); + idx++; + p = nextTreeData(NULL); + } + + TEST_ASSERT_EQUAL_INT(7, idx); + + clearTree(root); +} + +void test_treeSize_returns_correct_size() +{ + TreeNode *root = NULL; + int values[] = {8, 3, 10, 1, 6, 14}; + + for (int i = 0; i < 6; i++) + root = addToTree(root, &values[i], sizeof(int), compare, NULL); + + TEST_ASSERT_EQUAL_UINT(6, treeSize(root)); + + clearTree(root); + root = NULL; + + TEST_ASSERT_EQUAL_UINT(0, treeSize(root)); +} + +int main(void) +{ + UNITY_BEGIN(); + + printf("\n============================\n Bintree tests\n============================\n"); + + RUN_TEST(test_addToTree_single_element); + RUN_TEST(test_addToTree_multiple_elements_and_size); + RUN_TEST(test_addToTree_duplicate_detection); + RUN_TEST(test_treeSize_empty_tree_detection); + RUN_TEST(test_nextTreeData_returns_inorder); + RUN_TEST(test_treeSize_returns_correct_size); + + return UNITY_END(); +} diff --git a/test_tree.exe b/test_tree.exe new file mode 100644 index 0000000000000000000000000000000000000000..77ab89a3d11041ee9a0cc00ad9d1f89233432bca GIT binary patch literal 105293 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 literal 0 HcmV?d00001