From ece8b0f7883dcbb31d0eccb94d8ac7fb735ec49c Mon Sep 17 00:00:00 2001 From: Okke van Eck <39912605+OkkeVanEck@users.noreply.github.com> Date: Fri, 21 May 2021 12:40:28 +0200 Subject: [PATCH] Add documentation to project (#24) * Ran the sphinx quickstart, ignored mypy on docs * First version of docs * Added installation instructions for python * Finished installation page and added quickstart info (not done yet) * Finished v1 of the quickstart guide * Removed heterogeneous setup page and added todo for creating example * Added manpages for the datasets and algorithms * Added helpers and visualize documentation * Added placeholders for the Protein properties * Added methods of Protein to the documentation * Small changes * Reworked the README * Added whitespace for enter * Added github star and filler-logo * Starting on logo * Added logo * Removed github fork banner * Logo test * Changed logo loading * New test * Trying image tag * Trying image tag 2.0 * Trying image tag 2.0 * Trying relative link * New size * New logo test * New logo try * New logo * Reworked logo * Downgraded matplotlib to alllow CI pipeline * Added edittable logo, fixed small rst things, fixed compression of cores * Added some figures, added reference to license, added license --- .githooks/compress_files.sh | 3 + .pre-commit-config.yaml | 2 + README.md | 46 ++- archives/prospr_core.tar.gz | Bin 3381 -> 3390 bytes archives/prospr_core.zip | Bin 5942 -> 5955 bytes docs/Makefile | 20 + docs/gen_logo.py | 100 +++++ docs/make.bat | 35 ++ docs/source/_static/gen_logo.png | Bin 0 -> 23408 bytes docs/source/_static/prospr_logo.png | Bin 0 -> 959056 bytes docs/source/_static/prospr_logo.xcf | Bin 0 -> 52177 bytes .../_static/quickstart_example_fold.png | Bin 0 -> 18716 bytes .../quickstart_example_fold_no_score.png | Bin 0 -> 15408 bytes docs/source/api.rst | 322 ++++++++++++++++ docs/source/conf.py | 63 ++++ docs/source/index.rst | 35 ++ docs/source/installation.rst | 65 ++++ docs/source/license.rst | 6 + docs/source/quickstart.rst | 348 ++++++++++++++++++ prospr/core/core_module.cpp | 6 +- prospr/core/src/protein.hpp | 1 + requirements.txt | 1 + setup.py | 2 +- 23 files changed, 1037 insertions(+), 18 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/gen_logo.py create mode 100644 docs/make.bat create mode 100644 docs/source/_static/gen_logo.png create mode 100644 docs/source/_static/prospr_logo.png create mode 100644 docs/source/_static/prospr_logo.xcf create mode 100644 docs/source/_static/quickstart_example_fold.png create mode 100644 docs/source/_static/quickstart_example_fold_no_score.png create mode 100644 docs/source/api.rst create mode 100644 docs/source/conf.py create mode 100644 docs/source/index.rst create mode 100644 docs/source/installation.rst create mode 100644 docs/source/license.rst create mode 100644 docs/source/quickstart.rst diff --git a/.githooks/compress_files.sh b/.githooks/compress_files.sh index 35efb96..158e74f 100755 --- a/.githooks/compress_files.sh +++ b/.githooks/compress_files.sh @@ -13,6 +13,9 @@ COREDIR=prospr/core/src DATADIR=prospr/data +# Move into the git root. +cd $(git rev-parse --show-toplevel) + # Create .zip core archive. zip -jqr prospr_core.zip "${COREDIR}/" mv prospr_core.zip "${ARCHIVEDIR}/prospr_core.zip" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c1623af..56a2d4e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,6 +10,7 @@ repos: rev: v3.2.0 hooks: - id: trailing-whitespace + exclude: README.md - id: end-of-file-fixer - id: check-yaml - id: check-added-large-files @@ -22,6 +23,7 @@ repos: rev: v0.812 hooks: - id: mypy + exclude: ^docs/ - repo: https://github.com/psf/black rev: 20.8b1 hooks: diff --git a/README.md b/README.md index ff80515..5d82976 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,45 @@ ## Prospr: The Protein Structure Prediction Toolbox +
+
+
s~4A{N{g$5E34TJ2%6)*k;OUZj-Cv2q9gZzZ@g&e|XH+k22Wl*|31Pi1>kRW0w z8diRc!>;CiF(*|zlZK0nd%LSKO5C1*DMbsV5`kKcm4+`Mb``SCNedYO7{7 zlRT(%e7>jd2uCxRb&G|kl)+K2)?H?^_UqPV2u}_3WCB@FgJd|Z0z_2j<^Bil4|x_{_m)+F6zl!mLX9@o zMY|*UWx@tZ-STL0hE>b>?!o#*5FlhZI+7lLlk(e?qiecQp%A!wg@mQu_u(ecElB$U ziTc5iSk|}Xc!bz(e2K1EWa!^I{DQ5DoKaAa%;bA`Q+B#9yJ(=!IPeqwdCz!sw;5 zejEg>fd)Un|HzQHI)Q&g*&9R5Mo$W5kE8%W13X(ld?3s|E0zLDuW+5vy*+2e#MqmW zW1WVEr6v&c4=e1Z5K>m_tg@;K$!Rb-^rRlK^1V0S|H%G>C}jae;zjOg?L8s{Y}^L* z;l1xg6{nByN2or1if{o#eH#C`uHC+Oyha%K*a2BxD!L%QbXOCXv{RMC4ZU|dST7S0 zydJQ8tCKuNE8&YYAn{pU?Zj<1X1qmXUvA1q&O!oB+;7H6JIAn}swRWjAW<9Zk}7zO zh&;y!>tP@_cX26_zkkB&&2kM5!8yn>=4$hDh3Xf!<)~yhK*m!{+))6$*9KLZOYhCt zJEt>kNPeitR_W=q@=u<82kN!h@4}ZjORF0i95&O3P6Kz%IRgB9dO=G>_%uvx{OGev z&qDn=grI9pzeckE<@j3&2_>)LOZH*k+Wlc2hZir1$CscUA%L$`jL+-}bVjfZ)EAP= zsrbze&yM#KxLZ)&RHM*QGWP}kJvp(EsN6Z)HrZSGfy4SF^{VFkg-0nu1c;R8OvN+% zE+1c<*-94jA}_Q!YtwZ)8WL$~X-6yB>HS}yKYb8i_pfDw3&`6}O-+^3H$_522aB1T z%zM+3D-blSw`@;K+%oUr01R>W^lbj|g9NNp{j2-XJhcHAMmkf$4zUFB^BwqN x0?BzqFJe1ee+6<;&pXfXriR zYI;LZQ1B%BsIu}df@AL3O*X>Dy9$Y5AUjgj` zn&Ir?V#3*s7z>Nc0D*4$!0JAwgzr7r1(~7i;;;}w{yk5i9l=cZIY?U5F#}}~Kx^dK zfqty0oV5ToxC?$sT>Oo)(m#4xnH>TBKeGLoJ f3uiCj_ zLPS`&siWfx%;i{6_!1LLAyN{?N-Yrl52bznIZI12-Q66(T?cEZ)S}Oz?UtH9MwBV2 zMp6i9t91Bvy
RIP 15tFq&j$X5N4b1ADs}(jS5nuZwx^Wi>JyZ|6e1+?nwX05PU>V|50>S4g#0&(pXC z&0X4fbyd|z0IrAvh7g~SK%v_Gs+jR@0nRLt>$?PGX$0l1*vP3MDZu;4!HAy?IvJQ( zv3`^mKj_z&S9aB5Fv@uvTt9Qw@fv?jo%N*(2Vmk5&O%kW@9ey1J)tv!i9^Ejs1dLN zbH(Op@lEY=n-C~)3%L;*dD77EBQm*w-6SOlPm&;|52LgK09)Xt`=kh3laE)}7anc) zq&ReI5Mrhf@KfSLhG_-7X11U4V};jq&vI{LYGSRF$`N}7QY=2zZK)lqmmtcz{Q3C+ zXr1j1fS%hqnHCk7p$QI$kfE@nl9iE}gQl|?R^=)U4Tq_x&)m0=<`!)j!4|abcy&Wr z1C}Kg%m_SWd-{16^fB_mLui@$YdxHfPEPPvcnZz?(zvV{PWeGdXaugTv?Y%D?%lhl zIF-aVWo9AiG(ln5KG|&e4Uxd((;z%jXl8ESSuN^tv}I&7S;^P84!zSh?0rPmiSb@v zf|(@*+N+s0-TM`M$7FN5PVyKljgI1A=Hi?JKpn+!HtF@!_>BMCZs{y3`UE^r4h{|l z4Hp1v$S+I{6`|B2Yc;0yfDAxBG=ox*WU d;pqg^-*}yZw*F_i!r7kw J^;Gq`_Ar$9;R zP8ELYtKvZl&K`)Zj$}6I(V7sxqu$5MKRzTLC>apFi~xf3Ob*gW_|}fuHNBVcql0cg zc2YlMVE*}L0pxI#=D;hlgbaOQTsq~3r$^iE?d?|w(}8q7KVId5{tkCV2^T6E(8}Hl zKgp-6oN$1@il-gU)yNNpP|@K;wYIi)XrH_tp{NJN6DcDA#POi(B0q1&Nh>&sIcc5& zX1S;cQRlng@nJ$f5Yo}aOq +yJ2Jr6eMUU;ZvDUcxm9sq#HZ-HuNU`Y%i8YPc& zbtUypR-1C5Ovt-h 3xsTp#c(DeKnWbex~-GMmwJzN?$8vP4#Wk{?*AEHzFW}v!Yu&;alH y` z7FI~$41vbKz5cb+azBG^ou|68x_vp+*N(Q|$gN8)`ree5md@sOXM=>KvD^5-?k$f2 z9ir*>Bny(&_2wb20Evs!(&&0ZdU4dzut*^QJaDB6H9}?u4xtH2mvu=L(AHUx6vUTl zNHJv@oC2AO(DmD67U^G%FFuWQba#IPg4mSk8{`3#w#Zh9NcCO*XL%X~KsQ8B^+6rE zq_%7BS*O1v#18fEXd%&nvmQNLkPn0l+aPqb&ALOn;R3z9_Vur|h#2j8u*OzH4~21S z%K@EiffiPFY(~k(WN>hBtChmQ5PWMT$6sK &8B z-owmv-(&fMjdK_h!mEKc!Ii`Q0{QEN4Mi*JdV`<;sj_sTD>Ojg+S(MYMBTRx!*DRI zoxp+CN+@g(y1(SZhdtHm1FJv}OSYrjq@)60TJ1!dl$TJBqDCR;Aj1-YaY0r?0unHy zqQyw~`96s6IGpbwnXL1A7E|B#mMsA4M6&I!K~*H3SSa)ae@`m=9~=TAR%RUy;^FAOm63)0NPrbE|y1g!l?Tb;d _Y2@{$uS}iyuqhp%waTxB&Dcv0@w*Rm&pPK2vt1x=dkL;Z%xsG2Z$@wX|Y?S z$F|=Oc>JrkNvtDr(9+uYbUg5FG{ALc1Z)?jh;t4~kQOe~0)T~>lJZuONU;==5D;jZ zweH2OuHO<7M~!BUYd%UG_VZQ?k;LU(IS(KQ;`e2!p%RJC*7rg}WA1Z>acejTmiL+7 zmM3f%9$0Y(BJ(>(-!t_vpcy*!)p*>jv!RX5hsKu!F@Ztz)j2&-2fG4p#Rm}V8|mk( z1L?z`A0-*P*uVSn`Ei^J$4@ZYLP1bleO}^oxWxP=MMR&9Q(W8~{>5i-ysvOgo%blpHGj z%YcCDsOZNKJ?j(jy^&H2r7&AUjv =E8VSbGQb;t*;+KyJa`>TOb+W=FXb|a*3TB zwiLiceG?B(ExUq?ixfacltfnD$wp1dc-Y njhnfBj-o5u_ z?}VK`uc0^U0{nhmR~66pROaAE(4zV6B&0Xg@sPL!0GFmjKK~?JzZ5}!TQ7{o^ zhrbpUUSFIpNnqsi@j#m}MkL!lCVzux&8J%kxZ8NXq(?}A)F1!h0G_|&47yx&C|gCH zZ6Bp4v61rK|M4M~nu$K3*0+KrzgJhS)mNSMv%s<$JMkINrm(P j7*I_S7_I^7>D4F$ju7(?U(KXmZx)!11yYFm4D`Ynopx%aHZx_Gh4$L%YUB#Wx z7eKGjZSd7|l?cElP(6z)5{~hrTSR1?U%wb~sJqxSi$0(Z9L<~cWj9DFkg(lj)6iiw z9{xTu^6X&RH-YJpvJ|fIAinmT`rw{<3JGS40(311_pMpwm^CjB^eUo@03v?~)Geyl z8)0QpC{8UOAcjZTqtHU5q5vX_GF9}YOGt>HZawrT(~6vI{QPq)&d~z3? >51GF1GDGN5SBG8Nl?5A}N%@$dW zqc=th)7hg^J>o!EU*7lZSU)*fx8|3nud1o(vPw@#V9AN4=%`XZd8Dd(4bfykv$~wq z?%MI*Xcv5J0Mjn1n^0lll12|rUnim+{m)Iw57yA!goE}Gi6%wJRuY;5EDduiM+z!0 zclVrwm%Dey>V0bF%fSnwQ4=BiWS(%^u}|NJOr@|Gn)Gm*JA_ak)b_q;ShKisx $%DD_0BSIcJfCZ()2k|dKBPj!qcuB)t*ij *Pr&zr+QLPn_t}g2 zVAZYI%SMjYpQT9gAU-ExQjkxfj^+CG>w!F?z`}k58`v8#ni&DayX&+V-hZASGdb~b ze|4ly$G(pFGbLVZ%|PKG4b}wA k`eqe zoE!!Q?F`W9F*t6ggP}#i4vxZH8Oz4ZiI{91R452i`O_2$L5Nu00Fz3?dK7_IhCyjY z>t Rv;Pc)SbO=(NSL?MCIw1%@xZM9S*01CJ`}d$9Sv_5iPm2+i0}4)G znR$^6@HAv{dAk{yJO3eg&c@I4C_n;3D!^j59^<6d6N9~(7CJ*oz;jnYfq}A@Y`f&C z7{}kTI6of<+8ZwFyW_l_(r+l>IkBl@tM6>t@NLYEAw8OW$A6T1S7qmwC8*Y%2KAHX z*cpCt{7CDaC&qaM8Mb8n&htSjW#&H&tVJu%BCY9nPZm?`yIr{#pgI*huc#sv2Xt6S zvM6?0)qt}WqnslZmxN84pxv_OxBfIQzK+^^({vzWu7gYDcP9Y09TIsuQ$lTxbr*mD-MfCDx2E`yy8K-$%z)R8(w1 zU}4Xvw_G~p&;gVuu|9Bu)bs*)>5g?EP;V7c?;=9zzgE@naLO&;HEw<+BrGg$vK-DP zU~qVpK|ue8j%BpYt3s>b&>jR0V0s!ss6-Y4evtukf+YwE;H)r7V7(N7!(vz_`^T>- zw;3`RP3yOBa(1g58wJbt;mFj)y3~KlmjbIIHUTx$>X$ zJm=tAl^w211mH%l8R6MJHrS-=|2Sj75J)^ZcqYg{-HtsYRd8Mdny}Z<;5PwU0TV0| z8;GT^bgG{0K`-htU?|%~*IQeAr&?b^N!b{SViS?Mk=Jec91W=Hqf)v!bUsK3!{Ve6 zS--4R8UpO1QS*EYGy$_RB0@rPwUBDfhlZGG+z#n??CHdhW-&|k`0rf1b`9bB5dzSC z>Af4Ge*+&gJZQEMni`?GI+Vv+bgiofc<1?Y1sowS+ET6%|HtT1Z i_xFLqtm23AC~8ucu8HyMF2P=P%h%}2orkEOA5`@c6Y5_Q}7;B~lB zQvUqtc(rgF`iF_1bk ###z615bR0djK`Jdw18RX;w982n0 zkN3UbgJistbSXpZkwODm2xB-K!}X;Ode_fN>5(uSR|+1T%}-(%4^#N5s>aUGkfB}1 z$0vo=2XRGO;{-^sE4fUYhyVz*fibkK z?t!Icj+OZ&!c5wGk&=>{ zK6PX2O_$)ws~hz1p@W;77?LpEzI_eIqG)fr4>dKS37lH5pxwlU8-L2kFzd-doEoqK zPQRM5w1VDF{2}LY#7K#Xikh=_bIfpA9fqa~=kt^IRs(2%S-yPv0t_CZ_E$@P=#Uf> zZ(0w32E2{IQG8F>0uS>((8QP2|1 +ID27f0xtUrWNxfP50gjnI|9w{W}C)C!fIf_ll#G&Jp{$weO%@ z@8SpQi0>?f6}=((m&%twiYG#lJYq5QI vdoQ8=ak9VaNRs zoVR#tvI3g9X<4CqUcv_jNAp6H@+`h0`65tVAk9D7d9@9qr4i5+aHx+&H)-GFXo~@Q z2Ih*2MT&-0u>>0zg7#vQHl_+L_1w3gR$bqcQ&I*uHs0S`8zTXc2SiZBYaV%B_!ZFn zH^s!JQ2Rib(-;{UfxYv+RsrjhPzp7j0I__p${WOym&Rk$_iqRb1JK+fjg_3;3|Je0 zpdx`IF&KFz`i`H6K}oY5vhN40Xu@PUoB_b#P$3fb?@6E=AFveoKddtBK8Bk&F=4U) zdw_vsl_|IuFzW+wvGv^6@3>;KIL)ag59W0^=#n{q0Qz_+owPY}{}%*0+#r&`CREbU zwEpp#09tmc;WU%NuxEfK_dM(756X{3--7768qql%$?Ta1bo8{(q28lp0Yt)Wgu(ZN zzq7KYhQo6TtPhCbJ79gUrSae=GT&lfpefqKMJ<{^^~giV)Zqp_1JM|u+m4--P2|?w z+U=8QY4VRt?kgSfNt~aaE@^Efr=#Qk+YqLaSC+eP?Fb_H&wL$ 41Q1o0)oA;K9^Qb>a}U2`Xvx ziO)2|oN3S9n(Ar Dr# 1#JW)&m&1JYRsy!@c -Oy>I_9Nk<~s9h z3nuH<4D-F0+pBysg+R09cvkRsvK|0#?zp=K0i3=GhKht#G09`3xJLWxOWPU#u*$#4 zhje8P_Q~kUdVmC>GlXSJd^!Y`80Q9QuLZwY4}%5F_jrZ%E5J<$v+}kyx2}X5?4C(4 zN46D&7l-~GcIx58$HGrTR!EtJ-o<9L=z)fT &=AS=Uao*(PQyE@|16%Z8?WVL1rG-n8N1+@& zmjJ~AI7lpDdh;?5pxFUI6&*YwES0w>-h%WD
ow{#onh+#I8|lOnUly>2!*z6DKH z>|{M)bs-m~m}?+;A;v5%pIcRg&o -hQPuxJbn3?;|^ z7%nTD382~{KzCEHE1Va%V8lqNdg7}r>F8K8zdwjJJ3D*BCVy_#p}YKE4H5Eg4XBgf zfG}b%b8~ZRi)B{4di^>lJROTgba{Mho@3g(YFPCl3HKs^;96nttbgWwY_B&dmjj0x zAcWWn{vtMuu@bYAgu7p#|B%@ZB0!5Avoaj*YE*U~LRhpfe8;b_(1Zxz7r@;o5Ce zB?~=8;6>@s&ar Qh^+Sd>Zm!kDcg z9sxl-+3?*`7CkTw*-ch5RMq8Qw`V+jnmt(4$6*E>J#wUmBQJ`l{-~MdVEQ(z@G2by zFjrCR1@YgHzkxDsKE53Ugp@H9{Md RVdg0!E$VOMYG+ z2N*2D5omR}pwkz0$|g$z1*=u?FoFZFiA?Lwq|$pR93*NXf05(oz&*zg$wGVcPv0dQ z!+`@wU}6Obh-*Tqx!QWUrAA8y5!$9%usj^DnNtS8r;6QO&xfv2S&~bf{?qV* G)IcU@lF*3IHD^9 Rtv13mo#=I7%_EB zO*7T+c_XLi;LL)K20e&iRj8nZolxW+j}3L;^fja|=6|z@9HapG^r?gTK}guMi)`qc zO2+LcD+kzJJwU0!1a5;Nj|etBV%B}dUP2G&$UxXAoj=&D-HmLtI$r{(Q8PX1Xt`}l z|GAXc&is}7qd7b+ot?MbdeopvkZTU5yy(`zskv+e4Gkik0}^*}X@$*)sFh9XW7!~b zBR#&OmyXwV141^E_qDaQemQ^44kro```1(-=%+VV$xG^z#eJ&hONGD +QqVaRldvl(I79qA#3gNPUFqM)D;w EHnLUQ*vLnW(Vu^1P{@2jChc zTWQA=Ky^1jjl$qKrjMz3m@W@ySjhOV4>^!0Eduw7mJb}9=~{F1ylb8p^cbfccx_`K z#$wa#;3Sff=2J9^!umCUNpFY5L8adrf5iOy^=qSV!Ng$Ii5-dp?E=}H57ZZI;0z)F zWh}&c3^oA80qZ11Sm`x>srY+4av_b_Xi&_hb#+r2eH8b*cp3~rIV(B71@!wHB6{we zPm{mj< 0lHI zY%+` m}eymM@)dpwj9bOLkP@PjMx8;#)A_hPH-30TLS3{9#yN~ zOY`%l3>CA|Nn&2*^BF|xFTj8bn*rQn>^Zsr84uMcw{GQ2fFOV^#rkaZbajgyen|qv zkoE7B>*W(D_pA+pdqY3Ylt%=Grm+54p`A~{@t)`2W$=z5b}?pp(zDvl`V&InbBUG5 zR>dx6df<%=oSgW8GQ?r`yn*teJyews0U(nu?qkZe4E_KxK8H8v>XXvb^H|@UxdR>p zA`saNG%u PK&Mt%OW=9D z_Z*)_2p{|$&^z+0)!BY4P09i|*eSAc8Ew4WHqTO7-0!>=AR)iYAGK5HwnGhAS;5MR zoM14u&E9#091{hn7`i&5hPf1fX> SB_;92Tg>3rt!)=VTH_zEh(;9z7 zFhb+SR>`;zj!iVsXgO-q5!M0V%V@Pr-dermDzw|nLwOX)+K#2niT?n#eQdSRaTTO2 zd)*~!I7|XI -9i#jb@cAtf&wK!ilvOM^dt@PPwiZL}B@QoZ^bTRt$DMzEd1*^%h- zt+xSbB0>JWGm)aEZ~qr45ppmCwF1J80$TqQh_#l3nIXn)cj^?tGj@LTo9Gm9ZArPF zdm0?JQj$0egogOa%BK2!I2KqrtIiESjI1Jegvw(CN2TDjK!W$w9prpO{l&Q#lnNO+ zKd= &V#?q_cB$yf%H9Cnv_(4&rQg5 {C%Q0JI|LN~Xmx%nIr1xH}GE`m~W&tpf*@&Z(h__`z~yLKwP?@{zokoy;& z>-_=|xyXJ-+ 61gkTknE)u7urA0{6Z7Oys$j1BrT+GZ^h{OrK15?=r z91Yk$KiR}92z6|pDw#n64{bS7o*!Mt)A(aT60E;ESAHT@6FLwD6iLIKO@y2qk!J zz 20wZ@*DLCKaps1m zWFZIgoiaGqFJWPQ1Zf0b@4yS*UPnRe*woZ;$krC=R9>*hQYHNKi^UEBm6|6^^n=$q zrgrH)usn#f7f#S17E%u@FVHaYsRb@0RwCG4h{puXT?)C#yFrlS(XN}*T&MSDEJ{ P+;$;zd88db1{)Z-oWh}JUMjnX)`+<7A&S&gbvkJv ziNUe^j 7(3ul(?Fh((GeEi0&D1yS zqu6wiQ|Aa9kHVW+*hszThFDaob$>z3td$Dc0CaYBl3@hEo4Wi1@L&>wofVXM01lg0 zI0@5MWNxmD7vlyRl9Zg>f-s|+>Q25g+j8yB3}T&YHp+qrG%B7T!Kdflgh*3*Y_hpY@P+cf@|VO9+C6-K&N zc(G2G_=?mOSirVij0xl(^t&qAPiTRz`N3krf$~qKXsFvvm;zfQr}kI5?OlQRMd%hm z0yl)Bf~fylUFbJ_6p5_W!833QyB|9IFVY3{R8(vpef3~ )ffzO45Vi zDhBf_Ku+)&&j%yV_t BB80Tug}=!mP?8) z_?a|H#p3?s7Al6*%82+lxPS~o KeZm)xrm-i~@629xcPcu1%1DwIA zX(4^l0AS-c;>+_p-=)v1lGgqxiG{GBz-HaQfB$7xmxq5)5Dq-Z%YO=pM0Ztn^<12i zcoU?({$dl^u)?W$e)3Z|=D!QaUBD3V={Ttz8ZMMU10Bdl8hbynssJU%{kh14v`zv@ zF=21n2RI&tZh==Y{9iSke>~K89LN2NmP)0c9Cuyn$`Vn2lpoQFbC0cv=pm-2ACD`> z;Z~{kpb}aex?BxSX!JPTmF+6lx|}vYirwlYzq4_nJn~qYt;}BUv;M;aci->#bDz)a z{eC}RuMf8^>0kJH)52fivH`6=jU4O*2z@a*fqJ4b5Q1;Cf%9!4j c&?-xXqs6*(po{03hM>p30573Nb#8R1M%!7kKODaLUXnhd&7-D*NDSX z8f(mPax#YmKHvFolGCA h+97BJn-gV2Tr}q+OYt zlamVJK#<9i*gPa0(E~#c5R}A``=#f^& FpGF6mjh>bs+aL`Fo<}(t*b71)su*q=fLGr2Jm~51 z+G^GX14 DpxnsAnuq9axP)Z@zeZf{p-rySjFv292| zO5;iyHoZ}`ACni$B&NlpgD3}T*(`R6Wst5%o6H=Esdac7r;Sa)6^g+!LOPU%%B(>- zK0J{xUXC}xVzKl v`r;k>(EonJUt`T8?br+&ZLt(0-lQ%q1fqi z=Yne9(n4Gs(K?iI0;CL&tbRlDP|_|$I-t)>kq-EfR*fI^zJ|3d88XO2%MklxJTA!n zre-h^*l52;;(~aguonBm>WH*1c%*5?p(dNvJE%W`o}~)qah$f<3Z>j4Lgryv2jP`< z`SMq2yCdw*b&3-n85yaU*fYsmhmU44&VTYzO$8g>KR$ExHSZR^e;7mT-yO$rk8Er> zW2xhb(KcaAS Rp(AypB_Rn}crw{%ZzO;qyN?dr85tWF zg 3*6!(8QVmA~+VCNzlN2>kmDi79O{z^YNQOJX zi`q~}Wngd;Ab1P=EJ0~|Oku2tZO-1vH7FO{HrdA!auHTNUz1&x74bMm0rmN;_-oI` z%ift-dNdsvZnY!!4>AQ#8y`{Oi8uNKPeXyf1!75Hxy)D|AeLvEOs^M}*~%-Bdx1?V z>#+!RC7#2{UO1HfD s=E4a$6qx(+sT8s^OG08}YKnWZc2NKez z779B1(xp|`Dr7Qy 5x1lK{QW2Lex&{x zQv3p%b~~%*vtd+pvm6jkSg0q%LZaS+5#EMVjxX`%a&Olqtjeg9f1`AUJ(FB1zwMnf zH_$qcZ^m9*&X$i&?L{{eL9L7Zgo@X2%KpRDm?%(U@4?C6xmc23-^lgzqpoUDxQmMm zsPZ7(=~n(&N(^S!zY0P=S%LJqv-urYu#A3h+xnWJxoeSMP+%8ffb2bG#}#g0nI|PK zCiNMbaQhtSOZFcR u9Q+dkdj)s4e=C0eO&`u{tpL++c!&-Wr5fNR6p- H _En3 z#w#oGp7~n+%~i%K+K+PY9@@!sgu#&Dp#J`YeGNiK4)Hbc4fF5MSlHv;D|#%bY&*PV z{(e;x8O?@ECf#n=_*Uw$28Iixz4q@ozPZ1CL&K&`Dxay8%tnmJi$A?L+ca;n+sd}b zBJQ+J$!Xj4vsu{PocQNqr=z!i$ XoVD|eKx$j$;kFnpkS8Z0x;YG2DH`^|Y zPs{q8+o3|{$Mkw*+TY)0e=zgSNB8NmH)d%&+T7j{KVsUuh7-2szkT__^=%_1o7-L^ zKQ=z?UB7R`>ISE0F3k7unjEt$C+thxu30e)#<{9aI@z$YQeK7YsjogCxnz=WpP4)* zbL;$9SsgXT+pO7ezwgqt-2B*QPfx}ljGV7p-K6i#tUfPCUz*-|>8QT-a@_O$Vq?DC z{pvp_vG=Ai*>7q!yB4W%C)ngsglEi+(Y+& yVg(DJ!#azrP*-D zn%x>(2S+#uy&jNhUVikej7ConTs-r{reTHh4NqyU8kbvZTwZF6FFRgG>$K|>WZF#c zo=!W*<#&T_7*-#C`hD%wY +ZeaudqHPW-m$?4_QKYNGC{f=X%&snu>WN!M3 z`? b$u6q( l zr}NImn=NZ;Xc6u1QYPAIPq{O#a_`;Swtl{Md)xR0g94Amcl2_pxwO+jt<2f_gLWKS z;xTCF$vJvG2OeA8wP(ogBexyrhI=P(j)@)h(c3KH#nnkcn(Zri|5MR##mFT+{8o;g z)AH-CL#cIl?s?m_ulLj{jcoQ`+jBhW)TRB7bykO_*4esdcvi)wosOq$Ss8TfbHtO6 zne(ke)*i}x7vJ~him`qsC)&L`pJg;?%;5(g+b(-iqn@8n{TfEEx>Q`ZZc^~um78@| zb=tb>Yt@7qm6!Q;4UVYe?PFF&?d#*YPjihz#$R69_FewsBcE2=ZoQXV%OZYJ EXp{h*XG8%EyJdN@f jShA8`xt68NHL>-(2+Vdhj)t|mh3Ti@yNmHu4dQTz4>tP<6DpQK_T9kB8NxT z45|33rOzn;7AGs&>)wjcG(3=>e9+^_=xRqg^<4Ai)66poWwnmhS~NUJPQB|xyJctX z*GB1AzyDsLv!3eaiH~w}t*);%{&f76`i)xSt3Dd5_$9Al6YsGdUX0GX`C^Q0+pwNP z?y8OmnAz*%;6tO@oSu4h&*^-Fk2^c;(tcT9yU(3Us)}Rx9{C)#^s+|C-sHe>nhlgX z?8$21&Us1VtLO4Z25->5F>O_Z#^?D*7JjnPT~uXZR e!q&jHk9K$Jym@!8cDtLrSFBR6hJD1rjv1?K zK3@_O?b~zv>bGq+E`FN5V& NQv0=~^@ZW4ZDWJFx;$%Ae#2V59u>zVP8gWFxPL~P?u&?! z?LI>iV(R7R-Tyj1#i>tHXzaa|w~rhmwADXcj_7 rx@O}D6o zukMZWhK+9&TqS)@Lim9PXFJQUzA;3_bLno=#C?GW? ox;6 z9QHmIzr^YEqUrKC)LftG8p#h|)TgS`i1ey9vLip3+10G@V%gAsN(plZ?0Bkl<3oox z&7MshE88T(Zkvko>MKqTTZg|7_q$lrBjD|5N5x0V)(f_tsC-9L$>&jg@95l?OC9Xu z&vZJR?%z(kQ_YT{4!(D4etpzn+CR@WR9~{#yh_~m>jM`B2REM8SjODA }Qs z*V`dCYjf+lFT6L~#??!0-O6K=c|F71TBBMV%}G$G*D5J#ez!^rCtFotpLR!fRQ(3( zRRdx*cFgJ8y|GW@PdPmtM_oR?LhhPDh}!Gk GEm|R~Gp2Pqqnjn~erxXhJEILw^y%=Rv7dWA z6Qcm%NZUx4`o A-t!_SL^3gp#@|sk+=b3TxDeF7SM0Z8AmoJ~{UKyXNX1{rUuj~c2(_D1i-FJ3) zVX)Jo^{}ghw7ZU 9ZKIQ)8>$Zq7 z^Y^vgFxNxw@%AeBKkw{q{8{eB_=zLFXxd%BGyC+cv} ~0BJmn6a9!|skjm8?B>uOdlF~K3OlY(ZLn(F ypi9Ps+4x{kfm^Ce4e^W9Fn@9kB99`En~~% FVVg)vbGP zt?pde8!ne0kBbklB>P~3$LkZ>p*37jRk^6e9D^>py-my;b*#?guGur%DufU3-RE-n z`^PUFt6%hwnDc6aui0*y@W&c!nj6YmjnKV3t9|nrZJ8^cb^RK$a +`?*`&44-S4-8|S2RwK+A;cw4<5)mH1M@*6-!~5!D$_;t zpTRcUuD{xH`SJV|!>&q9v*LXZzjYf1%(1dxQB7@{XETMGr)p)`8n!XJ{Le)DJqNQ6 zFgu^9uz@uycpRNwt!HR>?8f%_NA|v$uj&5Yx%LRn1Fv1*wR-talV>kn2GzaMN-MYQ zkttq|*F2UjdfRG*(}RR%8(v#RRZ^+8Uoo$TTZbFr3+>HrZueAIxx8X~6`kv|E}OZX z@CxfO>uaYG!)EXL*m^>`|Keq56q tQ;xSLUmkIqyCmj30PdsrmBtlkL0RQi#YnxK=yz^tk-@PhM{L z7^Iysw~XtAQ( u&lvhhr#`fD!Co}G0oYSwx`^@StO&S DI_cANRVK~bzQ}HN$Uje<7pTv7TlKi-fwcYWbdKq!E9`zW z;O((;hGV^B 7iv3uSUedPPUPk(d z<*&pnP(5G}*?#22Ifgzn9wsbQtz{fNe09e`3r05R9#lrhC$3IEZ+VaMoBOoOUZ$Q{ z&ZFt(5!GHbkC=a0GhlL?x7p)g-Omkfe(}XCtrN?db==T8XG#MV(-l^$Os}<$+^_UJ z{^)5t7mL8WCPOCgnpXb8t+>EVq3td<*6<(m(J*(^&^@7bP3DxXT6?yvRvm-oR~^Sq z%Bp_8p@yqYgL|hh2JCAwz<0oD)dRif%xIaS+`QvcnZ@U?9G2TrThVNtbB}VzXV!S6 zHAOaiOLt6v zD|NHS6_ti*PI8%iGlMC6_Q}?{d}i6X _+PkLkHZJ>28f%F5>>Rx3JvoUyBA`u$-I68{MdjIQn6>)|fHPh%(6 znV=EdV$ztrx6_T3wL8o?yTwcKYnhP`?XQ%zQE pUaewJKbdmMzf+}(ZZ&MC z58Ir6+jPZZ>y|azL|tsMyy=iLLBS*ERq6aGu8qSd6U+FPmR6~9TH#fK2bWWdsas?5 zwEKhWEUx;zy|dlu_Qq`|54aPRc+$wM( xC8*)eC%ni+C6{?Xp_w87vdBRcpk^VC_P)2!3 ocnu}deo;EeL9dfnK>)GLZdyH79p&jac zbkvX@VULziZKCylue0mBfm?>{sJz|dYWcd6)veENP+vMZ;hbxIR_}+@U z{+u4IrfJ9Nw HN{sF5^;5Gx^+IT|3NPW0E sadIO2k5?t&p5LE_JMusGh)Xsak%8Q zsAtM9-L3Duj#zI_*rWSwjnmC*S6tegt( wEeHW#sb8m&u zS)(-fcxRvU3muGB%}Ttts?Jo!S(Rm{h5JU<+`f0{5M}>#-4=dVEjo5=ug~fy LEYyGNn`yHwa{9K* zzJ4YxdVTwfZb^}~PRUi&)g8Vu`Q0I#8X@x0?aw?uWI9*Y)=+6+qdhu% 8Ma3 GM9W@e{aRA`;{NRbqbSVJ8KW?a&70)rq$ay95PR> z{Jheu+O6vAj9+`aq1wZn+CgyxS1r>Xn}5Y&gTtIp_FE&^!hTmibziQnzi+~%^G(a! z)J%Qj{zX1)lkaU!-yOZHKW$>ZNXLDCs;Z^le)n#=&yw>}UFQs+9C^lc_xdHuFW;@7 zTQ2-Vty3GC*PpRMrp%pnCwEMYSUKOc{`RBI)rKiGzP6zHxaF!T6JBesIvVco{$8=H z*%ZI(S&f$T*wOOI-B6FsLq3&%VPt6T h=<&i8EL9QO@$Umx+0{ao%&c&W%q@&C4)< zpE1-e=|T9lEvvL=RGoF{L&q_;leVf4yEZ6!+iI22yH$) L*!kTwF*nUj41eLfb=FHqihsoDicfH-2Al2!c?CS4IR;XZH zb)r)zpO(!M=X5%-Ln-*yvidnrHD`C l&|a8h3rd z`fa`EeR%HCrdO)L #eqFMyN|-{80r{FLI>XNnJ3YIG zo7|EG4XRhq?ABM$PQUV|cQ#??{g*ka9+*~3amKlubG)ipDxa8T6S>ydc2w%5P}3AP z)JX5~w8;(nJ=4q>w0Mu4ilUlI=c}`wjQx+4Yg?^chN58&xy;QP^P5*q+?uv2Z}g^q zr+fDuaPO&Z8_gca9BOa8r`o&2LQ^Lept(08Ftml^!Md+6zC1g_{)3uw4J*B (zFpGBc`M}gFLhY@Vd7R_i-dKbhX<=ptZi6+pY|*b zy>$OoYcgiB#7k=aa%(%9U&+vMFw}^%E4%1wZ1)B!t+%~cyyi-rzTwE*Wgd6Rc4!%E zxF&u^qW}-jYg;O%=Cm$%{BHBUuO9_{RI5_%?bhTzE}uKD9vz)>ILLPWht+ed>K}_N zJFKRG!jPeM%1icSAHLK2h40usb1I%1IHB2t _4ilk@uW}6p#hC1mN|Yh z<@s388v32I#@|a(+x$7Te|6s$w-WBv&hECQ_RtrPoX*@I*)&w^jQWi5;HkZL26bK( zo@=~TYip;2$`caSbyL2habcU)ftk;$D|O6u{xYJe^X)^ntF$!Kz6Q6R&|+uC(e%no zlZRJNoZ9b@oK3^ALDO&VRd>!!Sg!o;M(rN0Rqhz?c6+hxpUTPUFRfoUn`vfxy2I_m zZ`N8X9^F^N{#4TkBexp`EE$;AeO~jLcLw%YsTHcU+FXBfi-T=rS(&jtb(PL!o)2(8 z;oQ(htMgR*8IQZH^PVo-eYkJ@wQi{?3y!q#(0!|P$(5~dYxLGyXSI_{df8Kz>*=Q- zRj%7XPa$sNyly=c;+8yey43b&t$~x;-W(+#JVkxWmE0c9jap0}C)4|coQ3@9@Sb7L zvX@U*nzQxAld?4joH;&=z1-8PdD-_3&hNgJ^Emp%w3%NAH%)XIYY=tlO*5G+*^vW| z?;9{x(>fykm=SY(_mAD!sMqekk?$OXIx3DC+cHjT&5N#0=XbgzGgGGggURNL?mEvj z?q>PvfL5oo39Co0uQVxnPIA)@npsh~8@gZL(L_1 C2H&H1wKwco)Scdu7^VlRLFl$Kgjmaem1)yv&{-MdY{ zHS2|1VDsJWE9<$c?S6Z+%2-3W#SYE`#@N;Hy1T53!R!XT>y}lQH@Emyt?%+-BL?|a zycxGr?YOt&{P>758y+7YVAnoik=mSuo=u|X?{~X!qi)}ZhZSm#oP6V4P3JPLdnkum z8noGG*1dMKhZ!fb2M?OxA}O=Q%e6X+`)jFxUbAs}xrw8kE|x!LbgO&t>+R-x;nkW~ z*|XZW+Wyl%|L9+=ImlaaaJea-3Ww{>?d?$6zm{>j(}M@~I@O4K5 H{jTdUWdouPXC~ Jt7oRK(tg&e$AfLT;qP_~uX_1G-DmSW zPH4Pqf3(5Z&uh{ighaTXo9^%bF{oXV=Rmc-vlM(2`%hZmN`G8<>N?*x_cF|)H#II( zaks;=ed>LN>4a2qEI0U~NqHp$ADzw)`?OkaQJuNzw#SwmN|rk L@MDFkM>{8{IyT1fQ4AL5D>u7!Xc!h!0TDAPgY@d8v z3vGj_d$$iO^qACRcjw2IBj!}Fwp_AIRbh&K!nE;+vMhJ3p0jqc_RWKuyKg(xYNI}O z`t{g4*Y UVo)-CUvnvzV(nDsyjntW%m2<92;itNRAC%#FvH ztZ!q#QtoJ*^pXC`Q|xC>2=xiyw!Hq9;m_mB>g|ts*R|38*nYhR&hvga?8V2iscTX* z?X$+)Bs8f!yWy6D+mkj{xwNco@3I|Z_N-mg^ZE>}&(of=s1-Xb5)|WCE3cndt%bs1 zz4~R$6DGJ@?pyQE8H1#Gn`Of-93QN6(~Anv)oU=$-&?oZtZ^Hbmz9^(YjOWhz3>55 zE6$glYjCd4?atd zhCqH!6Q88bJ&@EG#Rdw=4Km%DaO+G(IXF8t^*+d7fX)AQS^ns_y_ zNxpP^^xWekSj@KCEACrq42TTavQVY^%AUGs_bN|lU2Q{!B|6uZX (Yp^EvP??L_=TCH6;Qlh?rTM}J&N-JuAH8aHvE@?R zC0AB1Pj6!0p}tPz?#cZ&`wTqa`Mi0TyLHxH8@0 wkTXlvZ9qN=T)+Z4qspC{!;eGJ@v_VwhY zIxcK|`Ac6b$ecai{9v-p^GkE?Hj$Zl^UUJdjBb_AT(9-+bA(=F*{mZIX1 ?9>}KU^<~qdDcYwe1s9@jDquRTBj~e7{>too=UbRV> z9WQ|Z-%wA3uz }z1zz_NjvNy{+* z;TDGWss>GhefryVa%%No61@L4H5?EcI>gS@bi{}e4MsF<5ESfZYHn+5Yied;YGGl* z+ruPeWMHUgm`PxW5hd|&8cx0;-ogGuLj8jR4Jb`dub^R}O$`lsuNxHPFJOqP>$l_s zL;h3Xd6 2H 6nb`W6`I=btH)~{R*~rq@%h&w7q+9|+LOlb$eJLqk;tl+H z>DXF$TY3BVnweO6S(=$xn%kP2*m~PonKbll)X3Y%+sDex*7Ca~It2Uk-j$w%zt0sV z<-<$L)63Vkzpa&piA^J0YhG@A` Iu_a0u_6NNJjzHL&=%G*m5iyu$EcJ?VYQOMrg_uPk iMLBZ}pL4%tbQkD$pNdDW~pvk|L;_M&7+hZiX)8Eq9(#y=^htxxY`iGA24EA;K 3;<_rB8K1iJO@IWYUDc!*^c;yyO0T zj`#J#`?fOu_I35288HfR`>!s9cm`h5I7yLw!3C}&2^48(yt}|vB!MFBjCU7jT&n;7 zgU2_J7X^*r{haCC&Fca0r;xm#gR28$`{%0Vcq;JzujtjbwG+#yf9p U zATR99 -2T2d_JF`I z1Q4kG0tHV&00IzzfFuaezyi(!wcC#~+2plJEGZ?oNH(&(29X}EHJF#HCX=BiH*63n ziU0z&qG(}X2>c-M$f!aV`U3obg8xE5Bn3Dd4N8|gM=X9{ -nNe- ziG)l+00Izz00bZafzlEXxW|7&QVtux;yugyuTNTW3v%#WI@^6JwYZ1lI0!%h0uX=z z1Rx-B0s;kUG>7iYO-U>xlba6Ms}H2GH;LI2hl~P200Izz00bZ)k^*nXY`P{keE|d- z4SMZCCcF9QD`&NknU&90?Mq@I9_pN>iG(Cu0PhsZu3wZ60uX?Jv fL<+Z4By~)TbGG$#m zu9HQ25P$##AOHafKtSvSiXEuY1h<8mL#;R>ie-$8a~O^hO@a0!9=;Nrz5t?0h+IJc z0uX=z1b71WQ=`I)9l5=T7v6{fd9|vjAP7JJ0uX=z1Rx;w0>uv01f8qnPx3NyN`HD8 zuR#C;5P$##AOHcW5GZz_rl=si 9NEiYTfB*y_009Vyi$JjhHKWQ3Ot#oZ|CuK%?eU*?z^f2| z00bZa0SG`q3IvKBYN;s6GV8j^oD=2eWwFfn7dcNC2|@q@5P$##AW-rGm%I)hMPC4J z+>0Hw(dpfqmEk5A-=*>;@f>Ew{mugqApijgKmY;|kX`|S0yQgM>zYL^?nZ9r<$htQ zu^XhfHc)a1KmY;|fB*y_@ST7RZ#8y-mSImw%3(fJ;yGE(-KV`OYu|+XORL|N7Y`*& zK>Yyst-9ZcJOuh^d`kuoAOHafKmY>85y;KWWdbb
cmXXJn?E1)#U;SLD#X}7%DX?IV za;$E3?)toapC3Gy0)Z{Uo1B^9GN=^1flx#UKmY=wD?pb)IStebiu(Rz4m)%{okc&) zWVGV@*X)1${mAhCrdHOI=LcraHfqe&7=6_-62Lcd)00{^!X#1WwH!q*1q~)<(-dF~86 Oz-St5GAyL_JX3dhzBO^aUt%onl7_KmY;|fB*!z7r ibati00A)) zK+q;em4&QA00Izz00bZ)T>=Qyq^rJBS_nV@0uX=z1jI-Hftnaq7P1Nf2tWV=r6%B$ zF|Y~x0+bp*PD}y_+VDPr00bZa0SG_<0wOAaKuts|2HAoD1Rwwb2tWV=%zkQA7@{@2 z5g-5o2tWV=5P*P)3W!Lc*7nxkz32-dqVEx83jz>;00bZa0TB=ok)TZkB#;FNKmY;| zfB*y_AYuXt)I_X8kR1p>00Izz00baVAb>!vKmzv=C|v;u>plVK3sAasfU`pY0uT^s z0R(L#T|LMg1Rwwb2tWV=(ky^LO`2;TWrqL+AOHafKtQAg5U7cC^&oQ)fB*!fM ke>QRNsBIkpsna;I06C?fB*y_009V;hyVh$5@E(kAOHafKmY;|fI!g&5U3U1 z3`al!0uX=z1Rwwb?gh?A`+WXGUjPJc+>;|k2tWV=5P$##Ai#+L0yRz;kq87J009U< z00I!;UI2j__ohe@0uX=z1Rwwb2yi1{KQ$^0(Hb|FNJR_;X6;d&^oPCxVo(BP5dsi^ z00g920708H*FMS)0SG_<0uX?JNDClP6Y1(f<{$t82tWV=5Rhg81ZvV;`zSjEARt`= zQ(7IYioO8SRp%(JL xfdB*`009U<;P(P97OoY gJQa}I#5P$##ARvJP2-GC7Qc)xbKmY;|fB*y}LjZxAWYi-{0Raezj=+@` zTcgnzKy>N@Ie~!W2-r`J3Pa>3IrWK>KmY;|fB*y_AYlRs)FiAzQ5* NVOo(dAc$(tc;0C;gjX XOt2G5P$##AOHa| z6hNRRhLwgaLjVF0fB*y_ARPh-)TE=HQA!9v00Iz@BmsA`+z;prAW1b^sInkvD-;uU zf&c^{009U<00N~TU_Uh~4AELCz~ht 3IY&-00bZafl?Dd&{k^nI57ku009U<00I#Bvj76MKl|WS z2tWV=5P$##AW&)o2-HfA9w&x?2n%HH8#Wbv0YtchkTnQEKpF)Qv`J&Fqs$P100bZa z0SJhNfIQc^%*)PZ2?q}rI@t=Yu1r=zq0swdM+iUw0uX=z1Rx+S0-OhG`8hc(Vej5T z`;~WbVGMy O+?N!Odavl}oMCkOWu zEi+CA0SG_<0uX=z1jJ6D6oWRgvqFX;009U<00IzzK*
00bZa0WlUp zpeDwZhphiyU`A)TIz{OV@b?t42LvDh0SG{#bOaEzm5w{k3IPZ}00Izz00jOjfI#i9 zMA!iW5P$##AOHafl#+n`)Tl5-Yo&yb(?S3O5D>P2-0Sh((HB72%19pqB`1KOt>mn6 zCI~ G&IADnKmY;|fIvwK91gmD zTY~xmAZRPeHxJGQ0SG_<0uX=z1d1SlK&=Q^*cAd0fB*y_009V;qyPf7lGMhzAOHaf zKmY;|fItxh5U3Ra3%mY8AUkk GtKzs%I+5|U8UjXr~Kja(&;v;~d zO?>JKIfVcOAOHafKtRd_5U5F6g`>C-fB*y_009Vyj{pKS@u@516ao-{00bZ)iUO78 zTrn>|iBydJ)Tl5-ZY4sElRy9h5P$##AOL})3m{M{x*3ju00bZa0SG_<0wp4VK&?cW zaS{kX00Izz00baVbO8ivMK>$qBQA~IJrVN)lrTC@2LT8`00IyYIRON1B3C8I5Ck9q z0SG_<0ucCD0D&6b2@rq)1Rwwb2tYtY1?0KTmyDbo({9$R(8<#N*dPD_2>d}{Y4bfh z(HGzkKzIoP5ReW5&Vx2tMMYN4$45H!P)Z0u00Izz00bZ)L;=nNH6i8|Nkaev5P$## zq*5S1KcD60<+0q{T>gz7%gD$uIo=g2d3kvzD=W+Yzf|H#c%c!fNq7aLco2X91Rzj+ zf$Z#T_T|eLmXVS1Klk51_q)dh$I$C^%gM?47G%-mg21cb{`(-T;4$6P>)uy}MHTb~ zp#T4ED+u5U?kSl2)#G11SFo?Dsw$(Kii!&VUQJEy+v9@Qesxd#D=8^ST;Q0Ina84T zX0Vv&S?tNHES8p$$7E#~D_>5Y8CO+g4eKZ~b7SF_8$sLO-uZYP0uX=z1jJf^TBg#| z)7hs_pIAyt3jhA&$B+DbdamI4@1ILeO=X`yf93~S;!^m6K(Dm&OD%jq26+_dX=-Zn zZ(3SftZdn`{2M(-kH3FTK|!Ikvi{R~(|G~e+C!h%(MzA%m#_Ihz5Y5ehebckWLqOs zS(Wng%%imiYi* Elu)7LZD@ZQ?2oF=z}CuMlQG=2^h|5O6J1_2Qlpf8Dr4I36Zm(kJD zOkG_#zk~{%3G4^~2=E0cph`+g;s;<9e0?8`egC+)!2p;gOF&y&n;)=I;P(BkeEIU< z{!jbR<=(<<$FF>5(>EsZE `}m;76NeEd&A*@q7w#Ol(cwAZOPl%FoomMd3| zeILkuAK(={ex9hxMlShK?0~Jnf-Z|L3#-6Xlmws7mftFDKQ$^0*Fp<;aSs6qKmY;) z3()m2Y6^Sx>J^KNi~AOt(f=t*OG`@=_#8+80!0y^_ayxapxgcX_kVe)jGQVfZ?lrg zDeL|6^`bmU*G5 )mN@r~wt24t&iUm&<`yPQ>vFUIi1SCfw<;~iO=nEh@ z^(l;!(6Gp-PoJ_UPo8|cQD8>bFwyr}7~)8?R0L!dm|7(lPESok1NQR*x1k<_x3D2- z REvLW1}e204a65e1ZWY?!QqMiGzt`|c;MeP)5( zwU`{u$|k^uKurKV90~ylKtP-X=<;N2Z0xtzv4WN|x^#&aGI6R& UXaAOHc$5qSUpJ-d7NE_?9c0izZ&3d*RXKPDUdO&vFXQsp7~ z0{jL?dY)ELHxyc7pT0)WCNx|m3;_s0KwJc9CfIxT?(u^(3e@N^O;(1DTLGG4zhDif z@9zuySW!`tzmR9af}S)97|kp3 !wZ77f!v#0GJWk6v(0##k1^3^-#;tP6rzWc)ya_jHDFi_`w5|y%h~psu z0SJ_!08M*AQx8xucIVC={ymM%#8x Q2X7e!YQ>SqF%W KYcd1+H$_cGeyn1TqXBE>Cln}f^LGRP}m&2Za%sT z`T`VI3;RI;0#YnMf4nFlyMFyTyK&