From 9fceabe1c37f3642a1ea1de709bc2bae883b260c Mon Sep 17 00:00:00 2001 From: Matthew Exon Date: Mon, 1 Apr 2013 08:32:06 +0800 Subject: [PATCH] * Fix typos in database schema * Default to using user's main email address * Refactoring * Add missing files to .tgz --- mailstream.tgz | Bin 25253 -> 25743 bytes mailstream/database.sql | 4 +- mailstream/mailstream.php | 90 ++++++++++++++++++--------- mailstream/view/settings.tpl | 20 ++---- mailstream/view/smarty3/settings.tpl | 20 ++---- 5 files changed, 69 insertions(+), 65 deletions(-) diff --git a/mailstream.tgz b/mailstream.tgz index 1d27dc63f06b3fb0bd0e83c56003d5c3491911ff..d002bfceb90bf75cbff81295dc6992c2928c8136 100644 GIT binary patch literal 25743 zcmV(}K+wM*iwFQ!)mTvg1MPkJV;eWF@cXs-D;Pa@B_%p6J5E|VPO8{Ss=WA*ueiM2lrBjYm(BPRe%mNWh^>d%%NH2!NZo;Mos zeYx@c1&;sn{WL%Q^B+F`FJHqjKdL|ZKanx~k80KX`_vwN6yn(LN7qi^u8YHWhkMkJ zsN#3wVzZ2dnB(&ip@|>dAoTpvx>&2N)Sk^#ZyGfC9D5Pqb{R$EaJ^pd`aQRH;rkZ@ zx7PKCb*Ju(o$jSub#J1;32T0EQ6JYe$?68Qdn231t=SuT(9{3%hT?ym3(p;dA3RYS z2mUW^HxdrMh5x}^b|OD0Pw#1S5?%U1xGtKb-mN$c+$%qfL<#$Q?FToJ+r2Cc^VfHi z5J+7M{YlVu`_ON!e|qT~nOg*S2rqR)kLi6)_K z`Quxta*32GiLGu)*>Gkz>?P4^c>DUE24BUQH9}vviWi%X2>uLMa3k6J~i@+HQ_}ViN z^hSi;r9XDzixUYi64xG#$GIzjllzka$gUrE+V2kDw;5V<|DWQ==Fw4ezx~e*C=0V} z5()RpWk}v|Jn#T8NWj1uMYqE5i@ny-);lQQe6zE=)BdOM1C86;o%Vj~_*lF>I1){9 z*gR_QY`x!Y9*M*EM~4T;tt1~z8`I*w4QaJneDtLL2-b`zkHnKaISv{{1d>@eqn-ef zGz!Ol5V3g2TKfm>);cisuM;nDL#lYivRteo2?kE&23YVr5V#+l3pZ|uo;oDJtf^u? zw*`^;#+s`1qN`^P&S>Zb&gmKDmY-3%lg7R#b6+#4?{6^{KNxUB&50c$G)1JlKWM*QrL z2Dc)Zz^hSuC@yd)-Qe-*s8HT8hkeeW&K$w|BVOraM1FttNQnBPAF3k`j}8u7Fgseu z6_^`uc6YY!1Pd!+?*w4oqP~p-4;BfSsHKM36z^d4D`FMC?fb#d8B~Bkn_}Q!mup<< zyDKLEsS(jH#BIzYxpb)D=+CBD-LM)wc0t0Ukl4C(0{DT$gg=MC8$dm?1(Z;ui&P`3 zqS;8%3;pUh->iLGZ4~p`^G6XZ5!L7x#N6VIa_u%&){RD>AJxYL#~bA}+8Tj&0q~Ly zii0uoQV2_Oz+4NA&UHoMn{zKJR7By0{Cf_IcW_JJoX~y#489=`7Ji-hAik?Gc%#TU zAGn1%`k@griH8j)dhpI4^tcN{RG9*|i_0tPf5Hs{Kzn}TwXpoosPCJN=8^1e0J;uO zIj7eHsi}yx$Z!!5>jNzYz8`%z@Vn0768bc?{gE@g1CwCYeXMD=dIYVC_aOK38a#GM zLEtWzj@)PxjH-uD1gdG0Ys5}pi~yWF97nemhND*M5C`bWb3_#?`S`O(5P^11D2jW{ zon7(v=wPpi>wP$k#xSzId3q)BvuT;v83X-H>=|>VVQ^(aK0>5j&?KNK8UnzZTb=_& zZj~CHjpFg-oJ@&@hgVgcix6-8-ffx!q=t2!5%yVj7Jj^I@9koLQJ#o%s3?&EdeJK= zH==cGC&b^SD44kAIS?islCvNWVQjogE97}T>Y!ctLs$l34ne_C)@4Y{z%Yu#$sqDz z<&Nsk09Moyl)ust2)LvGtf)P4eoJD7VRS)n91&1ZLwi0k`=xW`G9BbX494lXH^5~k zoOCadyN8nqOo%P6%#a8IwnL3jb($$xo_kF_8`0WE<1_~;n}aAp%?wh4LFzIwQFR%( z5q|-h*%Ny^do4vxbBvRXf(F;^qR<0n9V}81@G&mxiC98t20ovI%O%hUt<}#(=N-YB zjSl$~WUFETW{9}H^k5jbNdICer7{e@8;*(*$o>IZC<|bhL=Kr|I&#Ry*M0y7OW=&h zv|O_xlQ9#J!5wkop{+BT49@|o-)XJt!O$ClDcPs414Do%3i3yQHA<34f+ZUv@<96$d+jF8dIk|r#;Bi%x@a*J zg{tqt@>mc)YhMQX=e|F1oly#ZSh!Ueq{{Zyra<|-0fkJIY4L&4iZ%W5U~=J&LJ)lK z*@*U-ipP8HLuEE#O%RH(B0FG`_xmn+F?wJuc45ZcVt<$u(GKxO-NB^CLox^H52^ia zFEB};H_W!eMZ(h|(TTI6>yP?gFl6(`)Hmi+oU!f^gKGOzu|U0yR4*VTj5pF{kEdOA zr$^OT}v|Gj?0QWgo4rIR^ zF&TNkLbtr09-Rxau|fXLBNMmqZyZz^(CfUuvbKQ_SImccrFlpFP{Rm=#*6@~+gxfpR<|a|Oyf+=a3U>vi395W zOvePeYK)ekS5wA}?Rw~PurwW9Lo?C9Z5Y-4K5(&{hsi`XHV0WXUem}*K*tj4d6rDozZ{?mq6zdR z*(0@k@cqud_$Ur{oAh_Ty}KtwN%1YcE=yoj?F|4QJDV62Tj4NpfpvPIl(89hG8CM` ziv~;}!-p_pj+g`Tk8$zo>xVgWBX8*9#sNAcT$lnq#ZF`?_9vrmtZ|?vh&a)113|j> zMyo5zhdWCEv}IGO=Z)n&c43EY&pn@9Tu4*EM;*UE7pre$y&0^I$g9rPhg#1^g$L!g z(exx5Pn2w<%`qUuwYYZKlYQxrP#n13OP>V;`Qq#+J`R05oS_9-_m*zw&xg`YA^PG(&C(eAYe? zea{7}6s#aJK0W9kRGB!k!=y`x6?h&-=zM^cMACqKTp(!!f+DqTH))5Yv4*Mxx9z88 zXpA<{Ru=>MB4Ooz$k^&o5IEc&w5wB^|NOW#3D713Ea8sHY!ZTjJi1^al70&C2596l zakwt;n6-_yK0pjXycSPE^AuC3_xV{7p2q(nf_YZ!QVv0Y&AWFX?{S-Z; zp*!fWuVcm8^JBLqtPjkO(@`No^!Esv1k(23clKZaE=IZ|l4pTUK)D;DL5l_;m4iWX zN4R|U484$T3&fFZKOyxk`TT=>JI9;`;2jMhOAOD2a2ieIWvM?RH`~Ty@z$Sw2mb|( zDJqCXTp6X4kf`r4FK|SJQmx!rM$GILuoKK1+F4qxS8VD#1A7<{UEKA$LQ?{0Ye*Q< z7si)?6V8d6F7M8V-00%-Np6sOPAnyRWv}~pW{a`(dYGi_djoe~(#dL>NNoZ8oIBkQ zqA8afr4JYyV%u0s*=qqJrZXZAWjs*0k*r-OJF35JDws7r34s3C)oU)<(&0#c;M7>_@%IU+i zCr=%Z-IX%NP&&0|H>}FX3uKX^6B8}{h?6pQ=V6;aRb`XxCrULX_TTUBN>!LtfC_FA zL~b~Cy3C&Y{>UZAH}oF)R@UQYQkedfaC+aL)2IU9cYbKLTcWwYjnCVyt#)hsPM}Sq z5iv;JZjMNebVl*ADJ>}4lr`MQ^K8^0H{;H)FlaHF3}f29yg!S+rG*-m^*a%}jg-%5RyV1!bBqjjf?J8tg8Z&3--X+* zKsJ*KG636f0{Ac1wyHI|ZEqC07cd-1YQ1sGp-iaIcA*oX*QhUj`$YE`|>jsh6N8hV!YR+>Cb5PVf2%&>jbB26+`w5MGfp(!LH#@ss<$|@_y<3xG zIysTuq};^?rNgDz8uTz-2L3e|(_PnyxZ_b@Y@}ldJko~i=x%Dn*1`U9ySd*!zN@;> z1!N*|+&(z$?6r=Mo8PyX0};5|wm?T=1xrTW2y7MUvSNMCs1LZbclO`6&@*b*e_as+ z?}H0wy#IkbI5Pnq?X-8cn!C8iVgjn*c6dm;_rMtb7;p+aiX)QIgaO)FM0|!u?j3Zx z1n71lngcY_eU9F4$!##)Z)zRvK4Q=K-G*VW)qZ!d4XWG^&7+;>o88u($HTH*L#3O_ z@CBuy!ve}4Z%2eq-|b)!o^bH25O7p@sSTv&AcO^XGQt>Y9mCKedwY!G-k}xbS3=X# zN8^vT`&1MJ=!f1gl>4-*bh#pWKE~G2R3g7fC`#yHcf{BY`e^L*y&D-{Na)G~0X<*t zU3^Ei)D%YrukB~PQO47;X)-0skl7^nb}1e!vy_Y&YW8}b^ytV~p)eaK*)OtKQ&XMX z4)P%f10=ki(lMdUDoOn?1bH$kEuk```c~l{R1}I8)pl9@jsVedQi2ipIu~wKD(X=O z%l+d=@fd(zdSUfdI?@Eg+Zh6WmVyZ8!*|3^+&$0M8hq9A`n zT>@OfLgqlpZkgL7o15m=ia93wDTB!&C+@2dGI7`Ku5O{k3nu8bwfdo!Gjs7dzVs)9 z9=g2M%0?lU17nGM9e0{7VBP0Vr>mMOnLy=grn)9+U=^^-a|~2DJ!<4w(4lguiGpmv z=*wEFXJW|<@o0!W4X=E!my5rQf0Y%5#KIgseiM(8?1~w_uLAe6U@>#Zrc_eV{@DXb zy_enw9l0lo!I2oafYlc2G1e$0Mn*OPNTE4j%o&EMh+sfjVrg0ouRX4ugO?2ITO2R+ zaKurAi9o|SDJE-|OwM?WLIM6O#e&#eREr?7^pj#a#XuS(3||CQv;HgoswZL?W672t zD6`aEh(ZlwkmF*+_(zHoa}eU!FGz*Y)Y^_(TRVq4taYv7NE*y(Ng%{2an^9lsCF^1|EgMqCqaModx_{ zmXOzDPgF|{yTv)A;fw?KqBC@&?q#W1|5qvUKX$txfv_JH@06G7$UX=zYi*C{oTjpX zcAe2hskkG%li-)p9$sy&nYEk#GM1DYh>P|tD+Kn)nZqhZ1g6sPOLK%Jn6>+C6xOtGk@bQyhT z$54DM&Vj!^g!0t6H;ji{_T~rd1z5I8rC{C>mJHjG)l~mQq6?opy7RP|YVsb2dC{iw zMwn0_@%4C9#L_s%g2u!H0U9X;>;!ZAKtwID{BW@Fy3S zgIn6>qVRG{u?)%ED%~_3ng_Gni_{7Bi3*(LV+a-}agD2H(Oc2uB5XU~0z9qFB!R(+7B9lWEReM z=j_U5g-OSRi1m`B3@W-Z9xRl3cUUf{gVfv!Bon5Vkz0zr33-PPw~ksBB$JBWq8k1H zhy03#2kpRcNF?V1!Gi*vWKEP3VT~NhSa(PDaW`;lG$?}sA7p_tYO`qIjXtP|$ne*R z2izb}x79J>QN6JOf9u2zRoUZej7?oaiIXL9599P?doWmzI}k^(nq!hU1X^t@i;p>t z!i%>qlY<=PlFdWpysN)Z=J65k$^Duf|*PUwHX4_F+oGJO% zt@w^3R1-E0v3k<{m9eaP&B|Q~V8(xi;-Dn=bV^0!36=8+{g8kATSi(aqYSJ~-_({t z8+)}WmPv$sr6oebEPDO8^!iolb)#H(4PQ=APftYk|IR+1{Ht(Aj~eCj?<;F-l~3il ziav*u-<3;Lkp8c~o!%^O!+*{4>yxjaaV z`cF^m)o(Xn|Ev0c)w8D`3p1OLH>WL(K=X2J~O9G*+H}`gnR$dc6*nb`GzeugeDd2V04Jp9E3*x&?AoXG z6y$YyOxS+IP+q0ruYM}8Bk0$qm9>-Q>e|`I75MY)>;$WSY|x+IS3Z3_X~37)^b_kN zUA_eXP`!M5M&wwkd*QaR?!tom6>IP~wRBLrRNISv4|B70uAG4U{GiV5jH1BrO}c!B z7e)A5ZACA|UcVGqG1Sh?wWTaJH#f!G=I(LJT+Xw!7h1rRJEoaNNsd{PJI~ioPOncN zpZ@ph(&^Wye>*LnJ~@4QT0O0wZl1nA{nzQwr@x@_@pI;-wdM%A;|$bsvU)z?p!8vv^Z3=aIk zTyxs{DA@>R4syrrVla`}D`c|GqkGz%A>HJ-wZFZy|NWi7Svnjgh>3TXIq3t&g{j@M z8lNzX4{a;82z43Ck0t$hoJ54q9eR=EpOCqd({*t2HkG!Ffv7XjxJptMp`IId!2*h8 zvO$XX$0};oUBK6v>p7MOQJC4I;MUO5wS{#UxLmB9IlpYL@}VC_Tv}~?cX7&yQW{OM zyl=2~{*FN0q#b5CZ}%Ch$offt!ziz(a`TNxp_DjE{{ z2w2BapBBeTCdJlDy2thUk=sWdTx~6oX$a`6{^nV+sXom=CT(Ol%pJ|z`+I;PL}G%An4roUGsj~ zVnYQJs2~%Q)>texnO=cKVCfd=8Clyj+!;Z0JjTh4aRAzr34o^RE7M@|gI%y}B+SBO z1V$a7nXktF+Vzb>IjQU{0J|t-EQ|BU>#;9TzEGiire7I`4km6&7^O%`CFiBb zSuI$ij%Pxr_rV*+Q;>=StxBm`y+9CVVmvF!8K2%au!IM!n%e!#;nx*9`(CkdF5{kD zvUW;1S!(=U^o>7RqiAvrH)lzXlRm43U%J0&>sdQfFhZ5jybgF*cj#i`11}ujr^cbx zxD1s84;NheDw&214?%UAH_0!_=LwpxEFQv)>R#IN)g)jSolJ4))_U4ZON56JV)-1L z!H2R53}&1H9$w!S^bE}R?u4~Go_fDvKmEm~$%16eUn`# zpXP`Q%{(b!oT*D3;>$RGU>1&#YtNjjnK2!CM+#C=9`=0Ef%4dXMo7Bc1$k`7ec-{U zI3_csRN(zm;p*>WU`~Ar?ossqt;0P zv!5!B&E}>Z;4RSkPw5zvML8Lb6N;rPXJ9LYrN`ebNhHTU=pQAGc10Agi)CAnSwLC8 zfi*Y6LmaiF_?xb{o0?r8PdJp8xDx1w>!N_*pcC-NnmLKG_5qIc>+{4iFS9WK4M^+c zatS>TwR$=!ONo^z^M>YB7#=SYtlGp-Jq)#u=x~5)0NwB6wP=WSJ_>2ch@P)lRimb2vBC~@R)cM0r&N^MlUP5&ty@0B9J2sIe z=)Bd^&hPdpRZUyk(P~!S1){Hb zWx6zt^_~VjV}|u;-26#IhQB)Q)28z{U}5@~E}8 zP$^WbMlTf1GPJj`00s5t?R0uQlA^5{MYx{F+dY&xi1rO*2mLfnBN0AnlkP}?K+$`$ zY)5@-UXscQ7Pz;?XwJ2V8sz}rVsYkjlidFJOdK131dhghNQ_vwOCyH+7;}wSw>x9R zsK6Hy@>d# z?LxsZX1v*JUm!>!z0T;CR1+)Xo*cC};5cQJ={6Qw8hBlb#k#dRneC-jK$G3Joybv2 z1=X~7{^!S}2Y@;wKkA^OGmhq4j^URw z-}>B&>(0m{4Hz|0BZE9Ho+I;00F~=LLxB}|Oov0kdAyXKnx`(tG0FE7ie;*E+C2|8 zMh8=9mJIr&RU^u}xk=oBm|EJ0MObxDfwtV_gN=02p5LK8m$XnNO2u zBbLH=g^4=-dtOkvhnGcj)`sCAzc9Qk z#-ToztHv7dQiq|@<>5GTf~dWFTq-BaE+Wd6u|{_o*%(`6h@X1> zN0;v?!0(AN?C6#_{ErnW|TY{zi;o9(>-F@Jew%U>$KsxV*<0;B|7cU|q*c)a%=H z#7rh4mDkT>T-U&%JJiht$YKez<2QG9TSuMU=Kl9u=a2($%ML9lHeZP%aXY!7*2NYj z?4#q9M)_J%$v}I)&jCi3r@N2T6@v!2v^kLl4y_kPN|rJp*n!9xNN=UH^Kg*MwuAB9GyyG$-nfuEL83 zF^aq^7rTO0RKy@@@sZGPjrNk~2jcedvPx2FWD((jSaKbBfD%7WwqhMTH6W+W@+|JP ziELz*Pm?(0%WN_jOkQ)NU>a32{O$%0u@NW@(L_y>?8Rhb#=UoLvO#sU2)Cqc39!Y| zpCnZv&oQXd0D%C=m8f1n0N~ew7sVpCD)S_Fm0YXw-Fnv!7;J74@6~e=Bg*zP^g<3S zkn)gDb63%lqw8P_T8>L`&%H-6go{(*G0V(>rD4+Yti|+WmecGDY8$4aT&&Edbyji( z^gDI`aV+F(MXmkR@L{!B(~Z@N#(s^JBSH6LGb!OWOwFc*t*S()bRZf}P4RKbsxv(G)uCv%K%9krV6 zorC>5fwYuFd7v*A3W>YuvphM8#MAL53H*Y|ONSY4{UZAo8#CdSI-fv5<$*{me@X{n zkbREll4=6;bZo?Lm4`AbEJg5vS#n}KhHkFw<;A5q_QsyZqL%W6CY_d6S!G_dq;ae` zMU_b_@Qi?!L{4U;7~IZ3Ja-xf-FJijM!XF^K53Y~{bUfjc@~07FP~+5Jnf3J4_2tA zf#Q7O8@Y@N;$^{%`pRk^i@hquV`&rn$G{nfmOC6zp3ylM7H%>pA7|R*I+(EqZ)E37 z_AqTbkWE|zq%j?M9C50QUnf4S+*OJ$!ZkyV-9g}8c$hUBmx~DWn{$A1=?y%X0@?fj z3OjR8A0$6EXq8vjY%C4j(FJq>%hM%~^0%y$Ox34TUH>}fl=#LK4#5O3K@$Jqt{kea z2rM^+73bqPqg*rDH#I-KAHJzBCDZma7!F0pCGaP79rv11FT zAurf?UU?GrtKVqVSlvEf!3^Jg@vX~i?9lmuH;?gkmz2L>0SU(gy6tihdFQvV_-jKh z8*FuI@r~uFULAVI6220#qpq283RJiAgUInG3->;<+!%(cqhJ$-QyZ; zMZ_2}iT9ifuS=JYq9r33Z$Uc`OS`RP@6@?yoPebz4?XK*1O949H#Q8Qm%OJ>jV|ER z4xV#0UG^m0@y*GSccy&~OXrimbpV^2a{0vTlKawVh(Ka%uGt#Epc`2>jdo9#T*D(x zs+*btC{Idi?6D&5>dA?cbe+>ZZJmMJCvUc#_f^d~fO;8zDvn8cBHfHwZu!c9{7S5( z$`G5W6RBhAdYOn7G&{455{V!zK~ zz8uy|kb42Po62-4`pz7n1eXvZpU-&AJ{fGDvzL&uQwShBzF@}PNW4H)NzThd5=@hI zQIgY(dYjq;vqZ0!+a%OwYl%~38T8?DQ|6KCI--z0dF&mG?0K*0Z7tPGQ=nAP zaDaZM*pIC*rh_r{16HDLcDe6#0~4t@41g77+(4Gm*H}lA z^{_vT8$cWTVJU8;LXykc4og(R?IcV0#}6okZxMgYa2N3P+>%v{0YOb1O*r6;m=Na! zzx$zP0#cbNT@8b3UeVRkC49a@P(!sd3{Q%i#d561T~h4E0>lzeQ?z-Ci^Gb!;nj1y z02N@v7u;XINd#I@ftRAO@(p|Q1fT5?wgpl%2vgrJf{iKu<9Y4+?*E-&kLt zQI`OGv4MB^Hp>EYI5H7>QDUAc<>K}FDNlAw01LUN8I zvYP2dmT3BFQ#8I^kwks#1!2TArK=Ok$V<@JrqEFqUC2NL@@fKQRkkSeC3^bO=;)r; z>nZNZ?P-N_wt}<@$Tfgri)Q07e`|R|tv)hax2N&GpD}fnD|e1QWo(GYl#{E}BkKSM zr=h0(Gv%zAwr0$=Degu;!kUYo3^On-4wRr*cCsjjYpt<%8VK_?*|-`fQ*Z{6&ZVHA zbi5H7k{K^JmOi&e^1b%c%M4MmDjfT2tO90C2zAxqNlQ;j|gwivwOwVG4L^370M(b0%^4@cu$BS8!mU@{GO)O1D-me`G_3UA9 zt%Se4UMcb@0!ul2WLUOT5>6WEy)K?NI;4V10NF)Xxai6pMOV4#YNDuQ?>HY6({&rS zM>i9>5oE`+(-frRVQeLiuc_5_`vi(g4(!4Q*K@#&~%QdQ41)4GwHyN-j zl7a~u7gKz2d&mHKL4>FNxLNjTbE-vM4V!edV8x(Io`kWAWGC|nmbb_$?l1$8T znAl)fD+R@@LB5gWeTitlnbUw6CbK&=HzjQn}=eTR4x zZEk`+PQRT>KS^Djw~ueSMkmjcy-X5N-8ZlZ70s&$Y$!>BN*abLKu_IK>_xa1%q>l( zPm{%y@!7|0%HeSd&HN z%?7oizH5NuOD=r>LMHEb>dqLiFR#+P3~PRHQ6JZJY)ZXc%pvgb_9q!^Ws5!85!*GP z3*V_{M)joil3*~rmBI^#M*s%|NIT^moS_VPAz1NrM|XAKk1+U%;#7EQ7GI(^XLdE& z8t#=BUlmic7UsI>PD0QC%!B8+R+o$eEFyWPL^eVd-^oNbI&OQ;K3V7*kkly-+~Loj z=QC?!AVVr`fsVBIE=F|M5{5#}Jd z$~}SZVLasFhO&=*`}jI(g8XFhzGCEH-wmoQ6|QYdE_gCue=X{*$E&50yt`K1VBfVH zZN~3qj7g3I_fs<$Q%MgzS2lnhS}s2<~aKArgeUW6W= zzeY@S_RP${P9s^b<}owpvayF|=jcU8R)$Y9c2Px%d@VJhiKNq?ORtnXg$vs2w4Tp- z>^9TWl}a3w@9*N2_s9Nw14(Qs=*$#t$ohX@1C^BP-L!=u0r0 zsb1Z224W~fofVcl&_21fb8qCIANR{>IQZ+ZO>5Mfg7?hP%utR0KN{2rnU^K={(@Zm zhYG*Xog#mQr8U>^{5N2=zn)z9cbz8FIQg%j8|3?t9%jtH_l%h}U{ks8PgzM<|G2?g z{R@kTc~;WZKVl{Q6Xj2qgOs!2nC?;2J9@7JmF1_@uBDw&<*7}$mEsMHR9H@qJIYLy zhG7pFGQBA@A12Ok&_J1kWW1X1b2HL1kdTBS9d)Vqws8u^Xp zgIORKR6%C1D3oi8^Eea3#8YcC$zZCI0Jo=qyu5qR&DWNu!z zbOJpnnLAXwEmX-8<7YfF>72aaAhNfiaMxr;_cBA|vo2e+Z~E2O$q+K;E=@8zG2V@A z#-sD{JhB{C@2ixrVGm1NrH@rLJ@j!+N)_oA$Q58Dj zIzz2cm?jZwsN(T=UPu-Kw^kN+OSNjI5iE0h0z}zxuh4V**(yC# z!xKM$M$aQFSMM4=qiIy(y9h!ypyRREMW0jlx)}9h4CMvBT9!Y{f4OU+@BhAA#Ryz< z3s+h?c9D_d-{O$;1=aIr;GLd%E*_P|lFr4$oR@PhhMZmjxi;PafCqcSij-3ojCE-nqd zVM-}o>UzERBk$MLbIg*Mx|K@CPb2B=(NEv0YphF@u1^1qSreD}cdf0zi=DS(r!97l zMN|CH+}+t0+dIdH2gf^@9gm0SqLQkABYVjpp^;>ra}Kw9`zG*FTZtp3P~P8>Kez7Ec`!B9R>x=IJv?kRa3zt ztAX<8P`8#z6A*d~3uSM<&_mK?iz(f^%zX~Ee^f6ecpjP#;Bho1R34sXW1c=hvx0jSj)IQgc_4=Mp^^CW9 zVq!ze1@3SnZED<_z=_;%6;ah0A2sqon8${8Q#R(HMl3syC!@2HJ+k{I^U3E{PI1&U z5;3#<<1k62x$-(?Ur4R*si74$L#0e4bc$t*#4b-eg8`BoSg{B=hxrc!bcq+Jgi#r% z-9IYgO-1FK^aC;S7uf-VzuCH*v`OwT6_t&`Q_(Q6Def(vi1La^V+z_i#8u7I9F)oO z*Da=fY+coOa=Nm-Ts>WV@#2iGX~faCR~tGEJ1Rz$8{g^m!hsW#J2BJ=(K$KyHKxkv zeXUD)X)P?_Eza{S-rq!+T?tguqHwxgs{u}@jTbLYPfrVlgxw)ZRFGU*5)R*9X?N{k z&FcR;)!&w@-#-5DrLX^XT72^Kw7&WJU!9+S|M=5%et0SVd#Z3L{( zYP3`?Ob3p65ut1qwdl#krPT^??0T+TxWU|j=_XH?k@=Pz(AUN){Pzt0dkznH=xw%~ z)n79-@FtO6NsnhN%(M~d+;H0G7i*#_UKsh(tymse3sYl($w9Z(59ls1bDh7w^k8m+ z(829Zux%(KBn4VYIVAi^G@e8nQPmWpRbLe^fl%3@JjFNKgvNR)+hTa$VOT|)2r6#I z3HLDk_swl2=T3xrLTBY~U;)(mA?;Vi}51-4vraLnRzRYkW;l!69$Xj)2<-`kh zX@sy7xQ2!*Gpm!42{XM2y&>Izg(aT!-Fu@2gt^(1x=uL;l%ZXi-ZdWk>ZbnswRo0v zqH=5|<`Xg1mUzvVRV7l%950EyGv<)~Ll0^0@|#>6%K0_o?1^d2_$sAzRR9jw@_68M z-BNM0Sc?y^b8l3xI3)!WQzr&QGh0K#`+uL5m+F}Gs~|RC7ZNE5YK7OD5U)>98?QID z*HVkxB<)R988xjj8Fdp5o_xiDb~r+uOO9H}(Gqk#Fb}dW^jJtwU_QGMu)CeEPlj_Ufhz~On7v9F?!QKlh<^7qeDiAzEI zhCWQnTS(pRyKWB<>{b1K6@M?Jx#o&wXl~QI|81on<(o6e!XQ1*b&tP}Gy0>skmdri6Op)&AlR#dgj!+SN8=f2( z>>_3JcV*_{CEX(F6LFh(7mV=$%Eyg1uiOBGE{#DBFery1(pO3it@~3K=4{q*cyLJj zcEq#wRTGNe?}r?t>|9;wbkqHTk7k+#`$RSNMATlaDPd~drh^&0P)pI6&;wBIBzSXR z;vDqLdZVT1o6B?-N=CYLb7N6vrpHl~HaCx=S5aVchSaK_&<5zSSx&VaUo5RO^~B{P zT+_ITNB7XO>ABq+a;e3cw8icZ$MTk5;4?KZlQSUYVZb|;6c&TN64TSyJ8dV&;vnmK zvL~Euhb~vbn@@XA&=ZI64l5!AL$e~zCo(&{GXOEp2U#A?DZ;!FtGyZ5mEn0tP*lYJ zWOxn_WRi3WR{`_3hu%5mfZ+t2Dt))r5H6$Y`XN}!ujET?Ccs-GQWBL2k>%9O5QS50 z_5q>iR{tW()@*O_LIgRv48e9m?>Ulll@OX22jmu`f5{`?=KXk$Wv~ z3bXFpO2{GxlDyOlXMH?>7!{Tm4Pj1szHY$}dL^uoi1WZW1&>Tg!MRvv`AzZcx!{Nd zJP8Nm>cTqEr#l12zQ=onk-C5neuMa4X_?-SF41wNWo(RovYS>dt*!{$JHc-Wt&%2T z6}y#0h}aI*6dX+-=CTuKmb{!$eeFdESuuZut@d>Y4ui zN;FoU>n=zU!;=#D5YH>JRqBP}$;gkMkdxmFjFWUYn^y302`O93a&ZIb^~Q7iVA^FP zyWrQ!g4j*T`Zb)aC(y>3`qnth9X`EONG2|er<%*Vpq;S_#fw z$?xP&jZ$1{&X#QcY31=xJVg}-w4%mFKOiX&=73C4A|sPVK$}O&IwYyAwUevPUOJE7 zZmldoTN9<{wHM{oLMnHhsOo!MNgZ55*96B^#DP z_DY^*i%eTN?{jfa-%)DFqwUFXcq>kHd)1ptm>y;yK`1~=>7!E z#6avhL3a|0H^|ytdYS@Yg!jz9@MqfZ%uF54Oj1)NYaVzPoppQ&Dnk536L2nVmdl6n`78{$P_d9jx$M-QP_B0_Dlz|_ zB$`~6%$e}oMlrGZgp8Rcu0>ZmVvSyDx|Igm5vL1A_PFTvcGT94?$;Pc0s}irc!xO{ z?|AGQ6`*49RO?JS=rrNjLP`3%UbLN0ihO{`K2H7tUXv7yV0paM$B`Fl_s12Xha)MWq%#6Kaoj#?HTPt^a0k9`R}`MI zjXp@kkm1=}61dkMw^WXGL7Q2O6Y;8$jcwo#{VQZY8${BVcv>SzBCQn_Dnz7~a=FGc z09Utog^I;Wg{%}OpnI-RPMl9JP-eDnpxo$!SAagYN+qP}nHv7g-$7aX2jZSWC^L_tY>&@S=CN(-Wsk8T< zOL$K&z)#az4hzJ}OvdV*{Vji%+y4~p#R=`G4{z;qa1o&FQ^x}5PY*hUg%av{aq4+N zGQR2@%VwLxFq1yU+nT3S-wvzSDMyMF!c(Fb!u28BtJC&`0d-sm+O8wb7bTz6AaCQ0 zi(ZQN`ymQ@H)U>%OT*jPDc(S0TM1o5EG%V91+yXkiwk_y=B!1ZnRxj^7$pljvR$ie zNtJko5bxL-nWhM$=T|_N!@K_>s7y+57p&)hx>LQz9D%nOld6xW(yYCEh10*43n_Wm zgHY#AjI3SAQ!JA;@F6%V|6orui5|*%f}s#c;a8M&$?UU=DJJ2VP5P3_LA9)x#5%fm z8;2udY5IdS9!LZ-f@kXegA6(}?W8ILbV&U#3LfzUdr~El^7?MTykERJ_zevTD0R9ke;i zs#-U~+wHLUBx-idea(42s?AzLA9W~HaNkO7{jXbUi!B#^h%H?3tj6afWP&?wBxMOr zWuS()?FMdmQq&G655jlBF`Yb-c7>(7yw7U3(FR;km8TPMhWf`QlwGSc4J3#_{`z?= zJH$34b_9lmRX^xQK!IMrUF<1 zc1qLo?r7AWx@vc=0EhB`gHp8oj$eF7AXe9R3P-n=lIdN%MOUF2D`G6h4GH@^!P9eb zAkoV5VZl_ODhzOEf_wZAIM+I$e4gXYy@E8|vXTY{CyW1(=MZYJsINygmX!sEE>ScyA|7s<<-M!#rMsd7L;h*^6@j`~@28)xPYD z%(k6!2WR|qB6hxNb@|5h>UMTc0x$Nz1j_JA*I`m!(ZCcb^5~NAvLsn$e6un`Xrjou+$^!DBxMzR$8P=|!PS zEFyoEu`cX(FH5_(vbGNLL1#DXjbIQbBR&S3qIsCu{ebM6F3aB?zh>mnX693?7o0aB zNrZ97kQ`ZnL}WeP(Gf6P*Lc`k5!GD9zvIv08_KKro79?!j|z)#H+@=KjEwJZxD{7P zaV_a(9(E&#fp$$)4J#d?M76bncCaJ_f~z<7s@?^8_zOSc!PTMm`NsgK4dYB(saGZL zY+QyaPx7O*%k2e+3Y%F4>*@uK3>k%N=$YawAkOW4m4o`|<1X-*d3z_;NKRgL0$1tO z$z``N?&8+be$a1Ld!HJlV;lqF&-VW5Wc#oZM7eu)bfjlR9sQAZ+4m{{6|7ol|1DH% z{xcAqhVuIZepnqh^G2dmzU;# zZ#K}aUW0!MD%)TcB433r%083Hc{e2nO-T-N0Ox2LhTj;JC76ac2JLBv3PyyRo|l&# zuECU_k>aA-DMA{jT%2r5pqmbUU*?u{#Mv5?oj8&$;dU8@f!^+1X(Qid`u(mPptt209M zOVr5%JshwJlY)+%399e5MCZPnK8pVI*->`LC-?oyM#R_yboiwl`UN>QI&k+#x} z-gnq)c4pYH#VH$x?=XkboMt{OuP(ovw^qUJ7N^ElkX`FHq4iT>a|p^-hnQ!-PF0Tu z3S&E--HuVe4S_vNZb?Lc8<`b@GFjuN%=l{6E{Mp~BsEsJSWcZv|v2Yghr+ZXXA zXwo7qkA8+myfJUX#gBoL3XrU3`PWhKv3hx!c^UIg7J3did{7ADyMB&LH-=!)(Wj6t za}v@6NXcJ`u^_dvS_0F+2-DcGdhW?9+7>BHTd}2Qh>IvYF|^Gt#c6Oe zm!cTcgQdkcFmExbc_?tLsN{Ba>IRzsD3^qyi^QTzoBJ<6jFko<*1<^M=bGcDt;4<4a7sTOP*G_Y z-wb7T0EUGgs{>NObD41H(+lM}q#QuPC8}zxLq|9>zkWd@Rp`w|eQ2Z|dud=UUm`T`S2HqY&Ma(2x<$)I3m*@Y5sr2mcY@Ns!h%T++T`Ov)~F=QunI&yrvhJV}z zJ`apNb6sWh-F`Pt-tbjCGwBevc^Ne*eB58uDSdRxf=?%m>V=ezx+cvI59I8($a?nU zX*lqScdQ5KzyK~p6SH=%*OACF8%Cw$o5vVx=&=gw?YSRW4+bAXG;EVcIz6k3vUbjD zRO%ydXzw8At`RU0YGQl@XLCB69NtfoalxneP7-ob!#lY*#*M=^@p`J2ak0cOjn!-%-`*Gw)jUJ8QpLtQw3W)z9^F>&x-qfHcF!A5^S8J zPh{pEE^ddLcl}0eZpP>)-pyVH{rh>3z9Q7}?{`^7P<#8U2HE70U%E$hDBhRkf}1jI zE%>VkH(3e+k`qOL!qf zrCf2F5hk2^zejM9Uo$Fy`v^51QOsrupK=O^f%Z|@ojs&+-`5Syl^cnzl*q= z^&|CMQ-E^BKB7sGx_NM&N;x^4p(*z=7|Y z5rGMZI_Y}U9kQ6B4kY^E zr#rz4^aLj^jYOqx-!bb#*6pi24$!orR_NXSWziiPF)PV7+C~C6zT}^)6;718G3HKswOykOpd&9Mj3+5c)g$dp|Yeh zYpMf(`>wB-f?mXvq>$KL%b0Navwv~6T3~b(&A%B;q__)k`lNz-0%&ZjTKt5en>XpzBpIQ^l-j7pu$FZlj#qpaXsJr871zjJ{-bic%uSk=V)eXL$K$>?^Fogdo5i*Q=Oj1DMBslc7Xh;;J$AzF03CWfCM&Mq zN%l)BRzvA4z9=*ENImP+AfTJy>H@Lc)OO+_3xbf{`)~Dk@HlaY9T<`V^wm4rk2)*h zL{Q=R1u!Lz4lTS*H!qgNC@n13agTW&Rc4IUTce&*e=f}KNe^~`T{93IrmQFCGOov> zrKLHP&392*-8aUn!=I{fVJY*b=(hBf0R2ARMuEeBiacsbo-%ji z7-$@Q8&lBUazB7bJ{(MV{X;ZON*>5Bh|W5L1m{eUR?LZ>((vBLC80elZKH!FhjTH8 z!01PI6ITEjJM~Xp-Z(smXTe(q(-f1oEF=%xHGd=io1??ea>D4!EVt>zDwV+}YC1)( zq0fhMR%%);>0k4k|1n)lchsm%*39wv>&m9C2EW^Oi|}0Ya3m9_ z1O`JAGy0f4J%b)p%!$nuXuK$q&lfWaXx)f4-bWYnWFTT3g=GEg7Yk2Dc^^*MaJ3Qj ztl&QBfAja?3jD8jKmlJ8>!_Mgf@-U6D0kl0BaF$-2vcC|ea0Tku9Tz!d&ed6a={x0 z&mO=OWr9$imoEo1O2BPAxhf`mI69!}HhUwNx^}dci?UyjhTzOD2-3g>cX9efBK=bc zmXA#NCsGj6MC)klR=k+W;SpclcvsCIE|Myg`9ab^i=L@|=_jQ7dkiN=Qi8oNppjno zW=ju3?(-yx8&?UfjqDfMin&PQRTpDXli@@N3M_sGJJ%8N49oCq3q|~Gi{9ZV+$-z7 zTK%$|*~mh^h#X>2dr}ZsT*8-f#?a@`{JC$Ve39Q&rmOW~b5-F6t|{ek8{ikywJ2_G zCzx_6o!6YK#A8b8RPQ?NrZ39*F;uk$LGYm+?F_u6S!GD&L=OmZp4FtU1%X*0giLTB z5HXlUt`}*yA$R)2YTRCO&;GBzBIlt`NL56_<1{@~rAf}8oi0WKyL_P_O4XcIlhz+) z+8#eJIWRaFSm`Gb%Q|Rf?b(&AMWTK?O+0$OT1)B-P_MtL$vh(>rJ4O}*_mbpEhtXS z$N=j`xm9r!u^ATfO^YN|L(B$sjk$LZm)4DSWW*tvIH7RTz=XXf63SDMAt-w`za zuZ$!OkGBGKHXJj1=W5&u#n{*~=%K3#MCGMt?#@|x?Ej6oOeb5JJyQf5k+m`0Ast~x zuKovG$Y+}j8*Tr9R5tC>ZY0|se}DW$NG*2(81Q{IW_)ZxQ31YgF;7(PDFx=xNmlQil>zqE+^Wf>jTDDYPlVx9UBKU~V{LoGfk312vTJ}xv-|cdE=2F*eW**#%b3!j zOXGzSY$)+wG4W#4O2;bHTHO{kMz@xF6L-D{Z-0RfG@oOjLtpM?e!{2sR=Yexnosg` zdTa;(iW}&|E%q?s9|DeLCwOMYAP^+?Tuts5T)Z|mOtb@ckg6I^i?GslMIInMaj@K1 zUBqf+zbArwe>}V~B44vRi``A^yQw>b$!F{hxg0IOnz!T2`b9U^2F`{|$B)vel*{x1 zJ1!7$DINb5J+b!{Y?<)Z@*Qp3&ANSpp9O8F`T5T)?kV_!#X;ea-r7H5b6b}YbUx5E zV2nnf%z6G$E_gqQarz;t+^ztLdyew^q_w@?yVmqv!>(pm8?s0J!}qfOfaygdaZyol^xXK$bCQsV z)j0%+fQ!Ho^6Le##Q9e(P@84K7?L+$e}C*4EcovUo?c#pU-qsBb{E?zOxsqwf957C zd6b+#s-_Kmc#I`r*1#H9oo(B@$m&*asb zYc}L^^KWk05q_zC_C6`8h~|zI-ljy@OnhcgSFkXg)lZaP($(0(bdp;pQ41@9#Bl2G9^)*Z`dJx; z8<$J}nZvV7I9|ab{s9bC-xB}y4+D?wdd`&3lR8*>8I>7^4FZfI{5!5(L1?LM?g`4J z|3Z=s>j@~wRp6yNe#sC^I*NzTd28VUt<$B{@D&9kK!WzWRaZw`9Uz0a&Qy`Y2_&+v zIVy7t5&P25-b}P@8Tl&@pdRQJHHd5q7W4}xnT5kbTp&IMhv=~j!#}F6oOcaQ}@Z%;a7`>ca|!ag+L?OeT^nYE3@63j z$A|Gddl6Us%b$5(TeD};WsW>OZESW$6We@In|w~&1AJ=@&HTFO=Z-Hpl46 zN9T_qx@S&uipNfJypU9Ha57<==x@y$7_n%^oy5q_dii$03igN0w^fwnBy4Li6Pmm0 z{yN*;m1%boI0WbdD#bryMJ;g|GMnSh1dl~+a(Kyz^evZ5cPG}i6UY9bjq~HeG-)p5 zc?&|-O*rtK3N(O5x=vhcU554Y0E#8k>R(KC%}ean;i!OO{0B;^Rp9M@heJX$P29tX1;1gaN&axsp?v{Qw83~oZsHnvJoT?gEAoj?AhQd+Y8~ z+pOH*a;g2Llqw-#pQ@9U4#MM$cqqTy{w)-+_v_UZEwjl!-j~8`>fTM~K1*wQh3i4| zn&z;gVA!O{N7_(jZH`e6zr~H=?vb_z`!B^V0gU7#3ck$ri@lyrQf6rO z1z}8iX<#y=HdPHG&Fs9?nW?;YL5IKRuBv}Ibq23BOKHsx6xU;-J@eIEU@Y)Ki?x`0 zC=29|wpjWw5U#^f6NW{0u0WxsdrYH4mj01(oKm>+NaB!RQos?SD8Oc)s~-|&smOwV znTux6sM-dTHC<$m^4vGl?+~%sEbe05O&YK~tZPl_J5RHqX^y13QIMSn>1z5f9r%*1 zakFnd$Nej1Bt&i~nf4$YNiowx`%eE=MuTUghdTGLtz3_rhIC6iu}aD* z?J41I|K(21joZDxJ@2aA6nDEM?2pbg=E7`&z%1UV`*1rv(&{+YvL;K&9jTcKJMv;d z8aEdC)4$qE=d63J@(#cG9!=>cAY!JR61Ev7akNl203|9LfMse>aGtWx8AT}2KUC!| zd-om^lt4e4D|_0R4FPU;m8SH#C>4{7dmq&!#F&%Fli_#qIE-hQ@0h9h9~|>rfM&0f zsUkb*!sG4nUrQq7?71N~J@uK^fCF$a#|2Nq~j1sL60%k?=hhnz^~ji!kFBZIwxYzK==?^{EFN))hJ;4h0I*IWa8A zlb@$RM7s`GAZNGW^GfYhKiZQwr0_0~h507wU%V0RmYyIAEoU}@;cSWzt7lodY99hJCQIu`us8oxryCnR8@<7rsxsN>EOeIU?aPd0TNJ(4uxNhN0u0BhKn>oEG757@J3-1l#di= zHkE)?<*ucBap_S8mM?IFbVc%HEe5NDAPB;JW>c^vx-U2JlvkKcI?mn~c{f%d& z3ip^kf$~50yn3WMs9d$@4(E?N?m!3S?*M56tz_Y%KloWUs2e+Rne!@v5|U<&Nl7LA zx#ccYM7pQL4L0FQv5b6M_Ix>aBVjWCp&vfM9l<%oBAB&(?=l9OA!D5Az$=^2VUmii z4e3=rPcrwh(SJ+2!D4#X8k%a8Rk1UMN?p!!)nXVcM4w#szvD-?H%_+5N~;L{V&&fo zotIH*w9Xo`W)Lz!6~_6;vKG?Q#_bHYaWu|m0k&H}^84m5Y0Kv0bWD!AMnJXiW%b>< z#vajCZG}FT&EzcnHL{mALvV|gUD$L7F-sud)bFCI-(m+nQ@B-$i`5#Ux@sK9dyOad z+lScwmdD<>3rla-30bU=be_Kd(+aa6ELJ^XMYB8gM3Ye`dEr-7f8Wf=3++pfacq#xDYsJ)tw1Bl+A?C(;`M?L?-5v2tmR=!vc+N4@U_&A>G9$g<|} zMmZr&aA8H+O#q2b%5q~XdAJ96nbp{vX*@fNzQ|r!+JqwxBdz`!0qUCR?&HWU&A_y(_$5pW9uDsc#T>y*%{qT7dB|loKGB;_=%V?}&8K4+Wdo zWYovr^;CLMoYhmC-smm;m-IFnkmH(vHh9`&NdAG|2{1h12+ST*^7MN4+_ZM2)8Gw* zYzW|gFJa^!Wzo3ikAcDiJho=@=pYaQ2Jy4#--Z_F?>{&kmd2Pbo4rEda!lzsFwy+l zsR9|fT2wLU#W*|Nsj*}$uQYu}5^rl6ExXT}vnh}H)INw1c5IU$S$z`(Gss8on&&;m zb@we_Y22`3+o7D@FsaP<@Sfs(N%B_Ty1|W%DK`b=uhzv4lMw38P{3&sr6c2q{g7P! zcun@^Ri{39jz0;me!+`daTlre;1=&*2mWHeGVJmu^llD@(+auPQd_IB$kSF+k1+EAfC2!IHqepFt|)-qttQCk6sbuWN2vmIL3CUGvGgcz-R-07Y?gs{B_vq46N zAGH@S8mU=8I$%vUBU95NcCz`XfALI|ta}g+O3ycc3=k?*#TTEDm+Z5MYO1$L|kP+Z1|5S=ioi zYEKNbzK)H2wW{$^XDn?YLi9nZ%?=Z%_TUt4!EsYK78B|-*)HcR30V#Cy_t{(3F@KmS(); zj+dyY6$x`0{evExfCjLeR-5zhnC=@_oq3*D+_D{+iT>{U z`EK-j+@iwFS7=R#2c1MPkJLmNl3@cVWBSG4uWO0snTz7lL~V~}IsaxKV7_5)TK zq!CO!(kL?{z={3-_OFgU=MWMm+3eeBH%6N2uCA`GuCA)Ct{!C7%3d7+Ifbl6o4Hp`S`Ee;|~RvR~|om{Pe%X@?9fR z^!X1T|6hLaM*7*GS-itwS zDf*$8B#@_2d0lK+ok{y%;8_}QQH|M&R3cm>0Jul?YEMZxgj zYc=og)4KObh@)tjUU{*m>{3IbiQk1!5{8fvb9_D_H1VAuCqXn`6Hi*Jt;h4! zn*|L%Mx`qydfC9NnvZ%^8qWNi!D zosmuBwt>s@n)sh!B>u-c2g#g#2t;iXM?d-fRM6rL|AV>grBPg;-P4U}dJ)CRn%Ec* zK8l0bzl@Sp)Udx-QGA{H{foM=f4!b2K$4{VV;#+_0$1ofR)3Y$>t4gA_^X#`r6Nc{F@o_p^96A7a2kT_`hL6n zZvTCkp>6E_Lwvt+c(}3G{l{}sq9Ra+{7au91*1tA0AP@Su{TaXifAZyJBOR^p!~+0 z?VauJKSUI3+}>_?_c}*M;_d#S*boOBhu!VX_d6Sh;^6(^!TwPv%LlW@w0dVl+H6+u zJ!s#9HRHiO@t{nOgGP~pWES3dAV4IIlSve(EZ(u!-hQ{U1`Pf4G>H9#DqgZI7f+A` zp_lqG7JLl?_X8-7rX70fkpOe1iv8RbMD`nJs?v+To;f(9p%*x(Zz#9?n941GlgA*G zTstpse!KU6Hva=upms16HA$f!2)zlcp*0{$@4L?7(f0mcLsXx%mRrkJ`0}D!7j@xZ z2WhQx6vgq!1~4D6wjwYvof$OZ=V%;$6!8>Zjq^isjzj6k_fN)^`g42O=N#(75p3V% zmEIuo>%DtIv={wQ9dU5Df6#&1(K%|s+<3FIy?HBGSP6S40P7C*Z4w8tNWes`t%!B; z4o1Hr9>KT0C?0uX0|>M(!sx2r;!3YCy%?lMO1}`d36JE`fr6ty>*CRKr@a< z%?mGvA2>|-a|FBr)U#Va2{k^?HKHoojZ}jqYJUColW&?U)w1@YaSBUB6HT^TG|IKR zSXnokf_~JVgkCT%YqT>4?E>Is8x;E!cOJMTj@i;A5Twq=xmqG4@$@ z7Jj_z?(SfJQJ#o1s3?&EdeJK=H>P!KJHg+zG@knPIS?isva_HJVQjofE96-@>Y!aj zBUlDu4ne_0)@4Y{z%YuVX_yAEa;I%CgcWrR?$+((=><`gG zSpd5%a>z8ZkwZ4ViefNWVsA2`<(dtdf|-B}?uqjNZJqISbOunPp=4fAOgw1QC1#PH z^gT58J+x(W)3S@yt`B%4(2~rDn`4|C}iG_(J z$@Q8d4aqqd52|9f*PbSEI{~$(tsrJv-vV}xN5L3O$su(e7y>L&kUs*fQIb3oEZGQY z0NRh(?QYPlXAsGBg8F%)i&hg+X+{Aoj};NI_GO`e7Db`&jdS?J!mYX>RkpvZ3zWal zp^%L-Ej}<>M$?~!)AL}QfZ%)2Ms&bbJlgFZD6;`;f>4AN*#nb&IP}SjF#uz+4>RT? z_J=tU?T}#H52phjk~v6!K<#e@u}%82VRjWR5}qE3PMi(>Xgmz!5t~1@zA>NTjCBtg zR5zN51?pv_dI2F}ypb-uJnfp>15$bqK@o+yH&9}W0pJ^01_u7ngSAJz>+I}Hd|H;$ zfh}Bm;S?7h)EA^I!xiYLa|jk@Z*KzxBa8>MJ-~TY)!JfBJ>b{q=%k0BwZP&>GYOO> z94q8RPl_*p6!fDo8iV-wM>Hi(#tRcz4JLj+7=Co*1qwQ@hL)1=!D@;vAh>CQ6PPT_ zAu2rSnmAUoYz^z3a>bh8g1JKL$V$t<_E2R&uk+gKljrzw)qbc~ns?L>HH4TPNXF-aZJ6x(J_Ip8mlGf)r>JC`H@-nYg@8uproGN^Q^e<{4jDl zS=2X>uwxMUC|@VBKMbyohro+{QK2P22`jYNr(sf=W95aO9QiQc{2A?1chO}CYy?U@ zw%8KyQ_!w|k?I;+t|Z7%#vZ_;MT!!%8=%X<(R6SPEkpyiVN~~rz{P$UCR5qi9Awpa z%_1uSok*nTSu$1sN`PjFM%(}HNbT%@yS*nqiG!UD`n%WN*%hLu_?BMRC9s+H27out zCdR~7I4oRXoeq^Uc7vS^1!wT01rx~dAxW7d=79XYDL#AsuxD->jC|ZUK!=16Q(&Oj zi7dt8blf)@2U>!N6NhXdq^n^3XjS=eZxR4q*_7(}%5oXIu)}uXpH0utr6~}hjz64> z)wi(T4XlpHtIoAYTF*y?2j#cb^fbjl6|PE~V?c&0apkio`yv{nIPm)y5eo+L%k{$O zd=BwIh;joGT?XXhiynVzkSoR2NGgn%0l7~aVi=(k;0;q>E8Ndxk6fuxNI ziqy9KtR0fa8mfkVH_FRUgEr7s7X$htVdZ|v#OY8Rd)ytgt8<$F{J3lopmhdV!yS{G zNeBk=_?(GI`YFH*(a2-sa9!Rp>so7lj2MD=t)779ExxBo()Y#Y;m%uebpaX>PKdwl z?SC)D6n}t0lzv6}DSAc|KOC;DVa1#0$4*B$ADAB}<4T6;?-4Qyq^-Yg@4^6_k99{R z&jOo(ayLSQ77aiu2ZQ2|arqordLi2uh$Gp4Lh4)c`3L{w9CI3g_cVYaF+3N-c{Gui zrT&QA>>7*JkJ0os{1-E(s32BxWt2`rqQ1wxz!4EjwepROxUpBjPB3q1XKArsv8nHc z?l2&_xa)O^rUcN|k}#w%OfF(CnG-c#-k%S-@%fjN+#>aySW5OPUiWX!78B|9ut_-# zLVsS;$!dj2Z36q8dHoM!LoPQ;AFwpUuC)AlAEY%tgW%Dk4usc z)fZALK%{hWmb6O|Z9+6eRaRpxu_P`qTrokdMV3^Ghu*56Tud+=sU0Letc4>9tMzzF zbL5vlqWUpLPq zCTdS}7|kQmZddzq`ta;2Q^$?FQpOlcr}oVatMX=ntWtDhrls$3QW|$2w)sO-HpzaX zTvKB2{mzb5g-Hcy;1)sZCljyF?70_>eR6z5?~!k1J#Hq4=?@vF_uV;-8t{GlyNzx~ zZ0v2}^KNIe+u6DmXq#w63{tl@#-v7iW3y~Z3yL;nEjRK!8#TzyxbrJ4T8yV*_&nD* z>xs}he}Sf}X;jUriSxDT&Tw04oTJ%(|F+G#vSGny&u-tYD`FOFH})st$0iU=`&=Xr z3t@1GP`c5rFhHy71DG@RLZS@bO})TpfAOWAFtd`35QlNvk2 z$Y3x2DDhd4-&N(?aN8xwW>P^yunnhx|6*;cS~s^Hj8p#{h672hH*PtU2^HEtbOQ7m zwI?)Z^Xzeg0 zF4W{^Z*Et)VBL0a*W`pwP82sOcX2`K@F}(iJxmvIbOpwA-?t*}c+?jgX#;^r+HxJ; zPL0^y-#hAV>~)WBt1k2bnN%Eg_YZozoui|TZ#&F^2wZJjprf#XCDULGwu*FFu|8+j z2VA<_d+$5w8MW)bYKSoS;DZ?-eIO6cjerifyW5)^JGjSU18U%QctX4Pz!=d4aEb$p zBa+dCG1^%~e1=Bu9dx?H=yoBR12oco4&QFdZ7|$#>g?~_W6${QhGDnUeYd{_s@!)Q zhua%(b~?8n565y%lx`}+7nFhy3n+WMJ&|}rzlTA1!o#ydz){JCHjp;L1Qy)s7-Oh) z3`39X?Foi^Cr*%G4Nb=gjX&P*Q&AA09|ogD?$fH$^@bQk7+XVAiTomosG)=16B9ok zqOmg!u4Q~7p(_sr3?jLA@tSI>DUJ$WH!6IijHe^pWXhBwvq|plQan~+DH$=eF&G5W zqa$O5l46`>zsO?EO?7fR$cG#Zknwg($AmVkB=wU7muZf+weXd6ly((@> zKI45q^-SVfuV*o(RZ@u0!Us|I+css0BHN^YCF!9(eEQj$MEkTiVeiBQ7(tAFT-+vX zf^8U#Vg9qnqnP>9xO_x?0$jsF_CU#Q+1n%Q>-N@)Jtq1ogDD{=?yC?ort5B3H&Non zQ}o(8{ZPx9z4#nmMALA9E^oE6QHW(|Epe|*r`ZD5eeU)8s;Qa{RIX;KYmx>|0k=HI zK-Kf3Mves?Du z(_(n-a^(`dWKiGYc%g^GL=9#F4dymNbp?Q^8EKrKmUN?+MG9@jf!7>+zM7e#v5F;*m%dB)r z0m}_8UsH%QxLGoa)R?KIl}7+8ja4=D9H5#@$uA+(!dB16P-bt zx;!sLF&yJZs|}9gP(?VHSr+(kR7E^py zAEit7*8OC>yNk@+v5Du7V4(cmZW=qw5?zN~y=ouz(g&l_A9HlB9!rTMjWye{@|aH6 z(Nah{bS#T~Muo)?&l5R}RY|4ltT7>vQYKzqu9|7F5o!$>VF?zX%4N|}_}&GN#--Q<%Zqi9MW(mv47qhd1?QmR&D>YmPViY{ZByHPl|Wy zOKoHy1Xr}Sr*uwJSwK79_`Fu#mfgwlOts#su8C@kVLg|SEc?mufo(4_kBt4Rf&nOP z3)&Ga;kNWS-=dDbbBtz*jkNV{-80pm&Hav|qu2pWl3=7~xdfmFjNZ{O;RcG=_hF!p z(ZhB65J#q3Ra3f-zOy4JJ`rcYUmp^A>O2^k;g-Gm4toKXZB{9mcZ4Ow_GC5Hf060J zmyYf{ZRVQ1gJE8@sj?9!6i9sCUl&Fi8!Tu{0uZ37LcrbdItFQ!MqzY?eiGICY2EGy zF<@^pO)eA&IrU}eM@H^z+%*B_X;GN-OHPmNho6hAV(K8Hh<Jj76wGrzq4Ypg-7yLUp1cF<&_Of_3tIE*|A5)Vg4F>lZuzTJHCXmxcBgE15FpdZC}2o&Ql&;4sM?&z5G z+wGlh=dkzP#?JQEMz_=JP-2Hbs@s?#Wbj-ZMNs-9spS}VRaobhc;ojy3d;g((Mw<= zM;|Bq7aAtl7$EDz;H+;=K{fl0-R(`)G}d>9Lm`C$L&c!_FFV4VaNwr zpp4oq3WMIJPm*w}ZCh+d^>L<@TesphN2q3O8e;XV`72{t^_o?>62OfA3yOo9+|#L5ktbBnC-g)9 z^{)kKp{z2nHhtY%25s!+x>zO=@)s=;GG@`M`?XguYp+)7l~?fPu)F5%Ukf@M*Y?CU&Lws;U{>8-yXOx9@byg zYbRW7wT@-r-AWVw`5OLv1OIKpf1Tz@^+EIG_~aDcJbQck39*6a%kpRK)uVd7{s2Lo zz?X;krT&Tj1@OoB{~PN+JZU$-S%3A<=KnTNAAYLb*d*2}Yf&~zP()u*37ogCL* ztwE*jgUhFDvVkGO`gNu87|Xwer%$2$v(KLh2DssGba(W7H5H1!ng_j#oKG$EZ z!LMh46Vmgg-G)>4$>+5kd$5{Q- z3jO(Y_4B9W75MUseqw#3%QpZ3s@G3Wi5yGqAlb6kU087c!WukIEgh6D)%NNzz}zgo zOD`rrKd5ut<1~&2(>|Z!MG^j_wW^omU|2I%EVZ+6ZK;d(^>y)fW9O)2FXu(t3oYQ; z9n(Uiq{J*Ko#$)ECs!x;PyYL4>Ex@Ezn)Z29-KTpX`ZxC)=yrY{PX0;lV49hoqRs| z-_wUDt@?wx3%@2t!~Y{sZZ!WNj7jg*{dv-a2loLi4)N2K&(^Ev=_`2t@TR&;1yxU9 zAqTEWR$n__UIADGU~u3M=9-hiC&@-IbC5f3E(Q~sy+StI+`FUA8PZLTI(u8&d*9v) zoTI~0f*7;A%t;?GE==v7wfKagIkc_RBGhFlKbG|4aS{>z z2BOY9<0?s6ga&@n2MZ{b$p$IjAFHTUcL85xspnW8L}6x6w)bePGB|m4QS;=%%2%e*;D+|tVzC8C+8Prp&FKVPM`SaO5u9gpk zm`@lohV2h@2ms97-u9V82MoatSRk{*GAfhrxjxN5 zCm>T&jl%pJ| zz`+I$PL}E$5Oi+)wt2r?v7v$qRFH{HYb=(VOfSJAaCD3OjBKr2?u>Y2GQr7=aRAzr z34mtmE3;togB`GJB+SZm3`QNFnQt0@?b`E7J*(_20J|z#;9TzEGiiwqF^B z4km6+80APxCFiB$oSEt(_B2jv9X(edAxOQEYGwH)lyUNuSliFWq0X^{kyK7@^8% zUPIp19r>8}AV@}csc~pEu0Z9$!vz1!HhG&!|U6Ez5(;yTVXAar`|2t&wsFKvf$oEru|lh z^Qk+1v;FmY`ekDx@dP5xr#a$63r`AIXX-MC_zI36*oDn;?Hi|RVN6Hak%C;5hdW<% zpggu;5Rxu;LGIgeA9ygz#AGIv3Vc|re3b}Jb%|dvhd5ZO-o#HX{4nf~2DQw5tvdz0 z_&mEMQye8dtK~Twbxs1<{Zwge*4NztZ-LH#O2?2b%E@TFL@Zr;p{o$q?!R7=NKPWq zKWZB7hNxau>#iQNfUk8}5-U;W4b7=AJV7d0wJ}fw47E<_aDZw6-S6U+ zSP^S{6w;9qgGlA{sL8qw>a3*=>aSUB|K{Vqy{Q`yKFA z*v{mo8Ju(jAKikB=H;PT9HcC?Te8s%Ci>lmWR5ND!WD7GDURP}P5d2J#ogH};!=v@ z-aYB9R|aGE(`t~~iV{{kJ{68h`j!$bK`m!7TB6_?WM#0lY8d#^koA>cll zhX*aIYSz+@RU`70X-Gpq#aJVHa5KK6Js8&#C) z-}L57jV$doC|pitdb?hP8J5%@na-Tw5>>u06kQV-J|wptmVk`CxIanV44A^%m!rg_ zoXNCSzYXhPqdl1mwKv3)gLznpay%&+pIIl?*?N5C#0##u0{wZmBM6V388riY-uO){ ztC2_T$Y2LHj$o5Vt+ka#rQtMsu3*-oz2^&1P;cJOrq?|w+BVV@*K@PoLy3cE-_SVd zXK5Ol@JW|+hYAFW-s5FA>Ra=YR8FwKoh?Rlu07N!2l!U2H!e5X?T;_Sapkwb(V7pL z5$pG9#Bd*Dt`Y0^Zx}Hu@H>wfQGgo$Wjstj{zvMNsK2 z&HG{({rfaXYxNw*@JpF*eQw2ddmNAkj2ftwK^_;+v3(_g%5`6$zzRI3!=d0jUP@0b zQx{E4@*Ra@+3K8j&x4K8!xWk|i#~bPh_Y_36E`5Hj`raYR^3yeEjRh#dA{f%>d~Hy zDXaHqWNE%;W}Q;z)1-NBq%dA#qE7z=p!HoFA+}_V(0XRv`Her&`Ywnh7_ImtMstL| zu{6d}CX2tbLrH~evf&rX1wi=nKD&j3yK4?bC=XD^|D$A2CJ40ku)bEKsM&`y%#qqS z=9W(z24H3*fSzOT)%)WWYq3DjO%%KDSFQI&0U|a)jX)ttX@o>^YWtb3i5MofVsGww zLFFD^R_$4vBw=}Bcv&@}K8~x#8Sh$+;Jl(5YwdP*4UC8ub)~_0H!}Q6JH%IL;1G}f^GF^ha_Y_MdP!sMjCO;nb343v z^~}xm+Ax;}`Bn-ux|2sUgSt;gKTy}&G%^&P`H^+$@)`}vx^U);M$EeW$S)YNqVHB@ z7R};^5A99%GST(LOqAVfS|~uEVEMmwOu#(n?NC3E_kZ*;TvILbNh0-B%tyhB>LU4! zth-+F8|1Xe-e2dG*0!NgDAW8wttj?%QRT-bibVq}#kx*WOL{Ko?0mzJqXQEW3iKX6 zX^7$LcxW&K4hEfW)iqb8=y$LHcgE*okX$g}jCT&pVHBCzKH3*gAAQqY5vxsoeW?LM zW%z11T#lyaQ(&MqQ8|k%^)k4eqf%XmnZwvzZds^$73goo2=>9}9SN^y`T^^RKgQ+V zV1U=j$%1ViFVSvq(GfG5h*Vxbk8xe0M|Y^(36RASX2;*y-sv3nb~g6D)jEe9cvp64 zL9zZ)REgWk1+^wNDPbQSr?kqqs!9gB^L-95vOL{=q^=mWz~#+}B5-KEFjBIV1;GtO zwh`L3yty0?ZPk)j%bPB!TJOgn#?jSSs1j?!swFp0MXr|VuqjIPOlBe zJw{#S=LbxCcv&SWHL{5CKrHzlJV1$W zlC3xgPc6uKv%H9VT_Rgq8V3gE0c7A)2X4lD(R3%)0l^ z&o-!z7U7nZD*-lH`je!Jn=(&wU&*x=->rA$fx+fi z@m@V2F`{fwqafkH0x1vaG6s@wyF}H z(t(i7;;iA|2n{g_epUxKlsb}i@vY8$pP^=Q&t46w)V&fV=vzPST0>MbTUmDOse*5m zvoAf&Cv%K%9(Fdm+xvUB0_iA;@<5*v3Yoj;i#$1*#M9=I1b)HfrNfM_eo=gjjh%2y zolhX3@<61MKcxpS$Uet&NiBhSI-Z-i%0pQcmLmATEIF|~OE=f`%HmQycVkau(aL#3 zvrbE=tTHb;(l}O}qRQkIct*fUA}2FagdgW0o?8ur?z=^QE8YelAFtTH{cI4reHMaB zFP|2BJl%>nAFNPK1I78mH*y(Q#EXg@^;Oh77JFGSW9bt6``DW#jyoJrp3ylM7H%>p zA7|R*I+(EqZ)E37_AqTbkWE|xqzN5(9CNCSpQjP5+)auu!ZkyV-F_UL2beV)mx~ni zn=^oM5rhFuf#Ustg`K^p50W1nbjqu1HkLwvd=4GJ@^s0g{4MKbQ}yXo*FR4T zCD!d2uANTZIJR&a@`8=$m8a>j`L$M!)$Q{Q%<#<@-}=19j=T?e^B7-uN%{K~kYp0l zZI@vhoPC7FUmJ1>AI(EZa+q*4s0S^6jd3?Vk!a|XaZE>(?Owc z92On*z8{A}r-Zp|Q@P|c4{3q)Hn{HW?`YE3jn0rv&oD=^8I&etK&V+n)uPnE&Q)DD zwOz+M@uhK(Yp@MrFk%w#dgno(E+0ipMljxjb{>{?I@#W-bI~{fYfAxo*2Q!9s~z3g zFo0eP9zL|XfKPjP&ee9=lW@m3$4kMf_Bkw_O^40_Y;MZu6R%7D3#%aliLLo|YXF08 zWLdY`JznxHk2I-nY6hS@sj0EYinyyMCrZ|JPWQC+LVrl!Y&q|nnsWg4I{Z`|lk-IS z1+m=nl?C~wSk09oHl;laQ}B7Fgv=68lOSK;K#(5I?%S_%QoNB@9C6=SMAWmOO|}ii zf~GKZc%^~iZ#c8oD`hP=n+pP6odc+7;$t)Ej0Nc%Ex*UCP9H0!B5F%gBc+5TpY+kaLP_R=7AbOEt#(kc7 zfvA$4mxm;nCTpT5rx*1$w*}^iUM;stsLR$er^*WG!{uhoBh__8p?LDRI~c|DUenuI zs+FcLD-_r(bYo$NekS9`))&*km_{)xQP(@%ce;UzR2&AtiZX5>OZBqOIvG4;4RVI& zycxj~D&EA=)p&l}NJ2;5Q|f?!KM;7wNLHO@N@>Jlt;a01H+B`Jhg7;C6H z6GsycIKvR)ER6aeS~eh+nbOxVsOBYIEnUOss{}PsJHzm#x?ZgtHSU69Hx?k4c$lNj zLtGqI?G3Mi-v_7w8@}NF@^vQAf(pD4E303#H&5`{4&hoLElUotxnuVfi&5%H;s*2- z!|uAVQn)DoD_ijH$}335}7vYB;iu*h19QSkDi)7OSSzT5;tj`Ue$3 zn^}Uou?pEalF4eO7g?g|%XP8x&8j5o+aOL-rYT*WNJd_U#x8{pi|9fIB9K=TsHn0- znct(QFRYI427`g(p3J& z+)z%gQumw#9Gr%l_Ro~FX4aZ9*QU6ieh+IddNS<5G!rO6uiRu&4A)s>-82yPZL+2s zCsXjkROeFAPkO-^4atHR97|tXBl}+a>1Bo}qY4{ejZ?sm38Ai9Jn85uxqJ<>-t1Nu zXrds2NRs#?&?b`1shK&(+`2#2lTZfsmFY#SkV&Q_*JyoeSKfQB^LQ~U(o!!IqKT#H zIQY32pq@P%JgMQYU{Ff~iojCN9vPM`m4xFJ^j=rbR(hm@N&v-0SGnlw97P{-(MOr0 zlD$nnD5mQcZjY{KawEu&7pF_Y8das?AHLnh-?g$_2lGJ6Bjoy7QHBsT^b`(S&BwE?r#8*~A7JpEoGpeDpaZ@MMCp z`}qW6^Cg*><1n$su1*Syn~oPN8BstvkxR5yoVzSXU~A{9%8A!?^`ezGm&~Z?-T>44s;=Fx))3-W#mhEMhfa<=1MW|?BJ>Wvg5>(PKQ2~1D zj^ZH2wP0>(GJBdVo{Y~uW>c@{NaU_B+grI*Kr<1N)tcK|xut4*>qcp=-C_pJnt1V5 z^7^afC2w@e1=>mu;D&G8dtuI|_DrmQ!2P}`4lvM6M-|H_)^?G6^Ml2^jyLP3Mz|gd zHVg=1Ak~&EDsMJuRrOs16kl>4Mdvbkzt{FAczt=3=4H}~;`8>Ttz%Q#^=b)$M<0KX z!B(!=lO1tg6T0xNdS+G6S}z#}!&@nWcytJGK!9{}&cPd$p&$V(p6=*w?nNmEA5okN zPtEEJ)aLB2W?RF(^6JZKZq~wF7yW4h8i0N99M|fab$~@=&y>hUsNy@B=tjqF&)Fvj zT?>*r#eqBg#q<2eni$BCOIx5L?Su0%-L-_FP;<}o?cGjOvMdsO1@A?8URw2AKSdV7 zS~ZvE`f_fnl6SePcqlswFoK!ev?;Y>9GnV`7<@9ny_&I1Z=#?~KitHF3P?ede>nC- zR74#uCl3paN6z+ok}7Lv{iI?AiP)ACaC@a%X0b|JxyXPnHlDx4>b@mWM#1&JfF$#{ zAa36$E7A1t*Rz~^0^P%S$iq)$ANlt2HPQt6$>M#*$ibl>H#;g^+m&4KWWN47)LS#F zrIoz9RejFBYd>8#?`4chi38;e)GrlRa|`)}qDBj`np|Iq%yg=^CHBW5-hE1jCkIqd z@I0SR{C+1w56@pCCOUg&VPL0~tXK1xopagRLvwTVq9d!oCuv+%X(nGwOK2kL^yktm zB~Rgk_ByNQa~``b^mOGC$CUfKIAyt7D9+fMr+r=a389h&m8z7iiLGMp(ps+NdwssB zBQ-Ct@|c*dxSTjKXZ5R&kjemIjpT@kTf={3&vfauyuhJ!*SL?{uJw{FK_Yw4JCtwHddP z*|5lk<&?Oi>_ll8_JASN>jLxBj=fQh7?ORV1~tlQF`1^AwE(AGQln}*S0f&`-{0Ej z+r2q7{3?n+_*R%BBI6INhAMdP7eBS{Awm3KV@`}D3443+V>A22`b#8SQqZ zW%su4$7zpCas)_mF+~(T9Qr9HF|Rko-us=M%(=7IQ=A7M7!fxtRSpDE>D;%e#MnBe zHJseLg2Ni+jh2I1AQx0cX0NE!TZ-g-za_g&oup_cuxP%_P{M+PQE({aj5Nxz(aXmacDKubPG7T)nE`n1@+d`rL9Bka>}n zs5XdM`%BGcmD8#+*;Eu*K}?Ff6ZKVMcAYph#U*mz*?=nFM*4#NG~Zo3ira7|$vm4> zm?QAcC&}Er?C1n~Pzrabb~>n%Wya5XWYal&!9nV7L*cH;4c#jYkuSPz&AsVYUnfJz z*t;~@=tQ#{xnXRL4qx*LYfu3MiUX~HWm3sP*d|?VdjuutfFL!y92#1EngP|arZ z%yyzR!IxwrO9GN*b9^T=z{vaBrv7ZkF6u1>buQM|#k-{CX>m_xpnkh_L7O`pM@J@U z&_=hrvH5Pdv)4Vk6-=9k8-oESq|xlpv9F$>gntnyT0%uE`IvwfJ1dzqDb;Jq z8OZgnVX30Tn>F0it~*loE>dH|$QYSaBl0w4r`I``yrm9Q&%ic&`k3NQx;-R-^i9j$2V z!^>D#b`g6-QLc>4a~o4h2Fi5oDBrTKhGQB~Eik5rQAnUWDJX?l#x!w^wtluk&lFtq ze3hQN&mPe;H9Y3|V|t!Cxq6@AGnz&XzKbAX1KNzeF8Y+R*BR8S2Ff#hwJd+u|8Unr z-~D~JiV?WzCa$z}?4lsWzr!K<3##YMz&kthoEeqHlFpf7F3UM*Am>*=u8lVU;KAOc zA>~wqqpX54s)!b5O0r6QA|uP^4@a7*3lB`Jaxa%k?n@PBm|;c$ z7$$w?;?gJ><&@H;elU1H4t~x($1I7tTd8FHG?LyO{rsJ}*1AOL>hw>;nz+or>uml_ zY`+!TU9o*6HpF)uJKI}gYy0S6|7aW21NPo-?{qtddIr=iP{&VCDUVZ@E}292d^R3a z8_BWo@`7ebzH+@7ODYAh{p{>W6}3@$l1+Iei)E7<71dq7A?LruqO^*Y)E|fK!b>jX zxy!_l11}7I@olozGj6zG+~Z-^wHpiwJ!6P)j#6_#+p;^6XeS z1d4aFiiBk`>Tk7<|3^SOqlMjb>pBw~|0|!`w(_LiFIXIb)$`gD6C<&$#$ZgBSNaKQ z9pqJ5SW7A}YbmuhX2+jc_N~grTyCItFD&~MYE40BrIg>G$ry{T`s^&gGm+J=>@TD@#Q5Sb?fz`5wNCTJ9u}{`>u0%1S%+S)sxnv)-syu@0z+z7y|d{MR!mX6Bk6b$vgHecq~M*jX3bX)r(YGy!{Q&t(G7BSSWyYwu4 zp+h0FhU8PdC=o41BPK4sTk(v^yiv@OftaeyMgJnPeEWk=IhAC#XjS>9@+Uv-{KcB< zvqx+sG%G~S!0TfUxE^K4s&Tmu*#UyT#k!lcNp3L}m5stv(K4_p?#)a@c}1i(1>GFt zs%CBu%4GR#4%6Ouu4+6!SzTUko;-T??3Au)#L;$F8#)X-uBMb5-x~~)&`ZdjnCOJ) zoSgd#Q|0r%)&;zD7MA2A&hsMPUq_gI2~^UeaVtX zK!SEb8v$!KHCn4zW&_8(h)}kPTJ-e%!fAy#cCAz{Tw`v)e3K{3$b8Ey(ASkm@ZV$j z?~;R?B7nIGLI<}u!M34{kQ8Vo<&cP`>13K}L{(FWR{N270fZ_J<*B~WCN$Q|*%qU- z9>c2AL{M=vUb2hfzi&RKa&FZ#p5FI3r&W3nEuOd^`rZ+#@bJ0pE4niyjAVu*3CCQ5 zAaB*7l@l-2r4hnT;2N5!%&cBPCd~XI^oDc;7M6I@clV7J5cXzI?mA@ys6e~0y=y%7 z&2|0tEAcq%MCI5_%qL>2EoRM^RV7l{950!?Gxm`FT@PvL@|#^7>g6>|_QX79e3eqZ zDgXy-c@lbkzgAtZw#)%`?v2V7r=(zJ>KH&Yvo$2V|Mx+Csf|g$Dq{UrC6j`nRe7Ze z@#^Gc<<+|OT53_7rM-$x|yiT7q5x=0VYg9t-IS453LN zl+8eQuQ-OoJp20v6WF?#XO?h>By&R$rObWQ3D;I zPwK%1NQcnZ^L}(DDWb4M@$vD>`&f7JvK$zB({A$y5mX>|aMy|ge5_F3k?tL{^fYTc>81Uw7plC;ANb zJ)1Qg9vsrXJ@I($kqspp4ik=1_AbwLy6IsUp_wMZK2VK45UpoVlrXh!)4>d0sHJF3 z=mDs961+VyCI|hp-e?&__A*_Bl9evq-dL2G>2VaL&CR12G!&SUA$6)}v;lf-ms2g9 zi=~yOp1FL4Yg#w)=pH&YJ-6FJE_FDQw%DW5MBdU1e5U4Qb_V1;40xxK!Xg|hF+F>| z({{2E2SwMDJ>X6&#U(C*fdReOL#EbZ5XM3V4q&RTuEVZxG+B9ozfSCpxZntc}snZqurzN2|j1 zPVieotENfV#BOB~BDO;{1xGW2x$Sr?6b{So<}53G+=#`uxhralYu|I>FcDQ(p03Dz zw|of!^-TYMDOOgW>MlqT!;=#D5YH>JRT?DX!8l4Ekdr@%t&?;(n^y612`O9Za&ZIb z?UkqQ!L*B&;(}jg3t~4V>$h;S9zz?a>f6d`>G0{LLNak(Jk(s?2krdjx+NxLrzvxo zy!@H6Xu6$~vkey(3ACj#gAsmC8-936kmas^js_UbVgww0@N6C^oM8At9-yV^! z)=sW^^U`_vc5`+4@e@&d+Im*cEu?bCiK@QGmDIx}^oiiOYTS2B`Et!c>{fenm> zI!ov5-t!7pFJ8%uY>`tXJRW3WN z2bAlbi%QJDC5a|iC3_~ka#74|J|Sb~iR;jnj##5tnr@{*cEss|kv%?oy*;%xqx&_% zk-)%?8s1?J#ycLnMg^!EKh!#t4m!;^wosD3YFAz7lOi7=vWJsD#A}j_2$t7-5UZMd zs;gL_$<{-aLjFzn_#IVl(sbbhnf=fuYjBvDJx^YwJ)AUz9*(SplFkU|#8LOKv#|kw zB7xm2`Z(FI**u};LRLN2zkKZ-7q{ag@PU*buN z9Er46G^h}fTFT`X&j4KA%nD`1N`tHvFQ$90P)?jp&rxP}uA$ucoL7J$-KSvTX)Ot* zdybYZrG>ci65{!D}s_?+xSi6e2pD3D^1|zql9AE|e zZx*zZ+DW})L1?#uB0dicZ?8(Hr9i6Px60ulQbGxMn?!Wm^w~53k|F_h6YTgLSYE4v z9|of!Re5%gPhE6pZ{)SxhfH$egK+sME`oE=FOq%$h80fu812S}ctxOlmIK{_@I5Gv zFw;+#pMes!UPqOMr!MauJ6CSg+Qxy9SRx{G3K&K@>`}lWbA!yd^vAT=52ERrIjbjmPC@&rVjX4M=%=E>)iqtDslJ%r0l8ef+Dc{`s_R?Q~chnuY=OsSsl6 z9$xM+rNAyKNLSk9=@2Ary?D#Zo)=UOWoOm8VYT|z^6C#TJJ9H5K=s`Ai+kYdUeVCg z8cfH9dZIQ$-Ax5vvg!)9VcnLd&Sn$du3ha_op!V7k?GW_j?s$qXO%>49F3di+-Y4! z&7%K7%Hl50kdY6Q0CUrfl|00f42Zecf_v)zI6mL4<`a2v{o#!e%7_6hrkwi;#( z0bH_=Ovy8JbDiGgvzrn<`KnBLm{!~IT z0df=p!Ql@)dN`qE5EOxD782qu%&h-8=zJ?1rH!ZxeQ*CX@y{!?Qs7$l?e<$)hM`ym z&x2v*jt+$55hZ!)83sn8U(z=Go95x9=ov z({AVJXyeOSAdu)}mrNBt$Mg<;R&d2GAt(g77e|8%JoXw!X*}h%k)(>r zx%0)eDM-SUUn1x0iF=*u7YiNhe$yOo_RAvd?q=26KHBW;>}>3H_TS%8xD8gB z!-!0Ph`43>_3EmX!E@lHGmmcOw=Bi$1cL$k*{Q@&&4@!=TL9deM!x{6*j}yr|8#sn z`U?uJ8oqpi=geM-YO^ZVMD=0yxmC?OOR!AceuhD3b$r@>^mKW-{$OQ!Sv(|AU(tj1 z(`8v)=b+ZcO#IE>lPmxM;Gu7nfU+GOq5eir7;}6Dw0j zMSiJhM44Nvchouju5)-?<-fhXjonW5v>0GRTaFhbggA(1Cz zf_CJfx$PVyGN<{2PKCt^M@wavP>3n=U@{2aA`ByMAae}^6r+9KXsfdnkNT7Ya`46e z3zc8VwMc9El}Nl4%SE~e1-m42=T?S5a#$yBX7Y)@%|o2;J8#J^rL!^3Ks_J0a-@S| zIK{$jCd>5F&dLBC{R>Aj4}35Z!~oR)rluj*P=I&~Xjl}1fThVr^H zvs@rQ^JtoMY=XRj^^&vhS?O z#mm%^xc|v?zrKEaQmLNekz)GNejiZ2HVu@CW^(1r)q)@6wMn_?8tWxFB?9tSPvg*5 ziGj@q5y#?_^c3)(2Mg4?D4eExxM~>h@*&|F8edKm_}9BOnO<^PH~#yd#~aOGP9Ltd z+y9M>h%IOG2^MZZVmaq@f*GoH9Jb<8G?A>5K>SuF(_;qIjC_5#?F0qj&l)a^m@+kw z7P8+uaZUiLe$9&iIN0dE+unP--|PI)?d)NuE4L<|kfl3Ngi6!g!$*{)7IbLrC zRw0=SkL9i4X&rTTPCjpl<_hKFskX8Ah8bJ*=(*ER2e2kh4zzxg18&G!3SN1Vb6e>W zv6cbSvPh^&?gZ9YJ5h>;_57g=B_J|UwiUbuN=}KD)8nP!v{m6*S7}i}iXo;}8`Q&A z#h!}UnkN+i2OQF>oK&o-dP6dl0&8(QApv5gFR*S5BMXut8|%B!NAG442Oa{+WaSkI zCcV@58v37-^dtV;hr((7_@6INAG~Zmc=h6>eR8t$vYp7Au60kd z34^u$!j0$h&A12yZWt!q!yVi7V~-AQ__}gKboRQvzrWw_c8+EodbP3hN1dGZiKAVa#lQ=p~mYeN1%EgR`D+^ zMeZ&#rqK`e-fH#Y=j&=wv60tro(1Cz|N8N=Dczr>rKRc2Oh1M3Gv&|Fwl6NPa?`1z zgQ#CzG`Wi6fhkA7<|x+>L7%JU%Q?H~ru8r^Y`vuPC|RJif9)?&I=t`}DgDdE0;MO( zV1d$!zX&EtRLpP1rK3R!Y zTzDQjrNSc4bxVzc;!aY&o;&a_pYKm1hSfK3n0%b3YhYiZY8(r)?_2QzAT{r2C zA@RlJQE@puyfbLRd#CW@MGBW7T39$O9JVsZ$qi^UlV}?EO*l^Vr;?d*-TcYB^m23K zs+gazo5@Ag|8V79`pqHc>$9o^#k>kt(&=y*SkQTBii$czlb-)FPqFKZl7^9_4;^m5 zE~9e3=r2L>=;3o~+FPP|ItZdRJPDllL3P&q$!fO##6P#+Kf2-lxmTU>-m}FLy}xe4 zGe-~)`_-FD3}=@BWh>XpWZZu= z@4oj(Mxl~wIUZE}dUe%O(Gs(Q(cRqmz-Xp4!K}A@bGP-{t?a%|tod2+I*iWU+VT!} z-90?FHtYR$IT5hshLHkh2qO>A=DOPo}Ki-k{;G-&1J8fqa;%ZPz(I3TPQgX zn*5wfxuN?!H$u6k4$+%4+6vKj5XlH83+Vx-zYcO*Bx%{@G8U zl_a8e>BRvacS|UD0#$fV-j&X^hv(1N=+V*y9yMQ5uJs?92XPR^VAOMZAL@pdk&o#d_SiSCi;aS7u!*I^+!XsxI_DpVz5Q-yjnj6ZQxnfc%k&Uvg(eL&u45m5 zQHno)DC6SWL;z_3FLrMsR)_|XIO5~J}-lH`1bxs$o4QPzqEOaW<$lE@6 z$Fj~|2jOfS@?9|QU4Ygb^d}KS9lnswD?0z}5sEdiZyYnhC>Pv3mrEFWH(B$^={v{8 zcXxB|9nKYWq$Mg{3~`P;m8!CfhIY|z{Z&d2%N^lt3_Qs0j$+lF7d1Bc-~ zdXK zXea-!O)XU%FqS19(BrUJ?qpnQdOsGk~ow~ zR9&*NUTK*yr{&cjaNhvinjwd%a*^kF?8i9FNM0IJ4~qMX4P_#)q+WbHd8U{-fK2x{ z|Kkyb5ENWH!`w_&C4X8+44t>YsGOLB_L;05JkLf~W`zPst`~R6zUi+`2|trm_ba@=^lE zC0uv;5SzS$+=9JUX{e-#t0v>3tii!9S~-?aO);f-WxHl~OEyViUYpSfPbkr8$q@f? z?g#~rdc$#A$Yrv*7U0<8{NpyPExK?5NOA6`eAf?V5fa}Y9SE7`2L-r}Nl_b$NLYQ} zn<6Y{q;#x{rGoY21}=Le?~9$E$LM^L)Y(k+g_sR%0jnV-J5Z8Aud{rR;Os1(7;~3; zm?iBOnWM@dBe7+YDz2T0bW$-@W4={S9(pP(E#t3pr7^ei-qx(vRgPV?Z4Y%DW^*xn+!$DH&P78>^0v9H83F!0#Q;a^ z0{{o(q>bJmg7kMPzzJbYHS}=^w;JDuCo+BMqURt5^Pb{UFgy{2SupPVVtILu{tw*s zKi*iZG{nj`&z42)eRq>!iC>~IN8@S2_M~B?nykpNUDG90)+;$MB7>un=5`#SJ%$*c zwuBL$ZcE%)1z)C7?v;9JtvH%9XvyL4?(t7xu}PGua+rS@T3xHwDRghyQ4Vc<))h2Y zLo9^Yjf&x!F65!vD*#2ha`&86M4u?R+_TN9s~4eOZlPM&0Vt8C(!5|ah8l>P%nJZ< zd8V#c)(PfEkOUY8eh3U%8+-^x&1~L3OJ+0rb_@1$^4!b|Of77sXJ#=#4a;=x&UNWn zP-$K&lTiYdwI%a=yNl{^;FCbA@Gx(+s6D;4U}{GN(95 z)$;cW({ikVHWI8?%!wAaWJ^?@t2u^5yBJW)%L
  • RG=gF4tF{3ya5l2e2l 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 diff --git a/mailstream/database.sql b/mailstream/database.sql index be969ac7..1c6d168a 100644 --- a/mailstream/database.sql +++ b/mailstream/database.sql @@ -4,10 +4,10 @@ CREATE TABLE IF NOT EXISTS `mailstream_item` ( `contact-id` int(11) NOT NULL, `uri` char(255) NOT NULL, `message-id` char(255) NOT NULL, - `created` timestamp NOT NULL DEFAULT now()', + `created` timestamp NOT NULL DEFAULT now(), `completed` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `message-id` (`message-id`), KEY `created` (`created`), KEY `completed` (`completed`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATION=utf8_bin; +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; diff --git a/mailstream/mailstream.php b/mailstream/mailstream.php index 0ec6a668..061b0090 100644 --- a/mailstream/mailstream.php +++ b/mailstream/mailstream.php @@ -2,7 +2,7 @@ /** * Name: Mail Stream * Description: Mail all items coming into your network feed to an email address - * Version: 0.1 + * Version: 0.2 * Author: Matthew Exon */ @@ -74,29 +74,46 @@ function mailstream_generate_id($a, $uri) { } function mailstream_post_remote_hook(&$a, &$item) { - if (get_pconfig($item['uid'], 'mailstream', 'enabled') === 'on') { - if ($item['uid'] && $item['contact-id'] && $item['uri']) { - q("INSERT INTO `mailstream_item` (`uid`, `contact-id`, `uri`, `message-id`) " . - "VALUES (%d, '%s', '%s', '%s')", intval($item['uid']), - intval($item['contact-id']), dbesc($item['uri']), dbesc(mailstream_generate_id($a, $item['uri']))); - $r = q('SELECT * FROM `mailstream_item` WHERE `uid` = %d AND `contact-id` = %d AND `uri` = "%s"', intval($item['uid']), intval($item['contact-id']), dbesc($item['uri'])); - if (count($r) != 1) { - logger('mailstream_post_remote_hook: Unexpected number of items returned from mailstream_item', LOGGER_NORMAL); - return; - } - $ms_item = $r[0]; - logger('mailstream_post_remote_hook: created mailstream_item ' - . $ms_item['id'] . ' for item ' . $item['uri'] . ' ' - . $item['uid'] . ' ' . $item['contact-id'], LOGGER_DATA); - $r = q('SELECT * FROM `user` WHERE `uid` = %d', intval($item['uid'])); - if (count($r) != 1) { - logger('mailstream_post_remote_hook: Unexpected number of users returned', LOGGER_NORMAL); - return; - } - $user = $r[0]; - mailstream_send($a, $ms_item, $item, $user); - } + if (get_pconfig($item['uid'], 'mailstream', 'enabled') !== 'on') { + return; } + if (!$item['uid']) { + return; + } + if (!$item['contact-id']) { + return; + } + if (!$item['uri']) { + return; + } + + q("INSERT INTO `mailstream_item` (`uid`, `contact-id`, `uri`, `message-id`) " . + "VALUES (%d, '%s', '%s', '%s')", intval($item['uid']), + intval($item['contact-id']), dbesc($item['uri']), dbesc(mailstream_generate_id($a, $item['uri']))); + $r = q('SELECT * FROM `mailstream_item` WHERE `uid` = %d AND `contact-id` = %d AND `uri` = "%s"', intval($item['uid']), intval($item['contact-id']), dbesc($item['uri'])); + if (count($r) != 1) { + logger('mailstream_post_remote_hook: Unexpected number of items returned from mailstream_item', LOGGER_NORMAL); + return; + } + $ms_item = $r[0]; + logger('mailstream_post_remote_hook: created mailstream_item ' + . $ms_item['id'] . ' for item ' . $item['uri'] . ' ' + . $item['uid'] . ' ' . $item['contact-id'], LOGGER_DATA); + $user = mailstream_get_user($item['uid']); + if (!$user) { + logger('mailstream_post_remote_hook: no user ' . $item['uid'], LOGGER_NORMAL); + return; + } + mailstream_send($a, $ms_item, $item, $user); +} + +function mailstream_get_user($uid) { + $r = q('SELECT * FROM `user` WHERE `uid` = %d', intval($uid)); + if (count($r) != 1) { + logger('mailstream_post_remote_hook: Unexpected number of users returned', LOGGER_NORMAL); + return; + } + return $r[0]; } function mailstream_do_images($a, &$item, &$attachments) { @@ -183,12 +200,15 @@ function mailstream_send($a, $ms_item, $item, $user) { if ($frommail == "") { $frommail = 'friendica@localhost.local'; } - $email = get_pconfig($item['uid'], 'mailstream', 'address'); + $address = get_pconfig($item['uid'], 'mailstream', 'address'); + if (!$address) { + $address = $user['email']; + } $mail = new PHPmailer; try { $mail->XMailer = 'Friendica Mailstream Plugin'; $mail->SetFrom($frommail, $item['author-name']); - $mail->AddAddress($email, $user['username']); + $mail->AddAddress($address, $user['username']); $mail->MessageID = $ms_item['message-id']; $mail->Subject = mailstream_subject($item); if ($item['thr-parent'] != $item['uri']) { @@ -248,20 +268,28 @@ function mailstream_plugin_settings(&$a,&$s) { $enabled = get_pconfig(local_user(), 'mailstream', 'enabled'); $enabled_mu = ($enabled === 'on') ? ' checked="true"' : ''; $address = get_pconfig(local_user(), 'mailstream', 'address'); - $address_mu = $address ? (' value="' . $address . '"') : ''; $template = get_markup_template('settings.tpl', 'addon/mailstream/'); $s .= replace_macros($template, array( - '$submit' => t('Submit'), - '$address' => $address_mu, - '$address_caption' => t('Address:'), - '$enabled' => $enabled_mu, - '$enabled_caption' => t('Enabled:'))); + '$address' => array( + 'mailstream_address', + t('Email Address'), + $address, + t("Leave blank to use your account email address")), + '$enabled' => array( + 'mailstream_enabled', + t('Enabled'), + $enabled), + '$title' => t('Mail Stream Settings'), + '$submit' => t('Submit'))); } function mailstream_plugin_settings_post($a,$post) { if ($_POST['address'] != "") { set_pconfig(local_user(), 'mailstream', 'address', $_POST['address']); } + else { + del_pconfig(local_user(), 'mailstream', 'address'); + } if ($_POST['enabled']) { set_pconfig(local_user(), 'mailstream', 'enabled', $_POST['enabled']); } diff --git a/mailstream/view/settings.tpl b/mailstream/view/settings.tpl index 982bc40f..45b0511a 100644 --- a/mailstream/view/settings.tpl +++ b/mailstream/view/settings.tpl @@ -1,18 +1,6 @@
    -

    Mail Stream Settings

    - - - - - - - - - - - - - - -
    $enabled_caption
    $address_caption
    +

    $title

    +{{ inc field_input.tpl with $field=$address }}{{ endinc }} +{{ inc field_checkbox.tpl with $field=$enabled }}{{ endinc }} +
    diff --git a/mailstream/view/smarty3/settings.tpl b/mailstream/view/smarty3/settings.tpl index 79e7c2c8..8729b7b5 100644 --- a/mailstream/view/smarty3/settings.tpl +++ b/mailstream/view/smarty3/settings.tpl @@ -4,20 +4,8 @@ * *}}
    -

    Mail Stream Settings

    - - - - - - - - - - - - - - -
    {{$enabled_caption}}
    {{$address_caption}}
    +

    {{$title}}

    +{{include file="field_input.tpl" field=$address}} +{{include file="field_checkbox.tpl" field=$enabled}} +