From 7af13c02ace10cea69b1bb32f5b2a5b2f6915b99 Mon Sep 17 00:00:00 2001 From: Kaitrina High Date: Tue, 13 Mar 2018 08:36:19 -0400 Subject: [PATCH 1/2] done --- .idea/misc.xml | 2 +- .idea/workspace.xml | 280 ++++++++++-------- .../com/zipcodeconway/ConwayGameOfLife.java | 102 ++++++- .../java/com/zipcodeconway/SimpleWindow.java | 4 +- 4 files changed, 248 insertions(+), 140 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 05e1d17..5ba6911 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,5 +7,5 @@ - + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ce6df6f..d0f55ed 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,7 +1,12 @@ - + + + + + + - + - - + + @@ -24,18 +29,12 @@ - + - - - - - - - - - + + + @@ -47,12 +46,14 @@ JAVA com.zipcodeconway.ConwayGameOfLife - com.zipcodeconway.ConwayGameOfLife + com.zipcodeconway.ConwayGameOfLife - - + + + com.zipcodeconway.ConwayGameOfLife + Constructors Methods @@ -63,12 +64,22 @@ + + + + + + + + + + - + - - + + @@ -76,16 +87,6 @@ - - - - - - - - - - @@ -126,8 +127,8 @@ @@ -138,7 +139,7 @@ true DEFINITION_ORDER - + - + @@ -260,7 +261,7 @@ - + - - - @@ -525,6 +524,12 @@ + + + + + + @@ -536,39 +541,39 @@ - - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - + - - + + @@ -584,42 +589,83 @@ - + - - + + + + + + + + + + + + JAVA + com.zipcodeconway.ConwayGameOfLife + + com.zipcodeconway.ConwayGameOfLife + + + + + + com.zipcodeconway.ConwayGameOfLife + + + Constructors + Methods + + All + private + + + + + + + - + - - + + - + - - + + + + + + + + JAVA com.zipcodeconway.ConwayGameOfLife - com.zipcodeconway.ConwayGameOfLife + com.zipcodeconway.ConwayGameOfLife - - + + + com.zipcodeconway.ConwayGameOfLife + Constructors Methods @@ -629,39 +675,29 @@ - + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - + + @@ -670,22 +706,8 @@ - - - - - - - - - - - - - - - - + + diff --git a/src/main/java/com/zipcodeconway/ConwayGameOfLife.java b/src/main/java/com/zipcodeconway/ConwayGameOfLife.java index 0d3b15b..8557388 100644 --- a/src/main/java/com/zipcodeconway/ConwayGameOfLife.java +++ b/src/main/java/com/zipcodeconway/ConwayGameOfLife.java @@ -2,33 +2,73 @@ public class ConwayGameOfLife { + private int[][] currentGen; + private int[][] nextGen; + private SimpleWindow displayWindow; + public ConwayGameOfLife(Integer dimension) { - } + + currentGen = createRandomStart(dimension); + nextGen = new int[dimension][dimension]; + this.displayWindow = new SimpleWindow(dimension); + + } public ConwayGameOfLife(Integer dimension, int[][] startmatrix) { + + currentGen = startmatrix; + nextGen = new int[dimension][dimension]; + this.displayWindow = new SimpleWindow(dimension); } public static void main(String[] args) { + ConwayGameOfLife sim = new ConwayGameOfLife(50); int[][] endingWorld = sim.simulate(50); } - // Contains the logic for the starting scenario. - // Which cells are alive or dead in generation 0. - // allocates and returns the starting matrix of size 'dimension' + private int[][] createRandomStart(Integer dimension) { - return new int[1][1]; + int[][] newRandomArray = new int[dimension][dimension]; + for (int row = 0; row < newRandomArray.length; row++) { + for (int column = 0; column < newRandomArray[row].length; column++) { + newRandomArray[row][column] = (int) (Math.random() * 2); + } + } + return newRandomArray; } public int[][] simulate(Integer maxGenerations) { - return new int[1][1]; + int generations = 0; + while (generations <= maxGenerations) { + displayWindow.display(currentGen, generations); + for (int row = 0; row < currentGen.length; row++) { + for (int column = 0; column < currentGen[row].length; column++) { + nextGen[row][column] = isAlive(row, column, currentGen); + } + } + + copyAndZeroOut(nextGen, currentGen); + displayWindow.sleep(125); + generations++; + + } + return currentGen; } + // copy the values of 'next' matrix to 'current' matrix, // and then zero out the contents of 'next' matrix - public void copyAndZeroOut(int [][] next, int[][] current) { + public void copyAndZeroOut(int[][] next, int[][] current) { + + for (int row = 0; row < current.length; row++) + for (int column = 0; column < current[row].length; column++) { + current[row][column] = next[row][column]; + next[row][column] = 0; + } } + // Calculate if an individual cell should be alive in the next generation. // Based on the game logic: /* @@ -38,6 +78,52 @@ public void copyAndZeroOut(int [][] next, int[][] current) { Any dead cell with exactly three live neighbours cells will come to life. */ private int isAlive(int row, int col, int[][] world) { - return 0; + + int north = col - 1; + int south = col + 1; + int east = row + 1; + int west = row - 1; + int countNeighborAlive = 0; + + + if (north < 0) { + north = world[row].length - 1; + } + if (south == world[row].length) { + south = 0; + } + if (east == world[col].length) { + east = 0; + } + if (west < 0) { + west = world[col].length - 1; + } + + + //check how many neighbors are alive + if (world[east][north] == 1) countNeighborAlive++; + if (world[east][south] == 1) countNeighborAlive++; + if (world[east][col] == 1) countNeighborAlive++; + + if (world[west][north] == 1) countNeighborAlive++; + if (world[west][south] == 1) countNeighborAlive++; + if (world[west][col] == 1) countNeighborAlive++; + + if (world[row][north] == 1) countNeighborAlive++; + if (world[row][south] == 1) countNeighborAlive++; + + + + if (countNeighborAlive < 2 || countNeighborAlive > 3) { + return 0; + } else if (countNeighborAlive == 3) { + return 1; + } else + return world[row][col]; } } + + + + + diff --git a/src/main/java/com/zipcodeconway/SimpleWindow.java b/src/main/java/com/zipcodeconway/SimpleWindow.java index f315e00..2d04f16 100644 --- a/src/main/java/com/zipcodeconway/SimpleWindow.java +++ b/src/main/java/com/zipcodeconway/SimpleWindow.java @@ -39,11 +39,11 @@ public void display(int[][] array, Integer n) { for (int j = 0; j < array[0].length; j++) { g.drawRect(i * BOX_DIM, j * BOX_DIM, 10, 10); if (array[i][j] == 0) { - g.setColor(Color.WHITE); + g.setColor(Color.gray); g.fillRect(i * BOX_DIM, j * BOX_DIM, 10, 10); } if (array[i][j] == 1) { - g.setColor(Color.BLACK); + g.setColor(Color.pink); g.fillRect(i * BOX_DIM, j * BOX_DIM, 10, 10); } } From 678aa9e796e091eb95d44ea999bf9d214fc3d747 Mon Sep 17 00:00:00 2001 From: KATRINAHIGH Date: Tue, 13 Mar 2018 08:41:12 -0400 Subject: [PATCH 2/2] Add files via upload --- Screen Shot 2018-03-12 at 10.26.42 PM.png | Bin 0 -> 51028 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screen Shot 2018-03-12 at 10.26.42 PM.png diff --git a/Screen Shot 2018-03-12 at 10.26.42 PM.png b/Screen Shot 2018-03-12 at 10.26.42 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..dd0fd56e32c8fc210359c87f224b2cd1f0435a4a GIT binary patch literal 51028 zcmeFZ2V9fewl4}XNRuL{sI(wO1tA~;N)4iP#6pu66cmsuodAJ|ic6$RkuFu~B8b$0 zD2hr|KtYO1j}Tf21Oj({VeP%vKKI;x)_wP!_s)Hr_4~QfzB%V8|1sv6V~)XZ=g(=e zu^eQfqoZTf(LQsLj&4UU_*cTT6MXX{DN2BjZr5Q)4UO|U8XAc69&Xniov+c+Y5x|V z$Y>PTx-Vn`siUp!fIFXad+5xRF(v|mFfQ92i#p9LB=qD<%vpxsTlX0xYQ(Qvup+|m zo0XL@EpMRCp1sV&DsMC-LhnVYBe&O1eB2DK_MB+1S6J+LM30h7mgKtj_y(OF>*8yf z$Mhd{bXxVhHA3iwQ9I=uQ`=(ht!HNo(>?r7RvQ~+b6^`QNc-5=LESX|T&>K^NGEd8 zL)`RL>)k*&-M4sQt_gb7eX1OA8Jo!Kwixu=;!qHG?>d;1BLN#!l)cuHEvQt*mC z|9tE9{HU@+Jk>`Sm_@RVEf;M*=i9U>f1cCqne<9?EWG)u-Kh`L36Hp?Y{f?xUwwXe zoxxf`=#bCf-AcoLQkhVRv!9Fh@c_A`}$eUT~k5baG_)G%9b5c z5m9^d_lJADIVGd9(e+4K$NiV|^EV6CcJiX#AN@9kGE!ERd&@fR!myTEht5@~prbjN zFEcEt=v;SRiEdkjVQogsBFqj7hacFO*sskU_WFpk^mFG{ck86X=*IheKkg}GEt9Su zlaFXlc$>H5ROsPHdt~?yC-UqmddDg;%KS6z$J_U3{pn>imX*$2?$TH`6GloH^W9s>`nl)X_v8b==DY6icjx7#hpBVgz>YdUMKIdYsav>NA=h&! zndzMoJEuYzf89ONEX*~ga(d+f1H%YXTN!cS01tvVh6{YMc|6Nlc?OkSr+`*H#I1}= zWqYN*Z(TAziYxMC0-bqRpT<3Pq!y^ z>1zcrz6^iAjD6F)a93#f)9#ixZZ+S;=#+Ick5f}3*~po;hIEz7JhvkoAC3`MC3cyW^D0TSpf(!oMHIdHZ%Jr(#z4exdPu zl0WXf6js%i=EA*3=xDRVMl$U_dYtj{?T3fP-tDyGy%@0`$)|Bnh$otTRKEMp5~4K5 z@W|bZ7YshrRifTz%|1~(7}@gpQkT~W9!XSq=e0@23YNj}-mLsiy-Dv1?jYQVm@W_uDId@$(|nG z(fnbKZN;^2pIRvTP3@fOx&%(M^Y9lgW#(hAL{2MS+4(r>y!scNle#Ba@oBEFln%wb zLzr_7j#MR{`G{y2OW3Wjn}aju9{+2t*I2IKa`ehY{o}H@9Dy<;2wFzUKM zcQ);+&V1hM3&)SJ9wi)EJ8FNFe8lZxe7wO!m4}DLSs(HoDZQlnB+$BAZ&lbh^o9mo z&bi0BPd_}VePZx=;IqPsgKf9Qwe<4Fx)Qny9P=GH90ZLf#chqu#4Y1j#pA^*#Z8T@ z3u2AijH$-?Pxn1Bc_Ls^U({cyY4ZF$tC4MC+oeJyr97WY#ptw>*-U}l^kVD01}*9> ziY!~~-8-6PJ595-ZEIT`Bec98xaxA`cus~-Doxr?4JMy4&@)K5e)sy*an&~YHdRSB zN&8}W@gwti^S70X2lhALYPxDClOW43<0`G{$m_7?v{;dNgV@)QMYXnn7@5Itn15y> zq}@BsuttB-W>9}HzQ((TOmbJ@t^W-pyChFY>ml&xo_g=J$KI&*iAMJ9WHv>fB13sj zsv=ZPlX>?aynXQAu3p|$`AIpu{geaO_m{{kU-@EtMqxpQYk#r4qT^EP(>F`@*Jb)- zI;7VgkRqBN?Nq?(kxM*Nn8xm!Mb^|iW(*3p-?p{5UDLzI@!L@<42Wv}Y9?0yrWqJEK!v9pS zv-852cw37WY^CqBj`HCv!F}q@SL!q#YlJpCY4K`B+UEY0JDhy!-lxEPOulLRi+1IS zw)QH^Nhxm2eYGcQ18;hJ?ya5mow+INsdsZ=(&v-aCzbyCkJLKGCgDcg2CeM3T85?_ z${iZ%!2w_WuVH59G4kymd~V+&Z${M_)O{Tqs8b3`Qa!3_5u_Lt5%jgexPgPJPko71 zqNY8vOBU{ z`QrY|JPcW87YegxwJbCzG&f~pPRd}ej=erC!!F}_)%@zzvro3<*A3yU_bdc_6^6vE z4-ThhCQFMxR{S1x_54-;s}niT;>OR_Jj_WH(Jn9)6Fn?K)Su1ZQ}%Bgojodb>3;sV zq#LKa$3L@vTFSd-prmT$tr$T0zUQ>=)%WQSJANJU*;}g?A73L=8O8nX@(2GW($A9d z<+(clvATT6A;&Stj_&$Trn%&~pw+$W*6Nuyp(DncW-SR1$d4{Osy)v5oa;Heoy4_# zJ3;OnOtN?EJ$89sANRWFeD+ONyJg2Wx$2-F?(^rE4?Plp+VSaj*e{c(@k>08rVWPJ zYa3w)m}S{Jj53agrc28X6 z2Q2wkCqpgI#eLVM)}MDal-146WW7Gic6R4k*82ifE{dMPGu>w|SH`cFzOhIc(Sz&t zCn!o<;g_74t46Or4RSm?HF5mh*EeW>tQDCsQeJV*<%3nCo3*;7kmXI=T;lt|vFR~} zu_zM*GvnIi>KZ%JfZV4(%O~z7U&<58O=@0vTD`8JkggL z9CCs_YIU3UR%0TxrnK~K#PnaT4Dw#DX{Y2+B5i+0$tn2B@lkC*3f3Ns;FXAS;zwg| zd1Ot#9%;Q5M>WXG8@e==FCb^=))0W{o^rAmOLtV_#V)T`M|FBDxPh#-Dsdw_xJ~ZwyZPfjG5(TiXi0i)OO4MIW|S1k zJFnn6nCkI-aUZ$&`M~8W^k6Gq*4?*BKxCP|5ww48 zZdSNGnj>FHgi}_~JS1_fJZ0=ut}}kj2&ls{=%0 zZ-Y+IVCn19o#@2+uAt|H;>CgSjmZs0V)-yz9db2u?Fw0o93`2-rKZB4H2-MHe~^cO zWJ5ROhj>2<@a=i_#(DJuT_~G@-i{HH6rF?4+^T*Y|K+{}2$y<%AO65sk} zZ-^C^?lqDQ0ZYFi-+Z0@5zBD7uwSYmDlJvBKU%vxm2Ypulew1DE7B)dTIlF5?w~`z z4h`LrvXc@2E2L>?XXa7Un};9%_KUry$6V8;c+Xt+IxoV}-RMkns~tEwFuQAC_N1fR zCkp+e*SRP%M@L7W=4fQ*WoDqSXzS)8b;Zu@>NP1p7kBV99i6hDB6#a^&Fc!n&&Ao* zQ_)Z55bX&?@E-aac?dy!#LG$LkeR`Ggoc~PHH4hh2`TAAsw@ZuLfOOay5hw%n!gVR zpHvPxczL-iB9XqnzEZxjQf?mhNSRZoP9dd_Baa`K1W!nM`n!5v@so7*6yBQTZ}XhF z=4tEU=ivf+e_upA!wn$|F=cwH9yBcR&w?Hoh`s168Z%xBPEUe``lot zGW4zDc}Kr%&SqyEU9P!$f;Ci6ojk5gd;Wj=<&PErH1hJFMxOYGk$?K-_mRp-h=D&b zv?VRtw?JH~EXv5gi(Zvw;ih&y&<3C58ABuR3WHPw6xRp-cVz1odat{8m$YgU9UY2J z=Zw0MAN{X^3t2xkJw(rw?_d8d+q$dhti<$gXXDBYgIn;0ot*EKsoCPOOlQ)yx%@@f z1cTS--{Lo#H<>t-tVcFCGBy_lH`feWa|<+B>X&b5nN8|JU%$ zkgvqDC+2M0M9i{YiFZn zb`8tkwNryGf1?p$mhYQQBk{Z>!pxMl&@l5i6a`T)DdC^Aujs9UE=J%de~E3+L(-3nR;XOidNNj`=Be3$3U2mh)sX%r{%p@eA%;R zpnXw$O|-A3O}*?KQIiD3hsrcZm6hx>$v|=Amees8CJWM%W>Ibrmy}zS3JT9Z%lI_t zldjc|tnPJTzvYclD9{Q4V(5Y0@~$kSz>}GBIJyVQW5XPqFoD@Q6EZ^=tnL6!&AwPv z?#8xOx_WXJeX6~n0%+rWvX8T<@J`R+&NGmf65=5({p1x@iJFg`7B~7e;Z^mYtRj7J zAcg!#CQ3>96VH;-n9XAOsGi=GAtX)vjf)Jf9KEe!&q7BQ6>|1|W)Z==S>(48zx7&_ zTNm5mr}tu8spW0*R;9yxHU=+v6kGJn4oBRllHCk~4*>9lX8?xO(xFpm>b3^Fr zmn4bx*tN4|0x6|7D&rG3Af^$2*L@7?_z@SNl4XfoSA;1GCgNMq4!~N8{bq+tOG~~4 zml8*fX@fd1p~_}Y@mTFXvRiv+ZgJD-mEop9=TV5FLuOHJ3aeJUgi%t@-ZdgAtxgxB z1&(21>Q$M@l7NZAS~Dx;l9YcbB}GNly+T%_;e=hvj97k!WlI9+yb`6cy54#7(Pn8KEw)6+L8 zhCG4e4l@<)b556zYgYkt*I3)v7FXH5`!;R7uJ_C?>J~{}bd%<|;{oF1^WA3jn8D)- z2VI-4ep(Z?Dz$0tif!$zkrOl1dYiqUW={8jyS{mmfq7|MG^MEmEHmQtgNt-fsR7 zH0=rCXL&iaoZzvrLWY!_!TXin(E4lozz;Ap_u67gkhtQ`Fd!zBI5`rbPeU&%Lxpl{E}~ z<7fVM2vAtf;GdO36O!)@U`?lQk&-eBA*VBfp>LvKJbgvn!y9ijjqe-%%{6%lIfWT~ z%CJq`|0j|IE;q?CGob7oIZ+_rCT*YbKSVh|Wj3d9_cu>xus65PnLisElaFBFhO8(X zz(*^}a1nCZofk3>Ik5EdA1*#j+rH+|uv?XBG~mKt0YAIn=oIbyPD@mot14m!3ceZ_ z;c&u4oBmsx&$l^)Dii4Pl%$!3pAf+UtPmUO>!(wXAZVKd^DBOv zy+s=*!1>P{7HD&5oCel5t<*@N%`69IuKdjc35|aUMvT37-Qvug84PcEd;nrCNgYsm z<$mwhFAZQWeAR-^mN4SMl6&JgAg1YXj(}@NO-CV`*v^7o{y1|Gg>!YKJ`nx)F8n?0mTYjCdv~8 z7ONo@v`7(fHLudC!j!+p%X0|_4U7az)T#(ffZj8GLmgPi%melNiO9KBfO;dZNJXPt=I;r!;J70eJ|U ztLo8I;L6Ea^tS6$Q)NK?KbfA4NS$@F)MtPQK6waXCfK!b8G4U!4+UU|OlL0{B>a=< zYZc)8D5|C8y5{>#_B|d>2Nm{kX=>> z4C)H2h+xY=Xh}dl2j9@v9vQ{`CB442>}&nd&z(6}0EhYjTfzIULi`hVgjH>c{3pBy zVkn9?`Y!lF8VAjFj|Konb~nhg(c#`Q=RkP;$46*N{L@;KkXBS&Q3t`|jc}mHFrhqX zl;Fua1DbLK4o5?h{l`aqAS9}~`=!vpuY4{Of)@EDy<-yif*XKQ@NN<`DrjU*o`x{L zR1^e{e|+Q%B-6FV?=Cbo&Yi^3?BgG~rj5ci4{VvqO&E>Ee|%(HFsPCLD#6stzP4i; zsy0Zef{^Qi>0+X(6T%mGlMc*~s9&&#k2y!K()dnuuqTg1uO~hqz^~}{DZS(qL|Zm) zSOo4cQ>BLq0;kWPMYFT8R~9tOJ&)i&(@kQRdi$1#r)+cIFkOOSNTU|;g<(%1MEz+_ z_Cr$`#>AgL!&$!shr7{zIE)&}4za1%cnHC4=Dc4xL=QVlPN;UxP}A7T$`9D`@DJX` z1!m5bBY;RwZwRqIN9xW(gflX9tBY6>M?3-pZ_=;1&9m98!kGfW;mh}4H{^x*S=?xQ zyE@K`69m-%9vd{MvfrtqIm1kp;=LRKzhz_;Qp#pivVs0s1|2R67!&&i2)}=Ujn9xN z3_PCO2Z@(&k2YhBSAFP*`S~{tzwmDqLdLiea~Du$LqfWckNyj6(42$Po*^jm$A!YC z5V0k`?x$26UWQPsR(6&Jf_)Dhw3W`#%;_(%L36(UvDS`2JJ?@fV;b^0e?e=xkSqEN zY|y;gU(nirD)^`|?-(KVhcwFI?3hmZOb}J69U#=04OKlmg2XLhUu-%{z~I*buIy6_ zRsf(pJz7k2r|;naoP$rcAK8`*4F2B>3@;F| zyEvvW*H}&cbb*t8|IB<3J?sidE9@%ZqwNdYASO}aKJ-UyTO^J!D^>I-K%oupIB=)u z`Xnq~zPbdQ&!xzoEGAASa1^<6evD>EC`G1x!Xr-H-$Pp)W3Wn3tAzqI`9l!SxYt;J zeYH3JA~>aZ6zw}3f&!;1_E7Py2)$eVq*cf5KSj2MV3opiLp4yul&O#4zx|2yeqYJl zL*SSn+EyNc{llRyn*G%jM(oTVfvuS_s?6GZp_dj0T?2NTT4MUb{Z2kG=X}1xv%3+T zAVJZb`F`s_1aT%S1p9kj+gJcrDTu3bg<_i{+>l`E%kM}i=Ym*u%uMn=9j+|IhJUAV zB(!faL7b&C@BSmKHQCEqWSUmz4MlROM>N62OIm(E3bxRrZ*N?H|HBE2#+m-TKTaI~ zlRr6WRqFhm#Sok)4NsYbA3`CHAO2 zDwTufWx`ITOnV5*2sku zG%Qv1X+a1Rrx`dwTRRPz=#9kDBo#D`pAKrO(KWGxgbz7rD6oZVRKQ`-j()C>Rf=@} zXcL7qk%JZ~0}b?orTdbrdbn0ZX#8eSN-^lNl33$Jntrw-Y?UTXNgN8qEC5Ki^i+&= z%T!;FHE%6JhpPlfn#ysPO1LTws6+W1g+o05$PW;|^cg(_C)nQs97Zm3#B&vK++3BW z*$z1UO9HqT`&&rj3~5RsKiw=KGZ4ftd(&cmKnWCDbMNZnVuFJR=H#|0{)s3lFnwm_Y!{swMDUx{ZViV;Ym0>nb^+*mu zQW~Zw0y#`Pyt^Z6mb5DksD3YOz%66*D%ISi3_J6qCpsili|HaQX|tbeazj~{tZ;km zD!_XkIM@$2u9M1bs6#DE^x!f~$O>6@Mik;@1Q`2-78%2_|F?b2oPL>&%L5a5GrT~m z4YmJGp%6V|6lczH2+z_YomBsavu;cu-hhvO!XOWYTP0j;qSQzD!oV%#=^AUB-*joF zwPTA$0ckEtF2o!PH&fLS{0ysdvWZd|ZmI!e7ZB3EMw6p<=Gx+s!C}sXaDe7HO_0sm zvDo+F7Ab(22nTnAcf9Hwx#FRN1&~lqh9Ed{+K8Bophj@NGmde;MRMXPy$k14J{|p@ zwstg%JaM50FLaCt*zrgNI0Nq-FHK}1kmZM%!Hpiv6b2_Mt`2z#4o+<~wVJ-a3;o5g z>gF2?X#`H_ld@)GKIwNG5ibO-Ergrx$o2}>Fq47~#JnJf!}bx4WbGxo)Nyla3-0MA z!Ssx7ff?Zfh%JqW#5lwNnpuFxH^NDTCg$E!tGa_+?sH7);-JWv9;N{s%+Q+JxLalk z92QOixFX&py!F1K;Q_zHh-gUR3<*!*kPlEsA*kz<)`!2jjEvlQ!cBL9RaJvD|qaYnzf6NSDHGd9;2s*Fb$9n7nGvxjJ zLQs^|uKJ-JnptN7%}2_p%d5!VQpUq(c%S(j+Ko-Z@Ta?=wRbVoV9EQ+Lk4^t0*=Pb zW&?A%4D0qY4a|`lUBY9Q#RY+5jt;l9m>p2h_~1-9p!vMb+RP%l2+eVh2FwuDLg#LW ziQstcjU(%&KdfmQm4`&&c%-AM;t6z7|Q`;=rp9|Px{7z)r@=w-Y*_mBVN4d4JQ{u^ciX@DBfEz-o(eg6r|5zxr zMA2W6G3~VW9}5Km9VY*RjA>`xzaSLoDE=2@>;+{C{(?}Tv*cfp@m~TSWPrfy7NW?D zLH$&1>y@`qRY|GWj_KWB;N6=$RjoQ6LQWJw^b|Zcj4I4Hb!w^TRwEfUwdl7{yXLgl zHz4>Uome~Z$!hpYlcI_a3Cn5} zI6q6tTDN|vMw^@-HUnIVk8oFK4(-VvD}PX6VR*5A7`7K(SKDv|&ojmWQ3_C@1d`)} z+9ystMZH;7HSjjI1{D%RaI_{qq3jA5HhnliVg2?6Ba$0n^Nhh`Zc z;IWS}PLvXj)oV7cXEI|N^@q_-HC-*;EL%WCWoDxm=4u)G?CL8_Yw-6mQ*wn`BT^t@ zu}KJiBx*KX8UF2W;r<*a&W`gOW7~-@0c0V#j--%cl-FTpLKs-YBgDL1wbHuZJc z7pJ!@4p=E39HAC1)XP-eCf=`t_pA2KceV@%FcJ*Tyc1QoY=VZ`;}^mE#f~p5e~a+p z8{kyg;l|KJsY{cX02go*8PE38?vNlR)n32~focyd zID~8*un_uPXd#WmfVtIT+U?`NGNS-p2Pa=P?)yxQf&zujm7h^+8$G3xAOwK?vOTLv zv-X?dd0jI3m*W)H5K(QqJS)3kecagx?e>P)bg$kCuun;~D`RgrR;_T27v~M4 z5%23RxsVOG$29s#8w!|6Op6|kbuw7aHPOrr=+r0TXNRj?3Z~@jeeR3Hdx7)pOUL)n z(q=f+n=v^ar^Ti& zKT(j19zy=)rxryI1@9dm&ft&Ql&l}0j|6x3sInJZ*9IuF%pW%C%G&v%7t5>Wj)0UkcRVa9t|KSkQ zv3Pb3Inx(ZKebw*HF6YeikHMlovLvh+#IoCt}qvFMCUog>Oh@jJJGXtw-#^zvYtoF z-ZkW9PYb8=bfUJGlDKAOF{m)|IpKLCAy8UWaN2XyoB;$k?aU&uJYIa`xEHlnFL?S;*-YZ-1BqpHd7jPSwTY?F#^=D5+P4vI z4(17ZMeXQ>QqBiiAOVbtYM5%2j9L6i0M^(KI}q-=AewwLp5?~S%~9hj6-U zZD-Jgsg`tYf*%5MzI`Fa7Y0O7yXFU_I^hjG+8gq2z6N(oh^F5`nYZ(r=&7Igsfk5L z&Cr$4zlAkgf@LfhovV_;GJ`O=Ga&wA+~VdiSmso|oByAdp-8&mKt(m2z-4kam^nw# z3qMUc3`Mu8v}LSBH2PMJtIKt5{uonpHB-Xv3med5 z8OYLsHFWQmFsukxz5eqWE*IFi9YEz`)&Ax>10bwL-OC4nuu8W00OIv#nO!RWGc2o= znkPU`j|g}V?wgx<3DD2uc3vG2b_~>lxD2htK6YxlS%F^o1IpfOl26rPk^ub)wvV!( zj%v7a>!^O7;C#UXsfBxPEwH`K_yBHc6_Kuc9UzcG@!wApOT6amqKN!ZqX`} zVgv388krzRrXWpStGckt=KSKyz8m&yt|DagLhZ8CuGS4~&ypbwJ`SRSiF9Idp`O}g zH=`a$n?+Sv3U?B~GH=obbzqLV^BkUGKlW(&RRm~KQ zW;;4+;Y<&JoOgV}2M@eo-x=A~*E0d=2WKr2RAwn~Fuw9p#A9HDG*}|+{aZH~Rz#=y z?@NrV?|d<&dP(81nW2hxxNun!xbOcpN#IFWHgX-z<49nSCj~U})4T`dKiIhP7&p?M#M9>dymxG63^5f@-KcP0pcbRDhxl-v)qG zD!9AEPLB$7`YxQWmQ)BT^Li54DAs)l$H=-hg12zEk7xq5l7&O4rPS{)w zmjWCZZfY1G@!D;~fVbIYb8*x7SoLP?a3%Vu&N8_$FPIA<4Njvf+=7{x-9hT6y+Ix{OGe$I2~?NYJ^P0 zJFUp#%yCQPw$)4@>jLg10O)k@^22>StKTa~3D_^9eJP+|m&r;q1hoTf%X)7-UJMu7 zMPWC^^K!W^lV?~FY>MQ`tl(i)Gz$Iw5h3@{b)*9T$l# zy|zC=htj&GfsGj0wVjjyO>fcS3*S9OZ#9MgJP!jwM$HsTZ8Va=yrgj#;t{i`2+cBq zMNc_!TM7E29Kp2z&=)l@bfHXuH)5;5397WQ{RE~3t3ttSAILrTrBu~tgEq;7O_+}z zJ>XUml;YZUI_=#1mU2eiQ+%4hENKt3pwlJ7%psvPP5>g~b zuL1RO`Xzyls|=^|ba0k2yRG~Cq>hqqDLft2d_=VstSvS_w{>oSTJ0Ji00JIdaw*RP z&qcI;f6{urYbUN1f*sB$80+Wr0EEO~z9dknoPM*wp!YM?rb6ZvpWN4D{Rrttkh(i( zJ2*NbpRLv;1L|bK9xHpUvNgFz@PWKoShiToSzfppxB`5;v!A;9{i}>T8UnkGCNPhd zr}CFCkwd#$M%_Q#J$DFgw1W%_Rja0^tkg12fLfG4f->)plRaWi(^%>LB)-UG=Y1}m zN%{bYybk1vF#ES(0<8e*aR)%qejvZ!&R~#3lQ*vULR?!G8!Qg8j2$x@>vO;Mr{wIw zeFA^*p$Ga~0Hsj7pERg6SNUm_QuK7K$-&m+1E#Q5 z>3bti&RcE2i$1%Sfqb|;lfD=bBwNM5q9Ffkg}2mnr2ZIV_Ets7J0?G@9iK6+gogm9 zHN;Qsd)Q4X;e8Y6+kZV~SLqaH@iz-lhLHy9m9l3^vCFNMVrvv*iB;z{<4 zw#vUhjHNgK?Rk&Ki|WjUS&*?+fRmrBDn~niDso5{sscnNj0l4tPC_?(dEpy)?=<2M zYJ58*C^!PuL$q4VwAKLk*^$6`6R18m=oy?=`Qiw!>`tWF1f{pfgW(8w;7{v!AkB!| z&uz=)FX5oExJl7}^2r?c?{z+n>!3)>ZHhT3BXN-0O)%)tpk1xMv>p-Mqy%pg(ZfSN z0ns^vKCNMwCWad1mT3*AehrPw%G2wC1GnR-E~M^`k>cwM!BZr$fJ?NF9O%N4__0&N zkMS+7<7dtUBqsDc2YAz`s=8{SO0xve{O8;9OQcO6lZQ(@Yf@VUavA zG^dY`7>WS?q3kwfy4N|r^Yd+W2U!3Mlx%Zx^UE97B(?w}Gy^TFLkFIR&9O&r^#y^v zGc{rSg@W=Yw`^Zqut^;QITPZ8uiN7I&lCqAORr)FgbI2ilcwCdk_j zUf**N+L!2Ir2urG+;ppg#0p?mDz1|eqT}}p+xg?P4-TNKPT|09d1$tfMo?!(Nqf)- zZBQX74p4OUmd}e;(hA=~dEM3rb6_NrEt#~MPmrbuR_68-x_|&If#%*>X$F-omiPh8 zf44U+v|%!bc%_F00A|x8$y=*Z!3U~rCq0dzFTmh@{p&!1B>3nGYEs+;aXYu3 zYXCMu{Aop7$Q>#%A;Z6AK#ws60=rhD^WW+a{RRp?hn4B74%1f30IVCH9@_dq2DVD3 z)Y9}p>(vVuS)i?oa4!V&N#IkU6AvA(15jiyoUui#FBs%IT}$f=;amY`w*hO_+M*}| zJQuOzN;}}d8-Ql;7Zzw`(g^pA#!W^#y3Nf?k=glw`(sZtk1pK$b<#t`_gs$f?Bp56 z52+5zcPfqCT!&98)tYjnlDz=}&j&!NxpslTsSInUSKpxmp@LxMU|NLC>s> zf^nH8Hf~a*Ht)$3R}qQ=;c+2w5d@A0zA<0Xl&pMggF9-3BZQl=?z((6wX4Y3n8RA$lO z=f~+isJ)nMl1aNJ5#SBY{1U$&|F&y0YqblbMO_JilyL$=<%KO(jBwCXY|ao4K*+#F zgsgqg{P7K)ELiN@9`6f5c7zFl$4qexputR?jKby}(GZB7;os2mToW7J>kjpvC3SiL zt#n!dM~&TESY6QwQQhB#xeMXNMtEeSJmw@haa@a#<~e2s@o^GBYDdBrY#Rk(OHKEB zWkn$BcU1eTd2;Sh#8+o z`X@qgh72<#cMHsOVRS*#S)^T%Z8d5(Qm+Z$oJF=p^(sxguZ5U!hs^KT7Ort>@X65K z#rE0|b@H%TB=2vY!H(F9p;M+qkQWFM29{_uwFU8YA(Y?)2Ney7y0YEw!C$pg*Yp;% zN$u4OQVP9bPlFV=sXRES<{pgTZ--{{H#eo|+8|~4IW5)c<+K9xEP;Xax6EXTg zX_1)T#}UdOJ27MN%4P|s=20ItiV5(KWJQgOxR0Slg%$7Wqe@&p>5W(QXj9XKINld3 zaz&%00B*lI7wN;gLM{3G-!<MQW z7@UERVcxz$OKD+zW44lbSDnoTFc^n%q_Cf@xiUaquZ#c2wQpSPRDW4s5b%DG~8H zbb`Bda=aacIbL6WSZts-}MLqSAu zb_%X2ssy|S+$kw7M>y&CWv@Ox3^vq}UBKDMewO;CA)x#&ahySKh!R2fh^TORG=rad znvzQpcG7^Y2%TP|3gKS|cOUrlD4JyKQXw!XVh20`c$M%9if6cNTO-hBr~+-e_8?Zt zckxiNu6Cz|g zfmiFtgu-L*4t^pzV5gzz;-p4n6J=K=D><5xVLIe+0 z3=1yktshR4Nn^f@?$IQ48JzCb>I1L!r~6DVN6Y0Ay4F8KryuvbAa*)%gJ)KVLts>I z@s_9?RWsxxIpx?wMV-+=?pAH3-vLL?dIA80|;Xj8!C-WThCn&(|8iws+f_;`)rxHt|irAP(!kA{r zVe4F*I`;bZr+ZB+yD(mH(WEZuwX~CDyw5IT3bVD%GN%fS*aY3}zZ38-lySAY&ZgA@ zzZHkMwFpk_A#tyt- zcWhOVFlu7W;Na@vL1e}75+$0m;kQmKUI#gExJESp=(XA9Z|T_=tk719znTH14^Xf{ z;0J~|^Egx#!hLob>B?o-24tA2_pwjJ>xbJHysDL$)B z_cUnEyW4Ya%X1q`+jg|=L;kz?&k&(%@K>W1*^h@VaGvvF?O=_;$=Fgk( zUwEgO?)4JmMRM&RakG6?XZTC-Wyfy+m)PeEl?OqRlCMaC3%Sv&nN;VW+h?lXny7Ov zri7doaV}U+qanY|-%t1Nr1G+XmxT)S|Z z;FQ9k#Mi@C=3W97)``Tg-XLqpY{D((#y&;bYmO1hC$RNT&E+0gP;q|GYt9@^$YwDZ z+AL7*cJmh{6{u1)Ce$gpPT61EGPTCLzWY`_m{RUujlq7Z_bK8qk82O@&8DiJ?P$V8 z+sR#77>~9_KhEXxs2R#kV@D?o4L9f2J&vcVRxRiprIt<$Qxi-tmQH7@c?p0hUp{$o z7sgJ2A8Yy{>32e%-cmB1VILiXb17mjxarzq{YFN1j= zxv1Q+t3s1JOFOBj2`Y)}PWJrk@8q5)@yiXR}y~3M^a|ug9^5p*w(~0oVIOZ z+dFN$*nhT9fZa~M9V=};br?m?;BBk?X!0R+IUoYNIam^fZP7{x->wQgCc2plqe>N$ zGYE-d7=sRMbqle*mV=|$>&xiXl78*_NE>Y|zx5PIK^~7g0PbQez%egJV5YK{@v>n3 z(7S#IpA_rziKRe=yHA4)H@g=NuGw30ozxAncB>e=ptjMFNSB5z?jvAby%`DU_R{1O zN@rMBL3l}2Z}t}#Yo-0Ma@|`q$_35oUaz{QUdqw!iD}?%{)~@5i)ncJt4I%~#oS4V z=vA72J51(+@|2jtj^bGx>W5Wh&r5=o^G4oXq%O>!+BPRfjdD%%@b=Kp+4XrG)~&x@ z9GfJmW6pK>+9pw|%C$Qb;?ul!Mvl;9>S;AUYt}HYh6?M_wdx-JqTo~b8?MtDg7*ug zYE;dmu2%Wa*l71^J9YU-V=DTVnj{_#CNR{iYIjVny6(EPX|fMo1C~FRV&)SC;xi{c z5ey#I3u#a6C3ve<)r69e6Q*qjL6aI6dd~J~5ib0aFXi9WdeBi)k>g_2a&ed*A{p^H^FSuM>FQ|UX5p<-W z2FeEC9~`d?6}l{3e0D;8y36_#W2v2w#l9s9LM4BqRz{y{aXDuq<$ZgNi2Fkjg*nt` zW7mU_^onTn(mv|9Y4%=xDq2o~^qAwUF^`pCvDUMJIv)@@h44fzo>-?aO*re_`oQk*bqnWS^P1JyCJV`*xBhCAswXL}nx8VX}=@P{}YkNQQFuxLOTbaY@s;!&0~p`Do?N}F zebzt?5KIBvi*1W>8zBFscBXuzERRD#U{B3}VG#2=lD?0)S$=X6xtjKP8Bfkx%qFa% zCqCi>(Z~6WLD4pdOZ=JFe`aj1PvD~-8a8~J;*q&*A@i7^^y=%du8kZ_wg_F`(vQ{# zg{dY3o8sYi9bQ3R#4f6Gs6hQVtzr>@tA>nwK~L3=?fr5rJWr(aW@o;7v|M-Sjv4Pt zYLtNGl=39yowZb{ms&@rmVFUamq^e2(EzlnL=WF!{6Now)X7Xky;aYUN-l~K;BzP~ zoC#hU(VbB5(^~fM&t3E1siJ5L75Rfc7FVbbYTZQ1jQu?5*P4MVvQxae>>`#%Pytph zo7s$}iX5QmGVz1NV2A8v*MUN)%oPRmt zs=Vy>?pSzqm`eENGpH}UUh6C|1riRbs{()7(ZiBjYGL6@aOd>%M&tUxo5+tz)^1~u?6fg6?=`F-3+37mndsb8 zo-|}TJpyT<6*6movD8LPQ0jxkWps`8nEE&YYktO4)$WB=No=2mzu19T>)M6$rZnSe zflMw?nTdVG&ruh)q#pfQBC|E@!-8&aVu`7L^lDAUzOGb`M=ptlqa>4box3@GCCZ;^ zVH8dV>Jt;>xCNRwlVjtac{1Y-fahS~hHCnf;RW8(hx@%FJoQlSg(5On_~c3tHSsu5{%JY>Ct3 zWr%`8w8r=4Bj6e$XzWqZGh4MxDD#Z9;Gk@IwQ;EP{9Vb55TG|i(XfnG!sqBb)0)yPc{zDUs5WH{EFEZ!Fs zLvaX&vHE%LIJL($>X1r)pJ{sQL8av#(3Qb>6)E#~=B**-fBi3*U;Io@qN77HLx1e) zUs@2`%>S#J!2b)H2c3d5dagq)&pbf0-v4Ot%7dCbyFFkupfpgdg2g~U0xDuqMA;V= z39DP#B|$+JZ3U4GxifdZJKr7r!(k>Ia^AC_^PcDTyhZV5vToU7&bz6PL|2J7705xfi$LeQk*j**7Fr$FTSaMk9WxvQ2T74Y&{iP9`!Z=avf)78 zJ!$h-rmDyKsDuPLDCHRPbjj-&h>a_F=~dO%#UmL}@J-Mu#HU zoiKheL}~2s%=q;%i%7K8-RcG-r`v!ZQo^O$b-8DyiP|mO?)G;mI#99HW@qUMG=ZXb z1c5Omr0QB`kb-!s$FDRLBmG^oM0*}UCoD@QCamO0(<60Xb>IG@pRG}5pUz}!=Hz9-q3X@dfVoJn z6GfM$J9V+j!7mai>@d7Hzo9Qr0_seKn(V}YJ8xc`n!Ovb63bWg7RH}Wtp)4I-KQ!w zdSQGt%ubDUXf5pGTHW2QQ0fYuZ<{PuT{NF9R5MBJJg=!spXo{?@Uw*3J$jwGiLa5gVV3V-pkdJhs7eh-P)#(S8|#!pBYuJb zV@bsD)V5t_NttL*r@bJPOxc^irWoQW7vO1H zUOc`8q)XwlW)ffImfVIuRXGwkU@snNb8LxT#@4a!CLrKngI$f;uD+H4nFCR0(x~$W zN=KQ9g9SJyQyY&)ixup5qkWTdB0&N$s@i*KVkST_B|P(*0m*0c0tv!*n`JN+Rkt5Hg$L%4w!hywN8-EMKYJXxxdU$)ApbQ(9Sn7R+z}^~{6Hw@eKD4Tk)50HZP^ ztkj2cay8u7d>T%F8SKPhgj$qkRQ`)iru~?x`(#*Ba{{<(YzTnz^H$jJ~`rNFTulcV+2+0U(1qCTN3wkULsk%)v2YLh8qh z{+*@>bE|=GWGTVp$}`J86UZb3a`zbFndrf@8cmDM2flF_@BoyRx#fYH+Q@H?p_(2E z716ewvHlQ}BybtEYi&zpv}k#*!rOQ^^*dc@nC8nZ>wKB(l#r@z2#NVX4jT7Bb8vAHhLa(rUZ}$Nyag8fIm~cGG9qttxh>8 z!=HLpfFVa!Sp8Bex{zvnao8FyIR3E%7D>B$VydC2*a&XymeB=2hMCKX^Wz`h*s+vO z?YHyF*h_q^i>Ovjl$vpeA(nT)I7g*hcBvEg6i3DtxCOZlR!w*Eoh7^y{^Cdu1-)CNS_F!#uS*2!BD^`*@7W%ph?9I=J^(T`4eM3>wzl ziv+!mZ-S6*A8CX00h=EWv1v7cO4dC(M~g(e8IR#?nAH(1b2W)GG9*H}7!qrVkRYqj zvopc!TJ*KBiqZVy_gGjZSdN2-C)fV6y_yH2V(!(O63>&W={j@A9eb!~PP7?A=J44rZUM7(iK10D9z0 zb7vFJ=zVUJ7+4Q?>Uv1K+X`WEzO#63ZZijuYyg0iF-Zz&0laDGvxTz;d`h(8r!3@s zJ<>j~C}1S@&G(44twkWP&Rs?7cyEQ%%0E6iL+oi3D{qdk!zBu5HnQrM`s{fDfAJAg zHCygUnp?S7#}z61aca{H)PTZ-sud z4!xdS)Wyguc9R0H?S<`W3-d8>2tQ!{aK0*cZ7HE)vJ)>aW#6D(CmTMystr!?Lr-?5 z&30L(v!>Gk0U2-@pEWP9tp}?%BCb9Ja=0EelnX(~xq*gL6rRnYiI$%3t3}PTkI&wn z0o)$|1u!o8+*4`N9k4aj(?kn$HkImR*odjn0t6PjBM7hq7Qp-Da2>>>1YrJLB8d(a zgiNas11Dv_dUr~ zVD3CH)(6;5u2#jNSupR+y>U{X&)%g!wgHkj%Qa?7-ea|oYQEz} zTM^QI-QM}dS*<|qN{7A^`a`^efZlKp*0>lt%POtV0zotK1zp&dA{=`%CT+NQIVjxg zG}tsQ@jDRT1_#e1lrHR;J~m=(kf2o8+Xj#OpduBnm(jA;1hB zp!ZML5u@DB(?rvo5EG}{EC(fA(J9>}w^D^?awuJ`Nes2Q9srpLe4|YmXTP)z*)6Kz z|BDI&zzeSGoE3_ROrzlTn6^9*iKZ*hf@>emHD}01P+ED9@Th;77ioeQ}}`-NVO4g|yGu3nHi8=T{2;Ie0R}(W%PA zYHNwFgpDOP^=7VW@M{X@i0s0yBlht`rkhV~KZaU3luEs2xv)g(5ANr0MS`>!C10qC zGGB&1kYRCUYWnoWyd?DQ0ez(B7u&dahHxzBnIc0C%k+-m~h%9Ms(PV-T znSZ5q(0CrLUHiqDUwui-GFqs~X9y{#O{#K*9%lbg9ef&RH>Fvoihg+(3H6(7AXp~S ztJWuC;JW0-)W*a=oi*!{nVHr9ty=eP^?UK2PX*=HkmjCkksVcZDoRKX)WK{O|gklFOaRO9E|?ptu?b(buNQ z`-%-ZQAqQ9HehoMPK>@bD(vU1TVUIJn5V?AI_5O>k48igt@nc#c3qMEvX{?FAU9&Z z(xxX()l-bGw?gxHFmu@~c6B+SHl8GdHVC%c-HWJK9dWbfgS=(GaD9|;#=;FwQ? ztA#84!*IrMfb+u|PAETZfo+2*VUp0hsz@?2fCwU}``*G@DYA_E{%<#=jQUF3yldKZ zH-oJ^p@Q`w{VH1oD=?!w=9;)(Q$tt}6Zs3#)LLbUkwv(|l zS}gaU_*C=Hh#;~)EvzK}0)@)u>C;=HY2 zzhhLtb}pD@;OCf#p}WpQO&xNhQBWu(4kd zK{%gT*#1Qp7@x(~ZIo3Q{z|JGv%dc#Z=$QPf8&J({}2q~$nta&|3~r_^{G|8@%Kq< z4Od73@R4gSmhSAli8A}@nnrQs#d%u)PPf*F8!6D)H)yIZ!fcIR!uvA@N@GxcBM$g- z518`rk4qs4eg0WyW={5|=sC*tWjn1$k?KIrM8B%ocF?-g$>nKno@2tHQ&k@Al)Z!H z1cfiU@Lc_cBlp0j$m{kcVZ!&_6fNI9(HIOfZuWE9FoWYX+qBsfd;E;HZ1^ivPwTt8 zghCYPVJ~sN5?DjOd>c)x%wuT>x{Pi6VEhU4b?2W$#(z}$c+>(vb_n)V$)=vn9tX-^ zu=(7a)GCNox8eQ{pnA%qb%uBnPUJKanwiR_+txlGwd;^%qP|z4A8%=_-Lk$2AC?H= z0cu%L92Xvcmp8Mi9c{2RWzCoLFPCy5kz>3s_Qp8&)xfO~?C=UwO@=TJ+}aE{hD~f& zI6(s>zqF&vIx0v#CNy$7S<5rTT21z?*^a6id~ z`=qo2CGUXmjXvY2SD8bJguSowaPmsssiSgS>YyJhT#s*=1=UQrStoS$Ik52sBx``= z_F>k8lZfzkR&c`BKU8%Y^H2%au_=eH<7xhts|`y*c2ESDKzRmtlqiOcP6YsK&3t%srxTVfB{}+wRdDVF(O*vyX)kYdd~{=&w2eh}$WN20 zdB3()op!)mP8A{%QawwN^(lshqDyPz+O#{aAu4@i>Un)EKl4rQZEmjqO5Bt_T99e( zFxCvLWpu!6PU65eS%l=dT3nmiH-aZAQfZ&fys+ynE11Ggw^=8(xgE=j?xQwCutgdX z$PV5T8b zlFTjQ{K)S+lhuO|X`}SNNvb^4E~MfU_sDUxPgR^ybPQ2A1o;H%=^z!>pm>e+PW^D9 zZL+gJqS7N!Z`ae@k3{FCN0&P%^f1?!dW`C@^q|Fbb$!+iKGZQ!;xDunY%5jWfxKYy zkazzcb9Cw^f5uTR1=VCceb1YPgYs%yd2 zW=f_(+%>P}(3qm>vip79>I2;r)~_-(JEBjYB#gj>=n|;M!`Zi$i~<;Rnn<;?V~*HL zD`n!^lhyzT_Vp08801U7f5;HKVV-X2MC~)q5(DNoHZ$dLVti95)C+365_*0$cdlVX?Q=V22j-`Lt9*zc z$9<8ivD-biy=cg`)5C=r>@-in7;7J4PPbi)^fwyTwZr*0K609495+YO6mdeOV2uYYVE0RrBb|nGhJ8 zdBDMA){zgCS#6v8VV-Tk6IEY|MnK%_a}iGggWbA=`a=KJ*l~Z)0nG^?$n{T^k%v9F z_^^wbT{Po=`s|$UK=S62ZvlNeq#d0VLA_5lQ<4_h5pZ+RsCG#?suJ=<(BNTXHgxiK z_DV_tDG@)dTIEINry0Bd)Jz# z@1wGuaG$3qPZjI6&evxeFDQURV08YtPu9Ncsj~&g4#GVrbQ`^SLZdBJ_%P(6B-0ap lA{m5`xJdXPE1ZV8C4>*EH)2@^r84l(!OnGe`A)yH{{?k~1`q%M literal 0 HcmV?d00001