From 08a46edb515162a7a44d7dd75e4d81f55d3cb660 Mon Sep 17 00:00:00 2001 From: Blizzard Finnegan Date: Thu, 16 Dec 2021 22:46:52 -0500 Subject: [PATCH] Complete day 4 --- day4/day4Part1 | Bin 0 -> 142056 bytes day4/day4Part1.cpp | 195 ++++++++++++++++++++++++++++++++++++++++++++ day4/day4Part2 | Bin 0 -> 142056 bytes day4/day4Part2.cpp | 196 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 391 insertions(+) create mode 100755 day4/day4Part1 create mode 100644 day4/day4Part1.cpp create mode 100755 day4/day4Part2 create mode 100644 day4/day4Part2.cpp diff --git a/day4/day4Part1 b/day4/day4Part1 new file mode 100755 index 0000000000000000000000000000000000000000..9aac66b0114f935f6bc8f1ccdf54b89501ad4520 GIT binary patch literal 142056 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 n`;X^`osU@xSwff|M1ED6Hk4=`>ig9F7yre +#include +#include +#include +#include +#include +using namespace std; + +int arrayDimension = 1000; +int inputLineCount = 500; +int main (void) +{ + string rawInput; + vector ballRolls; + bool firstLine = true; + bool breakLoop = false; + vector boardValues; + vector bestMarkedNumbers; + vector bestBoard; + bool boardMarks[5][5] = {}; + vector markedNumbers; + int turnCount = 0; + string tempString; + int tempInt = 0; + int lineCount = 0; + int lastCalled = 0; + int unmarkedNumbersSum = 0; + ifstream readFile ("data/input.txt", ios::in); + + // Set lowest turn count overly high initially + int lowestTurnCount = 99999; + + // Read file into arrays + // Putting the whole thing in a while loop probably isn't great... + // might fix later + while(getline(readFile, rawInput)) + { + // Make reading the file easier by re-turning the string into a stream + stringstream inputStream(rawInput); + + //Only the first line of the input is CSV + if (firstLine) + { + // CSV Handling + // (If copy-pasting to later, remember stringstream) + while (getline(inputStream, tempString, ',')) + { + tempInt = stoi(tempString); + ballRolls.push_back(tempInt); + } + firstLine = false; + } + + // ignore blank lines + else if (rawInput.empty()) continue; + + else + { + lineCount++; + while (getline(inputStream, tempString, ' ')) + { + if (tempString == "") continue; + else tempInt = stoi(tempString); + boardValues.push_back(tempInt); + } + } + + // If there's 5 lines, then board is full. + // Start comparing + if(lineCount == 5) + { + for (turnCount = 0; turnCount < ballRolls.size(); turnCount++) + { + // If the board has won, exit for loop + if(breakLoop) break; + + // Iterate through board + for(int i = 0; i < 5; i++) + { + for(int j = 0; j < 5; j++) + { + // If the number rolled is the on the board, mark it + // and add it to the list of marked values + if(boardValues.at(i*5+j) == ballRolls.at(turnCount)) + { + boardMarks[i][j] = true; + markedNumbers.push_back(ballRolls.at(turnCount)); + } + } + } + + // Board check + for (int i = 0; i < 5; i++) + { + // Row check + if(boardMarks[i][0] + && boardMarks[i][1] + && boardMarks[i][2] + && boardMarks[i][3] + && boardMarks[i][4]) + { + breakLoop = true; + } + + // column check + if(boardMarks[0][i] + && boardMarks[1][i] + && boardMarks[2][i] + && boardMarks[3][i] + && boardMarks[4][i]) + { + breakLoop = true; + } + } + } + // If its the lowest turn count, save the board + if(turnCount < lowestTurnCount) + { + lowestTurnCount = turnCount; + cout << turnCount << endl; + bestBoard = boardValues; + bestMarkedNumbers = markedNumbers; + } + + // If its not the lowest turn count, reset marked numbers + else + { + markedNumbers.clear(); + cout << "Too high" << endl; + } + for(int i = 0; i < 5; i++) + { + for (int j = 0; j < 5; j++) + { + boardMarks[i][j]=0; + } + } + boardValues.clear(); + lineCount = 0; + breakLoop = false; + continue; + } + } + + // At this point, We have found the fastest winning board + // Now, to calculate the points + + markedNumbers = bestMarkedNumbers; + // Iterate through board + for(int i = 0; i < 5; i++) + { + for(int j = 0; j < 5; j++) + { + // Iterate through marked numbers + for (turnCount = 0; turnCount < markedNumbers.size(); turnCount++) + { + // If the number rolled is the on the board, mark it again + if(bestBoard.at(i*5+j) == markedNumbers.at(turnCount)) + { + boardMarks[i][j] = true; + } + } + } + } + + cout << endl << "Marked Numbers: "; + for (int i = 0; i < markedNumbers.size(); i++) + { + cout << markedNumbers[i] << ", "; + } + cout << endl; + + // Find and remember the last-called number + lastCalled = markedNumbers[markedNumbers.size()-1]; + cout << "Last Called: " << lastCalled << "\t"; + + // find and remember sum of unmarked numbers + for(int i = 0; i < 5; i++) + { + for(int j = 0; j < 5; j++) + { + // If the number rolled is the on the board, mark it + // and add it to the list of marked values + if(!(boardMarks[i][j])) + { + unmarkedNumbersSum += bestBoard.at(i*5+j); + } + } + } + cout << "Unmarked Sum: " << unmarkedNumbersSum << "\t"; + + cout << "Final Value: " << (unmarkedNumbersSum * lastCalled) << endl; + + return 0; +} diff --git a/day4/day4Part2 b/day4/day4Part2 new file mode 100755 index 0000000000000000000000000000000000000000..cd16da040d874c2f8b4d0759d0f23b0f3e95bfb7 GIT binary patch literal 142056 zcmeFad3Y2>*EZhOGm}cDvjG7T)&Kzm2!wry1PBbP2#G8LAwYm2n~<;x7!9Z~1`rVe zQE_2YR8&+RMU0{ZebfgP6%-W}F%cKsQPF(&IaS@$35n19et-O~?{{6yb@iOCy6-x5 z>eSlRJw4Z_4jX6+Vb~v!(Z`@rQd1R^tbxQPram)_WTTrAf$z(V7DfnSy*QFJT3H^~ z$!r;_c^*hg7fUBq$ObCfu%&GwNlI7UXJjpf*wTnrVM^zt(|G#AC!W6@*`~P)+tQtm z^Bbx8m1J5?6>m#-I`Yk~ISSvkqN2P-mwT^W7;PuHi_#VAbj3QIEe-8YTiX64HFR{- zdMnF#VDyRSZ^NjZZmdpMSq{*ATT&kM8U1C>wEvs@M(T8LXg^k#Y1$53+WB3HbmW)+ z=|{WM7^U;8t{%o}f7+7T34Pkl&YsexQ@h#I+RVpT7$>_Z z4{B3`Mx+~No>5G3c6vIG!9m3#JfeNasLfpttoq`;zlxW5ZuMrIJhjT!L1~CXAL83p zOkp}t#6cWY{@eMS;^=cU>#aGpH--0Cp^Lxogn_z=RsdH(aaHkt7*$pLK%}lJepEGj zuBj$|CJI=Uo<=BORq+MY8D{Cldg|Bq_ocUEK1E!Fs~do_BlttS4RYV1#`#y>l& z;h(N1{)TGo98gXC+G_0lpqlu_)x`f?|} z)#N*_n)dTvHSsT0qX+aV^S!*9_!p|tzXST4RyH2t9*D1D)HjlEP+&A=NS}<18FS{% z%~+U|xgaMa!^jw%Haufm)`F}V*$Z>B7NiaDKYQNXthCH2v$GUdH8Ot0(9txA#OQgm7p7+O+5g(O{_R=U=$uYjbEnO&GQUxgXlI-olJ4=4Z{FGjAH)O&;lFdn9}AqRiRZ(=sv_ z%*dUSH8)3lWpqwAxFZAEWOW)mH#=v5ZFbigSvi<;vZ}INx!+|z>e_97*NjmxzMASB z-6>;q=Zv)W8L6o_b=*91;Hc5_MrWk5+3k^5RpgXRm^^#-ys4-dw2sV-DQH=9Gp1(d zOr6Qp|1a#MM!sZ8#{8@W3+K&+7ju?oEJ|X_gN5v-YD%@)>T6564pla4=!nr77q#>b z8KXOrW2&gk|C=7tnLCkgh#k6BaO#2unM*U~X4!p(8vg%P7Fl!V=Pczc{-+JrX=Ae& z4n|2U_3czwyRy5*)HHO8&KauB&RwiJXQh^_Ivlr=1zFs9D%H^ca8z-u3-+CPxj7m0 zre`e3oI4{cWBMHGJIg95|6f(VlSQYgPz_D)q05~a7nqBLLBwwK>2nunBQz>&Av&^w zrj|2rw(cC6Iay1xp^yf?x$`p6Z8CGR=grmV^lWOp%d(6)S###hTZ9oJ1FK7FA~bf- z$;_T>AiOYV+SJyqX@%K^f-|OqK%w>&nyTUl_3xk2v2BtuXxQL>{l|{Qd8f7=k_?=t z^c$SfzHP_0-78|njpSSJMUIjBcwC&KgGfgfg)}dZLeEjX@kOwPJ6K7sS>M(_T zxRxNUi8I9(MwpHfSgU$D4V`_0xy+uYN48jM8Q}ejIQj_a{*T7zBRv27U04}}8h`7! zrEfnDzBD4R2qqm%84oe)>F~RcUjwGkXsN?FE!X1`$7^)b;cJ=iF_ICc583mL)=lBu zdf8!A?khBIU$5EMNzu)SWf*()^_U%hYa126zf$~BJ(#p|BLJc?EESPD9yq&#&>d@N0!Pq#dEO7WDp{YlPK zXB4limLmeLc*5+@$UJpMacB_EXKbE2rFg#+YZ#MV@o1pVXQnGY+=)fIcEv}y;+MGM zBVF-%uJ|Zd{4K6{>JRp3U7k84J8RgHkel*Ufa2ZPS=(Ikdh3LVyIk=x9HYMWy5j4& z;`h7a>$>8LUGcH5_#>|PI9L2pSA0EJ{Bc)&eOLS`S9}9ke5otGkt_b3E55NS{=6%` zi7VdF?VSAPUZ01$;`PwrPIc-0k_Rq%;F1R}dEk-=L~-uZJt<;_pyJF0Oq&L}*S@Um0o_%#2J!gNVr zc9g^KP#AkRMp-e3U#Bo#!k6vk@XHkTQg|DOpQA8cvX`yn@RJm#OZBom4nIs`y8J4e z&*29sOj{#mlR3PF!gQ%#Hj=~ZDNL8>Wyu`AmBMssUY5k+8z~%4;dl-&qcB~Hmql}U z0fp%jyv*S6EDF=5ciFkW5z%}Kh3S&J>=cK`QgR^NnN&$!#yZWTRLUyINX84bZK3d$Kh5Krc3Iw`5bOaVY-wqo6O;Q6sAk)vXLCF zNnyHlE=%UHpTcy>T$aRPlfrbVTo%vaKPDkeTR3IW9R88Qbje(1aCpl^!QH=)>()%?i3>5iZCei(T zPHi-|Nx-SOg_WO*YMe)k4`~VhX6AQZPom}Dfr4{^m%i&8cefBfr2k{!UKi9TR>-NOVncNG<+TQ4F^w5 zL|P|*N?*1ZU^>!_4&3lfDVl1aD0N++pro`h91HQ@*61Qcn`8>}{0t zAW>eVmR>)1eH&44&cN$!U6tBP}Phogbdq-jJ$ zf5kCx)SA&$$kgKq9Y?4;LM5q3xfpTKTbRnGUz9Ir8ubk7C2G|MDsFW=>JrS$nO`mE zZ-+CiTFze%C$U=21&8BBw}wNG1~x@Kv&wf4Z5gf%I1#_7h^|h=A1b1S6H%@rYC92L zI0iacaenGixa%m~^)YDqsin&I$KhsGk0qts(U$_K!}X}csMT+xxt|s5P(wXaPp+H{ zS&({?z7Jz;T{MpBsH8OV4{D0FzaK+EuBc(ZQy;vOTMc>~EYQHeNPE$pN0B@7ObP&_m`1U$}LpqR(zgwyCIm{Cx|IYeFHu;&L)?n9^sQVg{eol`MvR9 znjc!!5jf?DcjcS;sc+!y4e!e5UarXldlf{M1(vdIg~_RON-fLwN2?Rcm{$$CA=GauRiTpBHz62rKxY^w_Ud zvj@1W0}4|QkZ~29v>hWtp~3B=^eReLQkv%|dZW3cs1S8Fu2`= zHh%RB6?Q)tc793fK0cXPn7WTEX8%7{3Wf@u#ZwLNMRXH;;$4t~HvwYq8#wFSq^w!+(if08{8li%=U41#I?AlCf3yxC`2dU(R6VJbP zh?a-Ac8V@oaiJjheEy0HBDd!aD=?B^-Pr-||0Rt|ffWz?%J(QcnEKR71`eZrFCC>Q z+0egEX*@{jU!(!8^lq3vQDsxG;(VYW_gtVb^_-5$|0X`5V++#10RTctY4ML_=*xw} zDdt>C!I410OUSVat<2G23Vokmsd6ks1}Z~keqrhbEA{-uL+k8Pv2v~Tb(jP5s>E*k z2kZ?LpmMs>7k(%&#|jUs3!+Q+B2Yqo>mvQ7cM{K7U7Q<0=T}`& zTsH=Kuy8n1n2xC7$6+8SwB${}1#tmZShRTRp1MC5R}mPWkzygtD*f&pnVEmSX%3aC zl;S5q6MBCIBM^4do#o=BmKLO*4&<-cYvj~q-K{CZmvOo`P!L@>@w9E&8MN(!<7ew} z>sPkE%gy~bW!9Ezyh3|)*IWk-Fwl6OnEh~Gxi)Mptval5Bv)0SFqBq}Esx+L%v4sM zr#M#4*9DDSIqkcMR(GDpAu_QrITW*mSD8C9^lVdgR#FWZi-*aC z@5{?q7h`>G_YCTeoSSW(%V(8)7MG-gx)hqq96LA%x?WJ7)YXu=X{$D!a#c!tN*cB7 zc&BAk+w7ToBx=l6 zs%XU1Z0dTb=kvn!BZ0ypXeA^&1X}(OD0n^a(jRCg@2fa}px{UC*x&6$s?T%!l4Pu{ zw62n5y7nZ!Y~77qJC1cfP-l zi#Uibm#Y(>ppx(9SgiWBzGa*(bxahHTP!3D;if_lxhv#<;f5bEI_X3hTBw6TBZ=ec zx=iI&FfzJ~ewM>9?Ak=v##FA2C|6Fl9sLm~g9~1m9x=G! zRXdoA;IM)phZTHB1*Zq4hhbYsx%hE}%5Jc0rZAS$3@ePc^YN24xQZNH6i)rBm|gOr z_R2lvLhZhuY#(KLWLV+kP{kd~a#&%K&3c|z=ukIIoEuh97PR7CTT@m3Atgt!Ss8zI z%7m1ODU+P3QH>Vd7s;*Y*W90|Jvrl2a7sn5B^EZB_@cN9EpQG!on0X7^L|&lx#&*~UTy3y0fdS4tK6IhIw_QE|}dq7v$Pyb@DQ zP~Ab{F&MeAcep9jT;Y^Z4Jj}PDT*+j6**2EOo@?7k9suv%tVoPVP4&ad36)8UD$aE z$Nu9%R6Q~(DecG^@*KL08%pXarqQ@uz&#hqOG@A1wu@=72-9;>D%5ec(S!G(9aTx- zB^7-}MIS-*5x{7Hshdd4)imlCP#?neN%(4*pxUCqFb~sIzokp=fWC@T(Ius~^FV@S zC*@pHO3wxcsD)C`hQS3qIy|UyEe_zKiW)u}KBi*ICpje&r^6_WEh=TUostq2rsEhD z9cZ0?iU-TW;mCli;XUeDih^QM!z6Zbpnzu;)JDweV3DYluwZ2Lx+>NH_H2o=OrSl0 z?y2XZ?x3-w6;h#3l$54YG`kATj;`zH$CB?#c)BT_S{9sv_1qS0(X-x9}FWKv7)20P&ITnwwIwSwXBKQ*s(gt;j_$rBtm zM9@k~@8yjFn*U)2)`fb^YM?Zip6yDctH0tJQF;o8m+FeT9BE72m68V!l`dwqByWWBVhHq&n_X8K80netUz^_do+Iosn|aD)kmTb=7B4z2z)#caZ{gByP^ zX@`JaVdUEpbP6gWni8}7D!T3o7t84mJgQgaNmNit=~1k>c;)>eo{mYkDJPm+(eCl04dmGY7)77YUu)X(E@F|h=-U( zk+#B(h&fAxBOGmCDN{LOohGi^a{-Udv0x(8lG0@yg#V8RT4IYDR~nq$o;iaR!?Pyt zBB7yB9VvU~P_F8duReD<{;aNMs+?S_Zu1>kxuXqP zsxdUUZb#2{Iz89N2qaM}I`&Fa1l1ay$ADT02G>V@8Kj?c1W4WZdh5b)lGsK-hm5gUo+=?S-7utog zM>Y*c@H!(1#yi8Fnl&m9l8rCU#9Xa>~WQybnztO zy+{+)iPO~oTQN-3c7@@gG(g)(^l6N74g(6cxsp=a^FsI>21Ojs{P`wDJ1!;Loz&Ht zKxwhIMFzYAyQ?_rnPS}ej=GbUV)dN#eF9ZXC_+IyiqhBL_Ofe@i>X zl~%FU5J)z1Z^JS`-JYcSC`!kHdQk1?-`HQJ`mRuga4<&ms+;XE=!_0o^$y+dd$1YK z$gCQ(GXq!O-;>dU{&OceY_G9*U)s{MgpY~`eR>Z0dRW(xG zKqW}720DOu_?<#^Mld*kWHRWUKfJVHx7(_E?jvQ)u%h0db~B8Ws|FXmpOQYf;FpxN zl!6QCfuc6Y5j}cX%fDc0XlbpFkoKj&JUR8-e}v~f)W*kvg0E7_V?GV!9}aLEIgJaEYampt(QKMx4J z^MF1JbLM3m(=u~1+hxz4pPSP*XGxA>q|KWbKYQL{V|eC*YqF-rkI0=f1+QZ15pP@` zZw$*^m=oV0uZYQ-hKMjDeeN8^8l5`_5d-O+7x7nR&d$w3Xi?VGoOug+^vD>Vf%nzW zYh^OB=Pt}zkW&HS*L+N!nKkvA9`P9&bK?^i&&-}WGd_D^eDh_wE#v$2j?bByy|7K6 zg?N`nV#`V}${^}{dXB`#Xg1E%{!?DQ73XPhmzUE%`ZP#-0%-U<<>d#k7d!i8dHHR) zQFjn>59GU$CxL$nc>%H=E`8`mKtIS{kdq)MKrVw^4!IHXG~_`@FYfJp2}w^5)WO9a zy?g5djIm!F4x zA2JqCCWn1fUfvC|7vxyTA&^TTXFzU(+yuEFatGvb$mnlTZpbc>^gQVR$X<|-K~9D| z1(^p~<2#faG9I!RvLECr$T^UB`K56eWIW_+kjapLKu(6Ni|0b}AUi>BgUp01hP)5* z6y#%&27X;~05Tr33^Ez=PsquTiFl$Y4{{ddHprEb#gLyuo`UR$$A`T5HOhR*1jv<; z10eT6PJ^V!i&jC#;!eXukR2djft(0=8j_w7^P;_5c<3w0 z@q{nO@fq+TkcN$$sZ1bzD-P>K_2~}){~PJ+LptfN3hFS5$_87Z_mQ-XG`0{-Mb z;12=+7x4D(^s`lZvSAO7*MXmb^!|a)V&{>X?=epX^Z5pPZh=3mvm+e!ybgF({)~t2 z7^J@q_;AW+n=2nPz?l%I8#vE^Lv6yF=i*!+v?B-kybsQG;5fFLiw@^eARdGHq<=Ly`MVSFw!rH^ zI`$7;<0x->UJd>Vxzj0Nx1c z+q%1ke02Hw(*Pg8h2;@As)ITJMCj&nKyqOz!wZ+N6i-9+H9`zt&VSJ{5}doiscNhu9b;j~9^jL4?#;)7#x9Sk8a~x2t)EK4sjl79y6Rov)wTO$ zz&``t0=gXinZa`Y4E!tL)wPKjnDsvJ-tP49Hw__VUnk%{18?ZY$145th)VLN% zfyx+*rd9&Hs(K{68}Q@R=#K|J7WiS{vvBUz!Jykb`CgNI2kBT2PWWfl*V9(uHGx-E zhIphu0NeonPkGSVcOW>`m4nvAWB&oCwQ@G_YWu%V-xQ`e<(wF-hsnUlBYkT(K0S!% z0nY+nRi7gtZ38|Jcy;w$4EzS*)s^oQ@b$o}t7m#S+S-4>yp7xbnL+!Lfo}%h z$Bi!y;*)_t3%ol2bX9e8Uu?rP)H zfL{x|f)CU%V8kQMD&YHo4|S)f@zOOn?E>c`a5CH+b37YCK0E@v-WOHd7!SM@cnt7a z?(~($qi|gB9mn;~C^yGc7c7*=<-q-Kl$Y0b<0F+H1|V)2@Ob1gk??+z(QD1Yk+Ew$ zsgdzT-qgs%+k68elWqzLM0U%UgCdh>MRrSxOiGDN>=zl|FESSVevzU4uFMV4(+zrP z*<*hYYW$h-ZLfvZvG4X;#?$7i(7$RL$E;l;2yKYLvt4_xxVB@bNkz$Fh{^1vkzT=Kvr5BzUDV84If ze&4+PetCOMPw&pBj~)J`QkZ_vMju?Zs875SxHRBTLaLJVA~E{d@4x50VuW!^h(CPI zhBNzp_jDaYAKE&h4_=EikK{J&1=B}oYta4@eXv!=pCcN_#riQ_0FGCePZ8#(%BjG;xzj38`~i5_*mXR2--bTI}Y0${IT=LGpJl1L~;@T z)?t1_93sng*tQF|>6jnG7uSaIyAEU9_5aC_^S^SHtm_i5A_i)Cm6p@BT%_eqT5i;G zhnCN1d05N$wLGKcuUdvQG5AwQ%NAO8(Q=@cS7|w2%SBq=q~%5}cWC*HmWQ=`U&}LE z{;FjNZ?xgQy_U)v>{s5P&Pq|SKMOk+|I^mLe~ymWg4_Dr>M-9v z0w+a>qcne{4%`0A(P6v%TXfjY{}mmk+dcFduMM^N*XuBEl>vWUhwbwHTnX>ngVh+i z8jSfmJXu8>M|Ift=SMnh`#Y?sBDT={b~ITpu@9Nw#G>vw##GkzBQh1(0H^C z+x%rZZ0p}sDg3bx+x7j84%?$sq%LS{t-ret+x0b7hwbv-sl#@DhjqB2PX9%vu#v0) zJq#IbbXc2VT%*Ibeam#%F7GWmY^Q%(hwbsMq!RwK4)-(Er%Q^G_B1|3hch+)hz?KH z;Ygj(&aama+x85pgfG!yU2NmoO899VuBY|?t;4pzTlQCgo&Rk*Z1w%dcIIbz~AS~3ZqJQnpxHH;<%QE3{}iR;ra-t*mE`0t%)ZwM-kU=B(jZpyY4t7YZxk{)?>Sw&KEbm9}`?HV++oQ4%vlXMS6#>fzfp49XjU$ z+yuc{=+Nu+Su}ExF;K81G-T->!>Aoom#D)+>qLsJaQ^QIO!n5P;rRq7!%tm-3AJV| zVhq169_O|EL@?w5*jOh@))o}#Hwu9m-vOL^je%i^qa&Ft^cW3A$eSShDQcg204`!^mt{jM#i$);OjRUdr&lL!C=Rmv+Pez~z2NLC+4hZz*K$5%> zQ%+nj4s??j&=BH!b0Ar6A=Swo2*_@iBap&@k+Ku&Kdv7K#>%F-2n?um24b?Te?I~P zW6mNlQ?@1~z*f(fg{bDZ!5qku^|KHdV(p!a8j+8#Mqqf&k5SM(nbsVE5m7hJF^n7K z8n`&_iqLb=lP~`cAaG@ru?SBA$i}2#T*Lt=SSO>Y*jLx}1KA`G*Fa!GTnqx+ejBHiLA%kb}KM#DP78k~;SP(RtC>h#txvL1wfZ~e78ew{U$ z@!PHCEZ19)vAn~2o#h7WEXzABc@?GGXeF?`%SvUr$(q1&vz5(qi?x>J-PY4Aw_0zr zyvMr0@?I-;4C&cswPX2!btTIOtpzL}vevNNVeMnN+d9E=k5$g{F)IO$%v*o2mCW)< zYck8HtU{LitQ{<$wq9cSjCGRbv(|4c_ggj59lZ7bWqr!>IqMge&s(*}Q~Uv|Gs_pO zbe0FLJeDt7ce8xSI>7Rfb)4lZ)_In%TFtMf^oOm1EK98EERR?#SiWZ6%kp*WMV9}z zPO*H$5)&xhn^qjlx2(=urm_5wwNT6TERR}GXnB<7+t&A5MouI>?^tcLyb`i;eM{7N zYc`#Pi#lKPNrb3V6HU2s{rV!3%F?)gBN0i?Zd|{Kh$JsJuAd+x$-Ry1CyGdwyrqa# z$yHTw@sYikd?>#b0 zbp?_U(IQd}ufG8Klh9PCHDWo#8S>D5cq%poLo5!?P$Stg_E!9-8e%)yh!_$~I9q;L z3qMr^G}?hDqEI^Ze3=aw%mB2&fv=#{F^_G4Q7hyh$#~F&idP7Hqr>4G6z2wM-lRE? z1Aorpu%6iN4?)i@aui0Cw*Z~6VUtJu*!!*nTqq69oZkXEZ^MEzHKyEHAMjltVH_EU za1;!$jYD~6`PY2`?vY*LnJhA~l>-_6YvDj|gOSmLsI1-w$@M5=(28zIF)Z|3R46$? zP^1ypxdA4^2BKjPC`s9eHMoBkz`AX&2cuC+_{Ru@Wai=_xB+d*idG%zd|-{VMtCLy z*mfL`;4o(aG+JGULA=q>2G{gf=pi7lIcR7`+I%j`)QpTpe1hC^0N0(^OXW5clYE8T zzD7kLw>D^Z--B2ScpMIMo;$Y}+A6d?5PEz|p%>>S4FBg)5;Cw5O0No|oa1OY&@fii zqi*1zfW&DvP+5&`@~7Q}VY$&s|BA&o!?wl~{dEr((8*N)7O=Xl#FtUG5t^51Jj4Ge zMcvF%g((zujlYM(gywlafmvDC8pFieZK@$O4%19U&zhZMj1*(0E3j8ZFyi~V&^1=bZbQ&| zpf8i~S12$3q7oYsbvuGIN60TQIaADXn`A_+TMuZlkTq9g=0dXjZAcJNSrCyh5~S5a zu1G+2gLIfkbmGpWM=OwS7xKAyMLJs*iQRIKkl)>*NYU_>(!|-3GmMB#^3QG|&umq` zYfYrLkew0NtN>77(S(ZXr}&6?ig{ef;SU=IMT{jf`#EAw9-ya$JODk^wwDk@dX%!2 zS@WhFO`a8UCuV=vHDxjqJP%!774eXr!0^?@_(k<)c$>Dfj-Uy7nHAux98R&$v)+D| zm&5(7XqE%41}q0!`&kaMUSS!qj;SjQ+lGZ3 zM*4QlYa(`fcg!w(WF0izufaZt!+acy423){ufGY}!H>ehi1-)5SJB`s_tkuD6Mkue zh|2(Xs7RR}0*4&@v@=%DHlRja!%xrg)P4F<7!Y|+_=7(vDh zyrFjr=gYXh16l|;-`%G1PUyA5`9ksHc440*VM=Ljj8UiW!lUcC5!_&7SD^1FESEnv z!6T;7{yq-#5EUa&FqBuL33`|i-vT&qgW?GLfeHEYL>{)NBVaZTPAh12XeiYMa`bLA zMnF9)z~XTzQ@%>rBU18}SZcQHw_UgxL|)l7;^oFk=Qc zK+F>|bErxwHX?E>srZ0w9D)A=HWHq$y;U)PM3?qtY7-<;Ia40iko`(MuUX@GgXt)=k zenI#%O8uG~9k1c50c8f^eU$o5nQ@thmjTKP!b>Luepmi0(J;uXVl$xof-sGq2_MMa z<2Ae=(7_;_OQ}DS!&htg13(`K;dW@{3DiZ@7$klLbisjZt)=!eKjI|SPRwS|5=!M; zixovQjWUcjIM@lQ#z$o47zy8R3{{N&07q0L#C&%zl>9EcwbM#w0H0%X3{UMO!04)D zP-$d`xEWZHgV#Ed3Vg0=E}o}QbqP|)W@{Bk>;v&Rha6Q0i2A#a)mMMn|;5nA()I|=R>zBKZhi1-%ZbD9bRLz`X9awieOiFAh zQa?%5d8d$tw`=C_U`5unokGUCUBQYs37LddGn%UEVUDCE$2nz;k4=N)EcW0}4~$d(vn z*@X8%{qkbE;d!|}jD1+hbX;UJlODH?Lho1Y*kvp;9~1I>OhU|T308N9=`xm?PYQV+ zorsyE!J_|NQaURe%k*c2jD!D~ej}*sFQyxw2baLu=Y%|qRUtF?fOWuOx{PJ!i$c!H z)Xew6I^!^1#xnDekR#JIlYaMB8%Nc~GQC8|hdOF{J5c*xOgB8g+y`U-Eo8k7nmG=v zY=`MGmYGL|Ea|72`C#4QFkQwn^Iajo8m5_#g7vb)tn68)e<0*h%){)jlc0WcG2QU2 z#>k!UiI7WC`^*f%^j8PRMa_VjUkDkG?I30*ftBnqUB)u=jF64nXy$mZ<~hvD#xnhD zj0-uMUI6Omi|IzhH#9{4EaV?8)d=!0kX&7L%wEjY3FV?DErpCR^RQ}8FwEMNU#PQS zZu`ltc(RxXeyWL-KX+o)*Zg`bbOFgct0&8wtZgg{tb;6Xvre!qvc6}z#_}yB{#vU( z%iFDiEH_wFS#GqJvD|EJWVyw9lI7jjyDaaqerCDNs*O^6n?Go^WVzky!g7ZdV7b$p z$#R!P-tjiyZS7+Di1i}NJ=Q6f=jzO5yMC!NHG_D+*15p(=j+7gQuy~eb6NgTr!C7r z>x^J|p-utG7E>(RqV=|zYPDQMGRx}Aa=LXT%Nf=TmNTuDEVHdUS9}QWqFG=f@PtV!?MWAW4YGa2-*9Uy4c{nOS~J4>xB(yjn+01K{Iqj&)Nu} zkG`-OYh;i-V2CG?MAXKa5f|PS_!bdC%XdG4akR>|9v8gKR>@CbPUxhP52}z{P|%1g zpbU45h+D74)Y)+^0%wJMw+nvH?XW3pm19KiWDpvg@+qv($cA-9dUgpEMclszP+L=O zx=I=Phy%sZ`q{ci@B%uHmP*!xB7z!x-1p58I4DA?1jY^G#hO^kv=u2mVR0v`Ej9?u z^qV?jk^e|N^bYgh$T@MC)rcHVG3G<&{LZ+xKx8u<=3y8jh@!5E6lbT|un0RKh#gds zbCk@M^I(Dbh@Vm!GaiQ0$uqGEwwd|@sTNg>IV~w=GIURlHuuS`U<`k10Aio6^&S)r zKjg>xGqosQUF?{XJB%ZG$Z-tv=CTgdkL%UwgY(t$D5kaDVEzY(pc7;CyXfrZX8HU& z!}tObKjARHr1H?2Do@=L$RpakEwT;F98CdpjdgxAE=Le}Ko&a+ey561nY2QmGryI~d{`9%zuo2-@x7J< z`B^@@!Z5ZYcCU@7gb7a<0`?2p2wO&gj#YpKO-#5%p{CMIbl8KRjQ~Gi1*aBudNZS$ zA6JpWPmGW=m@CY&vA4p5t&=w5yoLA~=-)89Eo3Jg%GU~QB}SqHd6wdW0LUmp*#)h? zO2BC!@oIBi%fbb-fGo37E`++oP8fzZiob>X8vSz(@CPe$D5)a0{^dpxuN0XZl)~ph z{P)FVqxH|@z#AtH$Euq70-Wz09*q-5V%JunOcAm>LQxHo0}YUzjdE{dlaU}?BjiD} z!KA7P*{wmy5%Tf^!?@BRu(j;`#GO<@H)HLTg{^Ogz-RPj)Y{Mkgy{nwhM$FE7YdoU z0(ZY0HlNX#!8-`%%+QagIBdKPAz~T!yd5@|fxZl-ZiA5dVTSR&L*PXSJAhXe=4K&Z z>!nr|QD{f1Qn+0voSXsUc8D!kU@QdG7KiE^p{Qsh!NSOD?iMRBl=lNP!GYNUPMztt z+Gj4aj1`OVuxT%1pSKY;j;W+agnV@t zlD-Y_q(fk972!Q0YhW%BKLV7vk_;9{m7Djy6!kPNNHIc*hM;w*g32yZR4mNi$Kpc- zK$}tx)oo^oDYHj|zXaSOhtCzmUUON|*_55`0QEu89&@M>URZ@R&oO z$x!?z_`_k5W8AE? z=?zo9xI>d(2jM-3#BNfgXpdaFNt3<@;SYyIt};B2(kR*7Bf~nVSyaR{!PJUFjbk3# zoHN^bHHag= z#@9I_^XTlM%{+68N2X%PrwoO^DJE_lx>Sr`)}8>1o^1%<;%cLv*Q! z02>*^Y2VRY?vcOUs_|LC<_B@wEi_kqIBgi3_ju$C48z>Bz6N$Ki04xJ2R!n5kH-C2xzWSUs(eu~7`Dy5 z9yuxozG;E@E`;$KhShN^RIC?}%V4mEfib26%ZR$L8>wFP$Zg13%mKL2CK#S6(ZK%W zk!uEN6N-S{K{&fODiy9Vzw*f5Xar(6;`iBU)wrq%=REQrBD@aps7=6r{zN4H75=>q z*crrs<6s`z4mJPw$oy7%KQtr(yWcoe#=IYDPVIUvTqHcSA8JN;SRX1`wAuv%567} zeZ&ar@X#)+Io2z8r09&^0^yiVG88`5DAO**DEJtmZLmGB-Sc1 zICLLie5qG1fDg$%qAjpagsb#}=Hm2bue@@b9$rQO8)v82LmrdXdF5TpG-)9SD;<&= z@|d*QEAPeZ&Ew)G5FT_$YRF^K4zFy3S(iyKfN;bisnP7?4Y28eR}N{ZNuPu8twU17 zFq7W&%6?llNw&akYaGhEJUMVHr!T|9^b=mWyg<{tfI85jJF}N&p7F}OD>ZX6Sl3iw zYSM3B*%H@?T#nTs-06^l-AiRGd@>ZP6lOjS)^iS%OB@wVwb;ui*P}MXQGg#g1m!on z-)Ro@$@}lpT7Ch+K+6l3*6=WCiBHx*hvls5fzaF`sriISYkhLxU`^@^LYhOW>^G+0 z=aZ`zYx-PJS2}c;-I71Ovp%k%>wQaqru z_>rjS9IBLTjOv5TJQgAcV+!kuBzlL z&PbUb&}r)6;;uCgReY{W{&E%n4=JCUr0J=kW>i71T#D#Wxof6QvlRR_)uhp-XdWte z;$nq8ybIKqtDsjd#iUSK(;jI zq4MS0I?Vv^CsmOqc&)4Qxjt0Zx>~1M0{;3c((tH5U)l$oLTewyMGO025BM)RX&k2D zQK$8&39$O}&~%~LCqVqkA+wu;Upz0g9!ahKOlTMql70&-<>ojlxA|Z#w*HVN*RMkd z-mX&g279=ZBFN+WrRJZZ@+DLS=Q;zd<;0|ggW7CxtTCeK{;TN=li{#ktOxBLM=2R* zcpj1{e)TZG9a>#*U5C5HG7*k6RJ zOPG$d&C@nauDe<75{bHPY3CG?YN1271I<2RvRO@Cp02=#*?4f@M6Cw-wxl^MOupM+ z)2D;F$e}yaq@kFz!{qiMnz;_FZ4T4rQZ``)ih#+FUH2SVuRBbtQJp*84m58KlbdE} z=4r5gc9^c*nYkxSK7)q9IwRX*y90-+CMS2d;^)HTq^6qQ8`R+!)74E;^WS0epieVr zfVJ3Rx{RgUf#!)Y*(FRfZwKpshv_nwnHR$3Nz8(5?DJq9b(ocnWxC%l7f;vpuR;Ce zV!FC1YBuuA->|G?#W7e=CD5XZ8>`D$x*ce?@yjP4(#$?!jc}MQW0^V9FXwwSb0%0T z9A;%>nLf!cJKv<~cY(U|V!FXMMa>0%nK(@|UjplGhv_nwZU>rqet9@TGtYwcr^9p^ z%ghJ;vK|IOc0ld+7zA-t-3*xigkS#P)pYu8S=z;PbyL(l(Nh}cqW=u{PSiR_f;y`jx*A3ny@xZS^H$>3^!~aX0|M}`FXo6JDM@k{u&DsQ95dZxUc1{x8wZgs=Z)zuYsmIMw zPH%>-=pHo(p)BeqR$}K^eqvA3P3y#-wdf(!(D*yy`NTdocJ()mwTQS6huMHKp))}o zwf&vgRq2i81pR7+uQ7~bpoi@QM$FR5P&G)_^Wdf%CH@p&UlQDeni@Z6mpD{jIY8wi z{s!cQ*$U?8>=Li&d4)pj18Cxap&6;_*;79)H&TwHMW<|;kJ}|D&~;m0(S*I(9rRTq z{` zvu|DvQw?EcKP>rY-q+tGvT9=29G@jd|1s#lBT$bwi&v3ecovwJ=!x(w3NA8lUW*+N zlFZtO$%3+-y-t74XAC~v6RfS%*@6PK{(XZ#lh)BXG(mFplw~xb!No5 zB5Zn6rHFPFDTe^GyBotr_m%DBes=|h%p4)j|NXh!6zW1 zAK>8?DeBSSudqzI+6L@LgUJWI{|-ZbcZqwuZe z@8DXpWw--5Pbg5=cOFV0qYFis%_#ey!i-Enzt2dY&r@EHsql3X()T>L6snaKT#+0$ z>i#PP_2NwnPwx#oKUqY9t0U8TVE)>bh;BB~KMv=He6CDxl4nS=`JM*iqVlz58v=9}ZU;0^$EY$QEv zNQFXfF+Uq`7!M=%X&Vung78}NLMDF50O*(l-xGxIFfYr%{ck`&Iq(BP_%5?0+Np#= zb#ZXEf?&ZaW_$tD;$eD%4eEv*aykVzkE#6+F|6yKVz$h-|i%w3AN6LF6^{A-$Gu#Fe=mlMT^ zJWK#*lR$vCxj2Oh=0n7OX(OVT@=4f|{6AiZ$&B9SjfD$XfN(E=# zNle4I+!OFXhw^GLgKnZVX6EsLvK*K_uJZ3GN^0V_wSWp7m{PlK42a(c<1!fdqYj6P zAXGL@sF=e=gB!6S0Q?P`qbg_2!_xq#iI}V&gr@T9q* zOcJdyyw*SuYl4FvDky>CMBTj_oEbvW62&xtn;<(vw5$&kS`-!U*yn(FIQz+fc>J+d!5u0O>-`n`{5ia$JzP=i|F?K8V zeY{@@xyLYefJARBF#iKfu-+x)2l3JaX#a@)w~dGs1lOlWTD%X7dfb}`R0;kTi|#dy z9}pH;m$52AXF3%<>*n1h>QQC-DL#s`@tZQdKS(VR)2Cv(PslAQOL`>Dd#|WV_3tN| zO5D*%Cfgne61jd0ygNnG z{vpVSo)qw2;gMHwQXKIWh~E;KRn@0o{djkX&M!FRvAB!uR~!-34=YX_N;5wx;LY^N zBrJg_L(vIX55ifQ!e@EpH&_r-9wH6c_+WZ^QoxHR1+E{fOPvF3SrDfu1-vUf@^Oq! zR4}mt*p?tpPYQT%^2qy8A*_ENu;+p}Jt^Q_iz>i4$M`W|9|rNIlYwva$hE1^jkYg- z2KGk~&n5hBk35mA@fh^?dN@@1`5wP_w@2Pw4|o#ddlE)v=i$Rp1Uv+A5DpMm0?e#H z5UO3#lK|e2J@PpL)?zSL*erve1n{2m$af2Xk%@N!yN7VDT)tuN{oW&+-l>Lg@hq?x z96Xku6bS3*dk?+)ZN#1=BxqoLx;yW^Uv$_?Etc-*duw@Re-xXD!ZQHB1i|4>LBELd zJ|Md8a#A$+%5AWmh@vyTk|_mQr=9RTRs`O*Ub$~M;;#ajS&=}u^SuMSC(t4(*Cjyn zi4ioD8CQ9C)>gS}0lK}S4!)u9&4leYYTI7~;Z<9Wy5aAg?UkiyN^I$;z`nGVsNY?A z7klM3s7fw7{k@A1?SjqF_>EpkzbWPPje#{MT-5{p6w8Zy`BT&Mby{CwsloJ&Z}7^a zSZmOGCImJOj4UTT->UXL=#?LZ0lN3|lQ+a^W)fJ*6`4FLDrQ%ooH0@}$AdMmB9oi8GJ$SxdN=yyGnlJstP=&GZm2*v z_~xef3EbI7vuDy{ARMef;$o>gDBdGJxvUXX9RuT2heZ>MdK||4p-+B+niszS{L>~F zQG-HYOZO0&LSsUWL59%;N3db)s^J%C^be7f(e}))VDziNGNSHA%MTO6ckLY@j0HH; zA@HV`8U{8|CH*CQXRypLSAube!{Q8qCr>Tb~XIaFd9p5HN~ggtKh zN-+Y`%FcWXgkv_z@DybMPZPeqx=zgRfcq|Aaa`0Q z&RhZJ$q+dm%O$eH><88;VmgC?dR%w*S}?u}8IhoP^FeVfw`O05Y3y9cjXf1w!02^U zQ|A^T14GJ{7zfPz5dSbK=V5}@i$)ARO&a!yugw%~>LK87IUI7L=Ir+kyj63)0{&YC zj$mR!pVi2%uB?Gtu?A!9h(qPY>mpuUD^62+q!3#=!24F@@UqDh*&2FI`^h?w~k3#lF>`|z!dL#C0AkIeYmaVv8fsRBRW(X=p(3v2Pvk}XB z?Ty$Er{Vc`P_D2OI2*C=kHB^`(utXX<`QgCCEFXZ`_UU&_sxKc99VC}?%$x$hX6e6 zfV2@?8#9sNr-3I0BdwA0F&4?apM({S28DbHX54pZ1&snBwP{zK-9A7S^2&EoR?LgGckH|ZG)C2(N0%nZ>uD!N#k|Ppc3#{NdcRx5 zMLv!MPLb&)N2teHY5M(_UJu=jhP7>%`a#AXbj;SUM( zr3cjv*BOycdlOvi{KYAo&z++N9;11?;d*7_YkL_k+C!mt(9~9VV)RPSboh1_)bOy- z$Cz`=7N~CS#}6a+U~=l(7py^NTYx&$GY8eS!KNC68s3c95uQLZ)PFE`2qxd8fF~UJ z6g#mI`46LUy%^_PvJy{+P|0DCb7RA2|Nf1y&8blc;s}1MfbMJ=5nsWU@F>$axxFfQ z3epG57n(76FmKU@W?V72$}QT6E(@UmqxE&Yl!7Ht@ZXcgWuO%{dN9;FjS7k=!%P(M zoyXUwAy!C8{}SuK3tgzeJG+I!mm;V$+J(gy@%_mEjPJfjF+#xyWp>hW00qVHml3fC zgLe2C;d?Yn+1UzRv{FG;`>+d2po~qPpB7V39rHuCa z;*gM(?}g+&a0)oP*}nEUY8xe(x2w1jy|Ky(ze4yn$15c#NXZX7RX}v4QH#_W5$!Oa zgol~Fvy&B84-?q`s=TG!prE_(y+cDRRQ7>_U`{HN2eyL~5WcryGhG+XCr&?1fD}Og znWx$eg|u1IA5vy5?V_|kaj{wd>_z%B&FC_(?+-M5GU5}rS-xF2;TjAE^9weNh+az+ zITjq(OFUj=1F-IxzUa37m z`KmhU=LyBK{}JDrj+l1{rrR-GWzLro(GTMW8B)|hVc8&7GK9Ryt)G)QlfABrV_TFV zZ($T7tjIRRAsP`c+yEa96~3JqnaRF)h;vaD1jl73sq&i|5Eib-YHGOeG5DKii(jCF zQ&2$AWBEqEq?TOZ{d+KfjH=T8M#TK?%9aUe;$+JtB9bi?DlBM=<4>0@5kJBR8XPCA zQ|a!65*{3h9ULhtrZo~@YlWuzmFe@g$DnQ-NL~$Q=Twd0Qb(KtN;!QyP}L9p2~x#j zxT;!7ECJ0*Hhrzqu}wZ2CA2qjS*^PBRqydhxKr?%3`N_c<#vDY7*TNI+)m2cfmoL; zA|3Yayr8wg0;)QC7sZd7=^LAYABx_Ay)UFvb#yIM^O_~Xk4!J0WcsF|<%FiN1tigzK`EJu!vRV;oXYt}0kW&~D8Bv%nr^osh-KWaZ3X|%^B2Kv4M!f0?L?- z9M#S0$l5Tr;|Y_a7gIES8CD-m?2!!!`_-&*52EN0{6%xVW<7w&hF;$fbFu2B^T=s1 ztm9Wo8@+*2P^=Wfr~gQdu}-PpRn0&Rr4cD58d=__q>= zpB15ypdcQ@B$s@PcG)pevFH_<$|aSkkzqhOCI~L-8^oe7!|F~N+GYW}Qfc_j(ZFY} z%t&Ko7I~~x*+=i)bbFKD``7V1g|)LWBXY_FM2}E@qE~Y&`&hAdR)+{M3e519kmM|S zai^*ZMTpF74T8_ZErQc%1xBYD9Eg{RTM>u}r}x4o z%H9~4I@OM%ww+}7d&8)jr*Q$$@e?i!y~&l!Y1A|@lXc8u$J8Egmyj!*ifPm=rv^5M zecG9DhFo|*>SGf)eR>t?BfFD#$EZrbjtE@oe8zrMHBSm_zT67b7ui61g={b@BeE}C z&~d4V>I;*ebuc=^YanPqyOIbiMPxU`(EDapVkXqwxd7M+Hj!RI8*EI1@yN-Pc8{n* zo}(j}R*i@aLw&uV)=yaEShSvwPpB7J4y=M)bJtK1Zst-%8ROci~vqc`a2$eY)L5F)r3^k&?P6h8>(bhH%VR8@pg)S9CdL10Kw8o2){ z)2^c-XQ=Aj^pah61P1-*>m&XqGyF+N>e%$+U5(YdB^B8H4M~u(^e$fIKhkR`_`bRX zlOyOAy}@jade>uG?f7a#5|oM(Rfzk{~|4=hvM# z!@KK}pw#sGUw7X1l92jnLlTsl-U{r_o8hzE-Tg4ikHlu;}f<-ui#CY+T z8Tq@m$iN0&jW%eNSIB1@;tmLO{~L#SJC=;6EXCL8vhKry^H>t!o8q8MhU23g3biJ zSVrw(`g=C!ef3y+&5VDQd<-r8KcIZ-B;YboDkCO$GB{i0*u_erIFH!BiAV)8S}h>> zRk^ykg6qJ+4R9!wSLD1)^`fD#thu?w zFSY1}L+iw}>_tZN_dIQp87as|4#GnH@|RI}-yJv&P4Yhs+zZ(>R>?2wDw(Fk^eUZh zuOqVFd6*NL*>GMv_5ARENFl#LpxMl74{u(E_UU|J3C`&jV`$&bFX6myJA8@I#gW@c z(bMYyEJ=A434)$?u0)K$(2W41Kk^)(f*t3B_p7E76)v&E@tvn$WN)Z?A9_yWFtgwW zqcdYadj5bV=Mej+jfiN1`Sxh^SDp@j4BnpT4bUUJas-+@5k*sU;6xneEGE-VadfGt z!{0+drZ+}Lhj``7(-lWt0b;sC_B2P!jJCY;4Xmo>A-R|bESGRLOyRf}I}bS3x>yTr zi;b%Z$g`0$iSx?smun^aKzPn3847RWl>y+aTFws(}hxy?J9+*1d~Q|d#_x90gCe;3BuJx zB5!HZ+f;xqUYUu72YVqGguF_c9wNW@#E+Z%YfW1~*j`D~{aDyUCwt|>){vCJiy*ve zlhlqDb$Z^>q9?Kq?o5H!7z(M$(6X7E3@weECi9;<&=fWmF*wZH(CajrY{WFf(bh&p zJ%XJk)63mt`uG)5q=S7mrD)7#yU8RG*={ng-K{v{Mi6gt$WD`aJ{pT~Bo_|=+eJ7V z<}{gyd*T;fD7knU*qb(9smavD_`piO0^wVm6l^k&VOC@%avGLkI5?9^P38x?SeJv) zl}J=9L1)1xlR#y&o6MluI@?L$WK#;VU8QiE%$9VWcRmPfh!j-ov75~Md$guqAUst` zlig&JpqxwbCJ4tXX|kJ4-2lc*vf@V&&f6r_WT-W`nhfdcv~2*m{;qGLXWLWl_zdV-cAYn zK$V~~XR4*!Mb1>qyX*E;OOL5O392}buP>a`bmmO8y#HrUwZ$kV=O6Zec>5B-xUTB# zH#2@3$&zJBw&gXBWGCJwTe2)mw!B-3H?(J!31wWmfhY9QU>4hNbT>zw@EQcq^6mX9q~x*_P6Nc*Wt+< zyr*+$9zFH`=zcW#6G;6_e7t=R*%oE0*%sv#sFIOgQer_4)tO2Q_u0?90*^sPsqZ5> z<&jkUeZBept@)+hcgFy3EIEC2iEcbB#EYuhv*h&AM_{GJRBG>3;i%;FRgH#73ORiO z!;>SY3??XdLQbo1HFrWzD-P(LC8x9@pL!ZKSaM2JbW1jGM5UH&4&!<@V;GQZ{ykqX zWRnMNdHTkj8q?Xevm6hA1E=3$a3H75!+|?zp{Qxc044ZDmt&!LIB?-w$61QhR{KPD zS8_P;xE}`|JE<8XS0i_VZ*;IMu{kB#yuptH-*~O&iQIvVZ}BpFIIs$g$acIQ`4FBx z%IDHB4+l>Dh|$k~1<$@|p9gT@R@W5r3uO4U&6LA|$ETP=D$_86!AB|y;J~K*(Z^g@v%oXDJFZI){MiNG4dAVeh1%p zg=Ds5^PC@KzO`BNL_Uj*pZ79*AahF@R8M$4@;yBJXFivPc_34T=dxS!?|3%lM)N!X zGWUTsl|mLG!zDIT4rKmynJHv5p7q%00g(Br?N$;QhM0-nits82GI#Cqk8C%bdH&a%5O-GbzaA?HxK(S=O{0-U`m_@20pPoT=;N6khQ*OFj6CyzPxBl3&hH zH@?c+-McZdMBXmx=-g{@@!>~I%Is=LpLnz(4jBCe3fw4IKJs_(Lm{Ny`sH&;tbY4m zK>DqbnU|q(iqa~btH$SJeD>K$JtZ%Zz9_8XvH{PW7H)VZ$6Af8tdA3g1=# zg|ABalG~1{7}T$!UG107;)z^k|B1rdm&}Hq(kZ)dAFh|qdn2#^y$#pP7VrqKvJN1* z_T@7HPg4w!F5~Rw^-OeJdEpg zGya*^H0x<^pYaP`|CE)ipZPmp|7Z-?9W$i-4Pd<6J7>;hU2lC5*BfRu@cQdpaJ_Nn zDqcT_p0w|(lX}ZuhU*@!_is>p`+K!L>)wp(_sy3)PodN6=V*H#*oW)6+6MYAuAis% z{t|szKVR$mJqD&@j<)$lw6kNbw)0Z-y4Nn?n2)?*UroG`WxtPXWP8D z@cQ{(xZY4NllBv|t+Q)}^y|tk=J0{>$gc#QvE1&G;N-{@prO3?tmR zN3UamzRs)k-6*fG(e$5UoI6vq-pe+WW1Ktt>mS1P?2D>^N;a%5f7MNn6Tjq9tU^7r z&WXPWy0k&htSgT{dk1bd%fWIr@qfpH+OSh@=EPrt0o%|mHx2Oy7I2x|EQ|k+1zavS zYvMm<0lVa;BYqzsYeSFRY>k(taI;%(cEw-u5N`IA6CLc2U&EWda`UqI|2~A9E9B-t z{Jp%{FEfZQC4f3z7lhveqv@$C(`xmIpo5nl^+(1z>e=BoH#uz-Zz9FD(} zH@$Lmb=+ZTNx8Wu{t=dzlACMen_1d`+*}tIP1&H_ywa)rr>pSj=4#5Or!bI$Km=>S zO)85=udRPQlI6^o%D3a{9g#|^nx<0kRYi4QCBLfJ?JAyKS4kVDsXWQ0YA+_Jino;? z;1y3tkuz5+PfkOc-12H~`Noa0cgzGq2X={Hfu?Tkst`PS?Fja`Hp%rAr;L%1z*>(Sqw!k5{QZ+)msOU>!7NqKf`DIaw?y| z_uY|c(Iz}S9IfLo-~OJLqwY0;zl|x`JYX1e9rd~=n0ichHW<|0q<)d9H_BcBL!4`B z^^=bwwJlbSb~=oBo@+ve$yN9?4Fpklfl&G6{*mv-iv;2{GjenF~GVisD&P)L=dnC zmLbFY^<_q04`%4T8ajrJn`4Z|E{DqnyYsGyi}Bo;iB4mncBOh(ufpZVFY8`K_e$P; zHL{D3NhX}S5A`5rOoltjRA~>doJvA}T_bSj#*fJmGrD{3xfWk{F(}c-Ps&kYjQSpY zUj5kJcwVEOVmNro;8cI05y^k5gTd(Vy3-_--3-R<$nb!^N3E@9kbR2kcW?%-i7lj3 zmYQ6jQnv28>+x*(62dT*yINgc-v^NTq_7ZF^#)s6_nkN4`QHfZKoxMo^T#+!ua*rf zs)lpVox1mY2#;iQtC zO;>e{ufIF;OGpNDS609BTnDD$$4IK=DW!7kDNp2-V^5Lz4|wv*X;zw)O@{=FtM$i6A#3kQ(=eJSG+FSYt;FH(P|5XcDprsx|mQ=5LIWzgMO zk|VrwB*1_5$Pr}d(Dg@}pdi4tX{uYX92tIF&Gs{bzs?E)*r_f9j@$I+sO;=9s(*03 zXrJdZ*MCX@4Edicz%-F37H#^tHj!rmXcJ|yb~Ed z9hLRN(*sPw$2cTE*CF9y0-AjFoRdiYm07DlJ&2pC7|#}vhB5s#}H@@-NRT`o7O~lAc1y^_S-f!*lpj&As?nPwnh~LZ&dNN?00~z%}bP(x)n^$mNoOPLXOJmLs$y;05xvDPezncFVxV3 zaWR~_M;noMz1V;-5QaWt=nSXsqkPm>$D4=wNC2_!9LxHXTD~ocJV~uufMKa(po%I+ z&v;K{&3cGTv6r1eIruC4G~jOQyQX*Wde0-ces>LK(#as)<^RJR4FA=`$W92Xh&8;9 zZy;?KxCuG=xFU9mNvot@Z7S7nRn&`C@{Orf98~glD)oEP$x89OWiW}Vqo`8?UsN$f zLe-z~i~6mqH{+|4-v3h>hF}e^st#?y7q2SmxjmI30IIq+;wf*}(B-&_UzK!+o=S)J zO2$K&`f28S6Z7#w6}^%xY5O{rP9s(SfZM7)=x!Aqu-EWG6~8KZJC#l=Yv{0B)yCK8 zQc(E`kf^FV4&#cN;HuwXgetjnP{rFyYFVaIms8cr7EqlwwS%{OP)Q+pDuwN;pYb(n zPNq^oui}Hsk6e#0?psyy>b;R)yw8#Iu9tovF!X_Y9EbbC+`6mzvy0HKQ<#UPU&Ny; zFUF<_l0TXE=zWp*Jb>+@$S?Oe&YwgMf%|7q# zn25+N^W2&GQpIa<%iUDxnx8F)L&c@jWLgPPQyFpPT;x1JZ$(l8t_nLh2EP6JQP`P8n7yUKN|E{WacM;k)mf& z$u@NSEv6Doo%}`4{gqS_bTiP}lF{nC?k1!2^SYaiF16jQeLYHFZc0yjrPBex>w>3I zm(t;IFjwE!!Nk2OP5UzKUt^V~^hWBvqi46S;(6-RejTf&^9=h`bv9Thq^|%Z=btVBAhzB!GS(4&E;2{^bW8#0xyYq@f4u_GbCDLkKkO`|_I3kGJ!$IN z;?;E(QU!oEVR-=-(8eL|hc=3e`0ReCmfjV+3)=Yk!Zs3m3frhKm20Ek7q+pB`n!KZ zsa>WnAbk0Yoco1s+SUmxY(u*&a*>ROJ9&jwrSNl;QO2{n)$qk|i#8XOOa3C~o@1-+BzkIg87TM&U1nPC)Y3`l zD+O;~g2^uQ2J+rEYu~A**AQdc@vlXH06=f!+v6aPTbAm}hZS+$vPEzAE8;jkUx#m3 z{TmKpMW3y^evosNacckHCa6zLO|4!{&!Z+m76@3gkj}t_RAMCDuhx4-jkw>U_lE^p zO!-P=4ujZ4&+c!ePj3{$MlJV&J53!cygHg+Z%NHxM;aJ<40Q-v$H{4{838PM_Ijs@ zK2g=?-IdQc53O% zb#p-}cc7HypTiJ*yBG<_nycOz1Q_PZLejw4jUG7zq6Rz#-~yEyYUfu zXD?{as}hN{Q}cXmg=`r2u<{uoy`RNzy=mG-UemsY)FmteYjnw-@_W70#oce}m&*(K z|68Q`*fp|3fPwFHX@NOBbKs2@&wMj7KM&7*GqNfV&wMk|m4|2kE;7sD8D}BGd@+pW zgQk2a7UT~Y6RFaUkNfZoLX=7DDdLwZN|m)VqdH<#>4rjOGev~mER#Vpy zJNxISSDn2AIQPe8bwq)v%vnsUkv%Bp2tG2G&HlM0Q{nWmn(Jy2?FzrIF^$O0<-3u( zghg;J56LfZ7%hYT1~;2celw+LG#wZ{IYumlm`^Q(q%+F!9R@N3Zo9wMpo04&Q}4g1 zk(v|AhECNN_kanYd*y0VLvFRKc{6K(mj!bRPMp54gVmyiPA%OjE6h7NWH5?%Jd|va zfmW^T8IXbA0vXT%=?5Eh8k)V?_&kabwhzh-_AZgb7%X zLKr-}`CWWu0@!`0hlRcWLCC-O{f4Qk(yJ=^7K}OHVvlzJ3J;btsecaC;P{=7PfLrl zkij`N;Ck2;aJ^T+%}ABO{x)hO)KMvo;2jt1qS)Vlt9fOgdF6o!`R^&wc#Xmqz^0a- zr&~ne5WJCJq`vJlN>03)R zgay*K-WyrpFMZRo^=qc|6<+D@N9i7o$nOK(TP?MaKH%Px3xg^_fa&{sx}eQ3+BOr_ z28hKZGzOMfEL^|Mapt`ZsvlFsrCz(2BGo^?&O!!1xe}=~rsLnc^#=>`UZhGN*&5$V z2Aw?PHX3xI9Ne?+JZ2<1Q5No5w@nj1c6t@X$|?WHtunaPS@)8;W1(KB;IE7<(ROe$mcl= zSKQqI1>e@_MJkydtN6yFa^HHDtPe1b^et{Sh0O3OyBmcxYMx`}7le$#ApZRWH_#WLh4fxANdD4S+4r8VaIOIsd?d1n!D(V=?>hZp1b6GMMQ*{dv9ouc zc7$3~d?GU2P>WR$ufa>7icB|1V%1N2asO$1ziZWJrs4iGHviUD51>yKf3DAk{M<8w zgwNW9kDYcFGKk(kqShMIg&chR9H~BN#9}%MF#j%;s{At$5AfZ0mTSl#kM|;^XrC1w zzZhANhmK#2Y*#dJ{RbkI{~4(=ROK*G8a=}wHC5!Wzz0yEM;r>VfEK0#4Y7bJ+`|H0 zj0yU`QO3Qd)DLpLlft$d);rBXIQI5zQMd}j1P9n4TpE2TD+}whX zlyx&e$?0LHWdMr@@Y`&PXyydrFLLf9NL|9Wq=;Vw96p1aFXAIb9AFXand!g5k1&{U zohf3z6u=_>FH)EAEf%q*4iEkVH#K*gB7S}nmZ&66(SN#_8$!-vo&bFj9&fQ({u)_s z`Vq(E!?Ss$FS7UIda0cIyp$zi^qS0kMxYqa<=g7DTpnB>kOD7Do|pT9z{V3vYzB z0KY%OrWPZw2l*8JO z1}btEj%|g%8&W^rqOGZq>2KuR%6Iu1MO*>C?W9xj)fJ2-8aw;3)9pVn@B9e7EdT1S z08yy;=b4I}cC|mRtHAY|q1ry6Fp81*--wk%0C48SCLM@Yst@kQ>TNpf5nQ zhZP)3XCZ?v{v$FTGxc{Mk$;hM|AExPY1)ZM)xx`j%zS@43 z_95PscWs!XN%3|(2GQh2PUS-PK=asb;sZ02}l*JJ$jtX$0)I>V4&u|w%+BIgEQp(N^;Uf3wNIjO z-)qeJ_B#Oh_Bu+y#d* zCuQqvRax+{(+ddpW$Tyf{lljhd=&_{Z2d;IDt7k%(+@?;I;OrA#Wk|H*x7TZoq8vQ zEE~j@AbR#t{qe)N?V3)L5J>H_UyrpirEGIGPgMS3gm)RBu&<$rXYh&sExsxr!B^ya z_^SFRd`;!8lV#Q|FDwH6<1OBnL7a~ZCwn`dZM_G$z7Dr5{LiMcz})1-UqGg^ZDrE= z^{laK9hMs2IMR%Q@Rx(hBvO~KGQ#ACBCPVES7Qy}_e}+vm#}7Lbm~8ZMOU_cI-4Fn zyL0xNL4+e^JF8=un0X(Xj%SxmnZH*(hn~bsYB9JUGwO`VPS`Ry0-rodzk1AK-BO@hP`NNUf4*@i0PuE{_74EBRX?77i`=eXxzgdC%>0%QfJ)5YX-HY2A zbNj0LPXg7rwI=r$ZmB0bg+8dmgU8E0z&<|W?v`(v$oqylb_g^(nvut(R z4=mFsSLzQ-zkL>;#?C%*y8T-7w97ud!MQ`;8L9 znWwe@RPZTN!9#rGGI~`!g;K@9Yl?n5i+QHN_mKKDJ_5L;kl)v>^{6{*2R2Q zioeLY=}29|w}gH?wh__|Q}B@@NE)5>%=F^@5LocLqM(Qae1UJVh|$?7V#=+(xXt1t zg^-TrFv)u6{{|5Ed+=LbP}==SUBcH{T2m9?=0z+>{?+LZ8vT7d28-M4#9k*SFTu_R zw?}Z>%$QVsvzAARecZgc+k11#{a|Z_Bl+IkdLHS8ycI;v(eKT@l(-pORK=;JGhHVd^Lh@ry#C3XR;F>>ea{+_Rku7s$ z)f*}|x}B9n)jcy>E4$|Q&4?h+lyV2jm7SGyaO19aVt9&KtH*_=^EN)sciRENSdNV4 zd{W`+6O`LCBRU7ze~DCG2?M}J$x&5fucifC(KVMXsP-rK%+SQ?{=}i`TzhL+q4uh_ zIdb`o+DKh|>zvm}Np;>!=#MRFhQBMVX!}fmuKdB6WeaCd>f3ysX2R?lkyv$Qr49>Q zJ}1AV*2ah()w!lp85Yoy{EW6~^ZmK-HdcWdPH8{uyyy~`!)>mNRf9ukcl+`>e6dU( zD&gcc%1nRbgd zKzwzxBOu;b4q$GauQfmwu-!sm3ka3d${qmmq2%%njV|F{$D%Eoo7=`pj>oz{yJU8g zX4SMK`VRmPNXm|c9}YVfV8}ZfQD3JNqNC11#mdV8$%Z$aiJ(?iwsEzrnlAqoYZo^O z&^1P6;u@=%c{3){*`ir_zqJuBug3gri(;y}Fc{mtw##7alXJjWaNx?dl@nK z)AZqGkw}lAhReN&Qpy`5b2Y;*Z>;c=j8#wmC}_)fH#?Wl0B~WmO3+8+jE!t4(Z}8y z5xb6tr2qT;2nJ{FdBcXe3=Z3sT3XG<#(#=;HrC2Wx3Zf391;%5%gib=tM7nL7M~o< z?^4%XJE4aQj%;T=PxltYnKIFVbwXK5| zRjgrKV?)&f*^V>hHB8`L=O(kkM<0g;BMIJUbbDrOnM=HSlYuswJ1Ct9_KFQ|#zc-1 zC}rFmfiDfN&Dz$Lu?10LQuAai*oIt5$7>^(R?n!6T|EEdm(Q+^)XYZA`y55$h@1q` z#U!0FGy@{a&6stA^O@n*Qvf=Hb2nF30_`al9jK88%az#jmIH zUnc0@8p%&%ac_=P>S}pi#K0kz%Nrwt#Lq;g8MJU)?oB+lRoor{1hQHTFkZo)c4P`* z+20BF?T(1R4OZ_PB0dCF*(w<7&Vr)7X7Rwu9I0omTL7sL8hxn>3vUh-!d!33r3ut1 zjK4MFEoom*-WI`pmD>?zqu=fu4&L9TrJ3I92r&I@WFzK+yG0a4?vBjD_d9cW1@|a$ zzbn@sqX>14pPzH`VD!`im= z4_n~K<4M5=O7(S3kex!6>d` zP+B|iip&+98$q4EAZv6<<~lXfhmB3 ziC;VTbr@ff1iqpfe3iYLw{PI>1Ne&nDX%`mw9oVFtNi*Fzka~4pYZGF{CW{z(Rd73 z)A1FpX4-t-F5=fRrmf}IHh%46+L!QE{&IY|y-a%_-l!PCRmH9RdON<#-^;HD`1KKd zxu4?I=kQhW6tBL+uOIU38GJ?Dh*J@@B2nz4I0|O!d3XBmXcV(FCF;iT)XHJ8@2!ov z%gUSG`slhDnjt0`tcVwT9bUiuUUxT6=H%;B+-kgTg~Zr@JCXCz>G~j!2UZr1-51S& zVCCG{b20nCm3CUqO{_BFRz2?4KJHF^c8^=T=hsCaU&T^;S;9k7Oo$ExWM9R;&m+<$fJHPz2+fn``Z_3JdyR*x#bQ|93R-f1B zyWRQ+-D!K=hBa<2-dW0QyWLAxy9;r*gm2&Cf4ibAHua3V;C^>n)~&tPo%?`Wn{_X` z#+{XQS6$~e-|Mb8>~1UX*UGYPt6Vf|lMcJhdjV(5XSi+U_qwz2C>lFe-rz3LI%}D5 z&RwK;^J3HQW!X!wb!U}7<1W2TfA)m@EZ*xby~3UKq`MSP!@iM03Xcu$b{A{$(^y&T z#(UjHz2C^6es?8*o^db!H+NcWMT6UTyF2%&yQI9!y{Np=y|nx`_mc95+_}#p=?ogO zh@&tM1DAC##fvdq@h7^xCa;=4cOi@2J?PGUc8p^UZ%*8o9Y(ozWwCdiZa~q8B?R7WZebVvZh5X?j`rS4Ts&0xdC1#uQf}>k;Cqiy{_~ux_p}L z*%s#TdRBqE=(pT?Ox*3dygTRC>)o_i4W_01QMVeMMcn|2OUtvGDY~piW(+UM81=ie z`O-7)v_cO#TN7Pg=T7T#+xEKc z_qwfz-NohouCyq2b5~xQ`f_cm>UY=si`?sOMH9POM|quFg-M89?YgnO(br(H$J)xf zqHl}TeOH>$Kc&u{TNbm~=iR!)?j>gk z!K?eDv0N^z7LIL+xUN9TijJxn!_fmWVKRxG`opIxzcV{)Z z@#vx%+P~HfnbVpp+`7lz89;NlabeY+ za~G7Ka4&kyz4USS;?KEjo^}_UcQ5^zJNGy4^z$x2Y}M`V{OGz_?yRTF-{IEpap&CT zVnxq7=U$BWIv#VkW!+_uy0u?(XP)O8U9=B5L1?a-?Y3pz9a(qNdAD{qCjlsK{tw*6 zKXzx{=B|02yCv&(o_81Tc2|{ebJqbuJ?c&ezSGg zKDO2iv3Fq5=YGyz1YD14-lSuv;Ad?{Vvk_#E;;WmId4lK>{_Fg*pD#oQ*Lu>9(6B5 zuOHVuQ>78s_9gZY$g}2*eVy&IW;n5b1OP|Nw{W4%*ez2pi(i{*4SQmDBUk-x?!|_8 zsFcaI21T*w0Nm42h6})vw<`s~SevHUf5fmzFjmp%qI!QLtZ`KAi83s($K9GU?wV)Z zwWg8^>4UWai~T7Isg6wrk(gfo*kkU7$KAEhyR!lEtM(w}sJq}z?#yT11)t?YT!1)eIUxfeg?u6x{FilW@xqH*6G zt~V&`F-+3z7sxzCQT84z#1(n{u=a4V_v8 z-V}3=tPNo7SzWyf_YHZg*V+`uK7k=@!VvCu*FEEQm?6|zv^I*dFPl7PNU=J-JOn3e zJ{fx&@VX2%ZGQO;?&7C0vYXv0$J|-BV-SzJQ(g{OSsN|Ojgd9cjD5sR;cj>JGj6LX zyGr2Xbf+1|pG*M~h*e+;-RPPbT8xf@wNNbtB`w0*$Hu~nm?pJYi{04QFbS8IA9uHx zd#ox)(;5rM{(Bmh(+h6%8Nyq1w>$TQJL73^e8=4Q=lrYZ8yifszmCR0ZMBm z9s4mkidpJN6XHzT`G{sTr`TvT&?%dF(#C z-dw)dopRot+U!o*?RGt*09qr>utw{#UjslY9(U(|*T1@~U485a=x{Yknf;7gd)}Sb z??&%+=j?G8KH;`L<2F6-HUjeNy4?CPcg=Zs6|ilzUn%T)cLNb|zq^J%B(zh?no%<; z_a2?T8tIO83W$9ZL~Ks^EbW94T!-1)H-Yg$4ddodYTjhP_1;* zy066k7r?msHg{$okXt93*xT^*VgM6Bt3F!6m7*|V9d$xrLd&=AKjGzDC!~<_wfWW` zD)wIhsk+z<@YmD#1MZIM2q;Ccu2-?!09i9)(~v1%{sGNV4Q{j|YQ4H*_ajGV9zL>; zVX=DvZmR)q=iRn5`mU~0nym3J_Fs5+`sdyFcioDs-Rh&HjUqJa>ajj`Qn&52V_gW9_JQ_#3CA3X#^QF!obGt>pZ)@{Fdrzq!?sqhT#%dT*j|HfT#wYxkv z^|0IZyc=)S7j+V?Pj>9>Sf~piSGv(Hvvj#=7py;cte^|J(yd>4aHZ?uS`YWwvw)$6 zAUR#Rm7woi-}%_b(11n1aaU*ErrqSCS}_Fc@|L!B=?^PRA=(BAh}{cVne{n0{ukO; zZH$dT5PNoFP7ILzEaHf%VaN;11N zOA>kq1~N%00%@BYK~G@(Ky)4A!!>u(L3CI;9y(A89ahvIDxQj zB^A`tme`jVNevJ5CR2&tv6J0{gM&#ka_!oIo;2!AcXy}pP%8;MXjwaY3^RCRBAZF{ zr?Z$S*irQMtuw_;cADEqj--yJhwwT8BAXc-aE_+3Cpe!duP>GDO%IgT$MuPWiDYK@ zRQLYm{yj|PNRI-*`bSc!k<@77$XI`A zHMgwA=#HkciGkG6(d;ohel4wuR|sq*Fxx3RzB}6VIafw|urZkQwox=q1{V!Q8&8b% z4imUm2&Chs@k+&f$a*Ul$XZ&tBoYI?quE5Jznfzx0DuM-TU5tj?@6pCZ9f4%07B^R zXlf+eeMP6YxLQz0U~%>A-;+MrlIT{z$IPTgj;C~Hf=FZiP$rv5q16ZWq#aH|7EpA} zM8&5I8iw`IjRHyW`+#o-fPB4`8z^n4Cm4a=;bGz) z(~neNBH26Kn@nd$%omMl9}V zX%Eg(kMe*mYx+{Q+n~a068qBxC1E}igTj^wOEVFn4MXYO-G>qfI}*-7GBacd)wnDT z)&nXB%LYb{V7DVPCK5qrh^80s5Bg-qDIFggj6x%M!+MkYnCQ4i>FR4WtIa52yMwBeK*>fw~Z;2D2$RX$P>% zAu!~L!Mrm~pKa`Uf(-SuE!M(NyY2#qPz{W{AeY#25rh%NjUJJJS6ih^gMeE)`(~De}@{NnV5W zad>Xd2&O#<@e)gKZK4Mx`btBh4<;N-#W!ubU|EJ%dP`k0vj!OBV?apzlgHRm)X@e3 z6(W?7@I-HG&)y?zy7#BC2D=ZnBo3`fKyC(S&R2SIV3bh4aTl+yUGO~~z6dAX(iGCr z@RCHh@}VQ5qMJrDBfz%%d>EMpw5~}c#)fiiA}}^OgHE(`ccU2dOcT+oR)`qr6VOpx z;^10fB@@HOW`z@o;i9y^lZZs8 zF`$lFOQ{Oadag{INP{CJ&pC-v38{2=FG<(F#Nb$#K+`YczWxZ#E&;iy630lYLDn@5 z45lb$vg6wx%U|YU%AM|=luwSN`_d!O4*=i!G)swW z?@_I>SftZ?kg_{gbzkbp*inORfNQMM%>luMfH{)thqhxVIVl(qnNCQ`7Gx$s*$_2$ zaxR8Wkbx$-7yZga>nfy9h1*tz+oH7+?NA|5CjpJuIvjIKKJ8!*E9b5B!E_H0LxE7( zeZ|2j04hl{It_2s}Z0x8L#*ft-ef5u}R+#PvqeII)^13C!EweXuie#liMO z&wg{uaZ6Bg1~&qw)Y?|em@cZ!P7hCmPZB!gu??0#2}p64T_G2d8655{onZ_Ju;fQ6 zSt$^700zh~0=Xy0Mu@*oB}PvT9?7V(nA&nh5)e{JuN>>2NBT|@(p_tPw-WT~qK zLkVTt4P!&etRm)8)>3=#D1mYOS*BWF<_Kd&O#^wX2Ep`8jKVmuu#42ehJshRo8VQ# z(1x)xlq~%?4m_xK$ZQSCR!FiN+R1|nhz4d$q(xXZuykOt`&t#+13d*LhAP4ktH3jl zCJ@M=*GX*SrcL4)Ku0vl=v&CLN_VgGHZMR?NJ%)UfwI>nfwzp1?Ze&U^sALBv*D4< zaPLvDN9-Z>X9+X!ruD_*1&h9TG5qOS_p$@y9>`k)^?s#kQ{mCdb!$WoLX#B2-LRZzw8gv9N{2H67H`Q*LkT zfndF(#g1>FvtTJOJ%x-xn!G7gYPaa7Z*IZ&n-!lO83SGe6IQ@1;w@H z?Jk3l#;$3mpXLc8y+<)#xa!Tq(7{tc;11}#7uou_3j#Ri{hHE77VHg(0hYP&K^YNp zFHBw1-RbT^>LU2hqb{&0$Yx+$;Lx}L1b0Y9a$mud#fgJy)lg4Q)nQ2$+m7algayM)%sBYSS*`dV# zJ)jx;_e1HlbNCRDGFo$RU1I+rB%$srTEN=$f&)m6j0|OrXrQ_+-6F}1afdj8xjLE> zfgf8GBO_F#?n7J)K*$h=vO^H%1k+fWv@$%viN;>xsBCX0`XQr%fMsDpbA*Nj!n`2^ zB{;*jAIpphSA|I)Z_A<6!}UGs-Pi`hU>%p8heH^nD=}`mY656Zn2Y4GRPshybyQz> zn@t1Z%!2j;ZFzf>r7+}xM<1)G`ZEwJHleh2y-wBA6S5&H96O2QSt0$Ie(0xx54VjR zHR~rp8QKh{C&Bc=K>;}jxIs6UZ?{2c2IK)9%CMKfbqV$6pmbA=ENx_<&_WAf`=nDj z0k47f?iX&^*V%DcZm=y-U=N(=JvEw0-89xaphWb-FA|#yxQ$|W1RM!4xzGcl831=( zoN58YwVN3+3&JuP%BE?y^blCGG}g+<(XqkQP*%oh2l)S^nUPbv-*r%S38<>VzP0R) zT1F6+4fPHRfhG?&Nm}UbZzu;G>cJHPNAtOip37z z7+3(c4L%#ReYvO_aXsf9Z>L4b}}qXvKwkts^h|07{I`KSbUu59qH>K2Yw|4 zVrU#%peq%Xq_=a}lT#!C1$p8wEu@IkFk(Ph{KlMM{}>ADJ_^f@XCLMeufkMU@R#8Z zbAle%ytS4_bB!%#ZkNpLSr@_k z1mq4+4XmtbVDG%$%%*a_(AikR-ZK%?62`NnyN_c|o=Or1gpt0;be zRVsrD^F$KP6N6A_l_JDyDV7s2Vj+e23ZMlq6~YaGYhS`O1aOAw5XA!Ml~^P~tUL~- zl~|}6eWjm!wmcVr0&X218-b|_*D_J|fB_h(q0#4AFOC2Vi0tS$>k>fB?N*B>M3oP(E)4DLM&(0nC{|R-pIZwwW2LSHKzE@a~(b85n2 z2;l{&!3E<2H4ECxUHdQ_!h&V&5jX+EVv!lPpTt{?$Q!%PBQU=3%--_dJGIv(mv6X$ zV&4b12Ko>0P&N2cW@3_PjUH|!_TdB)3iA*G8Mcwn)Pb$6F9+zwb79inTmhlu8l?s{pfJ_%12b26&_b=jVy6W0Y;TJDWwX z0q)ybk2JGULI()tdQ`^LeJH9S#^;m*@HWY@%PE~K2jVjt2@DK4oP&wJjAzJ1j}lQZ za(@>fc>!UWOCeYqw-y8bz})jCb$n@yyKw6rg3x7lwkNyKHlA-)NLPTl*>KdNKrj(< zE{z1MVa5TP3y7mnUn)7k^|{Pg+AUWI2&J-UAr~0dH!uM=^Gn0m%HhjC6uJC7L2i;% zNUaW3t_b4?d>T1`RM>_gppJe_;_#zxO!UW!dwg?xPu5cp5+5}&I~_x`4um3*s*eD%ld|vmgd&xH4ROJ*|DM2rlTpml}_Te zcO-di)5(tZruMdmrlSo_u);Vsl*B&q5EO4sV?!i0O=2oAN^L8in7IoqCvWr8AdawY zHcUVDW7Ol*o@K6NU&CnM{lT zN_3>~HYu^yN^Ov6?|sbFBa#z1ge&K^ooC7EH4I`GkCoWc~>7P4prtlSO)RSOiW zp=$;gqo%th!MAma(l9)I`cvY7SuX{}@Pgvek5El3dMWgdS`Mv~#$>>~>gS>AQyH_s zri!&a^s*6C;LY*qL4+5n`bfVJL;o2o+1MnwVQ~5)Vxzy zHF^y0x($A}DzyA1^J;4n9#7Mbxr7gM_W+Xgt)WC%Br0cJ(vg`9`y3Nu+0Jsw)b@b`=!_vAa*WXc){AZH3G3y{A1L|sK**;PE@g~gK57BiUa{L z2_J*xal);j2Tvk^o>jOrU^K8w%Az3#No(Q&wj>GV$UYeqx>L;IQ4v+{y6JO^&zKf7 zPt|&9D?VU97YYg(1u1s7JkyJiN|N3FUC3gEMhs%kC92q$=^SVb z$CcbAXj4zD;n^_ATp8<8fwLj2H5y9c9X=u6H(NDC!K!>H4F?;?O@WU9)J~dxvw?R! zJJUcxve*>t6C*I%oY<*VOB83S%X;=g=`VT{?nVp3E}mqSz>dI`wp3pvt9PZ=ptO}@ z{Ul&#LBt}Ke11$3VwEe#wY18$wyp#Vp(z;hF)_v|e%ve!sMV>H5Hcik9eg*uP$QWm zH^7|NYUM`9`l*$JFGS{u)89XUh(?$|MSjNO_kwYZ3U-}{x+bt(mVKcj2(I6SK~$@X zA&XtkMz+VYF67#VuhfFC`dGS4qJz)L^wTpHfa*M*62ue zHmKY((rM6cI85R6v|(tN+gdIGPKDfX8S8$1F@q5BDz}mYhI_nC{NgkUz3;908yl0IN!vJeVCA?LmJ6@)Gz6X!}(%$k>g8Ly2xW z8UeLqar9@?^dd;~!#+i6lMf^U;7b2%e-Iw%1kn!J$s~4WRe5S4wYCU}9E4Hu)e;JL zA$w4LBnIME4OGLnOW;^=9@bwVw?l{yLFUM9G6d+kPyQp5RxB{WY(mVf{d7v!WeJ_K zG2IGSZi6%d?-$UIQ=$Pvn4sPgRmL>q12y(3?J=xyIkGHFU{L+r?qbOzQ4jD6APdoU ztwTV*hmtiLDt;2Iy1}w26O2I!JXuAN(ixdRfbb;!6|8xuD8%quIG^vO8ox!EP1aO= ze@kEhVRj*w7YE@Kt`bl2gCv`lxAYjBpb6d&+x1jkk4iJe_gccy+E6kk8VOdsFN(Eu zeAKfO;?OfW*imFBo!1e4nCndFRx+MLiERJ!&450$Z43jVzHRd47CIr?O_+P)*?jOF_=L5w_!<)3Bcsp5dRj$gnVF$ zq${6-2WAJ>CLu13lQFoXHo6;TAcMv}v?S4}5QIx&uAtb*;@OuVn`X5@o~Kh#o|9;2 zHn3KRcGiTRA02~d9g!QF%%)3j1^66VOG85GHC&v`u{fO2d*6_5uOICs>~lI-y{N0h$_5 zsk+5yx9Bm;KsPzxFCychk+UdENbUmSZtFl68;jf-WS2@<{$ZiXq^KNG3f){OO~Ml1 zTHtjuI8sF=IgdtzdzJ+0x|lr`O0oFSs2xGSC5W@#3xF}mOY>u1)i9B*$OX97;?X?D zds{BnTj@e*DMA^cU-wvtp;->By`n5VbL|cwWl=p6O<6}I@y`@PqY0&g@iwh}HaP-# zfhvJPb2{E)p~@RZD?4EKPCPTk$)OZhQ`kex%`CIlZIhJkTde9?&2yCrEFQ=#yUQu| z;g0~yM$AgFhTtA&fe``cFn>bE=gEvnTOd>wh`K_*#N0q-9;HS8z}P--5j7d|H6L>u zFm(tIk7u7ICZa%< z9tyD`N=b2^R^mkEt3N;y0S9w4*-7>75Mu9)NHmLwLf z<$Q;#lBr7pl7d1&Orqq70+^{G9*|Y}4=_YedbE#$AY?>}B{#-+qPWKYaZxe5Sqh!A z8}%Ai5>q^ZpowV|?U7w@O--!Vhu#C!$(#;=I8{){VH+NB?Y+7wcUfZV?G|bA%W<;4 zs9tb!AWeW2{Es{nG?H5c5i)uU*-jEm%@V|hJhh`5x}h?G&hdvf>GM{`UR6kQbC!=#{Q0KMuDmVj^{khu;N<!~NHaOLNwG@;h9BHmq>`p9F74O$9g@_iLutkCj=NnARzc9U^fG? zi6K1Xde*QdF-2$x`|?-<(9{vU;Hg#Zjv)^PJx{Y32A8dJ?vjZjontRcRpd_^%oVp%*n|N|8d_2;Xv^Db&>C{F z2Dt{-l2J;jsfEEs7j$(d&x>OZOLb)mk#OygD-VdRc{==Q3`MJ@SDTiS#vo7SN`Ybr&|3;B4Wf!-*%fVK zURW>|R0I~x69EG!WXjH(m1@y-b9@O5_91Nyj12;;Y!n2;a>3jTFAapz(l9e~Lq^*z zn?8YJQuYs_3;{PpvAU$;4^UJO{N!M`+(`z4$dyNhIfT((If)$zpeq3xbh^fM4akiu zU>GfCq|>7#nXzGsfy0>&K)b}+vT^(K;+_D%7Dg^FvGX3ulT{4FgFPY7lSd8|9fa#k z$=G5oZ7{q|94PCG*PdIc@(;O%2_(pP{Wxl^#9?b!GaUq7HU&(UeKTvF7%nk_gU8p4 zTP^o}fK{ltL=@5duzP_+6G;i!{LD+_NEo)?Xbtu!L3^zBu&YY}xmdhow-jXgm{8F9 zfTXK40Of%g5f|cetb7RCKLJ)yy^31J6|Adb4Ff%uL7?SD9(+KhCs;B%pTIxj&`58Z z)`mNv%d*U@7)6$Z!Mu%DTIq_KO!g)E98vZv3n(f51p5;_rb2GTT^*F6=(*M{X{zr1 zwp_w6TPsdIc1>X^IC4dWtu)Rm6VJLa`j=BL%&x-t-~@4@@bH=vhTC6pnVM zsx3mpXkyD;qIakfR`HXTZ@fgwLJv}~3%|*jZxm|&N<;{1GAL&%Nx0}>DEORe)>=j8 zJNYQPXIF8E#iZE47~OohIDlTN)qCQk5HZm0OtP~xaon6(2bAOkkub4n9N!e|I{A+B z88;*ouzI@BSfWpaw8*$>y(up!eg+Q8I9r)6Sn3 zJkl|z$d`7gjrZHXK)e8}ozr(I@JyCGT8n0D)E&-FF<`0Z0junk^d*32yb#j9C<8~c zJdD|fTPlp}CFK;05AE3Euq8bLw)oYFQN02>A%HOrTGu2{>UFl>VMMXo--=mz~l~|dvbNjyx7}q1%%sak}HEivWA7_3=baZ&+Ugunbt9ihk^mAyx`(`cPfSaPBWn z&#IfD3i;uBuL4OsaT$+SlQU_!T5;m$kXVe^ReNwuFf*Vvxat{G$P3G34q;@FEdNoN zx@3!8K6Xi~vVj)FMn4UO@r^^76GI8n`}|RcP-%eWX##x?=;w>=7g*KMMQ=7hs7X?8 z)~K}twZDV|60MS%M`aE=o(~;~m}tv&XHFSxOm(px!}ge8pQkK^Z+Z&0B67Rr;jCNX zVJujmeWRJgF&J?n#)^=^qFb5AHDRJjcU2`0ksAs&8)*{uQ(8l~xR6UVj`v`6{jp7H zVdkVq)k#ka%IA$Wh**d+PvXP)Eude@W{5Fc8LyKCTTtD3fh&q2o-awbwd4*+%Lg!+ z+5k3&A3$k1QT(8w&p0}mh1!E)q|&pc_CgVC9By@BmwIKs{Bo1y5N6wg4 zI-XMxk$^yhmifh*lB^~3tX?Qi%Q1Z9VdN}SGlJnLtN^gOjY`?a)lQ^p;J6kB-52D3 zFq^t5Y_CSQv5)YGfbockY~6@)!~Q*<(sZJxV07ueD&DJ(Sk(2WM@A9M0p9s=&QCzZ zP*|`)+lEc2G!{kJQ3VBKqpj}VKPXFR+?J2KZ4b*WWmSYM1($Sd>Lxt)`HfC?#{9bn z0b51uXp$pE!n>!@6TqsH5r|OOzvYG_LKrn9u;?I@V9aoKQT|>2$Q7LIFwSuKERDD) zjg7s*Vd!}JaWWt8cvu6DYF7`U!Sqm9fov|~9b;7P%9nN;OutiZdTc3-Cbj zhY-L25JHZj!;l?mGBrrZm&F*ESRGn$_qXK2GfE&Y zxY1z?Qa3Ebs=9xqH;I_^M`iyd*SbWn-)!8og9RUrCCMG^39TwhqS1lPXTdf!=*rg~ zSi@!&07F^Zg2in04e0)Hnl@y;11qT;828XJQHk0k$mFbp+!16rc`gOp2f;Q#1!`qY zUFC$_td+I{7R5Tcvb^lV@*(M>yqX07!id7S=huXRkrhxwK^yU!b;$@WD-@j9Cr3Pg zgi;nbM8qoz??{Md z?(e|nNgS$ZtW7RPT0m=6yD!^sHfCX-Fq9NwtI#kCpb3!yMIj)3dJxW~a+r)xa=(p$9tZJ^ z!pMq|-i37uFl~0<6b316`+G;StD1}_ng&Zqa&-+L&<@$zSQdE%9X2ITEfy+A0fjRl6iINWLDD$(nnSw zO(s|4Xrx4YTNC7iv6D?lhsIE%tsuXEf{d(VH3hRkO$8aXo#VGjL-qJuJBgZkT6x~d zN6p6^d*C}RN3#P7<-g=c^rCc<#SR`Q(WPhCgG(gWG1^w4HBy$_-;9_s4E1$3#1lSON} ztlW`b!UbMM1UccJaF^8R7I_i@lUJ@p!}`-lam~pxb;|(Rrit^Qw2T8I)4?}$#tytg zvw$rSTv!~AS-I6U%QL`}=E*ptrcXh}-n`R)qL1Yn#j+WIW)3_?0}q|#U@r_8VA(Ig zg}nVZo)#falBr?#UzsB0rd!Ez-4L zngN}`g^l=ZUdrHC8{H&B?cL&nEyj;%wD7BY#Cocr^V^u?xK6plKezG{`E{l^->jJO z=Gyyeo%r0vnsmpk_sO)f!FP7r(|_?Tp`Ru3jCV+oDfb#CMvj#qne2sv~~CxvGpm z;$3~(T)n$2{#2X3d};i7bJY;9Tc>IBUnyc#gqvmQw{JZ9= zGhWlKr7VwcFjw!0#h+TQiHG719ePzAZ#Gvm;@iyC^!R>rwK$$NSC_``F;~muUouzk zj>NC&)M74;pEg%};$JgYE8;JBXeoAhaQyxv@06kltuTH<})(-CuZ zL;Q#4YDql0*}hw2u5O6mY_3}3k9t@CXs)Km|HWJ_idS#ZcUQ(c&DDx{(p(i!qm$|Br@AlG8nyW4G&vtxF_MgFpT_hrQ8v$I)mmE$zzr>~XrXFFdA^tVgOnN=`u`%HRpe6E*r<~q); z`Q;x+`Xcn#L;U9PLnhtB1}6P)kzSWygxvj$$?su5lcz4K<$G(!q;ECp9w9O5?=~PCTTT8ICf&n)COtZn zpf=B`3AE?UCclSUP5z%Ey%zr*1Gi{~{Qb`4_wbcT?=B1P*9}PLID6z2aKpc^m~@X0 zX|l689$wB?q_Z54O)>eeA1D7uO@0r@oBV%k(mfJv(*MPzdvx8T|CdSksE|qD1LkXy zx%U6`OZs%j*{Z1qtvK&6=^i0BFU2q(wV0O%GcR_WA2<0u2FK+8wn_Kc9h3fJq}O45 zEa!LeRDJNAq?=5>pC%9nj%RS)Z7}H`>tWs*L3$Y6o-_G9ZqMX@!lVb+>Ccf~8=dFO z3Bcj+#wq_&^dqd^A*8eY9ZMmoz6 z;>nkpbdNPQ`4`MbJEJwuCEX^${Cv>l_ZUl){soinaStZ_zfHQwBbfAAAQfTb(1&!k z(_?T={=1P*xVj_&R}Y%}LA>$!IOYG+>wf|ct zzsDz;{Qqszzq(ZunoRnR>hO6l1AZg?uQ7{qrOAIB`NQfxKTi5nrhHEpG37irPW~6i zNuL80z zp7>(YUvJVqj@hLD#-spEv0qUvJWnfe~amp3Gy?KV#B8 ziN&P!Oq1>aKFJRR>F+e8v-}{3zYF73gK;~2#ulKzHwc{Pr}6F+rW{WcG+F-I zq7J}&((f|qOeP5x+o zc)hE}N$*BF+aJX9x0!TLiDAk=XVQcG!xKp7I0x6)lSmI6hyO6;c#^LvzZd*G+vDjg zO!_@Y4=d*{Ony(5Vekq$kEnKRr(R-yog!2IYdrd7AF2EKGZLn{-b}V$%DO9@fs+ znEXL_co)(e%)9=dkB?K%lcpR`yJ22>#-w}t3X@((egOSyF#Lc)d(I-Hv%j7S&gAbh z>7Itcq~BoDJ^hMF|D=>}ZhSw{1zNtRXED!OksdZakD2^IdFPws-Cg^CjFI2Z!p*XpMi1G?=aU@;zOaNk44T@7$^hmOr`OqbD;o0HJL!ypSLZV2iJgJ0;|hiHh) zGvH4@0)>$SGJ~_70{JePe@z2qBU1 z-ARnWysY^b-Wt1i_!cO*FL4 z)OF=$mmS33@u6+o_jVh5*W51V_4*MyAtq_;6xvb6az33wLYLk#@6JoUsnRW{$!Ri#Y%TY1r!Vyms~2zR+MH z_*%|w+qY+|mfd*MSn}g!cfZg3L{b>d4#9)fGBX zsbT(wG_eOnz(io1o+`;RI=F3`7#o!kN7fbl4^lW=4igZKj&r29Pf<*8E(@0(USfPG zMMxUApl3H0AO~flhN*8O0blTG4(Zv5 z`anhrVN5K_E{Z+4v0N@S9F~6uq(&i3ibqSd=EW?~5kwb@8c6H*d;l9=2)6Pt(!>^0 z(%yV`KQsapqKyb1(H`26Vokh)$lOD&)+6x23 z^Fn1H(BRIinsIk19g%%uE586rCd1xum` zH@^^MNNSuCW+2p_j6L?|yC`$;VrQLxuKq*H;l?Mi(Dr&xA~O7eWp21Wz%Zl$AJw7F zuN)Jh%PNlmHMe$RDqj-Wy8=j)w51(>`G&e~CxKNE3AFJ-ape3U5@ugc!_A2!juYML zc}o)^TVwTGc&@1oZZYnD=slcyP3J)>Y*eJ&O2`vtLKd~fodcsiAZ7s{%&^deNt}rb zzqUf8gc$b)=s8F^tc$nAGWHSfW&%Tg_|#xo6QG?iu1oQbIGFm)Q72|)g3ay*02~MN zhOovUWwa-j<_c9)WPWJh4lAOLkDsh`1ROZd1dSKAlN_DLXvmbl^e`5Mm^cuH&M#;b z2%aHv!wQh1I{PahgxV%^46uLJl|%`O7|Z$}aPUJ~@5MqAsmcd01&t3A-TY!3MjO;P z7l|;@(gR@!Sh&+W6sza(=!g<+1i^&C>xuMe%D&MHL-U?PiR0bt0{0qt?Um?nbsutfu2E>Bj;`8^3>|Dj#kibi=Q_Q@hi>*1^m z%6Ar9N#%ms*8^Eew|h?p?7+vz1mni%O;ARs@{GzVu6p=)`}{?OOE0OV6iiy^3SlKs zHqK)zCh15+8Opy9?F#iP1w2!KtkDSodjd{~YtYyCaeZZA;+xG3XuCWKCj>!+^JoRg zAs17Pc*Ku*|3D`eg(0szsW2yxWDtfn)31T#3Mj4!!Z;uK*huDtkCqZU7C-QcP{xs2 zb8K%o-O}fYBcr1}(9H=n{$3>d2eatO&G}$Nw*C(Y?D?Fbg1yHY`o;zT<~R1AAcQ`6 z2E1E8feJ!C;l-oYt%%8-BlU$PFEz0{t0 z*rF&AL;$N8kJNm~pcdA@2F*Yb@d8)}Q-gG<$Y1;U&iQ#OBSfIgdoD}U>*pk~qK!6I z*ziB-L|7$5A?JfdSs1Dcqb4VlQbGd5s@g~KWR}^Ku$BH6>l_E9CY}7ALzD{b-V<0| z?mQhLm*XT}J_Ki!J~+UQ!aZs0y!CCMjr~=|taN;k=<9}jr1YE1Xoko3hp{5$5AXrZr8XVP^4sL+~ zVU7<99zzdSH@KZrJYEAR9i_jdwgvM>unq@mj;V=**+cy|l-fMcrlma?ytgOE*@vzl zQ1YCwq3nLjCf`Kh2ELr9<1jMMAP}AGMii13QE3#8QI4&9NkL-9ot8WhlnpNl_Vki* zUGaw}Vw%GEV}tON>|2b7toiJu(Rha`VURa$<0ll6UT6i3kFnbr^v@{#{;-jT@>!Ii z{?BomM^6oAdyn83T(kThvsdtYON|UW%?LV_YKFsSGtUP}jo?IyToRoT`W2ZPoUo@;mCO|Zo`be(mJ9PUqV(=qEe%(HccqSggH0W2C+wuH ze6!Pc?M*oL8fW>vJHL3nN4uP!)@vH**_(7|YfWjITQ{A$zqB}K?>%lKHd@{SwYGH6)F%`4hnh3jzbtRpUOUMw5Rj_~3p51JT9fKAZ75-vkx} z2Il;W^8f1hd(3|&>Vt=Zr(+70<>N2ql~lW)|Ht5i8_~Bp+S2GX8L<$7qu_L_2Ive&q|O#73!E3)ip^j*|Plmf38oP z{G#x1u%1|CiQ!2r>h@C5;_q{R5y*TaydFP(Ti+%h-8#4#dEir*{=1CNxdTwgDO#4# z|9$Xdnd@^tocHyRZ=?m!y~qa@QJr5e)jPh7VFL*4YBh9`Rtj&{^R*!_s6V+ fJSk1|onIE#8<=|s{atGQi~nq|kLpoI$hzq-y;OWY literal 0 HcmV?d00001 diff --git a/day4/day4Part2.cpp b/day4/day4Part2.cpp new file mode 100644 index 0000000..6ab6b97 --- /dev/null +++ b/day4/day4Part2.cpp @@ -0,0 +1,196 @@ +#include +#include +#include +#include +#include +#include +using namespace std; + +int arrayDimension = 1000; +int inputLineCount = 500; +int main (void) +{ + string rawInput; + vector ballRolls; + bool firstLine = true; + bool breakLoop = false; + vector boardValues; + vector bestMarkedNumbers; + vector bestBoard; + bool boardMarks[5][5] = {}; + vector markedNumbers; + int turnCount = 0; + string tempString; + int tempInt = 0; + int lineCount = 0; + int lastCalled = 0; + int unmarkedNumbersSum = 0; + ifstream readFile ("data/input.txt", ios::in); + + // Set lowest turn count overly high initially + // Carry-over comment from part1 + int lowestTurnCount = 0; + + // Read file into arrays + // Putting the whole thing in a while loop probably isn't great... + // might fix later + while(getline(readFile, rawInput)) + { + // Make reading the file easier by re-turning the string into a stream + stringstream inputStream(rawInput); + + //Only the first line of the input is CSV + if (firstLine) + { + // CSV Handling + // (If copy-pasting to later, remember stringstream) + while (getline(inputStream, tempString, ',')) + { + tempInt = stoi(tempString); + ballRolls.push_back(tempInt); + } + firstLine = false; + } + + // ignore blank lines + else if (rawInput.empty()) continue; + + else + { + lineCount++; + while (getline(inputStream, tempString, ' ')) + { + if (tempString == "") continue; + else tempInt = stoi(tempString); + boardValues.push_back(tempInt); + } + } + + // If there's 5 lines, then board is full. + // Start comparing + if(lineCount == 5) + { + for (turnCount = 0; turnCount < ballRolls.size(); turnCount++) + { + // If the board has won, exit for loop + if(breakLoop) break; + + // Iterate through board + for(int i = 0; i < 5; i++) + { + for(int j = 0; j < 5; j++) + { + // If the number rolled is the on the board, mark it + // and add it to the list of marked values + if(boardValues.at(i*5+j) == ballRolls.at(turnCount)) + { + boardMarks[i][j] = true; + markedNumbers.push_back(ballRolls.at(turnCount)); + } + } + } + + // Board check + for (int i = 0; i < 5; i++) + { + // Row check + if(boardMarks[i][0] + && boardMarks[i][1] + && boardMarks[i][2] + && boardMarks[i][3] + && boardMarks[i][4]) + { + breakLoop = true; + } + + // column check + if(boardMarks[0][i] + && boardMarks[1][i] + && boardMarks[2][i] + && boardMarks[3][i] + && boardMarks[4][i]) + { + breakLoop = true; + } + } + } + // If its the lowest turn count, save the board + if(turnCount > lowestTurnCount) + { + lowestTurnCount = turnCount; + cout << turnCount << endl; + bestBoard = boardValues; + bestMarkedNumbers = markedNumbers; + } + + // If its not the lowest turn count, reset marked numbers + else + { + markedNumbers.clear(); + cout << "Too low" << endl; + } + for(int i = 0; i < 5; i++) + { + for (int j = 0; j < 5; j++) + { + boardMarks[i][j]=0; + } + } + boardValues.clear(); + lineCount = 0; + breakLoop = false; + continue; + } + } + + // At this point, We have found the fastest winning board + // Now, to calculate the points + + markedNumbers = bestMarkedNumbers; + // Iterate through board + for(int i = 0; i < 5; i++) + { + for(int j = 0; j < 5; j++) + { + // Iterate through marked numbers + for (turnCount = 0; turnCount < markedNumbers.size(); turnCount++) + { + // If the number rolled is the on the board, mark it again + if(bestBoard.at(i*5+j) == markedNumbers.at(turnCount)) + { + boardMarks[i][j] = true; + } + } + } + } + + cout << endl << "Marked Numbers: "; + for (int i = 0; i < markedNumbers.size(); i++) + { + cout << markedNumbers[i] << ", "; + } + cout << endl; + + // Find and remember the last-called number + lastCalled = markedNumbers[markedNumbers.size()-1]; + cout << "Last Called: " << lastCalled << "\t"; + + // find and remember sum of unmarked numbers + for(int i = 0; i < 5; i++) + { + for(int j = 0; j < 5; j++) + { + // If the number rolled is the on the board, mark it + // and add it to the list of marked values + if(!(boardMarks[i][j])) + { + unmarkedNumbersSum += bestBoard.at(i*5+j); + } + } + } + cout << "Unmarked Sum: " << unmarkedNumbersSum << "\t"; + + cout << "Final Value: " << (unmarkedNumbersSum * lastCalled) << endl; + + return 0; +}