From f6d018f3f4f51d9b62af705e6d898d235d282ef3 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 20 Nov 2016 10:32:13 +0100 Subject: [PATCH] new replacement system --- lam/docs/manual-sources/howto.xml | 142 +++++++++++++++++- .../images/mod_unixUserWildcard1.png | Bin 0 -> 35510 bytes .../images/mod_unixUserWildcard2.png | Bin 0 -> 35532 bytes .../images/mod_windowsUser6.png | Bin 0 -> 16632 bytes .../images/mod_windowsUser7.png | Bin 0 -> 15966 bytes lam/lib/modules/windowsUser.inc | 132 +++++++--------- 6 files changed, 195 insertions(+), 79 deletions(-) create mode 100644 lam/docs/manual-sources/images/mod_unixUserWildcard1.png create mode 100644 lam/docs/manual-sources/images/mod_unixUserWildcard2.png create mode 100644 lam/docs/manual-sources/images/mod_windowsUser6.png create mode 100644 lam/docs/manual-sources/images/mod_windowsUser7.png diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml index 1b2d319b..6e095c18 100644 --- a/lam/docs/manual-sources/howto.xml +++ b/lam/docs/manual-sources/howto.xml @@ -1006,8 +1006,8 @@ Have fun! Mail routing: No longer added by default. Use profile editor to activate by default for new users/groups. - Personal: no more replacement of $user/$group on user - upload + Personal/Unix/Windows: no more replacement of e.g. + $user/$group on user upload
@@ -3648,6 +3648,61 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; + + Wildcards + + This module provides the following wildcards (others may be + provided by other modules): + + + + $user: User name + + + + $group: Groupe name (not numeric number) + + + + You can use them in the following input fields on user edit + screen: + + + + Common name + + + + Gecos + + + + Home directory + + + + Use this when some of your data always follows the same schema. + E.g. using "/home/$user" in home directory field can be used like this + to get "/home/myuser". You can set the wildcards in profile editor so + they are automatically applied for new users. + + + + + + + + + + + + + + + + + +
@@ -4015,6 +4070,89 @@ mysql> GRANT ALL PRIVILEGES ON lam_cron.* TO 'lam_cron'@'localhost'; + + Wildcards + + This module provides the following wildcards (others may be + provided by other modules): + + + + $firstname: First name + + + + $lastname: Last name + + + + $user: User name + + + + $commonname: Common name + + + + $email: Email address + + + + You can use them in the following input fields on user edit + screen: + + + + Common name + + + + Display name + + + + Email + + + + Email alias + + + + Home directory + + + + Profile path + + + + Script path + + + + Use this when some of your data always follows the same schema. + E.g. using "$firstname $lastname" in common name field can be used + like this to get "First Last". You can set the wildcards in profile + editor so they are automatically applied for new users. + + + + + + + + + + + + + + + + + +
diff --git a/lam/docs/manual-sources/images/mod_unixUserWildcard1.png b/lam/docs/manual-sources/images/mod_unixUserWildcard1.png new file mode 100644 index 0000000000000000000000000000000000000000..03b9bb9b0dd6a9580084aaf218e03e1350393ab4 GIT binary patch literal 35510 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 literal 0 HcmV?d00001 diff --git a/lam/docs/manual-sources/images/mod_unixUserWildcard2.png b/lam/docs/manual-sources/images/mod_unixUserWildcard2.png new file mode 100644 index 0000000000000000000000000000000000000000..de40d861aaedec613e079aa868a1eb4c57ff1f0a GIT binary patch literal 35532 zcmbTd1#neOvo#zD5#k~41mf=Q?naEbySoc+WT zp^D9U|>k8z+cCAMYeXoz`#C(i3{;7x}+YhID4QvzVx5ZjnrFE z5JF6eK_l@YBmXQ`P>jvac0fKuy>=$e-b~voBCQ7(l9#K>3WgDrmy?s_D~6y7RuB~U z>>&2OXvuizR#b;s;Aixa*@f$>K5Yx*+WnZZpueYa``Rg4V0}LyG@(C|05qZ5XXbf` ze?JR3{_6Pp_o{zk717y$enIt-3-}>$Js4Z^ebn1c{z%z<(f?0B9RaP`93_Uq&y`KWTY1t3yB2U4)zxH^aVn-;QoCx`H#I5H<+YasA%lpo7^Zre*DFVEwcxk4jqi=YK{-GX6s5YkYX~mFiv(G0{T9Ll;+?@sm8=geS-SeQ)daZxM;msL2);$OO$* zjdG@sghFU!R8+cyn{`J6L%qj0AKumg8Z%{7Vyln*>R=&hzHv_{;p=;#(2r8A5$O6GW_AT5N3)L~XxdzS7C1Kewbyf{u#$-F*NA+*%51HeLTgQs2X>tZ# z%0A_k)y!z zez~(eQ^6}QFW*Tc4o&zzzpya46pzznkqJDZKa9Hv>nK_X41(&c_2xGu9Px)J(XDl4 z($L}`@0;_p4zZi_b?-d(k`Y%9h38r^lM#h)<#`Fy3tqT`#A&05n3$O4h+zqZB7P;s z!G6{ig_frj78ah&m&O4$-b8Jtj4lR0(of#=46nuEDW%7KH`lKSxD>+7Nl(806U+|M zqPO=Go?1*57%PYTm#%!5nR`5nf?r7)GZ1&n|Lknc4N1!dAbANt-efnW%~-}FA1S=d zaP{vViOnMm%qS0?vu^|vhUv|+y!*&yJ-Qqm+L_f&oS7^qWrQj$Ebrie2e%S*a+&4Y zW}=1I+#hjr=`#-A3?+P2T#&UMATn;d zw+lZ5YILlWL;?1nS=o+F7FJ?Pf98ts7AAqycAcN(!gr{ETG50ofw-=3kWWj|%8^D#AXqt_djM z(ZWJsG-g?TpD-)A>8LTC_Tr*JOh&vwpbT%9(dQ#&G^&AsfCX2>+u^4E~#sltUx|#KBUp|e!d2dvQS*8 zv~^E?u%xLKx!(_hjZ7IeKe&1V>D(lLJm8hS=-^rf*uv@!u;X@h$Ux#T!fBjb$ZMd7 zMWuE_TGK@R35#$dfv5aDf_{f~QOtdIw4@$BcT6~9basW*m~Hrhj3V$I8O(}$pq!#x ztV%*5F4figxr@9bqRGitR=;1b4T`#Go~;@lHfxEq*7dUEoaW1JXf_f$x`>+_hl;i* zGZq#D6kjkX^k*$B;UjlwL*p50OGreNf9^>qjU?bB3YGe(gR^D~x2s;(&mYcQ;FF0K zz}S?tf64XhEbE{!CbVENG6v3_jv%^3%;LK|Xw0QXrxIYgG$lP$W$gw2C{CtBMN>oz z8x;VR6FOLb>x*ooctj{cjZc)TLdMJbgp(JIWS*n7f}|0c#Jyp<>*=`LgNCR%M@~VZ zclf)k^>)>L*=fm=$zr~eVznMgDO*0K{AfhYv2V#dtZl7=)U@CIXrVp@@)=vOC~ZZu z+GJ;%y}FM19AiKU|82>eJ#W5Yaw7QK$kMW@W!u^&ORPXMy7sPL2_Ma8IGbKs zVGP+59C|eJgnJ!>bGDW(l6K7$p^U9P6d>bSiA?j0QiHm3lKGka215reNLfhY$I28i zU8KLB9A$J4yo~NSOQST`S__G|eL?;uZ(=4ES3Z$nOffk*>2R`~v}6rRTc|Ns`MxF) zd=O)2>W;wN{0lNhrP92O{|1p}N=vP~JPcA|o*mYde2^-UH)@r;BJX=lpN9Lj($m@V z?TE{xWwT?`kNgOn$=ip+frX}NZz&@q61=4b!D$K^fmx=A$m69d{eA@RwYaoP|EE^2 z7j`4KJ zi5Q3byf`F*4?|Cm$PNQ^WRB#GZIF&%M^M?5m9g0G$0fFq$9ZOReWN=zqKQG8i< zgft?&7$CZe_QQn4B-;xO%?50gRbqDk{zK^d&>uhEWBSPR9F5Y^!GWLI4s3rd^-`^i zP5k+@!xtRtse;vdb!4+QYysrW`|H=QtK+2vr{l%@+cjW|a=qMbQE9a%QmfZznqpV9 zUce9&6MI}uiURIEpt_nNnaNaOt1n`Ix*+Oxeq=-{p6Ywo$x6#RF-gg-=EL$5y4;iU zmXpn2qWBxrvb=_mH^+%mB+1O?ee0cmA>rXy4Uao1)~c;8^u4{k^T$qa-}t-(H`rfL zGuW@LTV`~_4Sa`%1@HP)HL2ldD*5_C{%vie?G{6iC8cq{&m7bK^*C{K`*okyY$^`X zNY-#>uitcrEN0oH=Ws8*ik?s|b7hYK2<%u_E0rW~&0isW-W)KZ%e<@sDGn;tk z0L!juAz0Z3&(ytLRl3qF<8IezPsJ#ZA*L=Pv<5M!y?eIWJizC6IgVfzmzCW;Zpgp9 z(~mk|J=cb2wp@&j{bQh9rZE_&qPcx)d|j-Ro12?DJF)IAvLZdM)#kEUR50O~W(~Se zR?+fGazAY$@TvG+Zn)`x&UHP)sNo?scJ0^Y;rM6Nf=u$be4G76yQwo)rbzjo_?0q=(PQ?Qe9976AhK> z5rwe2uJ?Hw)(I8wZa9UK3iS1TpGb#_(rhNeoJ6OHCM-{nTE}&A#~5|;YDPwK(T4uX z>rxj)VY$|xHZ!C6dKmzV!C)|er10$Ei{rQuugr~9{! zLo1EfAGg9;<*=XTPY?@jY7utHc&$D9#26T=+tUDRjR?^;eP;sbBRcfTqh_b#Fm$bAVq@0U2(jL$O(2j zuGZt|Sx!XMBjVtI3jT1r33w1?Hm@u0uh8&yF+b(*pUcuQoeAJ^@-xX`xXasdGfw9~ zx#-?pY3hMD#7r|XE-qwWtqFv*RwrTl*Syy(fpliNz}b1(3K20JOWeg}Puw$2ye<2| zKPYI6)2r^NVF>_?lop2zH5e(Z)|u43wUF*`v8Pt(~(jTn=a1-|V!r>L0cVS;0Jznp$SXbJLS zgcIB~2?SjEWmvH5gWmM&48|fAMFL^= z`;)DLMWcGvJzky9mpfh^d+w+DFUzjWGaz2{usi|IZaNv)r;lxqR~ym4%kE7&-+SF} z8?UDGr1igCvOPn>fem5A-=7ym^z@`Z>7FDBDcww1Nz;T@E@(SSLjTv@3^@>_YTkkV277uHhE+ab~4i|kJ8!^lGIQD9H3y%cPl4dAh zaINq;Vmra1Y;FtP6M4PyPuqA)x?Tzk$zWh%pFv{9QhIt{azvsa*Ma?hb!1z|d&UG> zf3IAoCJcIcF4>g^Ff5yK6*6{+W9wcsR*g9M>r=VU$2*?>@NV$ra-HWvDjwLPSJ_gp4eoS27>6Zaz%Ar|qGQJhHG92!V ze%DZtPof}aQ>td};dSA#Gm_l3&ObLf}2ZVqgJ|J z8ZBF~YE>iv!0=~k>d~6_aot?C&4vJr#k^1VM#qLtrEWJQI*o={g;v{38S!vPBc~xL6%F^t{3}7a0E^< zpiyRS(X)MH%JX}VBVHTmn)|s4_sgF+cXu({Y`8L!c$9jJC8vxQcZn2b^i))_*6k}k zOUJsy@l+??>-+z%$Fz3`*s9AjvlW)pg&u?~_cI&>#J$7Gyl;I%t=>*J78l!17L29a zRbyb1^?0Vza9CsMH&L&<4flL0&p{CAF;0cyI!+~#(H%W)v0-b9rOfrU?RM`vMTs^5 z0P5rLmcwFUmvV|nS3$`(DSc?v-6m@@0?&Ke-7>3_3{#sLa0d=2AWUwR0=!`bO@bW( z0Rg&z8De)(!gE&Ej3xuDdM6+1^>6j> z%?{-DyJNj{aBn`BI6*^UWB%K<{iHBPmC-2ns@J0>;08=rTiL&ggr7B7{w~Gp4no|$ z9OnfP6FV4yF>MaZ8kAMDjvXA+=e>Z>4BjsuJkM9(ymgX{nX9TtKB^+Sl)kl zZM*yWoZ<%+^)pd5iczl&cqg-sesFsvUXy8|F35^CxsU<|zx@bT1d+P;Msw4c0647 z5g)@6JE_uNE$NY2byP>0aO7xbNh*S4gJW6*9WqY@pce0pF~(nQ@bEYsz%l`f=e#ZTL%u=n`f9fVif3T3%NZs_VFD^aH(7~=SYysY=~1>J2CS@}J4Y1ppp46|rPAwEsA(u&_|VN-8xYp})RN-SzMoOGz#bK={0Z zv>9X-WWL(yO)PtB?cp!S!)yu$Umk6+z#p~Wab@@%-rL8Eey1{ou6wI-jonN#bts(2;!f$6MN8(&eSAcKjT)00Pfs(QE9bsG z?ER*u_UXtD@Ni_Py&XnzOO7)v?_jxt5b(CoHuRZHqkrU^s!|!DLP!~*`Y;z0Mf1xf_(2~0gEp$f6dLE0q-!NK;(34 zfp-r^yDU#5qhTFt=SIQ`JUP!kgyhKx?B5brQo@b=6dD>D5*Ah#o%}Dm%dE}!emtF9 zv{G%jVx+J*v{#RiX+}g<6*_)XKq?3!GrOyuTc<7)JWyAsD)A|*vC#zqk3+!1LaJ^# z%7$4ZsK>;kK^LaJkh4R1@)H1|2-e)S;D2u);<|9gWdR+@XuJ zv)NKHdjl{X^(P#GBvB3(LX&l9_fhqj4Hx0a>CttL_@5~i-WNaj2F3%=(4gDX^BywUDDx1qxjf61!>S>rx*ADOPp`Pe z0&oDpZV`f)JNE6jYM87u$6+dq#zBI|v{8QkUiO=!P~smVT^>i#ef^!mSj0cm_(Dbj z&lQ>t&=({z((8a2u(Ee#(S7~uQ;Z>8ie z?0?5pGM%ZGDc_u~$@25R3keAU(j&g##QtpMjg7J7-;B?Cr|NJym4)2gU|#PY>D;uI zi0AVFNRN~qZ{LUpFnWZ$HqhXlSPmm}HcgHWcvR>F>_PCW8u)`4ILA`h%6y5V&@K@L zKxF_0rMunpabR$;bN3RWnuhShx(yo^!<7~!{LyF^qW0G>U&0AkEp|GqP|of>H0E}P zbP~t_lLf0;EdRii&{W1hM8vN^jGD_7SGW&|)+fgP=m^&b&q8nCltRy_@A5qM8x=Lkg2pr*@sIR%A2;xZbYP5&StE28G=O-pq z;f?dxaHH3k?$(z+i=iRhRwhSWATxL>T}mHx&2W9lXnk0G#AUPjprk~B`|9pJ<8^!D z8J=-Q0ptUAS0;o-MdD9~8P0aIacSetPCow=FZAyFFyPGm?}i@%uGt9}dLv!SrdDWc zlPRtl+2|s)b335N1Z5JLgym#vZ-pjym*@ArjVI>wB9xO$%F{3nz@opltB%$tWN?|f z7etor&u@HsJ!~)@A*G=B5vM%{x&Hh;Eb(EAQ!172_u5WLg_ln6#rHQ>0UwvsceSm# z%4k-j{r*Pu1dBUz#8Nxmafy-r^uJOIX%6LUoSKjBCwTptzMd|+7dd;)oh_%HJ^HUn zM~Ga;-yXY!B}2kWhE>dWHXNE&U$*B)QeLrG5u08{UVUD=U|=Oxt6iu$tLv33dk0&gFrS_AQRNe3CRWOqp! z;4zrQ<)^Nii zi=v75t7ijHhm*-zT>+lXMQ22`v5|Gv_+aP3bDX;Pwv7Kts)xwOuiXpGL3dmG%M7)& zSy@h9-GW%IkDo6tBGbPe|BnfJdVPIzc4ehM`8T5)Q~P*;qZcaMa&mtQOT4eqVOf;k z9zJY&|Il1Q^JtN%-5YuU&9#0g1<+igk*>jEWCZ-zg7srR94oJV;@Tk4BT*ro(DtUa zHqP&tkJdmzt*u?WPd~r-7rKGqnG0f4S~7xz>0S>D3vDhgqm)cyej-8n%$mK+)M}fT zc;uX}H?~`?t^LF3hG@L#)g4G(s#TK?WUv;CsjgEtvy5fjK(bn)*;?$f7Q>Al_7V99fo0mqZ;2ey4)ExU=q(9B`%sj zuG{kSLGmUsH66s|NtLy;dxlxULm;J8_L2k^$5)$oIYS3?{aRVW2%T=y$e$u$}29; zQ;4$Z6381-8k=;2X=|q2)E{ZK!o4A~RO6bu+p4Lm>qZuxc6VA<^Ou^+~HtVyBWp%YvhP`%CQ3xt3?pOLMEi|Ruxea!naOti{ zr0jZynTzjufwm`ti?u(vmXlJT_b1Sl$~@x51|Lr8S;acj#`O1kI1w1aj8eYuGf zll=5z^4a@qnZ|Xgw9I3oNh(?M@5mrAC0wByK7SnyU4k8_Rz5R>iC^|3||Fex29gmGMpyrPRvVXJ$Pr5%59dR*!cYohcM(ucZPCA@;wVbl-y>|TKBnYWJ z4jf`z4o$W+#dlPN|Iq@_@TlGKPE7;B%F~y}T2+;7&7)=G?(Xp4wB>Mzko9dKTeegn zeDu_+tQpUr(JQHz0UkYBf^r~dugKk&I<xld_;xRPob6#x)d?OHm&56-VlM5D zE81A^MNl4mD${>AY>GFR?&l_7mqyDX@U5EWzeQ6Rcu2cg;BlBcPC5q#USat;n_VR$1?QU`~YZsUynfpBi zwuT3N#J9}_UOj`lKzyJ&b;<7KX@cNT=H}P?bBq`@c26j9(_6^jWL}ykI;U;sV@_AQ z=RJ?rsg_z9b6TjLiTe}y{*HHJB!HQ~Dy>#HAg>PP%1Bw^{ASI6*Vt`4<8mqTi3JDT z9IH*-2IBh%1SlUi1pu21o6`vf426^%^OB`j>QvZf;G{){t+l zUm6-dr#z-CD^TxpZV*iC+p-bnwc~+}9&YSsDJw#dc){hBUpR5z#_3k=jo<=1;5t=e z!pLmDc`PT2Th>AY+j3DWvbfkJxetH`jh24|xz6v}n9P-#S-H{viVdfP&R4NW)@Dz@eta~db> z4l*bi{}0kGNS-4;B=GUpd&&8;X#}-;I6_X&B~Yz}m>4uq#?YFTw~wLr$QLfIBSg1P zf8Xj0ouX2n*4jJVnT>(|(@$%8tc|!t4trfMO{bf7uCg$k?ho*Uo_BoFF(}2kfd%dE zA&|eYTpZ!yX_Gg)t%}2@54rH2H5zSdF6QS(G+78x=@dH*CPr67jF-68h#kTF7vNSK z88aXbyA$jBBImY9sAdo_Q4`{I8B(x*_YP*tbgI8_n)n+3E)6Kve*N0wbljy^1)#*d zygUGN&mC?9C909MhQuXn9Nf}Rzz+B=CMmwtG#Ha~ezSBmG6rO|5e2WD>C!1I=O-i1 zY?a=;qqL1agS4$;ZaEhvr%6dk%N!n<+MbuxB-0g=XTbUxrg1P_w%ra641A_0PFiul zO}j`Xt>4|vdyi~IW5)hUskCh)h#D63-qgPTAZ!`sabYyEZq4|i{>{An-8=r9J zH&)a&wy$i@iK82Dl00J?scye9$<^q{ioX)k{VfoR6`{NHLSMVOuL-@|N=FsmLH&NN z^64OnWeVhp^}Li|n>!$Mv%vs{J$DJ=;rruTQS#}-cM2-1ot9J9PZ$_M3l>Jh@zh6) zbzxdMHED>bxL>;)>Ds$@~6sCFjod68$5mK(JX} zF@^Xu)Ow2-(j(~UJ#M6rKOR`rcv$!D-Svj!`WYJ;+3;@IGOdf%bWQ0h=>2R?Ca!m? zOQh3@q-{pX9a)477CwjJ2QTLOp%2?IQTe7WTw3X#H{Y>yS#r%2DEHR9!D!pAJ_Q5> z;BvYA1XM(q(|y!OEABscMsc8Wq~2=yTAt7Fua_x7t6jMvD6aYs>S*a6>zU^q;%k#H_)`6J>?en0*Ke4FkE*In{c%FzgJ09!S zx4*-k#|~Nrplx{+m8dgnwr&)mIb+%BH1NNC{VFC_sFJ4(wVrrMhM)}qx0n^-mI0a} zJ!4%K^(ZTTM$yQ%2n2F@S;pO+r%7qtP#GKD1+P}R?+FUY z_P``u2PWx#DJE6(bu9Z}4j8_%(>u z(h=XeL-@ZNwuF3W@bz=LS;~T5)~k>2NXp~8oYS_bd;4A6Z?7+^RA{GLMwor%QM_5s z89W+O&CCSUsvWeTr;(-Ug3Ebt{DL)~cYOCl>AWwszY^!?FFlNbQ@|`!cXd@R{T-7A zao@2kYo5QkxbpHOXn_8+r_gLbI`Sw~rQJ9yTKzWacJ)G4+f(oP#I&NN!1ROz7#zF} z|838hl0vt(xZHbLvEYb6aog}_OHMquHON&uI`_s?-B+eVu>kgJExKBGe5mV=0E-h&R93ZWy@Ci#gh2Hkb1)Ie}%uYfg z;5m)9B^-lPHovqMwP1QMnYjeZYj^_2@&Tab04J1JoBIK{9J)Q+wBDudy}@J0-+e0>J4Q8CHb1a9(=0Jx}Us|x`kkEHVPkc@(px zqwweGE|0Nl&0LWa91jK%c|FEsi)im}ok158`Rx}l_D18`-yWSb7W0`;LAUsA4_8Gu zwH!bCar6HznOi7v)AQi~bc3DrRYZ@L++fWoixyj&vuu3m0Y_{x-RCt1xp|tRu}NTU@q5nw~YtI!;Kpc`0vUb*VmyE*}ULjc{GN0 zs238YC@|_wx-7k0LV&c-I|W6>wf(^j+)_>3X9a)rwEOs`a-+b~;YhBHcU=G)S!y_e zR)23oz1U-42_P02impP2Q5((R@B+ zh4`_kL^w09X>j-Rpf3HaQ#&Zy2LRaP{VO^6dGa~=T!7Bz<(TwGq!lJ+pzokTwrCVS zpj}na&7^r?GN<2V{4?R7nf=JbBKil$f65azF)d3@YRN_Ywia&I>YWou%`> za4Wm#y9T(nNMJg+2pIOeo@3O46|g3wKtSM7PC<)W5|o!m2Go3$m$>;E`25x!Ot<=ZDC9*QEyVStq;#@?yk=>5f(eiBPnv$1BU24<`?cO$aPlVS; zJv7#38^M6%zVl3dOvvQ?4W|~?kj<2unG0GUM-9|N^ zu(1VRy}0LV*$-na%ambRZ`z`b`#}84$~5D$UO_xXT+PeC5MIq-ocD-= zvemTlV8!*2k>Fx-bllUcboz%0aD3|A?oRodEjKe27_z3O;+4Yyube4|3Z62HcElhA z_TdO-e9F*#zMeV-`K!o8qpg1CMI}(<0;+kjv8a&n*dJoGx2qN`q*89md6Ck>&d%g; zBfq`cB*d|Y1VeKkpL?SQgN^K5ps`Cx;u&iLQ&+5MY&1zW>d|L$A2(+ULK1jFBMFIxQo-~3NVmiruNJG)x?djgInE)g<**Q7qZf$_p zs$H|e_q2UUEC``&yeKjs%e3_M1f$u}(s`==dhJxb9<~c-d)Os@jwesIQr%a|#P%(J1FG zJD10?CSI3Seq6e=Qfc1618NF>J3H=|=LtNjdk1E#hTYUh)W6w+Kx&JR#)j+uc2aCS zyXitTadC0F{5<>ltXbWsPoD&AZEamUjTo02PPul~rlz9rZUvp`ygL<)Mqgs98Ax?? z0cn}#z*odIaWk_`_S@&_KFejU+y?JoKPu@s8zLKh0p>LCTfg$|a>YNa@#Zo>A_KX% z#S=S9&1R0w%0-qYz(^nV5d`8X;xwB9r4o~_uA$xExB$j481|bx(b3$oAJ+L-gB$dP@&xLc;nD6l`PTrii%Z`@KD z7D(UPcm|X~%0m)5H8mAeegcT)J(7J(N`n*IUWtb+bT8x6P;njKYgrwpNj%DbYqAB9kA(GjsCZk^T7ssT)Vn93*R<32NBo#UMf$y` zovbEFxi8b=C-h0~qBnWpO4v@YR?}3p+&q?gh|#5Z7EpG~#>q_NT3;E>(RVxBPK9!{ z?XnR#;^C+(9e&s*_^$&;nN|6H2bbk(bpBBfbp^h@8o^GJ4i(ssWKFq~K>gi?D?R3Y zRCeK?T|5Dmw)H__+hZc4(hsvO7!po8vZL!mu(ucYk0=I%#=yn~-d8BE*zi+0_ZOJj zvUPZfuOB8l+&|RnuZLv2nsd^ws)&4_+P-su(3}G#ly8NO0P3asDx<-c+V;8+Y+%WV zOn9|9nQ=Z^1nv@87)R0=Pds$JCe8U>?aouVt2x?h^fQ;As@OS+)VFf z;5&pa(XqcjY7ucBYWoKylT%V|1L_HjmFBo>UW=U{iQqzWqaUp4G4n4f|8Ral$Gbvm zSJTlyUgd!UQI>J6{`hCNW332LB)32{qS^R#v2V|Q6)@b|`CD%j3;f&ADkQ-M7*<8+`-EWSJ zpD}Q%Tz=b$hiMmPDE0-O0*Tui9SIj_Fc8QAX%`9Q^*aG8~ri5cFjL!Ew5MK~ye1(BA}h=?V%o-$+jEY^#m!`s>XX5fpp zrXjt6d;(1%xJF4;wJVmq#+FT^lLja^{KyxLqH#EN`WR~VWUDW)|AC1cP%w)p&=})q z18m>V^wmsk%1=OL@~s_%4VNaF*?LU+`2oNRXm9;2Uvz+K;J{*)U%oV>jce=mz_d_EDx>n+=m4X6{dc6h2=Q@5Wrxs=% z;kVKha2#IT{!4vKtx~d>>r9o(Nv+nT^To5tVthGj4(CZP;I5|l0D|YATO@cM$;0mt zzYL5v{8a1@dw(?4@Dq2-(5B#%m5Dlf?V=24@T5ikujF`sv&H+20lIJ)ZOSFB1r^P? zlHBKyq&F%zYQcT@aY2Qm^TApvmy~izB&ZlN@KT$l$j;Tw3t~X}w9Z-d7GO!mP;7#!iwimK^#< zeIN2ffL^H?n>Pj9;5cs=cTT_3Vm=^)_n>qBsM!pkFFt+3Wa(uX;NwtCDGFNoT_~;s zu)GkKODi3D$B)&2rqKW<6j!aG?IgDy?B^x>J#L>+kc(-QI6^MK16@=qcNQV*xlckj07p{c-uHqZef%e{qv~NWe7?3Q~ zPUPMG?Fs0V<;&OZ{pl7?KpF(q7f!^*brtLRyj$fiCTs08YLvHIr@8Q}ZWsjQwPB6r z<8l7}^TCmkdVH^1t+zmttUs#V_ybUM`t)gY{2BfY$p9@&v5E6(#)MtvfIb=lBV{2D zO53>WmmZtlh@ghhJ?=e0wIh0|Ul~;C5p|_a?f~k9+V+^F05lj7;>Qo~{(oXb<;9z9 zbm`}DK|#TR(Unv0w3wP8R+E!l<}aV`>C`DWR8=Sx(o{oO=$Io#=Ft!>2}J` zRGRhZHBARJ1g9(RXRVRrLyO1WUO?rws%r9O?w=A2XRrKQsK2Wbi@22EQ6h8VtD4T7 zeMH=;9ZRy)IC_GFD&JL?HLG9V6V0N*6$=V8yYboR=OoT2d{{# z2q9(WT6oXXKN3yAKaEyO@`MQI*JFZsF7Mm+nimcW82xC6aBl1Rq4DzdWwg^zR7|S0 zAE;VPp5~iVa_`(qimCKQh{~4M<{v@=RcJ1zo7cOC6oT<45K!}-thrsYY2mIlUHK7$ z()Vx+k3FBVODem2LF0Gk(&}(z^KqQ_c7Q$Ot)T~LR$pxQla@BRa7>T3=r7FXz?DDQ zR<&^)y69evW@!=ZJTJD=rX7chK&%3V-xHMQ2nHd{+I{J!qwpxRa5vO;)U1fUAx)jv zUN9#dQ=vd_&Us&PMU|Exj;ga{P{jSqZ6F19}@i`ZZ2 zxzU4A6b=%`X@9rkr{kLmE9q?Z%N<0RENW`#2cV;<5F(jL2GIGX0Xd?-W|R95%}79j6PtC|sIjerDV5)` za#qa}8a4Ia?b{?Hp)a6}G4oC5=A16qbU&C2E2ym{n%@TYh8$U_@8|)H6V{iGx1Lxb zY9tH{X^Ze5!&}1BBbb4IyG+06{5Q?e-|pBt|7`4e!5^%qiokrKA-~6~y)7!>@ASoi zY5n~?qx#9^AA2A%$G^Swn{9+5h~M7k|N5s%ewsdjAL;l%>gAMrYvrAJ9}qw+mBfG( z)Qxte0HBL?K(el0e?&x1o^-NukXRpU_vjz2SIDXLh?V+_8pr@N&OXUMxfuCy9n~}{pgVc3_ zsBVW4L{}NZ-wy|#pe{PssdxU%etvy)`wUf=0%r4 zd(7C*^ZZ9z%k7?9CiQM*iV*1BK+493)!G%12!ua{;?tkAsIL9atCp z4UM3v(5*afKCD6YDTjzlKvCygJ|v^{Nej@%yYT03ouB(&_N=7!wo@Z!OMC3~SN$>6 z)-G@Of<1b4TAC%*@X*vnUrNT=p1$Ya(ks?jS{PmY{rv zrBxog<$iZer@qcL_;8p^zhX#V$qJC)LT7gMyi=cVSi=$KiE%IQAV({HRaZ$lbwkX0 zA70@`X0D;2Iz!FXm30LPNoU}7Ki&v_!Qb~>SZMYblqv7@OaDT3<-YYe5y5HeSk{{b zZa&}cNFIUXUTJj9qJRIxT4nuoEszmpsXO%NW9#*el>S0=p1G~vRORg)l1v(Oj=75V zj`wv=mB-MGPJ1%JNWfWID+77(KBH0Gv(8_Wd8rf5&RYUm@0*VY;(k)4?AP-XlFnReo*H%aG7zTB9oUL(I ztEUJxOHuxE&6W@md+X4J!NFg5cP)LlHO6hDm$V}~lbf?|P2S`&{W*%sw*-`Lo<|XP zZd0ky@`@-|ou9+!$4^0aL*)lJk$XR5O?R5rDHJD|t5^4zUun!jeH6C#3~Nra(Pz-| zgMUcabdsO;9NflUo2H2d2PKOXv*l2qDw%O`%wujL!AQzY9nmS+;+# zOpT3ITy=N8@O#sG`Xj|9cY?XK{YY%d??>aytUw=c#(oL?&BzE>?V$X}>jVAg79iwY z$Q8vNEjw0rRHwBdWGk$s7@E#k;ya%#Q&-aPwYgat7#N_d{;tg892~s8=?A3c^rko+ z{rxfJnjZIO&)zjx{f>E9fp2c0I5Dt%A=eCzD34#E**BL-Oe(-zp<`(!P>R~4{=2WT zaX{UtElTQcz8H>$UT3*LB49hbe*}(aMca#QdoJmz(`-{;IKI?;{z`6Mp8c)W7ua@9 z{)xM}@NICYE1g$g6rhi-%5h2S;l{g9m4(9wDGSFLz)$>cZjd+v-ksAmzE!QxYacCE z>JyHREUZ>T2NU4lVrsTqQQ4$?MLv4lst+1WDQafzkhqzQNYVTS&fXP_MJ%Q^Cftnu zSl6hy^>0-}@f0L9)r$1AB-Yy%4@7*WqF4`R-gyJ42Kld#jLxfHIGpi>mE+?PykzNa zYn&st$GJJ90fk=d+}a%`Z3W~=+GXTmQ;iXA59k{hOu!EryrqkkA5r1kjJ&R4x4ciO zrWKz40>0weZ+gw(15<~71N0NSY|}P(ZGY@5j-xoN8N2$dd_U#~F3R~a5ktlz=g@^M zMNEge2;EXmZ#Z6Fklp@(4qf8Y_xba#mzl$BLj_(HD_7mq0J0*WK|}e5F58Y z4f>$-J9V52Hv~yQRmM)?3mA4k5v-_!qm-IrO0C10OAkI+8cSGI-=a>Q&v)IQ(Z9Z( z+Bs1C{_PeoEkoxXUY+~aMgpwtIp5BQmCio&m*#X|zdCdbQXFLhz}@f}LLd}Ny)>o< z*43p$pp0f5`B0g@VL;#>uFp{F;AQo})K*Y|*uB@sfq+|^1=@CjzO{KyEphaTZhIa!k8S2g&dJ_lqnKW?+Yh0rc@vka& zP7q5`jO7hH49u60K-5(Pmrij(!uLvQY-BStVInIv5UxSWexTdCHZb@zLPr+24TFJqHRn$bdXS0N~filfjY2aadR~R906%eWKLW0*)%75OY=~gO0UvQ;Nu& zPn7&Ay!?+9f+-~5p7?e+gyM+b-uKNo*+bF(|G^}N;$8oWUkj_>p8MB$ir?Qx{d-$6 z)tia_URH_+eEZ+az_5nQM2Os8jvUo4n~wrL5%|&@ZKUtikmwJ0wu~PY_pYh z4s6-jzuul!>^q}K4LW&7k(HHAZg4^6mu5V%bopjFYc6e&VNnuNP}o!RVfn)AAmXM=Np12_!6XC<;g zcvv|eK@eKLS4g`>t@y$Gcd2lha*nOtd#+((62cSGe^zW^0WhH9Xe(0J1wf!qnAK3@ z1(K0EN5^S|spx`X{~pV)@4L7Smw2(;mebZBH8tOU?P|8yRy={f zk=#Oc@$p5UUH-q)-U2MjcHI{TQBYDr5J5m%K|;DwL6DY`Zt3nWkuK>DK}x#2q`NzY z?i%Tu`9I_O)>?a?^X;?$`<%JFF3EX$>wfS1S5FFtY^g)Y3FmO@+#8W>(nivP!t%f% z_M^4~qCGCtq2zR4u4$rv(o8ee=fd|KFGmF!wPr=vIvSq|)Pz-;ldbyT2r`}h$yf>a zP0%pt8;wc4h~w2+H1pZG+-S!lINYCM5F34GlI`KM+#i00sZ+7F%2bGpK3Dh|$pj|J zXt4WrIB~c$`+jFnl;_f%&I`THMiai+YB!-R?Aa-*1Slw-1p2w$Y{*s zA^h^tjfJ%wy{QFp-MuI^H+)v()EBnw@#!Y2pl$aNeZ$VI4etYsd2b?YaaE2AYE}su z_?d|=u9>pueCwVyID^8}nPb~lRwbO=XU97Xd$;UgYi$=_9wiI;OP3m+iyJiDvRF!` ziG5yE#NJaIP&)QWU}2wDw(M>8*`BW@sdr@D91oPjBpr`B7mQcZ)=FygXqlM_L_w2@ zkG7m`AckWXf^KCkSZ}}1yuH1>+_X!k;KGvHm3vCXjIIo6s{+{4= zI(qKy?OkC!<|p8ORRV0YZuY8`ChwJ%34!}39r$@Li8(@84F^kX*2RI1_5-lRJ>_+H zrBtlR!0cz3<{k^|Tw_h{t_bmpbSj?;X&e5#=qMl2@UfNBuH!~*Qhv>wo(wrvS4p3= zYVT;wdkLy2m27mlV@n_ICWn2AdculqW%Cg?3Mrg(wA4-uHiWh=1*!^N#P~SdC%>;F z)iRt>tMWOLZwjk&EHtX`3?-fIlq2@a3%1bH-@kG?MYFP%o2@i7_}LIL$FFZYP0<-j z@w{!2>n}rs@Z?O<@X>NZ8G*|+yeM06ID1aE$DRW3A+O`XXK>E$ z-o4B0eq{&Zh!l%fpS+7s86sIbOjF@2 zS+p(R2OrkdtJIjBASDNlmmd%&H|w{B@=mr>(+v>iBf4rU&=f9DR1izK*Nxrgm8#d` z4kTIfS;}=SG)hO9j~DKudxeIwBiZkaGgcgIk1e~wI&iZkv9guYpoEy&oKH6P^Oc6A z)q@(ug@qp@0a8l{+=T6T3>ap-6cjM4Sg^LTdXqUa48&kjJQz;g2n@K;n3TN|eX#6?9U~vQ)eEiw#Nh!wj=^DHp1lyxF3T{Eu^6VjqUYoH7pS?sMNY zEPChm4wYYZ8){R%xx&D&lk>*%Ba*fuRz&HBl+))p4syDhNV7NTa`?AOmoOXOce2`z z?55Sf7k)j|bQ1VRTYtH{v-2*_A`{(QB1`TOmkCmET!GG6LA6Q~MaA$;O7c|)9L3SI zpjJ$k(Z`!24e~7|rTLX*GpY}A%HZ#zySXn0Q~CSAp>D>TG$Ct4frRtNW)LD-cxE5-lj!k+`7}bIPP82yH9G=s19sH9Xyv)qZ zf(kOHb`j|yl_nE(igWj7L!H`3w( z$7hq}@&WV;o_mwd9_Bgvghp~*4LGSW)aLK*Q=*}+I>p#Kgccw7xjfN%e$XzEfpLiPLlm1W`D^hzCG%To9b54T2f^Q~8rX4H`_r4sV-vCCqu+NK9;=@}F7L`?-YO!Vdi1XW;DuxDuiHL? z13}H{G?&IE$(_w!2By8nhtzIhg~KR(Yc17}2M{=#@~uKcIMW=9u9U%5r%*>rVX zGDY9a$y?I)#N$I(IP4bV)%ALu79to%sYtzbZVvHxK|yJ-1zne33Z-aRiO~qfueP?= zgqRnXmm^scPww2g6M}dK>f1;ghmi<+BwIG$#)2Ay!d)&9MI)5~o{2c@K+1kOtZ#}O z(Bx35uz7niW`i_abzXSZ%$px17Hkp~i%lB7#>XO*Gq93b%Ax#H`xD`h&uioL&r*WG zIH4bf2l}r0Hp;I~FY@w?UtJsX3;CZgRuy^XAZ0h7QnhpPl_uc6 z1%h#UO0V&7Jv}{dZf}FlHet5nw*6C6)h(eIpjlQhv;A_wY@UGOsWFru8i#9IiItDz z6N;|zX(_#T&FE`bVwekoB%5a$3ZnZajZA}Esq*i%MRvSDJh{gVV4wcvQ!&7_ z{645>O9Pym%tF!cvg9HY5&{bg3$uhCy;HC?sjQn`@6Y&cRlqDIN`NKI0^{Jur2OJj4%5EJjRDClxHIokH zJUm29OiU8~z&1nSus`1lU8NOwPtD1pEvnS$C8y94LvG5udy$PBmrKRMu?aLSKIm0y(lxGg;h^gn{M5@~@_)l?sKrMlbhi7GL>qSpk!iyMjHX^LBurRPW<83Q& z&HUqiRT2_ZxWMl5gqVmGeu_#+(BEc8d{Y9DIT^hygqX@IJ?E;i=?Zk~sV~87VMnXd zQ|W|{ny#~NW@2g=i!Jugoo;WN`ELi9ugvH;&BA@LQeZ5~y{qX4eGk0-Mt`=btgM>- zWyzjVxMTM9DC7;ACCbwTmlKzgszDmM$rhY?(~{K!esGm9X`8}kELC=&3saXkLS8o{ zI_QC<3+kVT6BTNKeaEn8%r*wLTT1#W@Z}T zt$a5({>z|_hwAW3D5mn3N1hK|ha+$O9l|QcD_FevZi*JgcxQ|xZG(Thb~nBBW@o}k z(`{ShhWFlZL5KXw0k8K$Gbtm~{(qU5Ag?C=J)EhoI2}5ACgo3=eQ$(3oUI^k_k{66 zK2H?_@N8wQ0c~->g;{%8SUUA4vt17{&j0)Z#?=dF;txF^zvZ!il*pubjTI)`vi*X~ z`L&^|2Q3=)>jy_plq3@8#sIzT2f$xzp=NmuxsR)^p5DN>R(_R60}S~bKJ!;vPs<)~ zay~iR(-c#mC!vwS;^1zs`K=DH?Y4a5>UW0rv9C0OqoVv8oBfbVbk{`ya7$TkAk8^B z1BO3A#sr~Ek<*#V>xTfu#WNL{i+_Dvkoe5jL<@5Y_enaxZW=?8DK6xJm z+Rk5hU2Z!?o;?)bk-9)HG4G&nvpq`v>({Rums7f`s;Y~Ni}>ixl#w2d#aPD#HQ93h zsbVcd5Gw+VdpeeuGQe!dZNKvvgWwf&)$y`FSs6&c0MDP1Z9BK)0Zt@gVc`<}K7u06 zM)WtCBB6v_R?im~7w>g`Qs^JcmeK>itzPdC%45HCG%ha#6ennUw`*&kL0HBcCnv7F zygU%56HOzP$gJJsg{uW5+qvTZ0E`o>G*MR~TSW3!dd+JdVp)rMF$Rn7ZXDLn;DV$VRJS*t_rpmkJgl;At9Wkyw{6@ z21#uM3F9dj^Dj2sn`(sJ;SDYrX+!Se;Grv*|4C}m^&G!5EXhF5a3}f!*a-MX9ahbC z*mR68mB@Bi+ivMis>hj>UV_N#2XS#C@vO)u_qx$)nJKwS4cW&Ia48EGkjXFrlAs=7 zV*XGmHvo4{Mn=ZPel-N0zxap5ti?iI2bc)%V`6?D{UP?*&=BN2QiqWVTF5c6u|*@J zpfX#p2(QA=K{_iUvMz#Bl&H&U`PV&=5Y-N1Fl5HEv*z6NKyv}+v8CnZw`OLq5b-8- zF+m{i4*3X#mLZgrcTiA9c25!K6ZA$1oNHndluZ+2{s-HizG0_7U;8MX5F_9t3tLi| zN)4_)`I>U4@h!3!0w_m-LlS%M#jNT zTh%J&+jJ#$XED%};Dv513cdQrOl2xZ%Q^TfS%72^hSC)nR5w^FNGX1k92pSsg4DTv z;sQ1jD{#3}Q$O|6zMSP_$!5jcoVRfmT;H6F+y>%x4rN<1sW`FP`U(DR^n6KU9_(x{UA zJOOxFUYkuble(YC>NNt~Dfkj`uv~-PMKuIZX{t1o#HR5Lxmm!x}sl6+izq*Ju@@KOa^KHq^lKe7~FU6jgk_M)}xnl6wgrk^4}4h%$tb@U>!X50%gbtQ*3nnH!i%lUAvM-*pSM*REiElURtqTy8yH$^-LI>l zx7`txmq7YzG+jcDMa0$uT2pW|1nmStx1qvrH$bD9|NJG^N5Yo$Zm}RW4b1m1J-ML^&XCR6nc*F=^?JnVAP(pa$YnQ`Bw@sNS!{9Net;p-}kJ+Gm%{tnhGJAebI^$m>Wa zA5!Z6DjIPeGm8?drlO)_Zmyx-*wA&r#8jlwEyiMQW+uMCp`A?fssIw%F0VkwlY-r- zY00+;ZWu68aa*t41(8*HkS2Eo?gX%dzRMwJ=V9d5(rjUSw*1!WR|;uzmyS99Lj_Htvzud3n*!6E7dUqHT3#2I}` z>_HBOo~0+^a>i-8mzWK2aII)S7#Qc}{+^Ru(FA2~U3b>ZFJ9~v4OB*VCQ zdB^GYtS%qD*Y&zE4X&B4hqvtzxEMYCy@k4PgQMXmz<28}wg3)a zA}Hj3*q(t!GGT*C944PVb@f)EhmYTM4N`JBGJZKEh~_g+INi1*@F07aP1!>iTDMc2|&bh9Y)e&P`krRWL0gR!PH)Pr3x{-wMR)MC#LOkK2(m9koJc(Hn zaf!*Up1cPK2hVsN`kk63bczAc`H+Z69OMeB7RK&Q6_@LF1X0Wlx}WY&g<}zOSY4eM zgENH)9tG$d$f)%OPXxkUcGJm_{kdw;9|wNQUoUQku^b@9RfhwM+UVF=Pj4@9q$Up! zfAqs9F)3hmJWz+-9LwnOE-x>S7i(#OgDPCfQDaUQs$Tvf{Ump?^2dfrtfSgr^iZnpF zRars?!GQ!Nk)1}l+;E7oWWT}2QM}#*1ek)-mF@|L(ePGK)6$kZ?5o1AcA4yWNPw9& z3w*slk-d)!Hd&~K_vq1E5fO0ZvT3&mJYqAlvJ|oE3L{Z(aEbsI?YIg1KoY0n*6?>D zHeW#*3P#2-Q8g}nRYowyyfw-GV%(=*lT`3$t~E8?;RbVU(ITq(CmK;oyK%emQf=Kk z*bW=vvbd@57BOVyB9Ed4;nK*Gp1bd_P7cIDHPmu%!~_r&0OW0IPgN9gQ$YjuSgZ67 zsEgX$qgkMw6<+k}uf-^7z809vdDYSR=MkLCF-hX6y^ic!p~CZQ{LIVyN3=pT9sXO5 zF$R|MCf&9TOGh(?!%2I5dCUcL;p-<=%ES7It>dO*Jmv*Ss5Ws3Jsf&M?vyZBx-_GJT2Z{NN}U~>vi z9!)YO)KC*FUrEd;S%Jw$rU-%b9T#dtWzZ6HtA( z=cs=hwANCe7q)3Z`$VNnSd6HWbm<{%t_75?LzrJPkepMuF{)#uarl!X2oF%Bt zP+#8{0L7t1Mj!JTND#?6-~JGEY_7cbG(*ji)er+eU~CbaR(RYSDcCNLVEqh!)LU%d zZx_m~Q9DO`4rYsXp~$D877<+%fOPh+xrCoj-^V;>{WnSY&#Ci2bC0f|(aJ~!IFv!( zhL3uKU1)#*t3Mp5fu58?amT?x_-@ZQW;YT0`Si z3s&nkGOEM(tpL7IPKo%*IyvQaw>@^k#{^-*@kxLF%8+I_7si|3gL|K!-H>|4LuAxg zKnTdgjCXZW1#2hxY995v5^iOqqsvGLebBqdF9mj3DzV)LW3)7k=8ZAA#@BYHSgmC0 zMUwaHYuHVVw;%R_*7UAr^C``Dog||**|dDl3lpbDe@V*=6`ynW%;l?!tmZ7dv z4CqVZ4eX~H6?d;_S!>LHcIbl6>OOhU$GNd!j6?^vYH45I=2nOc5&O|bvFFZ6K@b%$ zk|3i>KkJZy={7T|s^U{%K2jhsPC)-MRr?U%wCjT>3P}Uj=g&JMyREZ4Nx8}>f_p`+ zVdZE259)k;3NIbIqX51eApVl?CUWMg%yb-gl=1^QMCQh_ez_AlS7prXHm>^X*Sle) z-0wgQV<71j%A;Eal7n6bO8^#<(Zr=P3%Zx^R~SqHr$qIwJW8!VFf!mc~k)p44|u>?g;uBX;^wBn2% z%sD~s=m4&evl>3`yOw~6+=9aYuwC81Ab^@Qd^pwakxM&zab4BC^cP~sbU&ZSSS<6N z{?W1K#>Du$#FJ!>%&y6ZTc~$nUE&&Svf!0@ZDmTFD6f`ogWst3B5Bbx&WFx)J|bEq zOXB$vHI=zH60@MHntp=!$6K#ThQXZ=o&o*mGlnG2Rp_U17U$8v`M_{az&mZpiiF-z zuXU79bmi0^4?qedtRDR4I2#zI_43GWRo9WKbETS%-6B1Cq(I97Ac6DylQHmwI$H@)x54@s$BIEBmHAIAEU9)+L5&-iSjRV&q<;Eh0BBO3l}86r=E z$L7H&8kV-y4aEx~;S76OEV zjB+?Tob&hhM+1-ob$v}sbWicobTg^m5DX<5c8f#9cgyDLaa%dAmwdWS+i=tS*#pj+ zEFr5TKHm&VRUB`Rc+p~&h+gq?#s|7l3hK33{*>Uul>>w2pCc$%baF#=dRDMlfFvm6 z#ThLw%ppdTNVUJCsoC;uw}xK=w5KPeT5F?ln>8?`q1W3zAAzs{2#0vr*J3^}-;@EH zM7iy(P{MeA+6Rzo__OD|-=u14YfAvT{_c}oYet7@P{`@#gxd7A>3!SH2Kfvafm{6@ zPdG>Nr8$N?jm#48q~19<2m{gv!<$;FDe`LgfR5nO-d?-653OV`r}<*2r~f1uH~!7O z{6IEC?!-+gMVIo-V}~gC?-=^+*+OEIN}^Dawq`B&m^Odxr+tEHoN+ktV=Yw7XJ5<9 zSqBFPF^TxT;(YN*xSmON+jp-&a!uqo?F2OBYrQTYC%N<((RFik3+Wn6e!Z~c3X9VM z!BCcnD+7SmRQJ93 zis@1@y1H&L)S>3`OWGUeIV4zC?$@o1fFqpO26flm*DL=t$+xu3ZG#G9O?yE@(P1Sb~5ydInsOZaLhwhq+&!R&8*;-_Hh zh|tRw{{_Fn^NqnDP^)-RWx?>|2`(O9=;6>U6b(kgyOBRtDsKq8xIL$sv$3=5=d|70 z+5%uuP*16?=gr$<(gou+S;&RS+|`3H68@`})fdJPU?*N35*&JjhlkR#KWCkMz3O;% zvae)D=Inm6E$N5#wBL4!Z{UWhd8t}HhtwzpJiA8-G1I5$18ReN=+7AK%(FYni%0;- za7pzTXbfLGPXFkIe0(@cqlN!KwiVxwOmgwZ=0CV?3nV)m8!7=!a#y)%4#`;;!VB*uxd%F35)Ro&gDK-)zOsWuy_7_LJ)IItI=fP@lzfR{)y+Cb```5)s266Up;wVBu8 zS&GA@E3Se<$+%~8@9cyrA;CkhQ+Hwt zLQKCqLqiiF-!|1~ArWhL652)9T>g24ViCS1w0}g9zD#jU zI4o^IBNLa@zQ#iMCZGM*e+{P3?Cbt!Z2Ke`ZkuDBHw_+tT=31oJG%t!vvpgC9}mJa zYhcmh`VnL_$8`JlAM+IMh7q-_P;-~_^(lS*ls}Wg3xy_gyC>$joVleRlezA_#wOwW zc6hNYgl2rIJoD<>bTQ)|pdjhX2HV0if#N7ke<6{5%Z_KVNTV(OwVqUON^&x24_{QJ zxSa01cHU8F(yEBpa@gORlf*30n@s3!? zn;a$W%=U|4+Ucpb1QyaR<(+h(jf+ul^E;rTg}Ay{0~Z|Kgim3p`Cl^ArWLr8D<=&( zdC!Fa1;tOvYao*d4GHPTtx~+&eaL0dM|zmDJyE$ z?^c*r!qpBNjQCmqhLp~HqiY<$KphREJ0r~CQepavbB>YaZ|J@MaA>Pz0UM652% zI!O*uv9W^-^?|Q09PYhc)uONP7_RwV06D_g-hL`9+I0lY!RW1M_C|3jfww#W!mQ~! z^WvUCldv!o3d&;WkRUgtM6lc5>VISR6`)F=W>gu7CyNagmV7*O55{X*wff;8xFdG? zaE{aya`pv*^V-SwKv3w=VSO%5e)$q!UC{Hwi*7U?3 zH`750LADbG@jOS2NRbK^O%`z!k*FGp2B~e!R9B*C@*y>EHC!w!!W1?0W^8~o2hhL5 z)SLh=F&NMc0L1TO^m{2hRqOTl$oQ?)Y&RJ)Y^P*D>l<$`o!_+;bgdq~0u=Fz|9io) z!fT_la{C+Cov~zY`QQH51XB>(p|G`3PQmq4PJzz8d~a(%O|)UfH?+?s3y+tTa77{bCtxW;(joBbmroJA9G8^_l=b2{ie4 z|NrpNuRNYwIe$c`ejVeB{we!?aV|1>ZE4g9chd3PIlW@ZOQWxDC^>%@4ICtoDgEMF zA;jx&14_FovL*&u-I0;kA;f~A?yjFyc%p6C-LK-1z}gj0K`*odg6EG+M%#bM@;|c; z(d$n4KG~V5pZ@XwzAQHt?fM=^p0y-h_6EHBa06G(ao#%yZEwV2+v-0t*wx+r(u@g+ z(Od1`1bvm=i}k_INxy>rSKwjv0Bi2^wpFjNb2ugJ%$zY2WS};uN-V{!-16hchkpox*nhF`mt>z+CfLkZ-a1|AudJ-( zejiCMiB#hXmYvc15R#d)vzPr}C8YA9Tt7;Cw$8 zyVdOfLjLO)$q)Ge(7`*tzr5t~+9qjG=;`~IN^v*-hp;S03Z=t*(>6OZ zKDqUZBofTP0bhLmwKDYkvSYC`dn0y%6EcHt_P^zuh3~~hNB@dDjw{pKe0#7c)jl@n zBgTXVbcItk`<&WqRE%E_U6zg;6CGB6XSwS?`N-WzZ0XzyE16P6pbj5KS@7=`+mh2w zhDE?od7Oy5yT>!9d@AiZWJ^&!rZs#>4EGc8?9kBEd}j2b0r-&H0&E4SQ1cjcSp*p}uin>~ix_5&?4FavCFLHxMO z4NLZNusU6Ukk9(}8rg*dVQ;*3F;TcDH(V5`Z9~%F%mza$9~>O2O85Sj9OkHsyEZ%+ z>ZnxumZoI+-S7~~cDfxVb4&^h6vN8dQ@fWp!PFO*IGOtSiy;_^odZdwGwJJU zXl&5&zFO6R4j@d8796yjs>F%a92__R=ZYf;*ST;+*Vdbsj{4o8=kd)nDJE+j6szTt zuB+i{FktXLk=?Rq=&|qKZ#KVf1w)r)6BPI|MoW+HLlf!FU^ z1u9d9T`XE~^wYF&pQ^?h&4lZP@yu{+|1196x%@z}5}jLXwDPW(K);aN;xSX2c25h= z39$xZT2M;A_LPEs(>W|A@5E^Y28)#))nFmC$#1Ettp{2-<-j-uJQ{afqCL@AP1cYE z(#}a;8okqEEthU_HlPaOVd_m4Opvmom09}kje+K}t!o+M>ERSGaI)x|Fh6=?W03t{ z@YJcEf6Y5!GslxB2`7i=RA^^~fK-4;&eEBi(F<`bZ*2SmlyYEjecM`I>wB2vi~UNC zqkZ(7+qt7{TFX+?bMi$OSDLwMMuwxh*fpNDefTLjj4iErcH8rd%1y?{7B{>Vojqdm zYg{(Y&JJ|4jSY;VBy^|T2&TU3pG+k$=Vt=o1uP)2oMGi4)8gl3o+mt5#C0gc|Ck~6$IJd^@Q_YQ7TljO%#&@4K)$U9 zSbN8Au~hqrY)WzAXeU9PH5%XuM1c}mHuI{1RZlKr6&#`kSf7B4z{CSnQ~cX22fgdb zEZ-`P$lY(%aBDsP5+^88)bDkA4uS+Hg0)5QcbXa>AggsBb zx`-YLP>)FCdGhs=y1^k0e!;=zQ1?E9_lJp}W=&mzL@{^5;eAy?{-4It!iv;^9~~rB`&(BZ2+lvEH(&@psNIRbDYBkceL<1$(y&`Z~_$N zZC1i{oK*Y$S|6gRAHUeYQDng$N5L~~x5(9$kR|e{dz|hbfk6Tg6u$-){a>GMe z)RRLCzHGS!nEm9RcHQth+09hJLa!r+kkj(zo7BAx|NMLmjk-`ewpegK1jwmeaB|g( zNizB%SE!C%TO5$d>pWQUX^)Mov>$;#jy;>Di|NIs&ChDY226R2EQ)f&XDo!X>^J`R ztki|PBH(w6XJL<5tJV!J25XaKd_YCnIz`u&Y|a!yzI$Z?Ey!OkHsWV(doE%4{-F3h z3WDgP2tSZ<&^~O+ybJ@1`J{>b>c`F&ZGNXUwwo5;*FhJhJJHMZ;2Hb3E;7rvs;XB) zl}f7MDvU~Yv&6FeN3Skr9mm08dDsbH;HMB#Vc{5K&(ob+5Iv;wt4iFH1R;ZsBSEY2 zxFrBGSY05zq{e7?wm)zG5J+u~07ZrDLt_K#EzSCS^WWbb_53_gQW4e#&^FL)Zh|FZ zm{XNT&wg95y@qX1fyB?g_1A9T!QwzvXAt#M@mn;i*fwh9==0b3Ffn9HM`D)BqZxyH zsww!B;vvNqm_YURxN%!nfw?GQ*V;u8XdojE%1Lts}A;KQH>) zqVrmTzbqbOnb%og?%|kWKTGWT!kP}aN!cv+S`#bhBnO8U;&q@ntlP64aX?-x*{gKh zkO2Je>2i7E6N~fQhlJq>ETW;2IIe9AG}u@F1GgK(l6fZ|6cc?3!PUK)V+5cF@Id9K zxSd}tVG_HO?;+){K?e@9LAU4aA8XXzvpL&y-tagpDs`L88B@7%zi&Q^rF#{k!Y4Rl z$354+De~IxLc-47#x8J{z7SaE@Q8`SLGKRSD6O@&kKC%4GFN2Wyh;}>x4vmAtGwKr zbZ7JNZ)!>R<_ELQW-3WfEQ704#sE^2TFvO1kmK8_)3-%JU=DgF@S7MAt&EC$>+dtI zsi>*3vgE`d0va>ru32CxO%h)NN6BsYV=Sy@@S;Cs&y1wcLse!e7a3<ubbE${r z%PwFCBO@g}TW4lxtzbjRn`8iG7isrhpgE_z7nacbt+ny~Gj=bm@4Ub-!4&Kff7!C1 z5VF}+*b2HKzM6mPXQxrp#|)q&%ESeandvd*SZsDQ!lXN9Rfo!Y9vFnnBIvgOaT<2^ zP<_Ed!>wU_A+^QMO*rbdwaDH&S`cbfZ9fLD_n zyp3+r<@mkcj86qEC^c??c4({6XS}iJ_u5jWLl>3#h{uFyM}>Lh zrU(0v_%tT$UwwOdP_dZ^*!hbKC%L&S0v|suV(Hfm^HKG;X8_Uy3vA`6 zDQW#{YruDP0rPeG7rU6imAj9OBK9)xg(BUTx@^|o=BHT$_Cg>JhKNOkZ%@TIkSp}ry5+!9HX1dWXZjD=+_3)s`w|VIPJZ? zJKtx4Z&9}Cj+^`gU^Zlw75i*9c#!!|J#9De1Or9z?0@FdZTPqRo@An+0UZM&_pcN3 zV*N&M;DZe)Tiy842I0l8LtMYSXJ|?tTxaUmjf-wnrZ_&%5aGTMoWYILvL%w zzYK@EflyDhepW*(5XPsU=*#)XueW0ZW=;_ zUw($T0d*hzhpd7qs$QvsICpMOr};MQ z@1a8THw}}s!HsE~)oGjc%5_iDARZn=;n^EB7NjfE$|bzWi>RoVb00Lce@!j)2629= z%M!Uq8ll;5Qu*6|Q%morz5XeQKuU*L^ZJ~n#IvxOlV2PjF0Ondf=NSzCwm;t{0|zr z{i<2dSoC-9SYQWJ@6lSXHJ$4u*={zSlj{fu>a8(Y-|z_}WQq#fZ+Y_SF*!;%7Y~$j zSj=|T@Zu5*LM=uoEnCed?Xefkffx$(B}*%#>~W3`r*0G!qqS$Z)tos&{PDbtADkejjMin6mX(j z+?X1emWG3d^TT$}az-)%wu*<5?34dS6zJ*8ol6Uz0F0igbP zgS~khAqd~L_rt;22v4{!T333W(*7sW(_&*N?Ql31Ec}UBu#?l`8CZ~vnzjoH`PfHo z4n#AL2?)yEE^UBp6ZkwffJ`+ zSmj|0@I2@WUfRkNLAq&>N-q8yphKW3xHh(KPlq^OhkIA7&GD>QGBP+oqE>VLg!SU0 z+u9XA_taIT%8uOI8-_{jfM+^&lf3{<{cy_(_O?@-nR$P(Cw{>EuwZ3%EIcuh2dpCM zI1v9!3j*05hM&mOKjpEz|0ciGVb3jYMlc*0xKg~31P>B8qxN|nwEBwQ@bmybAtA6@ z!eB7$ePGA|^1^RvX)@sUN4Noj`qVt^_~v*hDn7ou)dvmXssct%zT1V^9&|R>iiWLl%k@dgfultft!wsiRmzL$Eo;pPc)!VHmmRG;y=|dAi>`}aTyg_eS>JOu9cCw9AG^Sc(>d%D^PNUwbws%K6CqnmGXmMJ9O0mpgDyfbT9Py!OhU!_kp5XESy%E;V%! z$dlA6EvHLbVSGRzs+j)?tgG7zYEu!<;JHvsnSNh92o=j2Jm1MLo=tOga9|qG1-GsdD;@oL(^oY+HTK=ij>4e)yX2~mPH85jayoW?t1W$4Ze*_z^`BLLPRKa zboSA7y?}ZLEUmYCGL4Lkte~i9KkH^to)AjR`FqANO;%G=8VIix6&10ky!g+i^$?O| zpgIGZ@xY)U3JQvhHhZ2`@h#cuM-jWB1E`V5v(4r&U-2#E9sB$Gf)(X| zVZHTkAG(YYS~6}vXpN3hWOh0VO;HV3Pa@%UKscvBs-cO=FOy0h{;Jkt7mQI)gC?+y zb7vTd#OKdct*xyHh4k(&_~gfJJXqV?cFw%I)NqJY0DfZ&RAtiO28KeRBtOSg(0M6r z_=#pAlIG>!KY3cTQIeKz?w7T8lUuNHwApf_CNiL^t0kipnwGp?=`32v{V;{NHP0CX z4A1Lp$EP?yYC+yi9^8KYdK26zXbgR}IG_4nLxX>F(7o$$vT@$nR;GD3?#3AM7Np5S z2te(r7Q;A{dhR-OJw7oZFKZnbr@8oc)SaHEki%Nj*_k`d*RQ2XJZ~q?Xm3_- zRKST~dF?_PMFVMrz&#=dnE3TQE#KXwIJvkmJBw3@HLJJYxEeSZ&8Pz3HH~i^=i%q^ z`0X>2x#SowPXc!KO3Bp7?jc#XSI0v{OnkW(C8Jzv64OQq(t%gN3Krv&lX6;GLm(o% zg`s-hW`I37pnGD0H!rcwguY30noNL{fKLi*{_$`~Gbgq?Bs%eOYC4gzcuc$8&0On4 zT^-P9yrW96Ge5v1L zpgjC2;uuGv@yd4Uk->n?{EJ^^9KehI4B@JFb5pg%BYO0x6<8Lzfs;BWCI&3AQmWg5 zZqa<}aQzxQM9z}JtK1exW6lQSi)(7)4O5-{fWi6>v&s02$jC^it?&MOww8bh0n6Hl zk?{Hz7c&8WpYD2Z%-wtUxD_|gRr&{z+-%Pz^PA4hTy1%gRu2Mp*wY?SP>`JN7IJ=6 z!f8d}M=oLGgpN~ihM+3PVX zo^Fp-8m%=Ik#vls<`=fGV8o-5tTDMj;<8?8#|ax@d9Kdzs>19r}pteTI2+ZiS z+nu`cd&k8o_lcnk?%~WyQ<@<|EG!V}{yO4FlLtx8#xDNCE@}=4SqEW9igq(`)s~Da? z{C-SezzN?I#sn@6n@gU7N1TcEZa!b~M~rDf6?@}!@lc@q`i>X5kRR|@j11tPl1||| zfDYjPg9oil&%dd)r8Ivp4)|cn*)lYm#ffk4cPBic+rDLJDy1e*j|1cfB5`Iy#(-kY_rti zga;sACn})ABVMD1pld?BKBQ%V-$1jc$xoS+!p9UmWG+MFt`?*rQHM-d!ccT-Cr30(q()L%|U6d4g85d;Dui;F=NK%l4Rz~4_^JO#e>hT8Xl z)iWDGaite8Ud$}XE&~62`B_Ze1_XMY2>h{ol51rh1_HeWi9`NSa!lNtb5O(VAV4_0 z*!RfDctQI@A}o(utjbe+7f!Q)*)*tO73cjgu>iPWK52c)-G(%AP|1g2xTtg`tU5IT zln}bQn;ZQ;C$z5_)Sq3!r~?KL_J-%$Z(cF6meoBC=^_WN4%#Cv*nM1sXx}Ih0;@qm zF)LstfJD;%1XweC#Y6yB<*)y~lY5(oNf%qI!JdPM$Jb!08}UVXlpHnN`}fDD^PMd% z)usBtQF~N!d^l88qRz`o;Zadh-rnBH$vRWDE1WWC>eb&5sZu1PDp6$lP=#bv&S;_} z{2|BN$}+z8Z?dwkqli#IAmbVi4CR=j*~-$=(#lFk8`v|sS42cf8WpB-@$q*yG#P)p z%7tM%EtTl<;$j<=E~*p(m8Gn-G)f{X{OL2G#ng2iG$=i#wY9a7?@Hb1=;(<_1@#U1 zc(@-Rj~&V*PHGWGee;R?eWkTk<^AChunnZ-M{0>b(A`~W_UUR#=&}1b)WY96B`7kA zi*Nq1!SR$B*kMfaofBB4dVgC6Rvy^2%OSLV?a6^)cbb(2DioxE9C@WFP2V-dcK4^l zXm;i+%R752$v+dfIYH1?O5ZWG)8a0v7ILW_ zvZfZI7Hu%~FuKIa&cOt2^;|(SJJZ(QqdVjVnwBa;;}T%At)=lTbR#EuznI(_u9X%q z`lFh6xH2slMJr9DgwI;!t866}L?8Xg#PE-i5;AG4kpItq7bw!!=_0 zU7|uWjhc_FRb-Gtnq$&3HJ(b^DsFVdY7d@B?tQKF<82wH9nc``?^QBa?+|$VNj+Ns zQk^#10C#z#kTcB>W9u{dCtMX8RcZqkk*<3FwxJ!$;*B5oNjd1>%2Vwv_sO389)ljG zbfN*RR^w;V^nKpZ(G|j^Y11uwPtZhbo#E8gnb0xF)k7i9dWxbG8ZwOVK6)yQ7%!fa zzkcEO{OPsBAEh48$=?nSp>1t#%}O;2n^Ra`vo)+=x|ZOFRlCN%sK* zG8R7}HWn8T4-#5RVsGVW)pOGYazEku7yyGqz34j$A(L!XwHb$UU2bk1lWwC#ZCnv;4UBB6tcI>B zxEU9C3ivr%1MN;YP7*8*JUSnw62EbhSUuH)YugHBwP1+W+F#E(z?K7l4~xU_$3)F^ zfUapFTX5!P3U9c2OHq^Gha4~8T%6i+xn6!MPTsqmGn;@qu{$)_@2Q*^GP-u1?R3r6 zRyYyIzyo)4ti?s#>R49z<;kZ{5>H89euX?mFCibY5i5(_+F9dE?b$id!ba~>>+Yti z(_rf}$PK3mS>X&ZP!CyAqqVQG8ljZQSAj-JAia8Z>c1)C+HI7AqEWJqdY>bhCM7vw z>tM6$pqy_CkCKenX#8v5E$pSg32E41M()UF=uKQ4-pQEdeD7q<%|Lm%l$#rHy5KR{ znApflBj_jRYd%tI+j1h@>GruhyN!r!##`%iH99&;QaxNlt4klQvW^$tf~3yJt5*(4 zusf?WEz<6;F!Px=R(B%SmX^s0`CbVLLdFmMSm%2{S3Lyhg#uc`c-a-c3q2)$5+)}g zh(>cvGgEuT@KM3@%X9jd&m)Py6W`JI^TP(MgnoDdao!}ImNTWv#s}xVMTSK6sTQU$^GJb=x_`;E_ zR}MBdZ_^Fm^wZ=zTw!kP)|ef=%rzQluQ1t@hHT+o@WykWBo$~?P`pi@0?t`V58O2S z#YL;%LGD1gy(vS&=|HD>O8>iPK`bI?x4ZCDIA#{-;XxWu}oK zxSFQ0P7edT5V8=8XbM`B^Z>v5daadZOZ1`O%SgjFjF8o}E&IJ|2GUv>-&9Zj<^{O- z&N|V^Mzut3U{DTR?!IyPRjJW+r_%4Ekjv#Y+xvH~3Gnb7of=IVT?Q72L$_yG21nZ3 zI@{WElqHM9$ea(RPjKAJ)mb-IS7#t?RHXZ4amdflY_`v@-k%^DPa$d+n#HFE4mwU%j)&KbIV0@r0Hf8mcYy)AstvR znkb?eai74)X&oJPk$)VGP({Sx3#SpwB99A?v}VByObkls#`Q_bTvod;`&z*XQ7YCU z;^Uihxp-qV+qh6|B}8g%ZR)tO?}fu;eSDIMj6cf2EaSP@m*M(V(6h*LXaRA5;i`-j z4-ap1YioT2hmiNwc|X_T;GBSi$QW<43(ZJRuT2%{mGS=W=;r8F&(_vO$QvF$Ysf)r zB|nA8i{Bx(8A!#Sh1STS<;V1mhsWYJ=f zir(P6Z70p`DH=Su4zv`B+na@OC#TvsyqNlCiYc-xUj;wvclg|#i<+=}J&A@#-kz&D z`O#UW$HhH8?VDGc>w2xD@;4DVIA~l@-;fM9pDfzVlZI^4LwT zVzx?CBa#1Rdtl;2pN7vP%vo%pJ%B{X-Ie@;R9Vsu%zo%nGyXuzHn<`cWYn_}-SE)SOIQ3cZm|qLjt2bz7YoLXA`$Z$UZQV=~Nr!ATjhFkN;aC?Ehr)2{yf zQQ*M?T@!XT7vda3*B%p2BYR~ z7k3Z{A}Lo`keIksw5rTpL_rZ_5ABt~FK1`c<=8ZgXyk3vtD_wLgPn8$MhVPB*`!On zMMr#ai=yOnY)NkD|0eg-S};?f)Bh_e5n2S*g~g>{fqR%5=}UP=dB(7>)Crg^Ad!jK z0jSP^!cpL7HqF3C;B?5i7N3Lu+8+WPUxsLZ%A_}%@naqtP^HD<;`$QvMZXc(9 z4p;-C?+SHl+&3{X!j2z=9b1l7gBRy)1F-ha@ZMuq;cLU7Z)6IuyZj*E7vt${&DBMk zOK$6O@9!|t6bN$!tZVezyU#Q$_j@`!*;rW2*O#u>Vj_6Tp~_QMVFIJy{FDNh02Hbh z#n-;XiSGZkwwBaWP7Lz&3EE4}{XRi_@9-5)&l3NlNi)yej}Gh?Q0k`@j?CuW~-=v4*sjCKeTmQLlb|y3AIWikq1#y~+bQhI1 zi=GCrS-shTgj2+BEcbAj7R<#I5st1`UmySO73;xHW*+xUCGlq~By0jsXSM^|OR>m2 zt+%Gsuiwu$P_-0_^OSgI=n4!Fa9Em7(yq7FT#qwM!~3Gki-;J;6t(u6))C zPZv`KNCN^w_GS%o@*2g+xvgAP6WC#=2axbul|tA4#Q9>U{BK2jAw+k4Ka`2b-l3zt zx7bE^=L>iz4+lC-j&e(<{aM`Ap9%k)9&KhGT584pn}b7|cs&%d2R`2$IV*0GJ>TLnoI191Ep6GE zOgl@SYucY8VBQ~@ieXw9{4rKtLd@_oCv(;BdfTT9Aj6i<+8LLzD0Iw>ij5m7|`g zbvoY#*91mH5TW7WZpP#(xB4I}%{1NCW?FpCk)xhHzLDr7LjZYL1GH(nK=yzU!e%#p z+bWt)9$t?#u$+-$pQCC#+~)0PzkexCDZLRZ71E{D$udf}xrxafr>RHh=2l{Q(^Inq zVKX;gh;+}+VN0HY19_AR0q5JzuZc+DaB#on%y&qUmFk`CW#Hwu$JaA8y=@&XzC>g- z3Zh7F7NQJ5CcH{Wb3P?h)~m`iRW44ZKy#|xI@wIvun#%*^~Y&I>U%lw3SKxcK;L>SK52w}%P-REGVy9jcoP#WTN0CC5xpei`(|*KF+s@;I2f@S0MgF=(CY3v0gxf$AmEdV&vT#Y@WH z+1r&Ajs67U5D?4!mhe;?qw1C{@`7SxuospU&7It_p49_8VjQ2YYUoc;Y|Fl&Q9u@ zaKq>6K7|Bdfzyr2OD zhyPDIle&RxFA8<`_Xl&LCxknzQbwrS(;ue!w>t+D%-AED7<^Q(E7kWzMF1LU+_bwp ztDIlCv4Nvx|5lFc6N{6cp0gJ```%0((pRk|L?@>Jvxx(+({<3tSXAQq8%lKlZH@7x zL*oyIv_-pW{L}!LPrV}zX#-GPb#2Yr4za1Bp~}?KPv7W>h=};`<>h6qx2m|Ck_+7N zG1;6j(q>@kYshVEgk?h1*a4O=|K6u7Vl^qGVLVM+QK%LF)P>m03M6ntkv&gAy2|lB zIxa4*s)_@RSqiObu~@qa3WXjlF3L3=6ZH8*(mO(l4VxU_I53oz>R+Xr%CRHJHLT7y zb##7T59yC0@?-zjvkLion?;H7!W)3`Us`;V4f$-K%SX**dG9U`=4nd$_vc(*AtOuo z_WBXdyF--WM65u0iJ}}uXkp~n8(${vAg7ntW8EPy1QKYXg47D`0+o(WPOuOS3`CFq z_=t&+YU&gnW(jj{-&?WU)pUo5RP5h!X8&U{dEbkyodo1Wx2qY!d_3lF#6pRKvMI3U2shkyQDDw((DW2;Xd;?dC& zol1e2nAlrVRMb#BRzo%ug|?=(5F#ECQPG$@qrvBtd7wN(w>nC4X;_rw_EeN{twX%& zSl+H5DD{Q=?UCr+^;v6ctG>QI85x;q5N?U<)$!@6?Y*&~;d;5r2s{d*|o%UZJ+!ZzRP+M305`4+G_a~qHCt2|-OJYmw85k*;SU4@3(I@^*zx}$p&9PrPf zQs`bhXt_la=Ozk)wfnf8PjWPX?xZ&EEG;oR?9aZ$pxm7*^YyE=oZ~j^jV;oyI~ElZ z6if!YH`?uttCtz(#y@}lJTlE_@b%-J$JW$+=m>EmU<|Es3zMwV`cSogY7y$$38jrr zD(su*tE=+`h_2~ugguY1JNV3~nfVpQ=0Qw& zc#DHVwI*yuU1fZO)$sDhk%wy%m59Z0tQ#wjn+h20b_eUbn}gi%4hNgPwk;GD6n=#g z%(RWQcQxPhX>%G=lasIR&(+;lD&!J^VfEV`i}MXGBqSsUrkz%^8KR+=d+zsF*+5UW zMK!A|-Hw)p&%!Ss7e{G9g@Y??y#ZZY=z8uwmdm}~k#sqM0^y)Wn0yJNB~hX_&*|p- z_2Eo{ykq5jj+@If6yqsq*Kmcz+RhCUaI=}TYnO;8FET!k%x`xL(Kv1t`K8)>C2399 zRonRm1+4WP%+@??UDhyY`qtJu?4q-z!PQaBy%m2@)cxWO6i;xSfW_$H%8?zVcjA$;M9>IF-dJW*6%;F~}Uj)MDdgn_@K@FBxG_Y0HX9^;K&R#UN#3;Nm*oUE9HK z2EY&XpO;!v-0!;%C@CqgZ*H3MmrC?Io<4hawdadU9G{SoPh6Ng z#oBc$6?OJ|)9juHuPP`70-kA@9Y_9npWkXpDI$~j&UHNTbK~L9W-&?06V_~p2PfNz zhK9X;z7C}`hy4IfE7zOSOkM2#?Zc(bK7yF6S?)$dyUA6WkHt4B_~Ti@P}|k$o(IDH zx%`p(;+XvH6fPSsO6QrxsT4P6Gb@ehq!B8ITn>6lc)N0%gZeXzuFsWB;7AN!+0t!6!-Qg8{IDb&?xL-tTZ&#)k$GtVgCN& z8;shhME;9Cs>K>L*BvRYZg;0=XBOrbO;_i2nUXEah3w|jv-M6kL_`I|Ij)|bo>o>? zkHW;SV1kW-lqUN<4cJ>M5|SnDGRdy4F5t$*bKB82(M5EEF7u*pGwA0K#tc!p<)!`Bz0YN_Mci>x+9DU4EOswkb*GnLVW5}zFk6aQ=)cM%b zl?=cIVqffx+(d+m7V1mVz=a(8!!-EWTO zDq>?}yWN}vLxdmvEg~{fi4)L24KMcRMzW+eE6wAA`*yA*O4JJEZa3hNtZVAaQ5R`S zH|FBHgw&sO^|U zd+5Qa#`*mbz#j1M;*MT+5nim%!BkYDA>XsJB_U_q>h)uJvABz^fL`3byS=&XgMwS_ zGSN??n7ubuQKxI1Q&d#6P2FJy9ow)w7;4QI4!m=@n6I{STe&_vX-r;l{|O@1Q$LrO zt>DInK8Oh@>zkV96&EvwiLskc9!?phpbc#fW#BMsbrus9oh>8~Lg#AVyWhJC3AHZ3 zZlw8;N=i$ePdCGol9KXPms)*+$r|r_RFo|F_14E16Csb|*|WPZPvaWzcfdj4ho1_y zPLQ?k&A`10oV>ggAD0C~!^Dmo<9Yo3aDAjD{ODQosSUpfs8;z2)m;$Y+3lTM=_6Dj zq5LQ>7-4sm3)9BB#{wR#9Gn}Q?dGEAGfJ8GdZU4T2F(R24IptF7#U3f5x-LfXhlSp z6v<=0_O;z_%jUG)-=~sI-X+Gr{z&S3e0XsI$VM4Tv=&pP6liep@Y_2(563-B+o+ZD z)R^GA(-9!lV$-V)R$Hx9IUk;!1p52q@i~|0kyBFsnwU_HD8pG`HGYAiEY~nKGxI%j zPI)gYbI$Jb59PhuYR=~sXDMLlc2=LuRk%oSK?>Miog`bQ()BLHA|D=g8&L6+Qy$Li z0t4kenSUaDm`n963pBe-7d}5fXRn09YBee>8?3L6dHo@@QOW#nrfomc@`Qkd6BG~- zxw97|kn4JQSP~NA$8>8fb|B=N zadMK$q`Q85+cUmIW*B)jDk9>u(XR^}?C+mDVgxI8YDEls!XGsFLyECw>Q3!d$h(TW`V=<*nEAc)?jh1Cq|`Er!}VPVDRIaEO>9S zu`shKrPv{`P_xo@XK2Ms=cRG)$Vi!dhKP2pt$dX2)^H|(W*9We<)RXKovi2Uo!)pK zitg?1suZY|08@AI_mafpP^48etim8kNviC2=0kD*3cm${r358L-pZ7t?g)N39?Hlb zA3ysQf;ZZVt**EV3`j<>LJUMSA(@C_FoR^WJnW&Und>%cBk5 z0CUcd!{1*9|Ghi6(*XaF!sI#4qyQ5Gh@w< zdHJCBcrL&EyXw?ZXZdx6uxVMrZ7$PUd`ULiphwQPBL-*QhnA6yOkd#P`2PEo$nFC5 zd_QW}EmQ-u`E1pJ{-nBkIy290(hFr2v^d-*=lt8BX_C#&dwDB8zwk1@`0Xz=DC+g~ zxtlYyv6=6$jb+CSxS-~D|D*;WJ(#Z~S&MR@tBaYHmCjK0#mhV9uV_l2RMBQFHyC+VaQjgCje(x%*;oN5}QP76m$G-`kZH9e49!hpu- zb{$D~=U42VX<)6vy?{S7@#tPPWYdueF#d~XJrL~w9$#JuI!L+_d%TQyyt zt8Q^(_$IUZL<{KypoEs|iiy#I!4KDG+Y;n8QA9{e_?{jZJ6K_Dv2g)BC7;G(+zqCGtE&n%ucLV8Ld{ryalM` z2?9U;Awg=z0@U=*xC5PHRmzeGq`s(xxb><)?eAI`8t*9|eU@bibQgT4tkKIGvoL z+c!^!4C0NGN{)@4PxX|(v0r~mlKt^-Kl*R_1QOT+fb93I@72|uIGtGWP39>7PKrQd zk^f{xG(Ltvx!B`8;y2NOPrXL}&2*mjCA|G}M;{?PljU~TKfC~6BMP}>)6ialN z_ve;#_Mgw<`yg!FD-TIrE;V}3;6c=^K-ZN=hl$7U4o*t2W{hs^J*i~1<@S=fY^J8B z?suo?^1?Bw2CASqVvrtHbK}vR=B`*G=AjuW>ENa-d%G~A{aL%!wVp(p2vM{loCkuc zQ(rqQf_ET+IG}i2h=qr>vpn8BRUs6rqtB>an?|c!;anD~d*Bg$7fr97uS9z#D4M+} z8Dn{gaDHbzSzdK*Ws5jpLr0o3_kk+r9KhbB8G2X8JP!Nr+%U_Y@wB3SqPnj^O2OWo z+;9ir!>UkSsO|$lnyCJG(acawcD8e?LwhPCBO@SSPt47Uk8Kpqp~0TG)w{X4o$Q&8 zweBGLYP${)@sx902{N>Exj2pEr2I;*`A*AawJg|yQs}q2S%Tq(aQ5!qAO|aJ9RFTK zEXD>RLXE>h3Q%kYgzm0`+BzP9p<7w`dz(E4xjKqj37APIqgMi$w6CqxAH!!L9-|-U z4JWRNi3x1|bRQgQSz1*!*RTB13_qcd=DETqnthcD6K5a6hzBw(7f3}WI9 zbLqkuq}&8`9fN}&&`c%TzFw*M?d`?1&W_MBr7L8n?`DT#ek z?ZWYgkZ619rB@w!YgQ5MPGxvCHdfnPls!qCt2F0J%>x@8iwOxmqsy=LuDhl*k8fxw z6nMKin;Wdqb?7aMQb^2R9-5Zs36PFhS$G432Dz~mev9(lT&vLiJp-1jUOfGvVB|3Z zYz(jNsQj0(#=cR>br@HP)rts!S%u&)cwP4UM#G(f&e5a$KfUD}(DfrrXEkC%s5m1_ zPp!Pa73jZ0vhsYQLmIYOsNyb~3{ZjyXYsb7SS&h@>nnEm{Hzq{37skiqAm*Pr>}1| zf!DYOI={Nv-<-#n07Lyrj^SAxlo%8m90#idi9gvAgdx~|WdF`(C z04>*5kfo!+DXTgvisI2(fG*$Qj18@zrG$^_?e#?_V3%V$GT-lq0%-SUsWn^Jr%)Ui za+Tax%dT~c9+Q)j&){vz(iay!+-~j(*?x5RV{Gu)o1dxN6%^o5$!J|#^>O5dgCDr< zF7~~WW>iB7zz!23V|mSQNKGdPHQcyZK>`$jel?ch=?VM8Q%YC2_dp^OE^ndwe}N8< z9hyS=c^ggqI?>)vl2iC_>!iqGG2asd6q@dCuX+%<&PvyI9LzP}JIcw*%3j>MN-xBv ze|!Znmzo-#vn@fk4m$7a4YH?%Zr zM@8EM^4vmw-1*)`zUZri4&rTemSZ4RNMs&2w|3-_d<*qC<+tVJ2J2oQ8}tt}nG^Br ziNwiTeEQ_Lf2;gEn{d0WU&M2alEV`uT*t+sj!9zEUjveP$JN#F9uJC3m9fTpvVV?# zhssdL06g4PuEduwx3V4g8T^uVSJt@G$_9T*jSmUuhmM^sriuGaO98syV~=Ei70Tn;}Q-aVfQtd;M|YXHhv!b zxsNWclaTs{g%^TuU3B?B;g{Kj#l`vFdo!8KNoFqz%R?qTuC->p<`6#-VNZ5Df?gvb_ML^PX-tLkJ79(@J2?ZEKKz6o^0m5;mdYKBE{N*q) zEzfJf0yeA41^J|RE75w5+x{dcpuQoYdoAGdaL_{-Bl0xcTBK{2e&`7o{SHaA)9G`z8ut+uazwH+k)VR93nkZIP zCG9GF1SCPvpUM=draHO(H)w)_q4=OYP5^)T6Y5`ZzW)N(o+aZ3Ud!bp2YH7gaA_v1$@Vp&-Q zP3dia!;O6+Cm&%z85=Ih5WLC4E5(eaQu2ky$LXQOh3@ zk}fz^D1d6{dX>a;0VV=h8SKcZUW8~1iii+{^YfY>elGCC8r<$~AcVo{b(W$?DaqT& z{>Ee5eZb~t8t0m&wuJyQOj&pa@`y*GK^c9);~<>K+2}Sk%;azUXVvW5p`MEG>{Hk? zurI18biSHxZTtveR+O?YSCFV=kK#8->LM!UU`od3>-_;WOn=NdPLu|6O6CApH*kYhFd~;Xm~$yvD=M zw6j*9bAXV%V`nEk=}HBXVczvfb};+<_xnQ)4N{aTT>3#JC27vBg)=DUyF-8I>T1<%^gt&RF_! z#PDn`L0mjAhW0z3+1VwHKRKtDDSB#n>;8j#6BCO&5~+qKMEykszSGoWM|i!)Gs;tHkeksV2H{ zMjusD@=;@Y4u`4q{cc-l=i%&CK1&=gGqc@w@4Wf z#wZRbs%?7Oc{q}0XB>J-M|*v9(5M_0*skaO6qN{+V+{x>!DW9+SG`nT*XP8t92OSaVk4AMn|J)Iq{0D2?T27MlSB7Q@X)OOq8}i6MZd=j4cq zTNWwN2K$HDLx&-Do$c)g14Y`eT9x!1L2|Jk`Ycz4d^e1b<&82P*ih#6u;f{IOA38Y zbQ(%16H`61vX+R*FOU1RJMm}KQUAy?Ig?apxhPmgCnurcWFD9E7Vi_o3R8ewyK!C6 zAxTQ!4^~uHPwCz=F)$RW6i&yiEYBZAfkr>n6kGdswp~W~oR!Stf=r|JEVC7eXtj)5 zzKdf}Vl}YLjr8mk=WGTbqJn4 z_clf+qx}HQtNY{J8-e$2CFXy4Mgl`up~_$MjIl8{?g(NfB;U%gAJl40-TRl`ZJa!h4l1hX7h;u zQT&WqhJ%6R>^eUkx3!%DrRC`=R-6}H$eNE<;XNFH<%64kj`bDlKFG1MmUW{bfF!7Z zs6 znw&HQ!+8GrziPyhv9TIcBtW;}92PU%4lgmL5SKU3Hsepob9Xi$Ki)z0GXbed=}a}48Ls(XhgP)OSC3cj`fpl!Jh7(OGG2gE7l+Gb)pDqA)8bFfcSiou1+8EEbCspt zK?Y*fuNC4y&u(;Xq}!{J7;V3C+NHgXj7k_(Ud{%#alS|qx|-)Zdd!a7{AH7QmwHkR4BYtjeVRh6BE0SfNxW1GwVGp2ggAk$e5;z-jtmn1 z1Mog<{Y4gVt?~CSfrK-m`wP~>w?m+GB`MIBEZ~BO&%g91O;bln9VKB5otk7wO9#8y zLYX4EjQVl)&CPS>KmT`?1cCOtHcbmi>yxV=mLtc6HlT>QQT4v+Id{qqDq{i5=Fuas+y;jA zO2*Lp2i9F5xA!C_?j|M@j_Kw8t(r3fh`}}4M)@j*4Q{Tq97>?U=Rhe`rYE`>?0U!n zBcynL7IIC3gM$Ek0=d^4u7enu+i5H|+Ra8gudhyG0L{1ivx4J-;XwS_%FfQp#>|h8 z8QkmZKxpLRnmq9Z(#z6Vdi#BY3v{-+(dzEnNq67?{6Sz%1PMgZq5)j$&&oIL!M}4Y zZth~ETtF!p8QyPn4AbuKmpmQ%Ht&lfy0Iat+t_<`6;s$M+B;a!P!AO)3;F8fW4}E* z1&QLgss65P5C7l?Xof)FaZz0z!Q`a*WO+?zJO-t7{JY#u1I=U|9d}`2Rbvm3 z9P^`f3x9=VPx!wvle#JVeqYZB$eTc2k2(3H1Mglum9$yIkpA(j=&9HtyQoe`4AYVt%xkWW1?8a9s(HPh=7JL zT+oxv-JS-_&>6BB4=+qZZX*yH78>yA@+Vo+lrVN!E3_$B z)h{IA&BN65XV0FI*4iAv@MPqpFf!1Ynt1b$y@im0*VOVFREx#*|=Rw!qE%eN-4-e5ux!umS zis#)>h1ev{?( z?X4l(;jaV9V3#cJ6~J<%34aN=W^Npvq?0+107uYv^X^<(or{>NYW6Q}9=m$it>G-d zTLxEQXRnma7Y-v)-*Hb*Uz9iWGi&)SsvpKqThibkWyYD>1$%p> zmv5NsQ!+Da0L@of@*q=k{r0{Cc2C_?N~dD^%6O{SUo_@pYc|;N@cJPwM5g%$^>%M% zVrHUA7SLZScI?X!x3-qYNmyuAS`ph%>uppaa&^rzjC*4{z_oy4;(rSK06J1>{owas zym%)FdFFyVeVQ*j;UYm8a=up=b8(}Sgoj7)a5tfQz}-C{HCN-1@}L05{C5wFG$evb z+I+lTy*GD6wRi!S%T%fNXr=uW5U`GZEVVLe*WkPC*Vi~DIqCK(+qryx@bnJE27ETR zJhXW_4bH4t(#qhi|E>Eb&(ugyzZHim9tYc=jM-#ke=f}Z!H$8k=v7SdzP6|G2$C

