From 99621527a6500012aeb31256f82417dc56d41c0e Mon Sep 17 00:00:00 2001 From: Benedikt Best <63287233+btbest@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:57:34 +0200 Subject: [PATCH] Add how-to for multiscale datasets (#272) --- documentation/basics/dataselection.md | 45 +++++++++++++++++- .../screenshots/data_selection-multiscale.png | Bin 0 -> 29240 bytes 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 documentation/basics/screenshots/data_selection-multiscale.png diff --git a/documentation/basics/dataselection.md b/documentation/basics/dataselection.md index 953e280..6e341d3 100644 --- a/documentation/basics/dataselection.md +++ b/documentation/basics/dataselection.md @@ -96,6 +96,40 @@ the names of the files that will be imported as an image stack. _Note: Data that is loaded from image stacks (multiple files) will be copied to the project file (`.ilp`). This ensures faster computations and enables processing of stacks larger than RAM by converting the data to chunked hdf5._ +## Loading multiscale data {#multiscale} + +Multiscale datasets are currently supported in the formats OME-Zarr (URLs containing `.zarr`) and Neuroglancer Precomputed (URLs starting with `precomputed://`). + +
+ +
+ +You can use "Add multiscale dataset" to load multiscale, a.k.a. pyramidal images. +The dialog will ask for an address. +This must be a full URL including protocol. +When you click "Check", ilastik will try to obtain image metadata from the given address, and display the results of the request. +If the dataset is stored on the local filesystem, you can paste the path into the address field, e.g. `C:\Users\me\Downloads\tissue-gfp.zarr`. +The "Check" button will test whether the path exists on the filesystem and automatically convert it to a `file:///` URL if successful. +Note that this has to be the path to the root of the dataset, i.e. the folder containing the `.zattrs` file, and the folder name has to contain ".zarr". + +_Note: ilastik will freeze while waiting for a response. If the server is slow or the connection is bad, it may take a while and your computer might warn that ilastik is not responding._ + +If the check is successful, you can confirm by clicking "Add to project". You can then select which scale / +resolution level to load using the drop-down box in the input data table. + +To inspect more than one scale at a time, you can add multiple instances of the same dataset using "Add New". +Simply paste the same address again, click "Check", and then "Add to project". + +When navigating the dataset, remember that downloading the image data can take some time. +It is recommended to use the lowest resolution possible for exploration. +At larger resolutions, zoom in to the area of interest, as suggested in the [performance tips][performance-tips] section. +This way, ilastik can avoid loading data outside the viewer area. + +Once you continue to the next step in the workflow, your choice of scale will be locked for all multiscale entries in the table. +This is because ilastik can currently not handle changing pixel dimensions once a dataset is loaded into the workflow beyond "Input Data". +If you want to inspect a different scale later, you can use "Add new" and paste the same address again. + +
## Supported File Formats {#formats} @@ -120,6 +154,12 @@ Widely used image formats such as can be imported directly into a project, as well as NumPy binary array files with extension `npy`. +The multiscale image formats +* OME-Zarr (URLs containing `.zarr`), i.e. Zarr stores compliant with Open Microscopy Environment's next-generation file format specification +* Neuroglancer Precomputed (URLs starting with `precomputed://`) + +can be imported into projects using the "Add multiscale dataset" option, more detail in the [multiscale](#multiscale) section. + ## Dataset Properties Editor {#properties} @@ -140,9 +180,12 @@ temporal features for the former. Marking a dimension as time changes ilastik behavior. - **Normalize Display:** If you would like your data to be displayed with a contrast adjustment using the minimum and maximum pixel values, set this to 'True'. - **Range:** If you know your data's minimum and maximum pixel values, you can use this field to help ilastik interpret and display your data. -- **Internal Dataset Name:** Several volumes may exist within a single HDF5/N5 file. Use this field to choose which internal volume ilastik should load from your file. +- **Internal Dataset Name:** Several volumes may exist within a single HDF5/N5 file. Use this field to choose which internal volume ilastik should load from your file. - **Storage:** Specifies how ilastik should locate your data the next time your project is opened. - Absolute Link: Your data always resides in the same place on disk, even if you moved your project file since it was last opened. - Relative Link: Your data is in the same parent directory tree as your project file. You may move your project file and data files simultaneously, but their relative locations must be fixed. - Copied to Project File: If you select this, your data will be copied to the project file the next time your project is saved. Pro: Your project file will always be valid, even if you move your data. Con: This creates a copy of your data. - **Display Mode:** If your raw data has multiple channels, use this setting to tell ilastik whether it should be displayed as a composite RGB image or as separate grayscale channels. + + +[performance-tips]: {{site.baseurl}}/documentation/basics/preformance_tips diff --git a/documentation/basics/screenshots/data_selection-multiscale.png b/documentation/basics/screenshots/data_selection-multiscale.png new file mode 100644 index 0000000000000000000000000000000000000000..3df3f51d13dfef75ff1eee95f033e722c95aae5a GIT binary patch literal 29240 zcmYhC1yCGMu<#cMkN|<;F2UX1Ne&1Q+}+*XJ;5colK?>i9EbZMA-D$%?hc2$efNK_ zUe$M1a8NrnyVKp<(>?v`XcZ;dw`e42006v|`vg)00E8;|-*vAM;lGW_oJHYZZ(Kg< zx&r_K-G4s_a%!}v06+!EfuuBia*y(?P4F}qBTj7f>*l}U{ryDsh4!Zuj@}-WM$({Ffs;D7Bx>t6}0T*-2k{`6e~v>^yOSc#9hxyWSwv4yt+*%gI_ zh3BF^R9{(#-N=r-WKF10t4}&tnHbAzG7?93ruXYV*xA)i*_!LR4~}5;FcKy<$B^~c zu%b)i_3o}qpNm2?j@??GQ;rh3P7)~;;rHd}x@f0*P1Y}$yye!C|6R8CLONTk7L6`B zidOEvD9+&wzlYNg%IoLRR93c+our;o6~OcZWBfqg)7j1Y<u4 z=n4X0tv1(98M$O$lDFd*dSI;<74Byyvi{?LH8dh3`jdyNE1C|BLG=tw>hLE{G$HES z_i*}GZ8}*fP0H`^?p1+Kb-qv`BW$Tfy=W4zB2=p)jn?)iUn~)F`JT;0*Z(WpScpmR zcQ?yJfzvWdRU$p6GPx^oU&wd+emz6>7Qtez3PmNQd?ELpR?kCv<^0^VG|gJF{9TAa zi&>2h1AH}RP@)Y%4=00C?t~5R z9K={zQE}Th=( zqy=9XSF=G?NJxm&a;t5_!tr90gai}btM25CCc7DCuvP{3E3lRV2%V5)=ee>^)@j%e zy3#Y(6n!%rasJqbI!@P=CrWd7NZG_y>I6ffxJ_prhRxSmPyCP)9Urb`9p;wzDH!ss zQ7~B2Nw>_}y)!dxbK8~&fxf_1z{>jS$BZ4cy_Pj5^1~ z#v1c}=55AAb%O+)qQ_y*I5iDde2~VY$B>9>STd~;877^K^!6$WHZev-W+oAkl$2De z{5|Mr-i^cl<6nhg?J9#7KhH?7V_MZ*K4&9`&!5%eN%(V)xmqZaKTzwI&Skuvl`+g! z`SuT1b)0+CfxHkU~6pDhvG5g8fD7$fF)Dd@7+b+*}091)$ENGN>BB^;vMkHPLA`nhoF)x*g7fjf{-EPgda8aS~4|pp+{(3H84b@rJSL z)!Phwdv6?gl~!6>+SwVLC+w*O)}xb4?ltqh+s<%aYOV=>2~x$&;ddkJAMi=h6wXFE==FL=S2Vc)ylZ$v^U}3#n%^CY&9a!?`B$A6X!VOzKjhU&c zkm_}BIP=xv9EWkoV+=maPzHx_g%(?HO*y@Ig^IT6an%0`;Jp3qomI5uBU6=?d|Pw6F6FIa_)`6hwnd_kw`$l zD={&#HpIvfZrn@Cns>Q{FwGOT#+Dx*(r9(f%mt!j14Yi0^YDC^ZtZ1W=;9Q zv0B!CSNQ71{Vw;0(pVsdZCZ~uN~I~5^J94;o!1NYhjWll?-L53ZXSb*k#Vmtp0w9( zq_)y5jdhql<&C7BT{(3sC^aX?A8y~ChqF(Q7vnNTs*dCpkHfAl1|;$HjEn-6-D`ik))_Z$k(8V~FFBbTZeBT~vn}qs@OJ_3 zxz+G`_x5b4-GuXm^TzBNP>_-DZf`XzwBCj&mDbHWz=eCiU;4dL%U(+>y|YsSfEqd1 z&BIsSX)%aXG+8ES6NyDB?tfj$I?QJ`eR^>b8xwQC9!UxCIxg@E3;V&ncNi5Tv2T9U zyaStlW3G6hpPO54&$`WQWmah^15i38WI2>tU0wb7`1tcDZQcA5TzPQaq%&&{IW@tJ zcix0kFmDVQoq%zN=_RI+QBEzEfGz0xZkI*73Vs2uuin1CpqHl``jo-N#kSiUN%&qB zJ+&_ycwhhh`>H!wI{oJzI)O%9Ou1@N#Iln$QHkepdc|y|Zk?4P+{wbDhRoYZrm7=Z=C%qTL(6UXmQ@Gd?&;}+gW@$jFN?Dlm+nlC`j!g`f0a@#=eOPP6H^#R zdp5XcH+FtIWV{=dXbvHRilsEm zmVc{{Y{|6vIi(u#P%afy9IT~(q`+c`LDrAYz;aEdkX|C1J-n?(ugA=k_Wo!C+oE*p zt`v&T%>3ejNhxjsH!jQaKKHQAW^_XKKmGlL@CR9)b>AK9{qu+M{Hjg#+lTyJ-O{RF zo$+r8cfQ5)o}^u^O3R)ZH4dgaIxT4%SV2hcU z@N-#WO5Sgly0iP(jt))U>u5QoZA`L2|DNGvTJead(f1z^XU4A|G7jd-%E}(`pGClh ztN3jUzp|NH=R~GLCaRe8V&EHD(ki9q{{-FI1@Z+k z@DKA>_!BS#kg6C>cr3pD{YIDwA0I#M#g!;xUDfQu@4tV78SISzzrp2rU2moJP;fn60ZuWIATjo3(qzmjfp|GuZ+Qb%enw6KZ#H6q7rQS{Pbx>kd~ zFTd^8RPT1r%e2e*T5~96dRCQtPU*e9Q`*`FEpF}8T*Jn;U`}oVZNzU0o2pvXeoUb& zuczB#(Dwptf?m3P!INGOd)HgMMXLI_I`+IP!Zq6iEi5@f^MfRDbdKC47;V}w)V3H)loIU2 zw!EnwR?DX0-ET3RIseT%|MNXNZ7dR~lv!TAh%GKWKUq(L&=+lHon3`ry?1q0UAII; z>R577Et(|3kjYajog&uV`SeLeHXR@Cx3wx}_C56CW#0M3Yn9F&@`iQQ#BFffdJ2b2 zL8k2ZNaAHG_=w_B!dGl2N}Qg5YIe2&1eiz97nbRBhkPWVZ223b)nPIfbB9;LV0iW* zBn;Mi=aX()k0{a>*pejTARJ2Ae8i8BQw8+kD)>jxX;k1C{+cxbP#HWAgo7ewZX_p( z((!qvQ5bjM*?9UDb;AQ*-vmn?rJ|Vw!Q4!VbLiLpZgilFv;D{9;S~y-zyIn@pls!b z6+M~NOjBf|iM=b7@Q9Yit3!c)Fme(0E2%Z#^w2Jo;XnBo+K$Hyo91t-^A?IkE(-@EO1|@uTp%?> zVSVx%u_k5b4ExV?$1`L*%vnQzSB_97EbVRU<9RY%#f-=a{B_5z(Ed0!Q@{AYZX}P6 zjy2Tgy0i3FAJkC3Lc+8ypFWnA%$^bZ#?x9ie687i(JYlM!+BoRj^T@LRqj7eHres4 zgBeJ&_x94tlXvB1jP*BEA-6Gx?_9Fen4D+nqNGH#TTaRD&J=<<^qC5CQE$@N1g6jx zn>g~$St$=s=&L24uMV@45lFBn;Mv3EYrLKLT}p}BzAsLCJ2^SVbE66h!>$NeV-)Mi zj@_f~{SfQJSLSBW1E=azgO>iqslUXlKg((Xx2o@*HgkrpS%;c47%sr26O4q*|0T&i z&id{ztXSUnt_wPuS;Gy`7&o7s>W(!PMn*PeKqy1d8L<3iH7;g3f%d?Pe$7)B+*})= zeAfPIfuP1%6jkS>`y9NM6D&d_M8hU5-kpa~x$mE7c!n95z)yOtJ@;5Y3I!!G20cNc+%sj}b+u$9frz zBTgb@iHvIVbaL361FT%R>OPu$Lh2P{JYq~pq2)JpAhug&iMZBqboSLb<1L2nSAZe1|~&|ib=y~B9V>T>>5kbz}GT8Tx+ky4x4A% z)r#-h5;5(GpP#tM^8V6IG~H*9qB`y1k>?D$ulWKPU1w{200(2K!h7YA902Zno=pR- zGkIj2z61KdrKvkt9Zhxz7&PAkeBHahL9bX#@! zA`F3dy(?4R0Ku*2)~OKS*PnW4_tX)+*+;1`dgH;f<3yhJFA&t)i_rDH!0sebufe9; zV_)at43g5Y{Lt%;nbYt?a`)}H$K2H$o^)mM>8gGKS->Oe?F-YLThUMwao5ruNe92{ z;9uVq0_RU>oc>)6EbTH6f!fW9!9Jav-x5)0-w==o`+UxT`*5ChZ#|>h;Rd&BZT8N} zdW@%OOXKwQCv7Ft^(@$lVKAF`0HMxAk^Pe=5;bXXt^Wt*)!1&!@!h5y%>9erQ>;&J z^G9A3F5cddS^J$xB;&_wtAYnqiMPwbg1!!`hT3C}t!q#p_u)V0_cAlg6!>wQ)=K+Y zW0U>{#DwDJ#MOGwu>Af0z*r)Bfc(&at_DY(VwzDo)H<(S2^q5m!UX~|h>)9gLi;OB2BFA%9t8x^t_5rSN_`V+I|z4OVRwcLir z>kScz#_AQUyhxx!-_PB-8vzUWCsf^^s^!S-mX~EEiE*7|F|UZ{sPx~~me0{i^R?aR z<=Gq8=!yev;ZK-D*OZ=(w;=F_5pcP>Pt)zZ<{@V@ET1ApSQ4}EK$bL;dJnKs#j>}7 z-vO5;0Mdo@+o!=$ZNm6!=g+q?=^*=1d`T&zP#$!~jFT@T%=#ZVtBXr75Nd!m(vXp5 zuQr--GXxbC8;G72oq>)uh*dRV8M2A5BcGVc8JEJA3O6K7 zbn(|mTOn^}BjI4;ftsS~uIR@wM0+Xrwej_7MPf+6sinrwq4uD>j2`_#onX!x(iJQ9fA6j5}MPr{=f6y z_0JDKGgc4I*H3@v`fF9-tB{GgAwKPXHV~?o^|P9-qFfbKt*RmX79=8a#XJP9J44?I zAIO+nO8FMZ&@kb4bKgLU%>J4Ty=!aC=l+0)KOoENeq%YV60rhb()7I>x9Ul+c6!jY zR6?$p_X0uNGRgoI;b-y zv)4H6c>D{+aFZ=^)$JKwE+eu#)_cH7y z4)j9G@i=-CH|VpJ&f+UZ^m<-TkhdUfyxHNvbIX z_E+)QF5~u#R7a$Woo3!*eZ$AuU=+j?xOg9xo`gz3B69s22d3|92bw*r2dh@+gvPl8 zJ4Qzn zUpx~ht?2tkhgGLHJrQxb-qfXzIrqoL`?b!4siU&ae8;C|8ZF$KI5fucXbVBK5WQ`c zWICk@?lFU$UjZr1rkIg_uNz{9+(QRPN7;yX`1GJg+JCiE4V03Av`C2f{^kNrnUzPOT?LBLHqKpm-&Q*I0_`w7RUU_0imye&Hqm z>}dwqUAV{?6mWoaOTO&FECKj%4`IV(jP$9)x4pQ`hU`g}gWJhnoMa5IZ#Ky>QG05K ztP%@**6}EX?KO*L4i!fBU4_WFd%|d`-w{booRSrZ(qpqM35;)hyi?aG*>V%kr5=7G z91ln)=VCTYsYq|%otEJ}@1E)vantD#9N%d*I4i)@mKTKajt4mp9ky}+o^CvLeppVB zf~Pam|C4s4b=q5JztDqd<^FyzRaaH@C4nE+>Ru-iMVLO{B*w#!s*<-O)6E|*idB+n zQwD!hxRe*3SDNTHR##6rH641iCMRiC@QH{#1i!TP)mCO?WEep>enq^XF|p>e7r`qB zpE*h5`E%k;iKK6dB3uQ@zJC1*Pmh9|Y?c3fMJEgh3>1QO4@Cuc;60zb$owjMJo)c< zrO|~r!uO}=AZOgD)y4I-mb_2GwHUfi`qkN)t8gAlc!3V(v?(q;p|TG7i*VzufA;fH z3!=%S@m~={5h-hKFYX>SXIkV)%RhSbTu`ba7lB&%xO4vPp@6h~z34Cim)%bZ`4PJj zdP^)Ku5mL3R_fn#N-bbdlAomP_M-snnka@ zi4Mn{$*D$LPno*5n&w?e>k0Cg{R_4^;_w~iWx2i|a}GJzy_5d!2``&}a#4O=5S3_& z`=ldOOfF^Jpy5g&=EAV*9yPrZ!Nl`{rmm-3%Em{7K*%rij^ON$cms|;!#meKmFz{Y zn*x7QlrNg(?F|;6gU-WxbQ1|&9T%Gv^&1YCYI;Kbl~uVye$8YN5=snzO+H-306(u> zZ>%Ly_EkbJ34=qmuC6P1HY5i#nHn;k)z2pN%@zJ^XAN9oRtRu9MJO1VyK3H+`6z@m?( z?8|N5$19s1o(V%FJ#0YNHu(i4-KUK-V^p1;8;k8|V!t>;xLu_arjU_Vmb=+W)~1=u zE#cd}o~(?#oBGBWshTW*@~8A-hOn1lIyxX?1)ZvOEM0+M`Os5h?}&Gj2551{ly85x zS?&1P#?L06mD29~;Yl7E6cj)Ygd=5|`U9dO{%(}iiBT(Tkx3$spubxJX783X3nMcZ zL;Rg3#NPK%U)5FNV9%ppT%bDye>->=X2gn3V!p?FBFEyB*}k;;UQEoe#Xm@bwJ$|B5PFWup6tD8yrF6na6^J|F+0A{NixK8zEkE|2Q|Nnj8VZ`O zG5wyLbe3;PhGm_5>GoToe{bI<4=wKa?9HnRTjh~@>o|AeXNr6f zZ<*e|O7*eFW#bQJ(xB+Bw1+!1%mlPb@t7!wMN}Fa09$n-z#Ys5s<%8x1qcYB1^(&} zynu=%2qY3A;Bb8vjhe>b9D@*W4^|69)gA#j>;GiHQoObS3tYon+h;oJA)`01uqUhL zW8I>wAP4b3I+X7|P*TYyv%-r-xRZk^3<@j4f%hI~Y>_?i+7)?huNp0xuP?l~H9k73 zDeq%uL0!mlh(I<>Ppwz$a@QISUQCd9D)myT8d7e4q+%RaR%OAqw6I96mkM{L=+QqTo1L-`#(Pk@-f$+;x-f4&%<$J9XBW;>N>y-LymFN*w#`${dj}A%Oxi&YPM7FI+h0n6436LyI7>L zFeb;l;Kv>f?6zM*ZhiEGj!CQ(*V7r8To#CcKs3~x=Xlsjho@K_mPI|oy^1To`_JFU z5u4`~9z8qv4S8rgw7!<~M3<3GR5_Az6iw96b+M1)ATl>l6)NV54K+~yEztdtwE&H_ z*@y)*YeI-^F&9l}7I^e1lU3+BU7Z^}Cx6HUC20Y(UqZl2x+Zyi2*~@qO zU})RnJ+Ho};TXOYq-k$w80~9}bCeXv+8DJ(W&P^iSqc)Xu`&ZMs0L|bVPhM{Vw}gs zo|j3u6uXJsTyCAuNKh5-$157I{NyRZHP*E$9(Hg3ace#g@?aIU1+c%K&O{G*o%%!E zYL4}35xzxXa9*CwoTep_MwKaim?n>2vD1di#M=S%#zHe=0y$Ivf`LHl(P9pEWOQ#A zS}|?jw}C+F*%>PzJREd>N47;rtsKA8FOZ3y@a9SVKNdiT97kNN8DebE!0tR8O6vRu`Lnz)*^V4aJQ$W-q>fn9&-l{QV=O4Ci!Ac{m-sstEFc4G(d! zQ&A5+V&kLWPA0i3qC(Vp1t2K`TGsgb9t*h7Lo*yF8Zv1e6&dUU9l_2$QLUaUPYr_m z{n)o#9fBjib$2%sPdMv@=4@vk08IS#G4k&iq*xg!UWyJ4!0AES`MB)FrD+FhMdfIg z(I&jaNU)!&l!~Mz3^3dI-PQo%+3F9xtj2R%Y;-*OS0gVJOURKg9w>}0rp`o5O=39y z=ofwC=ILeK$5J3$H`LMafQvoPu7Pm|UZc3RbmPZ{E{oPWcziuy7Jq0>@U_BR&Ywa! zgX{=z?NWdJ_~Go%m3m$tbkTZWpOY>R@`f20-fF4+Zr(&SeoNx|Qc8V%JyXLr-1y?9 z-Bj!3ea>z>4|+8`tA`TKE-~hMn$8r(2@0?ag88 zjlW|(4rM;YT>6}iwZ0y0ymG(JKnMhGRMIIM+JaY zTL;6L%*}VD@m`D?(DFIy+8tHoaL%8fe(LaNkj)wvjz#kX)ad zsLI>KtIk<_S6z>BfIK#GF!KmYMk>J%8?0%xtJ!>;Y0VKSV-EiF&I3l&g}-wP-3$mj zxgs#B3n?p1F3DTPT3jOqN-qzVj|1LgPZsZ!=LF`-gCuRK?bOEV$E852d*pJU5N%at z;))MB@$JTo1-0A8>Qyj&i%z3S#|_W9hwV#s4jgQ-qxC^GqioBA=gn;vVKiB1*9jf9 z-R6m+$J>Ci^8u6}TOXJH@wAyCx3E&dKtOM|uNzeD+Ts3VGr#yk|kj=do&dL&0Zjd+dY+)4%#I zzfO6x!6h1^?|tzxJoh6m^?hK|SDh6#6{>}c6Dwe#vVteL_K4F5oOea^pc?7dt@>FK zX-%efTmGpr?+`1~^$B)d>3_q`4b0nl%OfWCxJM#KG$;xNi>8xIJZDbgFH z?S$5qm1OB2RlCQGi-Tx#Qqqva&@ovPShQ^o+qvbBAI&om`dfEc&qI!iX?Ug-7OXOn z+j9ey$cNk2E??iWOHA6jvuvY=5Te%t`bI0qhk(nJ7kWr)iuoxMI)KlzkU+jCvOm?t zoZ*cgC7O>4xN7zw02%DM6`2TKSBFN6=5s#)2>xg-kK;mYrPe@NzOW<5I9u;n36 zyWXq%r+Ur7Dg)=S)FFSg`zV*I?LKFa^ge0o_Iu~Aik0|}j~VB6dxnH!0XYi1%~`-F z>Rdo}jQf2D@cV;UZB_ASC(YuS{^2gW3v{-?lDHE}?QS;4YxYbm|5s_4=mNCYh`b+J zER93V4Xr+(3>2yZ8L(!tYS%fh(FLnPWG#EC{Sa;->^Gu2`zr4N-%@xeueQj^U!;-~ z3m-O`sgkYBgEQdA4I^{pZi{Sw;Px~^*))S17BJPZ!dq=D)P-pSMC%#^ZIooE#Xz!rEd! zm)hc&K@>sAD6Gm4XY~QR+Z2w@sNi@cju7U4pv>%w!_8-d``o4B@7P7MEYpr}$ zNd1W_7b_vn(~;Zgxe`Tjd~gg+eq1=R0IFdu%loB{Ow!~Xb3qhWLt)=4Jx@}75OhS# zc9OEgSrAqmD)LVku&5B&RUzvEL#aq1M+Pe*M4h2gz;uN+hq(CjELcDA;kx%CtN76L zOD%dwZPKqJw^qVHW$>%Y#Vqj>^9;<wrL?EM{2?P;(<}NIry*pHJcIi&H+{c5ye21LRy;+Jxn{GCHR*+gur1dgyZs{{XPix12a&M zAzE_k)prH$*tZ-mh%OiJ>VY+v4{KDypGLu|gCdZ+k3Q0zBA)~*qBDhsag{2XIKq>Cp#i3}9JRvq;4?fzO0 zl}7>y;vDlc->twR(*X5JnmI&Zu7%t4H=y0f-KTo_u;=`@jfm{~wITF<4-i$$D!gvU ze`K`42E-}M+6iVT_|AW_o4w!qRRkoDFWD@&N`?EaFD3$ANsBhB*zfcDjXONN_78Mt z7BN`eU*ZK5k1wKP%;_QxE{jt`O@1m)T#_3<&ORa`wkzOAHUr(AHdTF3LL_q`a01oY zSR&Z?WaDQ?P;sjAWc@{Iu<1+KOxwoe=1!*`@~2pir#@dfI~_FOe2n$ragcA)YXSrK z=9Vhpa$9HUic0T|a(b~cy?h~2K2apb8wZCk6kbW*a0JCt2f+EYy*UVFek3LiaCu^E zeLL|6NacDb)06TuV8>EqqR{GBbWTR)lE;vnRnSF*r^6hCN%w7u+AwSVF5OhgVpkyX zQ{wGtb@Zds>ot5_N>coHcwA2=^w@75$+jqrin2-D+c-)d??Sw`niP!7j#T+Olo-G9 z+UTwNnWo`X5Q&n!o2+`1cNMz*0r7*xvd7tZ$qmqCy6VirI^vD9yugV7|b15>{N7=L({?^-@8cJub`%d2GcLI zI$VDZ9}Y&`(Ip(-krAAn5Y(^5r8%GiWcPI_=b>*DD>@p(qWo@a6<|2aS!k!<*;)l_ zynQ5n=87fWzFIP}(aqq%_siKEX5VJks#-UX5n@mBu;mA`Yy#SCQ$B<0J$>r1<;QX7 zNqh?JDq!nf53+l=nFnBT2}KVM3?k_MbZw0@5W*EOitKtFV)uSsGi+)2IooK0ZiI)E zS@<_qeO_~P6p9wGXiI?|xI{f&XBNPu?!b<}wZWPgn_a4?SK8epVcY5|oG$p7?_p?rbfrm=KW9(Q`HJgtv`qlr&QuD>KLSA%`%2;bITJiTM*^9!bLP$!{<+SQ(|~To(Y&3u?K?N%#+74E|fy9pX#)&-(gQG7KgT5 zdiak|)PfKB5j?Uy(4*+63;pG`NwKkoI7ma(RIiwOd%+#ww7_`f{5EDN5wMO&E8V8v zU-0ZH<@8=ADe5}@n=Ls8+zZ>agAVAQA9 zcVt950%J6_n{yzKfJs@Y_uW^ESFPV~`B9%h;xiGSPN{&&BD(io*&>I$0oRDcf9m-A%gPs+JYE@kzdvenqo!K3j-r?-Gzdy<_c5>qOeAtU zGop6lkBS0f((?zPFVnV0m8;~1SS-M)vr4DcSGV`W%DK!)RGf`oqs-X&Ecv*<5GR6M z*PCg9P`(N+n5gM?W8z^q#IE!;?nYmJ?%&q#YU60e-7W3DTF6Ud=p#|SE|M-Y319AC zF(4?dh^9wg+FSQjZZrF74p&v%`Fa2MP5f+sC5E2wvYt1!KQcDPZq(dY>!75RFz)~-P?TFv6MRuH$xk(KF?7>MM@CX< ze{KD4lP%FnVOurxC-8crNZ#gfa6YaUMO6qwtuiQe7WaFMIa<;j)?(78>CiiS`G^{- zKL@?8Jh?Hh;;lT3jDPuzieU3w1T1fNUH`RHAZXBdQVNJ0FW*mjRvYV#;Pr%+yci4L zdY_K$e0qr#eW+7>p7Z$tQIVELehJmi%*e3jB@q)9eKvOJ|CW`-G+b*0d7*)vQbx6Y z%!nCExj?O0qmV9|d>y7jMoSIW^1p!@VqqmRu&$rbiHI!1>C`RB35ivfSJiOZv~K>< zTfd<2e7t+zrQUX`cvZ ztJK5pFG?&H8}eTt#d96z4unuJAX7^V&kMVUe8QewVKGB5uM*>^>a6M(MZ}M`{1v15 zk(e-WDb8RK=*CT~NjoGx)3kmzJf4v~1(VE1<4S$OXvG{Ht{0p=m+yrQsUsX_5lcT= z)jbqb8to;CpHJ*D(<#vC;?QN`z8c&%yNmpy;IUx%hv~fO8Js;uLk}h=a<2J@L7#Fe zIb-PgDslWo*FMX%PVY))^U({YZ`{t+*(S>tKj&es#f#TDQ#^H;S!m{{mGfT_ieBKO z>(@wnZ=2SRY|CNPLPmL<8de>pwV+P*P&D*&L!6pi6AvCd26&AnOlugii+FZv+-zR^ zGRMUcZHhicDe)Pa{Opq9rkno8&9vhxI8e9~zI*|SD>MXp!6BBe+(3*^#k`^l0JiBY|LBz{s3EL`Z$^(*L2S16(dZE*L$xcd2JOHURU?ZrtO)f|Hy` zIwAOZ3?%ojWV90wg*>tx8Y>8YRg*ks;)Z4l@^PE zzKGo;#5<|A#%Vb_@BTAN_10#SILWh8{B340gCmLn4G>|5Cbk<@5>Eylhe&_ z{Ap$^9p}9=15K^vz#%ZSBL@H-ao4tFr1J9oR9J?Xz zl)SvVi@vzQDU)AzaIzBPO@((2h;kO~o#()g0+B()KHkG?V@?ZA=wv6ZPC3P4jwgMk z?e#nN=L<-=;Kfg+-7OQ~U3Yc=rv#JCD^QwiFO7$e(}8xFH%&iO zgWsHfO5gj}?ACyy;?L#p8wY>S$s3J@#KBVEg4Bm747WU5#l<*|$GU}}JE{4tw^!%C z<{%Lfw{LCE4%UnbG8%QJpQYi2$KewnqOZO!u$gSz-3D=oN5Q|WZ90x)jlBZnWcRn5 zQX)=U&S5mD#6YbwB-UME+EL>oBJ;$B+~dys0_B@OA^V%EVLmZWzMNSo)e6;sk_FK0 z=^~ezQ)Buhla=6)(Z%(ON`iyoBL8i3{koB4zfD(>oaa-)=UYG+fIC%ZPBgy)gH0#k zx5E3Wh!$L{M3S2~A#wim{E_HD4>|y)u)%Oz2wK{2&lMd^&&bO{5=74}d`%@G@ZjV} z03>-rjIm!|yB9AbU|RH?bu$!|K*pXe`;kLTg^Wa-a+zKth$ZJ^Cia(?<5>s(S!6y9 zH~^%In)aJR@8|E=PgRXsMQhA&go>Ph5t7^^b$?Sw-~=G+=n(Q>$G<9O3kT`GQRp_Q z6mbLEtus;?P2=%S=kL+ioal3tW!8kR0?50%x2M#Vj~{M}nr@bAok!xj7IW3VUV~f>k~`_*LejIXQ;!;{4!DZAXzjy4}y2%FZKOpsx@PeqN;d`L7_E< z5pkq9;FK~UK}n$6>-Rv!Ft@k!;&%=4Wc<$#1xSFXs7_sfABT*_BbVn(`tsE<2qCVv z^S&J`66)2}8n_!BV>#q589hV!%EwPZn$*W~VQJI_K@Z4>!Gysmg~Qu!h~HjQWqz)1 z1G<)%6)Uz8LbhG3o-w9=km_r(?U9Ug{<#Q~L9)4Quf-?nvE|hRSO=s-7(-vbMzjll z9^69*we`)gEO0HaX=$_$z5)Z19t4QR66K|of@S(pDRl($@VyfW(m=*=e(36wm3K24 z@Mi-imeAXHBI6$??sc1CoP+$8lM_J+cqfYC2R8A_a8v>~a|)(f;oWRKZ@NY~7&{gx zT)zh~;51;(Vozp!n?LZv$||0)v7rM;dzZ6Vz$>YDui{&s;O$RY7kfcpf%6L&k+-8O zS;!_+$0Pn#`T=Oczt!6lvNce3P)jV3}DWMc8m0~X2KaeLq(X=qK z`FTv{63=JcEQ^LYh|jdZqzEF;`E74IaDwfYjvP(pOp#WCrt19e?{fNU5d^}3EnPC- z7G24#b+MtQBhj*kex|CsHWH%3tf|dicHNgr%(Klne_~x<0%A!cihufhVvkb@%jKwX zFtLlaz-QwfB%H3o&z1%be9pF6bA*(XXX4tWY5i@>kwItsU3QjYxsp$F#{2U{>L<-u zwcCgam`6ecLxaH3C58e_*iS7hr*!i^c!}w+f|a27QE|EVYCy2l$EKO0q-Aaak;UW` zMQo~NP zQS=CNNU#{)`9^Cy3$aleJ-0qhq%!U;GR^y-TrUQi#8ISo%MRa8T^GBJw_M;(#4H7`) zO;->H@&oqDKJILk&vCj|8;JNnrsHX@^!&oY{JSia6(f)TVv zMz*z7|3qArdO}q<=<~Exu!xMp;Vn*8TbPsC;y4w}eHLvg`YLHM8{;u)RDYSducpO& z_>U&{r>sb&9c|^;U&Y+}yQjQLRiIv)&?7e-dwybP1F_z$p?%B%P0t{mgK@TTI4!>o zMUZuKgZDpiafjl&-%tpunphw5gL6C&n#HMC^zE0M1RAuCbz*ye+hRER?c65y#LcGc zW@hev(s4fi)Pb`_d1TU@iDp@8TZ&~=BlGoc*XtTk06n?wz>B8^J)bL%WPb8fs z4L#mYOG?6qW<7qeJAp>>&yz%=DRy+HUC+jieN8s36@mX@(%G_2<|aByw(3L4uOiqM z>~l;76E=N~gl;A0S3=Bnsm*k?k`0nU7(H&H{oL;iso@}vZh|?TYAT#8Lb;i8XRRPx zrp!ccjY*~@%+v1SWbHXe9Df%L_f|M>;-bAhY>b}l z3KA7KS&bSRk|ipU`LjOFd*s4fYatzh(jAh0B^WtHb1#Nn!>dM!H6GX6TkRH{&oq#swVP=PfcpFO4=2hK2? zKjVu`iE_nt+u+3vBi9rmzX@;d?M!hou_5~|Jp3xmQ8v7*W#e@ zzqpPglJ5M5#`2y9Jj|hts|5!Rjvfb>LaJ@5bu>Tz*D}F~(WApk05viuyC}nBX6UOx zwfYZZs)IK;a}Ym5zj~KTz#Avdm3OfV)FT!Do0x*-tA8UMp`nm7WoIUq$>KN*zteoZ zoAhLY{w^k2z({Lkx7=iB>c6$Cu7n=Iq|^6t1Io~Ja^Hs?Nbi6W5*B#1(0(zn+;LXp z?@kfZ5&)ZaMi*-Id@lDq44!v?9E6{a>X0I9L!WjB^TWi`%x*F`eKr>igLALX2E@!* z=p?q*V#yC0YIm&3M8Drr!4?e6dpIZtg^IK{YNtyp6-8Am&JGi02$po}yq5Fbv7iN{ z3Emlt@;J;6qTh1Z@EeyL$9f5RBOebV|_Y*x|$rqafdm`dz3%}LxXBhLJhzE2Q z+E>g~Ee4B|18e{4gGM7fD}u9|IO(vEnfkS=44Yh^7LH{(m~1bUMh^sCvfTnVw(fBF zbkv>j!Su~8CYuYMhZ*b!)n5LSrM+%XsbJ9GVQY$KJY5b3W0qGgR&&YQ_Os5*?i$f6 zEl%ABo}|~givE|QWseeDTxvdTPMdl|Go#?|{4k-n{}ykH#p&z(hlUE)j~S5m40!g- zuCOkw4WT7ijF>|Dd`GWC#>S4s+@4Yvn}WI{xYKZfrTN-FBnvx9Z35$YAEQ$cogA_Z z-V2`z5a=?rH;wcjrU&bE&i^}BHsUjB_qu3ZowB%9{|hnlzG20*Y_eN~gF}B-1pOPg z>S(Nc+4Z51H0plAt@lzEKRP%S`~-_0mk+|c3Y4{VyRYexO&uu{+O(U-V)wau8WsOl z*7YVeQbvvpS={E3%Gw{qs}zh{z#v^~Ys@{7O<;Lpi};Ep zq=v0%*1(fId%km&VKKD5FFLR8DmyXzA#oLT3t~TM^~yI}FoLgnvm!lO9dmwZbmu)E z&5i+L$VV1!VrqLN!M4-o+o9vM^TDJS&)se!9L@h@0ZyYjq!(>wE9MW%6PqF|bs~_z zxd%l$&&%6a5fZz*4{xE>M1RGqWN{$TD6rdQ0th}EnVC1lu2ek#{!{crgk|>FN^sPk z%W~(Z=<3^->O^eY{jFhKZO7F&&dD;!?=0Uqe>V(wPt#4l8sw(b{t8ra} zZVi0i{S-%V$nX|-(4Y(0c~dwIZ+6=|m%1@|+jSM_Jv4$X)|t)E_DgBEZCqx@5Ic%QXj>C_NnYkDDMyR_#xA`Hw&Lyt507R+J-~Q zlRL52R^3Aty#HTQR~Z#m_w_FzAkrmWLyLq+H!_GwH z-5u{d|4;9HxU<&1XU^U0%-L~%yFR<|e-8nnF+pK7A&ZrD<%^4?GmBrp8o?GrP@!M_ z$323*R+pB~*Ho=xO;2!_%-fb(LPX-IApG&&_E2)N;v!lg+Ek?--_20@?9#~V!BJwo zXi;^|^7Q@9!{(zi-JHCSp61kIyu!HipTXN&IL`Jiun7-p{P3NX?bS6dtLI_-*5kUVN7c&E!h+T0>Y0;k6iJP6oS-`fDcPQ};vigbXpU z$3hu`=$$8nV;zHEwwD!*#Bzj`R8x++l=v9Ud{~S*TO}!WPy*brcl&ivDD}u?hJDaZ zcf{>|ER^MFhZ3`*2S$a|e(7v|J2P9Fa`OVr7_V}LT7PB2dR`V79$OIv^Bz9J9fe)< z)H^v{ru(hDQ}K;@?&zl1m7n!?mr%YotG-9CNmT;tHm6X&R*pnNk_LlocItgq(3!uW zRxp5?1dw6;6G65}isOtjPQsv+MJE<~{CpRyO?ZJmmp@NVcDPi+@BzQg^j3oAo)#Dk z<^%9q{s~2L7}d72{a_^bUE*kdg`UY zaW3|cv>h@jZ=VliSr6Ie=WS!k$x$4p20Zya6W`f$Yc(+mG9WP5ZSGh6RZp>r;-IG4d%q&_Dtbm^QLq)%D#jDMbAneWH9M(G_P#tM z_!G$h_(hT51EwGn2xLJU2>oegm7G6*7)tf-iU}V>BTEvz$PODx7q!`6*7Q_>g-sCz z8$hrws2ze?(C)@RIpYmq6$GJLqOr%CpV>pMBdjxI6XmY1A$<3?-B#T_zZnKlX|Y?; zI-=vwd`5T|f-N&Jw_0g)NSOG3l>bC+4iixT6TK(Y5iLpdgKw0Ju?tK0yo5px$|t`y zg+t4-v_I7}21$>$9z%=bLChdkq;euc{Ny*FXeiX%KQ9M#vH*p$kbM?X;($2p)%`&H zQlgjjEPb-DSizVgtQ>o=@_FRB41lz@vaX#RL&cBr?s< zzql9EiIH!Za==+k_^eW)&{rH`b(VDz(5*&$Ho{;iA8J3${nMY4sOsWbukPYKK@shR ztou1_P)y6h#<)E>KBPQwtUeeTmL&sTG(}=*FA@5XhZN2Y0+E|yS_<-J*3>#0J|sl& zwU$0fx+w=a4wt9@I7CYA#gFy=Ko7OdfgRLcgVnK;@T2LS^RsL6`PPDkoQlM~ODORa zh{~`$_ER4D7D1oUl-teLTPuQhs`OiTrIlQ7v2iN|Mp*$mpAWnN)aW$V{P1QeFc_r< zU#=_2Kw~zP29EY!CLBdV9ZkU7UR=xL>wpvp1R=#!(FOi_XgRFva53ln4FB^KOEcct z&v#glhu>-#^sBjwpJ%tFSY*}GVzYX4D$^AB0P=Jh_^eob?_WOtig$&15rUk4CQey= zZ{z(DAAgaIZQ=;JbMP;UicC;gM-Vp@1PV#UI4t?5)5srWG#3U{{K=x&A`3P}X9s;N z4`c>|H!xoYhYivzI$*Cb;^TXu1m_S)kiSyvP-6j|p$t*fzJ!%x9U8=2Ko1~O+v?Lt z1wzfQpwQQF$zBwKChofaK6+x=wUXt|3#VN6l=25Px>$aR!c^zVdK@>FT*shK*yLa^ zh76Jby34oiw?QExrji%V9lZ6R-SFbJ-(-(}rmh|SG*pAZ`nM;0qI0A(Nm3?dE)^kA zDBpC?B&o4)6Yhsql3ymuDl#8mXJIoeG?ZFSy<~}*I^cEMt;3lP@E%3Vxu?LsxWq1{ zin`}e=u~cZtW{Un(LrX3Lox%1{-9*#m}KSjp=4zjXJ;V+a1-ZW%|@nTNcL+DKch{t zB?G|H@j=V=VrhgX=wG+1rXA$FT>XH3J9N>5HJd3c%YY8L8x~c-rRL^e;u1C~a!9M;sdjiqQFSEefOmAr7 zb&&nhBX9x6ilS_Vt$@yec{#1iG%u(3{-2PL>^Dm>?luYWcYs1Ff|%Bd*j+9-PE6mn z5?~sV)mgzADdbge(~~d^+(rI$E+0?*^3hd->?P3E$dDWD;qJ0K6cjzNpi^PU^ec?4 zWDX4ePT3YxP>`VKd0Tsq#FFwwwA~Gsu0L$z;O4@KJDKcFh z9lix7^$xE4YP&_AmO_QdIgwGlXaM%Aqoqn35fq7U<^Lq43_w1QHmXW=h=8!C-kn7Q zt7Jw1OM~eBpqfAWOFF7Xy=*Ck)N3b1>>C@y?siC744R$AKR_qw`2N?a^Oicc zr7g_Y2HV=Ymhr)iBFF%}6a<^s_O^-eahtvTQx4mY68_e?rn_Hvo>R|0Bw`J)gT1%< zd|W(}V{u&f9zIM^ov6!s2s2NmAB44R8ccOU~M=Gg6sO>7=!n@xzeWUAA z#&b{pkm(=US|QVZi`|2v$AP5HgQ-VP++aU$ITQsM)I&`g#-0%;xbA$6C z6LuE~(5`3+e`hU2(HHV*R=Ae)9)h#FbHYIhs&xLCQ{QdTT@DZ-&BEj2Bh|XQyGiJa zK3?#^psRI0g_Et*g?XNH^~$4~gr9Dd@?|16FiPDah8!xG|DA5I;{toCT=m}83X6|_ z&b5)hYNQxDzzBM!uF}Ao{hcD#pPVe_LeXUislk;r{+6SlytX)~w6xC0Fvknf6KSo9 zbQAXy9K!-LKkQ725IoeC_4P1@_^j+9beC9l+H}T z%_5{>lvEULr=y0%MpzImPAYC4MbH~NUWWrB^i4w5`Bi~G$};*_ zbD04f1zOKqWaY!Ddep3s;PB0OV<>k{Z{I07Hq63Z4-r`Eq@s2#$qX$@O)qmuM_XLD zP z#T2LG?WS}5s%2owNS@XL;p?@KuECe~oJ~GFEV+3KXMQ@;TDs zi;6b(e82&I!9?X^?qB&^E6`|YESAoK8PcYj$pEs_Cb%kez@P?ZhSQP1c;XgFoap26 zD$N2vAK)tgQdn1?suUX~oT!OXG*uIwSnAV}6_|sr3y47d-k|IV+&6npiaf4`hg0tH zS-n9Y^1LZ%E;lyi#vd~#2`hSf#yF4lR%Uy!Z~0qQ#f>PK;Bnh7ig9Q7Ae3hz;FP^ZB4uCZF+Wz_JwNbx5@>jKM!jiW{MOCw3&UIGxVccJ7qAC08^G_F4j{o+>BaJ--u&Y4&kpofG;Svc z@}*nqQ0`OTcsE=>j7@~k^F0q`PmaP*s>RJ2|OiMC>Sbk(}Hwc|Ou6FIhK?Ucn0?l?Ha@-5s7$ z*J>I(6@If3=fOw3(wLz%Z}{D?Gutb2w`(0fC4H@j@t#5j%IL#o7EmWwdpYj6KtoGO zju&AA^Ex565vPRRZytw*UiWn~sN+xpF}+tC`C2QV8}^gi4# zp5GZ*1AIqZ78H7q!kBY1GA;`g_m<0_|IW6O2VLMmR%{8lTqllOQ)l3|M5#*B!9gwI zHZ85z*BJzKvf3ye^(s4rmG*h5r$cHO@yX0~SenNzt;UDNBJCV122vD}o(cs7V|{I+ z2b)w-%dp(l^HF~4MIGvY_R|oMkuW_)Fq_*p_VPEJ%~7LbpT9M-Qc^jP*S1DjszN)@<5MlmT?syU@2Xo*oqXx*C?%>G+S0~ zYhNC^Y)zpSuQFc!(ThD*24zvl*s~4y)`Ns&Su^9e`lesJsm#HgZ;p++Ra@P@+hzCC z;GP58rAhEqz-)|>jrHxPJ=|F5Y`1qxWu=6e?%e(Y{;|CJ|lr6w?2dovU|+~_AQt+Ox}Wn!mT{ib z>Z-@+*^edM6yEA0u+hre?G_*054hAevA{I<>QJw9l71-#fcmivJnogN>LneVHcxQpB;g8@`(3pF;WhhMJh z=F0^)%b3;*3wNOa5+sTrT2{GIZY~(s9r27y#F0-kwy<1!C=c)(;>k=y?*FC5)HfulO*4v~_HSwNtb767?2+r?`+tz2lE5e|10$!8_*8_uKxS(kz#m=T zaOG+wXG;&tfFv;^_8Tt^%qmS&%36e3zKs3*GuuDOc(T$wo-0uh^PN=UcnlVxO5CPH zO-o>Uuj|n$IGaiipSjKh{U+}5bT&+Pv{hv1)Oyd>3>6sNVjOJU=ZEk4+Rd!9^z#5ya0Z;}a%;M_=e41())ZVb250H|vWNfL$6~_s zD6H5vlZGe=F^OFpo-@(6j>a!fdlY8>xF^-L;Aj~-LO6i^H+2{*NtDaC9GF}uheFG( z`4iiASkZc!_*)Sq39=aGQS$Az18yrnEdNl<4{yKS!m-j`Wrb%?t>BB2zj)#(66pPb zEfpr}bGRsaOuQ1w``$1;b=u)#Za`@Dr>nup5%s0eDC%!7y{P0+HVYa@$e@4)vyztF zC^5;nAjCyb&;uYLaeH5}dA#Vz?T`I~Vz$AfiI-BbBjCvu#|Ky4AZBB>U{LRn)};U3 z&E`b@mr=>Bw;f>s^1>(kk-At3 zloJLJ3T*f%PhEtSh<)CE1;9B!u#Gly* zNX{eozFaYYN|Ms@4*FeDCk+0E>6>3B;BQ(M@i69uLwGs6n925THO%QgHTa5_XE|QV zYIDhZEw%a7{is!}hei5MTI^$WJ~)c)K+Xbn=;CS72ap2(J`REmEK5p}t5!^r`UVD0 zH|bC+1M=Sk#AIJYA;1eFlod%h8o)!trlf?e~?{eSk)-Efoc zOrDYu>U{tHOt;Y(c<-i|CgM5eOGT7NlFx#hlJ9gupGJOmCkf_}bJA8HPfH!@DOY0&)B0=4HCIf${1L z>E)}UEa2ZD`WcY74pTah$oV;ONwR=uBQsA8Q@KtaC@tHGVzy|JY=4EfmwLwlk~tF2OK9;y6&JZUh}H^+ImNwIigws_&}b1z`p;$xX{ zwU~+u7=GaFI~H0pKc~E_Cy0#`Pm-HY*mUdBtfJ!1c63 zhk^-cdet2P_D5h-*WjIWE{2*?6#p@Fj=rCnuLqM;Bpu*?Ow9enWa?pK-?8z}Jaaw0 zkaNoKr#1JF%xA5;uJ7Kciw{<^ zU*g78#|SAXb|H=xC>@#0m-f6*#@a4*wh6(%c6t_Cgu7q&-gKw>%4EqpGg?-_iE&|hNI9lZdM85EAclN^@eodFW zKOR(rW;jw_1O6=K!MVk5J{E%KTY()b|NMKHmIWM`JGl&x&oi}2&W#XIlrbSo4`Fxu z02lkJ&KqXQ&ei`I*YhMX^aTrblc`I^3E zJ(sEoCvxh$8%jiOO<9Xw-sID-j*V79cV_z+ok%$2Ux%G#h%36gIX)Lqscaf5FALTB z3=g1;lL5BWbLS#jsv7_DxCFwBpQbkVB&MRMD#Wf8wlWg9(?_Dex(Q#)Y6V;BL%X}G z8^LkEt@Y+R?tZ6!04plTD^g@(1dT^l-?^;@Kz7e^3I2C&z`1PW4)9y+b3*~)HLkHE9OSe9bF;MMxo?5 zi+gve(qIxq&6V@JC%H9;!t2AjsD7^iIBOQf?;OWIfcja6R0?r4C3U|GbhLvlI|>F)rlr9h`y^Z7>&-f%t%}s>yq>5 zh@$^a1r#-IcS)lpjn~~@?5L$*nwkR5wm(Kkt-ZIFYS$|!Ki0lO;ew2H6r0rftX7bB zaxEXqIijvVQwrRk5l26|F!|$j z2k*~qmpocZ42#OK3T&Y}zE_|0~ZXBK%voa~T+{=(p z4Bih*=iQI{#ejmNc$bZG|7l6DRqFC$Z?87Fx@*4wkCDwe(|%;)g29}RL2==I^8KTX zvB@(wXUVm>q*HBK;s!C&Hiz+d{w&5NzgNe zqfHI%T-9OSzq~>zDA2Hhw}B`MeUDeFUDxnD7a@~jZId=2+#nOL2rT8JN z*kAg3{YbD%v`uJqJzR0=dB9|TT*ZqdV*K=?LZn21(@=zfAIKcPlWKxx#of__n)S`tMo^ z*+&65og2rnK0y&|?z~J}PctbKS3><`h{W$o=^rk=b^76mvg^2OF);)Hqp^nx6)X)T z(%|?8^u}d`SGgL1a*#?{&N%Y}&;q=)aB-g3i!0@LWm)9vjv1mR^_3apPV(QaSvB-Zkyo zxl2}P)?B4KghDfxnx(<#^L(?u;xO*fnMMQZ_s4`|Q$LIf*BpZfzOz^E3F5apl!*W4 z{_>@Vm3U_vU!zRifYs0q8K0LoUOYjyvho5itd}4f-~NG0MTe+x&L4^shN0(Ek;h%i z8h${IwXD^+R~U$Sdtu|`wy#*q#y^d|1}#@~tF=O8-S@yNsomD7@LT6+IxJ^4?YyY| zat&E{KZ^9_co1sIM&dJljLdBKlH}3uavybaxo-h!mj)MVjkt3loDev=p8VTN+YJpK z;8Yx`tD{-h8(EC8!K^wec$v1aT`xOm?snck`hCR9YTFm}$4zGIcZ@O_j50yBudt{E zO@c0F@?$+~Y^J@>hxI@y%Z-OgfS`o^igV0&YrfKNa{fmBFYCC)2TbH- zV-|FEIGyhGB|dg%_hyO&3jItV^Q&%O=xYtn8gkLAR)$#tGwnhSxc+MDTh4e!@fN_*Pn{N277JqxK@c#vGwdI~u?eY$J+ z$-zb((K2^1vrl+?eRkDSD{A@zQ_nZ%aT=S$+ z_VwE&F4ue>`Je2`@6PJ2I0s&FivF2Sj>XONFi0NVim#T5Ab*yrdeIR`<boL4 zUMW5CE1a6wZ5IP*(or4*{Lz^^nZk4*RJB`)Sm|XVskv>50fz zEh3LhRhP<_XqF>3e5CAZ8q=P6j+Rz8$Fm#Y*tTrPo5lILmkw)c@1?L4dd$0-^l)i7 z7rBK5`ns3orKE^EhIV!|e13@gZIk`F?e%FxZ3O-m+dyWg2b(v`2)kuv{#Z*m6Ym`c z_Yv*XizioI&+zGeF6@~JJQ``O`uE;>aRTy)QkePH^PaC#o@*J2K8L%grlonl(}m8L z{yJn_^{AzPXl`~sYdEB=CRNu>rqwfA2`m$Ii!E$upY_g9g?nsRa2jTAAu48kOrrWF z%t29`Ob$bZ1lot0jtduSYfBET%t;Cs{F;%c*cuu4Z*Dz;Y4vxqSg(5b^y#aAX84CM&A zOs;uE)lWX;6T4gQqT*HNFY8>BgBZRMkZXKK*%HkV^&)1X`hoDgyq~U1lrz`ae zosvKKUP1Koa8Al{_>aFgi3~oi@@Fs*st}qz%7fkr_f@=u79nNIN|#;Dct=a* zy9%MznqtQiQ7jN)jEusq;ek{C-uaiedv2$A!0n`a*6?!n2febUYLb?X2h*0RzD#GL z%aNk>X3bY)@0T)b-w0D?oR>+DUEDly6Is(~P}R*N`O6^*7RqT4waE%=re>z@07I0r zm4k2gQMnvH<(m+})o-%7GW`336ozyJp`Ty)*C{is_5=JWBfd(`jx?h2C=BDXngG=0 zf)0%VS+ec9sI_&^)7v>YrmUqTx@$7bMnB93ljG`bw|S#@q0>L8z%KDoHf-mN{Sd{aRSHq+vnN3xK zc1L;(^u;RGN|9F~1S6&SG82 zGl-4)lZdU3m(9#K&Dv!4S0|RcM5<1Ua_I)jZK!7}O@iuE4LQAhFqF05-~lXnaTqWB zk)tsGmHFU0evUHKzF?CRQPLuHA@l*7H|X?qA3 zZHrPmD!i1*JXxS-X(d`$#o2nwdfzBQpu=${#h;2$aT zwXWbPI3oc@=4fJkJSvgPxufC(zRzA)u#D_L=k^er*Kd>2+r;@1n(2hVh}h70Eebbu zDfaD@I~?Dok)8qS!vh3nFjJ${Qx}+7X}@}4R!sh6EyFi`b(q@fCrMc*a(D^!LAeu0 zbu$>YYduu)M(Ji+Zzh}46NiMt4QEHKy3a&ysqSjAv5F4Ot@k!c>}ETZZvXt9n&;LK zC2vfX3)Ol!SZh(ZPxoZEIX1O4wp~3sVk*orGe25c)vFFRF_>x7rTc;Aa{4)?*n7l)j>f01mcagY?f%|N)1V6F_~@tgN1um-$)zRjcFr@S zs=4k73bTL&Y$04s+-g`7Oud_TMrrl*4pO*HDZH&+siG-8IN3iq`>DSa@+_LV&8oFw zMTJ)q>ur7=oJ2JiokFakW2WGP@KJ2-wIr?{f;M_0jvgF{&WxAU*+~2Qz=^6tIr+0_MGA~h>O+*afse(keMEBq}i$N%~i;c86lWHs8Si>)av|zKz6Y(1F<@}zWxX5qP->J#_IGB{P4?& z^!I-QP+q?x`(@PezhT<{>3*dDH<%{q19fEYuY3d;EUtve{akMtn8HQBKx~8X;9!sE zC!b41tTop&qX_lr(vpFK0?cucd5doh4%gDs+CH7Bevf!4Ic}AquAxzC_h7%H35ZZf zt_x_gnUZd`hd>z!Fz_{OZ^1BSQ1rtOX=4P{w=-&72!p%u8-n78bAgC^#w7(=!y2Cx zXVyzOy}#Q7qXj#-PoG;> zcChS?LD}2i-@m)NdwTn@$BFWV#WX2X>FsL^Q&Rx}fro?d-o(+L;-aFy8XK#Uoe4y+ zv9hwhee3M({LpB2|M~RvR7Xe0Tde(z0I@bnnesY}>YAE8oa2`L+vnmpVqbI^C#R=- zD(o>tsFmd8O3TW^Mz^&f55cI$qy^*cx7lYVG`+&R!VQ_KNyjG+DqmnxM!rZI`qZC5 zbP>JlCDXn-*}iRiqLNSMkhrN=WLwLDS_+qkZa5GRCP08%0H-5+cs|cMQ|@`u;!%D7 z*zn*_fZZYsCMzwfwUe<)40PtaX)olP1}^YuK^Z12OO^w|mCd zC*}=KQzc7LZ%ELM6KOoty?V_p5l~TYpC;@=k-w_>(*NE_@<*=&z=u^_Y`nI0 z@Kr6>oaVG}^eJC;8H0v*+kOF;WoUWyJ3<@;qGuiSD4<&Rr?Zn0Qy46@yR&WeKWhDZ z5BTpVj*2%?-%_WM1NH#5UX$9oE8XxqG>CcD{A$3dd4zD(R}rj8?>Ni9h} zy>@x8;~zV$A5DDsZ)YK>b~K_MPoSp-RU@5)C((Nx8o^X_0O}D#>a{*pJip1<@9QDF z*7xUplp9H;(S>8}L<2x;N5HH|CY%;F}J+3A1fh7zy3^vXUfTf9Nv}s?JOtv^F zt00)-JOu}!c3@NgL)FNizQQM4%!nr;oAo~&Shjam7PKjg{= zdBkj|!XN0+isV0tm-r;1_!pl?uBRHgUbltVlAQ7@De77Aca$gy_G5@x2ZK~(WrHg# z-}%$koh_~hwiVvZP<^AWZ#);U7`b|T$=}7`=JG7;5ju2vU6{9vJmMX{4hleJ0FIX) z?y5KIKZaF)%gZN9&^JY&+-l$j^U@)?A1mQlyL3DsT}6D-fxY{1nKD%dOD9a6{Ikdy zZb8H;cG_IHGh^TRsPNvceoeqDN84wFD`CluhMMQV5oJ_P|J!2DS83q)=G(R6hinlJ zj*-4TgtnH`@(?jV$eE`9K6h|F!xMLrj=)|RE3Kay!Y{asa(pEyHL}=Pe@_}|sgFIM ze!QMYg%i`<{+q`#^;W32S@?bj*s-9WIH+pKT_q+?KhceiVKyELRH+`~+ov1&X!UamW4U@odC zPn-75izpoiwntUPprC`0))-Zl>?{BfXbVX3EG`ld#|6e?oi^Ua11B09FN%-z8<9Wt z-V0*>RX?AS!L_PkLvG_9w_%|{{jd^*eIO5@TR0^LVVtM=E2$36HhMxDEUuF0rl&Z2O4K7hZq}Cf1l8)S_LsuUsxiM7PXn_epJROK}Qs@h)vQZ@kch; zU?QZo$~zFb63ZV(xW!L1&d0Ar3lrzvn>)Olt_A*T9v$%(QP3g}AR@f1-O>fzds+f7 z4=>T&E(}^vvHkNB8xw@2lf_R|gMqgQm|C6w{qC@QZb!P=mw`);G!55I0n1YLRFWZhEkR#ima zX8))_6mwdFtJR-IjLb?%BK3?=Ob-ptO-$;el`s;^B)d{;{#$HsK0}lm+Pbf)Y%Sq< znbAlA$PUbVsezbltZQ#QbEfv2pgOQ3WhOwK$op6Qn5)CZ6#;aS+D#qJ5y0@bI={b} z7qFByy|axV=l3{tBC*S~4>oD1==5rA+`or3J2U)~yq3{pLrPN_B(oL<7wLNH7QZ~Z z&|S_DlPpYjDhmb0@u)hTO{#AKpW>z%8znm8bQ&WRsVPDg(3otK#V0#geihW2EdOpZ zMrC|+I~e=OcvX&&|5dn4#J&_Uc-OObr+J(!1h`iaim{Ecqp0@2z1?x0X!;LzZh`ERSdas?6v)Xs;bN1(KUs_xQ4k1`&?N-CbJl!+Hb=P{JWBt^3 zh)WL~ zpeRMWp*@->j+Bh-^eJ(o)JJ1$!SLFLFc?f@LkAKRYzzy-;^nP<-er7XX>4qqo160^ zw~PKyV->ESx+C}r(G-g)82o&8sxJ_srlG<6{(WqGJj_7dipTHq?y}u)M^h}*4q@ix z<*BzK5B{ga*$})QHZ=v`|Z<>q&A}a)W?ro%i>w>U{JKdhs(nQq-3Kf z;=E_SrvudocH_#MA2(;1x2PF=2&?4@{y&T5f8J`e8}YAu>BM;50d$B~kbtbTBDnm+ H*YE!a*4WBB literal 0 HcmV?d00001