From d051758d35d637fb59ce445b0346caa71cff6ca5 Mon Sep 17 00:00:00 2001 From: nk365yf Date: Thu, 6 Nov 2025 22:47:42 +0100 Subject: [PATCH] first --- du1/program.c | 46 ++++++++++++++++++++++----------------- du2/program.c | 40 +++++++++++++++++----------------- du3/program.c | 16 +++++++------- du4/Makefile | 13 +++++++++++ du4/a_train.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ du4/a_train.h | 51 ++++++++++++++++++++++++++++++++++++++++++++ du4/a_train.o | Bin 0 -> 6608 bytes du4/main.c | 17 +++++++++++++++ du4/main.o | Bin 0 -> 4640 bytes du4/train | Bin 0 -> 19304 bytes 10 files changed, 194 insertions(+), 47 deletions(-) create mode 100644 du4/Makefile create mode 100644 du4/a_train.c create mode 100644 du4/a_train.h create mode 100644 du4/a_train.o create mode 100644 du4/main.c create mode 100644 du4/main.o create mode 100755 du4/train diff --git a/du1/program.c b/du1/program.c index f3d90e1..f422624 100644 --- a/du1/program.c +++ b/du1/program.c @@ -10,6 +10,9 @@ struct pizza{ float prize; char name[LINE_SIZE]; }; +/* structura jednej polozky*/ + + char hacker_script(char c){ c = tolower((unsigned char)c); @@ -26,15 +29,17 @@ char hacker_script(char c){ case '9': return 'q'; default: return c;} } +/*hacker script nam bude vymenovat cisla na bukvy*/ + void normalize(const char *source, char *dest){ int i =0; - while(source[i]!='\0'){ - dest[i]= hacker_script(source[i]); + while(source[i]!='\0'){ /* tu je cyklus ktory precahdza slovom a normalizuje ho*/ + dest[i]= hacker_script(source[i]); i++; } - dest[i]='\0'; + dest[i]='\0'; ///ked slovo konci, cyklus tiez skonci a na konci bude terminator } @@ -42,21 +47,22 @@ void normalize(const char *source, char *dest){ -int read_pizza(struct pizza *item){ - char line_1[LINE_SIZE]; - char line_2[LINE_SIZE]; - if (fgets(line_1,LINE_SIZE,stdin)==NULL) return 0; +int read_pizza(struct pizza *item){ + char line_1[LINE_SIZE]; /// pre name + char line_2[LINE_SIZE]; /// pre price + + if (fgets(line_1,LINE_SIZE,stdin)==NULL) return 0; /// nacitava name, ak line_1 bude null tak nastala chyba if (fgets(line_2,LINE_SIZE,stdin)==NULL) return 0; - line_1[strcspn(line_1,"\n")] = '\0'; + line_1[strcspn(line_1,"\n")] = '\0'; /// ukoncuje terminatorom line_2[strcspn(line_2,"\n")] = '\0'; float price = 0.0; - if (sscanf(line_2, "%f", &price)!=1) return 0; + if (sscanf(line_2, "%f", &price)!=1) return 0;// nacitava len float number strcpy(item->name, line_1); - item->prize = price; + item->prize = price; // uklada name a price do itemu return 1; } @@ -66,29 +72,31 @@ int main(){ char search[LINE_SIZE]; char normal_search[LINE_SIZE]; - struct pizza list[MAXIT]; - int cnt = 0; + struct pizza list[MAXIT]; + int cnt = 0; printf("Zadaj hladanu surovinu:\n"); if (fgets(search, LINE_SIZE, stdin)==NULL) return 0; search[strcspn(search,"\n")] = '\0'; - normalize(search, normal_search); + normalize(search, normal_search); // normalizujeme nas hladany prvok printf("Zadaj jedalny listok:\n"); - while(cntname, line_1); + strcpy(item->name, line_1);// skopiruje nazov do struktury item->prize = price; return 1; @@ -34,14 +34,14 @@ int read_pizza(struct pizza *item){ int read_pizza_list(struct pizza* list){ int counter = 0; - for(int i = 0; iprizeprize) return -1; + if(p1->prizeprize) return -1; if(p1->prize>p2->prize) return 1; - return strcmp(p1->name,p2->name); + return strcmp(p1->name,p2->name); // ak cena bude ta ista, porovname mena } int main(){ struct pizza list[MAXIT]; - memset(list,0,sizeof(list)); + memset(list,0,sizeof(list)); // vydelime pamat pre menu int count = read_pizza_list(list); - qsort(list,count,sizeof(struct pizza), compare_pizza); + qsort(list,count,sizeof(struct pizza), compare_pizza); //triedenie menu for (int i = 0;isize=0; + s->size=0; //inicializacia stacku } -int is_empty(struct stack *s){return s->size==0;} +int is_empty(struct stack *s){return s->size==0;} // check if stack is empty int is_full(struct stack *s){return s->size==STACK_SIZE;} @@ -25,7 +25,7 @@ void push(struct stack *s, float value){ printf("full stack\n"); exit(0); } - s->values[s->size++]=value; + s->values[s->size++]=value; // pridava cislo do stacku a size +=1 } float pop (struct stack *s){ @@ -33,7 +33,7 @@ float pop (struct stack *s){ printf("Stack is empty"); return 1; } - return s->values[--(s->size)]; + return s->values[--(s->size)]; // najprv - size, potom vybera jednu polozku } @@ -55,13 +55,13 @@ int main(){ input[strcspn(input,"\n")]='\0'; char *endpt; - float num = strtod(input,&endpt); + float num = strtod(input,&endpt); // oddeli vsetky cisla (medzerami) a posledne zapise do endpt - if(endpt!=input&&*endpt=='\0'){ + if(endpt!=input&&*endpt=='\0'){ // ked endpt!= plnomu inputu a nie je koncom inputu push(&mystack,num); } - else if (strlen(input)==1&&strchr("+-*/",input[0])){ - if (mystack.size<2){ + else if (strlen(input)==1&&strchr("+-*/",input[0])){ // ak dlzka inputu po upravach 1 a to nojeaky operator + if (mystack.size<2){ // previerka na to ci mame cisla pre operacie printf("not enough operands\n"); return 0;} float b=pop(&mystack); diff --git a/du4/Makefile b/du4/Makefile new file mode 100644 index 0000000..3c2c463 --- /dev/null +++ b/du4/Makefile @@ -0,0 +1,13 @@ +CFLAGS= -std=c99 -g -Wall + +all: train + +%.o: %.c + gcc -c -o $@ $< $(CFLAGS) + +train: main.o a_train.o + gcc main.o a_train.o -o train + +clean: + rm *.o train + diff --git a/du4/a_train.c b/du4/a_train.c new file mode 100644 index 0000000..004d27e --- /dev/null +++ b/du4/a_train.c @@ -0,0 +1,58 @@ +#include "a_train.h" +#include +#include +#include + +struct car* add_car(struct car* first,const char* target) { + struct car* new = calloc(1, sizeof(struct car)); + if(!new) return first; + strcpy(new->value,target); + if (first==NULL){ + return new; + } + + struct car* sm = first; + while(sm->next!=NULL){ + sm = sm->next; + } + sm->next = new; + return first; + +} + +void print_train(struct car* first) { + struct car* hlp = first; + while(hlp!=NULL){ + printf("Cielova stanica je %s\n",hlp->value); + hlp = hlp->next; + + } +} + + +void cancel_train(struct car* first) { + if(!first) return; + cancel_train(first->next); + free(first); +} + + +struct car* clear_train(struct car* first, const char* target) { + if(!first) return NULL; + if (strcmp(first->value, target)==0){ + struct car* tmp = first->next; + free(first); + return tmp; + } + struct car* hlp = first; + while (hlp->next!=NULL&&strcmp(hlp->next->value,target)!=0){ + hlp = hlp->next; + } + if (hlp->next!=NULL&&strcmp(hlp->next->value,target)==0){ + struct car* del = hlp->next; + hlp->next=hlp->next->next; + free(del); + } + return first; +} + diff --git a/du4/a_train.h b/du4/a_train.h new file mode 100644 index 0000000..5982bfe --- /dev/null +++ b/du4/a_train.h @@ -0,0 +1,51 @@ +#ifndef TRAIN_H +#define TRAIN_H +#define SIZE 100 + +/** + * Jeden vozen vlaku + */ +struct car { + /** + * Nazov cielovej stanice + */ + char value[SIZE]; + /** + * Smenik na dalsi vozen + */ + struct car* next; +}; + +/** + * Prida vozen na koniec vlaku. + * + * @arg nazov cielovej stanice, ktory sa ma priradit novemu voznu. + * @return smernik na zaciatok vlaku. + */ +struct car* add_car(struct car* first,const char* target); + + +/** + * Vypise vsetky vozne vo vlaku + * + * @arg smernik na prvy vozen + */ +void print_train(struct car* first); + +/** + * Zrusenie vsetkych voznov vo vlaku. + * @arg smernik na prvy vozen + */ +void cancel_train(struct car* first); + +/** + * Vyradenie vsetkych voznov, ktorych cielova stanica je target + * + * @arg smernik na prvy vozen + * @arg cielova stanica, ktora sa ma vyradit z vlaku. + * @return smernik na novy prvy vozen + * + */ +struct car* clear_train(struct car* first,const char* target); + +#endif // TRAIN_H diff --git a/du4/a_train.o b/du4/a_train.o new file mode 100644 index 0000000000000000000000000000000000000000..07526f719efbb07a63b08dae87803eef0174673f GIT binary patch literal 6608 zcmbtYYit}>6~42(*Is+=^(%>;2E}Wd7fE(EPTVLjr>;zzbskmKVkyv8&UkjbyUlvm z%+4lpl|U6M6;@O=g$jX)1cg6dkw+tzC0H!6Uo2US3emY@Ngq+_i0Boo#NCdyAC2ec z-^z!rLI=BMCGR@{^8=qWw|<`Q`!}*Rf$wNlcngQ)!hr?o{f$uXp+^H6rluf;M+PeS;1b8p!}#H-+@eu|lJxUeRRhWKE5MJu7|0I>c)Hn>eeN%8h4%af*xub@;jjhE?mDhT5`*klXj{a*j~x8Q_s4o z_0?AKQbY(TtT?n^wBoA`Utx&@gC*hEzL<%`N?};gxnHo{}(!6LQC~HmbX+)7pw&p(<4--7n4_jvIS98luJj*{zwwz z52Ei3`tT*x; zuR(Y$n4S?^Iy9vS>zZUMm9e~A7DMDeE<_9BoIva%mUSr#UsF{+(9gLPwU-#;NS(Tm zsl98dWvZQh)XpMoFCbRavQE#}!&NO!0~D&Q9lFDh$2|9xXztd&VyrqXl9cs0WLzf_ ziT#Oa5=Kgju^wo!6w&0K0c&q!cVet3(g(vaB%<+Ui0lxFfjF|8+7&yZ*}D=#G-s@b zS7U}KVjEYF_3T@10W(f`Vy_ItElkG>2bwmn?y|a@NBYjFnAR?9eX=JJ?O)T6a3>5x zqQ{EH6NxmG%K>e->Jh+@Lzru?m}}c-YcTXfrswsKYQNyO*~}H?s#i zELPM#)P-=PRwgVovC36i6{7ck0gw!5jb7Gj8GxlFyw(}R^0P1lB`ko$pj(#pak3o? z0P!dSrC)tsWTHf@{z!*fN7}BxF+d+)N{h(7qNTpO^vb^Yu#CmCvRg!ARv_C7GIB`D z_hf5LCQGt;PBvv_>+7=foJ>3=Tdqj!h+Mx-ChwwaV^&5F$>w-LCN4{BR&F>dV|Qhw zc2~B)C9MbL$RMO1mMe7X?r+N`Nd2ztI4q-AWa|}~{Hl!4$>ywVdtLUOlk1RoOm4>F zoO}R_eXy81h2@AQp>M{AH)UTIq;em8Y&;OMKWmjiCr|4I_O0Al%d8bNVJ{{PTWw#1WIBuL1 z=^4KgxK2>vX5J zrmZ=C5tiYn0K*4GZQcixoi9X2+nXZK14H}vX}3Nb>i*HX|7r58V}|_|i+#zD(@1K}B+R=tLV8qqM;GU4EzMnL}mv4Vehzi)18%R{NH$bsoII9f7 z4Ber2^1%pOwE9j4T|96fe1P(BJfF|$`|yW||0gI>_~?HGbetciJPH7|vmFN5(GsNHDZI@n9oJ}hW5cDqY$JqS4VE}bKb1Il@k09VPqd7Na2#94@ydsS z=LpVq#(#z&2yF&OgAw10gUI-8Ke|I1JKOsDv zhi4{^L3md43`88y*l)puqOQ15B95`E;X&b>BI6nrYQCY4)z{Bp&^IFpf_!yfSC$aG z2Oy61;++H~rwheL9OpMmK^Jx0CfhUcuakY&z}v{aVBowCUNP`NvUxnXosSXzU4#ED zjr$J_yh`?K2L1)&Uo-Iig#X6Cw-f%pf$t{#BLhD|csG^Y{)dUT)xe)5J7?fT7wktj zeqUbS+;7gmg#u0+c^tA|p_22Ak$u^~-zNJnRC4~cl>e^=pZBMK7<_I|j3y=L;rYQA zMhrs=&xe%3=RCs(j{6--j&RPSQ6Zi(_?)L?;59Y# zZwI!>OjfHR<5#qyym@!BR+uPxQx)JS-JYEE-IGAWV1j(xE4UcCgu#8#J)yARfO3&s$D6 zLW=nl5V>Jl0|w6XkuV7Q9on$t6oB_lRB`U0@Ogpr9C19W!@}z^jG=DUk3U^8=l>dy z=LF^q&p9yb`vLr(UnXY#xQeXq-j@(VF}cq)z>qgi6Ji@0Au;2Rfv-{fzk`<@5RS+8x4>hz|BHZ`IRO&qseV4s z5JNG!WxyKMe}n1|&%Xq4&HC{i!JOPqP?h`^FE1b`jSAW1@+-h;6hDfc1^KBi>TizY z@*Ci36#q|(&(tHe!f{-_O7R9wtiz4Bfp8qVegX=1)tIJY6UC>PNF|RS!`DH + +// Testovaci subor pre vlak +int main(){ + struct car* train = NULL; + train = add_car(train,"Presov"); + train = add_car(train,"Bratislava"); + train = add_car(train,"Levoca"); + train = add_car(train,"Spiska Nova Ves"); + print_train(train); + clear_train(train,"Levoca"); + print_train(train); + cancel_train(train); + + return 0; +} diff --git a/du4/main.o b/du4/main.o new file mode 100644 index 0000000000000000000000000000000000000000..fbdc134defa239c01897888d860cbba407bb7202 GIT binary patch literal 4640 zcmb_eU1%It6uvW?NjBMRx@ojcteA<`^app+q-jWE8y7?Drj**M6o-n(aJ4nL-Anqbnzl(;Q1D#Wv$xA}r(3u3F-B7WO+-yg?|7k(<9y^$+kow_*SlT=_j1XC80TP;Fyo)^%&suw@3lXhV&P~5m z0e-v4WTrAHP{1H(dtmlik?NWp&>zlBWM+HDGmv4E$PA=WXIR=JeXJd5-O;zdPXoAh z9h}|KH`@~_+Pbv|yLvLI{%!r;+UB<0Rw2?oS}L8%OlB}XI=5@uY!5OW1CW0R@?{3) zKssq?u%KB=Af0A=Fjk@Wg+3v=MsctN>%B0!hv3t3mO^fXr9t?a3JlP!l^(3*D>tDBgf6@ zi3xLf*c!F=nE86x^xOkw*K_@<1ETFal>;l|WBIXBGha6IL0CHAfPH?!4pu#<;y1iT zGsri+(^apO5AFGy8-OwhZD%pRmz>zvTT0#p7|KRlWq`C9>eA5e?v~Ky~rWA)?8X2+nj9MeRNC8Ixb~pzg9z$4c ztgtT;=Mf`dz zNta5z`Ee}rlDNYq6J9uUu(d^4eVcu;kb)D{?`as^S%|c$H$WG-;d$(I3LGw+)K9SO2V~? zS0Psn;`kz-f)8nP)XBAEUxc?g?njDmCSa|(WlNI*D7Z=Tj|x6T@(l(5n`9m@@8dIs=V)Bm#rNd_!r7k8*Y*f;JR3}W_SHD|lL6Xe zotPx^{xCj4_%QX17f2pc@Pj0?Ud?Ng9_JLFm#~7>I=qk2hkn#onDgD5ZH4%RStUEP zg*6`p!txuDAhjiTzFD5DdJ7G(k-R-W@4L%jhRy`}wpWIKvvI6e^;~v=e9R&|CuOHm zue`*Hu~2L8wBF}B!| zdiLY~J@Qw~#F_YG9#gU(LmvTyM^&x=m&xB`L+W|`7`_G!##H?;lm9pyQm^`d19;N@ zEzw`uUh>2J!~Y)a&v;U9boqhuAEgQ7|F5L_LrlFp(0?c0Uy~@rNL{~f&?Whwr}2Lu J^F>zm{|6wl0CE5T literal 0 HcmV?d00001 diff --git a/du4/train b/du4/train new file mode 100755 index 0000000000000000000000000000000000000000..4a5e19d0e753e0d5b1f6c492f4148ad802a3be4a GIT binary patch literal 19304 zcmeHPdvH|Oc|UihBdu6Hc}YA9D;o?p)(U~3fRPah!3y)LfyQp^URJwT+O=1^>OOcl zaY7+Zqhe}EW)fyfCU*OW<7u0rGihs^I>C=ZNz(@EG{w{Wfiw0*3~7s@@!?@^yBd-D_TpMM|(79SHm~st?5^l2Ouhkl+!nA{M zl2nHG(ytq*Oj%znFGygdpgI@n8)SgQ)QzLqoa|6)ak8hB9x!n^WGLf^CEPa+?wbb3 z^tvgJDaVtlPsb_~PcK~x9VMn-T-@Nibfbm|rc?%{UGL^%|C{o58r;U9awEKSw-yVg zT;6X0M{)V@Chq13O?i{`L)^rlsR^&>OeO|bc6TOY9mzy0f1u;Qs+AopyF=M@Xql=4 z)hmdD#?b(AyTy`p;5%;`^ZE@%-%*Uq!c9 ziET!fpPi^9S zeUbdSOOA>b(=C^r#xtkWMozbJ>QhcHy5w}7a60RftNXiA{H;r_uM@4f=#rbMf?ZW; zB?6TQR3cD`KqUf|2vj2Q{~`i6o96u@eB@{T@KO0zrx4+%&gOiDi{T@0_+MA;FRXY1 z;v0p9p8;u_FUUSlnj2T&E))vK6;BUpH?CeP^7O!XbMRPY-Z6u0F>+ zypJgF8-?-@eujr{@bJ>Ze;lIPP2hj-=DYrNVC>RwhsS;rKJw1>oxA(H&URf0AM5!Z zYEhW+CM^GBDAY9n3t$m|V?7^05xRPqg0f%n z8j-s{36EV5zxr?M!mr+{3R~yGmp;i&hl8h#1ApPlkg6x+DSn4~NG%=lZM6bj=p1nZo96uk8)u*LETe|0~Ul-UCuIR9_h(la>-BtNucSg~xWr$-GQOw3A!c7C{fY za~K%!*HdWDtE!JDsaR5J|E7xnc>H*YuVyq#t8()utj~|Xg^tsX&yV}y>6%rFTMFD| z1Opf3lb1z)iYoK!4-pffE{BiqxoBE10Y;13wOBQk`WV>r<1c)q3%P274!-H(cQAT+j;DiNqepb~*f1S%1zM4%FZN(3qqs6^mb5&`;sX=ldCruT^r znMf{?O-A-b#8zitIvNqXMibe`Bf;(IeUadAI$6<|aFUeAuV<-5G!lHw2`^!v__|GiM4mGs){g~FeLZUub<^b}|k^r`m>1zPxRxKSv41p0TNbFs*4y;&%% z1>FJq2q^tlO38ZSL17(ew&v8=`i~p=T*w#0-(6&|u~z*wwgA~~96M3|UQp54ys5Em zOH*LK|BzTWd(Az|7pR{H$?qdLz63k|O^wV+p2Kkna%u}FD(h(+&!N0mNZ8-l{6$}1 zLyhm-sF6_LCr~@@N4v&K^oNT2??e7P^jk~xeMSAxAb%73Rc?J+sg?hFwEG(LAG-Cv z8`^+ml~jp9B?6TQR3cD`KqUf|2vj0ai9jU+|ED9s-|g{tdRPLe)MseDq5NSWer{9g zI4xw5W@%FV?s$&j`P;nNhUf1BX`Mrf^*{flkS6{#{dSAQ-_~8J);xbxciHIq8@?B` zS_BMjGjxWbObkq%G~eU#H--m{foX=|Z}eJ?{J1HYsu3Cyk{_<%H@MyU7_yK(vGgYV!J-KY*}b&cWBw&Mj`HnSKVNg=xg`4knhdype5Z?Iu30`8F2xI$Lr z4p}{itf5@U8c8cDWKAuodd;O)vNGXo_W!Z~wv+~t93hxp@KU=Fr&INR2Fcqve8rQH z6uqhRO@UnEYxsba&)_8d>maI*SqeiHQJ86>b{_J_8qdIF2}voVRKmXryqxcAB>ZO5 zeU@}|64R;kti=t~AzztB5+T&<7f|ceWf)hr;k0-m8Td|wtF{rh>TSjKR>za0qO(!! z9-8q3Kwi~U(%#a;$r3_=7vX?2&L+nlN8-XzgNFo6YZZip46KnSXrm4 z(BG;m?ep1J-4bY8n~dpJFqEuQYuU7Qo~fCtXPc>KT(na4ts2#69xdvfmV&ENYT6A{ zHMnNEZt%|Pl(S#dPBk^C&W?yi<8?1QE)aph{edccYvPk)0QIVB5LJz9+I{y0RtE;A ztqP#IO(M|lC!Gvg>t?aGy=Kv@wX-aUYf8ioi)IZ>(~8;_YhmNGK-K&?^INQ`wau*< z3e&7Ae;}|XK>i6_XITT&C^MxU<#(dIz+I{$^`>gL!!(!z6lh=?`RZ-^EN%^r-Bej4 z_R)M&ra@9Q$kGiWqiUf1Yua5BS!^Qi4BSA|{90~Z6?vFwoWEEp=@!?qIk~48acxx_ zZx2Yo8<2VqNCO9?Q3s@HrmL~IX`;@ER?9?~rk2)7_rWxZ%JibfG{Ie|83Bt}s^3hV z#Song0B3Xyk(ik~DcqLzVPgXkTsO2S0Gas~-O_y4d|#7m1`a|dWI)vU_)a-fww#d- zNBk$~PfGuZGyaFq$ojvQ*26v@9BqUEFsQ#SliT6fCcF1YTI)3xiV z-;gzM{f=yUKvtcRQ_jf7FH8RsS=%Y=Uy^NytO1@c|XbXe1SNl6EdbJ8GgyCz3IF?1UK(=2O|k zaLS1VX}VOKYmBz2h{iE@tL-@0_!R70z1lot1Up7@`IOT$?4+DbA__K=iN<^MZmeL( zaIhnri}gfd-!T-)9!y2!nRF_h&vxWf`xB{HM~*h(WTC`Q7SYE$Mlc=+&U`i!S+=4xmhTo3 z9mG()n1gXXo9RrXqRD*B(F}Gkbq+_Pod}t|vfJ!t8&2grySj>os8}L33`YoNBCRQK zIumn-keMveC0Q-rD|q$v{B1$=w7EQk#sD{fvi9_><-=m8**roTa}hN1UXOgak@Nb9 z?FW#t#B9;rt0h!FN_%ivVy58rjuPUerhJsk>n)alN!iaRuAf-`JTm3l`>jdjlePCn z<$t<3+s>XRXgUAqlzpr4t_yykVAG2GDA~(Tlzm%qeZ}%y$e5>Y7AabXK$VltdEaqx>*8LH}qH`Cl0S-gdnf^P)1M*;Lk&2^- z$UDl&KLzX-uR%fH*ejs zVf|Kn$EHoY`ghyA*KgR`Z>xQzy}VykZ4&ivJS}Rmo76pH{<7VqdLk(z$*+4le! zHnyEuBo`4XJZ5KWi37dMwM2v-07P$EHM5pSU%IK)j%Cw!Jd%phhSz}|0LBt2JD+u8 z0$qWVJ($fJcWRQiZETX|*wXIVvRh(Hx9*nKfO=4fQ1;*mrg+d?M$3t{dbbuzhwF415_{n?J`=b)!|tjs@a-lH;I zYVh9r8?iWs3{{!&{N9)8S!2lMd)xmtgWq86_&qYy11>zp%!_{xGKvZNFV1sjzN7K& zPTuiz3Q9LVXmCvTy1~fvG|KdO5B`u*Fl9S-!#vZ|9{h2mV7ilmhBA)nOCJ0cqhR_i z*D{=3FwVFW-}T`6d5kH&Z*wPa{Qd??iXZpC2pVfcHyW0S7ytKAxbYhqXQ+Bn%wSM2 z{$C(-<4+nKQ+grkPCR~C_AWAb0j91&lJWm(;QveFwP&8`d%!fg@Vt(Bwu8J)j91M~ z@QnW$3L3lIO}via|1-n?Plm2PN{r)v{1eEiiHzspZBEh~8l<=;#WUlX)&T6ri(X^8 zR8ua89Wai0`UZ|D3mGc>o?({3nnPb$0*& literal 0 HcmV?d00001