$!=@8m^ehNpZg& zZ%#{dCh4$x>gnMJuu=+4MBi8Y;t)WBmy)a_XmrFz1Hd9c@M+BNM>kiDn&PVpT&nC( znv$LOZ=<>tTf(7lCcX<;oq$}VF6c;<4tGvjSg1Fqa% zC_VdmRd&Pnavd<^15D zqoT$dTrQ#u)ut-URLS)9&$aG4-{!v3YjqieWjw?112N{s3DdH8L`ST>vv-lqRBT zZ&Ljdvt1Xq)I(3GR#AQEp#4IL?C(@cInD*Bs477(4#1Ta6|nqo15iKXgGTVp`Ih;I zROpA)g<|N$3C=t(s^NbdUUq+%D2&z8Vw0O*CKy7Ybgy5`Z_8+w2$xpyZF&Q9I$-4HN$Z}dnHdCN|}zlm5Dk&2Nv25_cAePVQ_{x&;Xc=A%66%AO0Yh5lp{r%CJEDQ~Acc&!BNd6si zB33ap0?&VDD#}%{t8N<*XC1ds+k=97FTZ{|WA0h@0=%@R=0}G6;s7FL_Q3D&?%s|l z(QmprPtbS2Bf`SsI*%CIc&JgDmieDxHxEkWF?VC5{|0G$=Ho<+>`a}F>Sf_b6C1-V#6eE+SrkUA}xMJ4pp_PtM zA#MkSyR1i?=PjtJS~WQifdJT$9tCw`DAn+2c6JV+C{tjz@^a(_yQ_ADEI1sL_fIH+ zn`^efc-YqU5F|;=kKSOW`n+i_N8W38mKSz2M&}~zLRsP(nkG)h}Lm9*+j$#2KFRt z*WqSunn>6I&KtlI)fFN3iDhbxPBlv^Udczy&$xTkWWf!?{_v+KAO-OHua0&_wEDcF zDb4!V!1x`usWK4m?>p|L6E65&&J{?zz_y>c}OaDd#WUZ95lrZWXk0%RfALHqC29 zX}vkfFd`#swb>}{e&p7pTdYkJ^-F&x-rP1Dmyi%62Xk6iTjWPWFsF+TPK*YcV)^P` z-P!KXu3ZEt@FqBwTjDuh9cL=%PvoEg)|W3}*uw7c80*$hEXUBL=dvaW2<&IBFj?=HQPGa*qPJYiDsB{#+-}#SI1h2ln>LCcZrlCr;E)I z6p|CkJnqW044)mKyf(jZ-NCZ=uX{?DB*y_Rs`U1Cx#ikP(?G}6v<6z(?~;LdqfFQg zh05Ufjg~rL>^ytGxXBE?Kfbvjo|&2oB4RcE)e9GoP-cF0om58(aQF`%6Bi481)5bd zQ;l)c5_ciAQTVWtV0+z0dtGg0`FozcZ_7V@RhDQ_1pL1(V`k086wj%u3N2^fLLN>={>zGb+-u_4#{N{aMs*%WJ2vc~tf#jbmez=ylA;~%0;cuWz_GmhYA z|HQzDMKrGgOzrjf{{s9I4}*eVJWo_BPUYqMEdUvrsL!N_qzV*$z$FTy+qVh>$!+}$ z57%H%leRzc!2jdz>Z?=9qjC~Z&i<+su^3O$Kaj@NXiN?;+3AY2@2M}t(w$DUH};;;}IeRYwL0Jj)A`>pO)AjRcUx6X}l)6XH+mM)8Sja$$ zLiRhN>EUD;x9i^@N3%2F6f=wy`hM z#NNIyB2`5Up>V?^s+F{gV7`J&4S$$*dAHjY0uw|+ipv8BIM`-?_{P`uQ(9Cv{SOS9(hzR2QHKIwgWy-A_#v< zwkT8^vxAP1>b4_-8EVKC%&`;cHt(B-_%FF&begm0$1iDM6zOY(_^X+_U}WoSq+;gv z?J{(lfA(kSwY!WoneSX{qmj%0v&KHG^zL5_U*NOwFA>n{Nkp54jueyRfh)>^E5b%T zsKXXGz}3xkGr1Xx-X55RK2;>a$a|Zom&Hv4Q!;mfEo8Dj?KE@Ht9l5=sGzx|5!^hX zF1@)C%R&*l;G!CvInNEF(x3i95ae2dEl&YkVyCMRLl|*vc8c&fSnS(jZp;MH`7eGM zKRY{l_IGgKtA*kPtdOp2jZJ*n+%gYtrAYE?eT*&NM*U@SG8>_mQFGEtjbrY-qe-S~ zyo@84X+-Ex=>Ob+@Z9+|tH@&(sF;`mE^d0>+DKsDJf6w#aQP}LUG)kUFhJqB=#4B} z_)1Xh`O(H;fw?(qJ-gCVM=O2Nvwx115lKETT86*sj0{T}m#xOjVr@(abWlf2ffVnO87KW$%5w zeS~I367e$n4Trx(*DE3n8Z~-$qR{s|um!MLq=}jy?w;^?&*eICv9Ya;l@XY#6`4yj z=}MhgZ!=mLzPb;#@O`=wd)sMfbVScgb(cC0GledcUxY-Y9`T}m%<4LBdpk=o^@x&q z%q3jiQ{HPsbGjzSzpr4k_UE8fMBrz>j^Le{nHlq5xJZM01%VT@cK!0qA zLn;F1Ea#o+N>(Ne5Y1daDM?$S09?^~Ql->l(651k&soG3ajO{IGZB(Mba>15m!Dxr zd`s7URx_CPQWu?_WRJi1fTSI~zAfntN#NX5FLh|pE_}ttMwKQV!zOt4VK+?r`blW+ zP<;LdPov;=Q=yYecgpkRww|O)OZTSeL533b#gV~qw0@_3U#}u>yLW#^GTGH zBnPNN9OYx;VNa_V=gyBNpo`nv{It1wMLV56G;-J1!M*LAAKuAB89IA{bvUjLSSTU_ z1IYwE_O}veyfk?~1@7->5OcQa)kndT^=22gmKPTAIZ~wkJg07UwggoMH$OrVr$wyg z2@90MA8Mf3xmqJ~V4lYA7f%>U=x;>#EicdnfsmCTjTAFe?LKHKnCI_}F2-*k9sSuk za3p1>+L@Adc6N^fdtp(zcXV|1SLBN0`d}^0t9hzhgM#Jdq|HK>r+`~|0=q3?r(FW) zj$Vb^ML8lpaCNxAUD|tm_s7LmJm=mlHxuQ-a!@3JA2q^MLpsKikfStgMj4Bu)`7?H zSLu-wb;$0XEoGXq7yMaV)n~kw(LMB-A|o_gc;XHhwavw;%X$nyQK!yli?X>a!B#`T z)o^p$hQ>Zh(NN{rXHwtj5W)TF{H^Y4;dzT??)-Yg4A76BM3t zolsDK$q+DQ44?`*nEWd$L|^-AkIMB{k9GBy{WKdJbJk6$+BaW+E~AP4c7U2JPJ;*P zuzfkC$*HW}T24V~8spk#x0(zO2F za=y-&z{fYHrfy@6GZ@*9v6uHecTjIIHpzSC4R@iZM^DvM|6ng4CKeEuSmSkd+;}A} z7P5&u&6Lyf094hKE;{bkId!j98I65xSiUH}qb2L&n~PAWr@xKv z!m9eta<{u^mOr5Xd-8QEq^A&PFU)02(xk|lgvz@>p zs^c2m%9cygyt;6tNXwQ#xF#-p@)E!f;Y_+6XtcyhNgH&;>O-jR{7*$AV=7j*xdMg| z3sOrmd#5lq%;UKQ6edYk?ysIoIv?u;x8}y(T-u z*TO!%eTFNSS9(N=NSyj!U`w{*Nvh9@Np zD+dSY`v>Tuq(Z0*@;Wq(&D?_DUA^`v@J|iyqN|6)UL)H^LPA)UzrMyv_a@3lcScKP zu5Z?`$B1EOhCBf~L@KjBo!ej!^+FO&&Q$pf3VTtX;foz1C5lPi0a?kTIJv@zBgIG_ z$Ju};ep|(EpbclmjRI-7!9yv!_1vhkYW5LS6Am0-o6B}%2{9w@{#-u)R2^%)p zlGnB4KoTDoF^3%?;n31)5PH*dWEL52dVu8we0O5M0J^xm%?n zHi@OA`iBF{30#l*sdB2P(ozmx$DcZZ)zdp6@LPyMXROIGa@1> zD2+Uvg!`}Z7MPw_9Rlv&J~uU)Z>|;GYLHsIl5y$zi!S1+p%r6kF?PZT{;z0lt_d_` z==J2FGa7b8yo6}Ri~c7G#NlcuPfRSjY>D*aN`iu7U7SWw{XW%=A%$wK-|Mi0Xc5-h z$tklKM6AxJnf6ZwOqK*Q1QCW3m=a<$;|GPbSor3?Z_dUUP-?-J4B7|3GoZbajE~-j zF#26CFEQK%3|YYqt^=`FECi@Ug2Af-pJoq_X2oSiEI$Mxlm2#PiKRDIliE&Hx{86d zQJj^6Ct`hwHgude7MG>v(HTbjL5pp@`U@H5=bhkL@hPR>(Ikmb&u=&zpYR(){%$H_ zi6h!$=+y0nSxtNIv{~Af^0X1|y`WUQOqj_D8pNp(c~U}mz0_>uAZ8mr14bfz7Uf;D z*QvtIFQ3{Cg;LDB!WLYoX^Z_#Q;=H+1o^DpVlYb13Vl(25GTnO)EqO~mWy2_W^mkT z*`uB8*zkGbdy0rbAtv1#tE=P9O%inU17ojgJr9-=!+>EGQUaEFe`tozV^A5M=54;j z?2S}sVCBSTqrk>yd5q1%k1~56qS<`FZ)p0S;bClg?Z~H2)P%aj)K3YKET_brpr+cg zpqgjBrY`U~Zg?PfC>JMwFtk4Kxh^sx7xG0-;jfLsrG`kF-iLK|H56yFd(GlB4U#^ z=Gyi0k;gb}C$qnGW0-V?%2f7$EF6()mInt?q-|~{7Ebw33?6e-9X`g~I_ec7nC{5D z0~vI9k2Jkp6he@D+D~^jM8x(9R?45W<*3!Q;P#f0wBz*JlXTh>&2zLI@b}{MVwW&; zxyZHrMmP0kNA)Z(;np`y(I0iBQtuvHCd0ivPYP8U+#T_ym~>?l_#KZoHIyiungeNB zUS>*<=#QTpl$_4`GFndDA3)+t)@oK^^12xXTo+K(Rm>oFPKt*;E1D&sgXM^krQo2? zL39uwDb?ek+~2d*2?ViM_S8uWhl$EK#>G%5bxXo!UEYNxv_2x@t%Qx9ynGb}FN8Le z&v_g7txKKSOZS82#(-~CX3i@f$ghE%mX`><87uEA&m3zc3pzo;lW$L7XNOwOS6<^+ zF?vmkCnxjROZKWRv^8=GIkg27oIxGtN0}(*xwkLR22*Cq;^MgIj=tT32rC@FCGl}i z_KS{@q3-o``O(t@yLJu~J?*Z_o4EWHX;Le@K2nABKFP1N8;>?3Pj0iTX`1X;LaDB) zVXbAYy?lw<9KUjYGao^()?bnI4nUg}#pn}K703=NP4<0gl*jIA0$t9~`iK;n&~@@; zYjd+-U{{xn^iZz8i1^lV5wgIX0GkRYX!xp89rg1TBqcF?-skzoL^eIPES%N6cN&T) zpIuw%lnhF6pl3Io7lkHpUFApVt&EYtyWi56Inon8d&&~0Wk9c_6y$Uf{Hz4Z?xBwS z>Ybf)2%oqIo_&!oclefdDi@q+3!)Z9I-T1 z#9uBvwg#O`T7S)yZ%a4y@M@|qY=Az@zfOll2RKHzOgM^RvAR9l;|YyxM4`^s>|VVxPr#j)Y- zPXXCDAbY*1KkxGv6ZBo4;sO}AbF4ZvOxL9-dCN5%bX$hf#=$2V3B4wmi zAm?^z?e6YwuROVCHn)SLuYbxTgdm_Op|E}ibXCC zSV)NMyLW$KmsntX&jO0Lu)e;&ysX-=Pka^BI**36E#Q5=c(^e6``|c+@ktzktr6?V1oJ_&6vLl}L zQ!!h}G-Fs<(FEDqUYjp(q2)AXuqKyx{5Eafkpydcp>t#|CI%#h_w|=MyH+Lk_DHj# z{`P7gcw**7qO?e_xjboo#0;d~-D!I=E+WGA@^lX*yV!(;0DphEMD7y(X8-X=G0b|` zd+p>!+BI*WUS3`US+eH+8G+uNNxY6yQc`p(y(w5S%D3w6Wpv`h`L9IR=h{soSC6rC zRq}EvZ~IVOg8zH8F%kyCC@Co^AwkGvx0ogxT&Ra+BI*A1D~|PjN6PC@n54W8tG`oo za&jaisizv;)v5wMe*DN`KFsfNTC6Pa3I6KKouPy}@s^`5k=7Vx<|_GQyDs$@`y=D# zTOpEWPHch$TFnAd=5I#`?(jf%U`c$=>)YpNXWg+ZhG15Fp7{>pO{zEp0&Lc-1yq`ek_96>r?oQG6R80 zwxz9>JJjjm_`_s@eKuRRe33>&t)~lLQQNks`$@<32{L+MV4(TUN5|xQ?WGp#5;kID z{=X&Xto%aSYidw&oQyAMe>ZnKj{bfwjgQJHuz$r<;~cgP-?p-BYI52c&z#_-q+D3A zHB4}Ecdf2b?f3fxr=X;?o~os?FlUbs6S`KvFt@ol-un6TCl|+}>-F{3Mbohm>JqF9 z@l?9ycsY;bdX&|#rB1MFjrsBtwE{@Vjv%GR?n_5+MY%+}#vpx=i|^AvXKC%sPS193 zhc~n*3VKRvH5#prr_2hb7M%C$6>F!vx_bM9Xs->#ylFab;PU7&zp8eJT1?}RPkRLh zsG%_@hdvB?`R1%U!CCO!MJ$i=?Q~;OtyriOuZ@hBcY6==)5nYQ$7{q$X4kVXvWy?y z);K+s9&2Lo9a5x?H)M?;hdrkl!4#m|cfUnJ!5bb`?y}b3X{vUCLHNo>7=_y&c2zl# zD%5VkA8WYCk7M)W)z#JQk&_F+Bpa;c^;iurD=W)3dFZ?^{}ui_-?eP9S-eN5p55$l zb@2|`=l%4TFG~)VdlCgM6wSt$3$$>ruQ!^`4#rhW?2#y=H;1kCh`2E>x^uf!ho+_` zCf#~k3)I<4G63e62fadmQ-gzp;o;$29Fs_IZ*}$9V$Ypv0WB@9sdTVmye-qDyl=uf zQ5+7!Z0-yqJ!uI<+*+h2tvHmeNC0y#S-S$v_TJa%s?X0)5XZFavs9OPTx;ffI)2Wc=fiya%l^jxQ!+Am zTU*->1~C(Uuv)(M($W&uCR_-$&UA&HE@nAi{JO5rbfFEKQXDpVHdJ1|8+eS54`c^b zom!`f1}L7FmM=aXJ@ z0RoYPrN5BRGq~S<2O49hVw^fd=q5fq@o>Lr@EoJg?P&9Z8684r!uXx?iQ|Tztc!d+ zcgN&p{_9V*es$+=$9QULCjR=h4pw=6^&~~pb?!^M`ko-QGcb0ydvJ4eoggZ&2Vat_ zYiS*C_Ps_Zd-7U-&CIN^YBn(Nsp{?TS9JcX8@$p*n>kZb*6G#Qo&ETP28~L%Sl!PI zo}#FW8C^-NIXFMrI+(jik73gAIPQ98dA1}SQ|qufJHPqj@@~ZgZr6FJpDu>-*YNNs z`q!(wbIndpPFLqgd3wmkSK*N`m?}3AK%F**3zV{CG^%Yv@G0|xFG07a1^xBEjB&7X zh7xgq*no9MQp*QTlva2vN0pS69Mkq56b%s^u8y&#hz65RRO-|^*dBF6vmxU--pvZ% z0M*SibjM9yRJ4zCNJT{jsG7=jIu&L^G|3)spyVFAKTc-6ne#~tkC0qEx^+&L!}%JZ zl%Y<%QP~N8>>qy5g7n11#5DfR{bZYmn|qbKEy0Zmd!P80B1z6PK%h?_Wg^x(QLnyr zK3!gB7Wd~X$C@BVp8sf`O!n5GiN^Qfp^Ohyhe_9cQ!r9}+jZBs#1=cCvTf_a@~q9) zFrYl_K}A*30F!}DgwE4zT<{?5V!Bz67C--VUoH?%NKoZCb*>f(Dl2DivQUvuol`^s z2?|)Kwe7-)+XGBYIXSuO*-u#IRKI@xV$`Y}T-j_rdF<8% zeX49-SSY8VQB__CUM43KE9!K0t>(7g7Z<+^P<6zG8AjHy%vAYMKlMP zVjXQw(X+6;j!$Ne>5Pp0=7G9O=QiDsvPQxi%vXBq>+5eL4tG;UngcLBCr0j^Kg7V$ zX>dEb*g+OCx}vU5)Cx2+>z19z%T2*TflVQ5{Jhy8LksEUsi^o(hC1?>(Zh!i6F4o2 zSPVW3nlLwlDtWVb{+Me57YS5gZc$Q0LwOoA9#syDf!9r`g%Rn;TS7T~AGW96-x6ipZgK*D5hruKsWHurEF@>K(~Oh1)YtdAY~jgNjE;}zIU3kGv{v_J`96WoVKe(> z35h|zCxjk?yt3+vqzTgs@VkHS6xC?lZNidlj^()4e{?crewlDqVfxf*xoeF|I_BXL zDX)|E`9W_2r`3n2IFqc!t>=y#wI`crszrAXmv?q%a^9vF>eQJ@*E(&D7wb3UGirX2 z2AG50epv?j=5sojyU_LNLR$ziCB@AzPV4DkT@RmzOEwtnriM4QZ|?IZ2LnCFnQsz$$C$5lnzBlN0)d!YNmKI3OHHHZy}rJM^z>kU$2zCEt#Q8?LL6ltL&JrsI_C{oVC%eq`|&C)>Qo{D z=uSnt4Yje4tk+-n1}q8h5yHE%E9WbdJqAK-&T&<>*9+?g8DC!hvekaJ{^0X|)5LCQ zXHO3qcS=3d6q1R9TlP87fZ$T0av9*6_5RF_gi`z*rhUCd?1<>4;E@jJZ9!7(zDC|g zi^QRvpw*s&1gc@}i*{an`-A0Mw>;g^RNT~e9)F#O_{_0I#O6fh*4OhB6DRandL|~g zb1+&Ct#d?U6V`L^w_{^B@A_elO$^o8uY}gsU1(wD-hM%S>A5~AbUx@{Z(mlGr!=-# zuT+eW26>z;ZfHW`cDRbIcaE*c=YDaRzfnC6q27frxW2OD0@iP1q=+8x zOBI=B&1&2X0J2<`#=w9hUwuPDT?S(+>PHbdtNQ%t=nKOIlYx`dcJCArz)}?s`5x%PHlWDg z_yCg2m;b-uN&kNu)}OP9?+AzNUb=c+PDg$1(vr%|%{9E`(;p!rL&W8@O*S^((^z?3 z0B-Cv=YGxa{p(u@s|JUA7(3)al$46ux}&&wHs+S)GwdQ0dO#lEoz9MdG>>qDkj8A3UX`d9J_=ZU`0Gn*|MB0x;Kr<9*O}ceSaE6(S-|wIFof-0AtdUhNjP;cKQrW=s4d&d{_a_-3`^;ZT^C~HnC_u9!vEcO>L&Bs1px^?;Sb_ zIBn)vF3zUnl8y&p_ob1mahNT-(7Gzw_1`x)?<_)UXc`41RBd`5Gg$Yx^g$2DyxSR1 z^+j9nKZYn6-vB+T7g;W64u^-^qh%+t1KG@`oiPkL#CVf5F4@a)5L;H6<%OIoYp~D)i8;TF=PoP>P$jzX6|f z+PvhWt(NZ$Z``~17E?4jNRbm`)y&nJvT=E)jEifir-x;ktX0{D7I2JVF?O+G4KpLx zRpZ{Aci$c?Ir{O5_hnBB8%wfhl-*%DnC6ejB;HEuG|vkx%x9AWU0s81ZD#9HSdmy{ z%p{AITi(mdf=Pq|Qlm#lN8u7OJ<0Nn+PIL}tsAOfKA$nx3F~Q$kAJ0q85p}(@@B3_ z=i%{jrFfXdmHiBnn%YW%?M1~AmvxYk%e#f9dwO`=X1(wXAgUN?^A%gHZ3aaeBR9SG zH!Cf*sHyV#4tn8&4Sc_;R$j zJv5=wZV1MdG$Hqu?B(SWXj$2_?i0}xr(o%`;^Q55S5jkQk`sj`^ToKG{zL#tw^Oa( z^?Hb{m6*Mlh5~Fgid?nc?F!Y_mXzp7`y!wiPT`=I8=J(Ecq?|M+?9<+&krXNN*kZh z=CGf#i<5lmEPi|!VE@?{H!$m{A-JWi{v%ivIo&}6&2Sv?QR#Q{; zwrka4CKhAm%6y|DPz++;RVI`BkeoLXwkd9GY-}pDQCV3y`f5ySA5im7AIK|(ypBEv z)Ci$U<>(ks?ZnuzOBiCDs8W9-uf)WxFIV1KXt$(--RPy&XgfLje2enU*49ROFrl`Q z+T(-sPq|-$UgxCQO#mVxMw|e!r_hSbH{a)(3_ptr^ zPrdQkR6!e4pa#cmMdU9aO2@)lYV8W%A( z#z82nc8%SFOcTi{zdl-CUyq7*l&(vNcI@o#)~MT9TEd@ZG8*psWj<_$D@DX%=d!=3 z;g{$(mlmDC$?%M|ItGa>lF8cPQ#$$Tl$wY&3+-*SG9t!`Z~UTjWy0=AxprQF&*vnkxIKkVoV@P%HSqNDHy(rCKL zej_J*uBSeW95kXfM`k!rIk)I0HL37`P#{9b_<>lkTBju(ouD88`c-;Yc4!iDnMZ5e zcUXgAR(mKZTlM07R6mVB>~(ifVner6sQL5WPOabNtY0WCD?`Ji-La1U!RLP5kys*2XM9Hu1ETVo%?cElFxH!{B=MD~TgoetIj!&>s z==Q4qnM3Q2Y{W0TX+gm&H0YlwaYGb%U0q${o;}mmg+GecM8$O944bg=uuBX2`SN~B zd}&F^!^e+bP{0^le?R^MAL%l`1Oi`ES?{X^6w2SbI&=5`k@BHX1R_p_6nMwVFBrJ| z*Sn`E(`@E|_Sy7YUxfVar#3xV+5F<-S<>bCO=Y9A?g?k@#3ZZf#sk>GEgva>xpEu0 zmRQbLxS$z|2>KUajgjCrj)6pswo?j&%u zo=UL(>Iqg6rmi3o_vlWB+(ADv6a`MN#1DpPE4QmbAht7 z|1?4K?oq#`1XLPUi1BC}cRUw$d9Ra$NcO!Ka9BAA0FA^3aOl54!;`)i$+8&6Bu@?w z{iaiFmI1@HnLYSMT)-ES)3Gud)2;P;&qgpAw0PYC9(gm@@~dp3(lRcpc)Lr;{rqs7 z{~%9v{2V|#NxAV?R|oQf!ErIsjt4(e8EY||x21}!ss!AOHj*!fLE*Lznb3iGHd)Mav%dRmvvst|ezq$8n$EWf+=+^TCZiFu8F&67JORCDt^6jFK01HtnL zp%u_S6unR~N|MACk4s44_@EFI_)i*Ed1}iw5-!j>G!&;F3kt6pd%i-o^GU~C^Lczi zf`(>%*qM!u)wYu56+%g{xUzC{Ed7%r;@n}JP+Ho4%724v6R2tF2tyIbbhPUelR5bk&!78VYsk74#cyLjx=PKxg$jo$A9WKb0Pu>^<-CAdRxGOjG$!vL09yx&8{7;2( zkN~36^5e&IxBiT$^lDepv4>MtGaovE!KxV&fC;I$zX=T6&PA`+mE|Yvfx@N&l{a&- zSZF82yS6SDscuditNcoIyeqmg5xF}#D%2O;)XPvM`n6xFdPMg2> zw_&NIS?}lu1wHJ)^r+E>Cq^w!WCR_D$Hb^j!WbDkRrOsU3WUvNJWZ;T$C0V2sY{!3 z>JEsyL&d6$U7B{=_c@eLI?%0~`Iz|l+-H6Eud{ANNy&8KP<+wZz4P=ULvSm#$PA}DND6rcXyZB*u&Jsnwg~5=K69a`HG94K2Nn^+@vSDXp;U`&X4~R3(y5N z3~N{*gAA>ca+w0k)jg-Ht9yN-MKUK?4^HV>5NSrWlb)F|QkkFsGBn$sfvLp*h3R>+;7v~?|x}_|_-~JNMjshoGx}@-Lvrbg35)%^> zp;uI>9IrQ20ug@3@|c@zi2kp!^Ow4_XpkMu8&S+{s;>_r;;tpuvN87Pk578q@RBvIX`($Fn+)3z?eo9W;HY^%XHaHJ4t9VA z#VB&#wj-_EXrL6FqFaj*^x;>3#p@rQZ?uk*k?(56(h-x^phe+6z_0$M^NVAa6O}Sj z>dwo_0-kQp@Ux+`n59T#W-ZW(#$d% zxp*Cq6{y4EYTRN5#()rNu`JeALxU@fWIS!cW~K11yZc1Cc;$7Cbx2;`!Ep6e^zl7m z4U6E3aXR*v=57w!zuwJ%euzabh}S{BvV3haULKwzjKwvgFA~6@aha~b^my*?x`EFH z!Mg{TW>!O;8YcPh$mC>Kf4@gpz$bhAhvXnZNkxq?ZYZTs;}% zl;}3N4P?pSchHE*e;BUU*q@_ZVbUeyaC6xAy#wsK3Fpu9bJ-p9_kGf4*V^6{_asRR zcq}SAIrS{jukoYyeP<2~g~<7=&O21JfZM{y;+CP#z|@FK5R--)sQ=j$l=J$II|VBX z3w0XsY;?^*^;nom3vf~cO}epsud|ig%neWpRfiT*fI)lStCaeD}9zaYinbfa8d;Ey-10mu3m3u;0xu@?u-8yWo{ znN6SsGhx68K#5Hc@?bxE){xu#sz@m9%ln#g`iDO)re%pL+K{FF^GpsfH$Jj+1#zdJ(zCN z>x0keWHI5i*55iruhw&EHtgejCy!GTLW?~NW?A|#q-lKrpC$7{J6K15KR^A(@IZEN z=a_5I^uG(}@z<8ArCY%>#800B`IG=;0X}zkLqo%#OsL`!iWOep-2-n}Ce5%{9BQdn|Iq zzmUMo+&BAL07SoX?$dN5Ja*V0XWBz|*M?}JimKKKRX`}aq zeiM@oJ0Bb;)j4l_a2#|-(#YdPBqz_Hk$Z7lbrH@9BJ{k@*G@|efwNMKP@(7NzYKn+ zH$FCjj=`KLggP@pb$4`t#)RXzgO!l~IcqI`UiIFWSh!jK%o*c<@L|Nbt~0&!CllA9SujXer?ffr0v` zIOb-5T2fZ}M&km>1l(E-r^tjkTI>_wJg1>3sm7DOxVh0|JtL!y+1c>(qjjmwvp;ME z$l*A+e%D8!7WvGTRTWvP1-#7}WH4_zC=zlcf=t^!ZVqnEZ-G9?i8lBPAC!c_2VVoZ z*rL@O@c`R=_kV~a;Q^hBpVti@spL=$q=kIwz6jc6MPu5%Z`Xf3A&m>Sp zzO483IL8VE><6)K14-fj2a;6FUj%E`yb;pZ;;I54oM8x8yaQh{AtaQ5GH4b05&}`0 zLv%W6LcYiZ^tz~s{Lk9;@$XKWeFs2uzVA*U9ee{bB$2d=s!#ep1+V1tQh*M>0MNU7 zf7|xhae`84np>g0qTAi*?Z&eF0O|WGGD+jXBP+$B)LRf`3UHJAJw4r5xhm4+3%A|u zVB7Xg7y?BCj=P0F&O(CAlp>b6tY>U(ooZb#91tL}ASq^t$P8ico&5uh~v3`dZZtqxpc90xq(!;r#23_N7AF zSGRP$rWE>Y!%op!GeC2^BG>U?+;K-sGOS-QkCzGJ(*gKsE?1n4pu^~*SO|%;6>4j9 zO(415V}B|!`M8ZdXT5s*`G4+JSwA1149Ye5uu=@_HY+QuAQ@L>P*qGo0zI|>m}_sj z>GRjVfbBHB9rW-EyiG|u9;Hsr6Xwv-bcmKfzkfg^()k*n_BLau5M=Ko0#z$RQno`rn zdtcC4O7Plj0vsVwTP0-op>q${1i*|WuOlD9r(f1w|CYt8tGTJDNr$!+)FK?I<=_G? z3cch6p1*7_$v2$3F3sL%hZY`_6FKl6HUR=oK}zZ#Jkl<@_fxQ zRp%2k&GGs(bOr{7z#QojE6~D0?@hSDWr@QnBP*LNle9k5RkYu8PvMR}*iTh_&Sczt zeD$h7Uoj`+S6E(vobSZK#>TlX|4za}^5jz3K*f*%GSXbHoJ!gAkc!yyk=3#3r zo3k#e(NoaF`>>xXxEIc&bdAYjb~MRje_s@1buv}N=3Vf2i1*g6mR~Y@iZPIzl&!}t zvLt|1Tv1y3q|(xYfn3NdOJFd?R{%RMmJs)CgPW7z1ioHsEL=xhO83QH7Vk<=CYhie z;HoS8(GGC$qy3usPoS%E&w9^nTN0oW76@$tnSlHK@((436P402Ooh5NcFSsI_aBp} z!!d=zf*zWUvC>w*Z}tya9~~bb%%x&DN8CIEGJjyPt*zVXZb_t)r)7`~wY;E9nn@Vu zp|#v!v#yGHdW?!JtZql0dPZ<%53svAIhoFqRU#b!L&rif{73PPbPee3dwUz3Ksb9) zAW+JmjAfQ_ZiRy{f>ex;j#iHj7flc#opmkp`-nAFHo=ypzR{J3ftB?`gvLSocvE(~ zluCEhYVaou(27UB_THEoy(r8%P!;RFfi&g%zruesTwZy;FIBA9uKF9oL~CPpr2Z>w zTpVIF1ua&#T9w5XeUaa+=NC5Wtfp#jBa{)!a6We@MF)qaB(Nj^?+;A`kUu`Z3L^y~ zw)^F2oHE@+1C8wuEEJbxM?h0ws)*apWb|J#^ow?_;Nh>S;mH3p9(?@ecKJjlIu)R7 zDG6Q4q5S_7cfS1b-MrRe?fhb$-okIm+0JiIpR;SFx8KWiYu=r>lqhL+ZK<8lD-j8OXbI0Tz>Rce6{sTpZH0+XyLmxNCsFxA`5hY#Oov72q!^rjs z_wKo@?2%+E{0x#{U>fOg`$G!}o{jNxb7y!p)GC^KskGmQxakw>8l=(6WBt1 array( "Headline" => _('Common name'), 'attr' => 'cn', "Text" => _('This is the natural name of the user. If empty, the first and last name or user name is used.') - . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') ), 'userPrincipalName' => array( "Headline" => _('User name'), 'attr' => 'userPrincipalName', @@ -138,7 +137,6 @@ class windowsUser extends baseModule implements passwordService { 'displayName' => array( "Headline" => _('Display name'), 'attr' => 'displayName', "Text" => _('This is the account\'s full name on Windows systems.') - . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') ), 'givenName' => array( "Headline" => _('First name'), 'attr' => 'givenName', @@ -154,7 +152,7 @@ class windowsUser extends baseModule implements passwordService { ), 'mail' => array( "Headline" => _('Email address'), 'attr' => 'mail', - "Text" => _('The user\'s email address.') . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + "Text" => _('The user\'s email address.') ), 'otherTelephone' => array( "Headline" => _('Other telephone numbers'), 'attr' => 'otherTelephone', @@ -222,13 +220,11 @@ class windowsUser extends baseModule implements passwordService { "Text" => _("The user must log on using a smart card.")), "profilePath" => array( "Headline" => _("Profile path"), 'attr' => 'profilePath', - "Text" => _('Path of the user profile (UNC-path, e.g. \\\\server\\share\\user). $user is replaced with user name.'). ' '. _("Can be left empty.") - . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + "Text" => _('Path of the user profile (UNC-path, e.g. \\\\server\\share\\user).'). ' '. _("Can be left empty.") ), "scriptPath" => array( "Headline" => _("Logon script"), 'attr' => 'scriptPath', - "Text" => _('File name and path relative to netlogon-share which should be executed on logon. $user is replaced with user name.'). ' '. _("Can be left empty.") - . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + "Text" => _('File name and path relative to netlogon-share which should be executed on logon.'). ' '. _("Can be left empty.") ), "pwdMustChange" => array ( "Headline" => _("Password change at next login"), @@ -245,12 +241,11 @@ class windowsUser extends baseModule implements passwordService { ), 'otherMailbox' => array( "Headline" => _("Email alias"), 'attr' => 'otherMailbox', - "Text" => _("Email alias for this account.") . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') + "Text" => _("Email alias for this account.") ), 'otherMailboxList' => array( "Headline" => _("Email alias"), 'attr' => 'otherMailbox', "Text" => _("Email alias for this account.") . ' ' . _("Multiple values are separated by semicolon.") - . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') ), 'hiddenOptions' => array( "Headline" => _("Hidden options"), @@ -266,7 +261,6 @@ class windowsUser extends baseModule implements passwordService { "homeDirectory" => array( "Headline" => _("Home directory"), 'attr' => 'homeDirectory', "Text" => _('UNC-path (\\\\server\\share\) of home directory. If no home drive is set then this directory must start with a drive letter (e.g. "c:\dir\user").') - . ' ' . _('You can use "$user", "$firstname" and "$lastname" as wildcards for user name, first and last name.') ), 'msSFU30Name' => array( "Headline" => _('NIS name'), 'attr' => 'msSFU30Name', @@ -1328,7 +1322,9 @@ class windowsUser extends baseModule implements passwordService { */ public function process_attributes() { $return = array(); - $replacements = array('$user' => 'userPrincipalName', '$lastname' => 'sn', '$firstname' => 'givenName'); + $keysToReplace = array('cn', 'displayName', 'mail', 'otherMailbox', + 'profilePath', 'scriptPath', 'homeDirectory'); + $this->getAccountContainer()->replaceWildcardsInPOST($keysToReplace); // user name $userPrincipalName = $_POST['userPrincipalName']; if (!get_preg($userPrincipalName, 'username')) { @@ -1340,11 +1336,6 @@ class windowsUser extends baseModule implements passwordService { $this->attributes['userPrincipalName'][0] = $userPrincipalName; // cn $this->attributes['cn'][0] = $_POST['cn']; - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $this->attributes['cn'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['cn'][0]); - } - } if (empty($this->attributes['cn'][0])) { $cn = ''; if (!empty($_POST['givenName'])) { @@ -1378,11 +1369,6 @@ class windowsUser extends baseModule implements passwordService { $this->attributes['description'][0] = $_POST['description']; // display name $this->attributes['displayName'][0] = $_POST['displayName']; - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $this->attributes['displayName'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['displayName'][0]); - } - } if (!empty($this->attributes['displayName'][0]) && !get_preg($this->attributes['displayName'][0], 'realname')) { $return[] = $this->messages['displayName'][0]; } @@ -1400,25 +1386,11 @@ class windowsUser extends baseModule implements passwordService { $this->attributes['l'][0] = $_POST['l']; // email $this->attributes['mail'][0] = $_POST['mail']; - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $this->attributes['mail'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['mail'][0]); - } - } if (!empty($this->attributes['mail'][0]) && !get_preg($this->attributes['mail'][0], 'email')) { $return[] = $this->messages['mail'][0]; } // email aliases $this->processMultiValueInputTextField('otherMailbox', $return, 'email'); - if (!empty($this->attributes['otherMailbox'])) { - foreach ($this->attributes['otherMailbox'] as &$otherMailbox) { - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $otherMailbox = str_replace($wildcard, $_POST[$postKey], $otherMailbox); - } - } - } - } // other telephones $this->processMultiValueInputTextField('otherTelephone', $return, 'telephone'); // fax number @@ -1485,21 +1457,11 @@ class windowsUser extends baseModule implements passwordService { windowsUser::setIsSmartCardRequired($this->attributes, $requireCard); // profile path $this->attributes['profilePath'][0] = $_POST['profilePath']; - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $this->attributes['profilePath'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['profilePath'][0]); - } - } if (!($this->attributes['profilePath'][0] == '') && !get_preg($this->attributes['profilePath'][0], 'UNC')) { $return[] = $this->messages['profilePath'][0]; } // logon script $this->attributes['scriptPath'][0] = $_POST['scriptPath']; - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $this->attributes['scriptPath'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['scriptPath'][0]); - } - } if (($this->attributes['scriptPath'][0] != '') && (!get_preg($this->attributes['scriptPath'][0], 'logonscript'))) { $return[] = $this->messages['scriptPath'][0]; } @@ -1512,11 +1474,6 @@ class windowsUser extends baseModule implements passwordService { } // home directory $this->attributes['homeDirectory'][0] = $_POST['homeDirectory']; - foreach ($replacements as $wildcard => $postKey) { - if (!empty($_POST[$postKey])) { - $this->attributes['homeDirectory'][0] = str_replace($wildcard, $_POST[$postKey], $this->attributes['homeDirectory'][0]); - } - } if (!empty($this->attributes['homeDrive'][0]) && !get_preg($this->attributes['homeDirectory'][0], 'UNC')) { $return[] = $this->messages['homeDirectory'][0]; } @@ -1995,7 +1952,6 @@ class windowsUser extends baseModule implements passwordService { */ public function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts, $selectedModules) { $errors = array(); - $replacements = array(); // get list of existing groups $groupList = $this->findGroups(); $groupMap = array(); @@ -2009,8 +1965,6 @@ class windowsUser extends baseModule implements passwordService { // userPrincipalName if (get_preg($rawAccounts[$i][$ids['windowsUser_userPrincipalName']], 'username')) { $partialAccounts[$i]['userPrincipalName'] = $rawAccounts[$i][$ids['windowsUser_userPrincipalName']]; - $parts = explode('@', $partialAccounts[$i]['userPrincipalName']); - $replacements['$user'] = $parts[0]; } else { $errMsg = $this->messages['userPrincipalName'][1]; @@ -2021,7 +1975,6 @@ class windowsUser extends baseModule implements passwordService { if ($rawAccounts[$i][$ids['windowsUser_firstName']] != "") { if (get_preg($rawAccounts[$i][$ids['windowsUser_firstName']], 'realname')) { $partialAccounts[$i]['givenName'] = $rawAccounts[$i][$ids['windowsUser_firstName']]; - $replacements['$firstname'] = $partialAccounts[$i]['givenName']; } else { $errMsg = $this->messages['givenName'][1]; @@ -2033,7 +1986,6 @@ class windowsUser extends baseModule implements passwordService { if ($rawAccounts[$i][$ids['windowsUser_lastName']] != "") { if (get_preg($rawAccounts[$i][$ids['windowsUser_lastName']], 'realname')) { $partialAccounts[$i]['sn'] = $rawAccounts[$i][$ids['windowsUser_lastName']]; - $replacements['$lastname'] = $partialAccounts[$i]['sn']; } else { $errMsg = $this->messages['sn'][1]; @@ -2043,9 +1995,6 @@ class windowsUser extends baseModule implements passwordService { } // cn if ($rawAccounts[$i][$ids['windowsUser_cn']] != "") { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_cn']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_cn']]); - } if (get_preg($rawAccounts[$i][$ids['windowsUser_cn']], 'cn')) { $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['windowsUser_cn']]; } @@ -2087,7 +2036,8 @@ class windowsUser extends baseModule implements passwordService { } else { // set sAMAccountName to user name if not managed (W2012 requires it) - $partialAccounts[$i]['sAMAccountName'] = $replacements['$user']; + $parts = explode('@', $partialAccounts[$i]['userPrincipalName']); + $partialAccounts[$i]['sAMAccountName'] = $parts[0]; } // password if (($rawAccounts[$i][$ids['windowsUser_password']] != "") && (get_preg($rawAccounts[$i][$ids['windowsUser_password']], 'password'))) { @@ -2102,9 +2052,6 @@ class windowsUser extends baseModule implements passwordService { } // display name if ($rawAccounts[$i][$ids['windowsUser_displayName']] != "") { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_displayName']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_displayName']]); - } $partialAccounts[$i]['displayName'] = $rawAccounts[$i][$ids['windowsUser_displayName']]; } elseif (!empty($partialAccounts[$i]['cn'])) { @@ -2129,9 +2076,6 @@ class windowsUser extends baseModule implements passwordService { $this->mapSimpleUploadField($rawAccounts, $ids, $partialAccounts, $i, 'windowsUser_officeName', 'physicalDeliveryOfficeName'); // mail if ($rawAccounts[$i][$ids['windowsUser_mail']] != "") { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_mail']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_mail']]); - } if (get_preg($rawAccounts[$i][$ids['windowsUser_mail']], 'email')) { $partialAccounts[$i]['mail'] = $rawAccounts[$i][$ids['windowsUser_mail']]; } @@ -2143,9 +2087,6 @@ class windowsUser extends baseModule implements passwordService { } // mail aliases if (isset($ids['windowsUser_otherMailbox']) && ($rawAccounts[$i][$ids['windowsUser_otherMailbox']] != "")) { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_otherMailbox']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_otherMailbox']]); - } $valueList = preg_split('/;[ ]*/', $rawAccounts[$i][$ids['windowsUser_otherMailbox']]); $partialAccounts[$i]['otherMailbox'] = $valueList; for ($x = 0; $x < sizeof($valueList); $x++) { @@ -2223,9 +2164,6 @@ class windowsUser extends baseModule implements passwordService { } // profile path if ($rawAccounts[$i][$ids['windowsUser_profilePath']] != "") { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_profilePath']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_profilePath']]); - } if (get_preg($rawAccounts[$i][$ids['windowsUser_profilePath']], 'UNC')) { $partialAccounts[$i]['profilePath'] = $rawAccounts[$i][$ids['windowsUser_profilePath']]; } @@ -2237,9 +2175,6 @@ class windowsUser extends baseModule implements passwordService { } // logon script if ($rawAccounts[$i][$ids['windowsUser_scriptPath']] != "") { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_scriptPath']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_scriptPath']]); - } if (get_preg($rawAccounts[$i][$ids['windowsUser_scriptPath']], 'logonscript')) { $partialAccounts[$i]['scriptPath'] = $rawAccounts[$i][$ids['windowsUser_scriptPath']]; } @@ -2262,9 +2197,6 @@ class windowsUser extends baseModule implements passwordService { } // home directory if ($rawAccounts[$i][$ids['windowsUser_homeDirectory']] != "") { - foreach ($replacements as $wildcard => $value) { - $rawAccounts[$i][$ids['windowsUser_homeDirectory']] = str_replace($wildcard, $value, $rawAccounts[$i][$ids['windowsUser_homeDirectory']]); - } if (empty($partialAccounts[$i]['homeDrive']) || get_preg($rawAccounts[$i][$ids['windowsUser_homeDirectory']], 'UNC')) { $partialAccounts[$i]['homeDirectory'] = $rawAccounts[$i][$ids['windowsUser_homeDirectory']]; } @@ -3401,6 +3333,52 @@ class windowsUser extends baseModule implements passwordService { ); } + /** + * Returns a list of wildcards that can be replaced in input fileds. + * E.g. "$firstname$" is replaced with "givenName" attribute value. + * + * @return array replacements as wildcard => value + */ + public function getWildCardReplacements() { + $replacements = array(); + // first name + if (!empty($_POST['givenName'])) { + $replacements['firstname'] = $_POST['givenName']; + } + elseif (!empty($this->attributes['givenName'][0])) { + $replacements['firstname'] = $this->attributes['givenName'][0]; + } + // last name + if (!empty($_POST['sn'])) { + $replacements['lastname'] = $_POST['sn']; + } + elseif (!empty($this->attributes['sn'][0])) { + $replacements['lastname'] = $this->attributes['sn'][0]; + } + // user name + if (!empty($_POST['userPrincipalName'])) { + $replacements['user'] = $_POST['userPrincipalName']; + } + elseif (!empty($this->attributes['userPrincipalName'][0])) { + $replacements['user'] = $this->attributes['userPrincipalName'][0]; + } + // cn + if (!empty($_POST['cn_0'])) { + $replacements['commonname'] = $_POST['cn_0']; + } + elseif (!empty($this->attributes['cn'][0])) { + $replacements['commonname'] = $this->attributes['cn'][0]; + } + // mail + if (!empty($_POST['mail_0'])) { + $replacements['email'] = $_POST['mail_0']; + } + elseif (!empty($this->attributes['mail'][0])) { + $replacements['email'] = $this->attributes['mail'][0]; + } + return $replacements; + } + } if (interface_exists('\LAM\JOB\Job', false)) {