From dec9dc990fe804a99159d33e8c8cbff476f4b1d6 Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 9 Oct 2023 21:31:56 +0200 Subject: [PATCH] renewer certbot certs after launch/load env from file/listen on socket/disable http in AIO mode Signed-off-by: Zoey --- .github/workflows/shellcheck.yml | 2 +- README.md | 1 + backend/templates/_listen.conf | 2 ++ backend/templates/certbot-request.conf | 2 ++ backend/templates/default.conf | 2 ++ .../app-images/logo-text-vertical-grey.png | Bin 14708 -> 10424 bytes rootfs/bin/cbr.sh | 4 ++++ rootfs/bin/launch.sh | 1 + rootfs/bin/start.sh | 9 +++++++++ .../nginx/conf/conf.d/include/default.conf | 2 ++ .../nginx/conf/conf.d/no-server-name.conf | 2 ++ 11 files changed, 26 insertions(+), 1 deletion(-) create mode 100755 rootfs/bin/cbr.sh diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 469cd5da..7b4f7d29 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -14,4 +14,4 @@ jobs: with: check_together: 'yes' env: - SHELLCHECK_OPTS: --shell sh -e SC2153 + SHELLCHECK_OPTS: --shell sh -e SC1091 -e SC2153 diff --git a/README.md b/README.md index 5a9ee9fe..4d5e2c6b 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ running at home or otherwise, including free TLS, without having to know too muc **Note: To fix [this issue](https://github.com/SpiderLabs/ModSecurity/issues/2848), instead of running `nginx -s reload`, this fork stops nginx and starts it again. This can result in a 502 error when you update your hosts. See https://github.com/ZoeyVid/NPMplus/issues/296 and https://github.com/ZoeyVid/NPMplus/issues/283.**
+**Note: Reloading the NPMplus UI can cause a 502 error. See https://github.com/ZoeyVid/NPMplus/issues/241.**
**Note: NO armv7 support.**
**Note: add `net.ipv4.ip_unprivileged_port_start=0` at the end of `/etc/sysctl.conf` to support PUID/PGID in network mode host.**
**Note: If you don't use network mode host, which I don't recommend, don't forget to expose port 443 on tcp AND udp (http3/quic needs udp).**
diff --git a/backend/templates/_listen.conf b/backend/templates/_listen.conf index 0e339618..858615a1 100644 --- a/backend/templates/_listen.conf +++ b/backend/templates/_listen.conf @@ -1,3 +1,5 @@ + listen unix:/run/nginx.sock; + listen 80; listen [::]:80; diff --git a/backend/templates/certbot-request.conf b/backend/templates/certbot-request.conf index 10c4cd0b..54533691 100644 --- a/backend/templates/certbot-request.conf +++ b/backend/templates/certbot-request.conf @@ -1,6 +1,8 @@ {% include "_header_comment.conf" %} server { + listen unix:/run/nginx.sock; + listen 80; listen [::]:80; diff --git a/backend/templates/default.conf b/backend/templates/default.conf index fde8bc5a..88806d06 100644 --- a/backend/templates/default.conf +++ b/backend/templates/default.conf @@ -2,6 +2,8 @@ # Default Site # ------------------------------------------------------------ server { + listen unix:/run/nginx.sock default_server; + listen 80 default_server; listen [::]:80 default_server; diff --git a/frontend/app-images/logo-text-vertical-grey.png b/frontend/app-images/logo-text-vertical-grey.png index 76c03176fd9853dbeb48711d615430a3f7496b26..df90ece667fd5af156bb23b4528aced748a42baf 100644 GIT binary patch literal 10424 zcmV;pC`Z?cP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DC{0O3K~#9!?A--; zQ|BJX@mzP`hSStivq(KH#jOK|yA*A);?8h}m3pZQR(x~EKr$w(pC~S)%*}@CGTv?>PhXTiR{Xel>m0 zx6N(40RIAJIDHND3!R*}ygmv}JHV5GPPu&)5AgdDBJ=qF54PW_zjmAJ&9VeJm8Ho5 zE;!TUf&P2L_vMd~56+(;KTtYF5n}wA$2&SKdD2rx0B0rrJa}-*Gpw)TNZtT>8pCPPb zp45KcnJPD5YqQ3i06%Tt2qn`cJ7NbNsVr4y3~fByA8B_=TZl07g5>oJCi2i#%MX=P z@pOfy2&15fyArd!Ht+;^t;*eJ0s5U;=cfVx6`F~P5Ya`z9|C;3%y>uc4qA(bBbjES z^p6#@Jw$HFBUjrLxr=TA>7h^xfR|JQPeA9pjryCV>K45hx{8QT0R9P(qfr3*b#$E?=yz=EB!-$z&M0$=qxSQFS{ z4KSj7m(=Fvs{YRfq4KqY=#%7I3Z}{b{t{j)0RMqVV5nSug8+P05Fg7=p3-)bS+o}8 z&UN1jWoH~zbW$P&ehaUCUvZkYEs6m8SscPq`A#X7M9C^0djq-^I*tfCd*`r6;qqts!Sd_+qHfyHDr^>ZXQYx8J#+t@$6q}WC$Z3yT>tM+UAEUez!1NkT-gP0D#znshMr66^H z7pbJ!rYn5ZKwgd-2z^$L!f*6L%TUU0u!Qb6nMDu8I`oPjHJTWmZ8Ph=UnICXr{7Pv@6f)AcY3!>XGV3{_CU zcs+QP_F#K1)q!_W*a3G3BEkB}iN^;rr*hPxlgb0R>ncL?P?aNz>;_9+9#~AduE(wf z-*6(`vze85repG?Ul#iFzC!_@tx^vnc0q=jZYea=R|&lr;KP8OgQ!YjwsaLUKX<&0 zipB%J<~?}IA1=?z>#or7z}40t@IBpi;0V})T}4&aNy@RDF^V{i*h0OD%<1S&+Yzxah_y54_sZ>R@v%a^Ckg)T&>^<@bpUfUhXeuxg5Dy zU#^eKMBEBATdt2}bm`T)K^JyQ>-@-s4`qZWjVC{_xfkHujeQMMha_DZy8 zX4+H>e*-&rSHo=Ra)b@#PL@$|9l+<}Fs^Wrg0w+iRN~`DYPm1v2!Q9jtklnmiX4a1 z<3`KqzQvSMAP0zy#(j%v2cFaqrAO9N=}ebYIuj@ePiGKb58iw~skzCZpSsy5>eB_pc+UjKpVp6JRgjPu)N%^oaU~A=$Q3(Q!k)XZ z#F|~k4&04ZmEkW%>d@K4c}`qmr~=7Z4e%v^pNy|)?ExPn1kS&fkMN}8A@1y=uM>CK zPRbQ~`m+*m{|amsdX62wA}=puN_Tcw=E?1E+MT=IWI8Jl&!@*0Gx!CdnaE%~Z#3>t zj~h>TblGkxoot@So$H*;&UH$zf_^nHiEh20MEhIE(*|W+h)KX-z7ufh^i6-dalbv6 z^Q;e7tR75xIsJe=00ptU=RLXN=gm1yj)F=G{q9zs>2|&8s)Xpg9hL8K=J3@k9j<}&Mb zW@+`>(Due{*zqPqxToTolqa6Y9ygt0FESYC9alOYc1xfWb`f++9?hL?lfa$plFZHk z`%;HQx()D??Gm}Iers5yM+~7D(>N(}r)3r*9{=2}0Cw+TCocE-01o(EVNM%>doUio zG{={((w?mLmdu+!nZxaKB7CLF_$zBP880rh&?4ZI7JvRY&XK#k3akF*67Km7H?DMy zJ1ZIEUeoG*FRJldGr;#L9N>N}r@Nd^xjE3TcdXf-dN#D*QbPOCp2k-6MPn;=TH?&9 z-MzU|Zy)ZGV{>jt!$6k)PG{QQFpxfN97x+5wWGBS1L%`R@3TuyLrC3Z@{@}W%l}kq zt>_Xt_M}Uc4*!IGBs=95%U$S@$j%2QvCjk6aIv1TY_)p~C3?qFvUltvlY+l=rxl&Q z-GWZs@TaTy+HhqmKdxLQ2euDVBHuZN?<>jk|9h#%uR!yijLIVUQ?6C7tSMV3B@U-$ z>0>z+Cc1L@qvfnD#DfY#s|CM?dWmW|3i`YM=D%Xe+)w{uRr;Oy1vp-H?L+@XyBk^3 zK}#$4tz|1Noyx_q5)oOT6fdAyenoRauV4PM{5+pVz>Gy}93X;eCJz8l8xD}C;}zqH(+ zO273i*TlH;(AB2<0wz&Lg&_*c7X~jzv(T?ZKVW>**tRLK(-9fBPi#xyT3FJy1}!nm zyBL5Q;iJvQ1Kw8; zuQYrQem@2gW;~Vs*S%a5_X_x}QYuZ55-yq)n(b+*iKq?+pqrrsmGNz{`nRIb8rKZZ zx23)xeQ7xYGd_)8BD)&lFGh5RpY<+L<>_9rZ#DdvM(FP#dI`^d1pIfXndm1N01rZU z>j3_`z$#z;OM!PVg5UNd;qL)_i0CICK>s6J40!HG!1IkZf*=19p1m#b*tWNzGuXzT zebAOl^8HDZtNh9c-B}0z{AJXPl^yobYNBfe&j7y^@P8J)!2x(%z-PW1J`nI;^qtKJ zx}wOW6E2Z@_##wso&O29=wF?6ic+7qUQH>kk(wCq7)tUnarl$>+tI0eZP~+1I5xhA zLpZgvnGyWn(q{lKQUcwNO7Ht{nr*UjO^O@$3ivIhiBgH^|2P2O8t})2z_S{)$Dv&- z>;SfATN@4M4m(D%D~c34>lQ~RoOKJpEW^*bU=_CDV4Eb`&?S|Nl}E8Sx5yXhJ|+Z@ zS)O$|yDiY$vl}=3xT14T9Il}wI&OQr(&3xh&#p8V=;V(D!k3kO=gw*3U704)jX#D5 zd_`o?3G}nNixt>o(Q`dKz;SrjmThg&n_E|ZEKB-NFr~Z`#6A+9_pzm+}@-9|eHu4m~j6Sz3nNLnM00=|jBpS{;6>oQjHstZyMSJf~& zVNG;Kcag>1%Cp@krL@GK%FcLlnhYt^L}K-x!J`{OSHM3)V?;mG0q}okHEJ6J^z!Wu zyR!B5MsVrxO~7&d7+POHm@?iQN%8+4NNe94$-c5(z|J|x^7y?CKjV{OnR`DOnn}CH zY@yv_x3X=$)>5)Ej@C#cO#}Ywt$?g*E~TniHPbQMKe8(hC7Lf}qzMOjiZOT<{5ri= zIe&=a!`#lw<2kOrgX{8hH#g`%D*e4sK#!w!^+us!eOLfODDBr!!v33xUKZr$j$ufe~F1)DXYu^y78q{7maRd?oDTGaT?b7mA645E&8XZ z4hBxkc0uR!2Fpm*Qb9Q`y6fV>6YW^2N`VvtC(T^B_?TTuK|9cQ^u$)Mrj@m+>j@%MzH0uu{()a1`O|*63`lY4} zA87DB`)>iSeiQIO{wG?k2RDM(0-o{c2IZm2ZxDW$5&WXJ3BDY?V*u|1c>1Z~0X!Bx zLsScRZb;B^;SXmBVWSJ5j)ggQb$oO$NG99HN#^EFXJzRD6{Dp z+C6?d56|z+c^JSq(WCFgHvY>o+i6emcGG}=_Q)@byWl`{*qYIC34bWJwG#YAy9}W7 z_qQ{A?W#MJ69#uBZKe%r*2%SHX)T-9YHvMQK16pLbFXT^@pt(_a$HNNU}}FaEpB?` zszc|mq09Akq-QQ&2zSJ|iE1%$xb_l0#28%ny5XOLY2Duku{686+_nLkZ1?zWv}^R1 zk%pfE@Oyhgw$gz~pU{>88ML(7s>LP&&*dw#@ZCD$vMP@8*UTNVuC&CmllBL+pJ1jZ z%b6yf2d+3#!vL;>#|+2eodYXPYegk%25U=Vf@?M7aVgaT!@FP*GhDsr4U)6mjvgGY zk>_y3BYzPk12l)&_p@A~1J98+=N{Pv^A}IjgQnBlifS>^-y7C7{k`Ehejmx>Go(Xb z|L-864`OSZPU2ELBDi>EGFu~yW^3Cf(aymeBMd)d|HMze`y6}oVXY(BNbBj;zwrdq zIF83T_pDNtl8TE0bYHw^@5n-o?qa=V@Q@O(W9v(ZWvdx zW?-%00X!K|WqdRc;N9FgwU0NK;{qjgxAeALFOL=iR)+>hiQ?m&kF*^)DBQ`L0 zeW=r1>ep}rjk29V;~nRi2z(CUbzi*r@aN{Kq%5F!1$w;n-*_BZksjPQ%yL{~*G5|$ zJ(iWkjwFDiLFMT6;q?Js-OiKCam4mqfA}U4w&x79T>HRcdO7ZU!z`ac55!Y+@Tk`C zh!Da8@UMX^z3Bul(LaSH1f&5xP6rP7igWRao-qdvKVwjnNh?NRrURVDI?U!XF?fCX z%GMR|sczPKWMOzaR+`kUyd*kAk6s7xFP~oFY&6S_;k{kxnd|%7?1qcD2Vx#u*AItB z8UN@}+*E>xwRUqH`5giIdZ(*WMNW_Wv6n%t?pBxV#3UU%@#y$IWM0M`KT z08n^Q@J&eHiJq;Md$ zhaJoD4AMTdT2P){Zvsx*OvYaQ4}b@F`n$t$YPJt%`~a5XvKV{y$y{~t$(}KlzMdUv zHD&22tR=>o++O{2z!&Mjsq~%?m3`|z#^?b>*DAm_ym&y7b_?!JTPfr6$Ku#~m=hID zR^ay^aHVM@sWf$DITnE0!S@DyUx4e+&b9Gm0M}LZWQ`KwuB4Jn@OK@U%I8C-4oD<* zKp1=KI-dhPmtB7X4(q187Cct(*qiT9X_ix1l6MTlYF_sWWR6dN7zc1ll}AycZ`>xs z&sf?vE^(sUd>UpkiGppX^9z7!z-!C>vr2M(scgSH!we@)q{|{B_XH|$MTOJQ&9eBC(0jX&kAQKsW_^SwlsNIt>A$^pWmkEzVGn@+Q}ENhL11N z<12CY&V`@t01xFdalnzXo(o zYc!UUWh*JMc?QEwH$IHx_<+t*Jfc}#t3(R#nh|FB8S#BL?TPKVffh86WMk}S(J=8O z(|~_|M4rWE%6M?nr0cG%*1i*aV}w@i{40ymMel+bT8;ny@r z8D<*i>hESaWKojT@KUPt2Iwy6zdHEMQr&&(M(D_B0SJ|q=Z|p)eC>ux;oB9f_DgzX zVR#9tyhm$Q{%e^YT&O(1<)5jVg}I7qIdF!qYm$%A**Rl)_ZW)zi>L4&85GeqogzL+ zSL)x7U)M(*(xJ!nSVuA4H=4#3I1hF>XR)=FzG}@wmS_$lK0SQlY`}-`$Te1u0RMUe zz|&EYFuVh)yn?j+D!v-@%cz^^H3wk3BC09eA4dtwH9B-u4CFr>z_&xBFB1PIEHHJc zslscK2GJXY*W))tDX#%vgeo4s^akL+Hhe#@=e{-Y`ra_S@dDt7_8Gxz0B?w%iW-YB z-XQ#RBlvGj7XJAjmn_<-``Wce{POM6jKaC{S=h#xREr*pCd#$g7pRk~Y=ItxJ^5^Y z8?ROlB$aXt#_ozhHW8-F3z zF{?OLs(W|=%j6$spvSH_c0Z@xDeYqL^I@6-IZY6L8p5F-o>yZl!l)a3??0*JZjsO2 zMqxW1H&j%I1F(at15d;re!6e`mQCJC_CoIkbgY7X&=OQ=aJV!U90wPPU`Hp_1%M;KSt-Y`Zrb9J}8{{f(X`y`rXP&=n2#*zmlw z%u@7!9GQM`{?Q&W-_^K1_gNEb_@4JI26X9VHT)c+9+pE1ue&-m?k^J=49xJ$hzCa| z2(QCOD0|OTiSGMm?O6A=0Otg^=ac2h74W?j5df|peuxJ>>m<{hYb2R}p{d>PMQ?DN z@0ir&^83kYfG5CHP4MfLNs0RRb+sH4(aUNW^)#xN^>7Mo*r)IJ=jxNM0NbSD_1*vP zEIZxmTodX(g+~@_lKiH@mo3q?fG5Bc;BQ?N+x_G}0qR`Gq~D-9fG+_&)dqf@GATv> z{%)2*=XhwLx-=QE+5rCQ+Xz3R2Ka+N5S{?f_YLy-iO~C@8;H)M9|*s<2KYIK@V~Sf zf8$5O>q|n7>ImEyeT|6k_2A7jK6}q>+ZWsTQ1|xL!cUf`8Nf%@^l;(gp&nGwQ$ZI2 zf4(X_Um=?QgSX?IlN$m#8Bvu2ljwSfMB3;PO_A<^_o@E4eWPDWlKwM45D$(PLg#n% z0vq-2|JH2d4x-(PH>NY`7( z)48r`EVE-W7v&m>J7S_J*~bVSZB!=lCu|I!LkoP%LEV9UQ4ik3YUrL$;y&&ogYi+v zU}Y0`X7w0qL~Qf z$A}>W@LrhZ1Ko*@@}lS6<=hcxd+w8ZR&0-jEjucfa96~3>^i_NiS2dp=fw3;1G+A5 z!`}r%4=rZy##J?V$bBO=#H0!X1bL7#wyCU}BvMoZ`6N}~Sk;RAlAOFP{i|QGH%g`=FCtZQ#`R^%jhk%6SpsaIy94iRt*n@_I(`@+s%Fe}itRVUG5qFC#|WBcvzlhuhja6B0*HrS(J3w3B;aqZ zaE^OEPDV7&ok~IlpEY{~wW@&bs(42Lf07=*WUvQ&@`0@UD+^n0=f5p!Zxb8(2H;%=o?3jw9$PHtXZy>h8kYC8ap;(OA@Kk9! zX%o)Q;K|Zo4&K0R9X#)538&}jQv zK%c{-SA^fEg*wiyxbt_uQ-V9NzeH4#Qv?rBnEf;d|2^jTM2-`g$|xDG7?>Z5Z8xB6 z*o%+M8=wfz>#0x!I6?q_0wQj>CtYpkqTT)vOZKe}T(~dAVk`g>%C?wAPc7!_!36_6 zU6m}-0A7zRh=1BHf{waI({|jwx^v_v9$PSe0oXVB6I$3}1@&nZss|TrjKj?02@dne z&vuMnFbiuJU{}}CS@w}_M5Z>d4gWoW7a^_+`a~T(Zgx-*;PtEZU;+H0+M%9wtCcH# z_MSBZa1HR5y4SlFr#gn$0-n_+{6_(+4h?KF zvEj=bBO0PebpJKrSEGN5-lhTY_UKd%@cPDA*>7m=`p#$XTJ8Ed!+$$|=W3C_0QTNm zz<-L|L~ru|{CL2t3nl}8kRUwYa-sKPM{XQ&ON8LRvb3fz8aJd{4M);b@w{r$@spqk zKNN_r+s@Y>mL}8;k8S)p!0*CN-N)6#-$a2Tqk(JUe+}rJLaTbb>ftW|ysPM!G64S$ z7J#_C{?)=0{%!|uj`)-Dd-pW8w!i|AQL$HViE{=`o6^Vi|492Ka`wo6Huta|fE!Js z2jXdhvmLPu4$HMi-PUkI;3v>|9M4~~i(ucnMR8jPZQyoK*hZfLKWk_Oco|x}d*r4n z-wqD5m?#1KS!49k4l^j&VJb~0FVmpXv%juSR}jBj)VIPrJZ$F< z*N9Dm7l4L$P8~SOZ9ysU^|wG_me1nBb@)>qS0v1FjH{1-Y90XZg|6z*2LrvYg5lO? zrn|LSuKPJ})tH)i@J^|lqq?rejS%Z;A%6>$-7FezHHpSJ&Y(#SOTNS*oVQt9U|^=t$nE4& zpppXIsmhP-zJvwfgK9S)t>gcsYO(4ARg17hRr6KX)vY6R3qY=NDc!VNKu4To2-|cX zT900-vp_$F*R`H8I`B9j+~ejQdmQK9SD=|kAZi|109;hf!v+;~2oJm99k=bEL+mm9 zB&gd!eunZ;;mg-2==x=+r~_ZiqSu8fW9I<6GkWE-^}@Pk3;^~;M8;tOD2eO4es)BM z^}jKzzQzEs5BgdVU+zLG&kkR!TgCM$XpQH`yv6|XU(mnNyXar&Pp|WSJf7@7xbZP0 zszb_!u&x?8<^dTk>^i%CGGD}8BbzgeyB@PCUwM5O}oC`{ia6pQ*GiRcFoe4qY%087ybv<}@vq)z}o8x1i_{d5a} z1xi=RTuANPk<@M0kgB;3Ua*`NVKmQee^u6*2kj3s1NFe`l2BGgs4z# ze?rC(od>_@8b|k~$#lp$oL1UQVZ#~?p$Xy;7A9TFt@TS`>-c79oM}g>5wB%);Q=^?Sfr#Tf_D`uFy`f2<8Sf8A9VMf@!LF3=dz? zm_|XmmN?C!DBm@!mMIecAu^Aj?>KC~x)aXBpV7~9q3+3&C{{8<)3f0KHcbz1)D-;r zgeD`h#x@?}A~Fxt87G~hCIDF_1bL4QQ|uR93ThlQKx7`jobj!A{vVTE zR&+G~KVcr`VIJmT9_I1C_RWGvZWxHdNtv0MnTbSYqGM(j(e)SHzdi=PYJCtTFXMF@ z`ODwRs5QiZ0@&dzCTF4vQD)LhHuTdx4xE=cIhNo#9s z+Yu!+H8r)RqoboC<=SgF_xA1EZHaRto1C1)r%Z8FlX>1&bNpq>wQtRPwnh1hySuv& zr;9-f z_4W1b&1jEDoAwtED-%2n!1KWO_V(VC{1QFDD|mn|6MR=!*8>7x3NLPKY&@#q1tMYf zRDs~9Yc|86Qt&+7^Dr+5ui#-tflt8M%Ag7ciRYsX{rvfJk0*EqZ$T6bp7+D%_*n{` z1B^{~am*jQf=4ATmJI%~1Uwv)gn3`^G3tUc)@*Bl;Nz!HpZ+Z)q8$GI_U+qFF!Ba( zEl}_mc$nwqSYBR^F=aK!7L6^z%%Jd)dG{^@^h8P>52JqdfJeLG+3Vi5hj+w_Zl+6`9oF>nC`}_Nk3LM-zYi?Pao13oy zz8CnOo}N1)f?r=T!9CvKZI-fZ@T|=Q-E>UAiyCZ8Sm1f1_=D#TS2lQbO#tay*5Tpd z{a)aaQY{kv@87@oXI0cC=bs4kWr06iCV28LVuDPkFl;<320XtG12h6&Fz@#VZ@V?q z*q77JcXV{zE*m_4cvPXj0bPxBT48w7ZM{<7m91P(qctp7{! z2=lJs**Zft!1GXVa|~pkfg5W}*)CHv!4&jBg}|e2_Xz5}NRl@)@OCk!4Djfm zB1ixp4In7b^{RnS>F24TY?y-A1s>tPIPiSmofJIMl@dp)Ab7hL@kR>2sj2A%g`YD& zzFY+Oh)ND#x^h=V@K9~>=)M#_-t7$DhWn7f=Kw)N-KjEo$hBLo3p~PoXy6g-nTzh-_tMwZ%FqkV8Jm&PFfk(JcX{6)6;BE5C zew0BnjC8DFfso`2o^#K(FW@lny}iAsbG}Caqca(6^K$S6MgZVRdeR>}fZV_e92r1f zUhjOw&LAAyl}NeCbM@BYv!KJU-Mnt_@ZeCubIHMbz&I$)Frwc@(#a1zFK_Xq`ee9Q z@X0dZSAQUHIUDss_uv8E4(_hibH5jO3*>(XkC2-zYfDSZT?XE5BL&agVL<0l*1L73 zY%{)={h78Sg#fdA_N1~&qi4zIpwgau-d_^%a_H&Z;F+xP0xy$%@yfzC&wS$XOHYLH z!oQD~Kdb!j<9Pxn#eo+*-Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DISENbK~#8N?Og|8 z9L2ew+1=}>E*H5QTrtMRGKnGd1OkLm0x^zbf~g6iKSChbRGaeXI6wfCgoI|odk;ba zBtQZLuxXZU+Rj3`g_JfF6@nKZ>3$?$(ZSpbyT)Mz{=o^A> z1o0qzC=OE~=kXfEi?ts{VkAufSm$$&u%e z{0yhhKuR3P#!wKCm}Y8Xcr>E!mn~OzrEq@dgHr~+_V4cv9Gq}FsBqBK@oMgnL#$1% zDfSM1yc4UYF(cuIcu#u8B-gofzl=Ky@&0iGhI_sGR9zQmDLliU*^rQF3Ad(+-a)VE z;&uPGt<==q8MAAh9~}fZ;E7j@2OIVlW0JMeHA&TLF6jep8ffOfq()O>we*R}uJh-< z>|D2i4^A9-w%4oO6Ef{#3OS&g-(&Xss|SatEJ?lLI8z-eRB ziR0=+_9yi>m-gp{vPIweOr)n{9AruP=%ep~G;JF0_c$Pk2iX$x8=SIvcBw-&OCCd? zPWoEN3y{kpql7N{yUv;W0dK&l^JUZu@XNAPkmoiYYC#Q#6UU}7Ah$!7f&8C3E(Zwq zd*VU(SR9r>?uGd2)&$!iPe4wD9O9lZ_h*pjAamT~=Qa?g3lo1SnGj1HTf%ja6Ckfb zLUd??evlVI{`-(`$DQ_X?6<^&@X?Te;*^O!$Z<@^Ovr_XF8hPzYaky%*b-|QF{gA= zT80$v#92!yhc*8n$T(prRtdj?tZ?q6pK^ZgHpm6Z;+U+ZK=RqP{qUmNwhk zr#g;}p~S~1y=Q92Ec%XT;+z+?@pI}EchV4jVdTK*iz6>L-yS)@anQt8{Fc=~b7Cl7X8BopL{kD{#^nmRzFSgbD^|lRo@xNZs7eA`xWtPmLGF{ zUZifR(2ZXtoEm_(IR1{8qm~>mhb(<7?wAe`eJbQJkUkGhxMf;UJR4gfPvX7Y-<8$p zJYM!QoPH1T72QDgeCU8PavmugoAW?fwc}=pfOAX-2YH&I@avg>#9;{J7D$9{^i)by zXzub{D^mRM<^ezddPA?tXUFgDKiDstbIVqp@Pn>(mG|U@Yeoo7M}2H4G}CB`#WSW7 zkHI?swH&sjSv|b)-T{YpFZTYVu+TF>MeV^Rnp&C{#@bF4(=}3Ck z@%Up>3!NjR60zC=cC>o1rffrKMh%|O-o~HXdaix2%=y7S#y%x};o4J%6x5YZEeTbf zCv2p%(X5)?faJeamM(cWah<~Q2L}yD=&wifYocu{Ef_FFmtqf^*iuE;2xYF9QpJQs zsgK7}iN*MPd(LBJ|HI!mM%DSHr=g_Zh0|}vT^x{d#WuT&Nlk4vgsNhuRF&}WS=@W9 z@T*yyohKV%XX&xOjFgu?X@$EAY19d+LlLM3#j2U+6Q<8MrT2<^X_W3W>=WWEc8(92 znsHn1rUf^jCF}bb<#Qos`K&k$R%+VoWQdC2Ni1|3HrbpK4k=K{49dDx7VYq z?wi4MIT~m|I5zXr!MiZyZiZ@~TXlBnU^MdXgWI|BTTP(h$F{Vs708hFQWNYmAct{3 zX_5X*^#qEnm&|;>D`F+*pgATcC zd-8~XT=AxJb1!1A5f8%I4xS1*mOUmmiY-dKFzPFs5`POwPpgkB-x{2|@eB1wcToH& z;nWP!@Tgj)=(;%|j2MU~X_*iw9)jq%*5^h);Fq-;53w_^6;oJq)!v^!Yd$-f(tr%` z3J&b$bI^o%0pfY!^shk)hCWG|H6Xy=poFVK6{RBcQJ9{L>!Oom)Ydm(~%tI+pYyN@!2{@q6Zxfs? zv<&258o%r~bO`ZQ)kR|~cl?Beb0o~?IHo}Upz2{^$r#S5>ZEuGr1RMnK>F2q^hGqI zgl*VnEShFNr2$&rQT3+F#xXl=vN5UaQuqV9@EJP%lr82wx>3A_DROiJHHW7++5vMw zKC8AAK>m5Cj6T&6Ul*Di!iA)7IiMx*?>UhF>B=*wvm3fYkagnAR-Q7gJW~6rOLq-2 zP>;vwLo~ofgWOgw<(4~byMU25{!flvk~S|+l?}NP_3Lj%5JZ-1%2(}?c?E`wL@i}n zNWLZs7WLSu(}l{b@Ysflq}7~0fJ|Wj{jZSdER|0>E{%}<(t z=*n-zdwi3gvo+z>ZBgKfsjYPZyR5d#4rvuCPX;}@&_CSJ_gBX!9(CX~L#HT1ZmBd1 zP&iCmLzpEqKqJs^A2M8yA&=PVAM#%>b_ZH1eS+cQJM~*QnYG&DW9${^8DOICM=>;1`e5lkw=`c;3 z+7%(OWn)x9)k{Az z0!v{C);Nx;o8Pbc)+=YmPCdIm1Q>_WvGGZ$k#5>^S)XP4*>bAsB zvxam%lSO!Rw#KA~s*cOGdIjE#)#eCu4vI}! zN(oi(G^zL>5{=jhu$0|Oyjt&Ezv{L&D08aZTFkIBk-i*q0SG^}HPVT^8M9~L9Yg2O zuDyNZnn)xN)Fn$l)w!bypys^>^mJXFwrJ-zIcuw5e7U_4+DytquZc{qgoOtUWN)Z? z5kdsMip&=CjoPl3r%T${!l?PzaTs}~^dL3{Dz1u{W^Ihvb1P!j!g@9r$J$T5&kJI{&EN|4SreF`#Wy@ekHZQEr@)SE5MpJUx_feF)M z*3mUhNg45=flV*d!O}GeG8lya#c^o|a$fq%I&saiDS;fF!@z$c;Ysk6uL-ye5k+a- z8CF^ls@{XJGIKNrL58Gvz$#B9M*4&s|eJ?rQ& z;v2vWz`oP8{?oMPU3lj)S0Mq8WeT!NXfsss#sn+uouiI#0`?h@@OvSVk zEO#(}Dj*e#+G_z&a+kbN;EWxVYPK>mLq>~!L|`#Q&Q&+xyA zqXUr7k-*CM)!xOvApY9KF^Q)W$K3@F&nf2=wrM@Il6bdG@E06e8v??q z-a8Z^KMY|B<;05_j$^B!+K$1-5fCo|n^I;Eg8bC@Gc5VvBF2@jdQ(~~D)+}Fs-0D^Af9I%M>Qk%+&>Bb66|H&=O}cF%Wmkl@tDrlGI@~~gt~hF! z8hIQ&?;53tV$-S*$r0ZEIl6@97^_dr^yj=!iHPrh3o9Wl^az_?M|U@ ztzP3T_%x-8LlwskhP`)+C`OTpDkc9Dwza?4Nl|X=PDY5U)TS9=Hso~IkLQl{UNN_& zxo&$6XKwiS`{!-?D<^JT14+%uA>lAkRoE)FLu!bq3>(^_ZF9tmohxihS$5D96q=^p zG-vRmDO%Sa)9tCPL-R#`zg(^7utMQ4^4cWdjI`Kd$qKSgdZ}qpVU_f`*a~pT4b>a81zYCxsB}x_3$KgQ#vT0N z#R*%DI`ciN2313@TXs9FP<9Nif4cA&l(=yh+e9It&;E93{r7$(|0T@VyDVAIPu!$+4BL3p!%_1#7F#M0X<&-%`n zJC8V~J)?$g0_2yUz46_v>#gor)tG&xrM#LhLny3h!z1dN)C5(%rEIxk(-N_)cD2}2 z+O=sn>`N@&X2=q;uqgxGe4_iXB9YrSC+i#$S@+aqA%{Bi=h7xuERshqX;95>{cIUF zy>e$vs6428PcyRG`RJoRfE=B8WRDQGik701 z2GN`ony#Zcca(L!PxHuHJQMb7$Nu$~|I<5hoA^5<{)HwoOSCRNuhiGYcVG~2vwICW z+zEXHnofs4U+8$o+pgC$De~f{y9bbc1mtfx- zXfj&RB;L(|^l`zsF=D9COglBXz+HnBktV20SbA#j1KIB3k0{QbHXT_a56vw`K=_`$A{k1xflucxv_!y1Q^v{f! zqJH0zI48z9e?2H{?C)+>k+IrQ&=QPp>+^lwZpH7Q*h}bntx!{uroqGrybF z!Cx!BHR}H=zCH4=gj<`4kEgW)R)dx$G%E@dh>;gL2*XI{UL4d+4%m_7^|(ZCpveTL zEFtT}7os+{gI-uVF(pjcWm0mfu?D!+Na44I+K!a3(`-osnt_DF&e3b&nOmuFuU4~1 z64k#LH4zEDC6Zs=(7%MA-~)uK8qKzsyOp)p zr3niej#UkUiu;K)khat!Q2)A$l#jCOw;eCd`W`6xwYX)q^i6yVh`*90-&PzrM#CKm zqTF5;=`&P>`yVb%Uyi0*5ox%ktle5Kwk|5~6aQ@-UoTs~{@qU(pro(iJQh)u+cC4P zvrc?G?qD+%h3`_BCAsDC8)%z8J+ct#(oF_f1;C*pFUJYcBG3puEvssjR922A`LUrh z6_>Yn8F4>dO4{2Dg;Fk6t)@9kr?8H1csGGW4oln2vFf*-WJjxpYMK_6n!9m6YA^V# zGd!i)(K=}ca#U#GXb~&uE@dQ)yp_m9Y}WZv0HjFMCZB)3a#MXc>Zp1b=M}b86J`O~ zCq4<*Yn)gSF&n-tb*lor(cdJ|8^I>w_@#wPmI<_5gg1p0bs${Bk?KAZv>1pF3Og2* znx_)Kg1UBUg53pFylqL#>(i8BAYV~y;r&dPBzURGv=&Zo&{xhnzM}|FqT`5fK;w@d z+b~g)DD3re2IsOudK@g_jA?6WsW_X@bn5s$BfJqnvV;{c*_+vz@N{@z{LZtDZ|;>v z6!!-4jgfgNl5Z}We$m5R-{IIB#5XQy9W&H)V8fj7=@pI1-YbQ1Z@k2rOPxUGo*345 zT%FSIMyOB-vQfv;3$`5E>?lGqK+P+wMyYt;L&ALzKtG`3rHQJeb^n^S7!Kf%CYi_- zPN>Myx;t)!E!cy{bwL`y=Rl0cj-MJ`nXAzV&|*sZ1MvjgoeYrh)9EOx)0C)#(a>UN z4GG~p@J`EAntzbg{cdH4(7K3!)3@tLgjt3VP2HvJ++thU@o%A9g0%U;b_1f3NNy|| zgEzbL^7bS9#3uWWYox_#A0SUj^**nno?5C7* zfzW(M8@}E_&C@NP&)IeuhUPA2JQ=BXI&AEsUMf0djIatyq>P0bD#y?GL->ytj~+#P z-_SVCI)#1%4k`8r{i43EUYI5{Mh9hptP`*2qiCV&Ek6k3crXU4OYET8pgEFXu=XA)q2zXDaVkmsJE!|!6G+&=?(v_bB^=}E68EIFCIS3YZ zpg_b987X3YhYRKMqU|0c&3tb%t@+`dl1iy?fmhUZ3#1WWSX9_|z@UMmPyfD3*L6`} z-!W4Pvrc@~S9QYuPDseIh;;1LE_!_FhX#D;-Vj_jrZ$ z`K4W1F05sXq`5pbF}HPSYMs5-CG1shDWXVhmVCyrq0q(&P}NfChnT`UK?&oC_%$^y ze!?+uI~0SNp-X>{0^uns7Fz>7+BFd**7tB>_CG>Ey$czxWl2wPo`QywuJIeWy6yoH zDyBAbMi5g7)rSUH$ZXwvbe97L4-_Rmd!~7iEo7bex}_nZ)gq<4K-HtbLAj;A9*Mp< zaySn0Plv&;Rf&XvHkT|hRT7#X_C2r6;oi#)YoZ(d#GL_}g zB~?8#!u-S?@z^=fcZX{4N0Wf6-sLhx_wFUMRI1_2LpUe>Ye;Ir z0I2$S+GHY#82}|lx|%J6mJx-sXTDxIcP0luxaeR8J&CkbFs2nhm2WW#_*wILd7s>T zX5oKsWSH9pr-UcMoDsMMHIH2HM4A@;9G)b=Q9vg^tlL@gBjIqy?7Jt(I`J)l^T@e6 z2Dks(Ybg9`7T3}l2uYjW+Xk3XZYliq*Fz!gS-NCTG3)v_CN|ETjn~=hQ0xujS#vj@ zWwO@*@;5=ap3HHOj~&Mbup~7un$BlZAUtjHr4B~Zg&UpaSN8_8PP``o)y%rRH3da& zXox@K?UQicu(Wtn#HmrpHhZ)QAjtm&LfhgJc(?(zEZ%Rr;*&z13~@XNzXXDNdxSQP z5#}^qiTiMT1`7XQaaX5)N5eLKRWPc1jo+Gg0J2W}mKBx=g>B&qYQkVu+BgHmiJUKk z;vD0=xfcbel--N!mLDUw{OucOXlt<5E1mt|_81@^rP>}Oly90@>t7=5=%pZ=q&L+D zy9-#1EravCT$=t`K=%y2Z041>UibRMU)=EeMe)UylEzpfelSC?O&)w{$HeY(4p=9bbzMu4$fuKC3j*ZFfFOFWu}n(IfgL~^l&;}XLb zO4UIsQ7pq^Gu-aZ`^)S-{j#=0Fn!FEY?sh@<%R}a{hFpN(^isjU20$C8vfgV{P9Gt zzuzKI;$Oqze3WoRTB#^3{z$}PbAQTh|N1$1!N@AIUgG^Zh%buyvQ<&><@}J?yg6p- zntaTiF9$Xzz52>g<7;jhbtedSdT02FGvs&>JW)i%2DJ?dumyRadq=rN2}1h2s&S>C zL-xwl?DhhrUyK7k7U7zH$tBO70tM1HyQS+Fm(Kd-w;PjwMz5dTc6RRzf1bE>5by=A zLn*&M8neQ+wNVuc#T-96O4VoG)0w{+;w*l|;D#eg#7wo})W?^lz8I;#Y}6nbfQ7Fm zmI4uC6@;rwr&fQgI=}P*+`B20NoaVqmqQii(}x>bM;dd#YELX-k?l zh9y{$NuZe%&G{|{R?CQ~{${ev6*)2&r!JfSrYi=CHrO4vYP{vzp2S_m< z{xAKy=b$?m^cmd#Mt&AB|BUIq7oYhYTLAp>HzVnUM>A5fIJf`A$NakI4QPSkRR1*G za6H}T@s<6c$2fj=?LbGdZ$x^Bp~HwL$Sp*ATygVR>EZ}DwERxhs3{|zv9-3qMCED{ zOBVJU+~GSweSOAs9m0B?YMtxjvp+JR-vU}| zmc<8eb{*Ut=tYqKZ%9@?eryU5J|2f;CsgD41-pXQ;+L9`y0@^miEr)W$35M(i5g=j z$e#|$*sR(Wfbe4=Y-`j0IMi|6eKZ}VY>ejX?{_fv2JtGASd<+)Y=Ps_5@cG>T0>8N z6VP^G#o_g8jvj46eO?Ax3i5A`U+y~QpY>c15Kfzet8<;~I3~b(n1*E|Qk**vhYX52 z(Tq#Q1IAqH!_me-6(CGI#+5#jXsJfXIy#JarbiU5*gDM;-@j+MlK`&Azv5~ZTs*k( zzA$U?@I^Tfm$6wChithwkEHwky70I(wPjn>4%M(9(Q{mZ`gmm=DJZAI=yyMOabYs1gg5A^ai-Gv?gcnaD71G_DJCc z>E%0O_KKzTV%zqp^muiVFQwv2xhVZI7EerJIZMZB!Y2+Fel-HFu74^$A`5vjeG!fewQkCm!MYuYu z@gqpCM2$Pbts$JzkXli@eRE|jJo%5yA7m>ag&*~wcqe?@{@2wnrB?a4W9ZXHC|Y;B zJI{TSugK%pJ-TMcpjj+6b<+FUZ_Z_%_;+s{_^H>Y9a9o<+dZRh;Z;&&Ca{FqjF;Vs z_BwZP%806QrQAw1xy1*Ern#o9v@E4otq7_0tHaVXl?(=TVZ%dyXXC+h`5-y~m#C={D!biTUBqaS5+HorB^eAvV^hWaCmJ%%O?f_b>0d?)vS=aHC@2ny%MY4s^ zWu+I!0%{8CzO=RI)1ZlI_BOd#M8ti_BY(=9G5h+&9S0zv*N?JfuUHl`7tE{G3ky*c z8qzThHt6TB7l*0yp#j{uVy)70^gy-%=`oP+;(3d}Pc^9dC{*}{FVFWlO}OWgA78Tz>YR;aOpaT*7lpKo%9@{Ps-G0bfX4PQG`^bzE{i>*x^U&iCBx z7m#jT0h)s@%`NmeAJ^i@J!JXq*mWQ}ZCg=f1orD+%JzWEB@K@!zJz#YaEc$25~@D& znR47YGg|8#BtvoXS)yUZw+0$_X4DdftqHfTuLGIfA}xIyc>{dVPLD$}4ZLt8!e8FE z==yJW6zN2VS@k)Omqnq@X_RmYP>wvc1rEZbZNdZc|A55j;zUf0HksT-@T;Cyv(l~t z0i30jI{Jyl_s}?Hyr)6ZX3@5RMRJZbv$Ah1lEihYh#% z4%+KLI1?;|mESv}c=5d2Kl=ju=?SN1u)!l&Ss0*B6J970vz7TB2~}@G)$2IVmWQ3y@6nT{ozu)-xO(U$&az2uI!K+QL)k#pJIRnx^<3&~G6-+i zq|R(0W28F@$N*IFcY&pRhj>mmY~C~f0LX9F0rT&E1Fu0cQH?h1HdQd^%veYavd2}qS zTVcmZ&f81dNt(nX3yB=rm5IL?#7_d@uP1KrHSBfbiJBWm6(a@i2Ju%qsxFg|f77%l_Ht(7rBByBid6OK{Y$+}$B0>Z033aqeMifOfi46;aJLEVQd(Z70qD z1QN!a+LqJ9s&nURh8=5G-SHP(FvAnG)kZJc?jwpsu+XDf^(McxN_N=LqX%8Oy!-TL z$E8__m-fA3kk{vX4aBFWmJ@8$QoJIk)-Us?+`H&nX5xK}0Lh7gltQhiU3hc1mmlhPwxdc!cho4i9hIifuPVI7s@9V$C5SX^ z7E&krM*7@*O+X*3DaGBo-DPuN!{nyzi5_x81Yon$+r*`x5&F@kvx&IO-NvsZX-k zyMj)y3^M^0F{yFtLvbrI0GB0ghMMm^?TcBp-$#_rK(RbY8pZ(0T>`3V#LgWtvE5Z9 zl;IMn)A2MtOpiJj&0uZ6#HWcJF4zHRZ$a^JQ=1QP`yZEoc2&kzCm%cOk2l~suEihZ z_`0TP!t3>lNHi=qZ`iuRs?sJuxa_9XBF_5*_ABCvisQ!gP&@RyP}D9<5Z)C36n4!6 zg=Gs`UH-HDq=$#&_eXks+KAN^p1xI8s*lewyP$^V_vf6oL(75wAsDfY!O6cfUq~{o*Jzb_h0|cgbtZ0yC>N1h)<$C zzM?ccfYOFV9oV%fqP_ktbACA8kjASy?_be!7HI*qhfm{#NKV`)@odY7OXpwPba8@= zc;=`lickTKtuOLj74sUyw3a(}I9>dX8{WJ)8ygsP2=-gzlRyUG>=&xhhKUd)-ql-( zzzpd+bA}g~uOJ-NS@bxdB^ttMhuhe&tnzr5QU!ld=cyH3RDu1H{)A`$WWJ zDBZHz8#xuEXYMN84{<;dpG3t`!%wiSK2v4h8OL&`XFCiYIhvE`Ss^)`p$uMxX`yMh z(-5I3Kj}(01$f0S(|pY%d`gPXta7m_CnyTtK@pCIkTclJ){sOzqv|n1d`+S6FSggX z?Z!7Q+NYZ$?Jf>T;*(g{{q~D}JzaOZit~DrX*(S6Ky$Ng2D`eV&QRNGbPy$_OLKa~ zQ}MNN<(Dpzr@6&CvqpRx-l&#@cE}u;Pxa34t-1ueaq7DaL8BxIC+dXwvP!8*lRm$? z!$!{b1`cTAiH#*!_%(0A9Y*(pU%LzZP7hs8y;9q2U8*{yNkdbTdmSdqx|1Wg&2NF` zkx^x-S>esdCO;4cKFEI z-oOD*d=hJlt{>_z$+@R0P<-xolya^*5ij}85zt&}U984>yKa@X!wzc&npb$a^j0!^ z0O44?h1Vm$r^w0c`EY$in{vzSpYPG<+WQj@8sd|fHRO>WY98+tmu-${nRX$%7(Vg0 zx|OjHYd0AE-Fe*TJ8`E0tlLd1`lhL3lb_h|d}^JVg9Qg2@kz`cHtl+$3C?mUh`ThP zQ1^-tLL1Eg)UDTxjQF;eX;5l`ZQGL{UH=R}06i$tVKZ>{HA)v=`s0m17{>IJJE?wbfOcT=tL(v(TPrUq7$9yL?=4Y ziB5E)6P@TpC-yp0!?NSXjk{ARbvDPSaohr#26_Lr*IrBe_WRB|@6;AAUi?Gcy9AH+ zfpC8MTb5=0dDyUFt3LejL#F)j%Yj)qb~wG5=SQTDToL^>gUc2 z&7f&oKAstzc%IJ{yId|CiD?fSG)Uq;*KHjJ;dWY?gzL+ljc4ye0==+h%a(ByCr(VQ zb-R80b_sWW=Qc3$o{=E!WJu423m0aZPL~1*ae;^v@%$;tc;Q`#7>1!|i*&;4^}<`N z5btr)19CW|1a4}7C7ozYe52VY&JLKzBk)|gs-vOdUCbmm*Vosd2qdSlHwD8NM3_$Y zcsv8*POXAp$#D79JzX66phSyPuaIMTU@7TG)y|7O0f>!4xHLCcluQbDQBGDP8cOG( zc<=a}NhY{3PBnAy7GP|ymge1;|YNc^_Nj~aAV4+WmI3I*Z|vByxi}4?>d>Hp6f#Y1Wo2c!ckkZ0H8nM(kP-Xil?unQ z@#DuY4+ev^&p!Js+v>Xnk}-Gg+*}l*0N;i1vmb*iE!QTSeeHQB0SSWL2ulINHWbeu zigRi?D?dMf3+%E5$OK$UHI%7I*;>x9nZ}UeNT5TR`xEZ_0}O<#6p~t{A_3|1`Mhwa z0myAhnQ$4~{2)C5&2bBaONp*?yWLA*6yAlF#VN=H|BZxy1%7dj`=^j0-i1u7uC5-@ zN|Q4qmMvSBhi2$xki_rs*5SAinTacWr1sBQwQ5xX!hc)x8N7P|!-w<6d+bP%nhTtU z=bnZiuOqJ0;r=+}37o%z-@FF*s}cUbnKV@<;+a@nIGC$PQ1yPduC9(-a_?(6L;{Yw zN5s>tdl15w!3f+x1V_e=D_|sd@ox{pw#Hx;+NY^1FPfS$P41XFj5)XU^Sq0&bhQbP`2W{3J9R&sm z5n|iF29aXMEW|bUTThh+5aL2+7=`=P1niw#0!i&g(GGaX))0wA81S?(FyJ^etCtWC*0bDlVl^Ve2vXe-1JNb%C!AbO z?ZoB68EFg8tiW+Qq`hE?XB@d<5LM@Wc*j5SzU01e3~P@>hHKM?$ToiVv!D5)zK_NG z+1m0VtQ^1C388Ag8OMhp3vrKW$gpWMh^L<%(BSr4oAG1Tn@7Wgtf@HK z41T}=F!s&9fQjft2I9kKnc@{?m5B#&6c( zxA)ALG2`|jLxwzv5_Ub@xFK+IaU+)W9&pQQA!rYf$z6y~350vivoNsp>t6`VW3RmO z%5$(!ehar3;N~p3ig*~vB;BB`o#z`P6Y)+7gOR{};^+xGa}Gmp>&4MG=YjSEUP&*0 z+Z6SYmUcz0lAYD$z%!dj!2I{IE#~N z9&Wwy40HTq9CvA5+%9hQNE}#tll3~g zyjLN-v}FX+G=g&)hBQ`JB8)T;BS@oWoV7|kJSoE|)m{YG1DMFLcv~B4Z3#>$67mR$ zd7A=%-$q7w6YiJ8oz^$s$I|{K?zOfWB&&cW_}xMXn>jj;9JOPe&ia?lII4Mv_*g8q zEA>0WV8V~}DCM*z9H11zN!377TcqtPAY8OHnE7dcaEmTxeikaHm4T*P=+#$WeHYs5 z9LNC3P{_EKUw*mS!jG+%-ob+hvu^tmvI)Wg?c<;}cGbFP;Fv=>(#N{#2qfZg99jP) zn?;PsX88XWa_#cCQ${f2iy$nO{5}0V6p6yjMdG+zY z_vS^57JYldgb5|6PJ?Z=I$9+j39C@TxxvookXlGryr2}fc4hE`0i;@Hz0BrSQn>u+ zr+CM6@b_}O=XWqr+M}8+7==slyTu3#+vv>YN8y^A3bWdvnqP#>;ndRy6P|tcSvK1~ zKwPtqX1(-?#~x;&oJSe}wj%i1-h=@WKl@k)=hBTP2nEd zyGprrcY8rK{xM4P*hHO^l*1q=LjDW#G3%%J<85R8`t`K#+0>*_!zSSv2vxoZnIVkx zG9*B=%>)hxpn$L``xl(Pha<^PHhsxu7o^Geq5U4hz2D*4^Ugi@+~UN&G_*-P>J659 zHtSeQY49BmPdQDi&EIwu(A-1ZtOW>%v$Yq(!j2b~d{#{y?OVMo8R6B>gV`@)6vBAz~N}5&n+I0=WNvfO?&s+CLW+?w6xjGsf4F_5KevCRqH-$ zK$Fshwf%V_(y7IR5m82d4#Ig*mi8n#NQ4Y99~pq#wM;;~AB21aSr180SfwW9TnhHy z(dbP>yGkw9J@6IOH4Q3SRP@kkhV3it*s;TDvO$t|0ZV%r)za62K!B}~gC5KPu!|O= z33opXzjF}x>)^~acG<(p^kB&!0`B@W9b{`4@l^NllzsP1=v^L?>CNDY z+qNWm@`1a<(M(P=$lF^_E4Jy8AZ$kM7j0vzd(>ZFAXl?*nw=}u04osrUFn-|3T_e@ zK>f**k^(dx-P>)`AmQ2P(N^Yxmr{cT-tJ7sp$w%I{wz0HEWXN1`>sVb$fENC59E3%7%vIWeV*ko*r!4w2AFU zmiqm|Vt(hHcOt0Yo9zm5%bzELv&L$}5IIvHH;6M^Tz!-hO1s5C& z%X=`i75AWJbGgL+jv%rOJ8fU-Zo0`6&? zwVQb2#1l_su4Yf(L1{c8A$ee1_$tVKDEU*7(2tNrxU&Q?A?uNd+)vgSs->-g=h&M@ zBa@|>L%Tg8libWs-PjSQ*C$QEEA&_Iq64n{aDUqatI3aeqF9 z>5o?^68~Kse*-_b7w@e&a;p^X;KlGVqcCi9-gx5;XCNnuT_T?99tTc`X2esf?jQo= zL>q<)dMFTbv9*bq~zM{r7RnXTO5y zYY=f~*b+ILk=O{K(UtU%BW}Ag_l?u26cU)3i%m$!ANa{?rro#qq%HTG=WzI!i2oe8Z-7yq8WIMH{2Z+e!d14Pf?uED zNPk$WsZAJ;f5D$e@!tE`&c}5#q?!`=0sL_0vVCI!gD8kZorKfN5&t3_>u`Jq2|f*m z?8cIkk^#8xiR&;Da%oe-cNetwVfYo{-2>n+t@<4}U-8mQFYS^Rr9boL%`4_dqzEUw zWgR;L;a%C5U+r!~9*k&>_?KUPdB6CMprf!$b$lld9&{4_4MivM-%xZC{|!Ya@!wE% z68{awH=THn>92vXvxQ&Xe4=R@J3$VpEx~skLi|6wZVg+j771Pe0000