From 6380f02e1239beb2affa976733fe4d693c1db433 Mon Sep 17 00:00:00 2001 From: SimonSayeBabu Date: Sun, 22 Sep 2024 18:15:24 +0200 Subject: [PATCH] ajout rapport --- RapportNim.md | 36 ++++++++++++++++++++++++++++++++++++ graph.png | Bin 0 -> 28689 bytes 2 files changed, 36 insertions(+) create mode 100644 RapportNim.md create mode 100644 graph.png diff --git a/RapportNim.md b/RapportNim.md new file mode 100644 index 0000000..10e844d --- /dev/null +++ b/RapportNim.md @@ -0,0 +1,36 @@ +# Rapport Jeu de Nim +**Membres du groupe :** Axel Pietrois et Simon Saye Babu
+ +## Avancement +La **version de base de Minimax** a été implémentée pour rappel voici son fonctionnement :
+Le joueur1 va faire un *exploreMax* de ces coups possible, pour chaque coup, si celui ci n'est pas final la fonction *exploreMin* est lancé sur celui ci. Ensuite *exploreMax* sur les choix de n+1 ainsi de suite, jusqu'a que l'un des joueur tombe sur un coups final ce qui garantie la victoire/la perte de coup.
+Dans exploreMax, si il y a une possibilité de perdre dans une branche elle vaudra -1 si elle est obligatoirement victorieuse elle vaudra 1 et inversement pour exploreMin. +exploreMin represente le meilleur choix du joueur2 (qui est le pire choix pour joueur1 d'ou explore**MIN**). + +### Version avec carnet +Cette optimisation utilise le système de carnet demandé afin de vérifier qu'une seule fois chaque situation. Ainsi, l'algorithme vérifie a chaque fois exactement n*6-17 noeuds, n étant le nombre d'allumettes au démarrage du jeu. Le carnet existe sous la forme de deux tableaux d'entiers, un par joueur. Chaque joueur à n-1 situations car le Joueur 1 ne peut pas se retrouver avec n-1 allumette et le Joueur 2 ne peut pas avoir n allumettes La limite du nombre d'allumettes est de 33736 (testé grace au bloc try/catch lançant en batch). Cependant lorsque le programme est lancé avec une valeur simple, la limite est beaucoup plus basse. + +## Test et comparaison + +### Version non optimisée +5 allumettes : Perdu ; Temps écoulé (ms) : 3 ; Compteur = 15
+11 allumettes : Gagné ; Temps écoulé (ms) : 0 ; Compteur = 600
+17 allumettes : Perdu ; Temps écoulé (ms) : 0 ; Compteur = 23249
+42 allumettes : TimeOut au bout de 100 secondes
+ +## Version optimisée +5 allumettes : Perdu ; Temps écoulé (ms) : 4 ; Compteur = 15
+11 allumettes : Gagné ; Temps écoulé (ms) : 0 ; Compteur = 228
+17 allumettes : Perdu ; Temps écoulé (ms) : 0 ; Compteur = 5601
+42 allumettes : Gagné ; Temps écoulé (ms) : 7089 ; Compteur = 659108914
+100 allumettes : TimeOut au bout de 100 secondes
+ +## Version avec carnet +5 allumettes : Perdu ; Temps écoulé (ms) : 3 ; Compteur = 13
+11 allumettes : Gagné ; Temps écoulé (ms) : 0 ; Compteur = 49
+17 allumettes : Perdu ; Temps écoulé (ms) : 0 ; Compteur = 85
+42 allumettes : Gagné ; Temps écoulé (ms) : 0 ; Compteur = 235
+100 allumettes : Gagné ; Temps écoulé (ms) : 0 ; Compteur = 583
+ +## Graphique +![Image du graphique](graph.png) \ No newline at end of file diff --git a/graph.png b/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..a4cad053273de08a5e04b42979a8ab586dddce36 GIT binary patch literal 28689 zcmd43`9IYC_do9Hy0j>?*rK>n*$S0VmQkq`$-Zw%wqeM=jHRnWWveV@9g=-F#xk}d zT!;~77-LAX%@|9T!G!PQIpcbL-+#jAhi>v*9*^@lkMlU^e(vWyz0|$0!O0=W!N$hM zdH2pueKxi~QEY5`)b{TMR~7>iV&KOgUiun0*h+d%%z|J3a=fm6osF$L_TX<@cJTXw z$9K%U*w~JGL;wC5brA7qV{^~Bd-J-Xzcr1#@5#u|H2TtxtL!{^Xy|gk%gp1-Yd7{g zAJ%+wX5o$SQJMB^56izh$SIGVUxz$D{A=%x&Tki=vq?UY%v5~#S>TX>tE=n6@aUyr z>n-8CXf)Ld+2!Qxu*SH%_ik*b)8&fdF_l>1){v!0o1ce(Fl7qd=;z_9&En9{zdfJpKtHej+z-|c2Ko00><{QaZ%zm8 zfqsf={J%dyd8)X8Y^}eF8+{a6Ds5dqq~Pl0XMarme#J8`rGL3#>kkS`Oa1Ka-o$jf zhcYY_x5v3dhmw<%NBnC!=zh)55BLr{=dx#K5BjNXD#tAOSCfO5rPqEh<1EDD%ClmW zI=QZVXRBKqc0shh;vIc^mGOO_PI&`;lvJFnCR#0H>7=8!9F^wXcejc$Usv}_AGzGE zNc*NCf|-a>E;%#Z(iSa5d)M?ko7S|m?Yr_#V_){SgJXUqM0GbxD_9K~+6DBSQ6FvI zJzZGZ2v_?(&P{7%%%h2DN74cDdQx3kP=vgK!Z59R%+18gC*j}$JF`nk-ldwE!P?pS zp9f}U>qLTMC;GBwhvRf$&dRjPxQ1!fg>oxDGM+uf#5$mLjpVMTy!3@WG*avJEW4Y% zFE>48I7V&Tzk1H8b~+vT^s%KN2l?gA=Dt~PU46lE246_T{}D`c-Lfg90SxEE7uh=3 zkJ_$G^X!!L{r=CsVcUq44yg4n;&WCDf$tiA|LXFcPV=jc{91koqpZXin1C#Hyh>fT z(zr^nC^5F0PJyph5gmjq8Uiu$ii)H+8p5-kVmj$_iM;IJWJ5Q)WZn}7qO7%i!akKR zPG83mY<~aXN8+7g5^!8>Y`WdIvx&5mek0@XOEB-v*{Z=&WZhx&JKASU8#m#F#l;vo zoJxP#UfR^J$u3$+-F$^np>ge`q1|SWUt@pOSO`)vtvB#`T$hzEv32|Rw3>yZW3G0J zLic@@rJMYh+!{9=EU@1B7S^^msD)LSCZ9Sib_6S)`uHiWW+G-|%g~@ZLOAf>?WNez zp>R&2k;Z5t#U8G!KMyPaUTh(UM34+>Z*(8iQL#11x#xk>`0P+d?b3k#wsl#F`JAJj zGFL@%L-X4NeZ#Lios`!xe!-C%SfvG@Or_$ee~UJq%zymrGzIryEo<>gdLSjg#JMvSt6+Bhhi#v#M-dQE(80G&Y~yOi}f@Ppu;a zl)^Xop|-ZfqpRAJ;?`Mj!pvDdPr8Y9VNZ|PLY(R4;6 zpLFLAu`gsabZ5&A)$%FNZsV&QZiwtRMvI~8#*mR?4C_Hdb8Yz8P9uGlL0ok-VdU8R zjs`f=VZ*5Ai5y%neZ3$%3|6--qkD{k#VXZ}hYQWE4%+yUwsS)_bFHVFM!j6dG7r&_ z;7kc1=SWBr51!}v$Ssw9S-h`H&3omLs}q-GyX{XDgw ziW#)_njGF86%2bq8SPedzXeJXc2 zdaybxOYI`nv?`KJQ}I5Lpx!h&TPI@);%G|f&S8Q{oIX208CejZwBY@_(mhU0$9Fmm z?z-xzKCab%>kplF6Wi5Zb#5QEGZKG?wfki(=(gWDWvTYU>13GJ)`buBfvZ>Al|?X( zHHo zO7}P2+G9oBk;w7lCR|BIUU2_KgJKN4&`3CBuir>LeI6NvZ@v-AwMzeI+m#|PgN6qO z@73l{-{HVpFt{+Ij~n-aAXlFAbKC%P44YxF*voEXnlkhbF3>!@4VnY)DFwB z9}81w*R{%{{4na0%#culrzamgC(*N9mCM*?)SqR}C7s)wMVsAYjd{Rv*<6EK*ydbD zjcm@9X*9AZ66?UeH~G6)!N@La_#|FfvXYa2B~1Pf2Z}@7JXg(pI?=+-!}dp($X4FL zv)CbHf!^(NDiTj-KG^WnuM+`Y@_te3+cwASv3ohd6*~_;XMY=U^WFcMI@;;)=IYmiq9HrP$ z8650qq2xQ9-pMPxTD!@Z8*dD2*KRj!Hyz7vbjLq|qZl%|bUb5bA4ixiyL<5TJT9}k zF(jk!V*i? z3K{!+E*3Z>3@0Y`hgBrvTT5iFs2AM&#(3V9&*vyXji?+O&Mo5;KhOAA1NOt3W9YQ% zee8q5K#uRjvD;1zC9Z;71HXntY42p3dDm|!S#zA)tmn9kH67GCbz>nrV3_a#W)iv= z1o7F_gE(bQOuDu0mEM|8-up&b*>sZ^x`^a88%7>ok29qierF+n;ljwM?x4w{f&am# zgK3INYKB76!{W3o>+x;Mm03%@*8@wsNo(V&UOnY>;FLFT#CL0}2W{4$x@Z;#e_LBg z4-7>Zs6AZK7|WWHtb|`J&c)>}Ylo)a822pbIP|W6twlFS(C=i5?wH-6NhnJ7j1xcgx`p|MM-Y8On$9*1GqHoR!gz-JbmY9QMhC zZI>;~Xjl$hbD)0lSC_0Gf1$Zdy+5zCO^vL&mD)$PeB|Fgdcl(kCd1WDTL?edlw`JW zl5CqtUuEOFe;S4GJTBH_^j=5(3*7kxeYHz@In>Y{dML8N`;XFq%~KCApbFKVkz>d8 zU+8A&#`QG^bBnZpSh&j&>4Wjiw*#e0NF9Rh;t(aIl7nu6HAXU#;75cgu37~s}Xslcyx)tEq*FkfqlC9(lpvoC?P?n@>zqt<^`j%<->a%bTC8mN zd*B>J)+YG#rhi=Huf_@x!raEoqkdfpqtb)9X*RYsgPwu;&P$=c+e23Zt-Qb8${~yv z_y~4ROI;q?5|BaI{6U*T<3?R~nzmOR)G_XqR1MXZf&=C7b^J|B zx=6vY5PR-+p5@6Ii8J~A!ai#sksd~J`D&=~a@x7y9(L&ELY*YSg5OmgQ-xk+eB9@d zh?Xs3U>$AAZzFW9zRosEhG|+Yu4!OIvHtzRW` zK@ohPbCVA)H+g!ytLb-S@Z>q0ab%^la*?l^@0lvyaWye&1+SI+C^Bit65Qh0)K@mZe*Nn+$_9% zFxq?TbKgZSmsqvsB;3%u#+9=cWe@&w5yiUEh9BgQdRyX?-p=C;AM|Na3;M+n?tgE_ ztW2xZZ}90$NUKaK;a0M)k1brcy^kqq{k<%hof#C-vhlwK3Cg-!%8P`IwBKRjuTPV+*X$`&<LoLjw_%$)C_&a%rfn^Kw1-r4|Z_xBe^&YbfT_~T+eiuk~ z%oRL^e@OXJccEy8VU&9ZN-M~IYVUD))aUv3$N4QM+0U%TThs(c?*Q$2Y8&!?VQn~F zz}mCptjzawpQtK*enszMynLSw-||t(R*O*Dhv&FHoe@*l6TJ0Z?r^YJLu~RaA7M)J zE8l3#aT)%#ODFoSmLSDf$+PKQo{B>Yk88&MWMlheYVd2+?bi4WejkpTv8vlO2gM6) zbxYq+J{zi*6jU3jYU%KMVJ{H0Vr6<;3uRLA&M%WIXP>UEPsIAEx>Ih*&Jhh83gA|H z0^b@EutS6}_d5+A3JABmUJ;D096~APudWDlM2f6`+GqJ*f8Q;09Y%pUH@<%Mhk@#l zSUoP|U{5pc?s(%Nzu@2y)zRy=CH)8YTaDf-&EXy3T`_dYo=|!_F;E>rE~|f?TuI5M z_j>dpXBhf&&Q|f~*a~lJ%U=(iP1ot>w@Rg6JV~)PRJ%5#OhCED}D66($za3@}b}@J_{!zh!+8&#&fNv=2;@ruVX){I+?)+vCzl`Nf)kY(|0k>r) z*x@)xzw+K^UtsKZ&p(Tn-{__G`xqxFSN@Bcx6cMqMDO$0P;ME^i($(QuMD(i!<$Au zMm&7K0?aS7r)AQ|w(vs5NS#wqbKPTOM5K(M4s7GmU`swhNJ544Y>*UBVYP+TJ<3x9 z`BF-fG3M`KZYxu2vl)LW$35GB`&Df|m>V?2?lA~uTpC&BJ?tl3JbzMM z^}NlpMqujRW3U!_uU5N8yHTb-_tN0zW)SxApyy@`uci0rl1XomlGh&?KL%9vPF3WQmR8V9CMZTt)32BJ9P-f zp$oqxJI;`tIrn_Fo|A6W<=j-M9js{Ei}&^BF00C%kb8?O0U#UuXM;xQ^fmvI=i^>w zW0~7A0zIsV_{DRR7!p5IY|!zs5OKgyoj(X$LzP{hd1%U?ZfkJQ>Sux2nIfZJ1@Cgn zfYQ|+uR*FdV*AO^Y$^6|5j4iG;uT@7E#s?b#s?YQi`V^hwlX#R7`K=5HN$>Yc)a%5@UWl6ZYX%G$BCM}$)9Jt{(Gn$mdO2tEvO)%el{n?vKSR8#g%VX z5GW3#RrXs(OM=MJi%O@cunp~z&q@?>tNBdMD$41Eco#+FKZe?HzYz}&MG^4W4EOl4 zPZ=|#ZQP;jEhTcfAkAsV`@%K`3`!>QAZ~!{cn~~x=($7nA1C+9HzYLDxBgh1#l4)5 zJhXt5uCIQhCI{{h9sQ3RyIcp+eE+YJXBWV8#*ZQ<%Yw3A6yAq|n+H*29Kf@SA+%QNS z`Mw?>(oH14{Tw7~*D;K7v103XKwm$=_Mq|$lZw<88&;~Q%27Rb4?&!h#3*ED?~EPg z{UOt^qEE7aXEnD;Ev<$a5t*jno+L+9@Cf?`givZOZA>XPIk%tiin0i4i#iT+<*n|< z)na$z?~P@0kY4dfE^Jj2iqSNXd=rL-oOU)#cZOXoB2IX|*a845S9SgSGe8?mn^{?< zZGqQ)s4nE!Yj$;%Xc3uo#p44K zm)YqWbY4Ixb@%{dpIyqiktIT_Gu<>D_mS)A6xv(Tam|n zH)vMAJ6;{djZ^mvF^Jqjc9*rp`?)kg5LV+0O-Lqc zC*F{hb0JHt0#JbO3d0yb_?w*M9D6F01=WV6E^N_5cd8G*c1-mM2TV?|g4@WI>XIA% zL`M`tWM{oyIzf}zucL-o2*4pNIY*R7m$;PYYbGr727ZIfWcI(=U#qSSwE(_ONqO

L~umK^HCI`S??SM;wfAYI4kjdU{=VZZU;UykW`f7bZJh#FRzp19GpL*Kzp-7Zq;%oJ?SG8_(Qp6$>Rid=cFp#M80GoL)Ox^HZrJmD-(HMR8v?3vM<5XMb%Ha< z01|1GZ?3iXBT2aO%ko(DN^%oo)u{gx=^zTZ&t)y=@114T&Im2y>G<2TT18n|E$p2K zj)@IvsBP*oKJ9}&h*jIJK>#CkYYJUBIfz3cOHKwYex5g-{cTt?5U}#^>DZdr`LB0? zz195kYoJ=q*AF8X8pzzo&lwk$c{QwJg28@f5~bPVGjB>c3Mo}Q3(W4baR2myE$?7J zn2Nl=9_pn8B?`W$=)0WXyd?>2xpZ7d4Nf#Tw)km0tlD~WWJ~Xkq5oj{dsr~GPP}TN0-~gm zl2Md8-S;DaF}8f)7t7%}WE)YdTM$ri)hL6TbEV-BW3)ZhPsN~vIXrABSxo4C09U z5HOsWeD_sVws}Kg3AR%{_BUXP#5eqCSx z>&d0c_TPbw=?ROytHT~Cn-7ZrQC)i<+LR7&b@l{a{hA3oPZIKn!6WUFJ~XhfkSP8GvH^SXizfXRa3=Kc6i0ip-vGABhI>8YbVbd5*F+a^`%qaLmAXGa`jXN&G9kHY5a^KVgV z9JI7;0c$@+7}TO44#(UdPK00b5&1Z(j=7I5MVB4V-;ksv!%8d@|AM0(6 zWGt-AWc%|%V^>DQICO!w-!T9T-%ZG3QH`UHrpJgfaN)!~R9 zfq}x1&AO);h1|uBT3m3CTkRxYwGBL^XlpR`uu{%K=njKM8QUg66&ZTgmj|=k!=Rw? z4WT8QHl`#t?BLHW&Gx|i8%dhY@M74p)z<|K=~$H?`%M(=rtb02^IRS*vZjHGNz#uT zpUe{T%iRkL!nKdn0%bo*+{}~wc*8&`p#n3?9wL=gDJJ{x{WK+fw*jpn`5xSYqng@a zUs;lDEY@Jp``R04ZE9VkU0fK@Uys1!-5Y!rHEp{Qjv5gp9h!ks-0{VsaFh?0KV$Xy z%7&4!)JVFMYS@hgXEXdBiYayddDs1wn7hUNJuUVC1t{=8@M&_2=6@|7IF=TZGHTKN zyn3Y}N&){%>Tp|K-7+KlwTN(>@xt%kkb>Iskk`Gnx;6LwLns2X%akk5>4~J?(fLuk zSJm~(iJvd(_K%ML6~uOJ=`ie%j8|df25FP2LBBe#OTMzLj4c+<{{^V!TE;Ej;Xl|U z{DAG`J+v(*UXxD}X#57NDp)$`qG3ec$9Apuf91;vW+C+drMl+1fc1N4j;^70Hc(Zd z_=X(>P>ApAMdXi{;=d-VM+04S&FeiO-1%wd#iYt-|GVccYkGwPejWjCw7;mKfh<$| z^C)AzUCj;f{58Qe7aKGbEZk}>+-h4J0r!esdKj;he7Qp#T_NTj|px2Zi0nzjdo7``(gNqZXk@yzhLbE01l& z1h1h{oSGN-D*akr$vJ{4S0!C01hbS^y%5y%Xy0gjPm&|CO^kk8LtS0{0>6ZglFn5V zJ;}b=N_(_fkBQ;)N0(-$Zc!+dr$;kX@;%+Az9s==Qj_tq24uTZ>%mluu?p^>?|*{2 zAj3>cE0PR^lR2~vfMdG5GM#lnxy$;unZMh8! zm2|!`;<_U`xkKnP6rts#qWx-Z5nho(kSW+%b-2JxO05y@puT!xvcGf=9-eVOqB-5! zZ`fJf1%dFHXqA$^**!hvy@67u^=M4^cI1i=*Ux?<`z>wyHM*s7lU+=bz8}} zbM^Dh z=M`{Y(oJUj1oQEZ_<4HNS|u*$ZK780`8GMI(c+0pvv^zl^JYi&3rCK~*Cq(aLv0w> zgvXEBy-FtECif$9NZcru38-mf=KA`V_ixW%Umw^?zk#*@S2Fg2=Wbt0L%a4AWy(mr zxRX=Z&*_rFY~{H2V)5n07S)MH8jj|xFsz?m8lhKB2SOJ1HG z3~I~UfHvyaew2V*vqtgd+an}|%zOlHSd8`TVQ9UgR#=DX@?rBrXV*iT(2$2=7ah(# zO~&P+mXoOS6{ZGgv-87rsEtMH0P_VJcZw(%is)b6Dwy&VA{5weK;pvS+2x}mx6kG- z<|i||U|1_dlO&W+blRg!rqJQ-MbOg?&*PB_xEwSoKx#joq)=EKZPq}4rJ2(e+9uB0RCne=4SOimhi_ni+yYx7KxZnHIsBJ~ zMWQbMy_;u*xZ$uAXJ3e^;DPo^x7#tEj?^?=HtQdugoCSWLC`=4_+igpzIcRvmW<;| zCPStd25IeRz7rCg;CdM5lH&BgG4B2Q$Sd*wyAMQZmL#Fz$zv<;6D)g*PW^DG-dOBV zWtyEV82A9i^^Twr>)oimz&ig@b-0x*TC(w#eO#_B%NR`b#2R{kpuhNLFwSv^gh0r# z)&U7{Op_P3-0gPY{~r$=ws0lI7xzl)NSt;f%TOEA3Z(uF#~@9E14<`e;qeyQ!Cw^L zL2KX*2kOf->~`~7a%&>U@zEIIB3lCU>LYqkTU}93z9cimKz4lZ&KWJkWg;1IQHkkm z6x6}Ehewx*0=5zAwcf)O9nbNXnGH=(8X?($6`r1ZERpg8dEl~RxkDfpI?9{SK>I~7 zeLO%?*TwevzJuf37 z>>7k_iVATjll#UYTW4K=O9-k0U#-Dn3kd&OQ^RIC=^$#Ewd>Gad4U}1Nv=JDALbuR z)K8!PSOa0vs5^6^0!eJJy`8UsB<0|tYG(pP(E)yfSJSPI#e@bjmeU8ZBT?d)8}TWK`IQxNr<3DiB}q!KEUDzkVfl_*Bh9_tpO6E zC?}jN0<8JTABSOjt8bmr;hPUcMX}Rzgx;C0m#-GvK+_{z#?vFv&HPmP+b3ZYWWFo{ z6m0~6uQifRk<-e~3jX@)C$_FQ=OsfGGUI>1SopWIsgs@s8&Ma69MFl{x=i)B0&i=i zoyK`Leq1i@1#+ij_wpamNa?>K^hTHSd%{2NI@LeH1{KU6M;*2Ac2p4dYcW06?e@Rn zkLDK%-5#D(uvxy#Jav1)x{Rp#8{W_E^fJw1ND1tsc|FgrtNCOM)_{Mz!4>gA8ILBD zcMt1c1^BpJ(!F6`6H8m!`o$Z%4}DuW6^D*HrjA=rqe2^tEo=J{T$0LugVrZ6`%43! zQL0P7vy4anK1#g8@@W=wQsZdA9r ztRSY1NfL={_D0M>rLS?XjbD>%KjUF|~+s$7g2 zzAwCf3xedZISKHCbAT+V0KJ3zvK>l`O>Lo`NUO)6*?p&y9I;|G6&@3}Qvm6x{rP?Wz}f6m@9bPTkaY+tV4o_}EIH3lgWf4kOe$zWOSJMI5A$6gk04pNH`qfg zV9Gnq>^T7ZD?ujDqZqu3Hz8%ev!=A+pw!^Ui_@-v<`UAc9W8u4FRnTnZ!o75x@n;M z6z)xXW>z;*o|+b_8BM!h^5f=yt~< z4rK>{M8a?R1_vrP%{O^#wKSAdQ#V?M;Wfgi8doI}RMG07{VFG6qhP_(>7}?xd97Mg z8%4}L{qZVyOwTN$iYWF!-K3dlLBE-`%dLM5>CZcLJB5UV$liBAs(my+!pg8zWTd7;I7q?y zU8rq^_HhyI^`KR?#s^Dhbx8M{8oJ>Y3JczM(yV7cgpAe)fV?67iizIc0gJ|FN86nv z*J{l%@Pvb?5yBHs{?%G@2B*#iYkhd&h0yIFx)ZPb^Q|5}rljc#?`Y@#_BKaa^AFsSETjz0LFLzB$-hnjGkIWXYjFI|=DOGCutJ7>?nv#bP zicx^W+QUnCe6v&;nw{JJpA8G6^W3N3;WoK>{ybU7@F*On zC;0(pqP3mJn-RZ~mw+{oJnyfmFxqX$L_@`Y14kwqq;PXRN=I)!iiJ0%A@2q*-WGs) z%~npnJ-`C6%xBLU@HuxoijCSQcAFQyUC$tNks{r~e;MLiPEsMSsP$JO)ylcO3P-a+8^vJm`XcUos?c zrica&Xv!Qy{h!sC19Zme<97G}3urxqBBksps|0k&eWiSV;e9jdjD zgyEuu(QmuVcF~2!Eg6s8*%kL&4FzdhI@&WfXu@KX7?q*VTESpf9@ zm(#iOf*0;;yJeT3!WyXXulbUiS$j$VdQ3R#9BK-%t;_7={Xi1tq;G}MqI%&t0B@sM z#s`Jk1aDmKWkT)sGoCE`^z1f>&#xlJ(SLQj1pvw&fL~~7*#N8Ph3lxo&+?(oS-TBs z&Pem)Z(F-(YEe&<$!!#&dXwikFUSH5{(=@$wBh=yW~$#ufhTfa6CuzV;5t6-sBD<19$O29Ub|4-dnKLEV!ph4}f%7PZ@q1KUrQmQZIqPbxPg5?- zC_Y1X5R1*zHB;~LgSV{ygV7I|Q+Q9gK6LTU^;0;63S{cx3A7IsZ*i}Ay>rJbvXE_# zI=lGo!3AK{O0+aHbSm+u#}PtM8%yf~9AK;OTSV-cj^Nnr zrVm$uicbOzEn2*B2(TG_Ok^a$!+c$%hf`c*h$M|;X4K&zb10ZlI`QkCFuy(8f(2&} zu>*DIp6Pb0Wkr0*CEQ0k_6Sn!2z{onl67{^C(tuquY3AA;XVG#2ToLZvLMS)_r3&! zzU@f%@tzh%c%Gv?mLLp0D#v0opd-xmQAP?rj?!ss&5qAi$(qLFaV!9N{WS1(E8Yq` zR&f>`t#vc5kgW;q0kdmbfc#6s1?H6>KY8>(q(>7oOL79sOsLA3^74F62VRYw*yWJV zTGbOs0C!(fC(9FiLVM{9@~_)w%g4iUrgE&!e*g^DXjs|PO<*$17^JNOmyfa(3i;?t zzp3+law$Vc$@yus94X}gb1QEOU3<|XdiBWY@^Qj{DH|jVug?`8dmy{tm7B~A>{AAq zLH=lds*kv)0E{Ku-e@3OX1beKt&_6QTUV9&a2D=A1h^fe(?M<1KRv#Y7bICms1CV? z{ivm@`SO%xoq5*cAUE)ha9m|VjF zbaGA(YwsXmAU~`)X}MTb{8Axk3R@>V#jeAy3-*Z(a@R)xI&>@ePKqwf8e4XY$C^Qh zH~cw}w>RNmGbvga&f~~nV4$SQNiO_j)*hY#LWfmlpfm4Iz{wY+Y9IA^=JVi~*ghNz zS{XgzXMQ|w13@5*+4|3R)gfUeh^i>tZgEzIqz>80zk@-yN9Gi=xFS?AyW0ZgE}0E- zj?tVKUDmAicH@o;Bm?J3vy=fr#3B#tJhXr@TeY&i2)sDrmlq54cvltw0nOd)B~t*i zn6z6_AG8TomAI(5O>+T+kYOA1B_XaKkitvHI?xhBf6gs0yd*Y~ZZVLZ*o9znpH_NRzFJK)MNEfNv$_b4 z?#E)WuA3{f|G`bbs5>RyYXhGSod8@q`1Ge6?&5*~UvfbYc$dV8sEvXzZukI~ZWe|^ zZLj36McVvsrckL?PC+>2=)|_3*leADg65DDxj1z2daTc-KUzX&xGpc zzGXWzh*u{No$F4@C(W1KQDrO1Mpa~Yw{lb3_v8(?p|a1QoZt$YBmUC?=m2rgH|%ui zNj(nL6ILnsd8~J5yd-oVbgI}zM@QpDVE6&*wAxN>!^TvK+cx-wWDc~2drY)SxI52o zIUNeaK`j`3(&jwz8TwX>I|@Tug_qVyvO49P*o+IJvcVMZF0mg~-xU@2owXPo9i2~( z0L>?||79LZ(uV7)sz_hmJ@KVbx69&jJiDsyc~Csa`jy8Eng@L4W4)$(eEK;eu=@-| zjAf$>S>{Nq%9i8{Smg1!a#M#1XnUcr-<-0h(1EF|>*jWZ!5*P=tQZZe$-;r|7G)s%KN2>6NSWL8<=!Xs#q z#p9^6F1|vsb*EUI2o$Ya;pfKXV6F0X(XBJAkOH`3DPtrAJ7NocTJrLVh@!^Na6!SR zN5PbA&wxf-;R}aa9B09@uw&?OH3di%T@T*qSJ_+a(Z&?F}S>HI6Jmu>a7p@ngI$&-h_lg#KcH%)5WR=LMG^ya$W8^U|;f zd+ch;fO)|pkrsY&*KGsGe+w?VYG>TMNMv!j;UF`5^^u{P{ixe*0ua2c)WshfVj~$x z=u2%r4$2bw&N(fops}w&H)tof<-nwKRgtV{bOyQzMWeF?8(-VDkg$LO=!@bDP~`ZS zj)ZBQ*aZaPVPLWWVM0)1Q8fu9T`X);2G;lntkKHqYn$RbsUQ}rj{-oLH@`t{njQBZ zpEz@9zIHl}nUWm>6(3&lIC;`Q0{Z1yxaYYIhw5GX0p%U3`zE4}`G!4Wn6{^HXC^^O zWEXU|fVH&&)ET)~m$!)(=7ZuVSTP#}CwX%lPEUttyZKTgee5Rl#nzU8EWduJnz*@oMQ)sLQT~ z81M%lA;I9j7SuG%goUObW$G7wH@q{4?F{cp#awPJ$}Cx-2mQA%3Shq5GP#RM(z9FX zZ=0s$SoE$fK-3ReE)W2NU4ys?J!_%S#wngqhCX!wgznvgJ_IHfKzx>ii6?-g{UI4= zirBTr{lFS84l8f97sZ3(UJ2-H)9&UgEZp5+kU8?6F4{OhDF-{7ve@i+8Uu0mpYA{} z-Oield)HBeggJXcm8+;j;Mpuy@UZRrfE+}D{BLhtKswR7zr|4!S=a49ZUEmcHSLF9 zXgKW%Xl|iFL+q#5lb?r&@Y)Mg?WT*tNlKOlV&LsIi#)-4`45Z#tH`b$YZwG^Xy_j_v-9up4 zpRe@*b3a=@-XF*LKhJv_avC!MUp1Xu9A*9^qi;V2o7u}Z5R_O?MCdM?k#;!`$QA4l zY|FjpChf7Cwo8CqPU=P@QJRIjc%kEyG3sV_5&bf|WaE$s<^~JXivj`ulCML+qs$C~ z^O1F{pc2HgoZA3azbb>QJ>BiBt8W*p0`~^2d+x0MRqFkpnjuZOKMj|UM?zgg!0~`G zOnk%IcW`nW#|(I2c0NAF{R2Gl;1-(zSF?C$x{}b_jx62fd?d^+T3hA`lu8T0z>U$o zFq~x%C>HHP_J`0wz(BIOP_>4A6)&$a)h7Y+v`%YKjiija$x&t%QnFd~oc;Sz63C53 zGf;xM2M8%v8U_A}z=t`E-_%Ii&u+J8|Djg_@W%%_(}gkm7DDKy?p9T+exc#>_^KX# z>S)D)h0FQcO>M3E+PWY6N_hS}JvweT?_mReE{`fCv`JN^lXnrWHp6D(&7{Ka zI@(amWF_4#u5h%>m84Xd0_)F7Ukj~ThYyEbFM|@SClDYgnhnvB^wp_e8ni)MD!6c3 zm!*0Scvu8O2wVWv3_HyYaqIU2#|@HwM~Ixz)tkU^R1gSnJX#*AIh?J1%bYa+D40~b zXd_jn(Lc8!nUrJFFyEFk<-Wiy27dsq(#&PyYwh??!jH6qq-de@4S@;x%1U$c7tl5Z z$s&7&`5$hQ#LkNsmqh4P4k1M9lBk50mCgwSme;0!uDoi;_T2P zP7+OkX*4g)iO+HO#OzGKpB@MXIZE}p()vEP`lZ{T+5FkrxVsF{CizGWd=*b-ersn% z1cN03ySwOf#jxH${)o52$8@N$!xn!V3^YIQ#{BaLZ?$ARBPG#q;wBMeS;ujAoTV9m;x1(1ZQ=}s+m}`yTvOh4;2^6;+XZ~7uHaX zLjw=Gb>|?2E@X0S1av+n{Rdsh4zvZ*(_yj&9uFEAaJ2 z%)He+=(lI_^#MODZ=L;Ce0A1)nA!WoHmQ|x-p9vB!Q;mls0~NSq&-^5u|G%qpysPW z*Jj64C9c<+joGdh3$+u|m-~I!-YjK!KN{#lY$Ey1y9Z_oiwpeVuTpR<+#-lP%1HGn z`SAA3gvVgtUFp;(p1C4xa5%guKVK5y{JF`);ic*3D+c!iIf^Z1<78 zaH=%$AvLp&{;UU7N=p#miNcA(9L^>!xH>s9+k|ul?T^9yNC-s}Y5>vx9Z`PJ(ry9# zX#z_kDDlxwi)_50KEDG}8P~kYJQY>k`g!XJ^>I7nWEPJlkzWBS=sZro7Teo3d0iz9 zxunLxO@HOb*FBU@1Wx|OnLV8Ks%qgKG~0^r^VYv^aNCfh$H?$#GWo+>P})p*_!VG? zO%4}WBz{goXrXE##obif%cbKfM1`@509SA>6zAyTale24m5Fqn$1{0Xoj7JieE@i1 zi-L`!{FlV%i9b?vUh?6?5Z9REn2VMg4{XOq1XN1US7JG<%9G=z&almYnC)%p6XCdaRp5n7N=P)Q&}LK zRtyl10E*|1JnH4(?{qhzDpvny)<57D4{QQ$Dv#e+*n}09yuqv~zo&~D)6$7Jh&@U$*8b<|c zLX8W%yrn!?dfGigQI@hreNXt)MdIaHR;&ORy0fRPq{zO3O{rWW)~v&f63q+H6zCJ4 zVz&qLv1tO1up%z>t0whd9o#*WciDqQ6~nXWBDdz}EOGOJxW2ekR_Ax^p^X0kPV* zh(&iX*E<%^+Hj{YU3Et?E&hTMFo1KE*|m+qJ_S3^XoOm!jKs-wOEJ5AMQe0&qOnUV zMq3w3YaUz%#$YTQc*>dR+QUV}z$A`0dXtp8ifmjsm;K62xBji(2R#Nrx5T*}f0(oU zs9C^bPc)dZ)y85Tu11~y%0iP-ka})w_z}{P@(2U*fuZ}PsG^QyKol$VWT8(%gH(dm zD+pU8Rv0QdM$8co$4A}sWM}QiBxEy7vHWlOB9l(mYrScnrk0u)mGm4$u@LxeA+VL1 zAW%Cd=8m9M{nC_w_54%O@iE(^!4}i+V7?Xa%(BaG0N|PV!vp$$yi7e=@A3w&YSQ4A zq%Blr+f&ctLY+V)Kd-VL)W;dQ^n&;0zBEpG*SZE~{1C7Loj2I|k7GZ50W|d`S6vyG zTly90c88giK%4P!KsrR;{-jk%90{9js;d-4yg7nR5BUmDPA+ziVBeJiG|%NBAKz`} zjPz-8q(|Z`eogWhJJW-UcF*T|(0^9&BR^Gj%X8Q~#jXnZCV9jya6LrPRdwb9YX>($ z!;q1djgA>ogTOUXJ1R)k82zcxPqw$xfjtDLP{D2N&!zhl?7rd9g634X9OuNdjkb>r9Tcyb9| z6VD>gqcgkBxvmVTIzT?_S^#iKKLHwSPs}dPzvzJMmTlfjuTAw)@oZ|PP!S`4tT0oV z_|whenr`^b%7!K5HeZyDqd{BjZ=QQ47A~M9ZqZUjvgj&7{*?_zWa|VZ@>#zzue*vW z{_k!pp2&~p9zhUG?z<3o4j1Oj-j}n6o@xcI>#n_*Lu~!)3XtE@t~P+-YWHR z%b)x_nOUcBZHxtlu17_yZ0R(JE{T@|i=c?$#EUaw4oG)3K>uoG7g4|MlLjT5Vur8) zOKBRwmwg2;tD*i9LK$J;;*}Fq-+`bP%33@mE)y!JLkRU`E|$@H-dw-gF~TSs`?>Zc zEpq55K`us&*^Nd7nE#Qmzl<};h49mu+3lv3)`v1o20;Qe zk;Okx9wFdcUB@0?u8nRlrgmr)`}Xm;knK>rhIcwh)YIx^sSO5hP3?Z1CgJpTj&ElffGsKU0LYwQ@ z$=e}Kj#YJCSX9VYii4Y-bln0kOM&2%gqu?7Ux{*E1`0@cH0_e(&vCDQyPdLoBqf&+ z(r05uXHTXh%@{cXJCZNn@I9&HJ*~;$ND5d4sU~=hW2Psj!r?j)pSh#I}#`Nh#j$q%O!wx-MD|` zC{wV!zkpy=_+3-K@A3To{P+ClFmv#k&wS4Fx~}tlzh7speBU4`u`)cc z7@HUUk2=1?v3$^bd-Ts^*ZaFAUjQ0C*B`LtqF*t}^$9RnDf@S1lQvD6 z>MoGiz6@%!MSiDKlhaM-Uf!roM}=OPZ(&ot$6<(?q9ezm-8x z^%(j0pEOG#U(l4nkIp!CRt;*i_Wt?bVD-OIOgQ5Pg%8`KtIGm=4_O`#3;}g(I z_pVuO#CcrJZqW&GFH(;yjR#JXeokf8*wau2-j0@8nK1xMJ<-lf(|5jum5sLpU_+Bj z-MAx;hb`Ua<^n55H14}b;`I|cEb|=Roi!^d6N%+Id2&}mS%Z$r<{h}bf3mj;sP;tv zOMF?iHjuDYUsGLNiErVqrzuuVsYn;Sg~=*VX--sSf}NY^W+Z`YYg<`q#_c~uw5>?u z7cG}_Mp7&T$@1pM!G-*ldnWARO?arh$2L>hCaEJO%`fPk6yCr=#rc2kM6l)3)^ zW9G27^(>Q~E(X;h;Hl4jeGvR=N#YUP%0{ z4CD#LfJ|#(Xoy_l(id?kAzno&SRZ1kBDG)eJiB#wdPZ`*75_f$rO~+PzFsxsqOX_s z<%J9A1AJ33GIRUc#M^RU&^5Oq255M2+B1uBdorGNDc%#wm(E{W=*^*W?lcV|z7407 z2S~}cr9D^uzt|NbgYpx1IuC~WD_Xcq#p^t#8f&@Z-GQXdxI8bMg?+$Ox8IH=l$Tb^ z|G;M&k`6=P)Z0 z`%QFygvp&JIuguUtQ6=lH!Vhs0}Y3F5w z@+Qw%)K6`3lw*UHAzg%efRdOHsgz1=t?f!!O@85GoiVDI?=O@`@CZ58ExDSvJb`@E z5hAu-XoGaW@64F&kOzgcG2g$a-#>gt5QjUqr>g|h4K3X6x9=wrXtcmPU%I;Gv@>VRmZ4luN@yob!Vn)q1G_~ZGVumjuyQ%N9_@wIHdd1pVjdqBCuxQ_< zl1vq7^?C&I1$(r^X;tpIM;!v0vRPb5JkrVL(yQ(|d^v79zos9~F)!8-59y;3Mbt-4 zce-5ZDEShk<$}jgk@{1vxHLYBToVoZ0A5V~aNs$zZ)N_3GZ68@}t{^N}2 zJLVVLbNl9zotU#-xV*|m=ZsQ!v;2YE?;j~{NIjz0He5l}^GD{k9#fjWE5}nKwm7Zr zQz9)TBf?|KCLFEXeX_%+3{`Y~ur@lAkxAa!TM2@ZDl;OrMwb-@mMM=L{n8=nB6@Gd zEX$Pkct~TcFW)QZF{BIW+T(=UF0JsJsLXeCl_ZNAG;)qto8jtg(?uH^}`X&37F@xQtRLapG(rOSRbDpdc`_)1mTiC zZa_Fm-!k*;2`zZir^c9-@TEM;DD$c|^B#57TK_Rlh!-}esp>vy>sk)TJm+56bZzYK zx4RZe?I-?zL z)S?RiHivX6^w`{x8eCsEUF70g)shxao`jWhr?a8FBZ5$pG#d9ONQ3t%8`fq?D!%U| zu0HFs;6U=&s`IBQaVzy0C@B!0VP8Vb{_ic{)LDV}Wsg;WN2k=9E~JTkv(y|1l}f@N zFR+t~@nMqKo~&w#KMt#i#0V-4>2u^H^{TS9FRtDO2^?sIMt_PZ#75!0s~ zQ5a_5MKQY3anb=kDThm%alVoP`Mec)>SJJoPousgEl9j{bE4Kv#V_le?Xg{N!wPyd zE|sYCKeiH5Lk8n+mv|*+Oc`%5C2J`fA$pd^=6#y}+yH7>qe@WxW?g93g)k@z6%tJt z)gP0m1dKXFKRgu%YWSoxDV@Q}+v{n8I?`AuG_~{R5ZIQ;e0=1|k zs%dG*P!3TZYqN~O^&eCk$;6>!W6tw%d^k34l>Nj`*Go74??$}k-;Gd0lvp<*n)i6) z_QrDB<=>CR?Z2cf&Z^!g{+O1Oyx6+iye00K(Ubt4Kx+%~FZ1tp-n zJls9Y{bU{Aor8Jx37L&)+F$meTf&tgm>=05a&ynfOVO4z!shxqxDz@-cvX~ESVsDB zx%%4CClf7%u8F*@EG0sd|CZ`@Ia|b>+mJB?6?kjsrv`-7lWe(f#+);p5}G1(4)X7+ zobNk+1+0a){Zj}{-rR*EGZ~o(8I4jDGq12daIFHag7M$7x6c%sigM(#LZZ+oPe$oO z->mNX(8R#`S12;jXc+}FmC;&NY+6_f_SJ@UW!2LiFSh*rMr=t z)g7A5ZM5UNTW%C@XSCPc3yojj93pcM{EU!J{D_-!9fK;;aOizRPP=bp-SXyG=FSHt zsFvt2?M_TZv@$(jq_h})!Y*C%NV~87HTxD(i2d;Q;4H&aEu!ayG`L~VzgCOii5lpB zTjDoT>5`w_YoNWOXh=hd28Bx3=GPmoaYt?#H?-B4NDiqs2GuF7xi>n`Dch|ktnM?# zkQz~(tcHWHj&-}f6*V9v{VLZ(mgU#7e}*Roa>y-w#MKM)HLoBHfwRzxHT4I`zj_R3 zFLVbP=%30tX@{Sn$nQCu%8Zk*7)Nj6C$=0n8wSf?MI)%0?V~sDOjh;WCy(bvdaUmH z=yjFm)2PWUqZMUjjx#+~Mnwo+pV)f_SBH9h8Y{?{s*4)kWW@`>|8?3yE^NlYMEk;Z zb+k}g3Fa2L7jm!4-EkzTKBY29)p?axzhj0FfDH!EH5XR3QOmLOh!5P6{UikzToQz> zq~g0Z=eJ@VAs!XgE^6+ZS7{FSY2F{*5V0Kxby{EkDCym_EsR1{vgF9_63o+-jS?jb z>U()wSV}E&kf{zxuOUz(uBRiJ1bPqte(q&J2cPF`yA-jwW7JA0d2eJK3Yw^AWS{BN zcxI1PYG=%u~KUv19!g_5f@}>@MoLGSnzgOFE=$RB& zgqh3NH;`6gB+>jg#9}aVIY(aNgMzTG#o1A*cLvw?btqQ)2wh{C*?RnaLcmvCnXBy@ziBj2`~z#gpV+BpU<|?HrZ|ZMzhPW@>f=)p>mIcpMDiphToKXtU2BEQnPu_lmIbGw;d*^ z`z>xt|Go-z->t?lv52PNkO^X>w`XvDRUz9CX-g?fEdd_pqe;Ck%!fK@EN;)DQqF1$ zB@B8Kzq$f7Lr=o0J%X2OlefE`C-o2|SGU#pqF(+t50yvA&&UnErwu62JFnM~7sULs z2?CA;rzpqcA<9EWcgFO0=+i%qkt`dQ^j|_TtD9vi-8lb<2Kt~#%Tah!>BOYSfzl=N z`90=H->-J*RaqVa+I8p?uvZ}B6IJrak107v!XlV01MDjk^WheLI$0cTw^Ad)&D-pR5 zYJVy{d`NpC4ob`5)WX)A+B;ZwGIeS@A%7wMmP-5fm%TB)f$8I$3;6HC8Dzw4-WJKq z+_o7`yxFJ)8E(=NSuTfUDp!hI7!$lu519Az;{}s#Rpt$&44;~4et;{E9;@569IE#rueo6&Mj2%hE;z;+Gjv4q z%~}|L6(-pkrbm?N%(9Oq1oLlc zzg^YIkQV$A@nUCG5oxit+0OJbZMIGxBDMP<^Jw(P54Q7yiFU!*xVo_$69A(tNZyCd zI&jooe|eKJty8EnCqUdqUckzP?e}O#=dUA&my*rC%~(Lhqi0>}2L0*BT?yRRGB%@cTX*fmN62VcU)@5K@-Vh;Rgt;#^kmZ%&#;4@2x*?Z+c|cB2wTm!qMwTjFN)Q( zS&PR+qfF^`UpHpDze=DCMDNI|5Rr%57?gFn#Yd%H@7Z zM}D00c3Lh$5QCflB^oN?!BSQixP#f`ls3>sX*nKf{bPRCodt*a9{sqxnQVqSz|GId zI)@V4uQKQVl4WzF)*EuATZ<9X7LiO&hacLH{Yy7@;b`=SlR>}4W9jJukl#mdMLVU0usbBCTYI-*5{|>e4}j>!6$Q z7Bn0{j??!86c{p~nYr`&&^&m2@Kl;Jk2xjf-+#C9kWLgpgMO0;m~D#E{eCkjMy2*I z(HH_;n_o_xaj-aF7J;rldOq?FDXly%&4t{bQZ^rFGsv(Jm({FR7|2=}_NXjWa%=b7 zC@F@zw*`=Ls-M9MVCF?=T!;$3v@Q@51k1np(b z;dG_(Ao3EH-nEPtI=1VaSbNiIttvzc;Ban_h$+qv>ERiV)4Xi3?xh&vu*Q(ay7fx4 zMjf0B3T|GMIJ$cY7(G&-d(OK4db;!*2Bx#Y#qCQtWBPhJ0tu{Ke+0K08XAXm1P#ZQ z|JyK!$%jb;d|1Gsg){!woBeY#N;>4%S6SaOAFcUVDEH^mY2CukDY(EpeaDFBb8>R$<${vF=9w^3yml_7~FgusHVizT>?NVd4Duh?2b#T4$-VH?bOo5|2VE>2lXk%Eeph+4+VniG=Y*J;;KWM9W{ zrxhFH?Zs?groi(3@WIj3%*Yt~uc&pp1#==MK@(MX^^NX<wVnK z95z+=RbqORXu$!QT0;W+MAA>3^qcxV9S??_uk&xoY-0nyRY97 zsO}QtnTe8;lA8beRqMi2gv+-_s@Cn9%r0;eYWlFL0%naN+B9U=pqiaVGYuov|B zFEmd9fV|rVAj!?yWVTwbX-&R&us%%In@N~Xl7SJ18Gb@C1e0tvYPu4v4=b{EZ1h83fvi-~Jsp&~_n^(oeVIfXs>1hhq!kN~;!um%)bJ(^* zB@V*d=~4w@mvO0lFCT;9Agq+Gu$KMMO|PNmB~vq-38hynf*ZeCdVtS2FFg+A5Un;p z_$U6FVgT=KDl_LZkgnGO9wUC)oDfxFS=pAzpM70S$5?CeS*R1X(=aWg8fUi78<4=Q z8!$w5ecC4u;{!DhFI*^sLrk6c=o58U+sB7~pw-XS zn0jX>femK|Vz}w15-O?Es7-G+7*df>i9Z9zS7a;N)_ri>ksvY<1P>rN@@xaU&vN6# zgtB=)SOVZ%V;*q7v`R~shJmu;UkAg-gl$WCJjA%JRCOYY8feS2(QbDaya490xr)Bq z7`fNT>pO3}Hm~XXwa6PvQRch zU!EgqfO`M5Cnt6d{6VVvXNIAA#wnW<2X!u{s;0am01H9@5c!TY3d+o-hX2yL<%iLL zKx(|l9!h8bCR7$0hqtAb0IxZd5h1MP1%0(=XyOzO}kKs=X~giXi;3-u#2OlR@=hU^SJmm91(f@ERhJZOK7{^TrC)7ktmuLTwANopgO}u1Ge1_HJ%f3F9 zr|AuB?8(vxb7U5A$AG8ZzY)w1VrcsIUHRl|&W-|=ZENsF-Zar)0ZOhOn}+Q^=+?X0 zefr9)0r@CD+6Ik1!h>qojK4LUE1&w%{8g(hI<<2exqslo_ZR2Vr;%Dc>qS{00&-$A zfD6AbfH%IP-gdx(2mpbUB5NRJ0$D{9;{STadZ2!T<890y@>YD}lkFTZb5s*J+8Mko z!)1~d>bjq{#hghJmQ4Rm7CUh8xAE%#%&;hxn~Omd;1p6wCJLN&`u?alv54m#QcW>Z z$;UOZe_h=Vnm8vx=U8QrP%@8uIR{)pAB8iscvMw@%4U*43^NXAtUXh-s#17=-x{?^ zm!WQ~ND1;~-s71+#h-yD%E-(>kp~F2s<8E?%nB5hO2q`+1K2V2gCG$i#ADx`Crk9G-(sO$Up4GevCIXDua+kzvc&7K{^Z%WjKmidp!+J3ulqm7r}(An$d{?g`lyfD2&7caHm;Mn|2ET z4H3^GKl~E3kcO-MXWfBq3&jZpUwEJANW<*K zH2vfeOP8m*uzk0$b`0PyB(R(fi85dg5oI}bfyLq2iK$<8?Ts&kXXS=Dd?6%5`^H z=dl}LMUgo?_22+9pif_k&+f?YOW)}~>B~EgfRR{^k{a$_%Ie-Wfc`MMmajbEikKDX z2RP71o<|M9H#}9GXH(H=o*0$4uHyZVdUa_n8wJ)s2A;9AhxW41CwtXqW!X1O0JxmY zh&G$zzzi9x`K{F@hFBcsdvcdI!_7{(|CxHC(TGyb+@XZ`vx^VdR-b$`I2_K&;jhIc z;dG&B*Ch^JW_wt@a6n7oUdPZKVr(k2+Q-v+_OVS=7uZzJvik2E