From c22cdf96541a6180f91cee8bccd9905aa9f06d2a Mon Sep 17 00:00:00 2001 From: Southpaw <44805409+Southpaw1496@users.noreply.github.com> Date: Sun, 16 Jul 2023 11:30:26 +0100 Subject: [PATCH 1/4] Remove NPO documents and functionality from the website (#146) --- functions/api/v1/join-us/submit.js | 80 ---------- functions/api/v1/join-us/verify.js | 81 ---------- src/layouts/HeroBase.astro | 6 - src/layouts/Home.astro | 22 +-- src/layouts/JoinForm.astro | 148 ------------------ src/locales/en/common.flt | 1 - src/pages/en/community/join-us.mdx | 22 --- src/pages/en/legal/bylaws/en.mdx | 97 ------------ src/pages/en/legal/bylaws/fr.mdx | 95 ----------- .../en/legal/membership-privacy-policy.mdx | 73 --------- 10 files changed, 1 insertion(+), 624 deletions(-) delete mode 100644 functions/api/v1/join-us/submit.js delete mode 100644 functions/api/v1/join-us/verify.js delete mode 100644 src/layouts/JoinForm.astro delete mode 100644 src/pages/en/community/join-us.mdx delete mode 100644 src/pages/en/legal/bylaws/en.mdx delete mode 100644 src/pages/en/legal/bylaws/fr.mdx delete mode 100644 src/pages/en/legal/membership-privacy-policy.mdx diff --git a/functions/api/v1/join-us/submit.js b/functions/api/v1/join-us/submit.js deleted file mode 100644 index 1f84fb9be..000000000 --- a/functions/api/v1/join-us/submit.js +++ /dev/null @@ -1,80 +0,0 @@ -import jwt from '@tsndr/cloudflare-worker-jwt'; - -export async function onRequest(context) { - if (context.request.method !== 'POST') { - return new Response('Method not allowed', { status: 405 }) - } - - const body = await context.request.json(); - const { name, email, country, token } = body; - - if (!name || !email || !country || !token) { - return new Response('Missing required fields', { status: 400 }); - } - - if (!await verifyTurnstile(token, context.request.headers.get('cf-connecting-ip'), context.env.TURNSTILE_SECRET)) { - return new Response('Invalid turnstile token', { status: 400 }); - } - - const jwtToken = await jwt.sign({ name, email, country, exp: Math.floor(Date.now() / 1000) + 3600 }, context.env.JWT_SECRET); - - const content = `Hello, - -Thank you for your interest in joining The Quilt Project! Please click the following link to verify your email address: -https://quiltmc.org/api/v1/join-us/verify?token=${jwtToken} - -If you did not request this email, please ignore it. This link is valid for one hour. - -Thanks, -The Quilt Project Team`; - const status = await sendEmail(email, name, content, context.env.DKIM_PRIVATE_KEY); - - return new Response('OK', { status }); -} - -async function sendEmail(recipientEmail, recipientName, content, dkim_key) { - return (await fetch("https://api.mailchannels.net/tx/v1/send", { - "method": "POST", - "headers": { - "content-type": "application/json", - }, - "body": JSON.stringify({ - "personalizations": [{ - "to": [ - { - "email": recipientEmail, - "name": recipientName - }], - "dkim_domain": "quiltmc.org", - "dkim_selector": "website", - "dkim_private_key": dkim_key - }], - "from": { - "email": "verification@quiltmc.org", - "name": "The Quilt Project Team" - }, - - "subject": "Join The Quilt Project - Verify your email", - "content": [{ - "type": "text/plain", - "value": content, - }], - }), - })).status; -} - -async function verifyTurnstile(token, ip, secret) { - let formData = new FormData(); - formData.append('secret', secret); - formData.append('response', token); - formData.append('remoteip', ip); - - const url = 'https://challenges.cloudflare.com/turnstile/v0/siteverify'; - const result = await fetch(url, { - body: formData, - method: 'POST', - }); - - const outcome = await result.json(); - return outcome.success; -} diff --git a/functions/api/v1/join-us/verify.js b/functions/api/v1/join-us/verify.js deleted file mode 100644 index ad0c858d7..000000000 --- a/functions/api/v1/join-us/verify.js +++ /dev/null @@ -1,81 +0,0 @@ -import jwt from '@tsndr/cloudflare-worker-jwt'; - -const WELCOME_MESSAGE = `Hello, - -Thank you for joining The Quilt Project! We will contact you as soon as we've confirmed your registration - -In the meantime, here are a few useful links: -- Our Discord: https://discord.quiltmc.org/ -- Our Forums: https://forum.quiltmc.org/ -- Our GitHub: https://github.com/QuiltMC/ - -Quilt is an Open-Source project that lives thanks to people like you. If you want to help us further, please consider donating at https://opencollective.com/quiltmc/. - -From the bottom of our hearts, thank you for joining us! -The Quilt Project Team` - -export async function onRequest(context) { - if (context.request.method !== 'GET') { - return new Response('Method not allowed', { status: 405 }) - } - - const token = (new URL(context.request.url)).searchParams.get('token'); - - if (!token) { - return new Response('Missing required fields', { status: 400 }); - } - - try { - await jwt.verify(token, context.env.JWT_SECRET, { throwError: true }); - } catch (e) { - return new Response('Invalid token', { status: 400 }); - } - - const { name, email, country } = (await jwt.decode(token)).payload; - - const legalContent = `New registration from ${name} (${email}) in ${country}.\n\nPlease make sure to reply to them.`; - const legalStatus = await sendEmail('legal@quiltmc.org', 'Legal Team', 'New registration', legalContent, context.env.DKIM_PRIVATE_KEY); - - if (legalStatus !== 202) { - return new Response('Failed to send email', { status: 500 }); - } - - const memberStatus = await sendEmail(email, name, 'Welcome to The Quilt Project!', WELCOME_MESSAGE, context.env.DKIM_PRIVATE_KEY); - - if (memberStatus !== 202) { - return new Response('Failed to send email', { status: 500 }); - } - - return new Response('', { status: 308, headers: { location: "/en/?toast=registered" } }); -} - -async function sendEmail(recipientEmail, recipientName, subject, content, dkim_key) { - return (await fetch("https://api.mailchannels.net/tx/v1/send", { - "method": "POST", - "headers": { - "content-type": "application/json", - }, - "body": JSON.stringify({ - "personalizations": [{ - "to": [ - { - "email": recipientEmail, - "name": recipientName - }], - "dkim_domain": "quiltmc.org", - "dkim_selector": "website", - "dkim_private_key": dkim_key - }], - "from": { - "email": "registration@quiltmc.org", - "name": "The Quilt Project Team" - }, - - "subject": subject, - "content": [{ - "type": "text/plain", - "value": content, - }], - }), - })).status; -} diff --git a/src/layouts/HeroBase.astro b/src/layouts/HeroBase.astro index f6f5b75d2..48ca4dd96 100644 --- a/src/layouts/HeroBase.astro +++ b/src/layouts/HeroBase.astro @@ -114,12 +114,6 @@ const { rtl } = rtlSettings(); icon="fas fa-circle-dollar-to-slot" textKey="button-donate" /> - diff --git a/src/layouts/Home.astro b/src/layouts/Home.astro index c76abcb24..88740c970 100644 --- a/src/layouts/Home.astro +++ b/src/layouts/Home.astro @@ -179,24 +179,4 @@ import SponsorRow from "@parts/sponsors/SponsorRow.astro"; - - - + \ No newline at end of file diff --git a/src/layouts/JoinForm.astro b/src/layouts/JoinForm.astro deleted file mode 100644 index 8b9a9aa61..000000000 --- a/src/layouts/JoinForm.astro +++ /dev/null @@ -1,148 +0,0 @@ ---- -import Countries from "@data/Countries.json"; ---- - - - -
This will only be seen by our Legal Team
-Please enter your name
-Please enter a valid email
-Please select your country
-Please accept the bylaws
-Please accept the privacy policy
-Turnstile token not yet ready. Please try again in a few seconds. If the problem persist, please contact us.
- - -You're almost there!
-Please check your email for a confirmation link.
-C6uem1P^07nN!GhFbN8{X81 ztX7-GzCBN>dT-ct6q}mDW-35_ zs&}lvsH@<*TSFPX&k~fTE;oWgKN)jog?@GwQRweQwzm^b`pkuXo{374-}S(gKSyPF zoW4n)wJQ7 -L>{Yy-^ z2$>681Fev`Q=^?*#t-!UG3T(C_1Z{h%oOBy6T1dm29HRIre8)anABZ#5e-BU3E5&V zERt^8fz2`9fkqBwYOGCZ^f0_yRdoldfy{agv6IfDt8X=2*Ceph>*iss;=qcon|)|` z&W&+B){LtjGwhZ*K!$2*1V{J10KZvR;E`U@(Z3q~>n>PeztwSO3hI0- W-U`g@S+>QKyZWKut~p`WL!F2`H1nnn2d&rlnm3MIsjdb9HvlUamk z;!GslJS7#F-*2VI-KZ|Xxg ^Hb^K88?^~9%2fA&f z6u{E5Rx8s=@gxxlVG?23RGC)3AeJN=%&ZuuLig)1u}9#Fe*7scv^q7Sx&!I90#|~# zGXY FL+B7u4X#WS!(8C%-ad(2 z?u~{EwZ#)W{*90SqQ&tbJ=Wc`66-g-v4{qWVc7H94%F) W!$j!Ub zYGneuUVa3j@JWRIVJ*M%hU>1oeMS>My}Ofa?F1E|e Q3t3{kob-GS|==s?D=uc6bE{9CYAB>N?H@*M& z-yc!uXX%pUV4bBWw*9c?_FKV%2@XZgZgmO9B|%1R@);vL!XTw?+XSv8 |8D7-k#V=kgyt`L&PU%547s(e6-;!kV?0yzWmef%k*^ ze~$5q{TS%qh-E9bo%T2ev(vOMdtQ42laq%C{Z~VX_q^? et2bH|wlvY6AbC31C z5;{6k&Rdvmy^9O+F2R_R{ut%{nS3f5qTEqHzOM%q{F%ySz-=o5Rc&V{@I35! 8swjz_W(PW% zyq*9N_cHze?0pB6BxiZ;t=M_Gd%9<4C+*G#ZB#-lX?K+~0@(^+34{RK2pb1@82e!x zj%^`7KikhFKXAat27`?ZBAO)0zyqPgDod-?=9vwXQ|DY&|2yAb_4icw^vure&a76u zUFXc1R9)e(bnAZiySG6sjZ?lOZB>Q w!mYL9v|0vE+*|9hdZY z`#QA6*UYdrj;p)P-niH204Kp(%?Yf;_S*Yd%q1~$bT^9G6bCZ2NMB0~E7n~IPk^Ku zwe!!iUYN_ Clk>Xj?a}1u0Hm$`}vsNf4^vNti33o z{?4!ex}+#ypuetIu@OBh$=G^v)70b<96j D+xNh%3Rg}elOiUid Cwt9Oz*i_sEigS{CMgk^asXgn zMOIbAVqS|$l4LTO$uK3-bV)2PLC#r>O{@N=wnLqKKb !VU zj2)6B=@5WJW~FkZl+FzorlyAmo_}?qR6)5jio&^f-DL+@Hm3!T0K4x#`Jvc3!B|^p zJuG%Tlceh uo__-&QVoua^6`49q27pO>+60V_zTl#7@gI)LQ#G0--Ol3?4aa}n<7ak?PI zn9Ph#4SQ7;qSw2!pLj{Im`j1mf+hhz=ZFMCQ3P7z_BOczrMr1Rln43WoJIipPUFKU z;-`Yq;r&RZCY+L?WErK7EX$vBm?^q0TS~}clFzavDyPu1O6G8rYy2ewy3YN_{^o|N zR4U|+3AASQkRthB<$P#Q&-qx *1vNPg9NLLwatQJGYOL(LXyK(nNwznegC`lL zMY}+64Kin3Y4d4Us8S^U&IM%E@pK(yUQ;!ZoH~qjdXyi9*6tk$MAzEK#O~6pf?sZm zTPUEE%foM)C|Z_PsZe`C#WE@eGs|VmFifI@rx~**!K7hk8iR#gp`WGmyK(_}f|<&( zYwx;+R@R(cBk v0gw5xLwp0O@l8S f8xZJ^!oW!6JWi5j@5# ?@D z)frcI8yKM^ysZ=+nyK4ef&`|Vk|1ZT1h67-#kE%|3EOS ZTai5odwby5S|L-?1aqtx zI43akdCDIin0^}hN{T #Ogx{Ey@A&1WJ-dTiF|4th4hr2waBrfj8M1@9)E-%pBivgwWT0?4be48 zU`lAs#F#p#6ERn&h4Hb2m?U2>vL9s FJ^tj>Ive9+8tnFA-ISVpB#LAg*wIafd> zUjXS;%! t06b7Dro}?TFCgFoS?!N8wXZj#D z0oECIgcqc@$}!EhU?2vHX(&5oK`v%@EExEA+4i_nEFG56UCEleEa=#t6TngugB>^K zGu{im9!a8xL{z EoTbX!ii9qfgTg#f9}@7&tLX0m9=CME_jHgX82Y4G2TLMvGLLdfvg;L0JZ>cJHO z2m*TK3KH(_fG6OG;?bdbb)LJX`MgLBJ%P~!->?DJ$_vo3VqpM_x&{yIdkmRe2J1Fl zgO=DifEs`$`9R>x{!$&!HG0C@!MOsA+P8+q-69FVDjId^+v7!mshG*3l+GZZNTZm_ zpqS00n9g!gMMk*P072;jG|7A{6cBqtIdrrv^7mCVdSP+8T^)dGQ+#BbK~^Ldm|=1q zA}!Ob7~K4UzlA6&Z#9)v$z A(-P!mKW_L*=bzqWsh0YjpmQ}lHie_lyadxUvx*}B+9hwh zm4~;V$ *!spo#<$t;lO(^lh>}4Wf|cqcia?b=6kPyo zC4iUxpeOIB w!zgp%izMuIUo=A--xOBJC?7RV^6mK~ A(Al+d{;O5?z>@vQmKe&W41Y^EpaeNUu^lw(G<7F=?Q@n& zQ=v#QOlENqm7hu?Gd79bR1&%A blVkKYH??}hI3LZk0~KgctQ9`3}NP$`N7 zHTvQ#n8LSTY`Xn&VdE#xs96@z*R(1IjB H!X##Esa!0T zKN_B4sVG2MWc}5!k|%j$G(TP)0Xj!hgQFOHemA`kq-4h4dg(jw_{o_*L`{Ho1{~qp zV)ptxL605MoTn}rin*aL9)06jFfiLVlz z#G@OX0) @UCv~PmV66HZL&JN&m9Y=cDC#Hun zc=RPyD29+p(6p6^t$GV@V$i75iiE+E%$XVvy7=bIe;Z1U?8MNkU*T73SJ!5A^=zrV zY6;lLK|p{9Rigj^AOJ~3K~#&vkOHve5I-&X5XrPIxyleN)#c8aDxE-;!uK^lokDte z45{G>WX2~spduir`F-%U1VEv^o=}iSqUe4fJOrqGHjpA9&L8m3ImQV;LQwP;!QUrr zrpoC}sM!U3= ZwL%N{Ind{0)dW;abxF*-9J)754IIVj?gPxStSQN~ZrJv&x4d*pR{k2UqzSNI z!@*yQRnLH{J7r)(0tC1cd4i6=70(i+FQ&nx+pJZUt#V3(99%gXD~o<+8h2}_&&kAK z@sc9(=fqr*Fhzl6$zb#plcedRk=rdZ-=oNt>UpJk0`P}pylb!OGc^lbxdE2_K&R45 za`Y(5g>1D$kT8QT`w;f`!l#n1i8ez303pH_td-CW37wH!xNbj`3Y9$i6OVBV2bv<$ z9;{ij&DJJWr`k(|gyNGU{YZ=r*dWHyHBpx!l>|xrJi8<~n`PqhK^*nDI|Szwvb+E1 z%5oG<1eGGP)1!R6?3f|&?!aKQ4Z0^(eRy-w$w@h kGACh|cwQL)A|#?=L<6B986iE)7+i2EznoZyY5AA?q=i62-iU z2j=qJ*63l(nJPu)Y*BV{8i}LBNDYsnl%~`G20h?KC{C{3A$VKpD+tZ!;SS!4!)P*z z@p2w#o`jO0cCHbEI@z0q0I^OPRx&KS@QLr^ 35Q4Ed0 zHH=Vu4Bki!2ltZVoF7e4wN!^>!ONkSzwy2O7~elYkE~%sVwYZV_ie)qUcl>g#^t#a zy-o+?^|sj!I|T=!pl6i~q*WlGAeXVh5&2t{D!L7>${uL4BW8D4E0sBVD*{-O4)V9M zgPdoV1bKfT7f=y3M2+=oK4o24$SB)nE`p-BXc^vM6rKRFIik$80M?30D5R#5ni%Ff z61xOq3)KUhwd#f{`x=x3UCZXIj18h{+}Rz?Ruy0XNEJrVKfRL+@aewW)pagbbZ&4l zZ8K*@A)CP1(N|H(k++rIC8&G+=vaF`f~_l@pyuPTR!b#h7vRkH+~Qq=CRtzD>-Ttl z2u3;`3kGLAs{UTC0P8A) AJu5st (dD<~!Nc;vSKi`2dm z{wZP-ZJ_5|F|q_b=40)5Y%E94TQS8L`^Qu|^-sR3BZ+H1_A!(9fS#g>f|H+m@ata1 zQhQ-2J0Rma3AmI&B5#$TQ@@^Jslq`7;;jhAT;a)0mg*E8t@&3&UDZP`?V%SE3b#0v z&Xq2{@qKrtPK%9O#*JtKtYsYB F(53)}!d=-(%+A4;%il_O0jny5 z<$x^i%I RE^x&lSITB2pHQx{Dy#>Ldj0`b^S~F5^H`b%vsNI@ zj)~;hF%&Z?Sf(|TAIP; G0p<=^C(n9h_Vg~rGMU-V#+fRWT5 zjAUNr%nz|XYuD{?^jP*0 !J`1+c?b7bnyt&8ERTiw44P6YD0J83! zNM|!h*giSYk0Xblx1p}2V8!~|(b{wMqA!bLZW!sY7ZHq~2Y;vw9*-9Wb>op0#xhQd zu0fF%l=68Fs j3t!w`(L nz5u0+ZJ=*$T^`_F!Vo$z4R@`ZZr`#9^sI z++$8|vQ#H@YApAMsQKd9(=U-Ok=i+4P_xPzAN1_pahH2&o6BG75vXOZqOvV!R~ QE86^?ZSeAMC~rU6?t88u;q@wvCTtkN`kgyC-*ZVM3GOj^`*45 zLjr<~**)x@Km=sJAaTDSH@o3BtaLrlc}J8CvR_D!9Ok7#a%Z3E5Nt!l-^+#4oC%}V zySmZ@iRQe2*Roau=Wy&JN`&HQi0!eR 3yLD+hTArwXLSUVV_7`;lYUH&W^J%e z=Xt=3-g_>9zS;*h;3qmc?+N+$8O72MB%oiB
|S(0R3<6|G7NSb(*mt&j0R7-xAEXx8Z=y~Ar z=aEmPNmudX>B%Fvz4?Fqk25-lunDl1 ci2c=U~vDae^C&SDWlvbzLrBOrQn ^H>2foaWVKq&`FTMRdv~`B;{mzu}^kau{@YRVb$kHPL zZ2G;c!P*tDd=ZjIBjur?Yf8bgFb0NE$aok`{zhT{vjf-OKWAXI^eNowHG{EG>p3mz z#lLffC+DkNs3_`n%*17o*h&CFN#?#8+%H2>6<%`nJ1iC1DR5sZ(M@>@!1nSTjk9aX zA||JlFB-7ee;n1z?|nTqQk?8jTK?C;likAR=c^+yFSvr!DJZ r&~+9^Afz|;TpYZ!a_ z0IZTzfl_4X5kLCw*orN`eI5KAE%V+LM7eY^9b)v*Ciax<6-v1Rf3TB4TK9Unj*QCJ zuSZbj9w;hZ9{BPT*!hvK^L^2E6?gpVg$PHT 2e5zFn5}J-B=|eSxbk!F zMoB4RZ0`VIna~1W$mDz=^S1@lVwi+%{g)+a|L{s`Xy5y0LVV@VcD#30K-S)F8SJeV z(5vXO7TnT-&f7O?o`{$3MI2DcvMdpM=%e6dGWv{0p!>be;N&yl8CcF2aOh_{$wH*e zEc36ozw<5kodLUb++An_tm6*R=`q6$xO!9u)=Q{n3KFm)%@xxiIt9JDhO()H^j0;@ zmBV21Zb7Eo?3L3cDD+lt=1O!4Qb~|Waxsk!g)}ZD`4N=_>7hg=L2pn9*&CGv>wuNR zqLlMlB!-WmQYqV-70M8VijcP(K~D$wGPNs`LTBX$YOZpZc;HvdQ*}D4D$sH>4vkNH ziy0V9JdaFa#3t(;jN%W+d50i<=cTtfSu0Wc6X57LEY+O$3*vM3a)`AmWF}EaPun^l zzGVy^Zx8{}x~cSxs$;Ea7u{~`Rkliur @c18m1&6-&H1D#jnF!x$3gYLl z#Ewtjjqo`uYW__CC_kLS^ee}Z+%tkozJ$=q7& `?UcY%}J3cAkre*RHBd*8SCg1lZ0ciwvue1Y2F>q5SQoj>cxf!#KfMP0SA z3s>RB2Yv_nQWk^H?M7yNikra7
q9c(-?T- zIT&T5C`0 !`6Qmx6^cRi1R8i-)jNUL zf~3sUC@%~096<(9#YI;GX!Z5MqY)EB`g#GBoUFVWk0v*GaFqkyAj^hF4vQtg)!e6h zsgl8DW*^eUF&As4p|xu*qMd7bX=28HVGh=+8f(+2BzWSiRX#b6aw#{%pvWrxEv@iV zhh`11a=>4WCzvn=6*@G*Vu=hw(J^S7aFRKxVHzlxiacA9muoc-yq*wrPrw0lbrCyN zz&ZczB%K~Z|AAk?Fw2k?KYGr)7plJ-p=cN=GfcjE6c69}8C24FSRNh8tIh>e6$D>6 z1kZSqgCBa>x1QgNYrgm!oLS)=i?0k~&*y)J(I*a|oXEj49Og@w;A;=!4S#$qR^9f7 z 76bcnQ_V585 zK4`l%P~6Xk-?#?b|JR-T+!%Uc4@UMJ;G%M0OBgVz^5YC&$uQC{PZUSK|Ef}+$m@(7 z63?Er)&Q>m>if{Tsi$f5xip9Pv|I{-^vvi4jy|)CUJ$d2CEs(&yKb{j!ZUno0<6>g z0M7}o5 6{zSaOCHW#5s>1Uf&{26G9YpcM4jjx?r+6(+uw@QMKk_Z zwtY9fLds?l(d?9Tg=Ml{+r5!=Gy(WqVm$U{HoGxjNzlaf@Bm6w5_DKA0tf+(>=$~W z%3dc!&;`&4Scw>y`iw$1pb|!+4S|&dwi+C3%QBEE3}P~K5QbTFGUmYbWNoW9&BI#N z>8%zT(mZE5u%5LtxX!8|OhdV8B;fJ+cu2FNQTf!hU&4ZchcUZBr|`8BCA}FyWj_uD zLnVM0jkldCNC1@{rukeFg<^(>MUw}uFA#y>AA#-(y6jhve=DII?db3x3=Zx^D7Fo2 zFL^r@)r(@mHsw6@pTEFUfA9d`&&gZ1q5sd`$$K}n@f6y>^*C01<)=_`1qz NNfq$Ow_nBdM4r#Dh5fkhOTU56t2Xj-^u(bfIQq=XC}r}{TU+4u zd63yVj?stqA^plYtTL5V?R}!-8*K3)67yr|aDrd|vPZ);|9UUFZ`i!NJKkLSYdQk_ zCFsZ?hF;zW$zoHgtloUl-M2jZnr_r7TKVzsil=BpnyZ;T0`r3_vLdEVL2jR5cL|ou z9xiAXz>0SYvRZIOB|)AoShZx}LCrH_c1z*>yevtjjMP_1vMU%vm`a2vUJ{gHmjn;n zB|+*Ev 1>U-a?Hn-h-ZR%=&V7m(D=E%eWr|b^ znduNDomFf1x`k=2mWj2Z9KlLiXsxJBqre}E!6(YGRbjsfWwwD)jVrsm^RGHiu812x zOwR9afF>;9d0A0_Et}cN<&(%}rjXC3pi-`6AdFD34IXc3K^|Ar69&xiIf!=l!7yq& z@Lv4O?_<|z{u@kDaPY6*gUMSiwT~m^JC-YmJhmIF|MvsX$CJ>bK3wv#x8V7|{s9W3 zNxML$t0=8#MSepMjF1oEr}x1#ILQI$ruSZjt$+TOv)Z|v9&|5#;)mGvsYi|vu$&Ig z@!<>}`PQr4!hzVs6<4pvHDCNqXg(d9t|L30!obcKFuCt2@_Q#R{i9>3B<&z}F%huZ za#0u7tdH~MeDABfU{p*pHpPxlybbH#zP)+-KZ8er?i*u!`Y~}}fZnl2EKR=jvb%nH z=nUTF>aH~b)@gc_XMw9415ua96*;rZq%Id_L5jU`fR!i z9GkUA!c`V3R+C% zZjj{44p}A*Yd*y;C}-tMs9T$!P{dXdYqhwNpe;tvCMJ-c7`97-7FBu}ylMmye;;&( zT*jSzJE8UAtd%Hj2{uN6Ct*KuJQ4fcr#7)xiTn{vrVqhl v^AyK8YeV&TNEHbGvq|@WJYkV+ BBGgn4p3VqL=>m%JD6;3R!qm-| zAiH@btRRIsO9=1Wiwz(6dq{?f?rS&Unt%Vz
NDhwDZEe3%!X;PS zdt2u8+}fqxswTi%+VNbHr8NXso;C$-j)5p=te~N&Yw#L6Ds?)m8s>_?6_pBw-pVl# zwZ-g?d8kbN>0EDRmZd;GDP3+B**a!}D`>hGehLb1R1$Q1D~SiTBV?y`_T=a>6w=A6 zaVVAhT0C87@pap*RW<6ym2JlXmYa {OW!Nphhp>0Lb(O22Ta$+iv@BGJ$9AI$<>*H_3y1SbU)@gdmEXih(2iB3NUZCJ} zx?4SEjFoS^?Dy{~EXl%8^My14)@gQtW|sx&3F)}AXP_bE7>JgLv7$~vVy}eW%JSN_ z3=ZHDf_BbeIS%bY%udei Myr1 pP?+_$$J%LYN6Lf-o9nez)ZrvqS zmw#2&IMm%}Aaq({KB3QYcY!*fwrX|Z2C=hm8+N81L%EX2)WlItO&x}5D6sP9qU(aI z(Y~e+74nd(ROU1b-TV2U;pzLnO(BZd`w#C&^0LN;q;j#0O~3nDNF@Wizx3f6P*uI0 z8PNOp-$l>ozRwAj^FMSGF8sq=PP421)NT%4hkO3%r+DuE@9-6S{Tl9k&sO;Sb{pWF zlLL$%`POcvlSO!A0c`s}Z^zy*K8nd_2VlCiR;24X|B@c8-_j0`PpxG#889)H#rGa~ ziI;~-IDf&%Zo%eXyY8%J7EkS2aO&4a_9urPeFo)R-msYYjpF|3yRN `n zjy?P`e*PO@;9aEyAA1+Z-g?EHSEv8b2)u_!F@60T8qT9lrE%`N{|4T}W6=CMZut89 z5#QQ(8eQ$Dep3iw?f xcHb*wc;ZKgU{cw-#fNgr zetDvax(Rz%w_@vME795(;J?>Tgu#c8B=PV!ciS;Xs*E+iwGBOQ+=7mcYvBzAPW_-X z*SPE>;P$|>82iMIdv5=e6LtPy_KjWQ6*K|X5)bH!E^bb6mCUP%=qmCAuDlwLy(yCg z12I?31Ig(SBr$sxXgMaLrbV5Djx#%T3o`mrZRW~SIAy~mIX}fNEEc7$k_8G6 GR{Gq5Vt{3(TH4KsfI}R|N*V{?}Rbj^J>LwHd`5JbM z#l&G#NiL$ d3f6sK zJA&(DJRm#1ZWUsyx*=2lPIEdlMu0KorcyZk)bo^rP+%55xZ|C-eg4eYx#RD}!ta{L zUsiLD6C8ng%YvknB5>vR&U6bBOI0ylfXe9 6iVDjVxq{^0$vXutQ}*Ph zu)`=a>XWwhRvth6kvL@T9_TWo6y>Q|p}#hBLIU>0=n)i2ZzYUFB@I#EYWTId?Z__l zR$Qp jYnS&@B`KpLr_l3A&XiL148%fSg?lK_#)%m>!7`a{6 z>+=EyyHyu~Q^$BQ%RoLg31Y5z+zJP8WU%4kF*oEhWj~zieWt{CxEMd-nBPdq&W~HY z7R%i<;B+3=*j_jQtL7LioV5~TdF0tN@}6$=UGWC!x(6l4f?*+-Mmd?s4{!W9GRLNn z-g*x9eEvhQJjW?tHCS+P*8n!Y|L>tqrl1FXxa!~TMduak7qSUw_B@Q?*u%RxOGqz3 zs;c14cW%Lo-tfHpZ5kH$!+Q3yBSgkK(;wx97HQt!Daxa(w776Ab|L;Tm z#X|P!*!a;ap||<@Y%+DqwnosgX$^d>q&sXro?h=KBpv6}&=>}vdxf40DM;p>+u!k) zAHCl9YoXiUJcAcHQp+^ooZ!mMTnTW+nJbYe$c5`R$TDRw_dK9ZK>}9f)J`5(l&;Ht zt^{*MB}Wn(S#qU}aDEb3S*Eno$^L@JzZkuhX!n;;DV2~Qf2%?sFiCI4peaGL2G&AX zS|GbwE4K+|)rH-y0TSeK9ed(-UU0cD)gP8(Imtb($S{;E 8b#eKI75(tliSzILNS*@AvFm@gfmO_1H~7N!s~BwLZj=(p$ckUaX0n(fz{HW ztISv9zAo4@H3V(r;aGNe?!h z-vR0tTnHGVhwbxE9>sG{9OdiNV?kW^wR@2m8$&spci3DB6qgfQ(~H>Z9uS+}oL;{p zK(c^|1Bc0`fiY%H7?yO^74N!j-|Kge7PsY1fVH^sTGF{2`&{`|EEHT>#9S#J4z8+# zc9+K$&lIGNLvm+#It9VxaseIrgnTu#Sex*-@&=<^&~EE~7O1y^j8Z;}>7fBom?zyp zO@l#`;^>I2fkvChS*tn$Hn(MPv_w_^B{8(_NRx#-u^UziiR=+1^M|=pICZxG&p >%$~G>~%?eqr z*R0i*0ju4CE{&W!chGIaAj*U_jRWbvzK6I)@hW(5=6q zNa+6Tecy(q$k_kM_syxXYIGq=riI?md kM owK*n5u}qn!^CJBraAM5;}7V#=9cy7>WwtiTFte~ zmdWt*hYw)??lFEH1Xsp!%a1<{NtG~p@CXt|hhfsm KK$u8LY{ta3vT*+}}!3c~G 6bj19S%sGIS`=QUPakio5>~LoHv1@#) z5|GLk$9OrgP)TtSJMD(5`_S6829eIy4GcpYFjuoW{N@v^*Ov%qmlQ3tj3PO)XQ&)V z4-Fe!QCA=VD^Im~z{MJI(Bl^S3jpN+%~>JM^mnJ!DOf8W&MeA-!ZXY*mak*3st)*z zXRT<<%ZV&r?GK`B<3_|*^`JtH4OIR-!SYUG&oCaj_0y >#|yBq4P>aS{v zF~q<76xRI31CaA2Xdw@-{@3@S^UC!nye+5ao#W)TsyLOy_pkX&6ecqK5S@2%H@081 zrbg>#R4nX&Wfadpc?^_GD8jSFnpI7~6*sNpoq~&*Xt@u4{S}N1ruZ>wySNWGe&hX6 zJQ_b|vXcpnzIqU)basZ#@_Nv|z7NrrT@K5;m^C)%eXU1;o(;A|L&5@+eqoN6Za7;k z8pNIbwLS)C-TE6dS8)YMt2N-NDrgsFK}TyPIo*Ps!Eyxc+(^{z&hB_zF^Nn>Da}_Y zB(S-d#pRHolN00O#q3TnFvVz0jDRu)xtN_g^eyCb`PKe%A%gC>7x9=EQiZ>ZIxLp> zxeid!uR`d~G1S6Yt5PM4sq8_d3&T91n3TIzb_>P25bHSyo >Gis* zMq+nYcOkP-%+D?d(jo8$L%bwNrkpb@p}QpNDiI1M(d}+8{H&bj&uTZJTNhW&Y;=6A zs_dcgwQ?T^*Rfb+NsvC7N*L%r#IWkZtq6B^@KSO8!+5b5H-$9+ vHuS7vZwcybI*_#;;JuP$?8K-G2 e)g!0wl*1C z0y1DKfKLUeeTHc$7&?5U?p1UyW_L4J1g=c-yK;G5Nn{>c53WE~42lD;w9GUvGV|EV z7y&O~9@++(e3t41gJ=0G2_}lf>=shvgUBVPZ1YgwdCvwd*8aoP Epi!$)@a!lcPmIuRB)tU#j49LL9jKt;7-AXTyFcn`~;r)=z}mN1p|Nb z4vhWEmGgcq_) Mv^Z)S8=zs7T?EU;tooik~*QzjXxOEf% z>_R32Z{PaT^C%S!4yw-ogPU>w@83M@qr_%q#-}j0=MYMn90y)>-Dm+nR%~92mKCDh zzmT;y=XuRWfC0s97X3eeh9m=JNb>#L?!NUeU$gCb4OYCkyXtGOfoIYxZE!_jcS=B1 z2FeNtS3J1ciN6Uz1DS|=2wV|!CAtM&WkJDQao{y8`o{LUa=?{k!jqd|mz!m2Q`MQ> z7epW&U!ZyDOm>}FE+a8|6va#mq^BTo#bmq??Xdnjl~~s`JsAIZxdOE}=D~^%4 EH^ z&tHQ*pZ`4=L0`j7@*f<=`rrQ?eEp*Y^wD$UdD#Amx5L}k)a^7HFaj$Ss{M=q`JZ+k zs48RY<*SfR6wtqS5)~@ nPY<~{NTY?xCa*Lt}goHo3Q!)jm=+aJB>mK 18}8Nz!{ReaEd2p03-w9NX0dSj#c04VF0zTpcbe z@R PT4*q0 zJF}BJ_$)EIOEm2^4~5J{?9)U2C>3%%tl2UdlXU#Ft(Se$-y)Cnzr1c+Y9#)diUDn9 zy9XU{vgoQ~X{r^6#S7V~9B2nKk5$Wo5+u%6we@WVSuiZT9Oz=O9Dl5a;Ocm+6*E!D zOmlE$S_Vi5L=)XuEXm~I%%PU{ Lw=2EsL;ZRJVK$n62OYKLg=ns zx-PzT0`xAfOHiEBV@Hb^8xLUJ)!X6m`%x|wmR#dR48{u|e+aLB_D8T(6$2l=8)I+1 za+W8SZ(t1P{Lg K)CtPZUs*!@yk1=L7jH%Dg}qQ5Un-hs>ct~?^gUldo&vThYfDqG 1V~Op!;{XVe4 ;mFjLyyH zz!wqP(bIOs&)N;+=S%-ljO;!@8j?wgu^TVF=Z+W8rU7XJtW$8bXERqG87L`$M+Nfa zKc%6d>)b??%7Wz1UZFCeqqQP%RkdOupe4ea8 ()Csuy|!Ds1Yf8X zo _R9Ynh++)PEbn{r+^cib(a%&WOzUm)pmT+b z!E$%1xfvAx^ZXBb9&wZDM r9v9{=`n7*z&jS5)f1+)tcue(DZ%fHA{^}mfx#IOzf-;wtQG&P%Mg?=P55-V z{j6q6wR5so^^BD$2?_yyb-V@GTKEMpayXC4L =9=;BWkE(q{5a2oX(93x8{r^$bV^OBzwQpXJp4D@A zYtqAZ=c5C7`I#ZUDqnjL=l%69NGGPyeZe|tdJ95bF?bs=mGs$SI?F*;Zfe?gkC!Cq zB!J(z7Lnfid%)}CIGpKQNfr&mFYhHi9b* #ZEnw!Ig3Qo-_+ose^c8QMO`}|{fT42Wscl!L zC;k6i<^aow?k)mYwiQ)X3uHeY?GZl?xZ(zNg+WZG`%$u}tH>?~Dw>XH_c}y7`k?4k zA*}~ieBrfU#|2kz6H&MRYIb)Z*I6ZPofY*Ri#<|h5B$Cu&sa zN4ufOq<0hhe>~Grp w>6)k0`KaXTOinUj7he{-Cp?E?z z3=6&7EX%^dFF%Q=|Lj{}hK0m67oh*XcftsI5qso0^!&qj;T@XdWx>v?H)6-9?}5Lg zr3tPUIKcUlBzFGsgBbbQ9uVM?bp_EaJvjgO-iVIN*F*J@RC5juWXa&6+%Ny_e*+YG zL+J<+FRs01BRaYomu7hf;Wu8v$T7Qvu=Rpoyz!gw$AQP6MQ$PiEueDX6pD8s+!IHz zEe>ys%VC~MhUE&T4j#qSVY_pgCPh^cUD<=S^{b#ZONI+P`ln_#9`gK)7m=GxSWJ?4 zT59q7%kDZmLZ01s-cvK$XX#pIItC%*;L{4$ZIpqO%Gs+d(-0)lId^II@CY28f}06k z2?op2UXkAwOi? godNL}jW3)*GDVv%(er*R!Kr8t2rndtOz9GWLE^I)!)iCpZ6 zC<%(LKk~TBWjMHUWeS!QFZ<`NHPYAAsF4DcGK!V~uT ;XzlY z1F$&WSzJjlSDe6f_7Jk=scLp0nIeYUdJ*kj3y*&>-GRp|2MV!z1D%zNwK6Lu6w>6v zPEPe?L*NMN$mT+8g-;D}<3@Vg7?y!_am2Qba2O;_^B^4QhSx*o5SK$f0nMuUs;ewm z?FMuKtg7*-uwiiET~)+hFQ9h;+UoVU_;;$oLwTgKtyp*UHg5d5+~7)VDmlA9`N6N? z=#O6E0noXPy)c75kW;&oD?-*3^!?I>xaebdz}FURf~&>cV;Ms!mB;k1K@>((2=ulh zykP}AVSlx&Z@$Hql6gGyk*}lwJJ0dh9l~O*Z9#5a8g8Afm&;|#`1Y4xKt4xWX9;WG zb}6p 5 %5K4Jj2DD1Is+GQ7qvgbr2SchGgL@NA%LYcb!EYgpKaL%RJ;~*W%}n zz|mE})KIAC@DV@~WkJPT%@*Y4L2E{TRkdT_4(<)XRVjzALK4?AlSL`8Sym}iFb++p z*5-NxQ8&19KiF+iJ9%6sMvmAXS7gJ$th^q=C)!rY4{2U21KlWt_X%nSU>duAxb@~@ zCh*VYilp_#Jy_Y}g+%6rq9n*GcC? ~CtW zPH2Eh8bh5bHp|S9>q7B2Wy}pF@Z<*{z~~eE`P%98@fAT_`{oUZ#AZMi9k-EVNj&s* zJLH*cG`4^IZmfOVHt0StCJr4&rC7#_jcYM|bO^~~qezWTqLj z `y-VH@1shT)l=g?Wz0H`|VYF6}(TWjT>*8x`+#oHv1Pfx+96so|AHwvgh`1L4M zm6D3;E+N kt z%tv6Ur8AC5dmAd2iBdX;^yoN}gQMKCp^`5`(qshMTG7$ljc{)#$V^F;3`rYCld5|V zJ7*>0t9u~RJ)=3jCL=)CZF*=7N1uCzO228wq_^*Q=dBODCL8k_uCxiTmSOPcv}34x zT~%}x$xp!0;qlvES6p*Nxq_0_j$bZ__XFdUy6`(t1L1r4T z3 ;Flz~a=++{U34Z (rF4w3*?^n1O|stzPI><*l(94P*7JEoF=opJ*!#Vi-Fi?w-FKYV%=x++4M zT_;af$nVlbaRXI`qLoJ?H;7`{_Vi&);(Dx>@Ct-mx*S9P1!%3R9#*2n=wi*5z<$Af zDU1vhkjS=T&6V5u1MrkGSM}E eZVp#WLKx7Q09SS;;-ac=Wgb z4VnFv|7kN>(U>1s-h2+)J3}aB%lO_`U$%pyB?++$dU4Y?-w)OCDWfjMVk(2=&^X#R ztmexgwv_TLsXI46nM7i66p3Ra$WPg64W8C8+WWfDx~hjez)$QwgmS^@GE`MWyE@Rm zc?~pg(+h2}$8;&?CuVePZ$BpXA7+fPaX`Lu`#ryWU@4aUdRj&kU@gPZnk8x k_K*tKyFd`~MbTSSC`15hU}r%>>tuFbN({2+`JF1VbwzSM_hM<5tzL2^Py;id=fu zine<6XaUp7R-3ufRPL^Q%F2TCU5_VM?OcW{y}3w!2~a!!OULlk@BIgo`$ip*1^E0L z)@*F!0BhjDlx+i{%DCvGzl_bleO=8tMFGzf`wv6Wb;MS8^K*{BSxFL9-43HD=L<*; zk7N4C5dU5&SKtl$(XqB0f%XoJ?m57Ln#lYN#9PsQ{ziC0F0p*`ke!kdFbxxf&%BJx z*d!hH-9{0YUvckknNzaz(`Y44fVIR2qej$@rxl=A!E{bVt5-!%(jbe{pkL>LcFtZ= z8BlguEYe<)@0BZKP t z%~fV{6sd_CaFq_m Ny+sY2NCQOwtCoz#d z3i9=GB8E5+^ZR3n#aAH^jN6@_^;#=OCo^}%&eEWdv7s_1#sXM-&333B4-E03TjJ}a zxwtcH1Sr&ZdiM~1@u3I!cQKIxDd(EGwE__AjpN2|{4RnkV>JUHD+Hj5NE{wQ?3`6l zRTb1p>Yk`!holdb?U@~)#6 su%bGji@73)P)jLf)U|~ayB-#1z*TDpWG JQ2W z)1xgaJGakgdzo5vgSC(^O<^KUfy@cVa)EBRG6In}&kZCozAds{jDY=kI;(njc6V9P zf@x4^;1mj(DOk+3J%RWp$nff6uCpSLRjacStPw3sl=TFY<+4wp1#zQQmnkSO8A>qd zVN^JV=^Sa!C`{KrUQ{{^1> WU%N Z1>zv&wXtP%iYc*k7X!CIP3cE+y zGcVn~-L$+vA_glGl-c=f{F0 tHwAn1D-<`?u`C8B#>q8{c1u9Y2`iBVs?cTVP zyOdK&hQoUp)?B><{zwZ-`9kxJe~Io5XVYTnye_8-IQGy>*!M3#N9OPpFSiH!+Hl?n zZb0vw&$q!*qsh4kWXGrBi?%@3b(@KrYmz8BN9Qj<`BVxM`wnCL&=DB pHo+ z^69b{r@?kKG!sog;~9hbif)JGk&&pQsS-w_lIg1&iVE$OC=ZHmK^tHZAEcDiSeZ?+ zn*b>&k>*PGA~+Yg;-YAG xtA-cN0`cDJBqWdp6!A4U75Cp5L32a_sb zh5<`As8bLr#YC7&f=LsIb7c`wvVi^U*{}c3MU|5Jm|<9Y$gf~ccLB-b0Laryl-=lL zqd;b2tU~cF+c)ZXz^Wm*62PjC!D^_#a?fLO#wwSbuq_uH2X>l+cLsV}p^+5MT}t2{ zQ!aN2;W;J16UTs}1naO?ZdZ2kKmOgxAgspT*ix^2F^RE!Khnifo6VwQL2dH{o>ecx z(G`eBdl3l6xE7^$gHHYuF6DH*uq%O$JFY-WJdR?a39e3qTgvNt6UZEve6}dRkh+om zE5h)^0$jX4-$Z3VqgdqjFnTaBKfrP=h%{UhlaQO9#>nnNJfejne}b(cRPtpzFj`g+ z=~;o!^VT;()-s-5H3E0Aal^#bSG?=CeapDY({|A(e|J7@ckR?|SWRj0pie=dS3#$6 zY7c5a#b&N*j6|JoLGI8_W}=eaImk 6ogS&W6rwZ_(55$)Ze zEO;DnMX@&%hxfT0+O48Dj6dpHD?bVXS01%I!&=#$f ;&9Yo@3)^Rl*9ox{ zGt Ya3#ikPEh3l-fHR4VH$0ReB{bg zn8*zvQ5@#rN`&sx&jdzwPY5lcHiTL_5DLXz$9<9KIxjogpD`>AuRNAV_x20X+S9e< z!Oe@@va@n_GE}9Ezs!*-u1#vYxDQ&Wak%yCZGh}%4!g5(p&nbOGe1}W03ZNKL_t)f z!L-VTt;MW~!8*>~OO%O0PBuVlYy#tZ4k2-L2u$%o m-j*ZD|k+2BDy*O+kujP=r%EZ|Sr1 z1)+H$SSw<&++Bm*j=|kAXjNU>D+Q@NH;p%0CR#bT(mV)|=4w%bcAL2(ZNtQoeJJH~ z!sn_S2(ynwdySuHKG@)@;I?7NnSksF+RGM@vw$cg=8C`-u$jH`UFFwI)A~n6N$Rpf zU4b@u@&v F+DAkt=>q~^QKU2&mco?%mgq+Y=QO%V)0|{6u)U8NN zngjN#5kBJ55M@7CaCNm5*hpg~%7M=Rs!r`LP)6D+&Vac~iuAJ`xSKDfktiPFK&!$d zcbw659#piwnzxTEUhWy#5IMz82_u1N(?Z=eGl}43pudC-Ufe!-eQr(}z-#z-Mzh zRU<&%x`U7G!mhu41et+JSd|KQr|-IM3%32uUGPNC((X6$?!~XyMLwdqv{T{@8l>f# z=s$|V7k8tS%0ktBkTu&-)f)+-=fW-Uh8suwoT_u+Ok9sqD&f$h&rsK=!5I5yVgC#7 zy!QV4?QEm7Y+B^mdzOvP0(Q5iG AbDRe?e?6S9ThInqWXLyp>>vu66vzP3vS50G>~GrF zSH5PM$a{2krd!Zu!(ev{)`F{%=ho}V3GW+Wv3tR!t1PgPaA@*|qKK^MLnyX_`*AIt zv8vNo&1bvNkjb(^Rxy{fy{t;qt!InZY0?xA_p+jrpdD@Fj`49H@H#-nUx0 JiA#II=A`QEOw$Bv!X!Lbd(Bt3{mLt zfy2m_N(ct&MMQ?~_o4g3O$fxJO}*h_$9Jyz$y_;+#=w*0;BFKp86Vwt_wAovs>Q$F zmeT}SCvn7Pbq$V0Rd|FYgU5DiC%-G|7?cFK5~6ld8YELu>KZhi@*vY~D+Us^ONv=U zFf+|=u?(r3-py21v%ys(6VW++u555cdY{C|VQwaB5x6oLQ+0efzRvutKV+rBT;K{m z1IdI1LpBkw1y=_j^F)lC^=8wM-VF)c6-XXx0-~Yxg=2_xtU|EW-p0njs;)Fx^|ETf zTFvsgnvb=zxQ7)nR@@}i <&!Jv{15g$QCD%F~*TAO*>)IjZR(y zTmp34|0f_x4-}y-qgCeRK6FIih*cMDak3`o5fh)pHPZZO;}J+79K#Q8{v?d7?NBbq zH2CjYf!vpeVI?b2bOjgPcL#T@KdbEpIPi2wY%TtbQgn?+?j(jsaqQXMNGFmAXeumK zh3fO5bIW>!yF1SAabEneHv9yE;lz<44863M^1_l9V|VO$*Bw7wqQ$@N7SjY+CwRyj zcMbaO7@TZT=ONBTiMjwi&~*xG_QK#Df{v)&atuWs?G<$ll2f}KfkTF*ie*aP>;&Fu zl(3HOG87j>K37C_FUp~vxBHVz`veDAR3qouL$)4nU5Aggbg(IaG*{G8N1cKcRj-(s zG^{GPIylDm4X^F8vbfb^c!vz>0x)PK50YdV{%{Q86@3VDA1*2dih-R+XVuUobS^zr zBVoG$WHzuO#;RN-qd}KRsO*7PZ{eANGVc=*;G^E!zyVgm&x&s90{n1b ^V@(d-bgi<+yT!p@-Q898Ha2af2EW9+a z5xx!Eu rf+@#s$clpon3>)y91MHctU<2m32Z)mKZWgg6{F4m@nYy^Sd#% zXFoi;7tEvaa$?7(wTQ0jYJ#kjJjKWlZRn*vNE{ueJHio3Rd-x^*DbdD>{&Q90oDl~ z^lEAFxu}e-9vLVppsqm`8bSoF=*ccZoJr75Wk8w4>^>-#*UlIu7Rw!jL*UABYG<;R zn!q(?5$A(R3b7Cbt~5`;c^C=?roJ>-mn~>V6{4KaV|-u_jB?pADYy2-S4+PWY?Ft; zOqYr1|7Y(#!0WiqGvRmY?dX;0g%#{g?4qb*Nmh3x$CB-JiA$VaXO-V;dpB_$rEHwv zan_EVvQBp#C%+w6S;dwqiIhl+6niHCqW2EmUS`h!d}n4Z1{VMcT!JJ>;yeUzn{wt% zd*}V$@BLf}AUF=LI)+*ErA3P)(ZtgX()$F)syPT0$Wn&t9p)jE7^|#&K$NZktZYDQ zR=~;*xJ-~`SvN2Z(TLvwR-rMotc?+Bkp&qJM>brF4^q+_%)Ya2hyDcn1(U5Z9oYHP zv!%I84F^sDU8b%onNgVHiIvn_*-Gh9ckG6x$!Su--{gbT05!&R2`vVy=NQvN9B4)K zAfiz}MuJqDM1#ZY1X*T)#leJ3#KjG$+qj$GxT)fO+TcnuLe69_A<7mYP4k4hlV)QK z9edB=&5!*91h0gGmo`9I;o%@P^wT~J|K>U9Ar0QLTs*S(3s5rd%rGHk9FBDKa$ASY zqC6y`*XC16XN# P3Y{f_rO{Mm<%8b)_uTL4&T?DQ!OMd6bv*&o5U3XiHHYMP0XTYEw bow5TBL3`g>pL@7BzD|!xPwR}mSA>uQFkW$)v_0PJLJq848K!<= zQdS^G4=FxYw$GDl30mOE4x%hq^_0*d0jn?ptA74E?v({d+ p6`ANBH8HOfsJYuj`j2- z>JOq|X|)Nku8}G=MewSs!ap>Ernis6KRg7d(_qPp*DOPJS@9h>+H zki_;)_BugJ=%caf>Zt0br%E!zO!PjmTWs9*C=u94cJ)tU=OV*+PQ^u9CJ4 zWXC|FcFU5101T7DV^VEs81EGf7k9Waa*Pr(rbzjUC2*L*SQ&p58Wa%?`qA5T7FvSz zJWO|b+3%IC5`GMog?YB1%PN1P>uo3W;>e)#9z7xa8W`3wBMc~!Wt8glAR})PG78F} zx+wdOS9ZO!-NFQYRSLjL8idY7dqs?m!B~Yx`Vk8oHOB;6KF