From 59358077c74db1ab6657c9d39cc35172f71c30a7 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 8 Jan 2022 22:43:11 +0000 Subject: [PATCH 01/11] First support for user headers --- images/diaspora-banner.jpg | Bin 0 -> 85379 bytes images/friendica-banner.jpg | Bin 0 -> 93459 bytes src/Model/Contact.php | 32 ++++++- src/Model/Photo.php | 164 ++++++++++++++++++++++++---------- src/Model/User.php | 30 +++++++ src/Module/Photo.php | 6 ++ static/dbstructure.config.php | 2 +- update.php | 13 +++ 8 files changed, 196 insertions(+), 51 deletions(-) create mode 100644 images/diaspora-banner.jpg create mode 100644 images/friendica-banner.jpg diff --git a/images/diaspora-banner.jpg b/images/diaspora-banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b0df6a2fac2500e4c5001ec6cbd4b8661d8003cc GIT binary patch literal 85379 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≺b48wK9?w#XSx;)V@$Z>+~rZJ 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 literal 0 HcmV?d00001 diff --git a/images/friendica-banner.jpg b/images/friendica-banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b1d0fbf638b98ce8d156ccf2d2ba382088570a6 GIT binary patch literal 93459 zcma&Oc|c9w_c*-I>0WL(bR`v0r-VdBQKoY0K^Y=LNP|d1lQc=u;W0!~LeY3-iqfp4 zB&5(tNRuQ@QfZ`!ckOd|zMtQJ?|O9h-fQo@roHys!#Vf){qFY{GVhbXiru?o!$Iu84hr{KJ;BrTZ zkAOc3-iQ%AiBWvM1fM@jFp34is4miV1dNP#*8mmom?zd(>;9PWsbJmN3> ztw4Wj1fZ%I3EB`GQVfZK=7kgjq^}vfP(+u2ADh_aX^bd3UVk!%myT8gG8#cG%3sy4=m8l=tU{wir*g1bmLNlx~YZqz6Gets?dVl0))nH9UQP7M9!6deg z@gMK!lXhS|JYca5TMrfh#(!xF$Z{5omWdKDH3jUT3rrv84~_)IF@kecgdo(Q0Tx8~ zcLX>Lmjf1Ife!{*{dXkEJiuXUBtv7NMKl3%1V)Df#9uInj5LjAK%+l>VQf_Y#<5ti zO)%@PNQFYz5F2Gg))ciq#`=j08ad-HL7ZZuu_9$e7UKjPV?5gvMB_`rVnQQv8Y98a z|1+y99tMyVOMdk4q-5KGg9n44xB{{)3Ze-jsP(K92xh4ArLbwp7i=983V7*IV%Y+Q zk9aiL4LWc{vr^Owo)FoOEJI3A3x>cC0Fq{{K_b&+;p(waz)nmu1TYR3f`orTnnQ_{ zB6)1={EG*wYP6|PAX1o>_V^!aT6~8 z9~ff;2oa(=3@e8Kf-;RrRm3?;9+f8Xyt+or1v#FNI?!dps}JM zC_8&%?z}rfl;h#;cHai@XaxfLFci=m!aX=0mM$1kSS(f1SeZgO84(7!IXfPPjDS^D z0PQz|Z(uZp0}evE=R({7L%eCaQUUftA%q(18K58^i8Fu^f*zD;R5=U+Sf}(iCPD#} zQ=)0pV93(2@`H{v#$w@lBYvreuf$EhXf^i11PsQ81@EBQumBat*d{CoT*G1Df!X~5 zu%RKt2vwj4F=U>Q{y);RuGIUvI#|%rkvk`@6h+7X>x-ifI0gs>n+_EMsZu5^O+KPn zhDcxxQt?c|wVmmpp)oF*F&XY(&2@=**M0R4M z0*oXMM8IS&&_YLO4sZdwjR=kY_0YP3S00&4`XP!5J=?2PXWB^pq$!%zi3W?>9o+|ZbqR$JYKM@`nE8RLZL zuqF3)_HGuNUeTNO<3O{=>%j-!ljodj9zt7cEJ^}ifW66Q(2YX%Ne0h$FeiRU zPo>G#fkoAT=Gz^`#zhyx<3ea8V=K?!h>PS=v<}2zVLv8CHb=R3i{-2+xrT9KvC42JTsKbHwGE3&;N$?`!-!T?TVXfrs+=!I#GzA2RTEf7YvRy{bVj$&Q z)|(n>v2P2W()MjWXk>hE&tRqZox-H@yS<71U%S5#ZC(6hpNU^I>92x_eO2b>yWhOv zVaF1R_KUD6a4;oI-c$wg`-*DA5pPClFh><)KM#x!<_gJHttX3=a>ta_A2Xq(2R>qmxB6veb%|v{Xv08Q3dx?v$i2(Zf+E<3V~VCK z(WYqRVm63j2jP}zXD7XRR+{5_bCroj{Mh4<9A?K76hvjxkR3Q7G=d!qh{We1H5+Nz zVhWKI;kP=FAtm-9wAtREqNVRpuBY8cgxoB1!=^rIU&i)9gw;h;Ucrk3T2#c-GaXIp z!4Y3%POIu)Z(3Dfl*+ggOGz4>hjWabd0;C5k_Jmr+|{fYS15Ae@*>2M`G8QJd$-5% zuQev0kl@~gu8ZE*_a-UEbbj_8`p7^xfZOrO)Q*o;4E9F=2$<671Zx8|T*hk-modhU zBHB5_4*ePqbTG+ODXuYt2TKL1S|;QMr_#n2pr!k8uKnhkCd3`>7MUBQTh!Xva--(v z`J6sqrP!9Pj|UEceOB6gcDHzTTi45bwd|@39JuU zyg#5J<%nVp>mU%s0fUb^kN`y#OT$Agp)^Fui&G6n%$0I`gl8hRE%r#-q?H75};}(b; z3{XW9JhTsSg%A$&Qo=8mlT9%NM*q;vre`jCR&DjO@ z3c8;U`$ac(HGV&IaHB+}Lg4409qskeoxsmV(8Fkkw1iT*%~$w`+nEmb{gI}v)? z(pG-paEBVA5^tl}*(vmY@~E29k=xG!CZi|5RG5l1EWSP^@npGcnX9McJ@Mz2spv2 z1O-`=2B*QcL7UAVP!h}FFtU`Pbq8IvT68K}k^GXiB{f62uq0Xc4wMb%)>sWX{EG2s zHq0wMpg$Zru)MOOSLc0FsFHVC%#g%{FEk2iLbJ1~@hkzLVWx-|&{z;giROp|5sj0O zZ2%8GAq5VL2o-KH$*y3ixJ|=!tFn4NY=Vu!`-zl3-{G>PPdoPa*|_%G_4l?6^c*Sw zWzktyFjO1%x+&~MfAnGB!j2`{4iA-X^&T?W9M*Q^T*XPFuAkp0b}9^Op8q01T(d3Q zdrw+6(ictxGu}pQ2pBC2$cC(J}&g4C82c#2RwaaQHD5)4i5>nmbj%#tl`%_3Zh!!(QgShwGi1`??qA z)a~qRe0OMDnR|Wku;kQ3*?u=$p3GM_*L%|KXB7A=@O!aBc#FPYD;d1d zKK(X(@F2q_*EbQ)vj@uw2r!6=1JMjr8Yu!@1m-Z#c<%xrfb$_v{{XQbGSVyIV(%FP zR<%qh4Hin(CSx0u!P4As3IT1ue8LBRqrJaTSk1{TQ#*RU{K{<6^^5v3vFzf&0m%nV zAxA&?cr_mSY19`}ur8;kUbinrRqWc3V)VmYYHv>c+6~P^HYD@Ma1;z7L!X8~NR79p z@RZ}J(6EtE{$HU$Bn*Ty!;_%N?KFpt4-*c_dLV(t1w40Q6SV1{lmGPPj?h2YQ?K3m zu5eX&p;6bMyr$9V1ec_rvY&tUelB%s?S41-t<_KLjZv$<%=x}0l$+wBKF{8A;?=NX znRTTA?AE8CnE@9aaf!@bxyUw_FD;ZnAxN!Yqreozx-~Z< zx_;iVuN-_V8#egx+Kt^r#UaH~tIFBx_DR~kztK{-Zkh@KW6W-bBL(+Z5Y>Tc`~ox; z;yFp!G z@!!=P)VJPtv&hf)w!y`QVI8BOzJ>K^KRfnWCP}t6@2zx+vajeqp{cl8@8b_4@%oTv zN##DSwq<7NF!&L7j~Nko{0t)?C{q|sL-3Y_Pb9DbpiPNCaRmwl1rHohkP4qiEF*1H z(J5R&vf9^@Xzm;uktT&nQ5`yZX=dgn%{i0jbkii?#!GLr(RoL{rrv6k_yv_8Lx+zl-T#SXEe0F9cZ}SRu(o`e+?EnaSa?rnlV>e z8oRw(F-!^(kce0ZInn?gc-&Z{aTu60QUNp%MvtV?IA^adNO~ECMkSu#)0UTY>+-7| zz4w1DeB+(Ly*JM6%^dGSySBj^#my%rf^M#D8j|U~-|6P#ovH9JX1RyMq8oeTBWhZX zeEPO`{-K2vL+*11at0T!)lD$;HmVr(HHvBHLgLU*uBv6?TC!r;1)WyG*}1N>Mj$bMuf+*B&HRmD77GPg14d?PLEN z;AQ5ykvLhh7n_E;VhB%ungE{v0Y|hs=Rw?HZ7M}@81jf}I$}5sLE)vcav+$eP9wr= zgKK*}GiuDjyoNhLH(P2-zkdIrUbNa$IITD{!nSR2Q19oU$s1i4OQ-hW8y1VRKQH!M zC9i*4bF1>DY@ygfJ+EV}Uz>Ege2K3}cUDQkWsjs2N(8tWA9l%y}NblK3HpSb*fTyNmqt<=G@6O5+cJajVJsr8{6738ntpWgcB>yXam9b1)~kBTEQHW=JNdaRD6P~GknXauJsIPf#X0t5xv zq97KCuAFF#moGLy=<)Wf*+}PJLvo>q- zldCUhC-3in5O~Oa?BhMpO-%=)U1Vxr?|Zvh55~mz)68wwVJAbK%Aby$a`Wo;eZ7aW z7vC-P4m;m*MQC~LTj`o5CVKXf9=Q>xJ`QW9^+qO!-)-u{fe#LW!#2dGk9hS1PrdN) zKz)vj!^MM7z2-T{9_)Eob4&}#usKA+V0b;nCpdX9 zA`r6}s02cWU)<*;X@rN@JRK1pzi{#0i_tseo=$V!_i)l%e}3Ka(2VYwiF@A{oQDCj*p){}Ji>+FNB$K`(h=*^YPVRe8_3$g#X%qV@&S`JUh zr(xTQ2Z+60IQ~%1CF}Mht_j5`Q_@wElc( z_1!P_K@>AmsdF%AbNS!_1((A{YxRER%*|b!l-TC+u^)%l%wD+%woILJ??nCo*0$+Q2N3IEnS)u}J&==6P@oksOk+gI$ z#f1YKh|e=O$y|H6+Ox6MPxDL9ub}B8JHC46u65bgG|-+|WP3Jx(YGaf&waaI*1FXV z5ocq2Y+p)?hjy4poLN6#t8Mgt&i z$l-A>93_`jJkNAd{HN#gNkwbTR}8}n8GIZayCS_qX>sM(-!Z|4HVp~t|FUhQcvRB|onBS@l zG}{|4-4G1~N&5ehacAMZ{Rs7(J$sOWLrzfaf{_s&O*Js;0Md*xV|l)9jH&mU_ulci z@=?n|Z|7E;GzL-EQE05;>P{iLmWjCF`PdoO=~NHC4@?-amb@wKXzA_pD((A?qWWjV z4`y9%YmQm_X|O(~ow(4D-uJWCr)ERbkPY6>!~QaC7P4_mf6S;-0wGDBqS1IBmOun9 zso!#Gq^RG&7us^aq-n1ix60-?g)4>PG+(zW`djhh4Oh=)tSQu<-!RX~AFtvh?8F$Z zeLq}y9D|E5c!dNnZT@jM>?QPQtn=+kKxp3*qb6@J#oMqQ2H=B-tlw-Sa2PZt%h?$R zuDlU3xDEqRz5PqhlVZW;mBXI?6CZraccopWF2OU4Y<&DXxVcXttz9dlayjJCm+53(hF*0bbh-if!l zFau49f+cRNKgqzQBdAV~Pdl*C#jCV`Tj00rG}`wYfvnp!uP=Sa3IoFOzuZEZ8nUyA zy)qEUanymAQ{t4Unm}T&vK}lUdMkG&GGgx*EQ-w1(;1r+G^4e*WZRnjzMPRIQK7p% zvV2BPvzf6t=<2`KwzY!`clQowxW4^Fea%gDe%bmiI^y^T0~JLbkBqWa`F*t~ONKS( zFTB_PbM*(w`4vU|Mt)&&&D)T4%wqSq;uJ@0dh7s0INpE*5cXLTjVSn@0b+mhjMltT z^`^w-p=d-rDUtGDZ#bTM*7P2~OEh5GwDGY*Y?l)?>p87euq zrr68pOPNLU#EEY!%`P@>_3eEdv^~G0=aIfg`|{6v?UDDkPfCoC>lwB_m~A|;*x>3N zt-ke+MMfocb9sE8rqlUkwBCXd3P=Y0`Uq{Gz91q*(i)Hm2dqS zy{+m)#h`v-T3H{>3XSkl^{BM%c3TReWkQIQ4C2z`1geBq9t~~@2!;0Nuk8H2{pgH+ z*+k#A5w2yMPxWsvSLl9PUZ{QZgomW-r_Wjqb9)pL12nxpDU5t`v!ZPcQBoP;u`|Zd zRdP;E>9@oFjap}o){bv8y4Mr6*lm16o$5Ddx7f4$b7o#YU$vmLbe00~sy$Bm?$Ees z&yl*;lOL@2vDSXO{K8lLa1JTXHH&zSRMg|Z>|FTfYnCb6wK&_)<;Am(mhr1H8{4uX zZgsV!B#auPU#A%Gg+VM3E7n;B3%9$iLj+m}GYtOmp-Oxsj|UfqG+`{(nmcYj+T)P7 zXoNvu5b8+`TJ(Lu&TPGx)&tT_^76Jjf0{V6@pTEcOGq*uK4A4o!a{sZmop zZ@=WV1qRIvy)!y{^tvJy)@JAJ<_E1P?)&oSgWkLwDnqNHofSOdo2n5U$)W>>NJD@1 z$4Aj=INH(DNH#L#S5R0~``5=k54HPJkN!q$^b{X{AmHlj*Ao2?B6WzV?uG#qY;7O} z!-pJj*NkQgK`$)^1;Db5Mtsw*pMUa#yLV?EQPuRN_TQFYCG*IxYu|E}8Yf#iM+cs~ z)hkK0G7|F&_O#wRcyspP!v_V6ey-ixthm7QV5P48#pxw_adk!y_y1e4(0XBJN|*14 z?vi^CtTQ$D<}1v}E^OroSrm6^k1W-j7icj<|9H#Dkk4Naf<6-AyW9;|=7~FRL4sLG zng`y0G3{PQ&wxUGjDwzcP}GoMM(wi=6+N`MKWzJu;y37uyOLc4fOIN)OmwfB%&Y+QZ zdcEFlk6GY#_058^Wl!V=AKo2^c1wOC8If%<-TPGgB}uV1_k*71KDzT4%U>_Av`~0c zDmkUDVXo@=O4mh^k9rGD9NJTh2P_R5e&m$E2N!6<1G6or1}k48UNSPJVEI~MQn)rE z_1n*4>%(WgT87&Te9aSL)|OTu{AGI9`c7f-kI*rGPSY4HHj=VTMKjJQU}vL6*RW;; z#UQC?BDKc7TJXT=lJ9WUO(E+4<=j5{kZ;F3Q@!cqUN1OV@}T2%Td!V`|NiQIHTH$} zCy#qt=oOxiD~e7U*0hPw$PA5%+7xw|tv^um$@SoY`c>tH+51Bz;CO2rD&Cv4SI;f7OY4cgdpkWaX-y3^ za)QfQ_w36M*b}5D9rs+fd+^~6Aw?o|e$g!(WZ-Nn&QB)&4H>lMLWGs?aOSJQMP*Bp zUg@u`L6W*d562m`^+^6R=x2YW=LemiG`jC@Iu?2S_$nl@=}CqxPx=T233>mhAtMf- z$iO^9h-%yaZduydDn9bKw{v23iz?SW%W;ZylMXMTL#tIQV|RMf-29RD$CpQ^Zz}Ql z9%i!azS?Ac`|Y8lT_+~HhwO+-HZ^_iw%S<*M|@^g`?C zRU@a~#xF{Vb9aaHkn~d|xVCPo5{-5h3VWkQj8|CE_SGpj=2`8&z9IW(aFbQ+vv`v1 zt3k22?jJwOBKq?top`^b6${EOLLvBi9buqlNnZbV9ly1ocDc2;E6Vm!L{fX< zi(h3e1%+XL8@|{35{`p4Z?6FrvS}rnVX1%#{<&xQPXru<;h4b!DGkmNj5v8v;)Re$ zC`e#O!GQ_GmrZ|Oi%0|KEqspBMl@kgXRdb&v$!`i#=rfEQ{S)Ue^{c$MeRS;jr?Xm zj2h~CGAxIDyFc5O1HFXXc^nN58QAe60Re=8uN6GN2mrtq087C^t8sQ3ejsDg6k1Co z0|_k{2vy?ptIf2)@R763QP}8|2JL9j9YhOCdS1Ci_uka&im3G5jpiN>nilc0`9YNP z&tG?LD$-*7+(Uf~d`}AtC{hiRxCCT*c&`JH$bb+u&I#~?HG+Up#`$0h0tS!6prZ^z z49|2b^5-L^b>pipzft0-3M@9BTZZ^$ZoMU?G!nt$#`uyU2JRp9dnvJi5;Ps*!6?E zugR|33G3A~4Vfc|3Wh2rW9G7z>|G^8=9JQIWizBFf1xiL@EEw~kAChw98Z%p*UZZQ zG%aKIw3$>}ij=Rx=O|!Ff}joD=xK1b#07 zc7C`{o-l3vZueyHnU$Zf!3nqMWHEHhEsBkV7^=f;%U*4#`C(yA)@JYXKdYsmC4(t}H( zl=IA+zB5H91DzS@%0rv%m$@tP39eRo@(NeIn&Rp_pp8cBN6)A`PD9SjtV&s#kzTI2 zNI!e1s4E#3Szp&n>1@dpR%J^+G1P+QM=3RbiMH7fwH%s7X zTRDH>VkUXT0kqF*;^*SIcMJP0fDh-*p1E*Fl=J;UA29$25nKaz4B?2ALb8(~848-P zpK+~#NdSXrO5?J)GN+tI;uIp=f!{>wf0gXHQ!Q-H(#l4p9=dLESR&Fu~lPO+V5@@$gXO92+ZR(RcEGWc-FH?=-+CAVt zSPbzuU1Ep>wRXq1e#W#nn(bt`6tQ>Cf^rIqTR8daXgpM=Na8*+<)9USL@<#c_+t>@ z(~>xACxo;c%U#tOAxr`TsG4tLwNJGaP11-kHF~Q>8ePh^B9*03m=1y zaPUVuu+tTFK=3OTkSds9BN;FNp>P)x_~0fSa@GB?^eoyKqu~v6PC|3FKLdGb0cVQ} z45BnfLm05C!|ib-AP{NH0Y3!k00{vBeZD>HiKMq2t;xjDc!_C$M zp2r=#)S~3>SjYm9v&IoHC4dJ5B~{>oDAF_*fA)$UmjwzL!<7z)p;e$g#=ty7$~dE< zN?`=PD?n2Ih=2QbTzD`~dB%)Te_Xxnyeg1WzJVv$ZB`V7tXcubL&w3fag)D5!q<8z z7}u}>Z%`qHqZ|$TA$XFoPX`c9on`*;ku^m@a|AbuY=uM}2|7?{JmRutsA7SjNDe`< z7Q|%=hyiICWk`S(4_#nY61g%t3lUmJ2o3|4>Ik=l4@Bx<-vGl2K8^*(E0YLF0|Xa? ztZ^}dW`r;=wld^15S#`Cs|bySf;L+qy=}ndcfqsAz0qhlU21FGx0NM-><^%(ONAWB`9Egwr0hld^fgD^ia3KMx9-`sP%j582 zp0R4c`kEIEL^2hI12uoF!0nkB4&-qoWo&ao2G>G# z#reO#r5REA3YU57D5yLwu^=OrL0E41s%1T{fZ+#H0ALvStQ?*cHW7^*!OTP?!N+Cg zJa`fmY6RG4?iVv&gA zsM1iR;16IHpJyuaOYDQHz?p-`3#+0$%gz=X9zY}qc?wvtSqgE~&@>JOpA0~xzLnfH zqsZ#XMh2S+fCtl)M*M_lHHv&276T)OcdIxL{zA}@QostQ(giv)A4HO|_J9x};t95Z zZKM)3VUU!&e(ko}D$mH@=={O8(-?x43c;cQeUdgL49!13@?uNQLg)ej5dZ^_#||Wf zES8H!&T0xg26+IQeg3rrgNL5R7UGsH)O6<7t&+>BKWW2Z%>>K{xYBWP?0f&^qnm-S z+eMM>4DT95M0mF@jJ_EsDgY&RuJCPT@t1}GARxRK`jjdlR^Xtq3FCf^{va2hBvqm2qv1$@awsY%PU@kQk*wM>dkrBa3XWceZMz| zTOyt+X^0~e4MH<4J7j1KEI|wLgxnDSf)*M?;;bjY_bF&EkhpjbK1WE;gFJNk%Ligo zzbR}U9+~s4umvez&Wzp|LNmeT&74c0SpHV0*Zp;2M3{HNMm>-xsi%5S&)eCsCo z&+!qF(cg*?e6S-h=J7!x=*%$VL7+eEXu^;pC~!>-Ofm_RJwh&a-fM(5Du>hL{RnVr z#9Yd6Br*@|Nrm?subeK4s7`Wcy<{!KC{}wmBP(L z6d6z!@?c9Eo@*p5_{bV^m@yt* z3jUxih=9;!#mwF&UOrjB~`Fy{!`kN>-3bxA3r9|~|7&A7C@TW+IBMt*C z;Y2_~!dVXw5Cho2uQ`o6pBf{Lu%ZP0jd)~03LH>5h#zm?mL+HP42=}lkAQcXJx)Iy z)oac^eA%tlUl`udKbV=RFfZ2z(*R&ZKKH!1_0Z3|xh4%?%kN$fEN384Vx0v-MhJ~0 z%y%@Pa|VzDbMep&_^A`N8`QImGy7T=CDQ6+%MN6&W<_CFd%S-Ld)w?`*8`ijSN(%O z#G`ffKhLR5YwtPOIeD<&zNpc+-pA@-V@E=-`c9S{&=$=&$6cNZkuN9KPs^8!QacI* zfVYdVWrB48p*deuf=zh>anZ=&j{eBZ!ezPI9hcFz9~s!o0cyN_&?c=R!5x%U;7AH=ku^n3q0 z{6cz^^BKpxx$ZC`Xp`fYVy!WoOlb&%pI?{rj;>DJFC2J#0^Y|H*bR0gn3$OYC|j-3KqNdB}<8^>&~B|{*}Le zg8}8hMsO?jYSbD}iv8svdBlE}BX%GR{GwEg40tn4p_#914r=ee>pL%?G#H|No!zj> zw$V#L6xitEdH{-|;VC=M)0#OyJv>g}r0-=Z8UNwk&@a2Er(Qjg%k?{SRzL4Qv5?lP zw$u1vV3h=$ieUbSb#OPp@Z&asSD<$urQ23SRV<8_f9v`R;R!|1a+fTgK?X+{%?VXu zUOMk{dJkKD+{GZ+D8VRWpBGtEG|B>w0G3zorVc%d`%|N7q|>0EmE!g9VGk_5HO}d- zeyfI(ZSYOkjqD+3nnJ>Uoj3}}b^ zA3vsW3TsHr)OXog>HWL%-Sn-&t-%;6q8gDH3@$()!#vouR1KMxlW`A1Ycfj*G$Xny zzV!~?d^LC=Qtz$rZv;EJ>6@nO$l?wHml1g`IimN_k1e$BkrA9PKmt`;c2G&yA7bn6X+G$y<<8@olO1`h_C+Tdp&kRcz0(7FooHw&92Bs9R1v9me!4g}P<<~$s~0G!CTe|p zk`c^B{;^nvtU9;MzMT;o6)T$G2NelfQVh~@^)$)f?~{?ovStkcZB>sT6em!-bJ7E@ zP7spId1q+@;sf9tY@PQ)u&R*3WvniZxs$6dZ`f#x@NZ%YoOfB;>z6Jvb-pC?agI zTwEBH8u%IrEY5IU_pkC;CWIW8YJ8Q~`q%I=90rRsi_JAx>$?!q87E#)^`!N+DGWFVT8U~TMk)Tr?HPIo>hUK4D6QK++I9w2Ev zCSYV5G)DmBDP3Rf!0Q373t=Si(H~xrU#=T+4Gb_iQn;nI6}KUd2P_o`M>kLN4G&oU zaFypV8b;`yXK7_Fo!{b~YsHXxBD&C)J#{j;7iI*noXC}DPcOI~a$7ndP#o6BgkUrn zbST3wCLI^-s!QI1ulw=#5y?N?y!id)Cr@Ly+HPoR6VSK~e7v$7t*CG-4$oe$z5_HB zkY{o)zo@+%apc8g1{1~iuq@!|#o!z$0!F?h<{{^Cl*R}O{$T$M)qhz_oO7FbFoV?) zrpld%HzS$ROCqk(Kmulkf+s>%yDU!|9KZ4BmWfTu)@I3OBdO28`mr}Id=lkzYe0-D0@@JIRZrBTgmTtH;`-&Smq7IM%ONf}I( z#H_$xh-hWkp~o(1Tij%IBS48|tF z@JBk}#o!{lw*^0>Syo~$@&}sSGXO8Zn+kkJ#sWAUf@*9RXwPoNa0vjm9;4$uK`RU3$jSU|CkMM2hyL^*Xefe+f+0htu^o0 zVEgcE4J+&Vd+TkQ+<4TFL-w|A-kLfy<&v~?!_L-7zj{3I-u%|ocLtj zWbx|5yKVotj&8d4HcX+;c1}s;&Q$07i*;fK4kS6dUixNja^YFPzxjpM3rl6-$qy5I$FQturFK??;==(zTH(Grn z5MK<|C;VLjrPx`5LaTnb!g)me)Jmc-wg`xA&bKjrc8|A8kgbJu`Z~FXi&MihIGU zGz{xfvYJ+Y);&4l>UqnpZPwn0M!XGS#18p-cn0&`c)bPL7yjK?x!JT&&q2s`@eE^m&Pi_fqct`?%7fswL2SuVdi;F-jiNy07vp z%St7y3Q}Qjc)f{eAcwu;z{1ag1MQG#qNITeL3avxWqJBbN|vaN&4q) zXBMOttk62~Ud|#te0qIVdf}}7qqRJT<%4)*DpRAMr`)YQAXn?9)3V@>>;gtQbKJ^J z>ZP*byQVZ}d??&A<-C)!#1+0r!qgSJ2fh;30~J*QHTtHkM4(6iv!{hdjrbB79HXIyfs-;(9k+HNnG%D|la@=V}+v@5untPYO40`oZreuP& zZk0}cWXpo;C*!V%$VEsWw9-3K-`#BZ%I^FAs}5T3F3!OgvO*-^a?JP@Z_$aujH~Zj zYwmsZv7a$%q|t%|=M6JopLf<#{cx)C`a=S*H+E)4QjY& z`a`Cm{D6;f*6Gk@)vzDa;*ykt+xMK6eo$<&b%M`%r4pywp5BEsEn2Ui>Rz(yxhLIe z?vZmg;k}ODU4^H!H+JZc8PW5!XjVmyXQzhTj|fFO`+W({3#wDf#izZfdoD5OU5$gB z&wU>;{-bRXKJo3Yvu1RSayaGsPJgbl@bu(H+ozH#v!vxE|2^ZU)Gf1Yz}(WI$IWk@&?SoQYm2OZ^C}|4!>|K_zq@&%v+9b#EK-_@R z(VKg|?i+sbOW*vC+k!=#tgNl9p2hBQ4;ZgLwbN&_KwP}k?R4PTb6-<329mtAUk*(U z{*4?g-hN$PczV&h1BDgazXtydI@KUmsIq?f2Dxt$7HdKST^(XW<)3MO-E2DlZeC5J zOX3*K(UZd;KKSe~{hQ7|!*`sIZ~rhlMDk{G9@s%j@jh9)woSVAVIJcZjTz zF>4qVm9plA#c@}^Sx+`kj5_xlxtK4r{dn%5FSGt>&v#fA;8YzUw$dX!L{@vdTH>~n zbuW%SK_kS3vI2|XD5v(6R~c!o)c^(dOmIolak7J&pPDw#MVnoPX3jK zYo%vH{qk<>B|*vmw(O~QRvVr&TBB|GhRCmpT-(a1bx-#Ps$JDon;+iy_HJx*NAk^W zwc`iFRJU1j6;{mY@Yy+}*`Ano)G?!Mx!mb+RYMPl%~V6$guqP4i2`1!MaJ7Ta|WcA zWS?^SwpVkhA(1GU-9s}=^O2P^ZI3hS7cS{ti^ z&&91(`+2J3n$O+1H5X6)Mvo>0q^n!zJEi4Bm--$)SkQ4-`h^$wZoI-by`M^{+ZN|P zb#gl5=e9j-PNjOrgU(1FMTeK^j~jk?$D9w(dEV&c@*`f>fwM(UDTtFI7qMvOsKcA( zFM8TfQr9wH6fnsyJ>y;RjhX3ARZ}}UT_pFoU4D?6lT(?le$^u<>glnwtBucg-P>=z zcoTfpx4yJryW4SgsLPXPr;?Mav?E&o(L7)vKc&M#)!cSx!=c&b#){ZopZrl5peQFYRNzE$V@pz~* z_FQ*ZXMV=Fdv3ZqI^L@$IBGhj4(2$$33IUc=U3v>hv&|Bc1!R3&ihq&^50Q4Di`KR ztqAHmYa+3ALqel!)w73VHqHu8J9T(2Z<%0Opz7l{FK33@4SSehoHpa-3Zs=ByxVu? zUDw@M;jgn|V6f&&hTNID=xJ5)BieT6f1CQH_mj`Uh3_ptbatlI)gO{S^RRK?&NVBC z#LlquldDHhpB_d!x0ddh`dsH%bLCk7FVB9Xt0BpG#-5%DzW2_=IR2V?)4tI1#G1m9 zZtl(VDkr~fP?(Z7ac|zVt}$OP1thlHZ+)US)AhUc>!1kr(6lF3mR35`YU^!x-pj9k zx`#t!vJ2eO4;x2 zo6nT(f49v#^@UvWf#^5QF`9Mj-I~5^(MYL#;xlNjQ5-asbw*}W*VOTm3D3V-)qJoj z6LWUm^3$yDdq?f^_0>PJ?RQ=tb?0LKJ)azf<*z0?MHRV)WI5f5*{$GX-I@K_+H}>#IM<_;KN9uHJO% zq|@7~+*bC^^gB>vS-SGA#SXLfO56Z}TsBjl&WtcxAz!m?6(bfap2 zqtxb$?`@}g$rR-jEbp8NRUzSf>_f|D`t2&zD+}qGb1wUoRkN0^E2ey*V#VSd&*7T2 z{-3x-X;rJS%z|8Y{R?MPnWlvhdrDAh(2Wj|mM0g~RXj3UTkrG5a`| zY{xFkyhr^~`$$h78*f&-(dz{4^d1}u>a6ztNB^hWg071lHR?9QXPXW`br0xSJ$B`D z+hMLtFS5W)T4ewQf0oj1?Ja% zQXI1X`m9mIaa#AN9~m)Y^v%D0sIh3O-PU)f@pIYGr-in^QQIx}Evs$T>h*iP#v7gT zt7|ph;a;(I>r)5k?8Iq{#(#8Fzk2kI*O?3Hrul7lX?IV*t@GMw;yE*47v!8jXkS-T z@+-AdbBGR&DSc3(_#2t*k}vYOwsu|7^?WPc?)$DeYMSc2Y2l_PemA|gXEZoNSv)wnlPoM4P&+lx>Nk83^ z-TA)qLC=zWo2#Gg`Z_N!=ozxj4)1w2GrB9=XXm+|B_&5YzWqkq{9JX1e#~rG{-n9? zx}wg8)n)tYYj*nWEz+z`EgDEj^$DoGl72tRFaG%q$E59!uFt15bgWJYe6~Z=ao*X2 zfn|y=yA*DmDlbYfEz$niaVEPWd&8{pZx;?#?%cHbyza2|3X?q^XwyB*sAt1#XRaz< zzP#M=#Cz}B(wbtuRW(`ug$^~(w1#%6e72hl)XYTGzLvyK@jZJoQ>#bvbF;a3{FC26uP&jk~+M zLvVL@+qk#x6F)tg#Xvvg*bgc`J+JH%C2%M2y`0yD?6T?ps^&!0>sS2x41qJlJV>|6YK5if{W+LUO55 z85Z{W+c0xteZrR~_w^x4B5ou}*$f;fsKie0Z#)9IVM#Lx48gZc`}%hdbMC{$ij?Uc zlXk_$;A+`TgxSfVy01HqLmaoOr=>aO$(;$CHy)j3MlU)i z>#|#_D_{0vNnmQA%PDGr#K8|P^PQ_5)%Q|>@O$I;2F)YWP+=FS%egBXyyOYD;9iH@ zo21__b@n5mfvWa=hPu<`iTm@z?^gPfgssf?)oC{L8?IOy=~&L^>o@n;=N;q+1E=e) zMA312tNtf;8V*ug86d7{xn{XDnJ;Az&?O}21E`ji>Ed#ihqq>*L!wRdp}*3#7(PF68p5 zr`8e#B<@0i8^oJu;D(@8ID>$3&AsJYd`2Zvtf+3YW>* z)D5T)ELk3|Ijf8dt!D@KV4t{J4LMgodhd_tO-f_@cqumLo%d60zxy(CP^Y_Z+~2(M z+HcpSg1Q)aG6|Sb?{926OAZIGh0E7`*=P~P5_3gY6yhCN`E+8xX8j^k_hZTQWS)8- z9`fHeZhRke@G&Wa6DTuKI8Dy}UeoNSlgm4;c*Y2d&Zlcn_%hjJlehSR{bk+?WqR&| zzAv%7!3t$2O~xfW2GWZ?%B&UC7@+QwKb39q6#}`3RJWQ^otbvL{n}f$7b|^vnUOr1 zVqfHJ5n?@J^5=I3{j(LrqOX1&YbR97v;~lNPH$=XQm@mzdetHcl<6qkCbjAKCNzq$u)KPh=Bxr%i(l9Lcasd-P1C_R6mMbD@|#{bMta!<7V}36AFtlYxmW2y zu1+t=j#+v*76ebEN(Xe4o=Vf?di`ijqk?VGrTg-CpxcKwt!Zjn|AUl{bkwf7@|uar z+bgr}sA+jQ(%%FQzxptY8^7KSmEQUHV%T|AbuYJ&9gUxEqPZMCKH3IMp$pT!CY`T2 z-I=jXOD{|?PC1^Rx_mBZUthhMAJQM2Zvr)$l)#-Sq&8j}{E;Covdl%8XtAYqJId_f z$uwI_yfbs19$T2GU3SFrIk}qwCv?9?LVlZ!mvxay3CVyY02+x-c0$xn2tqC4mQ2E}y`MO~goH zQF6M6Wg)Ml$D-F~=KE$38X0_Ssj*KUTgY^`4Osk_$3q*@wqfayO#16xO~9kpi#PYY z<6#}`pItmo@+_Xbymw!%G?{OPM_0=v6iWX>z_E5etG|zHmS(ntmxGz{m4`PONzjFa zt%MSc5@f$+A`qnRjGEZnnq4R5b6z~38s>;pZ6e%Q@LaC%bWQ`))AlV~v|ulMF@P(D_d*Nye6|X- zIxjVL#4XVpQT$qhNmus5HEwAcr#v2A-Gl2JT@S~U?su529P=9&J?-BfbBH&XZ-2#2x9BPz}11fpL(V% z9(g!DkycvK4tzOGm@z|Cq+W=Ae)f%fuys@sY=e(+|C=%gb(PSz$EE)3vkxQ{HBcoe6n|y758m zlnt1X*8taKW*{OA!5$vlX;zf{juSCtcp&Si7ChtnkoGpodV7YwOFJ)2HIpZ+zd_7p zSYLZSXuy4ocIm~UptWs`{=3}}J?p?)5uZMXZs^1fe~0O+BbTI()2||%s$XTJCB7;q z&Zq`DPL15MHrREHM_ui^pul5gbOVhKoL^7C=LJTg0VuG$~Z9}f7RpT(9nLgj58!1QG!7PfWJO^OKgVV1yX3rF*^mOR3%l+T;j^XHv)hiD%i zG64KET}0Vicd@eUJT{Yl8S!%a{(%n7@fB{HXwG}QJnkH}+Yb7A2Bz1`*w1fX!So#D zICuQJ6!bssj#!b`8@2R55M%N32&R5+gkf{Nx^(c6l>@1-q37~#f>&WBv38KR<$xRM zG&vo8NBDy+17)o*wz2K+`LrcqzNUqyDc1VTHqFkhBlw8>@h8llrVj&EdIWSub`KohUmUO;{opETInRt#q88A%ZOr*2uADVJJW=4D2 zujX~ByLb?k*n2p2?wuiQf>ysfH)7j1UQc*H+k*R4#+dEmWH#D8xW|0HDX^_6L_xq9J3h3L4nkyTB7`DN3K(Ngd`&-ugl>bqmi$O=- z#`6F3gcf|?MEA8_a;&%l112U{T=ME;dk8*qV9|dGh~Ex%jDCr3dMhb?Nli{deEXSL zEcsH%2}X*~C=m<&(lVjo@!9yXnB;N16c)d;(4{SQdT|kE^icJ3hBaMzqEZ9k_TMIR z#_huUhpbcF^<%a_U5YV5k7E8~qboZcJro7YLmpV4hR)L^ZXG(aV<*~#cTg03OxHU; zkvC(Qs6CMnqgoLjWb`wTZ6srhp@LT{yL4_Xb|(#Em&7)*MG;Bzuq#SRzE6>P(ADNoZj&_sIZbhGZvXRC zJo<$@#G40JbiH(;;043sz(*G!BMF)=6k3B|AZmDb@*7S z&lM-%_?jPTLZ2aYq855L%TO733TWGG>B0$>Ya=1WjpM9`c1WdAbB2Ic;F? zb*gx&l2AYg0ZH`OLGWc*^3J&gc)IyG4#m1_Uga*~*pPDSQ}(eoIi)S-Y3Mk&=92QC zIW*T;f&3*ZEmI863}3z_mL#f9Y0vMS$oleTD++6mNStCRQ3_`2imkOPy^z};3IU)& zwg&5396?T1*(D92DdGScMhd~>{zNr#Pkpep$M@@4ha(D2{?FEIeeBk2Um7}pKK^}8m19#;#s?+Py#Eq zBRhX<95jmTmd4?l(CdjBeKyuehPCi~rNNW*e3n9U;m|6}%hMq9EnsVJoK#vHEDfE@ zhhF}cQHyxDhxkXlyG>&zUGk50^NWGl3y$>&EPKa< z9v3&*rzK#r&jPWiR44OuEtzS(CxkTzy6_>C8WAvAtLx+#%ZjW+>sQDpl!R|G5Xlp( zPbY}(!(a`_$V!HSj>NeEgsb0?f83?=A01aL4@SOqN^khW%VWAxMr1t;(S~+NY!uP# zY^^=JHw?Mz=8PcG5o#al4lCyomt~CghwUfuTsGf9`@Mb^Lv$A;a9vrYv4X+?>pSd- z8bz@(S3Q1|>x9FOr4@PW;wj+VF@pf9Y=uva_gjR3imv>0mvD^;7LPkBf~kA8|7b(V zIG`we`sceH%WMX5bLZ$pK=^M@Q=g2hQH31vKUAg-udLz)I_?a;H-khS&)R+^D({lM zVHkz(=6*E|JiOPD*Qw_UA;b(J&?+_|GdJ69g$RDh`sqQGIRl!|qLcEi`TPSTryNC@ zn8x&I-#Pb|vtKMAF3cmN)ameEm+G{WyCimL6T~b2XsG`^7wn#t)i=ANHez`uOC$&6 z$j+hmR2~65yTyP_I;4nCq+qX(1foqk^nO(y)0KAyxj~+h-W6|-Z;NTM;ZV3tl*ZH- z-?Z!%hob&r@G^F)YP;+4^CLh%=R$zHqW_)YH=X!rfulvK z50@q*5^=-sh86{|_!Egsimu|9y-@9T4#}PwR^Ml?P%?SGlAi7+F7A0a>7A9c7H;r| zzo3>;aqLUt0(FiicjZ#q2IXAjqAX*4r(Zb1uX9Mm?qpB7k zp00N1={)zA#peOD2@YP{1Rn(u9V9D;w15FN>d1FN&d?|UQ({Xb2uym{Ya|Tb>dPRT z&Cl#UUU~zqY1vfiiM^3Fvbh_k_)9s{y3=tT?~%rnmT;sMc;oQq5^v^1Se#zCPvIE-Sl)9BT{_<#A*13YRlFEtx#rPxJo% z_&&1GPp7)>&>=9v-sDBeMIk=L+j?tDHu6qYg6L#NiXn%w+6ojRP4$yY%{z+uPtn9e z9fk++C;2ZMB!+ZOR^6#Ht*^if=B6zyQ`>5cBx$mDIdMs#Q!DhXZ<>_cwpzFHRyIU( zl4C>jgIX~tgF3^(BJ)oEFyLPgKIDHM`~|xrV0%tgx*aOv4)nFu<1-Qt;TGFJZs6kZ z^78VE{-Ppa(eTbre1+96&52Xj0o|6rrB_Ast9>4Ap4X@{-g?&w7PWYbZbWPlFNp2F z3pZjmc4}j(lCtOw>jHKw9askWRRe4vZt)kQe6#8i>PiL#GCWg6trZn{(5CgVnFM$u zO4=mOr^;i95y!WGw|4IyJyC261iR1siHnbS0I+Be)$Z%53218ADybIuDsv$DzXK*a z(pioG4>0&}7Xq6>ec9?~U=-s6_!LH=X#VQTv)an9D$2Zg6+55Q@Z_f*TI?6gvalRG zWDe*OYDFrFb$+?nT&(Q3+twb1iYt7jUXw?q=KfqYg7U^MK3>sLy(6IBg7*yiPUgPn z7IQ(i4vh#OsHaAVG?9IXkL3L=R-s8*SAYyZXkRin_GNK@9okpwjJB}Ee*RToU1w-g zY5s`O$V!kbQD7sKYPv=ckn~pb^=9Qp6tzn4rr9=NrsWp7wpcF4%`W>9UHqw|=!c6x zd-AIC-Ue+%Ss*1#7IzD}$Vo22C=ZW%DBI!LG$>uQ+4p1R(>RjH=yS!RALEC(%ObOC z89T8dk?l|A^lQ^FD}E{X_JHvYRD4Q+pSv8&iYZ-nNU=sfieK_)naUzme3Xj%5Nzo2 zy1l-r+K?;8Pj10BzaB$7L*)tj9hM~pqRTb7^+ZC-F*FukXhVha<*yQQgBBecMWZ&S zcUu+}&6M%TaGh(-ZsS3L?wtEEej)hE9c!+07Et^yU&gVB)mHSmOfA0#3i!xFhYSDY zjfW!pMVl=VZZ+$PI*hcUP~%=2UDg42S}W86SyXhO8x?0T7C<4%D0;dR_d_XepuMuV zTv8}3{AUVBJaOfb?z-r#<25p2CLScO#LuYOyYkt>iUpGL9Sqbp-@1%iZ_ z3?O6k%dPykL z$<4*d&D2XkKV(%|r_E_G@*+3eiSh%YZ&vbSbqeaf$C;xQ8V7PS7`*O_c%y_diJ7h{}(WXkh>4|27oG`I3iDe1DuL$0RVP$p@G7Mdx$?&3wDS&EQWiS zI)y*U8{C}Eb=$#pLH}wdD_`S?Ee_;sVC#k#_rczC@sA{r1ggJ=o-16i8|0lv#6ok*zL3r9shi^g2;hd z1MsD}bNR)C2z0_HX?8+J@XG1KGZvJmATp4g`(O_yCdWr+hxw5!tD1crsA|*NmYvbk z(%Kc3HSZ&%PF7Y`=i?a(>QNHO$6i~kL3(uU+X%P@j5Lc5232hex5O6AKD%6g;uY2% z9arYfrohs2OY{<0Cqml(5J`{l&p-1m33faDe(*6L#9b59G6ED0kyjmdEHW*?oh17d3`8*3O>2E8i>t2A=>1_Wy}ZWo6Z02-JJE|4mOkQF%wI z8=XGsip~{(A-)kaijN(11J_X4J#UG#7DUKaZ^{*JDQVBH@-2cEM@EAd@;QK&FX@~~ z0GE7@&l~O+9<7jUN1$J^;cJh-f%(86m6dg^d?)!f+#0lH&AOF&OxT=5U;P z^Pxw3p9XCQivnO-Xn8}LTqwa5f>3GqYkNLYW+y;MAa8e!Ks9JqOoQQL%?s2%0PHKN z7yPCw{5cr)WBIPYlcPm!xF{Z<5M>M{WYx?p)OI}&#-?%8avX9U$2EH)4dF&IZ6O`^+`WJlb7jlCY8&3#MQ*n;`pF6^^-n!kF1hkLmjS{Y#tsz;|}10`<7pQI6k`Hoc0ub~7zAb8&?>L9^AQ|Td){Z;vGFfU=)Zevyd#DY8OHs(Wphq&W$4L-EHmAeI*mE)R5q|| z@$~Mh1pEqXQ+F}`0Pa`got+>Ew9NbC_-N>J*dtqb6@Fd%1nU0sbF+zH+2DSIpcYUw zpwR_NWp^{B&eF^!gtved*~H5CjzqrICTob7uNP5g^+g?s*TQF%p@kiZK~F0lU%Xr+ zS-V&krA4MVm&L((d@k@lsH}kPQ^OkoF0Z*bW^)0yG-GU1YKuSmwL3Q`^uuzw%4v53!XAM68=(E8AMtUefrm}g7Yg}tr{No;_$ZbfV-|BB z%7@@R-kh8)C1peCQ38cqv1Z>qFLBq(TC*w5SMrrF*PDa-E^8hXRm+bq9u>LQX_ zd%l(vU9R_%5vd(3yQOQ^Rl*4?Wl)ow2hM#qu+P2ux>5EFUtBDJDNr8rX!ZHM(_^SN z*_Y9zSOE3y-civ!vA1|VxaK~=5ASXoi%b4l@$G>@(Kyh@8PGTV((Bht6Bh2*?=aF< z%6o*v*|W$@w10WtYjB&%j^fBmk=Ch`?~qsWvLJJ~DS|& zY=(&uTfW4qe7URQOX+)&*v#{BfBtpRTdTsRF`GvlP|E)@4ioo>fy3@w>m;>n;5&bB zGzn(r_3*-F;vx^{@p|LpXvn8e9XF7D1pYj>h5=V%6Qs5w zK5n75KXoOrAVkcX<&7ur&pb?=y^I z))Z_uUcwZoi9zSdCtmUMSjuuc?o2K|p=8$BxARXfSpC{$m@E=BU)yz~r20Rfy{fY; zJW)%67F+ItO3H(y2AJr$a3>fm{D%BgBo&|JAIl@3P?|9xRK8+-EvW)?KXvxq%_;tc zpcDMhY=?vvguEjg`yJm9^9N(2hQ+vT_+82GYJE{F4N?CtHhtpwtQ=#QvZx7|)>i?s+{w#hghH@#h)@5u}?G#4m3og15}(bOvvQxg&^g5y)73b+jiDqYXf+w)Sgw-Z3WYByWPGb6HVusSurAbC@QS1K&9)J3v|1ZP^ z;rCK3obkI{HJkYOD192gNvV>s0F z#HH?D_=lI!ANDQ$wz)P!2Pv-64K>HBOPva>4jFQ0i#vZ+5dnH#F*L*htoaQIeV`R1 z>!ux*4ZqTY`hA;I!eYRv!RyJVBBUXlkPtR2)8Qo^c3sC;GkFPT-VUW;dxQH1o12k# zh7-oD&}%63)92s%C{xWEk&Xe%(?Mq%FQz4&72q=^gHRjOx7?0;6??X)=tA8dbcSB6Tq6FDpO>(`%AWaFA-bc z{f+G&f98fkr%6qy)@#wzs|99b!&@1xnZ=Wwn`71cuE)Dd{9Ajg;|qxQ{7Ece(Qq&C zx2~i`BqZfqsF1s|u|!ZiRf1hxcX4YpM>KVtUoSeC?5sTErSv>LOTYcOuD!3i$OFHX zq;+1c$q+@)F{+9o+M85|#>+w@Vc#^VGBk?Ed2lMBWe?Jt9n(daE1+wYi1K_B;II*D zP9ImlZdc1kynB6-4sA7fOx;TEPB!7Ye)p#s9h%%W(sZnGZ&hwJL5Q?M3uh-JWQ-iX zw;|6G5A~qOXGr~xN-CJ;pp;ka5o@H9R3+N%9ZFxsyW?je48Smd6(S^vmw3E6+T~-oY}GEg$Q-bAix=+Ajk)u80(q~;DuP#QkG2d@0y=wY;WP(mn>%dQi&N` zarB~KZPSzLc7e$r-T_COlt;a-x(A<=%6uy>c9U~>FwP23O6GNYc)&YkrUWshI+332 z)y<*X35y120_!_R1kN&=Ci9^;2t5I3Wcg-Z5<+IoZb5>!BZFE17|0<7?~1++f!xa8 z@~HE;(P)Yy%Dnn@PrjM);q@AeS+Z7>@?J75b#klPmIE<)^Xka4dex&}i;Db=C--)k zT6wf>0^`P|7LjZHMicMY`Fk`aV;9=Z*W!IR2`FS(q^gtQ74XN%GwX`Y_PN&$ zOdb807jgGnFfXq3RwmaI#4Vy|+06qB6(hJF$6oR}!@n13hA#1#fOUHE+Mg%R{Bf-n z#_#gLa|_bU2~H#CCc!;1Q^DT}X=S*Ee*!hK;g5cq5t!&35k#b$X~p%wZAhKQ!+sw0 z43Ot$8VMMZdPMr^*DfgBEMQUj z^d!V{`gz<_pKfpb% ztU|VWphCH}3w4CjDwWU*A@1)L{n7I4Ro_y`!Axo={T$DXaQNuPPPD|7*|M2B3k=Sv zZ&c;ImKo)P3+66aXd$o_5<(&<^76!xt}wLI7EKbd!GNKo_Bq!Z?4(dMsm$o{8viKB z(4tXlb!CboSWB$TQAtZHR8n#m$pI^sE8MUqLb|ZGms=_^PrFB!ock(;AzbL6*Isp4 z<*fpjJVk{JA@im#gE{hGR2)eR0K53sIIAt}3Q%Z;+R-Z|Z=Hm|dap#%T$_w*Wfg~X zrS+>eIh;b~kd-3pD+iRVU9<^5mB6Uw3PGp8X(`$==BjuDztd0K)kR$`^j`EK0*llk z613jZDz>o?VXahtD%SNoS;nNdDOQ--ZIzlaTrz16`o%hjuI=5ks~POcH){#3F$H`f zAC3(L44Lb|H+7*ore33~Nt23D&{Q&X74bT)w9&az@y?qINzx_Xo?^>XUrM`h!$ z1I>5G3PjX*de*hWWO?MsppWqJZnOGTNxbofm;zU6+ndV@%&EAYB;#7=74^mvvmcfJ zLcC%hgfd?KX)&T1Q}=X1e)W=4IQz+pQq8LuD%C2`D(|?K8jd8l0r4pdi2@;nx>Ou4 z0qzSAn`ouBNK)ACvX-FOccdfi3d`nFm{eo0LCfqek6juY=TjWI6bfMdQ%cF!83~70O3ducsWwB1eh*s^_XIO{A#l@_ zZouk`h=_|?$0VbsBb>Fi)F%-yVH76yz-viVe$+pF(DUDo(Y*`J!rzs{R8Y{hgHp8$ zH%v~^w93mBq{V@{99;zz_FFJxZtOwjB503-`0eX5I~ ze(sR+S)gEg$>@&eiqu-Z0N!H%LUdyE-cadr+5AKS&=6t|=nBd814-y-oye;mq-A76 zUYp1j2#5F*L}C}VCbQ*8Jj93SD=#WL6PZt9NOP_23gIcJrD`8U+58JzA$96nQ>JUs zgQszV!(j=GQ=-Cx4cqr1>lh?V6$(kF5Q1r)=9qu+>?4Gb(9o*Him3Zq5?uR zoHbW+==f<1Dfq`x@G;;;l);~LKG$3+Ed1dcRUxT=hSq3W%tJ(f+vfGJWp5lAe8jLZ z+I$56Ncise{*;&=8#Nal>~z)&n#DI0)JSz|tba_3M z>IXnp#+wB;5%OfD3r zZxN@cp;9f)sd222CJ4$}Iu)?*2N^bytLI#N0wimEj+oDuDt+mBpN5S^?F%{WJtO7S zSBw@K&F9rc%~u1hLv|7hq7o?m@>k)%cX?TJ#<}4Kk)p>bW%jB!Jk;FxtA#G*4FoUb z3Ep@RR5uExNA|n+1A+sFTx-R?qE(i-*fIg%%Kt*B1;izEUG+Gpc9X>5jFFE%<1Wz}!w%=2 zfPIo&3s1@sNm_i+gRQK%7OPQ-FB6mvlRuOvRZW!!6*1NA&7;I)QWhbbPOc*U$uLmC z^uD-+G7WFQ?#I*a(jOP|FIipEZD-t+GZK3ZB56Uc6G%kZ3$Ny5KgEpbd5-?zdKO&D zN^PS9&?Mtee(JBs@*(b=QnDyNrnfO$j2iRPZu&6>jg_#^b%FpB(2X}{$U$f%C_U*xt5Z98#xOi)`i8czLUzd+f^i4(s5%%kBxpK+bJG(U1w4}sghM>5 ziQ1tyiF+>49@!S#VSmwQq zHWaHvva{rK8lpt1&S7WPh{VVc=uPDfv<$?Ib6zX(n_^UY8uLA>rU(gjV%tuN`|CIC z`Xt48j-5Je$chLjqbm-!qRyku2+CWd$v76tjDnL7I`wSFEIE@r#e7Gu$%@coWZUMG znaC4QAo=Kd+wfX7l&8stdTyw^AGMByC$0=^*BA@53M50r-S?=xHB@Z&p#z&Algzn3 zf(U~MP~sOl_H=XC0^7uzgzVbPS1w9LoR1>~F6K5ck)&=M&)XXrr-c?rxNf%ej^#QR z;n^fZBi!Fya%xL721)1}AC~4;EPzP(axN1a)nSTgu|bmi;L3tKZuxr!<@t~ZvTa7@P2=Rch!RBO6L=a zn-bC~QhqhS+tKTAKJ(!Le!T~8z_oD1N-#bb;?qD7IQjcoO`CV_|3f(Ht}$Wn#xY$5 zVIYUVH-$sy-32I# zsPEB;z4n7F`PSZ51)Y_*pK^xe$MlfBeN6Lbe z)8G^osRdAyO`7+rStVU)jxit=Pj|{MF*GU*?Xh@g&@Aiwrc`BK+QlXyhExjvOze<#OA6X?C z*Q`PWHlA|aXG>a+){>N)#hFeCFv?jIIbuL#NWdsR^e1RBb(r`Jmu)uoq8O=pw@8rd zjaX`Jyyt+?SOWt$zfQF>p;xzoD&Re zRY>IBC6@=53fi7bJk+TJRPu7}6Bo2_r?x|HeXe;9uipZu&&b7GxSL)IS5ggnDK=YP z2j|8Prcg+19xn5z?G|Fwndc269zkAss%bN;mzt|x)h0v#;Bx8P&4~DLs)xEWl>AH z&2=~VQvXRDY^^ScNTW#pa*D`6^6{x_t_(hUFt!*^rDkqPk*0p~ZA1FQSXRDz zw?2sm*Y8_i(U2o)!q`#RaFDAT-?VQxwrGqZAQOBd;hvqTOC3`yQ%_ zK6#}!BZgYh+|PNHAr73=RdO2#Ad6oWedim4xr!R096o2L7&4d2QT&;fO71fF7edj~ zhn!H>@Hvu3RlYo-kSsedN2RY_vP*+q5HTFHkdk&F@gd@$*7&uK$&}{UG8R(E{L^^< zFTXAmxEbP4-?qj4rv5@y7Gmk!$>)rtt>~Gxa8-|?M?Ry?m&AF#6<$#a7^oz9?bn35 zY*NjkDbeupN^KV5c~I393=U;;B&U$)1~g)@60CWwV;tF3;5YASn;o$kJSEreC94Kzkk6*TqZYbyXlj zJj4*HAB@RqNvZH-96yLE2ap35^$0+7vN(%g+KY1%@Cf}53>wqXbWGoNZW;*o4QFYH zBY#*1r=6Mo@@vTED&>lC?MJjS@Aq$pVhapG29T<4rMfFbW<$}KFQU24MS7f-I8UeJ zUzJyB0S65R`r~zIc2HfAR)of#bEyo6vCRZX+bi+!fv7QA+U$khm7omqVI`EHL|z=~ zF9^d#G-%RJ8bVY2hbY8Gd4e}p*=DSUt>2ETj9p7@7}9=3V)*@UO*M%8JAa;F8RdN5MQmsU}1hikrn*3WcV zg2F3Xt$94Pu6OqU^22g%EgqB6YWQ5e*OMV@7hNuuBvd>&$c2)VIUR)7e!BZf5FF{* zi!<54s6(2cXV_IR zS3`wsaZU!72=gkUmlwJcJxn+$|I$wwBtfVpExnJi7v9G2cGr(b*a5qYRy6S(`o6|J ziDjUrJwq8Wz(6TED8&Pt2!xBTRU{`VaZeMG#OE0BOB?LXg2ZLl^Ch|1xbhHFW(9JEkNt_JNV-Y`Q4bkY|(aI2tvC!|&dA6@{Nrs`qkt(6l{wg?0Y z&hd|FiY(ubd1|gL_>^Q~#+tM6_#bF=8;^=H>I{KfXLna>9}^4_>5)F?up_pJ5MrBJ z`dJp)?zxWxZJTyv$tF=6kK=x49jA7^ufc9vj+akLfGeV=2D9Ehv|N#}#BG;ZL)Ecv zTah1I?JtBAm2xh%q*Ft6lF1+kOHwVX(*1n%Yjt4IDPLI*4{uGGx0$H?Q%+vt{rrI6 z@H{uQ9l;ZH0V1r3j|>aGV_5R45G=kLMWW4korul-gz?6OwLKvnw>(L8OaY+3@*NEb zmw)-Aw$~dj0M$zI&c%WGhoYq_vAGq^%t5l<(*k<+{HhzRMkF`X1l47Hhs(3K30U_J zVTL|I>rzr9omwLfC`_@wXSNW zDYIU*_7CYojk#m0KQ2by;V}@cdb|r9-Mzr(6C`tx&d>EDBjl|}IntxMAXmiqzW3N` zh)^44Yl@C!YW@ z>cFVr#VN5u>Tl$qDq~o^##5^vFI6^yCbplG2I`eIowsdi{kpcUbh7>zGB4`<@vJpC z`MF919OK<Lc*;HWwj_Dz?2 zEG!8PP7+c(e?Mbpd{Rky8@ZT2&wZ%So6I<0R+--A9#eqh%RZD1N2xW&p6(S5&66ZZwDt+* z;}E&FlH9p}&Af}1i)odoB*z}R(2$L;0R z+A*ICjbAj&0#QyffA+#ETNS?d z9v8qdBYEg39Y%!)-Y-Qz~`Y-0|j zNPQnhy9p_lX}uNxEL$NS32~^5!CAx}yB1eD;r< zp47h5(Mo&oTV5dbAor%7WU?Wy;{-;~62X<1+N@3-1z6NAQw7wUG)o$ ziGE8BDwt5F?$lDP;Q-PBgb-bH_NepyXuKyyIhwBnNkPy;hx@CADbQdJNLA&rk#C&f zyo_u84rhDxqQeraDMc*dbb}ywlm8J%@36_w z6w>D|#fl|XasB5Ze?VOxn&;W=$4}vtNTcgp{=>{$Sa0J;lK$$k2T2Uii}By3OS}J; z_D_Qv$Vd#z5(Y@HKIIyBKJN{`gFx_R9*kV%6`uta`VB{;5%gTYf^q?Lx^CC!xG?;v z*Vp5MT0*Wv3n=}5(QX;E%2}}`ASdWI!LVA}xf`bQuYo`2h(06hyX6^yhzQ1jq+g^L zVFuahPI7=|#=18q{->v*&2>oUku)qg$b{<*GrRS{EoPH!8DGEcDuYQ2Ybjox{u#6E zYj;}N#5mg~fz@Y7O6{IN;~WA^M5s}JAw0e-?5AhJB3046jc|t}KxfJ?#Q&}{EX0pxRr9vX(V`K}bXRg|dvCL*Io05c>Uea-oyTcE#__7rh z6|S+B(hw+_H)YtSrDl@Akx?FFTgn~P4{5P08C8k^XY5zm#)ZXwwbsFEIvOlG2t#sZz zphsE38{29c9OtGKm(H6q+DH+|bEM8q_8|pX}iaNqA_q^)>Cz zL29=#33sDtA`4P$-=PAVcdG;zr!$a@<&s@Dlt=4U5r9Yz&q7-+3JUU518v`8<0(a@ z>KseUG~AvLi)Irs+p!*!xJ&;P|MXZ#A7Ys9v+>1T37_!r@x3;wcNxrUbe=QJOcA`1 zY6{lwK!AJ0n_+3~csjXduJZLS``*s+$g{)NawBZKP_gU@kvcWjC6@uu98r%YWj{cs z#Tcwr1AFxtDO%kvT<>0E=D05`ijyaa`%bqC!hFebEfH79mJH)&t@;c{1npoo^pfcS zh06Vs+^$1?JnV3(>4Dhcml0_R0!)B)oDoqe;O9eblehQo4$G$05_jQ)F`8N$coRLf zX$sy1DLO((9*{Mfr^iNx9-F(k6joiu9Zs>EN!nWz&zNkTI?elxxo zGlLTRikHN=4JVUo3QYH)7{phq%l2JQOuS);SJ+T zdX1fZEyFkP8z}#To%*j$VriB?__5r|KsryUv#l(1TT&?RIZu}-y3%osNSt^IP{cZ1 zb<<*Ci4pu40yFs`IUx=kwr7|B+4_jv9cxolgf&C9hW5^;hRS%I3ovGN&YQLl#^DD-s^xFyyfalR5S}7^@TltYx4Sb^jB^6aKy6zlM9ox5TCHM?&Dl;V~WQ=4c&SnUdiTOd=l#4 za`uw8@WY+(2~ti&xthGJS(P__3ur=-P<)IW)s6IN;caw6HkA@n0w=J;p)vPTxvI+c zs&kce2kLLXiO>78n%Ba>4>G+)K?*&aPbsD24e+HFOi>L0Itw@>tR4#RetMd3k$kco z5J)Yn|39o<19K%&w+$z@ZQHhe!yDVl#I}>U6Wg{Yn%K58v27<4%**$_djH^cRaaNF z>Y&f*z0Y2It^9B|$xa@(7p{L`r7XhJWCMxTK*?`v>$~~PVK35C03s{oJ3=MU%~ERh zY~CXKTN;h$Zgx8il$T=DjU%~&c<1Jw#zVD#|_T;gd4*r30T#Sr; zTCK(^|k|X)5}!L!!Hs zC4ZT|?0ToaDsKa&?Y)?rXqUMrEe*Xt!5~I12Wl{H3b)iW%3%MXZIbsTaF<#66^E zKh`@G;iTM9XnC#cnlV)3Etzu%@$3(n*ys{#VRtrMX6ok-UdozRLc%?gu)JX`XUWTJ z*Li64^!3n{Z*Cl4N^e4{%SJaM_}6dyy6+Cz`Wh2Tt31csiv+)_nqaQs7q_zwu!iGf zTx0s_p$Ru)ey!=OwbYk4x`p)k+abP%x^hWMby)>B7BSNM=zC#Tkh7_+X3`Y4oDL>w z@fy>gNuBNnG@~S*yG+Xj^!h_o_4q!#-)WJSIS@g53f++*q0q>g2*&b47|;vr=)q?i<~m&p zeK~I+$l!K!%XQy|YcQdx7tod3G{t$2rU@S#jSX722}zvTYuf!-FS4tU7Lf4`A3sdQ?m_7nuXgD650VB5NOvoc-^CnS31GCyhdQYUVu4ek z&_zwy1H}Z?EHdFWGs^*Z&%NIX(bz=!b}G0>!uMd*{GAK^P`PF7F%`udDA#yu8?lJS zgpSfdXKZWHV{5gQqi3M!!SCP`zZX(3of-VoYs-0j`DoAqmDFJq5uEn1>l8BIt}7YV z>Z}UIIUQA?AwJ|{3-((m{eBYQpS}z$m(lpjAmXTKVylqu;O!3~bSJE#gF4uB-DNZs z!Y-ztf%*!zn96Wl_1NawH<&3(C3v8d9e>%P|Cpx z89=GzGW}V{lJec6q%I<|^W=d7VgV(GvU2YVfs*&%pHZ;;C7S#|aM+ne7%Wx^5Lu?1 z_jnfODz21bS5aqkOf!z!=07KJl5Gg=YtT$$%aavfu_C2KtHx(@e?3UdnCp(=(*RRA zKvT&RJW1Ns&J_-UD+8xM>su6x!(@A2<=xzgkj&0Z2`0E2OL2nUdaKC3pGns&D_T7i zM-(;KL#iByWzm&AqozsJNhvKeHN~&P@fg&7kXW(c+C_#Wa9L~mbjK;)Lu-Dec}WL9 zxch}4A3fA@M25-l+ni(J@;2~DYlg6xw940yu_ZVD3r`FV?=S1`ZT=(Uy9Pwbwm~o< z*(Z1#pkV_&#r)X2s|`@b*?6laSD5%%=QD9+Y1yS0^j-Zgh7%H8gzO*K3o%b*0$OJy zKN6qp5t#q4`G%R}=Ou8!VF$^j7Eo2;0{bVWFV%*HTdj^fe>fUMlmdBxNaDqN(Kanz z{dAl)e%ynGYjmCQI_MTdG0s+`C>9|fH84Y~%>4Q~;pKtjAK3JzuKM?udqXpaabqn4 zzLe+7PYV0jjOZlucaH`Z_uQ=U22Q^y-=6^s@5Fmwl-L=c{FvP(Ebxx{J0kN~Dx;p*Dy1L=TS) zIk%!Eg^Zmq><(2TY@jy3C$)h*5?G)^MzqgK{S#QEld!M4rv#6hPMF$geq7dr_k@=&=ZexE3O~@FUGP zYOCK{K3Q@w?9P;jEJdx)l|!^FmtGJ6&T&uFP$!O%~3&CFrBisU#==&*R=F%l+n6E?xf4+-CVebRVzRN$0&GH6G zxWso2Z_&Fv1)hdV1!pP#bs=mm;86|BqX04MSN%J`-%li%QEAMAI{PVQtbhqr=F>iV2H~q zCWcZRVP2FOx4ZrY-a8F$%xGOFRyc|Jzlujq%(4!Y721PBf0*XJVdgviKyuC5;_avH6Giq4DGnnn{c;(I(F-PR)bZ~~ zw4D+Kv&b5?H~^II$!z+o?sh`_^A}B*DiPz#$-4e9@%M|8&H{c=;fObs$2xU{SVqDY zDsXd!_NxP`CNgAQ$X;srG3bnAkJbLXsS3@RDI5~_hjbpCysI8y)p&EHd7sjOm^%N! z5~|*-gFlhdwKdcD-cqv}_@PM9j2QElD$X~le>e^Ns@RXwW0F54z#qlu!8(bg=2sW6 z%=Eyj(DK^0oxE%uSG%xwW>lNOm8unE68E`zHdk$lnRv?`;0G|~`Vt$gxJEF=s1U7~ zujYSZE!Q@qJk*#X8>$~7@umuZ$pL9jMBLFMfxxOk2#s%cK()t!v+W0lYkMhi#y5Tu z?0AK4Wh$Z|I2pHSD4vtMw(fG9e7 z&9);`p8zcLhHI5r#E%X&gGP%NsXbaKLI$FcmQbR=4_a1#FqBR445Fx4hWGyOUzn>b z1`z|$7(!Z7@SJepR8-3GTR;Z_9Dc3_R#MIJpyz{u&1>&MoJ0^5=dDQSUi)$}N&A~}kO zA~D|>VW{|bB=g+yP_ADATCWt`M{y;mIy^N$iF(>mnnSdE$ z!Tfy!+9JCw@TDJSYEC@OI=j~&wL+{7*~FlQehgfi&J}?!JDceMx=`;yPEu)Qada6efLWm=j6DsJJnT*y2i>2-8TC2?{xjvS zL%?$iOb6{``7cy%+MdhXhd$vCyN{K6z>T{)OP>&D4|-bL&vxT=ZmSH-kb@J*e2MuY zUQ}c7dQ{?c%X-{z@hZS~PV!MVskEySGIIPB=C{EfUJ3Q^%0nX`SPa=^`!1d0L|R$< z5tQK@-E)@4Us^k-F*ALrD!_2Pc0YPGd?lM1n<_{9lLx2d08Q+gCtP9HyLP}dPnuAb zOe;G9^oM-f#~eyCEEQ)!eU(>ascXkogo@RtgZ6vmHf-FZUg(0=FW^q9PhRjI(o4=; zVMmD$-0^&o-B~tlOuBrV2t-^60d@f&hO8wu#2;^Xa-2f{hU(Mve_$9=x*Jh%We`th zJXL*@QeKKAe`Ar&SZYVjchb4vk(?XDFUX>s{N~rm8{{5}6u+Q6#C6XhkW{DYhr~5L zSf5mZ=>S%VZ1tb`U7=^qzL}pV2`+>Z89Ag1DSUexNvFz*Rehk*NoTzUCqIX=8*PVo zB-G;o!cJ>Q9{MnjC9SNqa%1j4CB_|=@x#Zh)uFyo5%wDTG2CLyN#87syH6B~iXMQ4 zV%G>lC!e&Y@O69DT({@5KT2)(0tuNnLRAX1`R2WO& z=pUH(?;2sn+|ij3i}8P8!IGf?jPIVCNzrstWFNzIqu5oYm4W(*>FjmI@F)sbJBh0u zSPtO1YX89K-_0ofV9UYQV2dFc(`V0ha0wuvxhCI8#-}3zA5!{Jfzv8ak@D{JI70eF z3VB#I42L|vqc3HQJ`{V&p^0QqcI?6+LoP|0_X>NtQrk#Aw-UCb#$LPc(N>@>uP8Rb+iRn8D${zo4qfU<_Z}?HFpPRWZB$1Dg>9$hzbs)QAD{qN3+@9WTjtQ}UE*Z~5Z*5U z#(Ih2CX$MLr?USaWKTY=(C^6hTUvLQLMOu~f*k(Kde zbVC%KS13Oey47+aT5Bs5Ho=KN{D8JiMT9(b0#&?Dhrc?efPf0JZldNmm0iJKO2APN zQiJ6&J&z7vjm4x&L%wztYb4SueegjH6Jzps@clsi{PK>(~-BRjW4}1Lb#C289 z-XBn^;>*8O5-}(fH`@x$*w(e06C`r{=rB0*BjAES>)CATScL`(2xna!rK6ZxNDU=# zTNtc$M0DXgm{5H}>hoEuoUlm2b_NwHP!R|$^pjGHQ-wqpVwru@=zERd+q}YS4;iST z>~ijqEG%eC(#e~s+|sFmiXBTgd-!KJ4^49xd}Rb0F^JI^EV>5cKFI?7ix)Idq-+=_ zif8+6V8KdLD|^-KpQ>OP=J3!JCR$#`gPayWu=Q#seHN-WNhp6?rqJC+)Gr>DU+tcb zo2})NCMToLUa`UCAsY^gDudNLe3`>%d&ht_)ytC|Mbu-RO~XT?dS5_?kjCO3LOxDG6n6I@>MchUrf|vvYUd~!ZQmiN~r^`n?+R{21W=9Yg?#w*JJpb zHla#l2Y#&@rqW$w)3yXck(Ybbj#7p!Vmq8wwNH7XKyBM~L~0!BLk^0ItrG*=hVnpC zo5Sa&?xLT?=c0#igC>$J@Q>e7K*4C{-{Y#ymV2JVK+=X`>8VN+Q--fuF7UD$EV4QH z@RHiU`SB2(jnUk`cWIv!>z_z;}w=O?q1AE89R)F?D=u#Kmx~r#> z$hb5Afo+`S3>#;61oV9`aS1S5YtlaKMKE-%k=8lT`h~)uad`)mcCr^D0X+WuoIo`( z{HQiJFXBc++T=r4sc{X0|K)-;T09M#DI}zOSFC~UnoL~&e5fjNQW4M~#8CTqrbf={ zjF+F)a4h*v%(t=XfEL^o>0*Lh7j$LLRSE>Pzg1NX8JO(pRJiifJ(i?yvekFtS)Hyc`g+eee`% zVp38daqlDz554ZsJS~}DD4A0E6aiHRL?#W^CjyN%Qf0$5jnY1 zhvGYVL8MtpMWRi(WIskTj~VYsNtywxu!iguHjOz7cjPOn;x3L%+-)*`&-HOW#=g`z za2=SI`J@#9ZL3iEYa&Rcn^+Y};`*YdbAr+dAsc}}zX0%SATawmAY}|b@r{sQytC>pMQR<^1sv)|tF2)mx z3C=#KAVH+X)bF7IlPl|d9`q2Y5I;>^Trz2$*}+9*RcZuNssza6rIY`G@g|J+8DoP+ zTWpRLLxFGS$qEcrS!!a~BUWWdh_8I{`t5tRtg;Ovvp1S`&yeRN3k^9?}$ym^p$ zej_)j4;J_f{5yLEB@!!o2s?O!9BBmugw{SsH-YZPDVGI4?Ax}R z4TlAAS}epc49iB+lTq5fELBy^Ep^pO2RDX${9-vAje|B>&?Y59r-t!pYiko<@u9jS zUmTbK(i(VG0GuOIA@<`$0BLFz+?eZ#C5SJP#MPx z0ty>x8>GTDGrbm2+JqW58hJS+gqYSgy;IGoBdPK!~Pi4!w zCCS_TKd`QCns1IfjJb>-8`Ir#2K*wA6JP;HJy(vEq)Gba5?q<@(G`H*#|=3U06ey?yX<_xXAh)Ay{!jMjeERF4OG5zAY{Y;IJo#ATo4Cws9UjyXo?d~#Af4OGK*!IS{8&CSoH^qL;izhda2@L<( z{hW3n{0cE})QU6#&nj}vv+`!VUvn91jW9^Mh44A8=klEhK`jh?7Yfhhuv8DjC$bs& z67Crf*ZftsrzD*|)Wi`8to8O#-Qlo_7QtoxkoiJd{sL3M$3tly87q@)yzIEs*04h) zuS3P)8FlaeT;~~0V3}m3zc}^Eig)=||A8TAqX7sgPYO|-CPuF^S~Y6B87z)3^*uV{ z4V6WR;$gDogBFC^lP{FwPaU1gauXZUG<|0%yX`RkfdTCe5{CFuv^M2etx-=My=-WT zi!0B%PRxmMm~XB)rCTG7ss4eDwTeckU$wnpBJ8aTP)s>XCLp#aS3TN&)!OLwYn)Hc zZ!#*|F@tHB^eNvsX}Y!HcppI|koIYKLxZO|Qk>eFaRj5S%j^?&8W{QxnVpp!faK<4V+3}sdcUrM#|PTU)Xor5So}tev`OCWiIwt zhymozUdnyUEJ{W{RrLi14rzOhaD5&A-O^3dU2#dYnS)KVVd0 zr#YzZMb~N&?k$;HGg(E8mCbbYW4g?a`&IKoq?f%I1$?hoH_| zM{YRZY09@ynzzr^1WKqf(Q+E#0P*VzmDsbuSQzN`DUJMc6afvz>(|d8)QU=kT>t^u;fpKJ_Rx z?9I-xg>>~Nm9F0S7ZeWi3D*#z?c*Pm=qoo}eW9Iuunn)O59OVr;kD*OT>+R496K-um569 z1~<)eX5t|qQiNEaxkJ^`-`2qWc$IbZ=mG;{KO?$+pi)L|#aY0O)To5>q^tq3MdLL{ z!SoEs0Co&nqj)hF7_j1S@*<1}Aa*}J^ZcJY4GRj<{^PA=o{ zzLVrGMN>zwD*VkxMUw&bikjAvVI<7Lfsj*z?Vtg zlD>nH4_#T0^;917VFjat@;M!sURHi8S$Wn8wXh&}VIC#)xZzrM;Y@r#M)u4=jVv?4 zkB@BiR9YG_uSSFz?E@02+x8OVK*8Sp_BSHH%ex}V=rvE~n)t^`LI0dcgd*9-kWav! z39or>^}7-nszu0b+@PyYX)7lmxs7u@MiB;r3h09YNP$cC3X{3h9*nFmjA(`!owp+i z5SN>Iv~{*QeG+-ZJ= z$;UoBHVd8==b%Xv(6S#v{4%yerq5aAIbw(Z*!pV{x7c=GL}`H}9V2%7E6fQ8&M;c{ zG3dC~^W4woZg;AUzaw=0X1Y!xgmnj`Q&}E5Y<|!;{%;p*GvX@r#A%x>zVV2D?DM(# zjFKo5RuWJA@L{Y!Dm(9oZ+zr9Ve8XA$~@V7hoEmCZq8H@Xa?* zKnHvDPSDL~-}x->3Ppx~r&iH>HVGg=+G47W7fQn@q&vA4(k3z^(SQx8MR?D&w+Z|! zH^8HaqWM0Q5Y?26`0;i(%hroJSm@7s9^y`@d+c>C(kU{o>U`ca!$jaPV-MYt&gfR6 zrB~~K--bK%53GrD=d20EVsJH`*e--Ay=O&Gl_>a9q#HNzDHvpTys;25m{-Vg8@u3p zy-buWBj6n6TN&HM;605ll(&LX=ukvl(ebz$-fGFGH&pbc??FLg;PqqrLvAsz6b#ho zUM9gMq~0e|DwCPMc8ajd3YSkKNhsAxnrr{z^?QFU?sB(~)vzk=vp+Oas*cF&F_c*U z9~dr#Ijr?jXs#`*AL;i3op$JKcX47k6qGe-;WmE;u<)5W=D%#=she_1tGqhcCE2Ey z7&#n53cK`$G$!dA>_20&yi_Da7*=~b#g)%fmXqC`oEPFek?j^)OzkX%jI1-ozg>K> zurEiBU+Y_Ocg`|3m3yF2ekMcQ_3Rg%UIp^G_&k%bAf8|D-CwqysVoreQ_3X8^$iIf z6)ZfbA+4Q_jm#j{E#}Dm{Zce(`?7p8P*)y4s2TObBoo+~EQ(|-qaw8;wdwrr-_)~y zwR*JVhICtGs)n65&{U!X4fsVr00-he-4a44T>qFL)CBX1J%i*s6cPs$In_iGb1Pi0 zrK7*(Zf6lO;arM6MG{546dFfroX>Oit3Pkd@(+JsPg+b~_)u2d`h0sr_nSlcc*0g0 zLUgT5MrW+Gze&#_*+v!S{>h#Rod9B_GH76kkCRO4N;;HV6!8v>Jazzm*>y%&>eQ_ zwrN**)j|nvqszYw62Wow&W;&L&a2h_Hk^|6C_q*6N>n~ihTa_kGU8rhmw1cq~$L#CBgvj15 z_DHKxKthp2z($99V(w$A%^EbzTFwh!xT52&@9_IRzVD__5>6Y*Me5L*l+-2dDK0T( z*5zY+K0CBT3C$%tHnRCva@V;wZEsv3gtEC& z(~4mBqbSIw`*B`zA5i}qzU}fAJH|&e<|fZU<0}O5XEOhKVxZD3&?2Gx6#4rIiiLTq8+Om@oyCeC`9_Y ztY>1Vb0_$5l`A;u8mwc!N5tZ0(jo>~a2qWro>PZA*%{>flVmbW6~SO+WVyMk=FS52 zivXVrV)2Mse`X(eRjtpXbj~3g7x&JTjY3l$eb6ZP6?1sbGC#ax;*x@h>Tj zuCo?e;i1~plrCR{v32-7;5gS~xhLX`9*mT)?V2znk3|9Nx1^T z&LL&By~AiqS&+s6`|~zmq1=o=LC~l;npH?T=|x3E%bX2g?@1U6Tqn-xF<3(Fj`v%R zLWU*s?Kx2IlryjTbLBi7;h3dQYxUGDoZ|Zr3_8K@FMKnze!eAtP37L6y33?gJO@s* zSo^fr=F!m;VzIHPX2n^4r#Kxkng0;7Iux#UZ+iMwL4@MT%)~D*aVzR%S zjkHjFxM4)*l90fCU}nVMSGWvFI{t*sA+rgts#URMY1bp=3^@C^8*Bg~$f#*OC13;! zJmq=GzoFuU)p}Zo^^gTMELtBsIuB4Kl<52e8}WPq7}V!wvj8^n6C|}c(vwgP7ei-7 zfrfLUzUd+qT!^z=0WbRTsG#c{f%&8}ie%fRVcH1ql#5&qkI1R18yi_;h$I(#H(F6- z1!HQpot%6bL*4joR($^OLO?a+h&;q>4dv-sJC+%XL$fT}Y}q#VKQL{|B<3BEJS6{_ z2MYw+tP;AsS?@jmv5fN8yxNz4cXF%-8b=Ie7F#0Hc+KI%oB#Q|k)mI(1 z(Oo#|xhRiD$2rb+4J}UM`HHqUpWUirRe+5FY0RIsB*<@z>LKnoGnD0OE2ae;jQUDg ztxd0kv|CRzCRgJp%~s4D7>bt-B+3hH$te61f1M?Qr~nwxjCg{=(Hq0GZ;yPWHB5m~ zN{uQ*XW862sXtdm4{ly3LTSnfze|cK^901>56M7_1SY9D4gt+z(%hQAszO2421qs0ZZ^PHH$pf$^$`w-tmkUYkWdV^SrsrGML$YSzP@&N0?9ja-RaVFO? zG{59aq;bNYsx-<;Z{7nNY4c6I(jj5aq|B~zCZedB-eR@mqvzs!O=2;RAGx3! z=z?a_9qgYrx=#^o5-0QH|VG`yPA2jTxArQAZ-k@^Z^ODQeQUT878+a;>8 z4l2E>+mB+CXlvF|;s#lR!B5ogQ}>s{!L7O*A8oqT2UO^^!vHux-6I;~Ue3-Bn)_mD90p>H@oMy??8 zq>B(LpI{0KG`u4J+NjAbzc$YbFSmFO$%gfI8{ao=*71T%stBUew4R%PU{Y&8e*boa z7B5oWxh>ZqYVplon)7%Ur*moYe;}9Jk%ww7x-QY{`N2M%^XmrE!A>v`(_BfwiXUw( z_n{yQ)ADROZzv>#O?*>+ng7|uPKZvA4#*vd8=Qp6cr9IkNkw@{Ne9mlHQ&%omn9M_ zz9fC=BA+6%xbpXFeL!8UjIzulb?G12peJXA`n!~P_V|$o-6wg8vQ5yu1lxOJsrh`9 z+hUnmri98EEnkv?4G|remUV#KBnZjyF_R?G)oeLUV?KKHJwDX(;W8zIxF=CBC3AYl zXpHgCvUPy0Sfg(Dnxx5HGVfvLfrj4s`1V>e&(mkcP4DCl*DlT%v(qZQV3pO_;8rbP zE&y6|DxV*(qxpUlRm^QVN=U_hN0ACl2zTmOHH}7w-#Oz#o!c~WY-ejYnf3VK0R8}_ zQ*ldo&b$cnytn9DFfE2hyRbXtr3@RAfP!)%wWSvdZJ zl2}2hIijwa(4}p*X)?_$W%G+0{Y`j0f;r48Sm<~r6Kr#T%wfv}TN``wiyhun!u6TB zmwyIhA*3LT$4t56AE`Cj5KeN05RFgP9rSf&=Is@bipf|1_Ei^SAP*6dG`_&Adf&PQ zmTZTDRpaOiS*@VFmP0a%65nj#Gfk%^ET9GWCVLI^4pahVx8m(rriZr}z^JOYV#rya zHNGm8$3#L#7^|Y_uI*ZsNj6!^xX7p0kr~-%qL7;)CbiUq2z%Fj8AQQ)rtq*M5ok%m zPT*A_NL6|`WEgA^`uD?&x-h63)9e~_Xh0L+g`7Tt zKPFPS0Ti-2k7mFi^C+o!X1V1>3JQ@((Q{kqO&`;vOQmw9^Jn;U_@kQCxr^PdMu8k4 zdSL2RYT5ho`HrOG4u)#3LD}fFV0gy9R^Y|9X^_w=Pi8ums^8MST^w{Gx29kqY z+D8>kv)j-NxUp^Dm#WTma7~0oOuAKF=s*%pJbWNc8A5eo8XMh>fMaoaXnl4ksbw4T zMn#t~6Z4^7n_ErwHf%u!KAxJHo5gs~_{yorl)v6$;$px3T-$a(ptuBlI-_6N%pH@O zJ@2)5^~Rs1E)0!N2g@gOnY}bs!8y>;#ZZV#C@uB2Y0q7CcXm;MwhXp$mG8i~l(WK4PsWWGU()0%1V)fX%t|s7Ohs<2)Flu0 z&WaV8Fmx>;r##OX>W{W=m}Ssfy7wd7Us`oaiUN$cLS7XO$?Pv!qxqMwZULT828af0d|Oaa@vWTZjz||1_SnPFDvjKR)KRv^pdc zlS%F~lL}VF z9gABdcL8?K3c&_hE8BEDLDMwcT9*_9tFe_>O9O$Jumf-Er`{^{tV}5ehOChAkvaVi zGHGdibj+N#dBP!V!_T~@xKt9$1YG;eP2G#%0J;cZQ7uf**zQT#WPXx?@)pySq5Mha z9J2O=RUL^Y`=Ffsti}BJ;=Mrr&?P}D8s%Y)7~ESyN-NRy83aDCvWqJ-2%}XMaokTt z2NSw+@iIW#FC!61dy!Szs$4vrLTf&|RxlZRVtMx5jaH94S0;s!7-_#19UV?I3%8;V z#_|nW%5{GbO?E(ZZ6siHRaHwNz>p{zsOc8-*3u4Se6FE9-rzqCp<`T%j%@vmanG$*+DIR)b>v{TWC*G<>p+20D-#}toGIB3{gK<`MFD)M4-nEr;5_s~9; zl}{UpKD844yP&m)jZ{Gik~M2rNz31?IwWE*CJ(M5U9HQD=?FV5&Gw;R_nA5B_1m|e zYg;2oop$hpA#0w>p(;mdXlAepYOO=7CAI zQ~D#33-wdi*W2nh)tS{^LI8`q++$Z<- zj`cj0{P`W_e0xg3*gR_6(zn{>K~VRCq%3-cwDn8 zWMBNG=3Q|!^I!ho|HDqxz?PR+Eq;o}jW(*j;#rGOaC(gFC$-6!yrL>WhI5wfBfgEX z?5&nx`)&WQEW@j~mV8Y|>!qlV!$VWugd&tTjTWS$eDz_KafwDdFbTjaZmh+o)1Uvb zwM)A_p?YY{in>45+X@ZQl*4O$cTV(yMa(`Rrz)s(tM9HWE=9#%63Q>EuL42y)3O|S zBK8_h8MM$o7|`#a(?yHk-*@?5;$BT<^%}h2K|FnN zIik^I%3JCvh$@7*g%8=VErXn@%IMy*f_#E5j2LJ;-!NWf1%ht+ivXon0`p!6m`u_T z@{v$#@JZuh>&f6dx?U$Y{RQCx>d0%lu=_E{)Wi>YVFT?~YdQnmHO#tfg%WTa}$ML=sjt+Djx#l}KHX!-}{6jYMiM|X*F zqq^my`4AEbTki+ob*@zIoWpIG8G06W%YK7A`w1top|(|o!Hf#?ZpX3G3!x9P9JaeE zYC#)G=oJ9oqL!hg`% zDVP;A(8VBp21Ya)c)IbBP{evR&iwouJ4TNDJwlA&@o322h-WCyR-0DJ+4*`9uBZ(Y zby-n#rkqLu2@xToTr>Pi5PL!O4aOiVGNhsec-XQ#Rtgf|T<=_PE_ExH(5S~Az1!D# zFc>iU!aTg3+1N6HaIrY#Q*FkhJHTtnN>i+Qabbco^`TYZdf_>GXTWzkdPU2H5|t!h zO|h_WrKDNQ%gcx9c@x5%62eTrPDn}9mhXb1DPa2r61MM*bt;;gU7aBN=!72Mp}e5z z%G7RTJQ1&6K1uO*DF~d6c*#6RZXt!yIflw2!eveBwzdZmK~6V0SokqALX;XZ&`i=h zlm#e0e$lNmT~o>oA--eV4RpJIE5y`x*p>N_@jp)Ap^!ha%gj)!ki~jg;=Uz?UERGj zRcg|wSrf_x2y;&9vVt;n4@~%+K05ioe=}4b8}?A~B_{V8Ei$X07Ods%_kxUG6oBxe zF2m~;O6R2k+1h%QmX?+^2s}2{b6XpAcXJ5f`7-S?x|(`H{#^h02WLRXPHDuv;BX)- zgmwqFmI@>M!VY(bD0o*2mzhmpV$Oybv>e50lC~wKJHLGumF3)-Q{l4)+<=0P!c!<(nm$&w<2Uo<( zD*|$+PO%%jIT<@#@QF=qy!D=*!(}D{Uo6mU8#?tLlP z;&3Qkpn9cnbQ@LDuZyq!Ew!Y#yszZ6!qzwHsb9cF18oy$n&GEDr0x!TUkz_0tZJSM z@e+0VQ$6xow`Y9*vaQSD4dRKdZ$0rU7JMwanrE}$0sWF~X0wu*R+Wiuvu=%6|I+^+ zu0l6J&v&tN#_mL!;-Ir$2781v_Hd)Q<$aBizdGLR|?_|O~_ElO}f<%Nk5^f1h|sbjgle`2v42qoCm7B z9|hu6aq&g;6>4v0$Ap)8U~vyal66K3PY{Ni7Q8RAZ($T)p8>OR$27O!o(_Uek&=CO ziivS9IIY@s6q&jR_IqEO?qjV!(KV{Q2VJ#ajZ>MfZ@M zkDb&MfffMoqSwv-g73Cw_+j3Kl=O+MT2!ZG4RV;?^v=SEgsa=y&_xS+sDLS>UX8S4 zbgJ01iIy*ZBx}6H@jy7qW1s7Jmi*?=Hsa@}ogz4N5$#Qx*Pos3)@;_I%uEH%jZd( zEvY4!^Xj~DtSZ(h@pF`v197|Vm z+2C|^r&zfp5zaa9C)7o>W=sD}wr{vw&w3x7 z37XEAyp;I`@#g4pXHo>mqBPYO`wz11Xom5);`kAgycu|NZry!SEKr&7vlA6%XqC={ z>;4~Da^PCrA!-JZ)#r*(iS9Up&TMWvdEyiTTI>)n#UqY z$L+89q4kLx?_@`!sEH6W-h^iKFZ~QTEZd)qMWgsh1D%>+9G{vOdrvR%#j^fAn8sF3 zNp=_Cj6X42?&Yw0oCHyLoP9{bkDYb?IBducS9HQ?gvk=n5xE-4H$VYNoXY=LX|fVG z!l%1(8rq^IqkE(-8jYQ&jMTnDcj)%+1|$kE*^L{~sl5KfkX$U-Lt<4uzU1S)RcZ2~ zCCH9H0UBomOt(=Wz`f|)L@zoc0-8&!cZZRC`mNx0Zd2*3_k!u{jY;}ZjJ>#ZxqDfq zAWFR`0%5v|(op5j2dK>~L}0oJmn|Wt3ABs&J`plAS-oib|A(n70f?cE`?IwjE2*~R zh-@`&hZ13vtL?x}2T9W52wPh16h+9rA9$5>m*q64{6vsn?rZcpagX z??2o7e&1)-Haq(~zvut_@8|!_?tZx#v8Kgt{K!jupq!?5Df7 z+?-C{wyXL3iI&cJ!vpC$|GbFU`_H_1t5N%J%a#w>P~iOHQsRrz}16MkCO3=-{_g88&|{xWQbXy(K1!lg{)JeA-QQ z6uvrHS1{|v37M7s-BBY=XIXg#+duAzVZ6jnpZ<8^ulK`FaPCSUn1>&&ejik1_b5s8 zWchymG_%H{N9Zz1a@*_5iY?LS1JiDula98lH*()~R8TSf_x8y%U51*BCIUC!Jv~f$ zH2LKe&-iyD!3F2Qxc1x6=IO05$f}hc7q52DJlotbmDOqZVq;jyuldHox_0v&7W8Z^ z4@|)JY!q%hAL2`)re}CgroH*nF}7Y|uI9^Y5QN*S8H1Jv8T9lf-TC z)e*z3{vfw(B)|6#9Xh7ZA_=_hU`+<1VWeqak3SzhGJX_Coo57PhyS)M*pR7_+k1k^;yzD`~Q1ZU+%gLjkZyE36lmM zc$1`(x;oU|o0Vve3PWK43?)@K*@9O_z#t?g!g}Eu9AxZWXkk3?S<=#<4C3Faq97plQjWtjQk=!i%7Axb8@U(vMi2gl}G@k6!hK{{K$J zEChyD)<~Hw4x;lVmJ%U|Vt~3o2y~^-$@Xp~N(iI~!uVgn&3NU%fd8>~0KND&Y@;p%Mf^%tR>V25*Z{HgJG$O`!xI-hg4Ep&>jdyaqml^xpwe0K$QBH1iMt zCUALDUqy|&BaS(tQbYq`V`vLZy%mEE-QSrYY5KsNIW(#%^rQPer*O3r(Ha7j_~144 z)fTj-Gl!ztalG;m(g!Ux@M_W@K?sc3Q0hm@pc8$({a0)HHqw}g26UyuaI%}`H2_i~ z4S4nrBPq3l!o}C5Y8!=!CXn4uEY2{e-mSXk41)U;hHK{=G)F(}*acQq!sCAuw75 z@4~IaJWy=@V(-xOS<|1s2%R5-{Pl>sq?k3c<aZ$ zYT4d{5g1oJ9F5rvt)a*>#h47)0`f7j!w4GP~+y9Xazl@W7z#KpXZvb-!3Ng0oe-*zE zB@n%&u5z&3(tj`hCipyP6{eQmTU@b6ZRkJ{joSjQLm?M&{sTqWFgLE6jl{A6GJ%C) zYGEQRM^c5cF(>+JCm}#u&>Ya8)-b%BnMqr_lJvxDV46ZXJmCrn5DLtEifF(Tod*yB zd*A>>4@!U_+VI3eYyKb(U1o) z46p|dlrUAnh&fa^0#^PDLsh;~kbpJWM+q3vwnW_{0;S;Zj<9Z8n@|a@=Fmz1KRgA2 z0WI|Lo7g7N09^^=)*?&^-B(E9r5IY--z>-lFG71b7$`ZPR$`y6WE)6L3Z{4&;21S@ zd(0aCb7?G)YLf_I3z)RFgHjVB&@4G#ilawrT5l1NFgF6av0w_62s#02phN_l!l5;S zRI1VJ;0@>mSacgc!VVL*00D%bf)GMOT+w$GoI7YFZ3oZ`NbLrrSG#ZE7hY;g!+~o! zpoYU7^Si)KEBo8u(#{da!=6t z4aOQcXgu$*PT9N~c<+bWUGNbmNRfe;1FceG9^DR{7fv3p{6v!iTEt;PFN)@ zA3EaFs=z?WAO8;$I&y*2lrRrGG~HZ+FnBE};SMSn`;7T#EgavR; zK!6OTL>vS;UV*>-|8OlfUtn-iv~5l*3zb7331TJ&no4Q8(}An8N{lw5i2_O-mkV&gCu$&Mi1IEj4I#$x;C&7Gh z2@_hdLAU@|E@h#1763?xyH<>Kg$83ygBPdKm@n!XfTsC1GI*4b2*BL>{c32|kV=#Q z`v7y002YF1;$#lZR|d**MCEh~z-|>_LNEpl%K*4sP4IVWR|$qLF#|D(39e6)3IswQ z{S*pB`&EDeA}kJw!IAX9#019RFsw_dq;4uKM&U^-JvPo;0OQ6T1U`q-cnne|X3`M7 zs2n{4xc`eNK)5h4*?>DKh*|yH(bBm};EEjw(IV*xFVsGGiROvzbqLKpm{UDHK@P%l zT1W6_&@w<jIkwt|%SB`9D`<0>@o`OAy3qGV}ziLkP3dxs-^c_%JKpfH%Ae z{!4aG3CF&22sQsg_JaZo!DP{Y zIVsSf!eXmXI;Mq*zoRl|45cS!3DO3YDg{WKm{EsmVvepBW0gD*XTk_ZY?lwC0s^9HUyW!L2UykVoj=mGce=JBq7JiI+_S@S1m5&Q~Hz+tgRSH2n@k-i$Q~V zZIw1`{!yk9a&wJkEpD_OlC6%tAgKdgxi!!OjQCUEFR~yPyLH@}27hHj_s! zs$4t(M}+l*zR{TnL>Q&o2pb8IBiZUFM^oA0tRw^*=H>DSNuurR7fAu7J~+%>n1=*g zXA$5BJI|5|0@Gc%79~JR09+2L(Noh+(}tHzjQe3uc%d~1A{WAh9;lQtpuhlFi-LjE zulnFR;YoJ!$axpYSutceAvlJYgEqo%XsJUtsjBJ6cyv%GN1VFp`Jif+V>~7Nh3wi# zEZ>GOArjT}osaDSv}dhQ8-Z*|HhO#URhMBm&2Tc12u=E^hT{=#e-IIm?s`ui1~Gu} zmE?dMR;#!lpkEe4>VlZ{$(0&Q`Iz;IBPy?5HJ38)@)v_L4xs|LodmV?H)f$G0`J93 zgoGc-r#PtGf$$~NM1e~oK-ewhHac+#>npvJ)2M-AoTTjv8BDr0EZ`bRHEOp`t@0aQim>s@4^FiR zlfZ_(wdjX=|0d9=b8YRB%`$dt93|{so$5zNB%JQkraV-Qoo}INeGhg9I+~ z5f1csf=jp}(-9_!0wdHm(u-$8ctA4|Z6&<>2gxXh*#n*o9a|Lmtu6976;9)wSL5N8 z%CQlo5Y&%R0(c%Y9=WTlJcr`Z1kwsciCH#%B!+QA{VMuS;T3EQLIp{2GQ_9MUTJ@! zBB_87^uUKAyjy8qqcp>LXciH!pPY(v23886x&ZS6Pza{fPlaO+l%+RTY6#09Il2R) z+)!SVg+WDS8K?OcP!@opnO$fB95D)C&) z08Gvf3rA0)2MKJ>BvXh>pC`(0>8CDJ9`JKXoPt_!v)PX%mK>n@{LzaN@fgs) zS4=MyNTr?#uZ2|x5Bw{*rarO-L?~8itnf*Y>=jp&&j_qTfA>qC ziQp@grGno0NDBM_-6HbbQKN9pSEfpRXAKE9X~MZy*Rn&e*(g*Q%DbO_0m>26XKlt4 z0K`yZ0E=?BWRMM|(;?u=AzvgS+iC8o6~gBE-H^!Gb(dOBbmw3q{Yv=2WZ!6L8O0onm-~n7q1=!g{mUctQ0mA3E94tC?Ho$>508_0bm6||eQl}Jn ziMf4B6y`}-Vu=q{BTV`OJOL~5@FAO;QaN}hJx`o$rf?$`ic1cY%K(J%5ix`mq|PE7 z&8Q|-;4UayFc=5)tTzm8Z}kxpo2oBw`45c`249R>4Z-=EVmUOXB2p1+oOxIsC@4Zh zfC#}2Y2v5BG6vx23Ie79npWaVfRIsHSIr+p{Apkv>A@dCw$>`qvvV+%M>9JK$0RHf zs)VT4Pv>xiH$)}`r-T648UTZf90}n;c{FZ^W}-w3*%ce9{Kz6tfMu}xBY0Fmz+o{S zLhC(<y_tvqiroR=|&P+ms&U9hnxgVHH2qM9#dd109Sahu7JDQ`kiQc?I{ITH( zq+gwKHfAPPtscLM7yJ*w6Hdin3Gb?U|A>O3#`a>1bzcr65$~j;v=)%TIx$Ylknu?RHCWh_o)=2 zn2MRO@FCm*4VFg;4}9@Y)o*y2v47nyd+1*{7W6CGvh*EWgjRZOrH$H3n2*oK{|lD3R#kn*IKw` z&a)I{LuS?RK})iZ>iU)4Nr;y~Hg%EM$ZmvXkPm`XRg{R24$Kup@#DocKwa!_$e?Id zL_r=Xn#ZZ9`?xz=L@tN$Rfq(|2L*p+@|J-KUuq$V z=4RNEX$Gs3u>l-h7yv5?{l)mWzO5+H?uWeS3< zD}j6$Rt;R@p%thOr$Y~6D7k0nax=E06TIP*jV)-c(khcnbwAA}dyzzy79~#Gl!_iM zLzy&~cTx|)u$yRP$s`G*T#^FI9Tl~tn`!_@x}@fL*Qd(ezvg~ixE=2KsvdUI^~`i9 zVDFp9WUF$s)IlcPhvlN%E9uCO5?d>NvIS6qg9&pGYr;oNz@n3xL%-z*93)$uV7`2| zSc5%}qU=x(6Gg@WSmbLGac#2}5?plGFEq0P&7*s`qbULeeuEi7bP@gjcQl*Z(jV4NITmmX5e658&tv{Xd*8yU9!GOi(Tp;BHv=V7xdFhe$`1&b z7;77?9$w&I*j`eWTQ?=J*0OC>|F`IeRh7labFF9ZS_{nG?bI=mXTMr%O~CfH9?XfyPOg zLo`92CGaDkHxnMApfg;FR1?3*rL;E)Zu`YkAC1EEoRKuyue>B|7 zaa2^aAE|F;OoTL4Lrf|g4djwgGW z64|_Mr?~-w@}>dmdb&tzWhmhJ@l+VIWnwfcrPr4PRz^0#b18+D;>9@u`l-N!2D0^f z&|h2rx%K#YbC7@)o79a;Wl3RQ$EW#n2P#buAks94sh|vVfdm_+#%@NXOvta~_=RyT z0LLTzN*x_5rO04_gZR-KK5on1`N`2+Mbn|`!mf7?P4k6$A5-iRC zAV265K3qAWo3o>xUIg`R4CA%>kqyNl8j_ezM<6=k5L2-jR|Wwj3>hnOt0jC1Io*$Z z2#`s1SY{!JM?^&>ej)=zqYx^J+6-*P%LxoK z7CCu=0XDh8tkoM6Kxo57M1!xTkmKlKAZY*!o|S7Dv~6gSt-u)LZVKNUZmJR>dMjYF z&oT^Z8yMz{IrT!1q~ouAbMDnG7K+$DgtBrh08p<$bP~bv##uhyO&t`)Z{~&Jq zSu!njHvmHNOTapfR_B-LP{0VW?4cB92+X42pf=+PIe-G^sGL@76)YAo4w{c~ykXNzkqorag*dPPddz+r zO(>6%(nSnPkwZBUe1j_r*hUqV(s1)O<50iZMmK_DB*vq{_}UTMIVucUM=YT2n2kBo z+$TsF6U;_McapD@5MgkF5+R_PEW#W7DYpyiIG}RNC#opCf$o8El_)H*LeLg%!rMof zrPh@m0cH&?#o6jt{RH6$O(_LJGmp**P#K5qfkisgyALwVU>Z&(!d?Qj0U@-Yc?i1; z#U>E}VR-R?f58}B3}`O~&7oZbO%>k4K@ji)6q?IIb2)4nF&s1!=ErgZ_Cb|{hHHVk zh7{2fSsT!Dk_my=vA`7A&eK-YK`;p)yfh4lm=9Eut*FuhRicmra0Mn}!jHgmog%5t zFrF!ZQIW9LV{kAu=MPd~lFOkL94e(SKrY=|3QsVB)mSQ=@ScAIpj}m{Glr&MoJ<09 z#w?snL0X$(Ba{Z)4Er=J4a|Y~jj%vbKvO87Ldwiy0u~JciWlmu-W-w9b#R3HmwI}r zJOSgus6-e<0l=|>cJe5UBanCq4s`F(z!>lObe05~hZaD{+5%jm4U$>`5tUYJu9Cy2 zDW+c$URWuOH7|*_N$~T)oh~Rmhlyvmf+u5RXfM486vO=zT!cw@XSqVoWlgqI3G@_% z7=R%d0;Tab8Vs8b&&hP%ls*8CRwsakyt@f+aU|Qn04ESAK1NdEA`W;n@00(aIV~t? zNiV>`Ba!%s!Js)^HLwh&5qSh=0sFNBh+-fCgPT{V*nYTYM5$ITrL`&?F%#irLoVb` z#5Si)=tVCe-s8XongEYK$Q{C4cwhjdA5aBY05+`~sywj7mm+M8+fKFuHz_PZ=?uj8 z;#z!=?deM4TOL4kAEOba0EtCGL{t}oXsk{mkc3DK-dw#c4#q3nS}up}4jHY+G|jc_ zX7Gx!aF+!G3=Cou%D|#mfzse*v}TIXWT-1gU~*hd+b4SG%B*k^4H^5pMLno<2qet3 z(;%)vHNctAB$Y0ZvM3Sc?ptdGfpHL^HxcYf+z#RZWpsq3O0X$);__-5rmNqNJcK|G z`skKujAXdJfDOaM0FP>pTAdvQXV%phA*ZnCfkU(huvbvpv5;&m01C>A~F8P_29( zl@tU-fHW-LqjI4fN0`8UW-Y>_aI~C={XqC2v7H}KBnvt?Do7xQ*hFXe+knp>K$|QB zFyI{wLkYC0O({z7bJ@-1dB~RqDk`={O(lDI!IvF zR@p`O0v7>3@$)3(FrLzZN1-(e`XVSY$XS7aa7A{|i&S}pQIQxj55Aucm4E`t=+KH^ zK=T4HG$>S~t45>-3j;7lm8C`q4~!csxxZ4Js(zRkPr#LM#NHNUQY{W zST`jcF!Me|^5Fo?p11hOm>%c_4+_v+W;seA1i*{fzRE9f(O1fF1n(^beFGLyQQ^SG z%b=2Do9xt;a#&sZfa3NkRAvE~9xF6?FIWfRmz+bR6@Uo!Nf1rZC8{6>`2tw27Hx$92JRGi0lET^ z{g{k)xgu1?YX$B0S#72A5jhwVG~?*Hl_Na{;6VqSFPKe!CRzkW&=#~^O~8qEAA=vq z(F~eQJLpAYmccCaFSWtu3u7}73s9Dhz(crApzIt6N`N?&mcSa(oI7La6R|vr?hQ$4 z7+yV&!o6XW<1~FGnx-O24aXpL@B(BR^hU_JU1SFE5bBjwS$PMd0I&5#?P^qYs@k0d>RONB*)$GGCn;c5_Z4X0ERICa{Gg9Lp#)4CTQr%eiQ zT)hXtY>}}t284)SaDieBd>w$nbbX0f1q?~yZ?s{pjm`8H!`2p>17aanP_$9!^v{D> z(0~g#bJHi%ZEFx@fed8z2Z??HwvQ6+H561dAWG5s{=o5z*WKcbu?3FM9xlRDH#8`( zRHxso^y#ax;yB3QHPC<(WNTC_Ous}f|wB|TgrgAH+*2-IJ2MNTO_ahi|xF|QB2Dx%>|OJ?9o zS2d`QHCh(E834o8Nf|)rEP`yd#kyaugEZB&Ymsrg;iS76=1lJm!M*}Kk#OSx(g^9P znmiy-0Zg$&xesvYM(2j=-t=>%l1p^}Ajl1~qs2yr^MIlKD!2eMh8x1VfKmv(wb1AY zO|dP@)LX#m_!p-g~d%0Q)h zVVR`?*8r}Pqz6%F5HK?R0PBE193}yo3!8yT5X3AtmZpuQ5-9vi9)=zP{?NVxrSC$Z zqTq}L;^6G zXycYm-J4(hN}0ZY@{FD&s~Y$Wn{eBxL-19AcS5cwSv*LFv^G5+^4H%#vwrosB=79W zIHO^{J!a5}W&1l}lZhowNVbX)hs@3+7oi^Eae(*Itc=$P5Sz59FVU;^-*^Why z6b``-Zl4_!!cY0B+^wAWde)^fap)HwV$6;#xFRm$SE&O14^r-w$mie7mdk+;@ zFEucaUxsL&nJs&l^H6t2+{oZve%56+uE(z~xRkH*>d0Bt`0D9vee1aNPUCo|Z~eo! zFzO}ZK>r=OX7?a|c35{2)9r^C|@A0BHb4^DkKe^;H(fjrA&xAj``?Mk*>3aqjo ze>QCP(yZ!1S1$QqIxilCWS5w%(O#~2fBEUb)cm~pzdDUx#HkGcDtd6@6(O?IQ2u$BUm-8jjvs*w?*MhY=I`XwMDdy{~gD z&Ur50eXDHUrzJHaull{htt~~omaI9mcP)u?kC`=z^P%P51W#T=`l=EAS^L+$)OmP0 z)a9t1gXD|u1X{!${_%xZ_uX)ue>wKjTzAzU9c!QM4#?;f1V*lHNJPBF{OT2?PP%RHC8UhwI+e|*l(v^x{p zmu-8Q89V(*oNQf~i+#6eb-T%)>zkjK@o);_b-X+$QSNZS1ZTkmdR}E$Lu;m6H_Ya!r=I^oK zZS(Q1U8o>{GwawKd#;6skLwakg>{RC3BJ`}qGa*2{j2w`9TU<2qvfA+hj+n6=g-x* z7U(+QE!KGpY8Iy)t4KP1{`=(7MOhtti*-A@bx{{y(I-WHtF(J>{y18L0v$_q+Z_GU zma6prjyIJQoDKHP3wXI`$)d00oHky)XQ;8rveLNW8gsY(xWqiW8t%=-7E-2BHes7J z_5Fe4CVNwkF4n5o+bByMeOE_i{Ap)L#g}EQ#{Uz1sPS;2?-W7G2ZP9L@6xJsBh23`s2?}$ z3xCelu$IT{)2Zn^7;z=~^rEjp_JZqd!-L6JlsjG0w~rq6ZmcMi742}JWl`d`enhGH z*_x}3o_jMNG{>FJSvp(u{$p$HyEaE%XPRudbLv6)WOIJh+E*Fk>d<(Dc$0$Hi9rb) z3EjNOZrwX?Y8egp$q3;rFP`Q)#VEi#&?o(G_X9stwHs33@`oXFWd4{p*G-2z+d;h61dDX|uvKvn7TkJ}`w|i>Nu8R(@ zFC0j{y*43kV!!>QYd`8Vf-*0xyxN&DwIP4FoGZ^te-+WU@zt&nd0y7bkc-XNT@Mlw z@pkgl%zc4(4Ay0>HLNb#Iz{h6yq(*(!hN>}e<8M}P}rlrGi6W3{cmULlaS43SsHT@T{M0q_WaT6 zjh*8@@n89~mS0>{ePW+Jd&j*-t49?^QfG-Et0Kham|?}X)CIvB?>bGYG&WamIUeP< zQeIc!lRbIYzFNdST<=VCzF~Xe8Qbh;B(Y0>pU9xeK&n$2bRtskVe;KA4?pOwtKMBO ztsupFtl4z^W#(P`4&S$jf74CZy?oW#D4F^4ZMArI!`=QCpK}h$b`RG2F^=!|&||pw zww8|PIrz7<`n7sEIJ+i(dO6m!t*YV0gd~q_pRU`h)?duug?P7R+~2U}QNTFQ4L@Y6 zA(M>Qv+q1|f3danO_cb7&+E2HTc5eixx6yB?TAjg?z8qo?*k7#d0RMf|AL~ztxhc$C9U0XG71Zzod*=xG{se)4P5ZW-LNu;rUbo8M1>fvJG*L9|M7c&|}af2FdZZ8RbJNJC*NHdvc z+_1T+p-9wq zt2}NwzGdQ+jUBIoENc$G9IIRH#!o zrZxSR>yqj@?+$Z54#6%t9G-CZYnJSF_ZY0muv|Gc@;vXiDP!=Zy4@ZIi$+Ozzjyy& zwC6xn|CLk5D;_2CrbrnloICs9j(t6B)Ub$?nhP>d#e|yo>u^or|i{zh@Y=603i_Dh3>X`B6`uM6Ux4MFT z0;bOL)%+tLJDWJ6>2-hSfB4ohyy0b!I`lLcKb!k<=y1_tx2txG(=QuOx>c~#VaM!% z_?x$@5ayW*D;^Ik6I~9@?Xzr zxIH&I8*Hy+&711YS#D;zX3iJV(c~ceUVOy2v}NIja~7#W6qTKeo2GGn zGfT^UQ%gp0kEN%5@Y?*kcg98D{25NYYrJ|Nc3m~U&I@r}vvlX;x2M~dIn5dIEarZ1 z&y-7y199*zjCU__&lgSlpwphdyxjWio6^CZHq&h9xlFy_BJ}dr4DGx=c*nBor#E%% z`D?J!SEpsGElWRR=~2n6`&o9HmSd|ME(Z*$JbGy6wYh5yXD6%`U5mKq!r$yOYHyYO zi+c{W^Nu<`7+jR9-)0b$)53i9nG@{4-#Ph^B)_umVvY`))}XuIBw@7YQkHP?A7thI z3D1}BjxS2FUHxOqL}|V1`&~)5-M928OTLwz?+t;q<)UWYL#oQvfj@qf5&pv+x~()P zB1!4W>*MYlcswBU-pA`2oa(k8WGO4mFVo$N`pi9Z(I zOy4&q&`6bE^ZR1%*~XrIte<@IiX%IpuG5*x`aF4tdD6bSLpF>G7?QWa)ofLFxXSc~ z7iWt>@t})4ts@z^tE@-fvq&lV`v50=kifK2es$MpU(Se49}-ViSi0_M9#Q{Dmgpwa z_L4^~$lCI_I&ZP5cKFNM9|c=J=4(DmEwW0BkNCk)d*QME+~()ErUW$f&(#Z5&RN#c z?HoUfJ-^SuYEJSTlLVvIWz^NYH8<~3m*(X5EgH}GVb|I1DQlX2sQ6yw*NXAl+Y1lA z>r8xT&)6|8{f4|~$5Kw7z4xl#*NqnIXCIAdKC*F9b7AU*(ay&P=Zvjx2+spi> z%it>GWllT7Z>NN&zMH@N`0?-09te&d&p6Thm{-S4Jlk_L{lR4YV&$E|LE~O7>k&@8 zVIFD&FdUu-bZWAN33?g&M{J)G|>UJq+@0ohVUaM99&w*!V+V5wlMel!@cwtBM zhI&DWnO66KcgMdQv5k+-)q9k|m|SZ1(7>g@F~+l??}=-_Yrv$Nsl%ql%)fK@mQ(4G zGtL^(-`#&KJ^0r6*)12ZR}n#LtzStMoDlsI%h;8Px;wA9b-9;p+WEWCgi&!syyCve zkXyfJGrgFJqnPeW&#sn8^DBlsEesZ1Td7$;;pV+3Gd2c#ZX2JnScfNByr?a@us%Wl zh*eucj-4$%7ktOE4$d*UU+?|;TE%aB zL%!k3t1rycQcY(^RgRs@Sn52|#Bow^N6@>Nz9RH{eRm_z^r6njt8?3%u&PY!hbCWK z_*DP1shI8NMi9tY%c&NLmWh)r!Y1DiZlC;M^v1-!Jz7bxq)x()>7%+>9UQd*iR=$38&rM zpV(@!=y@)&#PjRU#{7$qm6+a}y;*jb3p05c9($d~ciZ2aJC{*%{_*$+lbv!uGy8VO zUK*;w8TEX%$*2>r?mSyP$#h(Q;f!copKXn&;v$am%9ei>d#d)2a~!m_aAfA?kDnep zNCa1S+k5;20$P5)pX)X4)X&vkhf61z2uma8EM^B*mWE((#;m1V4a&0l@|h={legzcay^d)+`M+^zU)W&^Rs2m zXEFl9;EU%A^~_V`)iw*)S|vEfB{oYuXBo%UPiM}S4L(2f$fTgbIFItx1JfFOYU=9 zwtebLP1X0I@Gp8(0&;XrDfRc%2g$d_ZJlT-fggF|rP?n07-BN*!;z|<6DM7F%xo}q zmNpeFnv>tTu4B+=VODuoh?#LuA(Bw$mUW7AH)Knr4VODJsHWTCCBH6xk9%iCs`(A0W$)az;Kxpc3)3nMN)z8GM~aAd?U_Mi25hi+Qo-tCU@WvjJ^UYTDj zKkI&G=)sxrOMk`n@BPPm=u|m++_-R8vm;AffGNIZ9N?rqoptEZiuHCMJBNs0)^Y@F z8{6Re3G=4=hD-{bFS3=EeHpg!_3Gq{he|}2LRISPb33^^?oT}VR|6|;%ZZ$Gr@y)s zEM|(8ft}U%4!N?Je^Hx9MY_|21kYSC8vn=D|tdH+L*H>cWo_h5h0)E4)^X zUVe0Md{5k_<##t`&Ro5Gd6t`IQr^qc&gX@FP5$2>_l$gyc{etDX3^yH{GUUmI%oQt z96$cEEJ1>rIvT0qNA}`piWVR0>El*>@_K9abKx|nsJ@^ooAKM;1T6J|OT61luG{misk+Q&xR`l~N6FmU1qu<*+<+R}T8P~7c_pjLdAtX3Xv*;~9`!83|qR{Yt&Q86L9&I0$A$7R- z{OHf6#6h1mnrB(}w-YbFZ`^DjpLLKhIjHsE{9qH$X_wdfx3=#_*J~k)6Jma&+`+xx z!aC;aH^rG?p5SS)PitZ8y#*(`Ef!or=DroY@%n!DNpabr{`GoP?plo}_e)}rjhl4o zX!#b@>BN*vZw_%sQxg`RVvIKodDmrfC5tH3HcZt*B7Zyo-Exu@Zeh7lzv1ytJKJu? z&ILtVn$yqLO_`7}{#wMv_ud_>`t+>frPC|}lM_6A?u9N1G#_EJB`Q+yJoE0e3*+^7 zPYmn-XPHOw+-5+73hcCb6={PZ>Sl7O=;(YY)s=>_P=PVuw zceI=oJ2LVxIxTxY?xq^uCe1zB+l%(-Ajp z`g_qF>jgJ+*^KpEmRUssw?Vfn~<=_STKF7V6Cr zA0E+4PB9q8s+yUVA@iM~Kg>TOTGK9Q(@wuJmI0|7n&z)fLC>UpetFULPLGC7)y}kv zZ>sg&u;qiZOo+1V5&nxbCuXLm&;KVT*ymWM@L<{m{k6+;FtJbU@=50FA8%R~mnA)@ z>MqQ%s6Tb?RHFTc7ikNl`ismeKW-CZtl&55#JQU=EV{6OR`0beM6*mZ>j??1nG5OxN4s-D|CPyS4tDZJvl(S}n{g6@T4ri^E%o<^RMztw-(&ckE zY?P~0x6W8d{2Ft?owyD=nkKR73qG!{pM3vy6`z@T@o;+Lj!}7+0((;C+FGLfB20F! z-#z!8a7AOX_;!Z*%@yVz0qmINJ!NqwOT5JIJwLBl_|iB&B+N1=6AK6uSH1GT63t_1 zFP{{3(tN?<5r(;{Geu+9M;(~K(Usa8qv>w5gM9Qvho@#OAEcGy$rpt;p2FTg5+1iW z#!U^_C6b~i{+hJ+B!jdV2EYH9P7Jb^^lsp8cbB-&xOUe?G;5Hyh5k*4w>QiKb_5SS z-aUR=vA6eB-PV;l?Q<81JbI^UXT98F72F=LQcNU^z3iqoj$Sp|dUn9aY@OPxwWg!f z(=;WI>KyLe%CK9wF#A$@oS$>r0nYX&of{2_sj-O>*;Cm+{KdxO?-$>3h}}R2yO^m~ zUyC??JbPBbys7M=vui)>E7Tt$y|pIedgQ9X1^7Q6CI$`+6Xg>WfIWTZ->X3O?olaIwcP)vI zJQ0c5e~mvkf7mT!Yon`vaStlJ_ZDB;nSJj4kStdT=i(??V&iB#|3ru0&8O{$m+Nt2 zY_y{W1vflOT=hJzXN~TV*sIq*+rCIkUpX9h3y$etpOCgs_tf?2=m+2LZi_<>D_`u~ zdj6h2-)w%yxp8J+u9r2eyMJKoqW(1wJNSB?rqM+|JFv3s@dvZZ^*3LW)vi3<^R?yH z4A-8GWp1qrvC(h7ej2_sK36qyG&gaIr}s^Pu2+j)r_01#o8aM__6=g5)sFT+4~)vQ z$*bh%mrFR~_pR8lCEuX<+o!ej=ih)Jz}q;ccH70WX_pt}v@7R+W<;LQC?qH4)j1Vy zdV$%hldF83~7vG*R(oAHX=>Mqf___N@hm)i)@bAf!zx`OtX*=rn zqFRr+-E3FV@Syb6!pHkU>_03Bv$!xme%`S`{2K*+>pY23?`E3>g&*`Y=BC}lo{XDH z?YtKXn?qV@jD_-Lf%o^j+HRU^GkfR3s7)UZ&+R(Uv^{a{x3x3*m}gwd!Ga4_qr*?F zGj7;FYwGX$I#OcVpzB%B&^LRZ`;C-nER54gH~TPW!bF48vl~T=cthTaugTg#^pO`u?6D*`>kh4R;TllkHr$wYuiutQLR24N18hR&qMx-)=RZWzQUX*WuZT zGZl3g?)5PuA^i+&EM`al)^Y$n)FN z($Nonqwn2ZyH;iXdydV;=}Da4lVjfH?DYSoV;p~WR<=s3E{1E{zi5!FW$=A3n+5L_ z$yfcpsTfe->&*H%>JgPRXC2FP*Ms2A8;cJr%|2X-sZRX<{_%>1!z_G42lpC&$RBU= zWY!xmqs)s35i>#dxbSE37oH5ec*q{JEq`7wUNnqqx$?d9+M=xX9@{95L8#B3juFd* z*ZnR>Q3pRc$#h=t*}U{)!L&(*-My!Xqn&fk4d1mb(kbuw!@IkRkENuA@R!yo``@}- z40-*@yT||PgQpEcqLv#EQ;pldJ=wa{?M%3RsA!*$A7lCX8xZZ!)Bpa08#W}yJV!?sl!6GZp%zdsA(hOI` z_pN=zgw^ba?6dI>_xEO7T{u&dwPbTv_oz;t_T+lk4g2TokCVQ7oTr(&gi7fWLS$BWQr>oBkouReoejUENE&WnC}owu#33ql6a(SAOn?+sVt>`oDyPRjQUb@}BxJ+{!tX)-hW$BW!M@$H}H?|3tq7-lnN^)f4F!!F{>*f53W zLz`RW^W~g*h0B7B;#`7PY3Y{Aa^Q2amY;WJYHI&omUU@4SVucW41WX(Nks*Nx1ZVaNMwpF_jhDkBuE{^ZliHwpi}G zzF1jtDpU{3SdpxgfC*e+sjmh;fk3XE4q5L|z(Q@-Rqqxsy zr3b7cWLs@VS=pw3+xUI(oa9D}E`Q!Uk9efo6I>9yBhiv)v`i{$?E-Apli;k&v| zXtL{MyJ~;DN;&NTM`IAu(@66T^!ho3>1JK@o~wBkVIu-ub=9+#@(`am3rkUOl)`Sb zF@I*sv8^A+p<&7V2`@&_ZkjbeG;IN{3z|~1WWc2HpLfEC?K`-lnCv7xgh3dG&x5}M z-Hnoq>ux6H+CDoU`fP;}nsTAQ!#+bZNK6p%L@vj4(Ked}mYjcMxJ5dcxSSn!S~KV7 z^%ubFZ7P)7DrNhF*>cV8!afwJoQ^NIFyuTgdtQO0)m0nDEKhdV@VbjN%(VRqaVwGZ zhB$z+Md+eTm~FkO?NgZ_zRX5K3aK-z5z%xgwhB?(QhgS4yIRf$s&0o-(Q75Z0~qgS z7UrvP8S_1*W{$@mwpC!8I9jQiu3Z~SoB5;!0;+MpA37GR)zK>(@>DL$*}uExTe3Pd zV>U$)NJfPJ9EX7@KT)#!iE5Xh9hwkl06K!NPzWc(K5{p=h?1(%2b9QAeB1WKW@+?o zhI&D`clUc@n|efs68)~~x$=2@vK(oaV4R1n!Z>koY>>zy%vESW6FgQ% zPpGw^(4>+;ym?VEHxvrt@V@0=PZ0-4)8>N8=7Echc?ORebR-0trxd7wj>(2pe34T? zq29!xSBU4Z115~!f(zqG!l49u$#2gc$tG`o4MR0-UDSr5TlFUu#02Noqv*UH*U-y3 z`SGWId~|0Y>fJG2{zJGs6%Hedmb25|?DfPb1lsr+_}ti*$8@r+Y^#^E5!mmSn?V@u z{ay<(ud}xVv-pH`D$2)FX^d*LP1f`Hok(F8N|Meq)h@YGW-Zn}Zcu|AX3kx{t;h<9 zK~W(9Sh$eEBOZTodM2yjeMr?%k{;$_zIb?JNzBaWIu{6pTL&57pGbL{M`sUGm9cHBY zRt!2LWkd7yGl#1S&4ZVsT4x?$&veEMYtu!CJg3ksy*+K6XP-x^LAhxVa|x7!^oNxC z*lW?6a6eX?j~(ZIyt@i5!{6<<#HuwMNNcQ{3RA2D+hswB9g)ZV7n_yGyAedy{^Ts? z94=tXgRe9f6Kh4rwCi#*BkvB_w4p56sIJ&NmcF^?<7BPT!Xl^+_oM5#rcqq!LSzD- zj*q&x9K~ze*eU7vNLQmfx5&=l4RL@J1UARyyw1@4s|DXnEtN>z9~Tigm8FKv?Qp=F zRyy3S-`I3#7JdINtv*B$I%zB4qvkh{ejT5Rt|P_LTf_14XZcE6%{)eH1Kh<+)N7ep z&g4#2e9q|!*lEHBP9)9ob)x3v5k4p!PaHLpMy>nk5dbeo#7Gc^Kbkf?3#>>vG$@{; zw}nh8Q;e-XX1&96b~A`{?;x4cA5K$gzxnPc229jvy@n+lowy3ICDCL;z3NRIH@9A| zn4)&Yn9ndsa`L{w@G`S{Lo`GpWSA!1fdF>`G8N!djE$!(RPg?fY@%ECmi44_*X_SD z4PB-bSYiltnj(n^cTMgoloPoyw$ckP15TpJK}-QLx|8^3(~ifKUz(28FTSz3Q{G9e z@++65yl+^429}a+y)iK=34~%jxkZZFhT1{Ri;oY{BL}o0nX{*~5{78v{Wf-5n_g4A z=iEC(@KSrl=*sa7NQw9da68A?B5%ocRw(~MO1lE#A1Y4YBGEl_V+}+Nv|w^#B$&cl zC`*`r&#uZc3=im+rsK=TQ|2HlK5T{kdVnFm(FIk6ei-4!@9h$$Dhr-xc5#QwI+h$B zrQ~!+fI?t9nM9!HbB#IstxO+L%s61AZ>0w^ncI=a6AsaT>Jb~f^r1>iCPEuvNUa>l zDWeL-b&_ui<|qZ;jSV*r z`7`AK^va7_D$1trh1H{-q>_R$$FHVW(PLWG5$_Yc>KI8|H^a7|${pymcyjQ%? zwaK&c_Vb^t-LMbr|z!ze4IX3NN7{d2-GWai{8f#MddG`)K7fHLT zW`L4TkERqsu;s=fQnjWtmGKc_4^qIBu_HYq9RhJwi_e(fY!=`P%On;5 z$DZ)ldt@v_y&Bog1!CcdIn-kH@rZ6y7L;j$X%WzE z_sL@5@RLZo5K2axp-m~-V@M_cWJ6?9EB+F`2giLsqI_p(_6`=slXN;;UYS9-032f= z6onoRJz=%!=wUyexkhIoiMxw;b0($(iqITpPRH0V!>yXDj)YQYXc1>fWy~p+1nGHe z@?j#%KL9=jrBoL#S3aD#ELQ{@r!J0mOxI=f1R4$jk2#ce2!g(7i!XkJp>oESj92aS zZ^7U8`c~j&=MGu((!=t)ZxQ*@2<5u%Ut^drJ5gkopmvS6`l`Yj#8B-_-y ztOUTX%uHUNTun_?_@E{4I`DDkE!2M z4p;Tm8uA_-88D$GGR4L5S8SQ%=bIzFJ|HvLvTSPcygFqz@*(}uLk+=!gb6w?cV{2m z(v>rXE=gA3E(A$2CrO`e!0FQ>%G3x{){QtNpWEFP6Dq5C>9=G5nHn-}s-EG$+ly|c zKlt&H^T#eG^CmnRqryCkB1l45`Bf7H8P~b)C-#?YL&%l?ZPd5U+__tAwsw% zkhtP(6-|0CqOFv0l@`)0+EvDCir~x3yNZU*^D%vR^Rdo!x}Avnw_zbHE71}W|$yq0F2tY zlgj6Q-R1$f+*0b;-*{1S#Sd}ZKVov0CWqGLpuBP8?tR>ZM$gp|doPO6hvY}&A zC{oSf3?Q{c$wLN%KxdL_aecfrJusb~ZI>xaf8fV2n0g4R{9UJI#h+9h*e2>(Gg-8= zNX;B|0FWn1B1-hIk!yI<;i@HVL=QF)L^qJCT zLe$UrLfy`QuZ06Yg&`ht3E-(%nxpSHMLujYKKp3(mY$s26QFS{_nxZe%x5mXOXFLg zsVXyv9|w8(K%_E?BgQz{4{c>i%qgU6u504O!{ZLT!lN{oW_ z*Q-8)0L+Ej*J~u(5EDOsGL_S*_*?j)SZ|btMmOa{7+$fRf(uJECfW?_m6W-j=wzP|90u10=V@~TSh<);pLM?VE<;fm+TS*fzn){t*-d8gspK!3>Iz=U&vr~9 z91HAse&Q*kLJLoWEI#rQ8^ zbGzVvNhCj{YEn+^t8&H0X*A1;jRVcW;%!@Tq(|FE;~_S^BCEs$%1a5Mv*KMSzF+Hx z2mNO1ELl_Fk^wRZ7OpU#nU$N$Nt1hP?rt0okP6@<=-=`u2DL_1q!_A08vt?u^S@~Y zp$_#sNX2Sgwzy*W?qy7DYN+y5lGuT0Hr&aEsmqEW;IZ7!H}J#W2G%;7uR?sCF#7QC zOgpS-+_J)B*hhv<3c9JWS~oz)%e2v0-PLtGEhX4MQArwT&uRl3iCmQ_!&+qO_%XX$ya` zLQKKYy{Llui*&0eL>_G(CaGZj$I)GT0o-;Xlt0Zl8AcCw=3*IeIMXn|$!jt$!^M`6 zbA*+OkSE8+R@93iou;jym(a%Nt%r8QS~^~Rz9}Ze!i8y)T`)ZHK2PwG=q;50Yq)z( z|H!Id)YJGgq7U;y7V9^r*2-qNOYUf0!b_lKv*>nu4D438S3lHNJ%Bugwzi9$Up5rft6-rp`RUl&h zY<@^65>}FM3sv2zbXc;*i^K-sMWnMt;rx=)E=j0tq&%Q~%+5QLSti0g&TJ$0;OGwn zZGEC9qZhKYQR#_VdKgVB6O+7vSh!yrJ@`3&P)ssxpqwL}M61&SRz8hY88PY%B;Vp zI?w%+I`d=QianLj%hntL(*kEZO5SWs#=Dt9sDhI#tvsgyRwEg0;o#NDQ zVsarrb+>>#ewlTxinbY0YNy0H*YN)wXW#T-2L5pw-Pi7 zd5_Z2+Gy+Bn+?zZt!{g3*}VB3d%$DWMLdU)gE7J@T6&)mUf*{tA*EteiloNB;!U3Q zQhIc+`@Rw)6dPoh<6JcsolZXpM?~nSEq==RC^jW5c`s7~`P;YsMSlMgd~I?B!7m}d zD%p=!Qo^4um?%6kHm%9SKWWxXOwJCNOoI-9mpD%}SL4-}oCj%Y!VuRKdklN@{@ zS{H`1&5&6o?xFnTqt|YMeCe3J|0ZpWJn11c_b&Rh#cCD_~Ot!oSSqy2*OHR~kbJRZ9atJ(3^^`F@@Q@T*CItVOz=`)~HQRF^UZ}5MF`o_x1 z^>2z+GyA@d*RyuyVu5hu^%Q60|kj zXCSdY2h~T?fuMoZmGG?^oj{kmwlL27VsZWu`Qg(B=A9R#u9vdFli?GvodIgP9V16% zx1soQea)jv`+fnYpiyE-jm#i1O$5&VUgDglJ$OYR$456G_yUqH`){0An^vRY))Jtm{Rq=Ki*WeSFsNGI z%wKmU8>5&wmn)Y?o_4|YES{bG*oIA#XeCbT6kJ4t1!#)(Pcv;IiUvYM$U?rdl*;7)!? z{rsVtBQ~Y!W8{eFF$r1P6IhLT&m6~(|6<*gwRmBb zh5s8715rZ?qoMibrMEbrcjEqwg#Xd5hZrH|H~(Awl>gQER}i$S6WOrJ0q42u8J-kr zbqrK167Wo}e$fTU%L|OAq?ec6xnj72&64G$%gNko`2;8ICvVIZ;EcXc{;U~-FPAg| z6@wL}hV(#w$PhDRsDR0@=QUx>-s81V z3f8rbuPF_lVlgpE=814a0nYEw%pk0Y@#0Gq_}3D;$f@~t zsSA3T4B10*N!$I?AB8T?R*!ofRnIq@{Ut1HS&l3=J@{a|a&*y|DchhlAYBOwg6}f^2hF*vh7G7zRlk8@h(}$tBgAyfTX#s0 zMPp6&fpeOq(e<_b)b5Aav&FLwcllpKvl_OP01~nsxe|~TFiLo`p`hfcn5cB{X*Zq@ zDH&eLyNed72Vm-QFrJj2C41SaL4Xn0UV_Ym7w>>NADp9P=p>3K0S3H~jInyzD{lm*I?%w9wN0|P9LW1?mn(RA(nWNQ+#DBpT%g}XfS zt449eWkZ;@mBj6r6cKh9kJ#hjj@TOk>Fj$(wdeb#0}!7`_0lmUJ-bABC8i0jJt&(O z`AmWbOIv#J#gM{SSCS#Y>^kOZ8=is3z4p95IDxjx!$ITa++yg07ZrynMcw=^>vMY4 zCba*f%@MV#Fug}>5kA{F(y@%dM1^VAYynAi;0S(@9R+}i*2=Tsc+k$ccR2BgrBCuv zDolqlHmCFZUQu%B5o|O!Rc1I;ai|T~FUbdc_9u2Z3@D8`Fgvo$q^DJ-kP!aVv z*Lktc`n0mLD(>}cXiO*Io<2rySqPQ)w7a=hW&#=}MLW%+ijdRONbVTK(x;}dk5lng zs&YR-KH>%M7sWIWL#SGZ$vX)lQD}xUz(iO5Thu!q2kbwORxyoDr=Cx+Y3Lz+cSyKK@#aL+$Lj%(YM`>iK>dl9a2Z=H|BU)~q)w%ofvaHh2G z$OuHSD4FZWEp}P;*+)7R0R{FiQ6sY+C{9Qzc8T-6N6LYWAyQK;WVUq907d{HLwkTg zJCB=^L}hKlnpjy6!dc!$Fjyu32bhr(KE_dIqFQ+d=lULhYO17`aB8LtS#T4_8lQ=X zn(`IGcRYB1k`!}U=N|C%_KL?kQ`Sln#bnH{+V235~oVJ7T zq3tHk34fecteG{wR9oKArn;*!;l<~(f z=oAh`F386yOva|D2znT`+f-HaOi&LQcfJ9>NlSj%Xw27@ggq{Xunbj(&NaG=v5@(sI@ye-Qa4JTJtQO(Kb@*4|HMZyK9sixG$@?gjnm z;Sf_sn?{$PEd2vk7s?AX(^{d*tCbaobpC1C!xN!w-L_}Y&p{>*8c=q5Yim8Pe(!D@ zCYF4Q?6d*kcK8*MrEO%4J!wF1ot}>RMi|2OIu}Z>KoEmz%IrB95o=Lv`gk641MP?X zHfKXnl5M4JNI`7Es)~tCn$&(JMwG>%JF8(6p-6F@w^-bu_nBI6%pMWg6@x^ykxO6= zjV(r_rs1d{ozu%{&Eh!rxj2CSF~Vpc@)Z<-vrgg-#Y(p-cwCwqvSc9>Rk$>l32(b#tWM)%9^@pJ(i`*KOY3bLP|&t@=o0|JA58uPrwdIl zk=0lc>(iCVK5wa3s`_hwBT#K8q;>CXcu$3+xs6Ib1QA9wg&bMsTBfEJ=nRv3623lh z*&F2<$uP>`BZXufgRoP)XynBDMD`=JOX?i5D1mZou!A_c*3nELz#GM^2fX#OdL1)A zjR51g_JIVvg+rYugC33ajc*W&is&@GeH4SP2fAlOWw(Ou)3bkXKx%5rf#fuK)lH@~ z8M1_WcW+wqNj{FU)TO$t@>dZv}DHb6h;*@%vh%5jvYYS!85ga68=*7PCD*fqGLG`tu&%@>f*G+{(HlN z-E0!PWeW1@-4bTaAsMJBrIq_Us;?R@_Hr7|!#kJcr8_PPEvM29SLVXeo>ui~ttvxU z(Ot+>`+e78SSk2c_4y+w6PRf|U6aL2O`eogf!w?7cM{R9FwfT^XAW`S&+Q@f>BoH+u1!PQ$DwPm=#HC~}W9nf% zp?w)I>mN_H3vS-h1snL+8@;M&LmS26<}6%A8v_wP8&m}y)7Mj zmH_w!YjKzLJ1i7d-3H?gCe9v8{5ex=-7|afuLG6od-}2Jgfr zLaN06vjKjG^=zY(cN;(VU^||>RVjOxnD^(hXZ#1C6o1!mO5ivB0`SpOuVwkgI}VsJ z&*DSaL{pZC;m4^!ATh0NKZ0Qe3gl~#J}(+ii8*t4S=+&3Z_~7v&PsQ=RRNvZmSd{d z6uk-|r-Ynw;{OIukV-tM@{5=LKOGxnpKWx;8BK6Ic@!*vi0KHskyD&)a zT!P8cpW!QNlQHwW4-h-`3L)_RoPlhJ{wGP7TrotpTI%0F@uq&*Xe^|YWvBO3%Kynp zz>vpK#ZcI#vH#qBSGWcJU6+gJ231qjbwt`Ye+4&0Gf{=wgRUmwKb*5F+yh^m2KSzt zzxkj*h)~sXyNfw}?%9K%&`K)>h7Tef8=r-7S;C!7;(@{0wNHvnlOSkOVkH_x+|tMUHxvs zoLBW13a43F-tDz24Z7RTQ6s`qW5H=Q{OS+aqnGNO_5zbxbeT!# zMG|Izt&zT;-m{lZ!oRgT?tb3qsh~RYdiuNwV zT7AskadEqh1PZFNn(i^*^7#)beBkN3^r$^#>&2S7lSOi|jo^C&h^|UjoYRS%VLRle z`7@VM3OS*Wm%dG6Oe-D4EWmihZ51>=PgI2pHb91SYP_G&v0=F5qUxxuOC>z11ppDs zaI-w2cs~WQSF65zx^bf-G)p0bri)){{?tlrgNEk+IzghiRr2nG*vkDv&PO#Xosq9H zg4`6}^O9@sDBeyHlgcAgg>dS9K`i0t7@2c6ur(iMO=i+ai`k;lC7#8T4@3$cq$6sc z8-YrG>2LeyvaDXq#2Pc;Xk8xIlmqQvHL9+ij^y58%Ct!+pJP}~f0=%ISn0U@m7(H$ zkc$s$7P3eimMnYp_c;D{V=A<9n7?8-FhH6-o?Zt`_k#>SVt`33zcYLJAWeeHWO;5{R(gOV0A7+VOtezlX=X$*u6dRhYV}06Wmg?>8;~p zK~4#Z99{-Xu_p8{zJ&M+szDoAmdOj$HGI-ooE&wK!exU26bsG}Hj@+mjDs!vnor0gc|9?oh*QhqRB#3~tT`?GacrgI1!G5kEvQBB9G05jeoW3F7dJ z&}0N6M~aWYNt7t#$vu_hA%7L$_=AoYrk|Tt&q2ya97}FY1|8xKGTB z=2}@6{2qKEe2yx;3zc^1*5Hgj#jFFq8;db78Vbf2;Rv@yijVKqq{0Go)#6V#` zFwKP#8MU_$(5tRK*G$5jJXI@c;Gdx-)Xqn=%8_;i@C-7s`=^t*qG()Tf%d;nAfD5A zO{-!nJ3dvD`vNi>HWY|Ta;FE=YBL3tS-f|16FUZEm zaj5C9xISQ~wA;H@2h@D7gGY^IsEJK&XB24!PKuLiXlz?YN75Bvk1xvMsJVWU2I~&O zE1)^hS!pAu2-ht=V+TI{8jy_>CC!+KP>5!>q^U|tXg943%}Q_I;y%}sIgIP{JfE{& zaod!QHoP7g5238gMFwTY0qSnD$|m&x5?_ZMs2u6Zn$`G#c2}zhB?>qBzxHwq zc{?YP=!pg9_$|%~mVC|M=y|apa5ndJXAwK|aY(JRtcvs@U0@xUD{X>O5OOv6B&8@$ z%DIYmaWaR@g3DYz?0@3nYQM*Nj{8k3*=Cp^vkdI}Gn6h>6j9217JE!>oEt9T#3mFM z7aG+_O)VEBtB|_TDv8id3lLug9LXgJSq#$eysOYRryf$&;UN-}D&okTLV-qG*@q<|EM3RTi))7JsaEwCmJj)4jr;8zqCnDuZU_s16%%V zOdghS5cRiLE#AtI>vWvo{!~00B)n1_J4Xn!xH6o@e&mDGOIV8MO7x|i`(noUXEiwF zzBJAMcD15-M**L{y82c00$Z_)+C`?P3Sd>Peub(w9z(-LnKs`-eEit`$t9mmMkZguIfcimI>C&g^|5;|b{hHbSM&`1M91DKYQ z?BsT1$eC;iACGuAzJGL((!jP0k`XQ2V{x#W;Vwv$io%3bo~yuM?1VZKbXCJAdI4cz zO_hT?5}=6~RFnyE0zbYN9`-U^C0eV>-n}ivlBhi#ng4B8ksSL~`>YJzzhQqH=rxIY z*&~X%lj44^0_8HW%Zjs!jLgDO^&z$Bgi`g?ptv5=q-{H58M8ASpS@A8^@32Ab0&4} z`46zGxD~ke@~I2SVmal5(`ua$w|0o-*cHj<^Vp7DFbr9Mjv9z)D!MoR3B>6N>LEJM=VM%1HcNF+!d5(LlY+GEBHA}po5 z$D@j+t90K}@3hy?L{)q44~uE0T@C^dkWki+^}`z}AXm^7KV$f-(KT*RMj5K>2N$+m z=&a|{xA37Bg-XW$Nh`x-IdueU=jIx?x-Wh9L?t$^N7E<(OTmJEe+-uzNzsM-%&OOVmh6WLifH}Jd#bQ2iai)2jftD!UO~>#H$>L;?jC54 zAH1>V4RbPx95xaRHDNq5?2`52keJ zl4JNCP_%~CT6*F%i#%1K_{a)MYWjE@?Pv^x1E*eASe2Z$^_=o;D_x$Axa%>CM2r5A zr8zE8g?|R&L6y{MMTMSNncP=~t&EfAjj#s(ms71MH{Ugf#?H=U!$aaHtm7K%Wo%uw8?s};?v#56zb#2&q_0p%S zW&V@e>WpwIcxlnxawAsdkxkQyPI}-;?$lH(8BOtAEe%VxnsPSmqrud4G+0_ArHs_P z9i55_%S(Pf<4I$j174|R!dRmc|m6I~4RCqkOI9w%h;!^1>3b*3E#MmqTJU=oU2E916 zjd$FH$84jNp=v>A;w#0#&h;o~ZwktCvmL~nTvNbA>XMp*Vi5p_QBe#?7sfzK3wDjN zf#qLfM2w3BsFNO3rG*iH6~_|e08cFtM`0C{QUKBL%lQBUa1`?!oNmHfwq>vfp*Pij zW|#9q9~u4#)nchugSOT_8`~kRk9%Q}EBOMnw*0Pl1bsGdaC!Yigkt%98&nAyWRS{m zLVfP?%Om*U0lkjG>$IhcFuMZ#Yr`+TmgIOnIQU}z_>V)N}}yUD>*^DF}9hKQX}Bc zyHy2A&R&}vCVRcX?Ov9v*|-^^|J!-5-tcPXAAl1`Hyyk~Xk*6a*T*vWjw(RC<>6a1 zI0VI*K`V&m=+!;>1Ao|IOX;cb>f%)A;@woIohl-w)$o8gg7i3pV^Dz)G!IzbL?;l% z({alqOXea@yv@RLlrHvZ?d#59a(p1TEo!)P6=A-JrCGA)CQiU*B$-P@Ds~?wgyANv zQ@7_r2!)gM#~P%SiQLr%YXS|h94*01SEFU1>Yd!LGG%J#1>JXr<>m2iZ5yYs9)Ia! zzQ;2+^X%yiN^&(oZ%~XfYVBmsFu}yyks~E|R|oJXaJ3Hb5$$oDlXVncmETqAEQWBI)yWs1bYg6QcWKcPGSQBKJ>SaTIXoU4qa>XXrQGTPg*UYy5$ph~TW=E=4 zKNgSBjjdjgwf;N&7)_1w6sstfpe3egBIy*l`?uzU`3jXAIT9w+1ZfH8GhE1C%8<1y zVN3dzDXvpujc!F25~+t-9_f?KhzX!L5ig&{o^3YDc|>wM|D_oUiPmW*U6_6)u8BR< zz$ZLXac|;{Zc2MK-nIUUU{E{;9;%XRVq%XaN(aZ@d)R<<)n;TCb+rTKs@t3;(UJ2( zL504%n~rKfyCk%aBkKKHd~Zg#msY)sXv8RXhu@rY(4YwsxQB0gjm)gnDrSV*uxK4^}2UWY*5nAb+BVwuxZ!*sb$zViCG2CQ99d-oro{vieSW) z;D-oxWX#XcMC_AMN?IKr=2qd~_yf4OYNttmu8>~FQ2b&3B*Y6=F4C?KdvdG~h zTe^9q3Qs6kJ8R@9_h^Do;qh6emMCdTc(f1S6XR+enFkN}65B z?I6064kBGe;&Y<^Mp#n#&|p?{@;CzPV9mRkk62!Y^P7|jw{>r)H3Xfj9T{pDE+3F^ z6|PZM7%E0&K^%z`XU|1PwR8+d#sL)*R)E!1aLr*tNZ|nL$`ax0CvLq1oa!fr6NeVO z6^|ptt1qKw&9A#rB#*)vgOa$Mn_}wBJ@C3>ogLYdfo7zAjYI4j8`?mdE8}QSKxUOH z#C)2N%J6QFFQ?KMd?KVL$hJ54M#8=kqNq3&zy;31OOwXRV8!&LhG;uHLk9W^BKW^a zIoa2uab z!a>(ir>R~m<$8odF}s4~ijZKvsd4u&Nw_Qq77%_{)wx6Jp!9bbTQK>ju* zxYNofW_oABDC&a}hGfU<4VRR0X)Os#lF9>c6Dfqg(zNBrOOM4i{)iXUO<|dV+oh4! z>yi9wy~Gr8SMYu1;#BV_z(I}6O0q4Wim0xYC(&Da zjY=(5U$Hi%*%k6{smX(d@?{HY)^_C32-9FV7MS}O=ot^xWdql4Y%4Vde)ZrmxZ)}9 zrIpt0Ca6UT?zg2pF$x~fl(Hyz44Cwd%acpl21c1)mxhIYYn#pTh)qNiyrwI@Azs`c zhK^)(=&t;LeGr0T#2A9&t+2X|2{f_|bR=NZ_AXJ=*W>|TDA-9>z>LrNc6gtTmEQ#d zN!s|?RFE{m#iVY5x#45BO@0-k3GixM8ECV3fKpG+ zP4(g%TpJ!X!$u>CaW%Fl8cm=_MO<1mW$2E}F5Xm+nlh}m%6XbRxi}^~>%2G>sG8wt zm=|t4Jy{;IR}~XxE`!_;d2Y^u3SC@y?`lx@H+is6C|9AFx++c)%v2m=J-T48mqU|z z95Q7>`4x>NoTGb!m_^0Ttsk_7+mN|_3Tx<@dUyh30L}6xXRq}k6;eVKBOtR}nJ*9y zKL#a(;yAD!HErm=hY}wd%|-q|>Dfn0UE9xwbT8xPN)BpNI;?6YU_O>;7?oqCzF(n> z_hs>L*s@mgx2)TE$WNrK2=SfU?S-iIoZNgt=FEh`DLt;fw(UXK=8(PA0JZvz&#SJA z_!!9TM8<&RtJpwVy0pPMTIxb<3`@WWRJatTZ)huQ2`T@B7NR@2nQ0}qjLVg?Zb+FV zUuhPQn#zs@7A%H{lqnO-U3&QV4GPy*1J~BmR`gEyM(B!1Ofw5G%;M(HJWe2ID*%oD|5ap5?SGwS%|MJBIOWh4`@V#GNM>)DksI z3j9^pafS3Z=SKv&nTpbwWeJD4>Y9TztBLH!jrp7M#^K`n!PVEC8tQI{0o><6P>dhP z?iwvUY>h6o8FFAMjDT@FeXSZ?&Y}jc$zshMlmk2rAG~nV-^L~jC@rJdMPPYfTE-qfJgUFSyKac^z0WOJ-60C+k{3EpZ z5*&reDgSjzVabea{+eA0Z1_sSS>fpGjtY3Rav#zV*|9tycxaGCNq^J@U$b%8gShB= zP;k-gJS+I0{Iz6QBxOC9)!-0a6Az6BBv++6lI+MfFw0En!VOOgKWG-!1_aA7wYrd_ zvXQ7eNZcw;bvl@H=6I^yfjXkJd<^1yH%q7F7eeS?demic287z($yL)65mom1QtjC= zSeQY-g6SbRg@fTK8W7)jkLH%#+1MKMIntd-O*SVwYp0rj$*+Ls<_-^T<86uZ=3?r( z&d*Jsw>Sy)e|Qtj|KUx~N`G#+f@Cqqj_jY~AixT+y80$0X8~joeDn@Z8e7o{9xZxE zk3UeP{C=t)Af)<-Q0+RO4W(T)MY&CMo6Ek?!w*| zzxjm;RzE$Y(hIU_M{Fm0BFhnb1so6FZ1^1C2vrWn6dd|5h0nhZewL<9574}{xWTR5 z%eTh8K7RHWgsYXF(fJ1`f(TuGfy|2>;ft@_A63_qo5yPIg_$4A88Sab?nT7xr5{V7 zpbo_>!|G)WI)j619ltF$K{MwHdff~!LE<_3gRLMqgU@3ac~ETZ-RV(rP@5H|`R&bn z+~M>iX&Wb*){dlOKiKw(`n?ZPC58OyF6|VekTYT-&}8)VSkFHfY^TtwO$u?R(1uV6 z$nQksR!2~bz$>YRB73D%eANyRO#mASvA&lpDTLaWQQD)&Rj4cVM+=)*5!&73i-i!H zq`fM9MPagB@o0`ro^OzYPq4uvK=+hp9Px!2hCWJ8y|tlc+%?{aUhwMPIWT@Qg!bv9 zf3LL6IOmVfc`buB492abz@7&?r>_bA1Mu~F3qTGLm&jhxD*5;C4>YUVb~5PKGg-rE z4*`pO3z+hMfapEQ?cR%h{0B(7U~IW=M7evM$X7sbys^zOzYnyzmdE$SY$fLU;@7c? zo^*yw#L0kR+#5{DMtcjvAvz3YH8L;_U)9piU7_I$P5%7ZwueS-;{f_e)2yl4Py{`` zmP5h3)A1*jyapS;VQy($1R+^vt-cvAb%lTIUx>rvng-uQLmweD6m2U^w%XYa4e!r) z5m%kxzYdO_N$DX#%cF@^u9l#VM!?I9#+Q0=_|18!zg>C$*&o1hz^L)_a~&1}Ba9hO z%XR+j?MT4j-Gm;=gWwh**PoB{JGA=q{Y^%HOJ==lUg{u9-Ot>{hxM|JMhxdFi zg0h$Wju^`T%Ne#sUH%-AmB+eowKGeMF?iw5x==3WN%w$2Nit$T=Uaql`FsO|)sHN~ z<*_}F6<=KR{us?&G-*bS)gS87eB~`hR#N9}*}4AL`r#Zyrmn zkcN@aM6ww2eothL-__b(cG%2N$L-T)PE$jD*S4uQ@dzLsVi4pFxiQ$D$n`bEfUq^I z6*?z1;0~xK+L9lFx6(_8AB&yuia+Y<8T^Cof}ce*3Idjv;-#mE2_S?0Wvr7outDIG zLBKDT3l$=g5y|{x7*@{SvdvsRy2NvDIeRX0XcsH&2~fGJg4FEy!pG;FLyrM{;I8fE zPdD+Il$LhbmBv5n{{W{M5Zml|7R#)18S)VnwlbK;?LCd|l449`^(|*C_*UfJq>In8 zf3+)KL@QGyZNg6e0jmD26*20S3M_vdU%6lvsXpKT@bLchx6wBk+eToQuk|JPFCsQ+ zjgLwJ8`2P~`ZQ{)kIxn7cE+VLY!fJEE)giUFnfmJ4S6Hp$~-wgs1)6H_s6V1eU*NG zH-RotndpS$mFrTPOCAUR0zUMS(Y#j22xQ~TFcfM$AqSdJn_yRDPCmc>pnn?&8;$Ak z$H_NVJ}0oOulUqQO9ca-M42PT|07LN;1~TcfVA&tl&{@)@#h*eN8X6XvR; zn+Ma=$MrCZ;afPeSBQi6M-ZVe+mjkR7kbujGD8ckUoc;#aDw8e{1K##BwsN|z)p}THukVz1Br=t+naV{U&^$*ZM6tXb;`d%nh zV$=VA*_bFixa&)wFfuSWYVTV}xJQ8KD{KAuoso0F^%L(eB+jLBLRazB2$}L{@k*yLO!QOAKGV2AeKbKiB%n}`(AI%j|c-g*Md7ZN2Vi!WOl`W zZ-*YAZ);_6q(9?GDr!h7s?RIRpy*Uo+XpN?p+0Yx=Ca$my0Y0;CZG}vocThjY`qYBuFR6`22Dg#CXc0rdZ+sowm! z|1U&8wxtv3!>mi5BCT_KMWGF$N|JtD0wp26(}c7rde~eDX;?_xp4=f4W{@~KuFe#7 zZUpr?%04h&_yv#9>P>0Kt)4rrvk(eGcc%PlmIf1ad{I4rsJB0+CYyH{{S(4mh2-tu zkiBo!eKoz^o}`D>YzBYCI$3b$>CJoLT5<$B2ew?>0YSU5o!yUN(X>K#12;e7)YP<9 zVFh8FC)X1QdxCpw!K|^V#Z{$$B@$?o!dO&re*et6@wH5PntWELEqW96H05B^N!RSA zi&|9``THxhp0S;rKIbPQXvfC1#5?NHbadI0kov)+{_Qu$y@t-S%CaSAu{e_yNzfYx ztpr}<0Z;BstdCSBVZ@wlWVW`n*iX}-6GFrtcJ-Rm9~xfhH7)tSOdhuG&>FjE8N+N# z`YoHq&Ue7R4v5S0H{%7kxLP^V8@W^uK9#l~lud| z{XgUV_PDG5MSk>9Y-M2aDh5l=P&4<_Di8ka8|@ItzDOs7QPPfnC8Q1x@$2I2OC>Q& z(d=7=nN8m7Cy2z)VKjt46;^zeMW{6Ar?T_ep|O`v(@XD>{xk~JkM(qpaPHiMrnLOh zLE~v$KQvF>hj&^vRcfhsMbMKFX7jM>=QcfA{$t#ScGY+@Xsv^6k%wJe#w5hLvZ|Xw z(^j_gC+^bHLuZG(kM6bJpCal(WmKBWvkmSJnm3NhmNKZnHuhOiPdK>b3_(C4Xyf}& UajCfzanW%QzXd6X-NV}d15(fyGXMYp literal 0 HcmV?d00001 diff --git a/src/Model/Contact.php b/src/Model/Contact.php index ee905a80d3..f563244120 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -687,7 +687,7 @@ class Contact { $fields = ['id', 'name', 'nick', 'location', 'about', 'keywords', 'avatar', 'prvkey', 'pubkey', 'xmpp', 'matrix', 'contact-type', 'forum', 'prv', 'avatar-date', 'url', 'nurl', 'unsearchable', - 'photo', 'thumb', 'micro', 'addr', 'request', 'notify', 'poll', 'confirm', 'poco', 'network']; + 'photo', 'thumb', 'micro', 'header', 'addr', 'request', 'notify', 'poll', 'confirm', 'poco', 'network']; $self = DBA::selectFirst('contact', $fields, ['uid' => $uid, 'self' => true]); if (!DBA::isResult($self)) { return false; @@ -753,6 +753,7 @@ class Contact } $fields['avatar'] = User::getAvatarUrl($user); + $fields['header'] = User::getBannerUrl($user); $fields['forum'] = $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $fields['prv'] = $user['page-flags'] == User::PAGE_FLAGS_PRVGROUP; $fields['unsearchable'] = !$profile['net-publish']; @@ -2105,7 +2106,7 @@ class Contact // These fields aren't updated by this routine: // 'sensitive' - $fields = ['uid', 'uri-id', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe', + $fields = ['uid', 'uri-id', 'gsid', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe', 'manually-approve', 'unsearchable', 'url', 'addr', 'batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'network', 'alias', 'baseurl', 'gsid', 'forum', 'prv', 'contact-type', 'pubkey', 'last-item', 'xmpp', 'matrix']; $contact = DBA::selectFirst('contact', $fields, ['id' => $id]); @@ -2137,6 +2138,9 @@ class Contact $uriid = $contact['uri-id']; unset($contact['uri-id']); + $gsid = $contact['gsid']; + unset($contact['gsid']); + $pubkey = $contact['pubkey']; unset($contact['pubkey']); @@ -2224,6 +2228,30 @@ class Contact self::updateAvatar($id, $ret['photo'], $update); } + if (empty($ret['header']) && !empty($gsid)) { + $gserver = DBA::selectFirst('gserver', ['platform'], ['id' => $gsid]); + switch (strtolower($gserver['platform'] ?? '')) { + case 'friendica': + case 'friendika': + /** + * Picture credits + * @author Lostinlight + * @link https://gitlab.com/lostinlight/per_aspera_ad_astra/-/blob/master/friendica-404/friendica-promo-bubbles.jpg + */ + $ret['header'] = DI::baseUrl() . '/images/friendica-banner.jpg'; + break; + case 'diaspora': + /** + * Picture credits + * @author John Liu + * @license CC BY 2.0 https://creativecommons.org/licenses/by/2.0/ + * @link https://www.flickr.com/photos/8047705@N02/5572197407 + */ + $ret['header'] = DI::baseUrl() . '/images/diaspora-banner.jpg'; + break; + } + } + $uriid = ItemURI::insert(['uri' => $ret['url'], 'guid' => $guid]); if (!$update) { diff --git a/src/Model/Photo.php b/src/Model/Photo.php index 2edca93870..d43c2805d2 100644 --- a/src/Model/Photo.php +++ b/src/Model/Photo.php @@ -634,6 +634,7 @@ class Photo $sql_extra = Security::getPermissionsSQLByUserId($uid); $avatar_type = (local_user() && (local_user() == $uid)) ? self::USER_AVATAR : self::DEFAULT; + $banner_type = (local_user() && (local_user() == $uid)) ? self::USER_BANNER : self::DEFAULT; $key = "photo_albums:".$uid.":".local_user().":".remote_user(); $albums = DI::cache()->get($key); @@ -643,19 +644,21 @@ class Photo // At this time we just store the data in the cache $albums = DBA::toArray(DBA::p("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album`, ANY_VALUE(`created`) AS `created` FROM `photo` - WHERE `uid` = ? AND `photo-type` IN (?, ?) $sql_extra + WHERE `uid` = ? AND `photo-type` IN (?, ?, ?) $sql_extra GROUP BY `album` ORDER BY `created` DESC", $uid, self::DEFAULT, + $banner_type, $avatar_type )); } else { // This query doesn't do the count and is much faster $albums = DBA::toArray(DBA::p("SELECT DISTINCT(`album`), '' AS `total` FROM `photo` USE INDEX (`uid_album_scale_created`) - WHERE `uid` = ? AND `photo-type` IN (?, ?) $sql_extra", + WHERE `uid` = ? AND `photo-type` IN (?, ?, ?) $sql_extra", $uid, self::DEFAULT, + $banner_type, $avatar_type )); } @@ -871,6 +874,69 @@ class Photo return DBA::exists('photo', ['resource-id' => $guid]); } + private static function fitImageSize($Image) + { + $max_length = DI::config()->get('system', 'max_image_length'); + if ($max_length > 0) { + $Image->scaleDown($max_length); + Logger::info('File upload: Scaling picture to new size', ['max-length' => $max_length]); + } + + $filesize = strlen($Image->asString()); + $width = $Image->getWidth(); + $height = $Image->getHeight(); + + $maximagesize = DI::config()->get('system', 'maximagesize'); + + if (!empty($maximagesize) && ($filesize > $maximagesize)) { + // Scale down to multiples of 640 until the maximum size isn't exceeded anymore + foreach ([5120, 2560, 1280, 640] as $pixels) { + if (($filesize > $maximagesize) && (max($width, $height) > $pixels)) { + Logger::info('Resize', ['size' => $filesize, 'width' => $width, 'height' => $height, 'max' => $maximagesize, 'pixels' => $pixels]); + $Image->scaleDown($pixels); + $filesize = strlen($Image->asString()); + $width = $Image->getWidth(); + $height = $Image->getHeight(); + } + } + if ($filesize > $maximagesize) { + Logger::notice('Image size is too big', ['size' => $filesize, 'max' => $maximagesize]); + return null; + } + } + + return $Image; + } + + private static function loadImageFromURL(string $image_url) + { + $filename = basename($image_url); + if (!empty($image_url)) { + $ret = DI::httpClient()->get($image_url); + $img_str = $ret->getBody(); + $type = $ret->getContentType(); + } else { + $img_str = ''; + $type = ''; + } + + if (empty($img_str)) { + Logger::notice('Empty content'); + return []; + } + + $type = Images::getMimeTypeByData($img_str, $image_url, $type); + + $Image = new Image($img_str, $type); + + $Image = self::fitImageSize($Image); + if (empty($Image)) { + return []; + } + + return ['image' => $Image, 'filename' => $filename]; + } + private static function uploadImage(array $files) { Logger::info('starting new upload'); @@ -939,37 +1005,12 @@ class Photo $Image->orient($src); @unlink($src); - $max_length = DI::config()->get('system', 'max_image_length'); - if ($max_length > 0) { - $Image->scaleDown($max_length); - $filesize = strlen($Image->asString()); - Logger::info('File upload: Scaling picture to new size', ['max-length' => $max_length]); + $Image = self::fitImageSize($Image); + if (empty($Image)) { + return []; } - $width = $Image->getWidth(); - $height = $Image->getHeight(); - - $maximagesize = DI::config()->get('system', 'maximagesize'); - - if (!empty($maximagesize) && ($filesize > $maximagesize)) { - // Scale down to multiples of 640 until the maximum size isn't exceeded anymore - foreach ([5120, 2560, 1280, 640] as $pixels) { - if (($filesize > $maximagesize) && (max($width, $height) > $pixels)) { - Logger::info('Resize', ['size' => $filesize, 'width' => $width, 'height' => $height, 'max' => $maximagesize, 'pixels' => $pixels]); - $Image->scaleDown($pixels); - $filesize = strlen($Image->asString()); - $width = $Image->getWidth(); - $height = $Image->getHeight(); - } - } - if ($filesize > $maximagesize) { - @unlink($src); - Logger::notice('Image size is too big', ['size' => $filesize, 'max' => $maximagesize]); - return []; - } - } - - return ['image' => $Image, 'filename' => $filename, 'width' => $width, 'height' => $height]; + return ['image' => $Image, 'filename' => $filename]; } /** @@ -994,8 +1035,8 @@ class Photo $Image = $data['image']; $filename = $data['filename']; - $width = $data['width']; - $height = $data['height']; + $width = $Image->getWidth(); + $height = $Image->getHeight(); $resource_id = $resource_id ?: self::newResource(); $album = $album ?: DI::l10n()->t('Wall Photos'); @@ -1053,22 +1094,36 @@ class Photo } /** + * Upload a user avatar * - * @param int $uid User ID - * @param array $files uploaded file array + * @param int $uid User ID + * @param array $files uploaded file array + * @param string $url External image url * @return string avatar resource */ - public static function uploadAvatar(int $uid, array $files): string + public static function uploadAvatar(int $uid, array $files, string $url = ''): string { - $data = self::uploadImage($files); - if (empty($data)) { + if (!empty($files)) { + $data = self::uploadImage($files); + if (empty($data)) { + Logger::info('upload failed'); + return ''; + } + } elseif (!empty($url)) { + $data = self::loadImageFromURL($url); + if (empty($data)) { + Logger::info('loading from external url failed'); + return ''; + } + } else { + Logger::info('Neither files nor url provided'); return ''; } $Image = $data['image']; $filename = $data['filename']; - $width = $data['width']; - $height = $data['height']; + $width = $Image->getWidth(); + $height = $Image->getHeight(); $resource_id = self::newResource(); $album = DI::l10n()->t(self::PROFILE_PHOTOS); @@ -1117,23 +1172,36 @@ class Photo } /** + * Upload a user banner * - * @param int $uid User ID - * @param array $files uploaded file array + * @param int $uid User ID + * @param array $files uploaded file array + * @param string $url External image url * @return string avatar resource */ - public static function uploadBanner(int $uid, array $files): string + public static function uploadBanner(int $uid, array $files = [], string $url = ''): string { - $data = self::uploadImage($files); - if (empty($data)) { - Logger::info('upload failed'); + if (!empty($files)) { + $data = self::uploadImage($files); + if (empty($data)) { + Logger::info('upload failed'); + return ''; + } + } elseif (!empty($url)) { + $data = self::loadImageFromURL($url); + if (empty($data)) { + Logger::info('loading from external url failed'); + return ''; + } + } else { + Logger::info('Neither files nor url provided'); return ''; } $Image = $data['image']; $filename = $data['filename']; - $width = $data['width']; - $height = $data['height']; + $width = $Image->getWidth(); + $height = $Image->getHeight(); $resource_id = self::newResource(); $album = DI::l10n()->t(self::BANNER_PHOTOS); diff --git a/src/Model/User.php b/src/Model/User.php index c8e9a61f17..ccc9261fd2 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -865,6 +865,36 @@ class User return $url . $user['nickname'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : ''); } + /** + * Get banner link for given user + * + * @param array $user + * @return string banner link + * @throws Exception + */ + public static function getBannerUrl(array $user):string + { + if (empty($user['nickname'])) { + DI::logger()->warning('Missing user nickname key', ['trace' => System::callstack(20)]); + } + + $url = DI::baseUrl() . '/photo/banner/'; + + $updated = ''; + $imagetype = IMAGETYPE_JPEG; + + $photo = Photo::selectFirst(['type', 'created', 'edited', 'updated'], ["scale" => 3, 'uid' => $user['uid'], 'photo-type' => Photo::USER_BANNER]); + if (!empty($photo)) { + $updated = max($photo['created'], $photo['edited'], $photo['updated']); + + if (in_array($photo['type'], ['image/png', 'image/gif'])) { + $imagetype = IMAGETYPE_PNG; + } + } + + return $url . $user['nickname'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : ''); + } + /** * Catch-all user creation function * diff --git a/src/Module/Photo.php b/src/Module/Photo.php index a92568015c..a863a88475 100644 --- a/src/Module/Photo.php +++ b/src/Module/Photo.php @@ -323,6 +323,12 @@ class Photo extends BaseModule $url = DI::baseUrl() . '/images/blank.png'; } return MPhoto::createPhotoForExternalResource($url); + case "banner": + $photo = MPhoto::selectFirst([], ["scale" => 3, 'uid' => $id, 'photo-type' => MPhoto::USER_BANNER]); + if (!empty($photo)) { + return $photo; + } + return MPhoto::createPhotoForExternalResource(DI::baseUrl() . '/images/friendica-banner.jpg'); case "profile": case "custom": $scale = 4; diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php index ca52dace8b..39481348e2 100644 --- a/static/dbstructure.config.php +++ b/static/dbstructure.config.php @@ -55,7 +55,7 @@ use Friendica\Database\DBA; if (!defined('DB_UPDATE_VERSION')) { - define('DB_UPDATE_VERSION', 1448); + define('DB_UPDATE_VERSION', 1449); } return [ diff --git a/update.php b/update.php index 7b5f6778be..ed5962cf1f 100644 --- a/update.php +++ b/update.php @@ -1087,3 +1087,16 @@ function update_1446() return Update::SUCCESS; } + +function update_1449() +{ + $users = DBA::select('user', ['uid']); + while ($user = DBA::fetch($users)) { + if (Contact::updateSelfFromUserID($user['uid'])) { + Profile::publishUpdate($user['uid']); + } + } + DBA::close($users); + + return Update::SUCCESS; +} From 2ccfe6b2f44a7cfa0244d825ae88d05da63a282d Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 8 Jan 2022 22:51:00 +0000 Subject: [PATCH 02/11] Updated database.sql --- database.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database.sql b/database.sql index 4179932ad8..b66568ddf7 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 2021.12-rc (Siberian Iris) --- DB_UPDATE_VERSION 1448 +-- DB_UPDATE_VERSION 1449 -- ------------------------------------------ From 8147073c47e38b20d14533b08dde8c258fa5eea1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 03:29:16 +0000 Subject: [PATCH 03/11] Added license information --- src/Model/Contact.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index f563244120..9d6d25923a 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2235,7 +2235,8 @@ class Contact case 'friendika': /** * Picture credits - * @author Lostinlight + * @author Lostinlight + * @license CC0 https://creativecommons.org/share-your-work/public-domain/cc0/ * @link https://gitlab.com/lostinlight/per_aspera_ad_astra/-/blob/master/friendica-404/friendica-promo-bubbles.jpg */ $ret['header'] = DI::baseUrl() . '/images/friendica-banner.jpg'; From cfd63f568251a53b9f93bd0e153fabc82bb91246 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 05:24:35 +0000 Subject: [PATCH 04/11] Use randon pictures for networks that don't support banners --- src/Model/Contact.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 9d6d25923a..f70d01dd2e 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2229,6 +2229,7 @@ class Contact } if (empty($ret['header']) && !empty($gsid)) { + // Use default banners for certain platforms $gserver = DBA::selectFirst('gserver', ['platform'], ['id' => $gsid]); switch (strtolower($gserver['platform'] ?? '')) { case 'friendica': @@ -2253,6 +2254,15 @@ class Contact } } + if (empty($ret['header']) && !in_array($ret['network'], [Protocol::ACTIVITYPUB, Protocol::TWITTER])) { + /** + * Use random pictures for networks that don't provide banners. + * The service provides random pictures from Unsplash. + * @license https://unsplash.com/license + */ + $ret['header'] = 'https://picsum.photos/seed/' . hash('ripemd128', $ret['url']) . '/960/300'; + } + $uriid = ItemURI::insert(['uri' => $ret['url'], 'guid' => $guid]); if (!$update) { From 618903fef7b374fdc67873b150aad5234f018cc2 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 05:49:11 +0000 Subject: [PATCH 05/11] Only update the contact when the header changed --- src/Model/Contact.php | 52 +++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index f70d01dd2e..fea8d72a07 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2202,32 +2202,6 @@ class Contact $update = false; $guid = ($ret['guid'] ?? '') ?: Item::guidFromUri($ret['url'], parse_url($ret['url'], PHP_URL_HOST)); - // make sure to not overwrite existing values with blank entries except some technical fields - $keep = ['batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'baseurl']; - foreach ($ret as $key => $val) { - if (!array_key_exists($key, $contact)) { - unset($ret[$key]); - } elseif (($contact[$key] != '') && ($val === '') && !is_bool($ret[$key]) && !in_array($key, $keep)) { - $ret[$key] = $contact[$key]; - } elseif ($ret[$key] != $contact[$key]) { - $update = true; - } - } - - if (!empty($ret['last-item']) && ($contact['last-item'] < $ret['last-item'])) { - $update = true; - } else { - unset($ret['last-item']); - } - - if (empty($uriid)) { - $update = true; - } - - if (!empty($ret['photo']) && ($ret['network'] != Protocol::FEED)) { - self::updateAvatar($id, $ret['photo'], $update); - } - if (empty($ret['header']) && !empty($gsid)) { // Use default banners for certain platforms $gserver = DBA::selectFirst('gserver', ['platform'], ['id' => $gsid]); @@ -2263,6 +2237,32 @@ class Contact $ret['header'] = 'https://picsum.photos/seed/' . hash('ripemd128', $ret['url']) . '/960/300'; } + // make sure to not overwrite existing values with blank entries except some technical fields + $keep = ['batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'baseurl']; + foreach ($ret as $key => $val) { + if (!array_key_exists($key, $contact)) { + unset($ret[$key]); + } elseif (($contact[$key] != '') && ($val === '') && !is_bool($ret[$key]) && !in_array($key, $keep)) { + $ret[$key] = $contact[$key]; + } elseif ($ret[$key] != $contact[$key]) { + $update = true; + } + } + + if (!empty($ret['last-item']) && ($contact['last-item'] < $ret['last-item'])) { + $update = true; + } else { + unset($ret['last-item']); + } + + if (empty($uriid)) { + $update = true; + } + + if (!empty($ret['photo']) && ($ret['network'] != Protocol::FEED)) { + self::updateAvatar($id, $ret['photo'], $update); + } + $uriid = ItemURI::insert(['uri' => $ret['url'], 'guid' => $guid]); if (!$update) { From bbda69a736de66d689f449604e8643f7e755865f Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 10:38:36 +0000 Subject: [PATCH 06/11] Don't store the default header in the contact table --- src/Model/Contact.php | 88 ++++++++++++++++++++++++++----------------- src/Module/Photo.php | 7 ++-- 2 files changed, 57 insertions(+), 38 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index fea8d72a07..1bd57d8561 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1660,6 +1660,59 @@ class Contact return $contact; } + /** + * Fetch the default header for the given contact + * + * @param array $contact contact array + * @return string avatar URL + */ + public static function getDefaultHeader(array $contact): string + { + if (!empty($contact['header']) || in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::TWITTER])) { + return DI::baseUrl() . '/images/blank.png'; + } + + if (!empty($contact['gsid'])) { + // Use default banners for certain platforms + $gserver = DBA::selectFirst('gserver', ['platform'], ['id' => $contact['gsid']]); + $platform = strtolower($gserver['platform'] ?? ''); + } else { + $platform = ''; + } + + switch ($platform) { + case 'friendica': + case 'friendika': + /** + * Picture credits + * @author Lostinlight + * @license CC0 https://creativecommons.org/share-your-work/public-domain/cc0/ + * @link https://gitlab.com/lostinlight/per_aspera_ad_astra/-/blob/master/friendica-404/friendica-promo-bubbles.jpg + */ + $header = DI::baseUrl() . '/images/friendica-banner.jpg'; + break; + case 'diaspora': + /** + * Picture credits + * @author John Liu + * @license CC BY 2.0 https://creativecommons.org/licenses/by/2.0/ + * @link https://www.flickr.com/photos/8047705@N02/5572197407 + */ + $header = DI::baseUrl() . '/images/diaspora-banner.jpg'; + break; + default: + /** + * Use random pictures for networks that don't provide banners. + * The service provides random pictures from Unsplash. + * @license https://unsplash.com/license + */ + $header = 'https://picsum.photos/seed/' . hash('ripemd128', $contact['url']) . '/960/300'; + break; + } + + return $header; + } + /** * Fetch the default avatar for the given contact and size * @@ -2202,41 +2255,6 @@ class Contact $update = false; $guid = ($ret['guid'] ?? '') ?: Item::guidFromUri($ret['url'], parse_url($ret['url'], PHP_URL_HOST)); - if (empty($ret['header']) && !empty($gsid)) { - // Use default banners for certain platforms - $gserver = DBA::selectFirst('gserver', ['platform'], ['id' => $gsid]); - switch (strtolower($gserver['platform'] ?? '')) { - case 'friendica': - case 'friendika': - /** - * Picture credits - * @author Lostinlight - * @license CC0 https://creativecommons.org/share-your-work/public-domain/cc0/ - * @link https://gitlab.com/lostinlight/per_aspera_ad_astra/-/blob/master/friendica-404/friendica-promo-bubbles.jpg - */ - $ret['header'] = DI::baseUrl() . '/images/friendica-banner.jpg'; - break; - case 'diaspora': - /** - * Picture credits - * @author John Liu - * @license CC BY 2.0 https://creativecommons.org/licenses/by/2.0/ - * @link https://www.flickr.com/photos/8047705@N02/5572197407 - */ - $ret['header'] = DI::baseUrl() . '/images/diaspora-banner.jpg'; - break; - } - } - - if (empty($ret['header']) && !in_array($ret['network'], [Protocol::ACTIVITYPUB, Protocol::TWITTER])) { - /** - * Use random pictures for networks that don't provide banners. - * The service provides random pictures from Unsplash. - * @license https://unsplash.com/license - */ - $ret['header'] = 'https://picsum.photos/seed/' . hash('ripemd128', $ret['url']) . '/960/300'; - } - // make sure to not overwrite existing values with blank entries except some technical fields $keep = ['batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'baseurl']; foreach ($ret as $key => $val) { diff --git a/src/Module/Photo.php b/src/Module/Photo.php index a863a88475..6f58cb7f57 100644 --- a/src/Module/Photo.php +++ b/src/Module/Photo.php @@ -310,17 +310,18 @@ class Photo extends BaseModule } return MPhoto::createPhotoForExternalResource($url, 0, $mimetext); case "header": - $contact = Contact::getById($id, ['uid', 'url', 'header']); + $fields = ['uid', 'url', 'header', 'network', 'gsid']; + $contact = Contact::getById($id, $fields); if (empty($contact)) { return false; } If (($contact['uid'] != 0) && empty($contact['header'])) { - $contact = Contact::getByURL($contact['url'], false, ['header']); + $contact = Contact::getByURL($contact['url'], false, $fields); } if (!empty($contact['header'])) { $url = $contact['header']; } else { - $url = DI::baseUrl() . '/images/blank.png'; + $url = Contact::getDefaultHeader($contact); } return MPhoto::createPhotoForExternalResource($url); case "banner": From df45a3b915be2e87dcd496a461889694a311bab7 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 10:43:23 +0000 Subject: [PATCH 07/11] Remove unneeded code --- src/Model/Contact.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 1bd57d8561..65ee65ab32 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2159,7 +2159,7 @@ class Contact // These fields aren't updated by this routine: // 'sensitive' - $fields = ['uid', 'uri-id', 'gsid', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe', + $fields = ['uid', 'uri-id', 'avatar', 'header', 'name', 'nick', 'location', 'keywords', 'about', 'subscribe', 'manually-approve', 'unsearchable', 'url', 'addr', 'batch', 'notify', 'poll', 'request', 'confirm', 'poco', 'network', 'alias', 'baseurl', 'gsid', 'forum', 'prv', 'contact-type', 'pubkey', 'last-item', 'xmpp', 'matrix']; $contact = DBA::selectFirst('contact', $fields, ['id' => $id]); @@ -2191,9 +2191,6 @@ class Contact $uriid = $contact['uri-id']; unset($contact['uri-id']); - $gsid = $contact['gsid']; - unset($contact['gsid']); - $pubkey = $contact['pubkey']; unset($contact['pubkey']); From 10bdaa0cfe0908bb15ab688e60db52ddb0e5e1f3 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 11:19:31 +0000 Subject: [PATCH 08/11] Always generate a random header if missing --- src/Model/Contact.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 65ee65ab32..9d609786e9 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1668,8 +1668,8 @@ class Contact */ public static function getDefaultHeader(array $contact): string { - if (!empty($contact['header']) || in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::TWITTER])) { - return DI::baseUrl() . '/images/blank.png'; + if (!empty($contact['header'])) { + return $contact['header']; } if (!empty($contact['gsid'])) { @@ -1702,7 +1702,7 @@ class Contact break; default: /** - * Use random pictures for networks that don't provide banners. + * Use a random picture. * The service provides random pictures from Unsplash. * @license https://unsplash.com/license */ From bb349a7db445db516f2cd87344800de11af99992 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 15:45:14 +0000 Subject: [PATCH 09/11] Partially revert changes for the RC --- include/api.php | 19 +++++-------------- src/Model/User.php | 3 +++ src/Util/Images.php | 24 ++++++++++++++++++++++++ static/dbstructure.config.php | 2 +- update.php | 13 ------------- 5 files changed, 33 insertions(+), 28 deletions(-) diff --git a/include/api.php b/include/api.php index 9e8b3dd336..7914b4dbd6 100644 --- a/include/api.php +++ b/include/api.php @@ -34,6 +34,7 @@ use Friendica\Model\Photo; use Friendica\Model\Post; use Friendica\Module\BaseApi; use Friendica\Network\HTTPException; +use Friendica\Util\Images; $API = []; @@ -162,12 +163,6 @@ function prepare_photo_data($type, $scale, $photo_id, $uid) $photo_id )); - $typetoext = [ - 'image/jpeg' => 'jpg', - 'image/png' => 'png', - 'image/gif' => 'gif' - ]; - // prepare output data for photo if (DBA::isResult($r)) { $data = ['photo' => $r[0]]; @@ -182,14 +177,14 @@ function prepare_photo_data($type, $scale, $photo_id, $uid) for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) { $data['photo']['links'][$k . ":link"]["@attributes"] = ["type" => $data['photo']['type'], "scale" => $k, - "href" => DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']]]; + "href" => DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . Images::getExtensionByMimeType($data['photo']['type'])]; } } else { $data['photo']['link'] = []; // when we have profile images we could have only scales from 4 to 6, but index of array always needs to start with 0 $i = 0; for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) { - $data['photo']['link'][$i] = DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . $typetoext[$data['photo']['type']]; + $data['photo']['link'][$i] = DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . Images::getExtensionByMimeType($data['photo']['type']); $i++; } } @@ -331,11 +326,7 @@ function api_fr_photos_list($type) WHERE `uid` = ? AND NOT `photo-type` IN (?, ?) GROUP BY `resource-id`, `album`, `filename`, `type`", $uid, Photo::CONTACT_AVATAR, Photo::CONTACT_BANNER )); - $typetoext = [ - 'image/jpeg' => 'jpg', - 'image/png' => 'png', - 'image/gif' => 'gif' - ]; + $data = ['photo'=>[]]; if (DBA::isResult($r)) { foreach ($r as $rr) { @@ -344,7 +335,7 @@ function api_fr_photos_list($type) $photo['album'] = $rr['album']; $photo['filename'] = $rr['filename']; $photo['type'] = $rr['type']; - $thumb = DI::baseUrl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . "." . $typetoext[$rr['type']]; + $thumb = DI::baseUrl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . "." . Images::getExtensionByMimeType($rr['type']); $photo['created'] = $rr['created']; $photo['edited'] = $rr['edited']; $photo['desc'] = $rr['desc']; diff --git a/src/Model/User.php b/src/Model/User.php index ccc9261fd2..d99588e05b 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -890,6 +890,9 @@ class User if (in_array($photo['type'], ['image/png', 'image/gif'])) { $imagetype = IMAGETYPE_PNG; } + } else { + // Only for the RC phase: Don't return an image link for the default picture + return ''; } return $url . $user['nickname'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : ''); diff --git a/src/Util/Images.php b/src/Util/Images.php index cd4704dcee..997f3c6f9d 100644 --- a/src/Util/Images.php +++ b/src/Util/Images.php @@ -46,6 +46,30 @@ class Images return $m; } + /** + * Return file extension for mime type + * @param string $mimetype + * @return string + */ + public static function getExtensionByMimeType(string $mimetype): string + { + switch ($mimetype) { + case 'image/png': + $imagetype = IMAGETYPE_PNG; + break; + + case 'image/gif': + $imagetype = IMAGETYPE_GIF; + break; + + default: + $imagetype = IMAGETYPE_JPC; + break; + } + + return image_type_to_extension($imagetype); + } + /** * Returns supported image mimetypes and corresponding file extensions * diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php index 39481348e2..ca52dace8b 100644 --- a/static/dbstructure.config.php +++ b/static/dbstructure.config.php @@ -55,7 +55,7 @@ use Friendica\Database\DBA; if (!defined('DB_UPDATE_VERSION')) { - define('DB_UPDATE_VERSION', 1449); + define('DB_UPDATE_VERSION', 1448); } return [ diff --git a/update.php b/update.php index ed5962cf1f..7b5f6778be 100644 --- a/update.php +++ b/update.php @@ -1087,16 +1087,3 @@ function update_1446() return Update::SUCCESS; } - -function update_1449() -{ - $users = DBA::select('user', ['uid']); - while ($user = DBA::fetch($users)) { - if (Contact::updateSelfFromUserID($user['uid'])) { - Profile::publishUpdate($user['uid']); - } - } - DBA::close($users); - - return Update::SUCCESS; -} From c0db555757ebbfd2ea851e06f86772fee53ee6f8 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 15:46:00 +0000 Subject: [PATCH 10/11] Reverted database.sql --- database.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database.sql b/database.sql index b66568ddf7..4179932ad8 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 2021.12-rc (Siberian Iris) --- DB_UPDATE_VERSION 1449 +-- DB_UPDATE_VERSION 1448 -- ------------------------------------------ From 777919e679b37069615581b4d7f0cb31226c9752 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Jan 2022 16:06:00 +0000 Subject: [PATCH 11/11] Fix jpeg ending --- include/api.php | 6 +++--- src/Model/User.php | 26 ++++++++++---------------- src/Util/Images.php | 2 +- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/include/api.php b/include/api.php index 7914b4dbd6..cf29a75e66 100644 --- a/include/api.php +++ b/include/api.php @@ -177,14 +177,14 @@ function prepare_photo_data($type, $scale, $photo_id, $uid) for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) { $data['photo']['links'][$k . ":link"]["@attributes"] = ["type" => $data['photo']['type'], "scale" => $k, - "href" => DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . Images::getExtensionByMimeType($data['photo']['type'])]; + "href" => DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . Images::getExtensionByMimeType($data['photo']['type'])]; } } else { $data['photo']['link'] = []; // when we have profile images we could have only scales from 4 to 6, but index of array always needs to start with 0 $i = 0; for ($k = intval($data['photo']['minscale']); $k <= intval($data['photo']['maxscale']); $k++) { - $data['photo']['link'][$i] = DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . "." . Images::getExtensionByMimeType($data['photo']['type']); + $data['photo']['link'][$i] = DI::baseUrl() . "/photo/" . $data['photo']['resource-id'] . "-" . $k . Images::getExtensionByMimeType($data['photo']['type']); $i++; } } @@ -335,7 +335,7 @@ function api_fr_photos_list($type) $photo['album'] = $rr['album']; $photo['filename'] = $rr['filename']; $photo['type'] = $rr['type']; - $thumb = DI::baseUrl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . "." . Images::getExtensionByMimeType($rr['type']); + $thumb = DI::baseUrl() . "/photo/" . $rr['resource-id'] . "-" . $rr['scale'] . Images::getExtensionByMimeType($rr['type']); $photo['created'] = $rr['created']; $photo['edited'] = $rr['edited']; $photo['desc'] = $rr['desc']; diff --git a/src/Model/User.php b/src/Model/User.php index d99588e05b..93538bce64 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -850,19 +850,16 @@ class User break; } - $updated = ''; - $imagetype = IMAGETYPE_JPEG; + $updated = ''; + $mimetype = ''; $photo = Photo::selectFirst(['type', 'created', 'edited', 'updated'], ["scale" => $scale, 'uid' => $user['uid'], 'profile' => true]); if (!empty($photo)) { - $updated = max($photo['created'], $photo['edited'], $photo['updated']); - - if (in_array($photo['type'], ['image/png', 'image/gif'])) { - $imagetype = IMAGETYPE_PNG; - } + $updated = max($photo['created'], $photo['edited'], $photo['updated']); + $mimetype = $photo['type']; } - return $url . $user['nickname'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : ''); + return $url . $user['nickname'] . Images::getExtensionByMimeType($mimetype) . ($updated ? '?ts=' . strtotime($updated) : ''); } /** @@ -880,22 +877,19 @@ class User $url = DI::baseUrl() . '/photo/banner/'; - $updated = ''; - $imagetype = IMAGETYPE_JPEG; + $updated = ''; + $mimetype = ''; $photo = Photo::selectFirst(['type', 'created', 'edited', 'updated'], ["scale" => 3, 'uid' => $user['uid'], 'photo-type' => Photo::USER_BANNER]); if (!empty($photo)) { - $updated = max($photo['created'], $photo['edited'], $photo['updated']); - - if (in_array($photo['type'], ['image/png', 'image/gif'])) { - $imagetype = IMAGETYPE_PNG; - } + $updated = max($photo['created'], $photo['edited'], $photo['updated']); + $mimetype = $photo['type']; } else { // Only for the RC phase: Don't return an image link for the default picture return ''; } - return $url . $user['nickname'] . image_type_to_extension($imagetype) . ($updated ? '?ts=' . strtotime($updated) : ''); + return $url . $user['nickname'] . Images::getExtensionByMimeType($mimetype) . ($updated ? '?ts=' . strtotime($updated) : ''); } /** diff --git a/src/Util/Images.php b/src/Util/Images.php index 997f3c6f9d..077509d3cb 100644 --- a/src/Util/Images.php +++ b/src/Util/Images.php @@ -63,7 +63,7 @@ class Images break; default: - $imagetype = IMAGETYPE_JPC; + $imagetype = IMAGETYPE_JPEG; break; }