From a99a1e94ff893dbb92a0807865b5adebb6b10a95 Mon Sep 17 00:00:00 2001 From: sid palas Date: Sun, 12 Feb 2023 19:02:46 -0500 Subject: [PATCH] Update running container section --- 08-running-containers/README.md | 77 +++++++++++------- .../readme-assets/docker-run-compose.jpeg | Bin 0 -> 58232 bytes 2 files changed, 48 insertions(+), 29 deletions(-) create mode 100644 08-running-containers/readme-assets/docker-run-compose.jpeg diff --git a/08-running-containers/README.md b/08-running-containers/README.md index 607b6e4..943d8da 100644 --- a/08-running-containers/README.md +++ b/08-running-containers/README.md @@ -1,8 +1,53 @@ # Running Containers (with Docker) -Documentation: https://docs.docker.com/engine/reference/run/ +There are two primary ways to run docker containers, with `docker run` and `docker compose up`. -Options everyone should know: +![](./readme-assets/docker-run-compose.jpeg) + +Docker run takes a single container image and runs a container based on it, while docker compose takes a specification of 1 or more services and can build container images for them and/or run containers from those images. + +Generally `docker run` is preferable for one off quick use cases (for example those described in `04-using-3rd-party-containers`) while docker compose is preferable if you are developing a containerized application with more than one service. + +## individual docker run commands + +The portion of the Makefile labeled `### DOCKER CLI COMMANDS` shows the commands can would use to build and run all of these services. To build the images and then run them you can execute: + +```bash +make docker-build-all +make docker-run-all +``` + +***Note:*** Because the Dockerfiles and application source code are located in different directories, the build commands appear more complicated than they actually are. Generally the Dockerfile would live alongside the application and the command would be more like `docker build -t .` (and docker defaults to choosing the Dockerfile in the local directory). + +You will notice that each of the run commands has a bunch of options used to ensure the configuration works properly. + +- Uses the default docker bridge network +- Uses `--link` to enable easy host name for network connections +- Publishing ports (`-p` option) useful to connect to each service individually from host, but only necessary to connect to the frontend +- Named containers make it easier to reference (e.g. with link), but does require removing them to avoid naming conflict +- Restart policy allows docker to restart the container (for example if database weren't up yet causing one of the api servers to crash) + +## docker compose + +Using docker compose allows encoding all of the logic from the `docker build` and `docker run` commands into a single file. Docker compose also manages naming of the container images and containers, attaching to logs from all the containers at runtime, etc... + +The `docker-compose.yml` file and the portion of the Makefile labeled `### DOCKER COMPOSE COMMANDS` shows how you can use docker compose to build and run the services. To build and run them you can execute + +```bash +make compose-up-build +``` + +As you can see, this is much simpler than needing to execute all of the individual build/run commands and provides a clear way to specify the entire application stack in a single file! + +# Important Configuration Options + +The example shows many configuration options, but does not cover them all. + +Documentation: https://docs.docker.com/engine/reference/run/. + +All of the command line flags/options can also be specified them within a compose file: https://docs.docker.com/compose/compose-file/ + +Here are a set of options everyone should know: ``` -d --entrypoint @@ -19,7 +64,7 @@ Options everyone should know: --tty, -t ``` -Less commonly used options, but worth knowing about: +Here are a set of less commonly used options, but still worth knowing about: ```bash --cap-add, --cap-drop @@ -37,29 +82,3 @@ Less commonly used options, but worth knowing about: --security-opt --userns ``` - -## Example web app - -### individual docker run commands - -See Makefile: -```bash -make docker-build-all -make docker-run-all -``` - -- Uses the default docker bridge network -- Uses `--link` to enable easy host name for network connections -- Publishing ports useful to connect to each service individually from host, but only necessary to connect to the frontend -- Named containers make it easier to reference (e.g. with link), but does require removing them to avoid naming conflict -- Restart policy allows docker to restart the container (for example if database weren't up yet causing one of the api servers to crash) - -### docker compose - -See Makefile: -```bash -make compose-build -make compose-up -``` - -Using docker compose allows encoding all of the logic from the `docker build` and `docker run` commands into a single file. Docker compose also manages naming of the container images and containers, attaching to logs from all the containers at runtime, etc... diff --git a/08-running-containers/readme-assets/docker-run-compose.jpeg b/08-running-containers/readme-assets/docker-run-compose.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..02229b846d6b80c35b6e20499ababba43cd50b89 GIT binary patch literal 58232 zcmeFZ2Ut|gvM@RzNHCB=$vFxNG6c&T$aQIp>@+iVQhO7Lc4IOU^kn z%B4JrWOX97U` zy^T7u{B|Kn{?_~V5;Yz5M~iEF>DPY1s081dUTp(-6^t$IENzV~t*9SzJOJnMQa#Uy1!zcYpM>04X02LOP% zg`EvZT$uWWnmYCO{=a9h^lYtut^YH8GWMNzz%cti-}{#sEPVr8J!Gprzw*hU%j90}_qVP>OWVBKF}Ju91U?SqkRo|wP3 z|MskJ*Eeb3G_X)nLYA1wUvhvg00a;R2>;~YG7~A!V*ub<_)nZ}0sv6u0|4Ba{E4Ga z2LN!q0f5T>pSYhgv3h0m3OPPf$jDz*L!{;$9Ry7Bfx8b0e~7H39ta@0XUEl7vKSa6ToxT0>HyWCAhYC4TTnfiidIy59O*2K!xNI z9p(G=`$MjwqM@Jzu47Q--4+EEa19R)p9YZum@9A|P5I5TlK9A(~!kkxn#-K+6+>5f!R1hhDyU(c1qaSV8 z@^Z*K>yFg|ljtLZ4=VQAF|9ra!(tAei{h$=68F?Dou zcJcM|4+sp8jf+o6OwY;9%P%N=2d%8CuBrXl*51+isjGWnWOQu&%f#f@rR9~?we^j| zqvMm)v-68@T%rK3{l+9R|IX((CeYA-a)}2(MMd&?4fPs2Dmp3}njZ>MM%QrhY0#)S zg$U3e&~hmfKD+*q?v*f+HHiC-0)0fr^Y_FUxCW1J9~$3JbAwL_W6yksOXsASj)=(ow@Q46~FV> z()xqL;U6q6EdI{q!5>^s0iFZUuc4u#T|-A^=;%o1Zen5}FPs}Uux{ev;N#=r;NcMv zlamk-k`m$J-J!WdNv2G%-fWNc!ZSy>Fa6| zaP!)C@!=tr>qr)A{=ey)1TypJKu5B_3nNNu5Lh|-TPoL$3$L9r{mUdOCzi8aWd1$9 zPE-vjsr)^?V?Hk`{L3zXJ06c zWn&c`hiQ`g+C4x@6YchT{<_jJw}=>55t{}TCo}QXIBj{8O&x*pAy;1phxeZc!5RI2 zb!7UpdvKRtH3N~s6zuUUI4b-p>xyAgQ2-E3{Y!{6>68dh(T{*P%;ssSSrdE+&S)wFm>&Qo6OW)JFfZw5N+L4P&XlP1ldyW=5V}+h`|^|3Xx7 zA-_SmzG%(z+Of<0^kDVot>uDR6QuC?c$cP9bgnwBfP z4IZ*r2+A6j>(3tTgKh$yo6L-g!q&Amrc4(vZrsv%vkT?^+CT>;g=LSnIuaBGZr%7@ zRe$gfez9@biyXBy&a`*|*^+MDT(blx+q5`$6Uepd0#`nwXe@iYGh;em7cg2mGWYgK zR@-b=U?h~Fadfp|9%}tG0%)xj0JPTIVczV$zjHB}@3sm~so6Oer}<)fXwkT-Vnnn~ zS|jk`PwMw`w*S+R)#&stZp#UL;m+(_y_o2BT^naZlT$FtHmr?PV6Of-xM~-76j=ef zdhFlQ{x3$j)@~h;{Pq0&`&h-L)T*TzA$!SJ%}0`DHgj3M$LGscy|*bBGFAtjPA}Wr znV9I!8+4R@Owzwos;SnOsa3DKu>MJ)5!q#uv*txZj)@ybB`cE+OwN_RBa%#yQvS;j zyY3=W%1(3TPQA8VSXugkVM(U8?~Etv5`$;jU(YE8Pbj-hDJB2*gM??eH+j*;u4k=W zB)>EjxSsX(?=tlvt??o|&0W!-!c}KvYfs`eiqrCu9(!?e@m&4gx!aRD>0S*-r``l| z3U>|j%DTU_pPxf~gCvi_c(#g$q$YaBgJF+?$C)a|)w-(9wG8sGipm#3iR(MncS|SI z=xcY>Y|x5Ujv};t@=%Hf9;FJDcIDkEJi1L&&Q|h%F#&8QE_D#E4H7IZ|B!4ew7)IA;E_JXDqt5PcmbJ{l>(lj=%LPAKRaDNd34ElW)P0sX}NGo-YZ zYQF|uE7jo3-%m5#Ph2_~wI`e`HB~IqyEi%kbCF zJSXD*9j!Mn()vpkX)Y)=`R3^gV1-&*_ywt>H6}4)Ic!p!E19ODvnd;~E}#~Nz!U-v zv4TNhWnjub1wfXfhh?H=qBei%2Pg2gOTiooQ(+7b;5N|vfg(;3@lAWVFBCu4`+r?J zN;+zn4B9pj{fxJaz~lh4?)T*by}d7z&P1%;P2 zz*4hN`PMmZJDOpw4CzIH@8rOjMqkCG&?0{8WZ1)w=AuGS#)3 z*}%%lAE`nH{8mYG_*-+ORr~v_#AK|jIomwsw9&cuH&S|RhVyQwDWQXFimsPvE0U!e zhXaSET3Fz&y9C)YVQDC(|f)6yP5*Y{=u+jgI2YJv;&tvB!=BRvAkO<|J^iH=}juTy9*`Qo@&O4 zmxyAnyxdP!-~LVgacEoCelvaujIM69X2k)s8V0ci5x~9JE2L6k|qjp1|{m-auyIVXRWr_vUsW)GsY44ZNR%rs+EWW}k741K*^B*CzTIt$ji=dRXUxFx+ zb|)aP7x<&8Nys<7`IqURoZ)XH7Jj^CSem9F=Q8sUV0uYp@%+X0a?{onsISJwg&C2N zq7LqR+ZVjE4~kr+r1gp1cr0|cBcYP&w{hMb>6UiXMDl!2`qQ)jg}(etGJg*Cmjo9! zixQs+Y52Sth`RoI=Ho-B;X>|>DbtXD@}@te^RxUnMESGve+2!tt3bL_IuL7%+7nqE zKkQE}zTkM9JFQr(g^b*t|9V;ZkC&8R=Kfy|<#Ip8h24cMw$Jp5(L}vr&C_p!;gsvf zc)a5Cndr4aEcJ6RbGz|&t_ykSBuD%kCq}iE!o272Sn(Lz#PWhv%lgT1Syw-6@q8)$ z)kc59|FJ**OBepL^RLi9nY}E(Vn8MP^{STv81|W}(*8YCZ3TSmKaAwxDgP$q85!sP zn;7Zu25lheYanhQ>M;URKHQppsF^xhIV>NgD;MfAy=*t}VbGUM+O)WWctYb}O~=ps z|E)7DlcyR#`WPq|@}Dp-^Z!0e{Ve+eeEbBe#j{2>O3)c<>O(TrYiX-AfWa}ADx=F9|Lq7ZNBwMVwEv_V`aAdZ zzxe-uN&vYFj)^>LKtV^n0`v&$$3;RC>2X#zC?%b7j#VX{na&HtRv8kRlflFXSAZt| zxqV)*rSL7+bn6)lGCKs-j8e^%`xSr^=5g~1U?TYWtO;H+u~p|Y3Z3n*QE#6wS#h$s z0*oNot^mfw;j;Et4RN-@uTS~mjqZgPPg{m}&pP3yXRh!}$isz@ZHK_}sohiH4w)$2 zbFcB3HSY@G@u+FRRUW47!S*3^(R436_ts$>S-HcPS80&x&l(;3l`}82#9hr6aB#a5 zTAqk^?_B}>b5%OS+{>_f$jK;X&ug@iggO$BxyJe5x7aZfpm{IuTU9nh*9Oahm#(`u zX-_k?bf;+O?OVdM_L`~E%XZASw;kf+1eO;zdy;tF=p1dG4HnFhJKA#?b2GC&0;koY zHCkG`Q=U_gHenj!rh;kvIAX})=lQ7UmUr29LAG+ zFZoLl$JIKTTOFe2(yGji(o?V(bd^==pbEN{eOj%_i>HnKN3o~1@(epLXivF?^^WS) z&TjS8&iEtP?8?c^1)^_d;m~z@cA{}^a{4TB#mv2Q*kgM1)`=nW##k zTYd0a7P883($sEsHgIg%aXgJvI1B8!e`A+xjtbv0^{Xx-LR-AT$!lkJ$qZ50a0MWk zgiL15jYYq1B$rf$FBA|q?3(%z!yH5ArHbpB?D9|gZ;K?H<}vwIF840Z8PD{YKe=5e zzR*QP++MyTIaO+~59VR_(!0ICNOc08*WfLwES-HY?o$5ce(AR3tstupZ=2)7MI9H* z_AQaRS#bp*LFQoq#KrR6oqP%5Ct}fA?&U}_5Ri7r_O<3Kz_$Havx!{)SG)Y3$SVNp ztU`2#0KX4bU1bVnAPuc0!BI4ug}CmP541Bx_EEu3P68#4R$=8Fg+%t3E&h*_i_`Vu zyOrA5(IJbDL^C{7FN(KjK6c+g$1H>0hfLu%kxQruzRePLup|%;sFX*SP^vwPgO|R@ z;8Z({U=cff>D_6tKuyr-l!V~yM-}nWlqF^Kd(B!k>!w8;*Z4X-_f}p+HT}=&pN4{Eda3xm+lL52W>4l2^>GpwE`x%>s zI#sYa5%Kc7U5B7|`-Yph7WZ;|c!E@VDt4{_xhIV>8l~&*HD{-jdpRK$Fp+|q$wwNW zAC=*p*&z6DY=*3w22#X1S5I5Iy+Vvt3Z8^awKr`$wo+|l+hNg6VTr9TMiUs!-x``6 zq-2}fE~VbX+0903C{7zvtR6j=^5<6oBBc0l`JV9K`gB&dR5k^GhB6UG#{99ayhkaoUS)2JvV?hJI;p`?wA+Z>?>1V z0X{fM+f;pU^*yiBXr706yLV{yz>D%GwiiNbRKYMR|A8R);kL^4sy%q*Zj~U}B)ioa z*s;oMstwj#So{RfxDgT{IJw+())a6Bm>exTs|tWj?glh1lJAu+Q~1m-HhvK@o1Ze6 z*`)+lD7*UkITk&yI{V<@yDUIdnK)-MbjuJ zxH2aoevzweON$7YXj)52`mnb%WszrZd20m!O!a1Q{X>JBVRn<|k4WHzA=|DhxzmqQ zaw$GCE|aTMgW)_loVOw#mX6z&A#a)6PUVLHl&-fG$Dp5duXN^LfSI6_~9 zG)}@=9hACAd|q}B&62%f+8eDHr)y~A)D*RymsTmn!D=BgFtIek9*W7`Y&i*v#JQn? z-b!fI?mpjRR#(A9sB`8pd9cGhPjLnCD=EAGL_L}3K9-usoR}L6p6W!EhWWl`GtuXV zPO5YK@;B8)sR_x#{EADLDG3AXv?t7}=&asXHhG_^K5%I8?dy;~Cx28&P_6cwOt=yX z=>hHEUgaim-99|+Io+-5pR-J~I7MdxyLzd7tKCniYr>hcOlzDIbZ_*4xxr7)VaTRa ztKXackD^!ZTfX_?C_3$Fb_JlNLh9a-s4_bGklK9tWT*M7`pL|VHqsz8Y+OQmIW9;e zyueBOMOP$bNqC1uu!alh66KQ3_m`%DxBZISNZtUN0M%itMTwy%G-`dw~EYt}KBK#jJdw+hW@s5mdv zUx1{sC0|K0X4YVjsEj;`+-3*cvFmDmM#yD&;an6MUjgn+xu>lVoy+fDK47`1W61X9$45o2}g$4=IhWcep4F$9ccca1^_4Em;O z3Z^*D3z}NtHs#7a)6~MZH(eSHmf>@ckFULcs7=!clT zf_6-0V%xga+T7Cq{@Rk~6WMYa>)q!QlYm$e!W#{z2|ZT;ur&to~!s-$2UvhM@ARWu+#ZUS7O9(43*V;vzWp>@kQ_xRsto!q(rnURjIfYEL6LB zf6QIe$-5KdSM`#E6Rj3WvVCNBGm^-4MPSl@wa(A-jjQ*V>J=cntYP3z2S`)n1(S7P zH-k9D#Ms|$d1}mm_!jiT6R_mT+_A;PmImy%DQ4t7R}3=#>YdBaCZIl8mHR>H$l+lw zzg_zsxsx&z`W&@FjUYt+YN!N5Q?X>Ms3hXTA#6XSY69Wtid;KykDbnxP?Rji?js_r zxk6f2XB*a?Lt2*Z%@oZlOGQToW>?2J+Uz*uGir2Y;}CwRnPz1&c|A0y!j!q3ovW0idQixj_VHB}}ky7qYFlGdU@5BPgbA zbbThcaTz-=>h+r&amH_yc8EEjn_J#Z^w7#io(Nl-v-dQhz7QOR8NIjMazF;K>RaCJ z4CP8jI&dq_a~L8vox`{xpxwjz%X+U z-fjK{Rkn+G?4TD9TH^%=u_ok*fF5Na3g`|WN1cx>XT?gIfo;rqH|qmmAK7zNlDFVZ0rUJ?1fj~$=J~B zltV>jr?fSx^qsa(OsY~B7led$e`;RBVWG2j9+^}Jadfq>YM2gza`jvQ@oTeW-iqd$)=re@cBvmH9)cc{#VJm2(n%v~}*VX?c}w$8cp(j|Q77gZY$s zAjeFbsjn;Z;1eCkpL(O?YSGrCM|h(`88=fc-4~rq!8!nO!rC`yV0$;XqrTE4HmS%sg5FA_Ga`fs zRxcUg2$uBX?jn?)okxDO=V%PYgA`Q$V$@W2_!KGKB|DZ(D!pT!w6u+ZFtVhi{Nm1a z!j}8@BN&RS0yH1FM(X>T4ArrnE78er3`3_Z3VfL3D4J5Ew=2Pv+w3tj4J9Ms*!8@@5bRf57`b|RTO}gSacT@oI8P^p@jzv8g*f(qrW=8_wDpyGkGNq z$-`Q-tx1nhx*8UY%?CNQO)M>4U3Ja3EgX)fD7uFxZ|J3K1qUSXo5m2;>c$yYOfIKl z7UR@SPGYeS-z;(%lL|MFjUAqQZk#|*rrX=XQ$t@(W)~^dQ22V6{bkT=Ar$a{KL;f3 z7vUTdS4L_wt`G^aCo4*%+55mM?n;u|blO|qWSLgPo3>jd0ea0z zwBCEf(?QTujfWBrJIc86ufwYecIGm-UJpKj^qc=4jhrIJ1h$l92~O(@CuU3ex64;& zm=c{-c(xsqD&$=)>fjv+maRu*8TQWB);CXN!6)6JWJk0sEep&@?-V?_9XBwUQhC5; za%<$WhpnDb_CV~=5?Cx%QBxJGRl9+%)m$U`TFIU8(IX{w*SDJak*(+OKO8UQ!L$3% zw(?|{L)WFMtLw>k-J?02Kff#7QIQ39XZt#T?%U9IJJ6J5C@j-gP!8mj=1>&k%Cypq z_jWWDCbCkwRk0S>KfA=mx>RZ~{i(>mR4_zqn!W_TgaluP5NwkfGm|SVXMO5g<9twf zqC&0HO|Eoj-s?cZ?{MnROOlCkT{I#zE$!kl#MyTgyD{-2BBG{TlR3>ik%eh0H-seC z@XNG@BznU%&s(#m_n~Y|=Np=Z?7V(g| zKN;kC<` zf|RssSUa?zb~g8Dv-4 zm8Kc2r1>IuG$w1x&?2U%GxZ_)e_CF4TYnWPGj9IVFEqL1>)SMyT5Y(DCW`n(&Q@;- zuK+H2@WWrsP;k!okFd4z2qc_DV3TmSnl*A(TjrA{OAHuGWottQ`C8Z5`>WT4?fvRj z@PxQCML2-w>poJE(@9g=&ndPSXsaUkIsIiY0}%*n^by>4BW?+P2y($koc|i>QvHeQ z&*Jyq`xHnkKMCw|rq*g7;xIT3dc8{@YVf(vewr-0lQ3>b@^yjvpr!58iuaI4t-qyc z){D{<&r}&c@k%vZ{N8#9Yt#&QSF!nSqA@5bq+?JO9G>38Y95vi!&gi5Olp&Pv0=)E6_ z!NzZhhs5GvrQVi|y}R{!U|PfVjP2Avs38Xb?;q(vd~jC}8etqPR>a)`MVsi(h824T znLMn7#;$AyQk~BHovCbb5bP-QV{4TU5Lg0h6^fz>T{o2VlCc)FGOOs2k#pnr-^z75 zbV!ZPcT7zQy*QEu`BEg0o}u1GU&=3;T_3@K4{4nF`<}rq{_HGP&I2sD3*-$8bP&_( zSEh-RTHP|vX}eXw29$_Po}W>usR`opW7? zYINJR*MiufpOZ9VG&QICUsq>EnyBbGCBR!wQyXgGH&XjHFl>$NU+=u$DTx5aOmhM? zG#LzAj)XTTeCKQ(YLvX^HsF8Do-tvPtj`yDvzYqWA<P0Z~rc~)=Cz}D}#cM=5Rch_Mr zoGGoG4-5BLqN>5z5&CZjh~7P?xJ2&UG|lz>7O@`CIK5MH{w7qx-IF;Zgb4epxi5n6 z#6S!p#)1e|g5Sxz;FLeoOHo(Rrnhfm3X%r2<0#RMSCn_nrx&`>Hjau zD%9x-neeUvan9e57m5B}gmvSNF5UjFv&<<6zY=u?L$AFfSVVcmQw-w&ILRu_N_ zw4OW+PE%E=Xp8JXGiGRo#9a`2e0p`ims7y!0Y?{I=Y@njU8u<1g{J#mF_FEIFJg{8 z*o|6)GJf|y9m!<2d4h!UtkQQv=sQvdEA)}w|Dx0+vHz}NlM zIruJ$O56&Q<~nPK`9?3Xq5931AeicI+7D zl=0oYeWp%NF>vJAIXH8}f~m(!GAvW(?s(pXz^VxW4OtmnfM=Y&GkP?;Gq&@>P@{pM zDLP>ehd*L9+P}%f^qxbOnd)LY{^7P61lBnnXyrunRAcQ9a6=ib4XVR6~M z5}mtx!}e*Vv+`4rEvoR&#FwrXD7=fP9+27T$}7OY5Y_wOw+DKW5!3)9&ik@#u}uSc zhwyOypu0E<0qv)BEpEu|w45W~7o$vYcA8EqF)n}dx^%T}BB40nAkmNuD5G!-I8WfwgA z!&Z${(0cO)$q;KqGAA>}=%gaSYo~+l7;dd{huCa*|MW;&O~}O+AZvqg8bxlVY5mZ# zg`F7QFSs7Rb?nhBfm^E0vu@*TAz3k1E89gWI7Iv4SwNlzqcE`Z!hv_eWa@f)_nSq; zF~jfY-`54dpMSeP-}e}}gd~oHt(=9m!=CTEi7z4wPy80(8E01jU>k(*D3XS1k{cra z#O$06e%_1N6#O`dPoTo=?T28xzk%2slFU%J%!BzPd&;bxd_>?~wx^wd;j%hAicedYq|LK$5fl~|DmDnUSI&SF_JYz$nn*m;r2ZaEsS zmZ_hceyR11Lpe1A1z`f#0EUB;V-D`9K-_Rv$P`?zYFx~Ow?y1aht9m4TQ#7~z6915 zsg)y;J@WA8SH^kTS}O&!z#BOoo&@Pxp|jnhYi}Z3Tw>kk_I)IB4smvQPjt?2Pbnhz zgf${1mn7tv`h%)MP_sXgV^=095;2dZF>&n}aItU=5FEJmINvl|p;zXAWB)j(jWNbd zvNpUe;ZvKE=M&PrHzb&E5Bz<&5tZm|J+b#c$JB-$qxYW+wvY-)Z3VSu8xnc-=i4-w zkWlKpJ=IXZdj;Tpyod-|?PQpY+PHOXS$mnwY$OKz9w(RTO#?oIJ+~tCJ6R>@7@)Lz z4(W=#&r#}vc6E6?DQxp`tt-QbP4T@tlU3E^28_h8bOYiKcUqd5DVT3|*;^G@5rIbA z8f9ax!{|jjx7pbeHN3qbjrOPq=`#6)CR8m;LiOPy3H~`4*yZd*^j6o>gU#fFD!F2a z4m#AV4a7gGjHK3NBk%{&g#DkT8{7co2zwLL%T9K%=C9rCYs_lKf@gM{k244wQZNtq zN50yN%O{Dy^C``oV}ZGJ%zvmBMJP+T(m0jhx;0j?rsE7lUvbZfpWi_y&yiy@_9UQnx6K3o7Q;xCJtmlpJ* z7AO#Q!5S)As}GsHbn0mwP30r5$LLagOrR^lQpk)z6eYpOAa5oib%U2rOS?k^{KML( zP!RE&$CtG@?*-SYX`c;H^BU%X^gEhRPjLks=;8(JkU{?xtx$Lm-3j)Ia<&wqN^Fn= zWJ2ed(>!g^$3Q+Ph8M+lDQhL|Z5mat2!f%|LRepglSqYmlypmvMInQ{72au@fruwK zTU$bOL*BHrg7~7CfNcHsSul1IJezkq*d+;Zq*568KB{3eaj0mK#tCi+xha?w0>c`y zi$H#^f}JyS1u(d6chQ%DIBEeg1JWH|(Y|Fxx2PB#+ET!@&kXF= z@u-l8Y(m8n5NDtuk)k)fA`2l(^8*TLp|USa0E7qli}E;^@B7TG6*VazAwqV7_TC#p z`J47vfL9DH0Yu6o$)Km#ItabHqmCN$2CC^WL?x9@FsO+?MMw(_s&LzAa136f>3o=R z{B@t4*bCE9aA%o!K7c!Ydd~W!J!~V!{tjgJYRlhE>NKksQ>}Ra^`;1mLSMIv|)oT@V?+H*4x}^9M+5 zgaB}=5O+%%0&{e|c{v~Fz7*6V?|OnK64uf*ww)z`IKeuvUZyL+2Q{JYnuomuMV+mk zzhS#$ngHT9Mh{CHBm6YZW>Kt|S$#dv>W)?`aip zeYVHJyJIB7)xpV^i0-E8Fjm;h%tv&Nzruy>+V>X5oh2FZRN;O;q-xJ?&Q<&b^5|=u z>M4GdM%N8XPP%CL3kI* z1Da*A#KnmZkZp|{429+5w^=uYFYBM_3^_Z ziPmQy3`H3gR+P?F@^M%|rRu&nC|@Pu*#v;)qSMc-2Z{<*@LjUcJ#Jn@#HP(#w?(6M z(K^3@blbDg5d`}mAKxM&UVRXjO?W6BJGx2G$7eH-mJj|d7}zb0aL ze}1huXQ)kCk(tS_t8{Ekk#%VxdJm<`DMN&TH*ZC2{NxHy&rULzhYgEfofV5ypHjiS7879Fj}?dfbQpdc#=Z9%SE z8^LPH3-!D}2Im|X+;azqPYIMF`-*4WcR|smDMC+>!L17G!(8F8OVib3!TqANk(Lo3 zqz8zH6qRSBKB!>(RQ{?i_JNy!(TWUono895X%Ux{J}DMK`|w;&>oCa+kc?k&;KBk| z4=ta4E*0_15VIFOtOXe$7VDD7`e6^oyQ>pSbO=ihT{5EgK~Ls}bflE_q?a}5@K)S< zRNA6Gdp#qRC0AXi_aDN?+9`_Z=OQ%8G+wL}j?T_{^E5bfWuEC?MQ(_KT=GChQL$rW zwwn@Y+&tO4OD0EPEL2qVUZgFHCgK*D^6;tDVQ%!I_K;@jf?c5;4R@A^o~Eea$PK7^ zbaZKAUJ&xTsv5ZbH#RwGY1zU(Om4Z_?CA9jockR)4!zlz#y^&){t8|`ao|eM{7$OY zQH~&5qe?j^rP1dm=Sb)9;%7+8sw7!ubUkA&ROsI`hZeJxwZm!+Bb8ON1erejNLPU~ zc^??oCA@S-5sQEMOqk#!u+PE>-K;y&y_Ik$f{AH>{BbxrT;&C(Z2|>`(ln8Fx zya6kUs+MaEMn0Y*nAu$){munjT04f zsLGj_YLK^-lb_{~D#F;FIVx(>W)X&qnvYc93>bed=)=M)VE*dSIqFpFhI@?`EjebJT~m5lvoria;1!(WC_|92(NS|K z6k8|mGE`tELBw51g|-w_9Tl9y)U~w6tk8hzxPDN*)D3W1ZPihe=}_F?e`AaRdLT(uK+i%0G*|REx&d6 zU-%#8uunB@=DVn-_&jbK=Nyj#(Si(qHngr`Z&OkmR`{@M=X8bN&DQsEA;u{!F5WM> zmN5ck`W7~$O5KH12>KR>~9Dx@qH@PcTtaCU?>Xi%Cq(T$&UBl5yj zx&XPEO=TdsBodkSE^X5dGS^95h74T=Kl$RZc0yGYFc2&_uyEumb_EC&LM#bRLl%&= z8k|$g%6AZCL3Nf*weuX_`FG8b_XYpq{_|gl`QQ70BcBfQ$oR_PpHTtRL3+3-7+imSq#()FQ1>=1ni&T%saTZ@@9Xu|Vnl7?pyp zD97Hev;m$z-mM9IR?4b{MTJ4msRZ0B^SJ*UQ3yVPq}5&l9Ju78=F5zCvO~BesY|mw zJx=k_OtDdv4~w#Lso#fPLtNl=wP9Um?MTACuK+r(Y0mI&l}pX@LjfwBBUgqT9{y@;4`PL@F+ z4IyH4hQ3PFB9gX~&`THsBrlZ0+nrq^@xj=2LyWUlp-Cc`7+i!^l@K%PBqF7AGb2Ux zIdt>6O-U;!iwq4d^bb*zo2iSz^J`1KoA(_>iZXSv&=k&jg+&Lhi})O>MkbpT;c2yp zq}ND{0+>k8siMNQ+W?^loR-Qc=Vv%R%qt@C;jgL%K3$e83cj7DOQcQ`X^s}hz3u|? z8-qIH#($hrGKn_DA}m426o3{j<#0{To2wX*%7EN#jyVQ7)%%}F`hvZva2f(A4(IgcT0+Vt7OqFssUu8O6~(Xcx5MLPzbwu=02cBUae zT--wBJ*!0LhcMhWiQrCL;CNt|MFqYG4&4c)F+`Rea=(V@gaGco=mTQzq~jQh_YLE5NXOSu`-4d zQ-K_jQz^n6!aPq_`s>NjSz#Yk2*kvs=H(a)CAmM1LmUA-EOxU6c?AA$B5o$CEee*=JNPeR9xV z3_8X_3vP0>)AgJ0Spe%Lq&Bh-JFaV|W$tG;>7>!La}w82ijX>Z5*nhe zq?DJ1O)gZVTqqS2(WU#iPC%VFx`3YM#!2-D@&Fcfr@(4+HspUjaY5KDcBhF2qdyg# zlWO{K37>;iRqTsWFeGL7#-Ux@?hY2e>Cf7Kmq49uw66vaEz<^jQQgIqJPw;#En2sN z*$!`AoHl|G4~v$QFypZve9R{mG!lOzf5s+OOBXld0x{C2+O5%9|pVvypDW-@QUQ3 zDqZLuy%0_gdhcPB5Y6EL@=Vrd31a;HAqp>od*q#)NceTz-FLlP+8+lBwKDlGmz zef+oz29V~>jZ`m{OsK+<+w(+pdq(ApJ%z8XpsdQA4OeTI@Z+aPf*TT7fO3JQv@i0< zr^~h~J}ly13?QYoHpv2_eEIf7{phYCNc5*rQO3sLPYep6>NHh-{CpNo`64bXl}Kcb zNhT2gt>)zfC`1y-1V3ei3HBp*Sn53Xc?N7b7e}tCTi{l|6Vs>n%37Ca^!8!S718H9 z@%#8LhKB6|7*5DtLQ&Q5{51zCrt6-f73kSeY4^ne^8nuppOq}C4=d|Jjk1PY#FAAc zA!<|}>J~d1&wlO(^GJDozWw6!lZPQGh30hCn1m8tPwn6q$2QHcJ$)7}^2HU-YcfM+ zYpBFnsP3=x0zJZHqbs`t3*`i5!ayERi*JUjyOw7%&f9=W^x_g~LBrVlC#Yhf+>=3c z4moT|bFvA*Q(=6Z!^)(Nf!1scC3r^PCYFPJJ`_sd^*A@g&<`_E zo@$xXgmjdYwui&p(-R|x7hXEy5LFiSxEqJto;t*>@pj+Jq@;e(Y!s)>U3Q`B_PlxcW%Qw4G1TZ&$@*v6dxE2vBajIy8~H7!3&eKXAUcP3 zFu6~RZa@dD~KgDal)z_UD4zO-~k z*IyZr0gLWjz}$e?TAaQ}cv(Slqix(TsveXj_vo1qWBpT{FJn1hIv7DFpI3_HLzqWi zmIvOA4!-$Df2iJ=3I=`)Z_7hdmSrDMh;i9$pTdmJAG8R6Ak|BB=r(G;&niTtF8?6x z@r7yk&g=O^Q2hZH;W#X#M6U&5=X9|&NtW-=E>@P*|K4zu| z#we!(Iq=Ynt=b8vw@?GRGgFZ^VLO(oNSH{JS zyjwO~v6qX_ESxziC`Nk|N8m+`bkxI^==r6EO07g37H*70vBru#k|MtBQebwbNEqiY zv$ezd350R$dKjUkP^YI2rt168vLr(4VaGTZjhVBAs}r=d^}D`k*42{(P1v2(SMifXlYpzPDcJ)B5`Wjhu%P(Ate*+pgsY`y|Q z=FZU2FOxHdNj}lRgEGcIt9S;s8@0KH0vW?=!`8_y_gaWP2L_(|k;tdof5ED^h+$^Y;T2kX{U-1Ku1YomXFbl!UfbMTPkCvVlc{oQVV^x?u%z-OliHXn(izc z+k-^yx+x5jYI3#KgvZux1x%PKT=>sLZ#gN#QnKS??s;Kzi^agyEw*=vSa13ef;e+y z49EC$q-_&H1l^hTXVA|H#HEUv2VuA#EOsk01*RA~`99!5xp{#TnUld)T0R%IH^}WO zG0AF9F9KOq>C_#4hF5~3xM0)|@Q>ThhpKA0`Z6z+^#XF_%aVjvWaz*x_JNnb_VTIVY?8#9A)+T{sOBvNAHSG z{e#E1ZVO=(`X3-a(DNK5Pmjhm6W-1izA35Rtr}jqM`Tq~cA zxeI?e?&Adsnu!lHC@VCu$CG1C97`%4q!epkrUJBvko1YR5UZpxkK$(saG`-8GO6m^ z7mw!5RC9K|zy5g0LpwyIqtQZ-2%*kjEqRBL^o@K_;BX4JG~46M=#h2RiUpN7dOQdA%9yCH5y{$E$;B6t`_p&E z<+aCyRcI5B&9+7-OE8ymMVapzXy0OeqlmsN9KX~fuY>&0f4{|5yT%gd_@s<^Trubj z+5=CXN6riT82RNj$8?48u`RCVVVL^Uh~RdHcc^izYT9sg5$F3c6X!%T%5*fUSaq5i zbjv8&ikbDWvxwE{tCv2gLGzK0qn$_GKibQ|!Z*smI+m`HGAH)Y422eI795=MX2_O< zs=FBFr>r_Lb!Z87ll=(J!xlyjx(Cu`UFZ{|>uicZH7~`mo@_9t-B)GjM8JD{wsP)N zJ>%QWoum?+KW-c+{_}G$FC?KR8!N56?ey% zFwfiMaC|KEG!->6|5-~#k2Z4WGbqeq>41+9p_5kRTiMh;FUJy=FnZWC+UkX^gt^x1 zTohu@!B+iM1bQktk!FBEtsCLd1Xp9d^NAwlIS3h^uI6~@E zsxu1}b#F=i4SzO#o1`ZuFphIGe^G1pCeVjLqp#$#L(P3+h9bE2QqomkRzgio07+p{2OHlv05L!J)VYl5lsApWkzy_pk5X-}~K=?2y@O z&#aL(vvg*CKoUnmTD5=;c2iU17hbYK+qk5ZLsXqH-^I$Psi6!#he~s>&Z+?wS+YTp zgs<$6KNl^;+Dcue(?zlCQl3$zhf(UK)PZx7qX9uE5!pjjtiDQ#vW!B+Mav$Bs+s>7 zMZR;Ef?@T?=F!SYtgim*ZcU#u47r=~?5tP`_z!UWOw{Y~Z#1hr)>Ub;1*Kd`Imv!1 z2Lh_==u??EQqbhnRJGilzIl8VZ2I&mr~2y%1(0xm!EJ++D#I3ta*3^y^mnr5$WtW? zE-nTKmyeR`!q}FP=AK z1EbP|6S%k8$W?emV=eWHRy$kCG7fYv6%^-&x)_Yk4kMGN%MA^UD?H_@d)Y1 zSVN(lKto@jy#lp^Zh!uh*+iXKnIT&0*0$$_HKSGTVh3~x8V{+Di$ffGTZ`w|uxEA! z%lV>|5FL)|JQ>}Ts(Q$-G8%I4e0GI$oKNA?HK5+|X|K~YbKfk~T;}i$qdoZi(;w34 z)dD#`_>1A~t#=PU5q;n?u9zF@&6q4!BJ^#>q0h^N^|K~Al&u=x486l_v>D3I&9kjL z5^LW4Qq?Rns&#TD@ze!~7ZiM7YT{^eoSIoJgK??{v5|W;6Z4_!;FfTu| z`Y-Zgk007rP!oZ~^Iwu`2sot$@RH4Juig37#NlYOmek6V65Ln#@#{S3wU$U+iT~7( z;xP-&a)5E@M!{wi|CG_Mw$~CwCT3ot8*a`-3Vzq;N)vLGA$UOY^)TxQgBcW}vwbtr)hv|T6-S@S1F2GG*O%oK{oLz{ zyQ?@lBBm-hC!*X*;k7c}ainX=Ag*qO>(Hn=VaGch9!bBVVA1*UXxnugI!vGNkzn)Q zw|HS}b?J#}MjiIa(k*i=@};WsOs%Ort#~1rjpZM;+Qgi~G*T*<=&eaCaukwpWgy6y z_}wWJaKH3rpx~r&+R|#Z>_m8RUNLUUwuEP6qyCqW``2EEf1zLbRVech7l5p~H66uWQAH1{0D6y3Re@ji6bTkXCf9jdxT zyo!#rc_2@3rtUL5&BE0n(;-MY=dE%`*(SVhm*yp-VgdI9+^>7$CQxn_Ey@`c8fi5J z7rCC*)hGp%C3ZdVYPhSn8%=R=$&DPdorJ;i#5g7g!(^^8B@O{=3LS!WDu+my;nzy! zjk1skH~ox^74@_a9+QZBqF_`-{~gc>Cn4d4kWHT~!#| z%EaN+B{*!z7w!VA{MHGqm03G|U-+GPbnl-+goYz_T9#3Ps5uY3b-LsyZjh7%>q1pv zTWNwcaljHfRiZ5EJXRXwI&eWRO3qdnbPVzfo5IQ}R+MC~O_NpzbU+vn3U_Dl1&c#!+%+712V}_(hDD;O(TUwxc|X zTrn>wr$(N{`EMu zcWft;qD=Oi51Q}X5F!Xu^hVW?77$P$JW`b!95O61ujIE$Pb4*TXJxlLT3SjI|2`2E z$>J?Poia7x=*TdHpPiu@;#}6#$f|p3VyNiYhdc5EvJG(azYFcxAklJ?sd)n&ds+~g zj)#Y7oS56e0H(gSy2PjiWubuSW})GkkHoMpxuRt;8>c#TM13rtyhO;2$c6~@WV0YI z57AK!pJJ%nJeUUnV)JzJK8gw2ugi)l*SNg`M(}c5N<{X2{0^N$^T8)!tcMjZ@i`ng*)%q0f zGeji{53-l4vObUyWouAkR}$u)Bnj3;aqDqMV9BeDN|!s~8M3m`Uxq&&9@rG0qK*30 z2A1K79^uG(^sO-L1NRC#_`Xe?gkI`8Chq#FJG1J2>Nh3k_-7w9NV)O!R2m&WW?f1* z^ht!2$Oe{EDkV(?&Bf~yx3#$UU;@ZzxWqct_{=<{xy>4?5utli&jV}buThw4ty-ig zM^&k?`ml&Mgqdrdu4*bi(VC&KKt)W$B1Xo{6Mc@EQ0Y;;>9Kt5zx7;9FR4Vo>ND0^ zj);3fnq+zq6`gOcU*pCIqdL{cW6gwdOoY=~o}EQJmD#siIfwFT4~-x@N-`-oIoykf z0{pFC++&-{`98 z%*g_)SWuE_5m6!kNR?K>edK>&A4D4zWKco!nrEzdzIw8flKaKY3rvP#awT%+v(a$* z8hSWS1l}}th4WP8l8O2-HKoY?nJxv?gFkeh9UWt)<^&BGlt>RZ9!DBQjc}Fh7JOa3 zWgW^>oCr75!XzH3Bs;O z(^a+OyJdAplQ9()6G1X2rINpoC<_fYUV7TQnNtabwVbA-tO4LH=fXobn#3)h3aR&l zEdI%oKf`pZ4~jTdA**l>D7AWGsfYp1D+?;$ML4&H@p`p7Jd~SQR|tcPl^-<>sbg^5 zCvsNKe5x;<^P_vk1a#_i4-b^ePM%3%TWWAc*B;3h=V`@*kh)oQ8p_im5CEDX)}QAU z%5P1;kUP0(k@+spVVPIT85DhPTe*`#Ge)JHsh5I~OntsjkY*C|A`yf=7e5x_mb&kK z~uW~(9aUD z_1A6-NX0&Vg*8;=l9!V}N$7Cjxl`ZRo07xM{h+r-tbm~6an1$c3=~ttIIRw=2;ywX zz@BabjE?$$E_pWk)7h@^5Rg8+JZQiQ&;&O4*f zc^h)Jht`#tEk-r&ZUyUo&$CvvoAQ!_;EKI*woa2#tiqjXY-!&=l}J&RR_LG0YN|!b zs8CMkX1zCMYYr5uctINSr8uhSyh7W_MTRs#c zzaT`%g0LUCIp?hp$DhNrbSH-M7>R|QZ&xpX)l*-2xZX6`EisqP6nSOW$3l$zbD;9n ziOG|N8B!p#Fs7I3dtiV7&n$Pr83vnx?@8K&7S(~&!NspV!j&@f^g(BUVK zv!kqbO(2NxDiwGUohVYKDdiRJ$|k~fv{u-qm6gX)F*Uwfwoi`puuQY@Q%f;7Yxy;( zeD+`LEMpGq%Hr!qB+15d528>MuaW0!mRx;~H-B`q<(v#381rHo)`owM26d114MO#_q@0;I@0K z2+z%k8Y^c>qh@jUk~>`ldEbmYtYo)I^>TC+!y>OBADz$>$LFxU#dBc)q2G)&9qsH% z{wBPgFXoJzq}%FKmkXWs)+61p-I5axc@9NVOT+S1v^n%5)l{_%d-Tu5(#E?i%yGkx@o}VC=jamIzfV|2QU&)x-4-)-0 zQ5esdiCs5%ZPiStR#7!bKaqiJy4*4v^Bs<2Th)QXK&8Q0NLUBKRCc_FCVg3&Uga9p zSUTvl!bm9r0VnI`zg7~FrNS419v<}OcQQTIt&(0H_7h^&?)$X3nZ!yK;L}XR@j?(3 z@nH+Xl`L6q#~3Bi$Tf|)I8wC_JAf+Z}S0^yZ8AI1RKV$7e?Ix>2l89y$QN}SP2(ot+Y*(Z9)DwV%2%n^loSL6h&V&Bj zG`c@_o5)BHcEeh)RBnW+Jg&xh-JIZnDailRGf6*=53H-J_#4<2OgIFO8AMl@H5~`^ zD^^f*^c|K#$N0(Q)hVg^vo%I8m9#{{@<*qxBkD`}WihJRj{=2<^Mc=L@mxA$4s;cY zu#qdJVe4gOZGWoX>rRo0X^-oecMiA}YMX^!n^6X*FTC_vjdGjS#IU>>Sq@2q>bB^L z57Aqe@rmLKC*QV#bNTZNYi2q!v=$LK9|+jZKNfARn>su*|GIut-I#|voOB&Go56X2 zf^Pc(!&KdOV}?l8Aw{YndO|fly^Ls?~bKO_5@C6q_E-W3K(At~|QawTjh+vc|s{ys-XCrD)_u?qkXrmbd@m zchMG&wE08xxtOXjRtmZXF{Kk$uDdfUGc!5Vsj#`N#RNDdc8B(|iTDwQ-j6)X3OA}q zaX}RoCD`-Hs}J$0JFj&Oc6h%A1`IDWTSS|_uYt3K!L*EE3w`x(^Rx%A7A3UFaNC3% zpGr(iy~LuWL~^;Z0-Bu4ZRV(M95MF7joArL4`VV9vM0_dp)9Rt5ql?6b)9Q#whaC; z)K!fM2=`n2mzG&*OfyUjQv_wr8DoCT#E4V6O`+rDJTO$O+L&v$W*u33zt#?)(8;XT zZlr?y#9iHOZ4j?U{39+CIs8Spg*i+=%G6kp2}D^?*h1aL8>d2lSOQyg`O8cL#Bnyp4vQdq*BX7M zhbL}L;%O{Y#>6AxGh0B=Y@#>LO+}v;=kYE%v(R_jkN!a~fwFS&1oQ#pOH$gI?l&aa z{O=~?_0iv7rvwu;s!K*OMxOfadqM>ns&sqi-jZE3Q}(v2C9rEy&dd%*%~7SGaZv~V zQq`-mQJsf%QZ{jIxVzV&w+FkwOt61tK37bsA%Occf7$Sicu+m87ZkXSW4PtsZ5Owo z{9`=VVM_<{X+zy8GhR{*01QkR8BiYJM?6KUStXx3Y_Hyq0wV~wAm zPbi69wN`3kObu&*-f8AJBIgKnP3@JkVULD-DTY$d1QoxM6i88ZjaVb#_`#(=ldRsN zzmMM{i*JnGFyqBurZl`t);;}9+ zTQYTDcr|Z1WHU_W|D=4kj;%%eL4r2tF>fsQfz9f4oKj^2Wo3Q^n#P9jt?r|2M+2iQ zz5L1#0*0JAwz}Z>tEE3wiGULw?Vr*l>boGo3cANzHuJ0LEU7#bj9&Q~^Y{%<@NMmM zf5?95f6^ct{nJ-xAF_})`!~w`Ep@D$+B)Uxp#k?y4hcf=ya-8iHHE&3+Pntgpif{y zK$JA33-$rL)bTz30J^Vo@qYzL3YDKedb3sWYHLzezkc1|Lac_?&vjW4GjYhN)sgoPD%rgLIYmFfoZ^5bT=`` zK+MAOx>l}%i3JT^2UDcWhfG3pI+iX03HkM%lS_Z>a|&U;1|jal4veosL8VE6P_%l0 zwN@z23TWsMYW2xKplE_?(BUFFDPKK&4B&9U+B!!xoYi0$z%(6%Ov`rhg-kQ?deyHIlwb0}Bs)6c`O&y#9Eiqmy!`FB05m?i$`@x29|t2ZSQz zt@${xufE)s-$+o=!g^QMfkOw)e{#}=Wo`ah2~NliKY2wY)V`$(CRMCHv^r&(t2|6s zSqSxOg;K`cxhwotI#P~Y5vcSeM6d1$4Oy1J8kF!?xvDkvG!=k^AdM7gL-7w(JSHB5 zKab_yUe_ln6wG@NXZ2cG)V3uw*I$;it2zIh0+_|*ifhb+tY8?z*Rj!7jTJ$%^oqA= z2;Bv59>%XwkU!>I#Zk5JJT%U*VX@Er8~77`jsuxH_%$XJIbPWngM7#YEtIjO zEr)h%L0_gH)NSfB>@5GJ5xw(4E+h7l3m98O7i!+HRS#RGRGB#Yh0y-K?00n5C|S>A zY0lCvMj~e1N@DZZw8vjA-~q3R>QCO?@yQ&tZ#V7}-Hly(t&#~@ppH{yXm>7*peCy) zdc+?P>TLz{=Wl4cdaP_|{!4 zf-i0cNggqw-g;WmOx{ysh&fGy@nkRWr_MGYKHeb~l*1jg)5x4W<~)wS_^ecoV=w(2 z8Bdo@H?mhko2l3i#`8W-Rq7F3(O}&garz;5DO)|^_Z8o~=AATbOB?Z_`UW{;S@05M zQ*n)Ct4vG{h+?GaM8S{FX`HmRJ7(kBV1uyk(~hO9jwRpbOnsL#lD*KbfX&jYAn7KU zhk6Gbg2FoGxdsWYpoN7`Gz2%>N~MqyXd?&BiW6{uWFyFunzLWDl?*vmpNX@XeEINJ zYL-hPB}I28!L=7RA(h^%w%f=EZ#ZI2SYpnUHov_q6gi9$6!(;cOx zC4<~x?PBe{1G=qqHhndmtE6)P&m6joD(aJM!tX%bShCbPvFbp)STQzkGq^8aL$C+y zz~qK00XZ4Ea&1UsUHPRk03gn@FM5i|a%%J;ak!!Gw{ev4M_@a`@8e^Ux*07TD zDcOXXX^|N6H<$=-dOnn!KP;At@AIYST_m{%0UJ5oTC)IsUL*a~O<;J|7CO*nC)Cf0 zo40MOMt6ZHYYi@qb6Ua*0Nm!H#=dl74SK_ipFr{)==UE*#VVE5LK=kD_@+Q~(z+K!CKyqVWh!gujILVZe5OpLO+C=VZ(lWof#DM(_Y z6X`kh$h>5|WHK3Tyg@PQ&8WWJIB)WD3DNczGa~%VLBjg^n)U$G^XS95J~Am^;|oso zXKK|TTV|yDshN%%$Ys&&=~LgO_=Ya+Cqbii%PV;ok50e?sNAO0(8cu2Djux$@Nm(+ z7GiAeW~ny~*oRn5SI~t_+sPMJP;!%v?UjdRHQ9LPbNlD}1jWs(iet)~3GQc4oR8e4u zkb|JOl9<1GuwR32qMl#CcD(RzN?rh`q%yT3vJoUi8eYpPdtub}aTep7zyYD^1bRZ+ zj1$>q<^8~kG0LC3PE2$T!&WjcYKW>u1^cj%JM*x_(x|#HJykqzU4wp@LP>65yvGz7 ztxGM>>F1OA?(+OT_`E+?L)P)J!RmX+;p<{T%5gikDV&Lp2OH&^$TV{vxfcmi1aX!^ zV_t}QVV@tcE*iEa5pD_j)IGpNa6&}15(s=71L0|>9c$O1nw2LroLyaj%^*QUQ?L~2 zvh>FJuJAGtryWd^3v2DM&gH}M#J07|9XVFsQt838NqpkPL|6l%fK+)anVW325aPV8C#$};P2Sy#5 zxT6bF^)(G$UfbJo`T!OL16UkjVKus?Kgf%uxa?TUo4p2Mqw6j>PhkKg8XpBc(B1~v zAeiz0&f6pS)h3;REZUqorEEYWlTJhrgGg`d1om5<8*uh5fv`+ULFd&~_lpS>;*+v(bVV@d~AdrO$(-rrQ0o813i#D zjNwXL`MC3!PJT~)(QAqADeX*+EV0qzjAFdaO@-M zsBacUu5s@Gk~S7LMmWYI=AfTkaF71PpN%rA>ILmGY+xOFtS8fP@CfX1VYOOVG-|EI zAwhy*0Oj;NaS7-GB4TFoL?j=<$KZgFz2*y>ax+oAgq@>ZZujHtkvlhU;rWOC$jJ~r zx>G`Cm};7xp8P;1l1twL-(Uaku`P%1gy>$ZW+=O~`o!$06&aszF4#^$zq@DGX}GpZ z5IIKRYk3opec%>^t*73Df~gZQR4p5Jb7$vO;7W#Tfy++wGFb6`ptet~pXN$rQ2P%torEq4i-NH-JYnIq?uHEmr8T(5yOJ zY6_q4abpu7z>#f1*Iu6jjrI5v&6^(ho_lyFNB5(E9 zYk`kcLSU%7RcQCV<=?vP0=zJo)8^A;BSP-tZX1~Md;-N$EWhSeQ#r|^y3x{t_4ppu zdl#*TyVfMEEA+1%l099nL6>F7x|cvW?l|iF0M^@S@igRZ`q^Z$sxtZGTel+)MUB^4 zqgjF;KQx9HNS5BrIPKw|Jr`zcQl>2TjUk(ck*y>6cbYESl9yY)LMPc0y!|WQ3n9Ja zbyPvCGPmtXvf8u1aqV}!j68mvu~M9$uUPGTd-mcJzX>PzYCE|Lt}0q%=-9d?6zv!e zgk_(6uR~1Ggae#nDnO~K?*05X==L7BOcy!$dZ<^AHUz_F*N4JMqL)?7vMvKoy+4A` z95V0E^`-c>)C4I*bky42B|G47uS#W82gZ4N6X9oj$pJX?Ugp!#_MZPXtXu$k?dZSa2hG|98FS8S=kbC z`%WIHLbKsyJt1P|C5ngPbw-{{RZefw@WeSZjP*zqDoU3_=&>S@k0X3j-+HSYM!9@3{yQXL+6#92Ja#~1jl#(IgtfDKpRq>wmpq<_*WO8S0{XM+ zZ~b`@iWhwKO3`cCE6?3X!E2?e>Ae`IJo9~Cva>H_IIr==+{JLGd9WHV8nPeT4s&^l ztPB|svV73?2wXDyEaY-g-%7QDsi0c!aIj`s5FkeaX#(b&nae-NFiPDp)w!Lf&l3BS zsjrz*(gq)~g>3mRj0`@I_~Bkw@u^9#VddVi2RJGV1COmij~N~00umQY3KG(}Jf z#AO4HGEDSj1;}-F@y}kk2KAP)u4Z3@hV;U?x&92-5Ssct?G z`pgPQdhMt{6;ts?Jhpf1N%-Sju*@WFCw)H;6F38}&!_JCHZ9M**_${(t)kVOt&1@;n3V)^w<41q+CGGnc zRX5}UrG4HHJ*Jjm?aQM!e)5E2)|ILZo6Rfz*dm2vG{i?nZ`ZQ26FhyPQ#8ivr8g!E zPU5lJ=B+O)`XU{~J{wZmn8!R&TY8XRp_#n6fD^6EM2b&7aMz=#)FQ-BB-TTzZiF;- zMd9n(?r6S#oejx)$n64P#!m#eYDqYtKK#j)AX#g;$^F_*>2?BP@QdE_2_k7WY&n+>aiX~o&kq?t^~KX!2*phW z?`3zBP2ZF82eb_tN;1$5!+_-gUz=}r#@~p_m&~yTW=*=yBEexuq={`J>A0*xW+@xS z5MzE`-$on$+!5gwZ(N*yK#vY_*ps|T9&^l;2ok2fnVYdDL#)d$p06jqMXX;AXT}My zX4X4deQw~iMeIB|pa~V6m3`(@B3}-{e8RFeItaeos7PaX1-bkDDMwv5W2QW@&a5Z< zMqEqVx89+PpwQHBlv`$!%Wt5RMWKuiZ%7a9^uk8)G zfr=J7CL*J{r#Es365*2mFW=TCA){Kl#8=k)3V0^#G4|J>scX>Ri3|1$DPLvu_ys+4_<_E=xA#J5Ja~0~{T=?- zgLNqh<2Kbc5rs3)`i!}{{zMH=25|m_vyG=SVrJCDCM)?-CZa-JokDDcCJ~xHt!Tq` zMrVq8BcgXP0Hb`6Dxpe6bl}Bpl(5SR7Qb70c5fguM(ydXh+>FGyLI z$>&3A?NWvtx-rA~JewUR-wvrfh1<$PIn&Z4vDYPJcq`wOQZx+p*~xjGW{dfw#M9aq!M<5MXuZq3Y&WzLO|E$F#AP6RX)|K$ zF}#vRbFit{RZz8vH<>2)!F(kh8-30%1Q$|JL15=PfLZ!g{%J>(T!Tm*p0Hn4g-qCs z#IUuF@X6{emkf6gGUR11Ldde}*4$`M$Osv<#cWwl@X0eY`uiXfLfv;r;vswe##8Vg z8%~{Zz|8Wl^PGE>QZ}S{`>Wl}uGP_TQ=CBVJ*X2W^M`c4=#EY=KF@{WAXyjb@j}6iPfb*! zm$c$mhwJ)PLs;ML#m07nbD&EFn0cO$daX@1UxC-#j*ot_g42JoHb6yYHY9QY=Zmji zy;vdV@|PWp3|=w$JOY-4DNT5tK`ORfz2 zk*j?T!VKiWeSd<6ATik@ayxdiu0a>TE*?<@!{9TuNMOpB`$ugBA1jkAHSS^BD4bdp zr;O9I3wcztJQj2&^e5!dU|LT7{gwbu|b;avg%CvL(4Ba zk6-t#&3|%k!Y!=;V}G<66xv&K{^b9$aUTo$#lZnYIdbSJ51chaYEjzTcTP`2lDa0} zR0P5E{4!#X^`5j|B_kx6+{bhD6P@K9g@|)oB)QenkH<+7*)r)#omFUwAh*cEdy5g8 zTj2K`guYzqNtR8vE3P)vR~%(<3hUc>(NyZbspvc?8qfo6ME3yup$-GpJyKZC6z*L* zbs1oTB<$r269=ap1vgKwlm~QgFUp!Po>)F z8=_sO?kOiWlRowHlB>7CPcJGo5VpHlnHTS7);-l$3ibxk2>~fu*C5J(dW?yeQ>eKS zf(72RXoXD0)`VO~+ei>TtLY(pc?|b8#LM3ygH$;^{F6VIz0pi@dU>NGymtz6j_u z;SBg)tQXJIL)?mvRj5bBRBfA*>K25*o8$3JNfQ=H-j|u%jP)A~?#4qDJ>;+3wa0Z9 zFy8585ES!fTbbn=rmjla)lu|PZNwX3c8TTrEH{kF_;x+$BuHW(yWynrmUOl%qk3Fi zyUeS17CY0=S@daEWVt(wQlFEGWd~5;Hk3sP4<@`gkKCJhLv#yM{H-b3@*B8;9ejSM zhaiRywK%U(HK-Sb4>Gax9Ou7fdS4vS%p|-v?}yq0ik6>xzrQ$?bS7DKi~zoGgXgvo zV|NXB+oN+;UnU(!wWpdkKaRs+M$10qQp{awNXa>4^PInE45(q<<#n0BV>`P#H>R>Y z{H$*-8dz%y)lakRGtQD;Q@ZruHbt5uU^JQ4(l(fM_qd)=5q`*x#*gP1$XT3K#Yegh zto`D3TZ-7LAVJ~z(tI@a9y}eJp@2`(fK>bMm}{H*ps$oT*Nfz zuts$u2xSVpDWRr{jNjhgXi>F;%rbhrx!>Z>FNFkcfX8%E!dGUWGqVi=MY;^_K!9SF zvW2lcNz2)6sxL4hZTzlZ`gMM#=+OhQ*t++zTz(l__Pc1Ai@UQc>tA)~oP~*faoX}Q zgI{Jv^rCQRIih_d`d-(%Il$084|+=*I(wkM&(TwFu8BN)RUP`<#It^vq_q?}y_J+rx!4q6ETS)=wstdVGwjlpHs-J5ah0 z=v-tP9#}g`d!f(}l=k15O4Cp_&UeH=II085QxF0cs-F~5c)o^r;_hqGdNqtR_LVRU zl|I&6Kz*ly^lsik>k|!0TYdBN4%07)2^b-G1`74C(q1_TsUXSHH+ZoW*H-NrS$4Se8!t|bG&q8L zR^V@#lAnb%ecXZH+RZyq3J{z?CRt&@ox-`a)6r_n?c2cwBx5>O@_>+EC>;)nm{AM` zfMV(|RRh45$unc0n;XAPe+wLJ`r+?_5)hI-$s8H$H-Dto6Yp&*)M<0ZtI!~v!gaA7 z-H+CnlNNnUCBgAvBl)U{B@P>tLR!NXyIFH}FO4)1!19JXqF(pI zhQr}6Sa1=1R@qGz=lYk)@QziS02VCSP2I0vs%I(n&@2qapc>10_%mElyJc&PLO+&Z z4IWGe&QWpoC*z`so-`vOa*;FTJR%0YfB`QbX+SdpMp*3A07k&8eZUHH8vc(};vqid zDHiUYBOX2hLi4KaEsc=2JyBNS12_8-1<55&Uc+b8oq0FFcI#jb1MPd%!M2mh${rntit=O_e1S~2)7Ozi|mqz_k&mN272KR%szvso(8 z551Q)a-_GJG}0J$TZv3qEFxriF=``&X-R$vzKc7>LsZeP(DQJ@Ps< zIuGsvmiWUfa30`r|Mw}##N%%xnobW>Q4}17C4s0{^i|exU}4R%xv0h!vLjV>0yRd# z#N+7JC@4nWtW$)5(KY`y8@5b6%EQCZ36w~VcUTXl>Xlxt$ZPPCaVFZyld7OhaIVj1 zjwf1@kzvrzw-W>3TKa(}w@s4mdK}g*?U{p5TyoL^15G3(ws!5(4WF^BaK3 z|MBlyolm#_G03?H8$;@5+=qKp!Ti>ELAJ*JM9Vxnj}(VS-(2?Nu1izQ7^r0s*vcky zQaRwOm36+THw>`yPJw}=!5&XRL0Bvo5X#Nhg!b?9jaj?2JpJB^zN++mZ~T**{(GtY z&_Pl@Evr$VV1Hi=d!>kjfb|cX@_G1b+ik+d*fLnDZTYO4A*QH1nA|gTX!AP+A-gMt z*PzT7Ux;lvDlDnJsC(J8S9_6W(%z<8lIus37~xa_54r?D+SE6|Gh)(j^ zB)yp!ILvlh&(<*ys71*?82f+rdQ>n)kTK3NR#<$}foC`!+-ruMQB_muB6lafKgaaq zYd0uABUW?zI0iSPap8QHjrHR~c7Ad^&R#hK{<>71hXP!QbmpAZ221GEM-7eDyI`8i z^HF9-`{h?|rgh0Vn{7u#&7RWXmFAWpsxxz<%!Qc+N6bm}_!%cEov%2r!3)g8!gyZ$ z)%C;l)>M_}N_$@e1dOR?2HU29doG?AY?He8IiF~z+6VE?g z!n^`s@;Li(Y=*0U*xP=SVzqTJL6G8om^N7SF@aev{(2*_@X`kG?_tUe^8G9s1Vi2X zo1*iw=WlxOsqZYCo7&qou@WUBxvgIp6TS>5M>7-G2AwaLxXHb`sng1h)2VyvwaRuw z8xLtb!74l;asIY(x7OPI6tE8gJnOF(vEMkh9pb;MXqVm9Sh1x88K#FMAJ{Xg7${?p z2W+h#+dq&w-dV`*52eLDTd&8v0rsc;mKrCW(X@qgyO76T84QrZKQw~>B!zAbx-FF+ zfV&zh&cc093~e*Yn-#;rLh(Y?^K>|5%abD{iki9|CU2DYhrEj8eex}Fj7_@*m}ZRs zD?t-jum{J&!xAJ3!PlUN{}s&qFEaz6hWm?gK*_2;1sIC-)z*l0l6%`d_q!5l@IB(G ztolEOUYI9yz7MK5w>gtXe}`+i!)R4 zh@H$(XN{DC;o|FO?M&IkjafcMEj8b8KiwY!u_QvlDOaOUY!8_xzLpal=uplP(_Maf zCU`RZ7y^I7srjTBPb+erJ1J1(3$T`#|2J%z&P;JXZylO{deT5H?R~@Jop3E_8bd4D zUZp^jBWXKD-yBgu&;g0i;v9zJku0Lg0o?Hw%ONH(Ht0@0ExBeSn6LuBsEq)9r*Ec` zlUe3qQOJ)u`H1|efwcBDs#M056~45HyS#m5FBOpGVo>omE1_;W7fRW)d#gHRInL!` zWzWH)K|Yh|OyiISV-)LD=`jc!;eE&c_CBS`*5RA)X)4wLWA+jJHx>8aM*zAhUzQlQ zM9aDtdRHw4`Q@=4u*IB6$+5U$D)e1?u3@Q?;TklnDh2sQOaEw|MHdcR zZHw{B`Wm7lw{)?1$r|DZtg_+%jVvy=erMY7aFIQLotlJFu4CypTNDt5llLobuC7Ek za0$E{(-H0a7bNGfPS|@i7HaVT3~X`-I0wB%;sOp>5MbjZ4D|oj`=vO+o!R}|fxpY2 zr!&8|2W>T6u=aBQ|G@i=up*%N_*J_7BlpjD^js|_u0iHloPo%n=5)(dfQ_`3e#LVT zjYPDUT_D=S|Nr?Zejg9LY+SA`VXfL}0BSim2JVg3Av>5pIk{HC;kZv0F2~*UWMccf$M*LF<=Jp{pZbq|4jNdg@FB`!kgm> z>3_Z@@_)Ta+D$0b^Y=G4<}e`>CLX98B-8@}Dg1E@Xh5I=G*y)M+y0Ty0M~Ie*KrT6 z-VMC2aIxe+N;wMn39qj$u>z#T|5fy1r}XiFR8Pz=bALeomRtT$a7z7Xp(%VZEA7AF z4@jitWu2BW7yeP`1lLb+9LnQyF-&5nnP0Q|S#0Quul;isp-RiXz#FGk|m^goej z=p>|c!NL<(75WVx3xMgnl~%hh^r8M2AECoH*gw<%K>l!?VKSVLERM|`Nc{N*0oSWg zXbeQGCq`^W`*&piMEr}BGzwH?7IJv{ulOt zr2PJ1r}VNb3Z?zCpu@l2`X8`g_8jE=8|1I~{7=Xq^$`AE)}K%PcjS+Pqzi@!bv49R zNd9WL{{i{q0Y0|@1_1M>KQo_@{uO!BnLkMEPcjUM|0~bGq4X>AAR%C^{qsc{{IBpM zc>e_Z>lY^0e-zn6DEez<{{s5I?mv>BfgognBPe+}yUIwN`6I&y_Z zAr~7wF45;!(D}=U)6vV9C>Sd5wwUx`2eIUF+#Nj^H$rgPOs)4-o|*-*`z6W-9d5a? zCXhu8LuJm?x!q-sVNe6SQZ9LAAXKW&FmJ zC%Ah#WH<+?0m%jd#G)v+zXK;c!RppM4|oAn4Q#ArAWjwSeWtt*-BIS(gxrW;hl$03tR`x_)E#Atw*TUQ}a%Q|KfRFwOmJh-M7=Rt_v;6 zyvZy7PdP785fI|`@HwQ0&&8#GhgZ*;&HYmsZOM8C;+Lmm$nbCbm+&>$(tW^X<(J@V z(3llApw^&oJ49>%<;Z?Ad%fNfp11fs@9jDYGKyg#x^szskA|VddbI&IbLrLVfgSi7 zt{LphO(65g4T{{z<4q8w6Bs!2Bz=i zv7)-%x8?wu&JEVBy$S=0E3HJV_%HakPvu|AE*zp-QLENDF0KQ|PmfXU*Pyv_hPjp9 zc~awzOW5T~=UefKD^vk_2V`aiu0D~ih0aS`Eu4w#fE`|aec&&85Gec87EvUsqs(O%tX+4^3fo^qYrxRCQ}&O}E`h*qxI(Su**;|S zz0btk9Te>H5@>yB-MW6*%K`B5=}GPc7+iPkZY_y zM}q9UzxO4eS-ev)BeB!Aa`{=g&Hih@EU9(};5juS1}#9fqTfPb;JUe!VAmk=*M3)v zd2m_C93UR3UF6kWO{`R91A6IGGGg#K8Z!MHXX6;K)ZAg%H~|cMk)sS&SBIA<_iNBj zh+v?@0V_2J3^PEc zi8mkxXQ<0pm-DY77yG~fDLQ4Ifuga5>mayag)y=^a2L`3Go(nAEFdHCJKu}Fiir(^ z+?@@&he(A;QlvHKXw-NO-gRZz0B@k>C1HqGE`aL7i6xP5j{vVcZw1-A;GuzCUvr3H z$3+;{YhVnQ0mr*J-~$vII6SBcg9>+dz!0RQOX!ZeEvq#|+VMGhS}K|Td;rzHdyL8l z1TYocyMq_7k8g!u4`>4z)=RtR`2z#SyK5$|!wfho0OFudBHea8N9Py6e};ZN!2yQ& zmoV9b(Jg(-^S*3yvU#6CUp!EdHqwF2p^3TER`2bB_Gg69__@B|pt0vW8|eEl&#yrV z41kH}`IQUo@)g;Kjm52Fz*d>TNql$1XYtTi>wN#`?165-6R^I&cv|1-@8S}?w|@yB zf^MV+tDJ5`koh5y9Z+Wqv;D;yz-;s;?B4n7ab|EcC&_!%{+>TTwzlv-Hx#(p_m{&C zbm7Oj{mZKywCg+f_z_@gBkO&>!%Fi@2hay|dSEVJl>6B(Dqn7K+YbWG`GM8nw!eFY zo>FZAh87S`hv5Bf&?0cQ@yZIn#R#w2% zGC&lm?oS=;x%}t^f^M$h4jcBu$FADEs9+(s0(V(WD+bf8un12u^w`s|j=D7;NJ;)b z&AoS2Q~TB~oCYLF2?@O>A@qnekrE(;00EH>0v38vP^k)vKp^y9gn&qwt~3iOO79&} z!EK?7C`eU6VBfXh_ndpq9^;<-{qv3Qd&eMytg%Ltm6hM`nR7n#nR5bMf6V%c?lqmY zu1;WAWxxwvZp>u0|9I>u>QmrTxG_QjZe&IXaIbA<>)GI3LUYFP2T{lhNmGI>Zo-fR z@-K=daJLr=_-H+cFk(yvmw=t-))=Dmr4Hy4-a%=f)?vEKdm3XrcQ~bGSP{$>mJl## zAk(~9R5;oR+{6wl5|+Zd;7l}JsT?2*))?_(^=X5 z!3IzB!}9o=1qDevFSH_8y)}-hJ77=(b>1w|@;7d$%7%N7z-UM%hXk}Y+%Vdj_AWU3b4#&%{mx>+P_zFl_x!NQn&4QjVJ~y6joae ze0gTB9(n&|z}&2RlhC}^lB_j5&h4uGvF6K z*CJGs?=owNKX*LNCo26_zkplz=MVU;m`Z8Z#XmUV_BK{!Kt z)hA-zpj=p@4Ri;*Vv{}C7ugv#GtyKR%viu<@}7vW;6qZB1U}<8U+@(Os7el1@1Rq< z_?LW3KKYNA58TuP#WdLgld``*YSj!s`;qCWI?2c)GIpG^B>y_6@8!+fn)lP&4Z6i# z3ypGtAu%CN5D&)}Iz-S@B{LS;@91F*8EokD@pv4pi%>PD&(MdiA4 z4}@K3!1$sSqV#-h)RLZspAuM0C3k`#(Luc_sy@*Dvp`A7SBik>kU1TziE&vjayIcO z-NRd^WPT+Y?`@g!s7?nX&~Pr|D9?EhySvE?v0w7KuX6hg21fUBDyqt5a-qD}uNKj- zTDG3+awdo%(KMN^D#JWY$tc>fKJ4SU)uH)Uu#J;?Bj+H7cwdZ?Iy@T`h0~A%px7F| z`DP=q#3fvs=}yP7#XCngoSqb@mHxK5Rumy_lwxCZncM7xlKUp-n~aV#tEodV{rsKX zEJHaWJ=4=`B^MeW_^KI`=Hk@t5MB{UZ6c#t-+G6nobJnfy$xPCi@TXDTBJQxGDTNQ z_lNsB4?0}Q?2yKVuHD5q$f@razJZ~1#hmR|8l18ZeW4N;{{+o<22*bgdOBInCtOmS zALekBl9$E^PBPZgV$-T9{C%h?uk_s3#n8GRa=l0Pe}W41{PR&9UHjHKgfS4vzGIso zd+NR8^Ari2@I%<*kx);*MMmGx)Hwsj7uj`Fzyj)Lw?68Mo$P3vU`K#NxUp`H9%jvM z`$Rj_q+>9awnVw(;Eq=)!;jXHC<<1_6PKY6qf)Kr>isq&ww<{>;^WqY`gcn$Vlk#I zL!PieRhRR{_kk|Xo7}P~-;pAen$hEE`MV%$JVo?0;=o5G+>$k|g1e_=aaDQ_(`YB7 zZg!wqvD6){d8wtnahGMo&6v8pr}IT|U#%9!fiv~i@Re3t*u?J~M-I))>U2Ojq*+Df zizqiU%wl5IroXp;J*bu%i{Af~LvbAX{^8gOE?k&fn8Q^ODqHKY`f**@v)`Yezp*{* zSTbZ0n!6-8VG9S%j%>mt(Nshc^Au4n)7{F$7WZ6S2}{UaoH;(SFfXJ1)dx!~;y zs44C(e=+0|=N+tU;qPiHD={;Pv-;~JH+RTjgF-((+N)jGzN&pETCNQZ1#Qb6PXICb zGqGr_o`O9lB;`ESIg~GbQ&Jv#j*^j(cvb7ae8i==^s5d&3bi=~S4GJ4op8}|friMVB~`oXZ|qwdbcx@z5)Xi8?Imo!*P zD~E~ue0@q_`mZzG{EO7{oP-S=xiBZ<{KI0BC5Ad@MlbLm z{S$-$4Eou=Pgi7avK7A{5qu@8w#-ovL1}f`F)n6Nu*IbIT=$-)KC3F0jCBro(ew zKfvn>Qg-hIs;;#uimRh9X)mtN%F8Nw_#U&~&5diib}1=;SX?mxDK{79bYGXf)~Xj* zJSl4Yra!>VJcBbvPtVr3fLyJHK2~c`RkUP{qT|&VKvBZOaES%TbjO1*5YPtose#u`J-xDt5o0d!n6v9g*7L~v@8S9h)QAW;wB0qD=PEf^CV<`$ zLMSYjblvgvZ&ofNIyn#VJiEonUX|7W9M?@=TXK7bx^p?{c zPuBy38{s#ctilaWM{HB#_H7{l`jT{SU(k>y&~u~j76M3r zAhvquUr%>_OnTvdP^-KDeC71{enPIKz1bc!I7zW<|5h(2FQilIi-Fl22eFK&$HUY# z%Cb^fCw*&R+H`u*SISnrI0#I33jU9Cd|3ctD$c~zIMD2TaJun?b712ynRLB z7wY4xX@&O#=-cn&D0hfhWP5E}7#!&Iz)A{?F`Uql%vskR(RC3!uFh@O)N%j7YHW(F z4RH?SeWAsWKo;+N`^yNMG04Vg#V7cQam39CmFP!%-R2p+b(IupG^1Y2&`byAY=m?@ zkU|;xZiN(v!2koLczq+)d*?ZCLV9UtpA9yu;PCd>Wxc|DC{T$w!>sK($5W zsHS*C^z9m^i=Yk4ue8U~y0tH9(~ArYN!#_mPTNP4I6%u)Qf!fX2COUT$H@{6q6LCd zlLEhK!5lM8f}9BzT3Y#9QsV z!|Yg~bXjbd5I)lY6qfcL{m*^gxd=GQNEY3oXW{U>iygiR z=EvDYNo-+jG>|aVF*{!|0+^_29J%`!vA}LAZ8$J$+Ikon41~;0zOeN>_mL|6VW^SJ z1!CRZtuxkF7S!Yok-6*%BQ@8g(iW7=(fD@-(D8PQ4;25I%x~2Xe4I(Y9an}oG6Cjy zzl~d{H#+xr(Ak*^v7@#Y8_vlC3n0F1Jpd#PizogB$%O9#!hiwCBTFFHp7SRt>woH* zY?a;_zU`;`Vn=>~&h`lW48IFV)Kh0>eD_-Fu0bWoccvKYSs?yQuiA7xs*?M^mB{}0 zxk{zbl+|wL`XOJHU^Qk+@TJy``J-+oCkgM|&U)b%$MrPT_2a1Vwnq)^ZHh2LV|>Ot z?hQ*k3Go);x{_^h@u>;ApzibPV(twu8g@8R_w(ImWm&)A+mlkn*wjLv5Jl;Vqf@F2 zHYOfU>mj?P4wB%dIaY?C2CIf98GG@ZVMa5cmL2B!6rTMFxv=$S_A@N^1xO%(TFh$w zZFPXZ^Yvre5V8;6J@st zo4BB&wrKi>ifB-=lhX;tfUp81PAh_$EiKDM)%&W-6;tf%wA_wl{Uk0}yrda<_{txQ zMifG8EK%Y04QdO4B}locNkw~-huDX*79Sb3=gA>OAUZPFl{|M#jr(& zbiXb4`LiGPgK#>C@c!VpqrV4~B5y^DTGi|2_tY!RGe5mJ)>eTee~%=J9o^Y~f5-_8 zj&Ed;3*H8G+s;E;F;}r{d7Iv=(F7?7 zx^ty@DiP1?y!8hlZi&M~r9O@`&>>Ks&Ir2Xx2QouM~d^*)yd{~)tTydTA1zT*_11w_u4v#dhx<>Y4_0MnSR9#`i z=OB5cBC^Q9$-~c#E3FVB>Srkeb8bV~zo1Ctc}mwukSuZrd2}UNVcSH$EO~R%<@gZ3@mu=LhBKGmIY<6lMQK$jHPWDPJeT6JDz2%k zj*_|*r9fS_ewg36lI&648Lej4lb$z*z&bVkRNUoY+AJyMl1+t;Ed|yW4@`N$c+`Yr z7ry`u(m&VyhGmwhZX)0t0ccg$dME)%IZpueQTRT9V-t=?Ky!fqU(Zsf9-2KA}@kj(){{CNG&SDzm~}bmEn{v zv3|DQ3p0CM4_~5B!Zj%Oo@{qwk?pec&;%Uf;I{9e-ltMSby9C!d~}1m;lz58*hAxn%q<4jYHl^lKdql;$%wUJR#H5>u+R4<^F=PIQ}x@ zcI)BE#f|WRV8`)4L8)RtWf5$hNdd0E-1BN;TH){H@cPQo<1=i(Yp(IkJ`|~&c`)>$ z)k@4VV>y)Y;{dhen)^%z0()F#;gMt(2 z`<7(%3c1Kd0iN=ZMSUsh@ldhPuz?BaC#kMGZW*1E-?}vv(e{#Yxwmez9)R1JS)$$~Ybq^>(__R_AEbA3kx*aVG(GaJoJ(MS z#hlES^{AHaH-X44anwG+?&|Yl1Wwk=))OiIp4Y!iJIxw=6Je}nTz~Ch#$T6|(4-gu zFJwM(>|*w=RhdS5MT#H@9F9rs9~ucRa+8@94;$6#Ym{H%<&PtAUSX@Y+-x#Q%1rFL zc}A>&P~^{syU-d6cpR>SK+(`Ym;V8mF2Og!5Eg=YU-8wcY%@3WgMMrTDcC@9NqO$o z1$*a^;O-rVeP$HIXkFr@n=hjm`Gw8hptqTPkow$@55|QIRh}CxlR0T{cJX?1rzux) zvw!H#n$#?Md@MyX_T+Po%)I+%6^Sip(a~~$#LffSKF0@jV?fo?MV$kmrP+#-NRm~2 zH&@47f9yn~x>Jw7cp=$yD5&M*A%`#+HX9ciV!5$IT)~5^@T<#bzj>(;qh>C|)pR2d zPTNVu%P6T=OeIo3P%}up94?yG>O&uqI9OJ*)}vJLo3R9E!OEAms5I+f|MusSojAYT zQ2^Ipe{$qIsE9rk+XZ|=mvsDwCN(;4?2avoj8m!}!AEyf)=AoXRRw<_5q(Cvx)b~5 zg#w>fc~iRDx!XY`+=yGD)F3Hm=7Om8gAQDTJ65t1yK%_&kPyzEt~e^+NI~5myog zF-0}j==F{xHl*mPECK>j*PzN9?oVhbB<{2^|F)HuS-#x?v$>*3rkM*q%!NqwUJ?8n z5=}8@4dCPfVWUZ$3FZkKU=_@F184r; zcK{v#Z?N^7yT`bAnN{L%iW7eLDfzAV`R{i(~ zRvoE&2BgaAvS;Gdjch2#j?T=VO~D*@7H5M`6VH|sghWIwQNzSGA+qWg;{IF<2=L&IeaFNUh>L=BWa_7+DHZ& zFoA2u5EOMU5)OysTof8bUu>>CX1R$~36myTU8_Me` z3*L^3={+v@fQmgYfzJ?AH4I6Y5Ja+*M{Q+5pCmJQz^~C-{Lk~_*t^jpN}+cBYb?}B zke1W@BT_yxuv~#*7dri!@O%$rEZO4;6$8E+NbfByp?PM;lJpOVb$X zNv?hcL8M{|9vr3AW)a4Za*CrxSnP1eT+>y{kdRcC>;JIydn7c~xa*k+qoJY91TIWJ zAx>8J3TUE{%t7vLu1s2!#TcXX4$Bzat)dFUK7ZOtn?*_9K5CH!ICNLC_3;zYP%`NB zZ|ewanqX$)8t(Qe5C#6*Rs&oO>zg1&Vn6cdjg`1@0d4bmse%@B>oZ1=Q6|O~99z2J z4ER-;SY`c?o(?xp#9cPPOTZTL^Z=R4xcvAn3w88TQ9NZMo1dXE8Lo=V3g;DdKCp9f zPF3Y+xDKzl5}Fs3z`<#T?`1Pg4j;uH$dkRhm%y%{#n$;~VT460YE!Q|0%q=&B>vrh zrUllNez8YJyg=fTg*vLlUkbR|(xZRFxS?G5CCn~$Vav)i_HZ4{BS?706nX#KXz9SC zQPJwQyK(*B8d__3?a%5$XkP2N9xjpjnjQEo3=(H9RdY8Mlu@terd|}RC+{14DN8ii zc%*NKB+`D~M`k3~<&p}*M+4`t()wA$L_2KlhXG>&Z-tnv3>E=j6I=9aw(y6H?Tt%?-Vx)N8m8O|C|KB7^Z{ zz2P@F?BsPnvJ16)L{LiDE_1O&0|=y%|#iRmP(X0sA%+ z66&~Fz_%Sf-wTA^d|tPxSscf5H{2DckYu)N$L3bXt9D&ZCrd?E^t{YPwJa<5FAZm! z)(fYkXj(SJaemP)G0{T_9+$^}qQ*|$n|N%qJYFW5^t!&*oTCJ7czKKcMpq2gViw*T zz2PD(Z7*pVsgP5LVtlkPKL)yfvj4%Y>t9V3EKPlb?@Qht1<`Xe6i7mkzL4(XE4{JM zp57qEi`)Tft{gz5Ei*NnlJSw=wU%?Cx;<~f_XZd8dYuTLJ1p&W%o(GAm(oII4{m>E zZui1JK`ID;-?136pWfg^OZB~*uD;VXW+ohz8hEbbgyfp?(05JKF%`V@GWWo1 z^*H3V$fGdf=s2Mn`Wb`Ey`}yjOvC$4%S(>O9~&V#sUt1n`=|Z|Z8~9r;=597iI>u5 zt)0Ld;!7#l8DQ8?h}6rfP&I($CbqL`NG8=5o%*nrA*ljc`7BRqY6}K%Rh^pK9N-*~Og!`Sj@!{Rx#t zOip&xSR;;_pKsEVWCrRt!BUY!Vr`+qBbf7jb1SRoZa|$&)FPkxI^4m({Aea(7WlpW zz5XjuTTj4KYoqjpq_l{7BS}aenhUe=kl$@KQQ`S35X4&)8mevX!>nY=$~Td%FBym{ z&`{^=}#-1%U5@tGf-zZm09@A+=+tV0@8kgBjP^OWc&IT z1cZ9tba5Q>Q1oQ~NwHHv;$~dUhVIBPn!2jg|M>A5P!&Zcu=+`fi5)SckY+b1+ieIy zUIACc#u!P8IUafcEdYrtx|O!X2JvSLePZ-#*7)R|G+wnjn>koJn%i+LRocxVTQrh* zww$Jt*NctwOaI8W6e5G_j+ga&gZ8%4nnB308gY(8?G^u`$MOz7GOiJXrVGsmNv ze{gUB3eI~72*e-fC&Y(&&A3?KlAWQe?L6A1BNaeKNp z0V+`7{TO*IqP%^)Kz4Eeg#c(k5xwXAX=4z{2Z|Se>0YwHU>Hf^;LoqsXyRxIT#fI} zhOs)8U?~bFa~CM-dcQo{V5jK_PMgsF^djvn&`Xeo!VJ=-r}v|z5a4eKu9xm!yn0_* zz*WRdakAI($XZdM7Y!u)PW)}v*Fu;4(QVm6g}Jw|vm|YoZY8Utq%d~=;Df0NVP*PT zTI>~eXwDzu6NW2nzhsk-vN_2Y=8omjS_#(tZ-GRZlqmK z`y!Czfuhk3OMmqaehiSj-he$x&ZSzjl`YHZiJXeQQqLA8q;_Lz(YE4CJ#s$ZNF{Ba za!Ji}9f57=x&PLZpAEmDYT&|oGU^e|D`hOb;AKQ>jm@~@$g;lM#P~y} zIJ`+Lv$;n$5#bQgKF!7NZ4ap&=N@-MyuUzR9J2SYPxh|<^e5=xS57xz(PqO90n%{K z!YP0H90KZecgeKQZoJeOhIl~8jobcSaIMi&wW#yu zcLTfmB2aS7;_3ylU)5h1_rpxBdlXD98E69u82jQw$q2LdY++vYqz;p8sWwx&$HJG9 z-J1Hg?gf%}D`}N&%pavU%RjVPE;!~q`aZ@ha8IAvmUMQoqeEe+y(>v^#qh7TeE&_l z|JR0}$} z;TAtn2W8Ng)p;?F*;6&+fhUG9CX2{Su*dN))+r7X_sYaOsP_e#kKGhkE$W~+g&@Aj zTi^K}I8InW3E=?He{jN$Wg{Q+TwZ;_fRLP@4c=%jR+>2h3Bffw)2{S4Em z5zCG$%o%$NNFyHlt=(wzR*P7!Nhm|ToZ&G=@^4GA(t6yX@cN0T?$dF7)8dl|3q*g@ z*Xol@`f!vz*ReG(yI5c2E8_BlgHBK8DzNt%Q2D_gy#j%b4lq@nqU(6R`WB`DZ&Nr6 zuO#cv$GRf-@&?+9 zMQt1b`~0`1$aZU%Mzd~Nqc%=dzY}I|>C8&4x;JB4EXB*lZ&GnCZ~;69s;|bWdHT$z zDgyMe8)3NxsJTRvBAy0^I8JtqDu=J0H^j5-F& z16h=~m7&X+DKm1<-AzO>dG$t&$GVZ%&&oTgC`9NYO$-|oH7$Bc#{33qtCc|&Al9gK zkR)Zjy4uIy+z*GBk|Acnkz+7GT)r>#E) z8Ev^LenBBRZt<5Lh^t>hu}iUi$GTLnh-AdBo$l~{=X{jl79QH5$(q3r!NH7DKQHK&Azo{afS?7Sw6_>E`J~eWXKc?0#*UKDExoZMOTu<;U+H5 zld5X9ztVo!GY@ER<;R9xZAj=o$MIUZ-7@KpNHpB{dvP{jSecse#QC_b`;n5Zv{Os^j+Bkr*j4|nf)c!=jIu3xh<4-Hvb zH!Q%2lty{J8js~KNH>_` z$uG@`O3!6MUp8Hw4b)@BTe#u*zJ1SyphgPZx^O?R{Io{#ZBxgK>i5xEz6}8rSB;2n zU(Sx1{naAl)rmc`WBWQA0Dst*Ai{CxD^%`|SQy8XOCXSAQ-ObCfDt|JyQze7ZvA74 zS21pnfOaeoM6*}mLfJh;e0pbw6tDkD@lP3U(@sa1tuvI)07Bso;nt7`;yj08vl9rr_1yCTC{XHYD6qK^KOAV1)O zQ34Ic0Hxf&<95_2pqy0_Kf>EBpiUW^#?|#Twq84k>IQu~(w%FcKhpij->)OFO`SuL zzrmVa_s14_#Ekmg5c2wKtYltlK#n)e#M22sVjNiux#^^c&pzKR06!Wq7lVE7w0OcWiX6;jHNiQ-^zyf1x!-QDGD3YJg#1pY<;5%ZF#px=|VFZ z#L@1~7PBn3$=IMO{&Q?HN<$2s&m+ENCQMu+NBbM)D>!yYGe3GVxRzj@-^f9hkm_dH zr(K=!ip*wzZyU}wCEXQa@{Tbc!G=>-q+1YeMqjA4pt%s!njaK#=?R4UnA`CVAJjqi zYSir^Yj$WEsVFT;)Ky73rLDnEuPvA4T2;b<&0V6;j6$@%QJqqMf{OpeN$(_{`kTXI zn_Z&TN-yf;aB=LvRPsSm5_0kzVcmEB3dm{s;NZ;TOD z!GVovre^4s4On$4EjUz*V%^5^!$5!*+!5k%MqE720tQ|eF1{XPmBG>!qfl&xikA<% zwY|=8>+2TT5P7YJvhJy{BDO3ND=ssU)4F#<7cn;it08(1%M&E*%0AF&CO^7Ck!!mA z0iB%TMd`5$@ft|3+|H%7=r+_axDHX^W2dG{BE^9?69s_MN_LoVxnOoBgQiz$4rJX> z)W-fuw*=?7H8-_2i8g8D#x~c~xRuU}3B{5bXaV<26K90aIIEtA3_G`wU1K?e*XZZ7 z;gqPxJy;2@4NSlV_*nc7Nd{G7jU#UGcJ#kU{LrGOX|;nl{hRq!qY;Wm8I+U|AkewO^goKI7J4 zgo|N&E&w#76c;!F><<9juKg3+8a)0+3JTlKd!mFLh&&oWzi!m7^{`;^f>xMM=vVpD1_f<{3D&S3EJO(&yyeV@3AHxh5)0ozr|Zl~ z;mk5hP;uI=hiCqgMF&9UE#coYCJXxgjL&=b*bbo*G`jPY*(n_<|K>=A&ISQ{%j2cY z*};V>9vAqd?~we~#q;KRl=zgt#dDt#_~QqMVgZVbDF|E^!_nx49E&$A1uItdq~jzC zeo$L)VlMb`YJF7s@p{vaOVTHCIHMoR$J!u>%{DAlNt>BxpV;q(AA##eu8of8?DBz|G}-#kwAP`^@V}!H<*fHtRcL~tj_`x1aV(M_ z=y1N&qQD#cc%wg!K5C<}JK|#Jdq!lXDp)Yp6&IWkLGOXW@cHKJ<8{d&VEk{*3{={R z>LuyAG8zRJtHhZX^SLzB*}u0=(g{IXEwtRMh{IQx0AZLK94V?Ct8p2(5-*unqo^Zi z@Zr{r+V~FXw5^Pl0l&q~{Ay1|m&^66%oe}UZ17@`% z^D$u&@DytH>Ml;$u;JlNCf`yZSN^qtiVN<2lad%QBdx>|mHaTE&?EwuW@3`6E`K>( z7W0w>^X|yt`99!MdZnJ9n+Wwo(dy6mR6gfV z_*~zxMj%)iw!t!zf6Y9i!5#0ltt2Ghu0#e5xt$Q{lWyT>5xZdv2o4O$6|V9RD|&XxH>F z0`@SWPg+)3_*EqtUm@#AihXZeK>dStUBf9PrDl$Q>JBrK9Qx^8-g5A5&cMD2;c)S^ z-{?faadRZ?E#(GntrDK#GAc7OqP!7gqy@_mEgrqjys>1YFIooNeNK|Nkf>Dm7*)*` z@DWV^(-vt6o+~Y2aYOI>u_TE1G8fBz^9>Et>!K&uKI5hRaEakOhTnU>bI@VA3oc}L z{e}bjiBt&=pPzsDnkLZZ>bfY|5+|IA7Y(~+>s)(=39FK%0JiV)W*i{+0O`S8=I4`%oYgqdL;{mda)1bJn zq+maQH?%T<|KS7pD@y|l)?YUAqZI!?0HgkWLr>nCigp5iFEK4qTnp8uB*ldgvN zlFB$0f_B2M+ZQnldH~`NcOWGe`+xkYfdaU>f2BkIZeFJsmkeFP&>aFoFMr|(FkXJFjxwq(vt>!L zI<8CfR)}w@e83gYtB#XA{fG@564J(Q3)#(z3>Ahxrq;*R2Z`&ln)VazYrK>>3H&%0 zJ<0Ch0=4in=rf(Wmo08`P*zx;^HrZ!;wz$`rUh1ANJ`lKkQvEbJnT`#6Uu9uirQq4 z5rVy{Ih>PIUIGoFU zeI7{?+cwurKf}lQcTgdm48k`s(b-F){oXrbIgZM#>2ljWv}PD9>Pv5D9%!O}7&$4~ zD6dUc2P>LS#b{d=3e7WNy4dti7z(K-)A8_Vyc?##O=#}Qf;s1g*>>#KQ_&to-NFIv z5?%o|n}f_3n8Wh%6(8+#vDQ`Q{Nh*35;a--=H2! z?KXc*lwf&xa6!uD5^__Ydhy9SG5)O3)@^H<1+G({|7rsCAKa6}8+`xG;&tmHhf^8h zhtB;Qb})?2KU5Lln*U+Vl9j0-@;OjEidw+B!ZS7cBYgiRU=IKxY(?EsLF@mJgRhy7 z8p3Mi#DqVT>59vx1N@Ju&Og6l04%`X@Kw$1(TR%PSA}!?;fY`WzkgcR63)G>WTp7e z3;RnY+fF=7M~TMC{QRr>@&cw5