From e411c4dc3a4e12b503e38cb8ebc5571ef55448a2 Mon Sep 17 00:00:00 2001 From: Josh Betz Date: Fri, 8 Dec 2023 14:12:41 -0600 Subject: [PATCH] Remove progressive profiling Webtask template --- .../progressive-profiling/README.md | 96 -------- .../progressive-profiling/birthday.png | Bin 68390 -> 0 bytes .../continue-from-update-profile-website.js | 26 --- .../progressive-profiling/core-fields.png | Bin 75992 -> 0 bytes .../redirect-to-update-profile-website.js | 58 ----- .../update-profile-website.js | 213 ------------------ 6 files changed, 393 deletions(-) delete mode 100644 redirect-rules/progressive-profiling/README.md delete mode 100644 redirect-rules/progressive-profiling/birthday.png delete mode 100644 redirect-rules/progressive-profiling/continue-from-update-profile-website.js delete mode 100644 redirect-rules/progressive-profiling/core-fields.png delete mode 100644 redirect-rules/progressive-profiling/redirect-to-update-profile-website.js delete mode 100644 redirect-rules/progressive-profiling/update-profile-website.js diff --git a/redirect-rules/progressive-profiling/README.md b/redirect-rules/progressive-profiling/README.md deleted file mode 100644 index fa69527b..00000000 --- a/redirect-rules/progressive-profiling/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# Redirect Rule: Progressive Profiling - -You can use [redirect rules](https://auth0.com/docs/rules/redirect) to collect additional information for a user's profile, otherwise known as [progressive profiling](https://auth0.com/docs/user-profile/progressive-profiling). There are often two types of information you want to collect: -* Core information that was missing during the actual sign-up (like first and last name) -* Additional first-party data that you'd like to collect progressively (like the user's birthday) - -This sample shows how to collect both kinds of data. First, it will prompt the user for their first and last name (but only if they didn't sign up using a social provider that already provided it): - -![](./core-fields.png) - -Second, it will prompt for the user's birthday, but only after the third login: - -![](./birthday.png) - -The user profile website is hosted using a [Webtask](https://webtask.io/) that you can easily modify and provision and use in your webtask tenant. - -## Auth0 Setup - -### Rules - -In your Auth0 tenant, create the following [rules](https://auth0.com/docs/rules/current/redirect) in the below order: - -1. [redirect-to-update-profile-website](./redirect-to-update-profile-website.js) -2. [continue-from-update-profile-website](./continue-from-update-profile-website.js) - -Configure the following [Rule Settings](https://auth0.com/docs/rules/current#using-the-configuration-object): - -| Key | Value | -| --- | --- | -| `TOKEN_ISSUER` | The issuer claim for the self-signed JWT that is generated by the [redirect-to-update-profile-website](./redirect-to-update-profile-website.js) rule and sent to the [update-profile-website](./update-profile-website.js) webtask website. (eg. `https://example.com`)| -| `TOKEN_AUDIENCE` | The audience claim for that JWT | -| `TOKEN_SECRET` | The secret used to sign the JWT using HS256 | -| `UPDATE_PROFILE_WEBSITE_URL`| The URL of the [update-profile-website](./update-profile-website.js) webtask website (eg. `https://wt-bob-example_com-0.sandbox.auth0-extend.com/update-profile-website`) | - -## Webtask Setup - -> Tenants created after *July 16, 2018* will not have access to the underlying Auth0 Webtask Sandbox via the Webtask CLI. Please contact Auth0 at sales@auth0.com to request access. - -If you don't already have a [webtask.io](https://webtask.io) account, create one. Then in your webtask tenant, create the following webtasks, either via the [Webtask Editor](https://webtask.io/make) or the [CLI](https://webtask.io/docs/wt-cli): - -### Update Profile Webpage - -Create a webtask called `update-profile-website` using this [source code](./update-profile-website.js). - -#### NPM Modules - -Configure the webtask with these **NPM Modules**: - -* `body-parser` -* `cookie-session` -* `csurf` -* `ejs` -* `express` -* `jsonwebtoken` -* `lodash` -* `moment` -* `webtask-tools` - -#### Secrets - -Configure the webtask with the following [secrets](https://webtask.io/docs/editor/secrets): - -| Key | Value | -| --- | --- | -| `AUTH0_DOMAIN` | The domain of your Auth0 tenant | -| `TOKEN_ISSUER` | (Same value as the [Rules](#rules) section above) | -| `TOKEN_AUDIENCE` | (Same value as the [Rules](#rules) section above) | -| `TOKEN_SECRET` | (Same value as the [Rules](#rules) section above) | - -## How It Works - -The `redirect-to-update-profile-website` rule checks to see if the user profile is missing any required fields. If so, it will perform a redirect to the external **Update Profile Website**. In this sample the website is hosted as a webtask: `update-profile-website`. However, it could be hosted anywhere, like Heroku. When the redirect is performed, the required field names are passed via a self-signed [JWT](https://jwt.io). - -> **NOTE**: If a user signs in with a Database Connection identity, then the `redirect-to-update-profile-website` rule will generate a prompt for first and last name. However, if they use a social connection (eg. Google) then chances are those fields will aleady exist in the identity provider attributes, so no prompt will be necessary. - -The webtask renders a form that prompts the user for whatever fields were provided in the JWT. If the user provides the field values and they pass validation, the webtask renders a self-posting form with hidden fields, designed to POST the values back to the Auth0 `/continue` endpoint. - -The `continue-from-update-profile-website` rule then picks up the POST request from the webtask and updates the user profile. All fields are stored in `user_metadata`. - -> **NOTE**: Using webtasks is just one way of implementing and deploying the Update Profile Webpage. Any HTTP server that provided the same behavior would suffice. - -A completed `user_metadata` profile might look like this: - -```json -{ - "given_name": "John", - "family_name": "Smith", - "birthdate": "1980-01-15" -} -``` - -## Security? - -The handoff redirect from the `redirect-to-update-profile-website` rule to the `update-profile-website` webtask is made secure via the self-signed JWT. It prevents someone from calling the webtask directly to invoke a new rendering of the update form. However, it's possible that someone could replay the same exact request (URL) before the JWT token has expired. This is prevented by virtue of the redirect protocol's `state` parameter, which binds the Auth0 session to the website session. To complete the Auth0 authentication transaction, the website must redirect (or POST) back to the Auth0 `/continue` endpoint, passing the same `state` value. And since The `state` value can only be used once, it's impossible to replay the same transaction. - -It should also be noted that in this sample a JWT is only required for the redirect from the `redirect-to-update-profile-website` rule to the `update-profile-website` webtask. The return trip is secured by virtue of the `state` parameter. And for added security and flexibility, the field values are returned to Auth0 via a POST vs. query parameters in a redirect (GET). There are cases where a JWT should be used on the return to Auth0. See this [docs section](https://auth0.com/docs/rules/current/redirect#how-to-securely-process-results) for more information. diff --git a/redirect-rules/progressive-profiling/birthday.png b/redirect-rules/progressive-profiling/birthday.png deleted file mode 100644 index c36a5791dbda76a559354e029d94806e81bae9e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68390 zcmeFZg;(26w?B&0QVJ~;C@#gdc=1x)Dei6|xO+;0wiJirUc9&j4_ctb-Q9vafe;{< zKJWSc-gn(|&vX8O`(!P$!pz2xWE~kP8C~>ZSdThB2)xEp7LcPm ziwO@$QUA1p{B|Xn%l{4N#bYXQh17iyJ)@^UiGBHHqLDxq@8@UK4r3uYS1OcHs$#*+ zIHr#&kMz-0xal8Nr{dZ&SGC|4vABdTGKvd4Th~JQR_sv!1|5Znl*>k(3H|21K2|j( zmhIWQMT~0v&m-IKL{Uz6GBS3bl^RGoB*HSYBSF{7{ zh3*?Rt&~1nrgX_}MRZ$O3k~cg@rxOKDtVSoQYa%MRfc-%iK^?w)vX2}uL`9_#84>E zl#!aDe9&k*$Z`2{Nh|Q&MotEIH*g%2mi>$Q;h2vk6`Kh+@z&R(K0LVG6QB6iM)N`9 z0n6VGiuwAF@1?{A&wb0xv!lXpujw(>F6`TAxN$6qz8ovntap8OFnMu?p7+V|=eQoJ z?ez$EEGJ&L_N?j@DB_FUnNiZ-A(_}vMK zv?vWJDGAN-R&YQulIOd&=;7PuRzXv7x+kJxZ?Ho{9IiPMV+f+9l`zzDWKT3b@HW$) zrk5QvQEGbX$>B0$J@5WPD-ATlzv_gXJi5LJ8G7#BC-%uVu$D=bq3$^qq0=+rN8W{x zzy6eXZTnGv6jkUGu5~gj(5n&iV(%mN>hh?>MHH`#nAvBMZu$F0uE;|)@QQn4wAF2S zl2qF-nANv371%4oyI*g6WP7ZCMwDr+%)IMlbIdmgekCTc{ruYauJMHOK98XuLnIVz zR#f#wk5C6cW%h9yYD*+#!dhI@skFG@r@WqixRs>D$L#g$&ldeZ7^^F*kL#&l?xFj( zeiWUvc$~qR#zJg$a-MSU(y+~~|86*COj*t!yD_347SuC+mPETU@w~Ukxp`d!C15us zBqVCZ!`y|E+70Ec@2+6xmI#WSi>ae;XWZ9wB4HyK4GNBW7@G{q%Pzybc!SLuT)K+Y zhz(UF@pQaetAFP!g^ z^Y+JBJ-7@$XT9Uf6&%I8V3_}ms!VEW)|*1P9gS%*riYUh9bVm}_gE)d+Z?R->ULtL z3a<Kg5xwrEULXP($i>VIsK;GkJj&}$g#z~CB9W&Q&SUO^Z5+JI`}ML z>#`sF+X$P4#=Z1Z&b&H$NkWOnp4%Shp28mGo*`M3jpTV=!RVRY0AQ+aqV98D468>X zH!C|)MZajGVxn-OSEB9@D{Xge&{WBfupe7LK5JDL!;0gk*eB7ZX6@alSf`?YENSd( z7L|$=%auZlxinYuf+X*nuoSxAz0wOQt(LcJ=>V2=x3gk4Zx)Lw9^d@n3u zRN~dF)pF0aDYdCg`jk|w^Ia!cr(l}991p9v%Bd!DCJzctPjb0pO)7u>nfWV zDg0)yLi~qw9(AdN5~$_g`c52ODnuPUt`jR{0!!=@u9QT#ayS2{zNalwJF?=kXnFjy zOpzw9!72BH4%>d)q&Ah+ZLTTRlRoLLrLOJa1qvS(;(iAuU>Cm7^q%mT;4d61gxJX1 z#M#si*$*D2B@8VM!MFDZ4F@Ik^bF|r+3SlNe4I)wf7h_rl~uPo%haBM`@uhInw?bY zyc&jUmaPJ(u)wa>YYSTQM%6No#*Ucv=?)9BgtGpT#L*RGfdkR@Q0HW4UCS#wTubGj zDc`v-Elr~M$3>O%II^Y7f0S!D=Nl>M z+y&Q`^N#q|o;#8>E9DPZB-Wj|L(99|=FQeWd=B5^5DX z8G7-lIdm9Dj8yi~6MRD=uL$do^{OBGkd39@5mFFi1{oEJ$@BX+U5xK2#$JZYM#mUY z`bzYRD!$aFe)?U1tTd1Mr(W-7?=5%m8(N!pTcJhOc-6I*hU+`76YH>_kQn?grq4lK zove~+qZ!3%Z-lCaPo*@}HS{(5epVAgm0Q1+C9}&r$IvMon-o>0)kgor3@m{XN_Go_5#I@0<2qR88j&BptB?YrCNxUH0%?rrB?Z1uT zC9tJnRp)v}Y?KAyb>AJd4WkWfAL_Dowc#HT$by)`@`Uc)>xX2v3x^!DY=xc2S}WkW z=iXd7?7s|7Y~upo>yNdBDLf%3A!Sc%FFsEmHMRe${k5m3f!Lp8xdy|OPH((<60rNJ zz*MP`fkf$0X+Q}($u-INc4}?rvK^08&2+iB%d=-Y@n>RJqM$CkV&1sWL`QGBN!ZPE ziEKM9p8t4S)zCk8u_<6cxLv6&!x$> zIcN7n;t-AkLvd#!2MC12!_YWUMjP(64!b>6^QJ$tgAd&`>}C3iD0v6XF)U71i+Ek7 z+BfX&iQV|?Oy=;9ryW5Ou1uCl>MC=mE4&thdhf^4S3g{IM676n+I?T&nw`^LNr68P z;X8}IlhDxkJULXhUk;t|=A##^qof4YHI0>?{-U8jW4ZIr+zUX@prd+IJ$@EKh;&d&-|9Qw34BT9ghGsDKV#_b-j_GA}^Lem?ZRobRp z)BO?f%mb0iO(F#7HDs49Cv{?z*_)pP4b7tVXYf z)l4i_AjSc*xhT77+Bh#fiajdjVubAYvG~ocXx=8@n39|7LxgV|R#uYznP6TJ;&!Tl z+Jo|=1>@t475=N93$cLg^ERZ^Z@HzI7KtX1Jv`$Au8)jF9q+i|nl>eC{{(_ar0~9B zwuqQJ%R|8;Ps_sVNH;#oh{Z*@V@3I<@UnkGN$OyGKjBAd2aRvWF zNR@s@Xxm!D!6T|;Y;~rhI05>24<@-VF4orSXX1ExZTu)7CLeW>oUWQ73p+cxL}=zj zP%;L!7av>GwS+ilBdj4U`(Nx2|B2Drd3d-8b8&fl zdvkj8ayq-&a&Zd@330vV;o{-pc%a~L_jU3x_u+7IfAz0H{?9nl*6x;W02dE{vlGpq zam_89Jw3$e=>AOfe_#KS)7l5{@0pz3|7%$f3*`FK!^O?{n(P0I%>!WbKd}Aj`4`(? z>-yJpqJIVxRtNZ4JLpRT9Ic()A4C)9=Y1pk*EIjF=ih?<2dCb@Ik^Sj@cbw1e{}r^ z>mN~s)!YEq4_f-83vq5yuK(8dU-Y6}e-!l}iu>2D{MGufE#f$$T>p2A#c`gJey2b| zd5fYTEve;$da(4=K?~ZngMc0#C?{%W!@Qd3234IYSPR2neyN|ZBma@2gB$)e#QyC9 z%U8mPm(s@4lo%z>dwNYD=+?KJQH7iyT8yMEq*ouUbG+96_+E_y)5x<=`?s_L7K7`g z2c1_DldT$lk*4;Q_&(5PXwYCIwfZU5S@th;o1q(@8D~hX_%ihFS|a}UCX%W3*;^D; zjK6s^Q+;x~l%Yx)F7@|xD5#nrI;cod|8_8xVAf|eRl1ni;q-JLP|zOH{Eu&M&0<9V z$IgFsyd`?{Y_{}ch%~|Tzh47Ql^oUIQ@qW=!FY6_-6=^I{x>rHnfBT2EByai>c0e2 z$3(+`{aB@mlm0usK4|mNK^*qqX#S7Bi_uWg{Iy+T<>~%TSr5}6-{6DGvpKSY|%JDyHj(;l0KV|wqz{G!m75_f~CRUGW|D8`a zierrHYFOMB+&4fZ1Tpfr&-n=&S!jaED`Enzxc)ob6FgG$0LzS=joGd|z*xaT^sxc{ z%CexVYyu}ePEWy^LHT|g%S=s%!P)Iu5rvW_h~)Q(k3zL12u@pBaT@hcZ`VT}lTuSA z)>cN#AJiZ}##u+z@Q@|mRLap`^n5@@286s-Km&wlim;us(Fry~)sWh4Mn!Ok&cTen zrP6INv}{LIgy2<){B=4T1Hq=~{oF8qZSB=C#C=JOjX{|zopN*Ep+!H2gG@z{`@!o3iU*)d{Q(dPb7BAVCrZ4oMf<%1VMfPZr(;607kx^z zX8cY<>en3GTP=4O?@yfw>{k4yDv_-PlWJr&uVNrbaR7*rax(V2L|klQkm8@#+$Nx^uRrARBNi9QVo3n4`pdr7)Dvr{+S(8puz*{W+B&ZV1Zghlho>Tv*uSh{$GJO5#0zxVkSV7s5&&(Wo2$LGt!};tU=f{c1DOBaDM-N8XoqDN&xP zo+ufPSfc9;J#Fds5Zz0}MLw=LEb=GN&2TZlj(;}oD3buvV+pOWN3*rHOn_n)*uLTH z%ve$l51sxsTt4 zq3xrVG8nTB$^K|@N3(G4Tlj}q;XR_Y(LP{fR$Hw6>OX3x1sGZP(aHU40$!9cE)hHv!zM0vIrDqzpuLu>~#Oea3uGsz*f;7=JQ1Vz0bJ}fx!|P8XvGmFi7Ufq_=IWlz2P!qO zhawK7gc-u|*Ll3`)v;8em|R>>2MP<@`#Uv7^6SSbFO`W1|AL%tG*)|+WeWB;tSECl zkCkokr^6n^*2?V|Z0KdfT=Q$mN~#$d3_(Gg$$n7g{&7l;+<#%TF6EdN^i~(}rE&N1 zmI9-u-%72^$E1@_mK&sQ+E$ozOAHnOGX}W}d-?EsaezUkvG4uscD9k{a~D>b8Gbcq zoN@z8OxtpQ5_D!c8XC52VRlnQOx+}Bt2mnf)`8ghzu@)Pyl6&hw!Lv+nhzadVwx)N z@)(qbzqlThw?`~r#83eGUcMfmO>eax^?X-ieW|A6JEcnWK)rD{W`u0RadHKs3v)td zBK|&|U&uw%e9d`vTX>G!Lvb&A|JxFiarxEo{^|wv)p#|#R-d+^)W^ydEZ z>%gp+1pg{4-zMU?h?S3{%hf!8OC$H-D)6wW|H~J?{feu0pL!qw{5tJ&ny_Fs5S$7~ z)lET+^PE{V2w{aGT6+8N`lJ2rYZE*&zJ|NoZqA-s@&x^US>5G}S>W2;J${=hTXOgP z*XGYg`um0;Z_Bs#N#$`n``o0EgF!Z)vW=^9p$P`CpjFW+-hbpO7|&8%gITg_Z36tu zp8c`$=m$XFSPnbESn`irQwlp)#^W1bBUni3S$C2M*Gk+}Cb-z&puNXx}e5>bEnk#Rm7t?*-j1d%NKRG7$6 z&dc%0yF`tVf!JSZ{kWZjx(%62&k0oGx5RQRAkHY-{c)GZj`x|NhMq2$EasAYV>s}8 z-`pdM-4(0tl$M6?$CbD58K;VRVchl4n}xnT24SJq&IHh1!m192sPmj4E{}>m zoDQEKk6LKR;vG)4^VUF{1bnM&4Qm`PzSkhtE9nJ1nhT@)2M7iP1$=3-u3NbVnR*~@o&@7T+trhOi}9Th`pf9&co*=!Re--?%BP4%js z(KD-y;c|9`;v(h9Vd+=QP5RfqEwMY}9ztrx{$WAc{oXXPA;Db3t?30I13^i`$%}U1 zZkki*t;gm)=lE|0QV9vhN{FlEdAp?+o2U2W@646aTaZ$&=gouysfZvWNzi3le%HX( zK={n2R7v8AF25SmJ#%sWH+@Ryvc&@I5yy?S`2lOkmYMjLgxsm4?lYeg6!tR;$8 zJC$&ElIJM({nkk|^0_f}9- zF;k#Y*XWR6G|r6Ts4XJ34tU16LftTJU#Nfe%kI*tUG!=QUNhV7C#vCBsa1vF>&u8V z>EFp}))_f(*u9giLaUq;hV=^VWTvzh^@0@di>P8pNU?hq_vuuCm{*Ee`g@iTQ$Hw2 z>g`?jro;p&ZUpnb^x**-1IlQ5A4ynH;mhO5fTF&xH+{X!ncpM|?=6m2pcl8ggt%!S zb1^D#B1H@jq3xms*%j*P72zK3p80E#!n=mWAB<}_nU}Zsah@aMsV-Tx7Y)zH-Tj4z zx1BAvL4DhB%}o0X!K0u8&0dI+GUKKAu+QXm#QojOYI43;ut~&)NpZ$`xj#f^Wkf@q zt6pXQHeo+ab+4_RlJ`8=6KfoJr+Wy+YF|n7Q@Nei+m;#<$>u$ecD?7VSRq;x^v%q^ z5PW}Bo7DsopJCf**~~5n<|5!dht|szrD1XS_r-HFaFsz1ahD48UI=IpG}}%%gx`B- z8kMEX%atAYJD}1zk}th|Ln*;#nZJ!Us1N+4t#E{Pjpdj!v(CrZz0Cjf;;lv5O5l-; z29N@2a2F*tTb(C5i3uD!^LJlf|Sj0#XFMniIFXJhq&>el46{U8df> z3RLAj${b9t&>fLO=Fha9pxrs@y6g_D;AKC5yE^~mA@0HYKD_uZcZ}+I=y8*BaX^0d z)Gk#aLzl}~%|qT}jNMy1W%_i^gzQ_El%@x?@inXQ!n_TQ7(l2NqK#$5(Qu3R`=o+{ z=ir8?F;^{G{DrHE>vADO&{3o4`DBh-hXQnhX73sRbbLt5&UU7W9|KEkN=y`|I$nD$QoWHlfqRRRAvE*PLiXZ?b+ zg_v{0QBf9gHbIiKTs}4^9N$hFeC76Qgu++lWieLyV)euo0s;fD^+hU^yS#y-Tgjp*>*o>DMzcU0^D+PoDf)2QnsE3HGCV9B*^Z`g3A8czJGAk-$CXqFP%hSNUQ{PBO4EshqpYZy?K&KoYZ{Yi z$l$Gzx9UDAZW`{&F&gmv@;6D75?Qw5FHkRB{XF#Cez8@v?W*#r40?b&FH*?=buE(7 zWQDD~MOJznJP@91K0FBVc>b z5(zYMZm*m%oZ)xVFsyg>t8kf{%~jR6HDRk^J5`bLA|CNhKu!akUbO@$_L|-_c~FlA zXl@c2jd4O^_@Il_*CXOeeI|Wdl)i1Iu&fISY*GLYConEk!bhF%T&e$8e9CA=CvpYC zV{&mn+^j0N@7Y`jzS+MH%7fl=i$RaQOcw%d@b*u4Sm8d`Wj}4*&Kx12gY>=o_nFCj zzw<=q^Y4jgoCj?)88TOfth>k0^gfIFsQp~=tqTf5YJJbb6UM%E?# z>2kPS_!GExWuCWpCpYW+)ngtmR)~bJ)}CUMb6Te@Gf^=z0W(7#g$i5(9EyNVZ^=PQh#BmZp5~SD}{{De?zcucpiG90lv@VZD4y` zf1v9dnU(hFrW$Iw6u)}XQ&Du|516Opp1I_^9BaG{P-}>M5eUOoT&OSsG%ZZ!Dc-j= zi>qZ(C)sB0cxzX91n#yP&oYa6*U5J~_TIHEr|*b$d?@Th=*ywUP}>P3vf|<*dSZ&I zZ+goiXArQbxVS3X^+SEI-TaW=HU)*sQ~xRaI}UJmq%KxprCa@KdOw4&M$(H%>@Nm^YG1O+ zzj53&NIhXAUkXd~eWKhp|0+Fem^cU;c!=QkYBm+f40=x;if0=lZUVS64naheYPH-Y zJg!BVfo!eLdzI9NWbfk3D&p=n&BO+pBFlTWKc9%pD!It!&y6Tw{21C@pIoI+)O)8UncUke`@-8ROGm5PiqR5B)RPeo zOW9&=!v^P|jo}N8`>B=N>ZP0#Id< z*b4h8Jm=pQYF&rZ)e&Q`1?j_AocY>?hEe3?bf0$rnwxzgi~LuX>6xtysEvFAlxMdh;#hz}LKJ67gdFPu9|)Hjzqo z^TTy$3T0@kmH=5NbwE_=W*2Q^A$$SzwXc)q+ia#>%jntyXa+ z)*a-hK{65vLg}l9ttpu z?BpB&gi&K!8m z{#l2>Hz?hM`ZooCt>Mv*aYXsF9a(GFKZ(7O zk}@(QJEMWNB=`0Qj3~!pp5KZSc*|95ip&=?-4P~qg%DHm4?p+AqQf+J2%@)hV zp?iK8RaqUhG5>?tkqY_5O&PS|#~;^eoW9wG#lhrLtS1z#)8X%w9_@aVk=;F>4~Q!-pJ|{tKWJuN zxJC9fa=OV?tk9N!7N`Y#IaWO_H@pMi5fY>J6+O3}85DUaUR*69}jm&&Rfkilcs z2Pi;!O<%7$Ye|2WY-DH8{yn6y$k;IDK)?{aC)z`4KT*uhXaC}(|Ab;otqUusm;qbk z?PxmqBP6Db&{s9Yzkx`6v|w4>oy0FrbVVxt9L&gDSp2x%I z2Cqw&;Jzx^egJ%$0P)y3sPrb23McTyO+vEP*9wINP^mVxIYB zl6D#_S6TRSOsll#lTkTGq&1ToP~FosOb)haqVFxU`7^<{69Rw#G}7qA`1quPNm{Q>lvqvhM_R820SAD!L3mB(Dnk!@qPW9Coy5)otp-?h=mT%0)>Xn1=1HIJiz zHJ6LSy}nvU5jQT>4f-Nol0(nWw!cN(491SHUJJLc#EtMA{Z_bBDVrEC&{UI!40Q3o zorE|U`aVdEYFvZJ)!7x!AtE5&BwpPdOuAY#fVQ`84i3sW8ZTO86|M8!96v5GjC+a& zcQkXmRUX#0UHJkO=hT_C8OjQPs)&4V$Y3FbgImgAaaOinF+z62xU< z!{oa^-f{p0t)9>syk1~lL6~VZ3tpv2Mjlb)0>Z+Gd5t?|=F#*`pwR44)f-D$GuZ^M1j z1CKdShF3&*Noze0Ca7Zow3kjxZKq%Rv!Eh42H`@0K$nToTaOmvpL<}xRk?kcfRO>R zpW{HC24g#;cHbC}yV81t-)xOfmk5$>{L}JP3@;Cl7THcC&})KLpaoZ6YN)(nTS&Dh z&7f6`%gCf{zwAKWwbKgY9KhJ^MAEK-QB0qjEY2}$zuE`RxP9~bpEqswKl@vvCzrn) zzvqfj9I$Z|D*0AHb_TkJ=9JoSq(pXiiuLj+=~BJ2V_lfs41UxtyRmg@}wwt=_MR7xz=*% z7r6_HT%lZd$aY8xtE3)~;}%H*PL5?Vo>`riaXXfUFd3ay9ZdFveCJ*}!((5TZwp`E zSY&WTY#Xb%8-=(UMw%@apza2-&>`4-ZL+=dlFnHS6^4p6fW(-FAo? zvA;Obemyc^3*+*l+52Qyz}?}}NO~h6-}kbO_&0{|-$g9Im7zW5L0 ztN_>M{EB1)AQzdVNpd~Sx09|*-^meH?e)amCchJw&L-T2P4vSmB|sW;ADhrv%A1UQ zAN*P8a`_UExwg0`<8C{Pkme{y!9MV5+0@DmJqJD?;1Fq1fOoU%-htQD*n8nxS+aNq zp0|f4>PGjE<#x4qt9gEF5%v!{Yyv09z6K(8gHS)x|EziRYZULX%Lct+Qc~AtFGyU02w&e>%x~yKKryLnP@<_8D@j zODyoU;CZT7=iKgs0WY(E7At#fRD0cm#4|ewMZ*Zb3dguYL>)@IUE6cgTjvcO;j;uE z6$v2C9lTm!t+V6ReAiJwpWyj!Xf$RC=9>vW09(jmUwM+kgh33a1IAL}^T`1R6T>9& z^F6C=OIVbvc!sL_h<*Ywfzvc`*u_DVE817lKabgZIv{RwX(x_|SE;zofMK+&H^rH1)#-7NHv3-h| zb6cx%OXT8t@|n2nQ4wj(m*rQ7D<&@|2lQj2!NBEX2{Y{%WWM$d$^mJ-pW)`W`sF8< zx?lE2X@GK)>LU>4w~?GsHPMFdhp&w0O&8fB=MPnbFN3takW~|94g_O5G6*p6>h{5Y zQ_~E|tYW;D0Ac{Ut5AuTbs?iiO@%%ZO7MWM<$j=YvCNm{BV9o6{tg6U?_)qug8L(PowA5{yu0Y zvkP1+2AXi743zF>W_oWg-!Vua>;?I!Us}p4iMAw_1Kni>Is7kBxdoX?Vt1~@qM`9v zGkTf;7P8r?cd6OlH{R`}`U|uW12bES8A3Vy{^6nNkne1O)CSjbObI7#jUi=TvS=k1s7ZD%zBjo#&jvW~S&UL6tCS>LlGyH&%Vq0=u(q zQZTzVA=jLN+7>EzO6W>_{&u>X>GQ)QpsjQEh4>spRFE$Zs9+xR7>|E>pZBWI`QPE9SL-fKLI%K>8llZtcXIE>!JVwaLxrPvs)k3DsV-{F@H?X+5X12YVDG$hS&cXVHA(kvH-G8< zYsO9M+EHV}*UliVvfA;gpW<2TbR|n1(X*JgS8}!O;Z0s6v9*=8*R-Ud1p`D40<1Jk zAm~wxWqW{##|LGDXxUsTC$dzYtaTwVLPw#+7xXd#zsPXb!6W>hmz7Qp#r5}0B_HFcq-c;>ObRMHbi;71tLgl8RE94NM>;Gq5V#Kp>}0}RItwF zapreuo0!+z6R`IaHvU0at%*h-qkx;WdWa`N@a8aYIc7J-ZyOlC-0pmtK9a_8jx@`> z5VzIUX>HVHlN@wd=GeNh&1Y!*uH;3$PbHXO1{t~0g&Ye=^jWQk^jFHrVup_gZSapT z0}}R>wW;_=Dr%H5LJ!*#6=aWzq9cXrU0FU{dMTV-)@( zqoNWO?LJ8(3#`e+G-fhTVp3~MnXu=&tB!8bsImaQ^HB(TtrX(L4<7$+T$+aY9CN@p zR$&9K+A_*_H8<jZX}_DEL2&CHhyVSSr92cu5bhES2AlKJ95oDop8&TA717Du2gpA8stfZhj*ABV*g#AMa5KlXq=N@kIOI=v-R!PO zmicqfXATiU{Iuv^QM+BfAIC3mS>~#BLRQX~pryJzonO1G>qeQO202iV^0A{Ud*3sc z;bTT0cfId^RDwZ*L488LRy5Fzora@>i>7pB4S@aFcr{6cH_U@%nZ-mt`MO-YgQXX4 zIHGi!+M!}@UMfPgi|@fM?*2||kHlu=(tSUxGjn||F#G-@W*h4xEoFOgq)J$O+hT@@ zj>djJkB-rLSyYQbzQDx1+g{jS+mglb3+gBmt=Y6p%k0?XLqyw-CFPbUe#Oj1bYIz5 zlxk@7me!6U=(SA)-NdvM`Bx$glC(*7`}hj$unD&8_;`FS1Eorbla>mB*qsfJ5(|$~$<3?eXinh*b?X`Il_fEl)|x zg^3Z&EyNq8lM9w!3?@&Ll6`~lKt)SVLcp?;lgsP`ouDVXwR*diWRB16?kYx9zdDM!bSyhOsSWz;F_SaQ3-ez-G-=DGaYOdGM-g5s3(-jgK-OkmZ+EG}{SHg# z&FOW|5uH86H@s$Xhhd88&)CN<@?)Nu_60*nPFB*`&e`|nO(JCpEn9VJv`Ty4uf#jE zzgz%F!k59==;JvY2dxqQ7CbkGS6SCZfP)Lt;||#<;vh%IWY~}|i2NwIBl~V9xux$$ zq2)`{9#>_~H^=O@ctnm}KF9ZvikX|F=0f^Yg(E8Vm={=J9{0fslrrOD8;o^Xel=eR zosG+&2=4Pn2G*GQhqya;O)F*sC%kmuIf5w%2lvg0C+t}xH^lMbswSDX`D1rXH8pLs z$Aie++2q+*o@0me?{dw`!RV#B+31u*o! z%Fal3*tX&QiRW@?QyTItUVmGTBfl1eZ9D9%_3T#}2ZwXC0knK)uV?$1g#e7R)AyO_ zE3sl<@2~-|$=Mf{A>4OF%G2UYv>dvZlxC=qH93uKU8je4YblSO_Z*;as&{GwOQ1~L z2A$qV!5v$+2TWo2_DRu!^&c8cj*vFK0Dc0pWy>HNF@Hq#rI3~Oqesg#I`?q+Cj5T+qIp?g0a>5PfmP9e(DNIg zQ;+&0w`tfn{#TIkc*|cmHE$cRq?qV^Wu64GGIuZoq{JVtm98p0DV9e~T3>G!eyJ;e zs#qkqpBl%@UCWT<8j5xfHj_tQvPP<9?I-KpmCkVDlOIo4Z?ut(CrR{b@Q+v3&oTA5 z2h>DQnTc8uZJRs=LrjaSL^bk7lGT{37Z2ix=b&HeC*7>;w2X$0JlZBe$SvSphbE7c zw=MK$IiOT>=h)}7Ri;q)O8t30FYWp9msa=~ettEL&v!{K%D%IMCJwKN)Iqd1=lQIu zq~IW5V?$IJH)5wRzZL$&yLq9_w6)&nZJ(ii zs$eW>-!I5ft$`hJrYZeOi|w#KHK@DNaDcI?U2i{vOsrxabMkG_fL*Okn`UFh<(VZ+ zNX)rK7S(&%;z?AvPT?tj(EFrW?6TTkXIMwHa^z$ieBw3U?AXZGn{fd{P*FhEE` zMd_*Y>JvY)si%N1(tU4?S+T)%Vf%Y)=@@xDU0K=s<^2J+Y2{ptl5+$N&#ymM>HlU< z@)k=ix6BTJ^7C4Ef`Rm+m-x*tTy^W+{nm6FX(LgJm_rSua8V8xgu%*se|y*ygjz{c zx#WlhdKQ!#SrE`RHqGNG;V(1a56PZ6Rg+u1q8BgCc5@R3G|c1ohm_W~Ls^pDhs-uN zG>gavZE>Kl3y^#O({N8^D30?yIw`bK`Cd-3g@9{IcS~`WZ&@~7314H&LAJ$$uUVeo zFVaWJ5L*V^5Jvv={r~wbfQS;4hy1x{-ahV_gp;d$V4+o;y&V$2s!jtn2=vUl+`CNE zW#=kjxF_HL{T*;Oo^i2tSaaO>0d``h#rkrF>06^$BDwzREl&VRYBd*GUR=!tMeCg^ zFF28bj+yP4^-5f`Z{qgTa-}JIz(=Jy&yDFao+Ic0D2%+0zgW##nxA%K*{A^!i3n)c z>C@#pG!e_U1RXW_^D#@vum?ZjX_BkQ(06q5=>NjgNQ2Y)a&nidhkjbV8!Zy~YPHB| zWpW1Q0j^nVuz+niU}L0qLk0Ny+z8rz@`9yMTg^2;65Ii@Lmr!xvnkN%_^^!CnfEg0 z)v1*5=+%}iJcF%7$ocYZj1R`;pf4xWpuuMwlj6r;PwloKM8K#GCNNRVy?$lRg#N(fhGf49v$p9M^zj7 zEm#@Hao=UU!0;T*N+Re3yC(gjB!mkN7dKoj+a$5URjS?f z1W>-UH!FLW!cBLeX`|&-ngbbi4v8R|N&Q4G3G2uv?i51Y`gRXRh74aN_?6;2#@6YA z0X#1+rFHS_yKx*G!Q~4%QkcF#>g#CjCQQ!eUn_j0fy0P5*wmx%+P@?6JE7(C-<^Tg zspDtUmAw$#(G`s6Vw;68b{z&!kVZ4^^Bp+j~U)1c7ZE={kcX=l1?W8>EJOPB2p7Y14u z>cE^3Y!1;@(8Id*Lgumjrs0j!o602uk@AU&$4zF-ywX-BY)E2bmHT8t42CjPDQ@%) zxT(%{)1;!`d>7YgT>U5iR*|c$g07+dYyz)i6r}_V z;=+}P6!*^p@g_}nIKToDB%sP56ADhztHk;!vXYr3pzKyr%2+lePVH-(4NEr3()J6} zjg2L!&yHN+~l@UjN!b3Z4qA(hW~>CXg5p3_CN@7)c?wtVPgI%McA z(K5SS*Ki1-8c?&;X#B{BeUYMjkE3*$+;7?}``M4#XV)it7%o)gX5ATiPZ){AtfLNg zp~{O`srT*Ph9Gv@ICyRp^GsUO3rs4x-7hqZ8wr&qQG)-1rGECl``3*eV@_C8?VV!L zLC3EqSJJyA;+o_Z700J36rKik`L&%zID|)&Rc-uQYf?!~OJwl)_a92aR&^1QN|9ak z<(&^zmYCT3mGMA@J=zxMHDdIRCv{558{ z@fqI1o6>ApyFnwtk9_t{mYhs4v{v0`O#@=}->*bvm1af>?v9Msu1-%I^97Qw$Q3~Z zBabPd721Y2K2c36A_>r<>y$#7zQn<8>ybGerXQ~6c8h6_Lo-G1o4UXSw<{Ir+Vlnn zej$?WgO*X}Z>%E@gwl`{p8*fi`(xsKzrPk+Xk=tx{%(EO`P+lb1M;iNh^bS z{QXAfL$cWcUDe2JaJ)@jhNpH=3h)Yd;;htct@-m!e#18DZh$Hq?{1~>u6#g8?GaxaK{2TO?T#Z?r>A2mWMLD`I3F~243ZdLl$ z(!BXAGTsaL_tuxNK<<6MFi;`=}o0~=`}$_z(VgefOJBLl+Z$m ziu5Kebb_=10YVD_Lixq#dEay1XMN{<=N}epW$w9W_PuBJ>^=Ls_DC~uPXlSEeEhi-+j|h4F1P9xVz?1K1Nj>I^rqt{onJz+?wfK7}2TMaRxcQ`D zGkh#r(_UP=v~^1y9h9ali1qC^JloTkxMQibjT?WA#?$Ug0~CH&AIY5xN2EHZOwX{XY)g zv0a7+pwh|`x2@>yexW!r$BW0=K^|$_Oqza4V?85B9;>PX8jG26Ge3AX2P#UNYV%i! zyD~MA`qYECfi-Wimx;yBROy0ldKXxpZwC-X=% zFwB2o?Fh}uPrTpVh@ntP!*dzwJlOkDF zrWWimlaOyFW0?Ax3Pi7DfXl0urrM;#SE4w}^rUJLW02?Y1-Gi&WZRVvxi--wZc|G* zi_J7gX{#49N6t?R=w&x5owx4ixAb8r-OAqXd2;13O2e#GizmUd@S)A=54YtMw;pbQ zgiNQr;eE`^+l_-VWqlo&Mce}fLnFLw(S*%BJ#xjGd~zZBk!AT2RSXm3kjeX#hIm={2xorb zw9Z73$0=5!%yuw_d4f-l%L;2V!HVV)Z#5NX9RZruy~?8Pqm&i43}u+&utd_f2JrG& zzh#hV(yo`oFg<+I8a{Z~Fe1reEhfb@ZC?U@_QHB56FwfcBgIOlS;>*BbLO~p^C*Q) zk9w#|*j}&mkS=YabJP5?T*%Te3-Sru%1o@cBk*FqzsU3#zI##p@x6z|DWlEsUG0t~ z`@P^V;gKBjm{ck6!Gs7e8ifb8v*I2b!$?&Qe6{~t$s(cy9i};V(w`ACJ^P?@U`=QU ziID#Csxv-7W5mh?`D?rP+>iEVnB&^SHI~&RIrMe)b%E48U)QthH#wN5U*5xAS>+AU z_OooKnU?gHRAXsupO;b4QH@QLcLsZr^qZVI7Qys1V#49`btm@fK$E3RqrPwn)D3yJ zxMkUENj_r9FEJx8Gih8Mc=Bxet@5_&t2%0}%lV$f0-S?eOz83ZIo?#pTesJ1ZB`G! zbQ7qpq}udjZ$pd8lRf;&i^-%&O?yykX|>9xP#0#4-7$ofsjYU?>y-FPgNg;4k&g>| zoLt?o`~%BIB?504cYF$Av_I*Vg={zD^f&8ITozZ@Gbu^XH42hCjeN7!|10pbPFoh{ zR6IKCFUF$Lf;e-ze`$O*!rQ2IU$LzMxsiJO!B@6k!-E&zw+`JM_l>`nC{>*A8d>Bh50?xRy`ZEZRHmqou^{w$%HhY|<%LbI-_{D#FbtZFQERo!0>f%{Gz)aYMgrJ_!8Z((X17mwF2$eZ z+m;ylcJ$q=y2puWdt_@wJFuzH4&~9Qh70Z43?Fl*zPUQH=fJ;weTC2a6d>AhXvS*( zU1@0}@R=*fad0^qDP_Cm`Nlm$6+D;Eix7CE6#d%!AhuCdpvQkP^Kdg`?56u9J=*II zrbn)=k45ja|GWbufol@tdx>Z=UXMY-3x`kiq7TkXY&U^-lB*2`dh#a`9+t;pquk{z zEU9U5jVGV>XY`&^^GIrHH|3HL3zX>ThrdrQ?5C9Py=Cn0QD=hnZCFL7QX!A* zco{}Vd;sY9t?^H)^7l8WOw3Sj1Kr+H7BiCa;g1Na9L2R?$W5!o(syN0M0?0RYHPj8 z4r-jWAoU$?AI9Fy0ZjY7mGuB0QpnO86%FVk_M64H-HTGOW)r4T0g-k#4WN`Yl~4z9u5gbjsk{k znY5mffS>|TUwRI(JfixGVN1~B(hdQmA|d_VoNs@4YRe&*_JujzDjn&hPABFJUDt$j zn790d`}>_9sQOvL-3qW;r967nqaK%GFSX9I>fQ_my`+;0(ux`+-j7S4iv6Wk+E9si z{_Qut@*#%hO@kyu+L;Ln?X`)Zk{y>)n$>i1?_ac{+Ij3r9(mt23Gprxzq=Y$LML!f z4Jl(8>V{zamfeMW`B^SrFIK3eyx^14T;#BHowUVIqGO3 zOhX>BcvDl8nYtD!mxeuy<*i}CfTJeTE}31?qMH}$dUJ-9;VO3@ouq7z zGvV%waAvwM2swgx98_jH(hM>X5*I37=y_yOPc4iEMz(akKo}zzpZGt@zr6x>Y9No~ z$($tF;4_yD;RX<1v~j=OpIyeV6yzd#VO%YBH3E8X?v5iaZsMX0r7+khVN?BePgE{y)n5;Jt`t0j0Xml6w`BBqqfKuG9MMN z=sKB1&h1^{aW2RYKQERKuljA1s`s{%FPw^H8N?7%6-gC@1mNz4XpQZU^6h0*B`0wW z_7v5x?u8ZGg_>TTO@}>d=h%!A+)GcH-)xwI*!jl%I4&b_^HX;J?3}Z)FImUUZ%AQg z(lcFJZ=7i!g^$gMSt{hc(=;~6bZB<6ue<@!C)=t}__|{)!{AmIavOTXE!KZZljyBM z2S)Q6mIFBw4!1OY)nC1uo@sXMnl3nrPhT`R(^U$ywZ=rguq4Y{O#@+6G#ld_sSSKc znIWVEM_HfYMy*gi1ZI@v*IzuEYN-6SXIi-%(zSzWSOctz)A@zQ`aozIKi6NEB2FtG zyiM8TCm{hpFZ0feK)skn!VDGHj`cGYDpo0)16^$FG1)Kurmy3(atm6#~^eyp9< zh&a>YM3&Sc4Y757=4vMIk&3XVQkWr22=6cG7%j-hjx($?C>z*YIhr9+T@)XDTHDEr z!1K&u#%IR*4CDuA)lx&V*am~mU;UC+WnYF6cw_~zIG=4I*8Y@0v>z^e`VFic{x(#~ z?YTj8d|dk3tt_(;bACpqflzOxIzon9Zn~lSWu`q9OuD6gh^4_4+#DFSxTdl!cgcu- zJHRN#IO)?LH2d3cG1sr;c*WHv5MlA$LEPif(}hY7=DU|QQ`rUY4bfidz_$3qSMTYW z8)}?|ZN$t_yr(%)Yv(tG&8LfM{47jrvxGZt%l6PG z_yaX`B-?!C<3FxZc7(n=3YM2us9M}^;r*C{PUzIw<+_S3>Xwy1vUxF%A?@E{HlpSL zXZv?-o!sQNoxiQMvvt6@S8gu3Y|r1uG742(?bHDZO1xM&H$ci*4Earj;iua1_fL@c zW6o3c8D_2#?6h!+^Bvn*|4DF<_eN?@6?QE?CT=e#-MHeb#doq5)w=b!JM^jP=d%DN zVXm}&5Y!bg3?<@Hp~0hd4efHB|8UVlaCz`oopKVB>v_-%iLTU!h!RCqqJ8PR7Dy z`A-k}@fDtS9R8#aFs8QuDvu4UIIT@oX(10)$W1A*g3Lww z^fnjC3(RF@JxKC^9|Uh5#OmU`w_{3zB5d@OF6T~1-)!c&DDE4tsY zp7bvQ6)niuBwZo}HlMB9SSqT>-M0r{yf=`W2UZGzK5@E%Vwf7j7zlj*ag*gVRa;@-npx<82g~n5C~bj=Y%p zsrng@Uyh3b8*_C#XTzUqj2`9u+7am=ZxJ`MUT93HO&x^1e=&ZJ>8J&raiZkhzSE_u zlXJIgyJsC~KUf?}^N!04PNnf@uk$V@Wx2-OVQv` z)u1n7vm?JrP&SuYOo$02%?~>YpSi}BH<~Wqq(Yx3|JeAh{}$Ehdh^+hO;SFqZ%&$p zOR@3!vpv_F1Z|e%XA%rzm=P+OSph1)cFd1jx#pEPYmhuPM7fR0A}}1JNdE z4DPiFm+;AS*s!D)0H)+jYwt34_oeNX6v9{~08_j9r9Og=%!KGP76q5MWyhG$82gt4 z;P2zJ0?TB|9{V8%h_dh0o96sGd$k}E*+EQb0GNZObM1?S2+ zWQ@0xv2^j|j4`%)TSSjnu84LbZBAp+{j2H}ZVfX$7NGh|hSuaNES{M=LVSpNk>rtK zmYA;N5Lhq&DZ|k>wm_Nw*vK?x$hVQBTJzuR{P+8O;sOG)wzS7)T1U4!3_HO`b_N|f z3^Y&Q)$Hb3eSb~36fBED$tme9Y)~qix!r$oJAN5Nj#%+8p;qNJS-_#LI_N)GvD^EWdN zEVUrHWv1GnTE=eOGpbSS`526WO@~zBNL88fx^Vjnxcu`JfkJv~k$i5P8o6vp-6=w& zDQ%3g7FZX3=x9Au7qWa3LW#snjVwy*VDkZimR~%~DGmjxn;Ic983u#Hul9QhljTGn^zYgmE%j8*Fgl9E#ItSdWtamX14w%Xq zvh$p+>xxi{ZR(0n!X`^i%icpHdZ&cf=mPDM<1!6;Heo1EV3o+oj}k}&WcOV_0KK0j z6>>qF;MPIZbGSv#M>__1WBzPq&=J@w`RG&^m*(Nq2U7fabY(Us2rg~1EGtM>XVD+W z0dgJt=tVaHd*1nU=xyN;4SIcSxVgzfh5xAEMu2i|vpQOgc|_LaZkKvChF3&RpIp^H zM>^-pS0AW+`J$Y^hbb4K-Ypr(6!0eWkwctox|WNHRNm@?0Gv+O1h~^4M{Th*SArjI z@|-|49<`oMQd9X|HSlr#mA`rM{9&XJZZ#1&3F(A|q|=(_@*9+eqIH~``)8GvE-w@7 z5B=pH^E59ha+yLd51!|%Nx!~U-}LUcrkM>h?w|g1C=sD)_=Tr~Fw(##jsL=Y85C_Z&|An9Gm^vdW4EP4JyY zt9-h0H>(IM1B6IuVs1k>cirvXDmk2UpdjG^6T>BErfLX*wbakcpBR2sdzkq2)kQ7; zxW-#xzc3gnOYLsnp({nX7>ZmF<%addobC48>R_ET+ zf%Ke(lOH&r5_Ya4kr8u*{#2{k9L&joH%R9uc%^M75H;fSllnmF8T|c5s7GJJ{m+c1 zOg?@%GWcukkGRZowcvkLxH zzM$$KLz;M5QTT5|TK_aw^t@=0-zlzlivn!FidRQRXV=w}NuK>Y*7|&NF}x*6e=g#z z&R=n)cF;LBH3ifUE7`{YCZ)iYrfN30 zqKn&aXQaXFM8bNLqdC@@eSV%iV^PlYjY}7Cv_G#`m`*ipn>Ev{_NvYas#-&aC)Ay6 zyx*A7!{x^G3ekyoFm23`7F`1nQJ)f|*4a4n4Zl@-%}$wxk=#Z)3LQ>uxMI(y=5^Se z_M^QwQyBXEw!&~it+E09lDEtGO6V)#2Q@U?P|m{&8r~hs^^Mt+5v_4?7#djT^sxL* zh@tjJ&E1On(Hw3$d!Q$6OmqW!|x+IU* zXODGFvf8H2dxS)egbi}nUyn0_8=Exj?hD8PrRYyWsO%(`Mm>Ws&NoF|>~U;1MEpRV&uI&&-g(k1 z(CBYmv!)+B5?eCaBlXgsuBA0+&L_znz6K4 zOEa_Q)oAn+e%0d{({Z{ru^jpL!5m*>^b}p*eoidz`q4#|?aJ0kp2MuwRQ|@+juk)L z74g%+>HGfERikJ>7t6>T`|Q1You$&euA#s5ea$!Zrgq*OpB(hIAnhD>nOn1IY8;U# zgs`xKX}j|S91>g9e*1@?tIvq*{_hfNHd_S~$3Q1A8M$bJJ;1giZFb5xsA?b}+k6t8 zD$`Jv?UnWWzod_iz)_?MJT-U|aM=jQS|AZaeI?%w-?NZC(LyT@zRXeszjH zeHw0()quL^m8*R(p`lZ#KRxhUg}R0MYLE>2VoJjYeW@P+CB(+*oC}fuL5eY8+k5De zJM8xv#qn3GWVc2emYTqnV9DdpC5Qg1zCz*8&TaqRgZY*M<3d3DRLwGrYJTY{xH4r%=$BLEC1lgx1CLx zN`pzkM%qjyRxf>2qCri&_3eheQ4R5Xa*c~?w`*>|$IA*oo}~6RbQSdQJD<)u+*s<@ z*a+!vjl>r347hmRKZ?86;9$o*<<%rw8H?Ut524$6V(GJ9ygV(oCh=Z=W5|tz$Y~P# zBLyvn?gxz2ye<~+KGFga2y2NgTOTzhJ!eKo7t43L@imXxEo+l8%|#-U|ZGFPRDlhWD}G#DCyvUQePaOODU1BrCzLElk(QB zJ*=&{S-EpGXZs*eX0O5ala0TNAOt_{T2wd+7;mhuKD}7pWtiS)Ukn_;7G_$+X59$s zCx}hs19x+>q&?@(*2acgj;tZNpfZqDVQb-T0b-#d&{D)c7Odr*>s441GlO)c$6H#{1|vlS{6!m=PH@1HJA64tS@bcRcZ50GRO^8rzenrod8 z5ocSTY0P^nq005M4bSSe$4ls3ML&Cen(I0DQ4S89X1fMbclddXC-$Ws$*;+|Ar*K! zhj~cQVTR`{cY;(RO0!s79m;`*S!R4bo|ShRyyQn;cCidbEsv$!XobA}8A7CWZspTm zsdJEZAKI(CdqFhY7v+${CrLbZ?tXOUW_sTW=gInH4w+}i`%=x4Ba_k<`ev2Vc|+444X{QU0C z{@t**_=tt^tioaZFBfZh?j!3M~| zxmM+>2Bb~rz;pH@zd-Tg+hdelDR`e2Drqp~_G+7&V!yoASJiZ|S#LDx@%hDTXm`Hh zgI<^kXoAYw{vg6Xgk!WQAGX%p8; z&tU2C4s#0D+1RnhC`a51R>Hh_{Yg3AvsHYs zzDA`*DlIjmY=+tWxO%4xm`OaTt--Aw*wtnx<5%)gPv(|eUsXxe;wgpC-!ZQ_c_!DV zFwpND4TpskADoSO_eyXV4H^m6n-K4sop`4+hML#@GPsnpW?ur_)##tHuURVTk&iG1 zd5ZS1;w+_pwUY25S}x8iVO#it91Vre?96WZWtzeJ2A7r1sP8e(w|p_6&kNL9ugmQJ zmUwyUq&SsH{|%>4k-Jc*z}Ck}qLa;@3_j}DfGu!MYL3-ifp;dSLO(4)2QoS~_vnl# z2GceIpC9y})D17Cl#p+#yD=~(HOKZ!$62(yT;h`SCg+kcCXNyKqL~&ak=^L+k}NUE zbW&4?3w%LnTY`M-3yK-E1_ZRP!_(E;MH73&s1xdcYL70B&YsgIHDi;s^Q1VftJsny zHmD3~r7=#__8lSMcTzpNC(EG6kBhm0aaweC_~v#ge%F_vi^)a1;{7=}`mB(1TZ`}& z7P0Bq%P!>zh(`8wzhTO4{~%xZiZmH{9~-?Ec-&`(ubsJV1Z;Q8)N8j@xfC0FBGw~T zLdnwq9unk)JiH&!9gZOOaVC1FCOvQ%#Z=iFym;7^qn>S?jkJzijUBmvnhkwzChxJef0MZCLek zV#bVMKT$rQ+zyD6h4F-atui5zXRV#QN_G>;Vv?QZbN3$!E01h;Ky_WluJ6yd;cWd! zGMX5&{MD9o`D$!f9tXKNf`eu$oDE?ex>W<$sYW5@X?rbs(g+hzUL1(_7w$nvn@0DZ zPhZOqTIr8PX-UJLg9aTr!I1i_hl5_?y8JImyP}T@Y(s&R4gqY@&DuYC=m>{pF3pVZ zSER-o1b{*5VUloyZuhz+vbOu?YIoSR+zr`;PdxOy<|*Iw+boy$Ut0j-_O z+SI4EfcP%4W59v_sXT*d>!5rs567*%9F*fI>oO5WK*iRaxq)T6BCtOnR#wr;3bXV>!?3*W!o#iZUOd>9BT_p<&-~ znD&#uw=rYDiNe6`=zCr>OWfr-fI&Z_aDe~UGZatt7wc0GZ#A?MDVxyhSR%e&qhK0n zGIbE|dRVkoK=M4}py{VQ-%@XtJ!5GmjyE$2;&%GS1tW3ive)GUO1iH{I{nyK?8jm2llv zqRE-`^<@M0KQ~_&E)^O)tf2Ek;8rOTd^&1_gF~LI+)1Bi1M!GPK>HM~6EEM5ea}&; zOC8;R?4*8t?Nje2?Vx>dt@Iu);f%Ko8WgJ_856+1)-TX`)vqaEWYvaIXAv6L`tIg2 z=PYe;b&ozz6yR?A>iT>pXvC*l z3B4VQ0hUeU-A`|*@`e<;o!X9ynWangvkknGbl8Ph^HvbMrx8@B?9W4cs28_OHDwKF zoAYk%?4&@GE(^QhRA)a~mb`nTm0-8{JH*HV8mAgGQI%;_qn(*ts2h0_Ck zajkK#u5rL~mJ$ER%FQpGUlCR@doiv_TMZrZ7AhB-ZBmE1vf4WQ=3}b!CiuHL8%cFtURt?-+z3{i)cLP+8FblvJuk;+5 zrf|2qZQ+k~7pGkF@(P>LYh#)@{Ii|=M5VAep2cQYMz*`|0fPEl#ldsuE!IBBe9Z7& z-#M1PScS*a)(y!)@}ate3SlVs5}T*5k8=x=82i0rLYnpYqhq;lgP>$UTU8!EU_J)uV_!QIq%|$FBOPz$?>%MgtWIzCfBk?%Q6V0wIrlM2X5XC~aYfSLkw!lsa?q4}|w^#=Spe%zsf}lCE&KZ?b!yIgTk^ z4p9~TDv>gH#cnM8;{DX8+iPMq9=d8##X;>tT)DFKpKor&HsKv3N#>h3{8>1n=B6Dd ziDTJpK2#4iS~*f5zAqO!#S3^|J}8Y~N?)R z6;#PSI}Y!AT{>NTA$+jse-(0hxpCd8wr2zab0#W2)wsEdm@dY>gv~v-2uaRMljs=G z`JVOgmnSJIddgXJ;ct}IzbKk7gcrSSCG0fxAICErwlh zd0CRA{w~7!z~y4}3*Jf?ZE%H=xa_Pga?n}*O@<-Ts0qT^1|$1d0W!8 zqc7>&kzsZ^e(G;u?{BK;3zyimzCGCk&4F>gl{AFLyT&m67r9RCyor=-!^8@CNEmX* zgK4v5kaqA2IQ{%zwI5&lUT>_j;AFs9_)%;*CtM{oXb^Beq%Mb6Q??BQ8jWaq(GL}U zXwyZv%=os3sw+mRE?$XJn>SRdW27Y!bpKmVE?iQ2xLrMKX@mMA|0z>~vJ2mx^y=Hg z>yo8!h~;6G`cnS5o0ERxuzOIqNlP|aXr9Y6g-h4(-D}LJ8$GyE{f=6g)GwLIH`Y`F zOOlFegeViLL`>JOD+(^{o5;V@zuU81HRyV7v(z6(p(eOFg-hoP5&v{9-1?nz>!85* zib~!$E>fX(8&w-vxzK-%>bf2IPxiwTp&RSHGQ;O5GVY&S&WSFf_mmkLQ*A{R~Q4xi_!Ii7|ssGoZaenLf5 zJQDQ3^2L*&Hg8($E6eEB1-zM&4R8z6r8&1^vS2rQ*k~1KPCO&GAC(w#T7O9laBe{r~3C=dQYkZ%D~F-&gK6Ypq?6u?3|UU<1a${|Gll?Gg8Pi zHi1G>?B7f7j|cJBtN!`tF*~VPX2R{o|MAEFe&7KsiTq8aD=MG<|0}Y8Na`LHsUE9Z zwAcU9EanbL%xrc_dKCZju>R}KH*egT;3;a8{6Cthd?1PWZVhW0*?%he{~(`8l3Zwp zUork4&DfMlcX{ z1cUqk6U|fBa9tYu?te`;O6ei(jc#&PnPTj6zVd*D*qfvD?hYBAb|FTZ*O{b#o_@Sk zt)^#v_*~8Ii^bG+&ARV9AP;d z$xRZ0B5~g{uEZlB7EnHK2~#i$uZJ|n5k1gFYp z(gAfE4S~zMak&fG3G(_*=i<(Cd}}h? zh2u(Fr$MV==2`zv?jV2z!Y!yw#j=n-v4>5Mw1wrO8zO>}!FG!!(mOTOupm152F* zJ#*#~e5CPYv(G>MaG}h5x_{ZqUrpL34$a8iTJhEH%BTAuy0abq2Ic0Syn;VjT)^0C zTv18 z84+!-5kUf-qNL-^e{Kva1sAlv;(o-cr2eTLBP8%Ntvdt#v-08JI(wPz&e)2CPm1Vw z9)`RbcQX8pY+mB!4~qZzcIJP+9g0sC@h?OA@BVkMOa25zat%t7{nI!Xn!GKMRK?X7 zu8_L4(Zob{iBt3gmxPp7=m2nhy8ukYYc+ z=C0GbI-ttoEzhX~P|#`d(R%Yq30=x2%}YP#MGcX_{_M;~#(J@+upc|-;tU!ZxmKFL zGbL|Zu--ToXGgpW36icI*`$SzbItM0B)L}AEw4srpoB`a!=!Sb;3ZiS^#mV(A3=OE z5|t^PW|Oyx3>47J;hCenge~ULPz|pK3RtDx0TUPOv~8P0RS=U zXY9=+4wmu5Gp80~C?VFv)vLP9L)R*7v2%-xXdC);-7~k9PzQ^TT$Fi->XtKVDAz?_ z72_CeO)&3xyWdH`OK>orAx`vrTa?2{M|w^Z7c0@^b~BwjfVU`taUk92_Z){Vg7z#1 z5)iOwiNN4aCC@zy%|RsHUdxlP7^^Rx39z_1=!*}YS>UflP40e4UIVwtVZ>bK-tX2o zRDJV4ojwl$4|WxmGdFc$7;@apI?WF2_(kjlMk<@y%vX$>`$92yY^7%<`T?VoA%Iby z0}#(peC6JY9+1WM#D`XrCW}G}fw|bN(F>r&! z&DMu#&m@8xj`d3PK>;zXyac>xNoS=O#qDBC9tySw)p$G@aTM=od)Jv5EP39_49$}R z6u6rFfW(6)qEScX4HA{(u5x+nzgOPqPz}H4@ zN#K6^QotzUZ+;I}nh&Q{O0+X$S%|(7_nI#yeC~m>w$VigF40%S`4UQ~t)157L@IBbB7E|>B*Yq?M1FF6y|wqp-)ks|GH8b$Q3J@ zxHx1oZ9fEvD%PxLoDn$t*glY%!@moS?;Vbg_1o*w@gq1~iFgDhvoq05zM{j0=^n!% z5&G-tCh7$NOn7-TJGh?g=hPer*|!0#zgeBiGty>XaL{hBFf$wym|HoOI1{~qy)!fN z@bke>1v8`%N`N-)Tl{p9v+hH{LZ9vkxX8;Y_l1?!nSVd8@TpHVvH64ND}?OV8Wq|0 zmlX5I9C3hIV^v=Zse$O?#gF~N!J_9wYq>~k@hXVUmID1f$_?kF632yCmA+T^MwYmp z&(1Czc$w`sYUXnLHY%cI>5@kGo*ypXo;=A#{lI+e20EX3;th<1?o11E%c)YTjT{_Y z!d!yDs{5k-GBb&>pm-FY;DBnTl^%VXfCftjX5u<><_RR;BYCTKEx9zzd#%aK_P3Ai z@hvHZ*eV|bUW^zQ=F{?n2Qss)pHW*H)5ywh?{te97;oo0VY2pgo+r~X2mbN0XYmxn zX4|svZi_0j9W+7EuDHwLuBs6g8r#HtMiSjC zbnGbJ$5t9wX>JC<372OidCjDKg~E-uMsXKzPkw!wN_M_5?ozlvEYs$J9^iCVNIZ9O zPciQk8?X$nG!Y+tfFCXpzn<}LE&v`MQ~-_7&9i@=J8zOI81Zzqsr_X)zTbNjiefVo zISp=``o#TS_v%LWJN}))aPHZL?|Bi+PWCuw!IxNRXE~5}t$U4TOCHTp z4G)Kb7b`D`l#tcEbiuXoI~=CDWZn-F?umUKs|8Qq-H7u?NHHh*^VOcd%-sM~iqk27 z7<4(W*9dTCDjYuAel+R-gZ_86Ay31MFCq}Rnlf=MOMQP>e$vm>vk6Nv7gcOkv$J+; zAoZO6aM7=3OC4+6;_3jKsczJ$+HvwvbTEIf6in@f<%ei0`vV*!_vPy>P=il!a*6|M zsSD}ii0}uA00qjA=i;6nS^Ib)PAekhZLurRN<~lia+a=yS{ukttzi8iIFo49Up0)s zPto#TNipbE7?^G!3oKDLmffp#n;hXilMScUjuqmu^FX&&q)A!VGW4JDBIt6wWF&oh za`JLb`l-)(*=jrHSVBTXi3S8nxBRSb^2MCdQz2`;jad(hFK%jNCZd5R$iS+@77r0a zAs4&glijP%0F?+}>E&Txo2MWI;Ik-tO#ocAv+Qt+nztZEtPz9ztu*cYBN0$6#o;ys z>)OqYWF3S$lk5yPc)!&8GDgg#lu?B4D&^F%wwLpPtD3lLzAQ5c+zddx2-~C=y8XK= zGohsssZQdur(l}px=ZLXWV+cl>B#!6`UsJoN>0R5yiw1qLD^uSkR z$*nkjyBEYW~T>JxbH@zg*oES?s8*|!Wx&mnKgJ%^l*MC}~ zrN<-%k%NEIp|qZ}tyU=xgQzS(lqkHJ)Q&EG!R6JO<}ZpE0qxo#>>vI()ew z#HY!ZuNM{?lm{D#{JjXNSxCGcay!rZ+#?Z-KgJAK9%L{JAigt8y(C+Xai7sUJTArf z6@G>$-@R^A8or$Z{@Pf=FrF#ERrR}L|9ASdeS1I>--c8$kEpDCk*aTTeJA9K({!(K zF@&3a+Ob)%+~bf-+iO6;h&a$B1msH4=sl*V_Cv-RBAD&rw3+d#yJ1ltV z^%BwNx9H_9!O;Vo#q7jvhT9p+dWSSkh@FS?I%axV63&`IFhhU*<7>!v3!8U?tg zG-sboY6m*&LEWEwH)mb5u=6t(2Z<|*D@90n0X%A4(dnENSGLxwy2%%t4KRq(xL zlY&YxA~=h#j*CsiDND752ACOOTUu!j*Y*rmvD+g^+vA!wH}XN6>)94XoNU-mpGcDv zbOu*$d}We5eceWAk$T0MN9l_P)zJnr(W+^Xef0)1^gCUDwL=uXcs3#4w^v>!u*OZl zr+zqi|Kv@ssI2W(#TIe~`$enC$v}{EGry0E9p3fgWJ|sJWgErGuilYlk_4BxwK>}s z{As^8?xe4eVRjt4ojJYa(f{n|dxKbn zYJ35TNc+)eFfr%509_wmCd|Mb=UF3cvNEdKdn(rbG{xgaJhKuFeNF``e=ciNCBMol z3+RuKoexFbUSIPf)G-G*6O&ZqF*nPbok5~})?63mwz66QdMBGO=kTbXQ7Gn8kqX6u zev+TV6Dw1%HWm{jvo}?lk6FK2-g@dG^lp^lz&CrEB%a;@nUVO|(VD#j?12lyHq|!+ zBiKK1>QT!JO0CXY6Gk-mWi9&+H`&&@jl^`!CsUA66QYfdj_j^q3xnMY*$-yOvnWId zyU2FCFK5%YCrey#yn;7gm9}7|JGZhZ+A$7O*+ZhvUgt1GsIsK{b%;yCG>tqcttHmL1^4dEydXSrZW~M!7YL&68N1a&cemIfBvubQyn` zMuv{Tq5+SHd1Wx>w61Em!luRTUg_C@jr{Q?m&wC7kV8kOe16+J^1NSb%=M)s8+h7& zYeKOdl%XAtHe_Ygk{P~pZhA% z=IQiR79CgSTd#XFF60_=Mf+Dakh$D>)sCtfy&-(8L?xJYFWZtWBwlpIeQQvv(A->9 z&)L6J6uVl*x#_3Am>g33F1Y)uWU+Zf0?LxL{}`(t$6Y-r5%v+_Q*S68X1gqK&q5g| zAS%knKJEyGp6n>=K~*BSEIfK|trrh0{n9GN*PMs=p`KD~xqomJ zFVQi!Q@|8SzStSBIb`HGm9N&M->S`mR}trc<%2iZi_=${3XJ1qoo&uV8yi-lkDxLI z7=Pyy5KZOYT&sTesFgr!@D{1>Zn#x<{#<3S)V?ynSWf^(dpq4^y`CirUt3wglx?gw zzbQ<>$6T;o_debTlX=KP+7Z2g(z~-8`PMFU9sof*%$b8+#DiS%2za^3IpIM+drY3t zZl#&a(EdN&TQkxIU!(TmuP~z^)s-aHB1_m1;V4Jg<8#w~RAB83on8`UgJ+++q|2hb7U_BrRPDJ?1a#*><B+c4_kUSI!_4A~4!w@xfD`+w}c zbzD?i)HklEV4w(!G^mucbcYhsAl)F{4MPoxTnQ;@X_U^PyOeIpp;0;phOS{|-h5d7JxwBYePWiQF7~P1b{;)|ipC+sJlAp?hr=MKs38*vNNeDM2lc&Ap_< zOtr4TCtIyb>n}^{UtSAkeu$;No+@_qIlDK~_|&q-Q@)!&x8UPjbgIT97uVP8#tN2# z{-#LFCeRCqz83jh$>~+@v9fWI2D^Ty<bo0<~s!OaDn3`%Ih^p({p zg`>aZR2ygchNNYXY7bC5DjKS!Jr9aP6+HO;6xH9S5XR4^5L_#%t=<4RVI3WesEx&~ z=iIGAum~=GZHTRjYU+f@gxj6?x-b2AhmN+EdbDzi=uuhKJtk(dy-C{6rg5_NTJer% zo>WSloKx4|oF4Q7^mpTtdv zX*QPMcelBY&F+}>3|PuN_<7japXvGc)IdTf__xbHlAGzznzP{}49-TvhX}orU2MyY zyiZ@FPoQJ0l;qgAq~M5}=NLje-XF`cDU2){A?`ibIf#J`N7tqud;C;QFMkvqIGovE zIC&4_x32iC2Fe$%foX`zuk#Ovm@3B2Xm}~I7cSrPDz*NI-+SX=*-x z>ZB*5S68-vPGbz-Y_r~|r)w%cJ!c+G`68^dUpwk@_an`wwK9ZtI~VlMQ$(JjpKq=c z;K(|x8obv{X=}|^E;hBDGDY`pi&#=GSW2vO&=an}!b*`}@v%spC)+PAyD_p_8u#5c$&^ z_gFZ0?UL2DpUq)w#5nG89oh;!VO6MiJyh{ZQSwHVGfNOK(ms9J{RY!UtKo#C+zw@# zRtf80iqY;pl8o`W!h`2MtaX-T6$yXFnEw1uz*bxk(mim@4%o+5+c!pXq^y}EGbF)X zPV=&a5pMt5q1@TyGE2%w4C9a3n{)t(Qg&#la9t5*Heu?sxaTWgqbIP``l8}~N4XWO z`7P%1p0N|YGHbuoV}Qx;9D0RA^#zo>>t|Q_U#|3VNQX)CK>e85UC?wY<(TjFc};rZ zk=^;X^dX_SyDmlfo69)}e6fCYkFf6qU+~yAm>m0JmdGEH$Mg5l^T$SBOE$9jCCA^5 zcdVl6#QOVkf)-{2fouBTiVR0A=LZEV&Pd+1)3+xMgoM3KbV{I8&yIJzoe%`wQHdMr z%j=3dAdD(Pk}W?toaJOeHb|~)V%O1ap{_;1mT|?e+yh%nm622KG_7jptHssz)Sp=O zZ$(QNY-(eVT2{ovwd0^@g+QZdoG1;k$fALw(bl_|%2Imm4o1Y;@EbKS(?( z)7#jjRFOvoH_DBIfGN1gwO+qyZmj`xYckAA`NQ09-!Q-TA@0B- z`|GQ#`)}|BjEu8lpwrXag>&DSY78S9xwnfkugL@J1*Y~g=%EO|$1|k^{Tdp(2O-N` zwBwiGE31{6X9j#Mh1xvq?qqh^4&d3;-S!i{U*90Oito_cQg(&Zi=1wQd-Zkgr8#J$ z&MK?#7u64G@eRWV)=stBiLlVMnp}t=pZC^!be3H5+ny~e*cz1j(=#kHO`;Ioi33Ri zk#Xpo-B29qMamg;GPuyG@kE??%Sj0rT6*RT4reW0?{>q-bCletj}6`~ka{~Wtf07Y z$fplPe-EPWN&?f^GKyb+tbll$aP_n?!p0=ijrLAgVe_CUC|-Zv>|MF#H(O{)n#zo3 zgzC|(zOxqmCg201=!nu6;%`L>N3j}Gd67=qAPGEUSZa)^3J}fER|OFLgz?ufzJwZ0 z>DO{|CD8gcj|gF+m*H%6O%B1?(I#0;?F^yeqrnIkwK4t4oKM0$!PkusUygqeqCF_t z;;V&QY0jBoPu@Q)a+eBQpfr1+FCku#Z|}pFzH?KHhm}RRc;S-BNIVS z&PX2@OZfA0+8xCLbuE_05Yt>?{(*<4-2GfjL%ZxrvVq3K0X31l?`kZP)`&chV#M}d z$1h+m>~)OkS~;wH&ij`I!#51;DeW%RMU;A9sg`yRzKQDDz|+<+RnA&z*`2pYH;1?h zX`gXzvjC+F?EX7h=w4#*Q9LBI!$EHdPa-7DN$Cbd^al>o^4Ws~!lxsG+49ox6XKoN zm;^};lIh_%aAK0ulvS5g2!p28b49^?y)`SV!Q~-5g4hA zj(jvflgb7vH+X3EZO6C?%V&kvY?oT>H1>cfDKU5{mQ!ijNlitjLNnfW?O1(7_qUze zHof6j%UDe+KAa6}oJPe)pN2iEW^>j1Xf7@6#hmgRHWA3vYwImXu#aoCd$*wS@7^l3aO z-(hVJ_83k-W3|b0i460!0>|JeIAgw{zUHjNaMzRH97_p2fAYNOuG#uX4T5av^|v7P z?mLz3@}SO7ZNbK$tN1rvhRJPWbhR_PjoDC|rtTR){|d%|R2Lhj!~gAnB>a+{A? zt__DZC_Nw%8l>T#bxSW7n$zyKUM>%#6Jni9a<8mAYipt#cuHn4b5Di8MpXC!2 zUfSQcYSo>kE3LlPmhI@a=utL{3$8L)o0?`^ey%aOrAaRXw-^oSa{K&Css>XYSe((U zsf71K6R+bvwbj%9n162TcWsL#JoVncu95ekJS+WJozCO@I)#_Gn*9ODBd-29mMm?U zqy`bDr3M=LP=zXEShVjEK$vbSV|kW#5U?+{q`~-X<#>)5)-DgbE!bpM(Gx{QDO3@Z z?O#r8-%PZMaWRZ@j;jim+8)20AF@`~rmN=Uo*?e7`Bo)9(^>Lc#jdT`5vD$ejJ>;1 z)b;YP=!3G?mP5I!rK zn3w_5$SW){ilmj}3v&sIQGT)ng`9Y`Y8-1Z~WW zswlRYH$H}rui07%lSOo{eQmzl*rS1EdcKD)>v^l6$MaPB;YeHg#+l#!7`T zQsz8}X%3SwyAI!!X^mPTCDfN_oSU^9$9ZqA=eW|7DU7_k$xE|o7CNL`3d<6}NnF%+ zn`j}M*LM!!tlIh7UYAKQ;!-@CU@^vI(l}SVZ^DLkF3Ep{9zZB~^^my;h}X~8d;n`o z-(oKIYL}W#ne2rZHj9^B`j{>^WIC&OKUZJpCCobAk`MjK#1u>!aAe_>$+|W%_sYAd zwygA9pNE-v%*Y32f8&;{ut+vMLx_vCA6ajnp0V3|*72=KI+&ecOBxB!?>hAzi z%h0j!F=>i;=rcw_9?QprQmJuyr-Asrk6YKneJnf2+193bj!czOrl{-qEMqADCTOJr)8641kdjNtr(| zhRtmZ-*$W2>k6{Z{D73Djri;|OmLRos!}_iV>YHwiPyv$kFO}uEa}?PAY7QfPM&CE zEoNO4JW~LYnK8;|idHTxm7Xh$q4j=`N#M!wkYUWW%-=$Bev4!%@jHhE5Az=N8~@wd z3vf>v2ATy?*;?1tO2Lm452Fsq%!rH-2ZI(fVK{>KIum#16I5yQv$cV3+UMwRoE1H} zQRw71Hjw}+s_FN(dnIhipDCTNi9LE4pf33$;+cezzTLRdwT66(yn$|JBGwHkPQtud zsN`^RVrF(H<48(2$v$S|7HCq{E)O4s+h^atF<+1)1>-KXBFV__JW};f@e#n~&_LSD zZ6U!)rt$H&Zc2SqcYjk)Y@b_ICQt_|h!~68l_h`_Bl%CYM8*USxkKI58&t6Ei%qCf zq6GAlZ3>ZVmGf_&vVxl?kygFdf>7s;5Ebc8VLvYsAkBJJd?4Ovsw8JXzV2TwZU1*wq=|B{a%hva+!J z3Ve9umOwFXRIw1x{lQfG##O}EqNg%{pCtEvNdw?sw9V7J;B$pkOn42iG_^=F>Ko4G z=7w&5eJIz6NL*>bJO0k6c_10U*-~&YR9{aqaWhlZg)qxiI>xk*NO#+<*^*p&u0j2! zm`BjwdRr;tnbmBdDK~Rd})+>3 z(9=}4p>-}KEXc5A>TEe`c!S*~3`=4$Tkq0AEo2#4X`X5F)&1jc=v)2KZ#!>PhhCZW zLgoeqzFl7Q>X9e2)mhLQ(~=wWzhf7B4W~-R4s}J$L!a-748dAW3!|7{gtpbL&O$-v zeTR6t!aK;nAvUlOGod+qNNDHxoeXgw-DS5+iapUv4dJwx92I@h`rY<@-@sLBw`wW1 z)o?rc(B1=mhApW(K}ggU_Xh2`B`1LioovvnbPh-#dbUj9Q9+0a4y?nA8;K~pe>BH5 z_U(DLv%*+!WErkzLuYM-rfhtQT|wN;J({jOz-7zk&v<1LP;IK##iZY)S3g`{FZ?3o zsET&!wQ0SkyPVegzScxTgS^1CgdXRj49kr2W%3@(K89wGoGdzFQQ6Z!dc=vd8GFhLHhIw=r_pOidA&-X z8EhPCJuF))-**!>{qb|lNrmM~>^8|tD|jh$x0@wg>P2_sRvkFlwDrE5@N}SNlOgs^ z1tU_?ntq1wA7tpEm6Clj37c+eWwyj>om`ZjE+(OvwW5w}9-+OiFESDOe3^S1wgHHP!Jhr64N{&78M+7RH9;Cm%(L zIVja2UnX0ZZ(1Z2Oib*pbXVwAZH2R*h};g(ef88fr{noTRG*TIxWl93=oThTeBGw! z(Dm>rhjszO?_mAGi;tX4K$-3;Td%3C!r=U|eCnL_HU)ItS{^W@Lkrg_rM=}fV4#gq>~l0UcdhD?55I^ z-qSU0H)~z!ZJItW2A+PD>w$U=o185Ad|5ZE(QnB1I%{F+EU$}FlV!GFZ#=6fqG*o@&t|%FCn~|15EKWeL=ijI;C3;&6Q7!1#DId;# zs7JX_jP6;4IlYlRl0m*3WmA|-9$(QLTe-Sc;VPRS9ZQLDsX;6bl3BWO<@ldQ3B`Lm zN`-Rm)mpzY*@4z~;m>!wFb|qqut4#g^z#q+wni7!DJt#dI-A&LPd1j`H>w{tE7$FR zPkk>Y@7xVkdv19t9euUb6zG6fCC}&-ITSkb?XmEC68%`E{zqJM`6{EYg4pATrZ+#A z;y1TZ-3^wYI&+0IF3?!c?sGW0B{5gIW!1E~49*w_OCtn>du8v>>GEeTaoL^JJ!i}- zdUYe9B`E7ja$IfO<{*Xo33qWiE>jsdBe2x;(9vs>Zi~e-KF%WR#SJ(ogHM}uD!blF z@z?}xAG4{a5bB6}D71{oyXwvR|Y`oUsc)+W*Q6nBhIEzI6 zFs~H!L>f{}dq?$>;cux?%&i<&8p*SRd()|f0<0^U#I49k+ibd})D@*FQ6Gd+0$ugD zBDKEvMRAl0BN^8cc6HGqduv~9j5tS-jH6!#Ao(8=r5KlwQD62!sJ)kK;C%J)@Id#_ z;I+&1AJRGkI`UTzBT62My2+E|K`GC^E5MFf{Pm@l z3arqUJ;%&g3fQMr_>D*VDL=8P9KtA->Bo$0Jbg(|h& zkVnpbBiY_tGoKF6VgGxWg$-$@4FK&hlKmd@`YS)ofrHuW;z5DJKKXB2G{s{>f$%Hh z(n?0Kxlvi(1$%!9!{od$B{($xr(6+U!C3LkkegdEadrU>$XgZJU>A_(1L0e`+-s*H z^C`m-g16Uc9rCC6(G|0 z+XO zuD2SF;o{awj)BAqX;v~mPmz`^lH2U_V%kYXhx`${{)}RuVgnJZ|K()ypG6B#7cuS$ zlzNy{?0fO((a4=edd+S=m{X^3<$s$t``+%>10KVx0{Z$)oFA|3p5*=}ivCVh<#98(e7(B9pMEQ5(@p)<2!Tnnrwd`*uNs_zpn06Zg&~d7!qHwOn))q z&nrSbAed{}7#R9{=J(J4{#DoWL>e$^FJ)zcQ{sOamJ2_DGEsoJdOopX|J_dHCBU$E zhK7&-2m1Wgfy~$TX_@o?(C*!N71sTG_x`6UvGdi0{?OFl_s01%1MwH%eqJd?1JzZZ zK76=-VF3Q(#_w0aRy)9qc0KA(mHG>FFI@S4IxoU%YZbe|tABC`8v=ax`+?co|IqF} zFjWhALPK-0mgT}Hf2f=rP?~ZZA}sTxY~&x*|Jk>+Cx8ryv$Ep;=g?llXkh>XMK`1- z-~Z4~{2VFX1qJ^4E2l=@xJMH>ycVtCb2?0!rl#^Up#D=e4GL~~ zJ;n>N?{F@#Ga17H?h{gDz?;yGUi*VD(laVmfTMN+HS^7AHWNl@o_rx_d`~I@)Ei#} zG{1);?XwTler`!2vW5Y#-wTV+H0!mPCPXGSosbX-d)E^Z;X40(EQI4SW%}7dxNxj6 za!mox=V{yVStbkEB11Li^x}K3hnyD=8<`uG(gTk+o8v#V4J4Mc({t>iW;5x&@4!R4 z+ohld@ue>2)~cdEIA4F-Uilh#oP^sp$-R$_T*Ccm2GnO2?;uC%1Z3Vle`MbO!YM-e zbK8_VQ2N6*wYp{N)t|^!P1#@`g`}nI+{0OK^J)3HMM1OV-M}XF=rNK4y+g6g*;DP` zaI&1Z%oz&W3jM86jO+pu`IgX~C;DyG$8MhUlM`dme54>hVrF|y!Dq798$fhRE(-kf zl7D7t-`?igx3>s-tv)y~v9le9SS32hrT;y9cFul-v~!#-f3oz$`b1M1aD29KPCe;0 z>jln^DbN%sHp8aX9#BmC@f@KA#?H4Chh#SI5a16}FgJ_f(7Fux0)+sZ`~gc)QbMMA z>-_yAH_s4F=sHc%0@7pWwO&1u{2PyS*D@uC^MCfK9=m2!4Iww$@f!SwMR(XU&25fmnO;zuKi$V<@T2;f-FTNi})Y2|r!<>qG3$z4vd%= zd-?4#uyX|n*Vb9>;w=5&8S!Jp_5l+`0-g#XzPJ|km#$vd`3>+Fn7@Sf)Bkt75FtQP z)9n&p8eL@iMe2akUPXWb;?;wiCjZ@TkQR{8eH(VmU;NBp42C@};BD1i=jO}*?{-g5 z0skYk(MBTlmjSsTA%MI;2f9Jfi7Y4zK|+~TBQ1#r*;o`bw&5W)^9@c<6kyI4OE*vwI#9P5zC7f-{-JY8Karu4?n+a=b9T5m z&8hL$?ODU|Q=QvDs@v`AY!oeOqXF-@j2V1NKLK@CK9i&`<)i4yMI+gH4-g+@cl%=# zixRaKz38HJ-4rm$F1xcVzt2bQ$vJM8%P31M!@=-4h0cblE6Z0I$Y*G|71;ZEeh1HA znQ)ijVKG76H*O3gxo^lc>#36b{fYz~YLcoknWggmOZq>m!jl>M@ogfIJ>ag()cb9- zn=#+`UkeM%!KmMd%AD79<@*n~{rA-~Jl*N5$GU1-cZPIz^z?9ehXLb2gktJnp z3{gh=t(e#NBg0F22z}F7!Vz|Qk|^Z>Zz^GA^D0i~NF_yQ@BF-DJGR=<%F*JBfio49 zfft{n{3HsFKLo;Eq1rZL$f0#?@H$|7<55Y|^owx({Q1XvmuA9y_R;Y(u3Qfj;jjoM z#8L2E34XK1V%QGG5>4__ zu+Brfzsut9KOgG82Ej5tw{Kj&D(f3){dIY}{93QrQ3+Q|{N!7sTqEU<{TX5VXI~oQ z+U{T1QNi#zt2kRVu~Aa1+i_~7V-F6=y`2{^NM(*YliTkmvg@>4m}q*R6)Wo3@%*8I z_B%J;mwAwb&$Pq&9jfzeOpa^nu6s+b3)2%He~oIYxb?j%Mc5 z-`#~@P{~LS0Fj?n>Qa}{liC@E{VnV7#Sg+NFhWg<==MzI zP2`AUX6N2g?Y=-}^f-a_HaPoc%=Y3-BsDxdTktsFL@p%FHx5y51%a6u(=khOewz!I zTxq zU%7*Rb!Halu_efRfKG`B?+B0ESs-PzSXYTZt=Z3dGJyOZlEk~`X@yXzR%u*CX`jrS z&0otHu`TXV&{Qcs66CE!M<49$am$SElO9ORGXgGv;0gK*yo;BTgxg5>U0;VFNKFu! zV<3%_kIYTUb@w5#1`C}oV4 z>*jI~NUsddt+$bZpk|6W}x);iJE3r1*K<(o5}fp4`3I|#laL4u)P_J0Y`j)YYeqUhl(|K+XYD7upP21x^ys-$zF<#O@7JV0nh_fH>d^Cj ztR&4(>r2tG35jusQdyw_&}NWnq=M_cWa0wrshY=dkL2k_S#o4%1$f$tp4zLvN2~pM zirxAqnre!mPqHNKmju*L)bRZRSoE8Srw@EfsK0dv(zik7{qzU2Fb_h$53|ILJk?zG z-1#)Ty5x^q4{iM4ZCpJmh4qjE$a~%#bT+oRq!wwCT z^*4zomeQD0D+27Tfvl*{AHMsgN2PidZ03oCJ{{M<|DT@Fh|lKr~1Jsw)I1npJ0&pAgp-|<5@%Wja&PcW3T$tQq<3! z&Jt)p%)C7;my%560*)_C=0r^x5p@IWg57AM^*WQNm7eLa%oqm>fwyWCGaY)=CK@we z+BVXdK;&<%>w0bo?ka@a#uaLlzfV+3tQBZb_miKP@XA%C7}*_2j!Yf*E!@#Z#P-Tc z5JstfwLm>$%Hh^4;vUQH(nv)!1D$5)wMl7of}A~}%mHP3ImxA4t48^p1|Sx*RH_6_ zjPD4!?3Rmz?zlLC8sNhPFoU5_T)jGRTB z%@2m8cJ?Gk&X{K_5GPXHMXTBdHBdx@wTUw*Gs%P6#sy2NyqS`Tu7D+UIVlHvJ3OAy z2nx?K-d1qUmc@^T&V>ho5)@+1_p;>Z;@?N4pU!@%&=Tg4XHY-MCs56Z7Kba|=+!w< z*qtMwD$7>0o_si*@d z%uVlyrdmqqH=eaQ?e3uuh8MNKz|6X^w*p&>?W9Wlj*nV5Of+HeNOtRzj-zQE{0q^^ z1a95u{_RgCJ3)18p9Y;-*ssivg{9!VkNh1~#K(H~CG_Xq`vs4yx?- zO&v#z`5Ca<_dBCt1iiFEp5XQQRJL~aAq)IO}GiOF;!)juqlhBxHB-6o9J*dt{xPa_{f{0_0?(e zSiQqc)2ZKh?0nXb&bt=>DC@X7dd^R`k&DM2_7zfi&HI!lw>vL8Z0ORYg7>b(Cnadn z#0R_)8SGe@rZc$-56`XUw4}923TnNCY~Ow#$s6m`!S9KJiA~z}qc30c7&sukSGOGW zT4#ANPER@0E++&;yVM39XcN|G3N_`?4>Oaov@iW4?MK42mkGg6{a5Gj2_ujWEygjz zt>(GbkD2i*w=q#ZF`BU|A2}Ga1=HNCvDJUvSe}+D>a|ze;%Lg2#O2`5My=fc zq?Z$YIX5ZtC5$J0MCb!Hk#PuqM>+j%Ss~hi3OJMkS@=vEEhfh}(yYsY7yGs6vc+kK zO?(-(5I@*S83S+Z+ZA88*jE~QFG}v68`eau|s>J*_35 zmj^vFd>i^c154$B#1~$-0lR2hkC^_4vh$dX+OwenO!7Sl>B z$7B`?qTwPY{{n>=rj8n;%_cEo%{xfH_(7FpvmC9hjcKD7*Y7?Qd41_J#?`+roT(p< zZ%DU0U{pNW{`ht$nJVYBAJnLPRt5`lGyk4#^gJ7dqG~)-QI|1vt*wSNhkS6bJ>fs> zX6EgMWaDfIMA?k5qE%{Q76rkO*ks;@T*poxYwH0S{jJ$u!va~;OWvrhsrdvMme3wk z-3M{{PDZ`R;DL^A+t}TZ_AP`}jXwE4x&R|_ar z21Dho)Q^V)2|m&-p92}PU6O1xn2s{RCDgw%?C!&_QLhakw2xM9jJ$9DZLmw}gOm?3 z2}!U|B=yq)zAD}=bRBTc`&w`ptaScMM6x^xY%o7gsP=(#_`oELiP<@e9XsyZ zQveAFE#Gtao^$5a64n9cU&cT%pejA!B^~8R_zFsZa9t* zOOY4I!&$fBOx&}x+Dw-bEsogv-o^NZy$565vW8_df$4%6{SYi)@~c-p1uyZ+rDa{M zz4cTgB=lAfe%=6f4K#=QMjiK{UA(sxGSzT^lq`s*njkBLSPp(jm+;%5$C3pKu0bK}K!&g!|xd4TN7t zX61mpI=4DZy<%E@HHqx+I`q3%&0N2JSo_)Gorvy@@=E8FP}fgaYAMNH8$XyIFHQT_ zM&PZ?YVLOMw#XD#(H=ZUr_bo5;dRQO(0W8LL*m1?Qu~4RV7hwytjOEfliNIIq1bk&~ zhE#dTuSo-!6-xFqqapO(*<#DzB; zmJJFNEj&(z6!|pn$G$_D$u-cw8&%Qh-HXgOeBNQoP`U8X_YMZSkuAj%=NpaQFexQ} z5+j1m-Z+GX5mLiTezJ1ggy4RYt;UX9Ig7KVzz5iES<_SexmGA%Rv$jwF>5ihqhBJ9PlcJ>Kr#ohB>Vz;ts zy&7VeO-A)Es{c%+80yV7KM2TYO3SY z#_^*dk{(k=)UGy8#~uXVs5AC9!$KvC^UU*)uR*eb3ia9Bg~RWq zYb4y@cj3m6iIuy-5=g=ChVs6-3q>0-i|75W{eaUX*#N4 zS)pKcJ%YFUsZ$__i96)N6+%udy(&ZvCh%lXP@9s)_X!mD&2)LV=9h-tLxh9)ZL1mm zLy1UQTv2S^Cun-^k#P-_>6iBEZBeNB*>NJit$A2*KdUYTBSduO25jzbc!8zDXn!iv z%I&SK`AVmBmPWcPf#b3-cpt(C&r zgHhHm5nV100~Goc%0=~bSx7xRM%$_T46$IrvHJR^-M-Bi+=cZ0*Xtc6b{fDlv(YJ} zr=AWbc+5i4{UbdTc40?Nb=9)w9u@&M71Pj<=K6nG+20Z3>UHM_PmLgDL6lc5Mbmgn zVB3hjl<;;@99{KNFJrMIbRNo{ob?HfEDLx=r^9nEe%v>(RP`yp-bi1SVHH+e0DAZH z>Z#NW$B_5>G!FQa-!qRFGI)nB`0GnWCkOe-aZ{wu{qPq~lOkQNunPA1f|d^@DvtRx z>37Y+WydnS?@Vj!4>YQp4qhn4^r|t`yBGC%?9!fwg(-lSl)Jt}w+$>)2$Jh3`6%=z zqT9$t8_smo6Bq1IUZy3!i%mphUWkv?D@E=O199Z*tRunW#0)9sI5;o#aS37`C=Xde z>uB4=DVV|DV#6_gWTz@8vz9dw$Ad7ue|Q~tC9hre%>9kYSL+@jM~>kW)tbbXNKNy5 zfIr|v3>=VZ?uB-OwrQHcp(OkL^V;*fHqi>w3^vuU*&*c`WC_Ko^)z|~+BOb~O|?J^ z87L-cdlwDuoyHD0Bf?p8IH*WCxVCf;k9N9nOGbYtaYu!g zEC#2(qcfs!BC%Vog9M)FpUU3VYQ`XI1<*uP+~sEka{Gi<<-<9P*ua5`tQK+JEB$#EsH%;Jf8>^mx>-g`RrnEywDzcqL<>-&pTLUH@7;Rt-!&-G4gC6ygry;Pmf@O3m)j3 zPTTITd(~R7ve8GudZw20aM6^7M%hGxjE~L#j{KDda(KUfvClx*_+%;ViCHzLg`okq zAlMiiRuqKfH=J?WFzi5mWOZ0?CDbBrrI@6oM1jS1khuYqMdVIK0%s@jgEN%3`qX;B zZ{KX*eW)mhfrUdJQZ?tze}|OkE=&FP^Tz$M0in8t+BCHbHaQ3HGJHHg(pQPbHvwPr zd1*Vj>G6T|T$JYP>{Rzf+{rXh61m^3gIf#?RRwP&OVy6;^(TG6B#e@ZZY*Sh4!w0^ z&O<1|x5admZ(@_Nvog~s(j}zuFK$X*F{CSy}$Y8`?4lnxLlE?CS7Zb!MXp=zu@Ifz>3~{at9XxOzx|C;8*Uu%#Bq249S`5 z=5Eh*gbxb7aPtFzL0v3-2(t|J^}}jUiBoUYFPa?m{_f7Y`DN>Q8=zkK-u&{vxby(n zq?G|K>N(6@zq^X>+umMecD?_YA~ozrhf$UxWM7Q(s(e~=%E68qMIEi{;_N6C<=v>m zDF^kYN~qQD22P6M_bn%v`^S3~!2r$cB<%S29x5_n;J;}ofyd)R=iF3vIJWjJ*WU8o zNV4~xe)ExE`gsGP5WA3zyK=aTY7bb@we{NHVvax1a1sCk@0;f`EP-JL-X7jTE-H`) znhSm<4(&o*O|K)8=*YR#hnHjNi^^_C%z5e+OvP)zVRz4-%UG`7-KFc&!$}2L5Maym zPf|tFRMI|XW-b}5T}J%)^f$Mg*3;Fj=xRWkX-^L~Nx-N3LH_>!3z~1tfH8P|$u}L3 z$8Fo79(g$B@U7X`?fYATU7KX^;lzv4ti&6C(EJ0_MW}s+V(#!s{DVP%^B6=b0cUuE z7-#gtlfP(k&Xb4Z`JM9*|0y1S-to1*as9BAlRWRy-(LR9YaS}T6e(7ZXnS@+1Aal> z3B0>76Dt7~(f^=2?Gqq3kAwaGWw8D>>( zV;Pa+xWXO9+dx;><hlMkyJLmG@yrregLu4HzvaYbwBb)mILGP~tZ+{^1 z>^5*W$H>?n5wi1PUZ)hmhq_m zR36)_j_d~#A%uf{`0_vQ0R8_dGQQ~qcVT1=A0M3mOe459>$TT6-rx!He$c9I*ASy0 zTSkxwz5k;*fK`A-u0kRD-mdOj$sVzDFnqPpizA4Gf%M>kbNpz}Q-o3D!@8~?My~FN z0}RGR0XzSk^ws+69BEAH_zP^m*z$l0P(t_))bkID|0Mm-3txKNyD-%*5xS^MNPD|3UKU zgS)WNqvH+1KYQ_y3y~NgWX&^9i&0M4v;7Cj z>)HUxa|@88{}>6?$G}LOo9v6P|ARBKL#qNKJ;Qr`W zjvYWUIJ{~0T;KmcUZoNQjKu#6&!5PD@#6nZ;n~lJZ~asWW4UjA+;br_b)XIaw{h(n z4%A2m+@4xd=dJKu2mD;ICU2x+^Xtp3=3moR=bF$CZh0>*K+#XB>8v~l-C!T1giTf@ zGC*+GB@6&`EOA=tuU&(Lk=Hf@h;G;#h#TPT$M7%uF_QM0$di*Nr&bIAdCU85OEK!Z zW&4g5sjib2tk&bjXV!(&y-ca6_d5GVdiy42Q8 z%B1NwhX@K^I|m4!?-*;c4N(e0y!}E57|&9)vb>wz&Camq*#=J|z{M{CZ0A!a7XF1# zc>ll?-vyShE62h^_kNHr^77%4e1r3e+(*5^Hocb*3HF!0Noo|fsv;46$N$2doELzW z35L}Qom&l2j5-j!Up-3Odswys`?hSmbQhA#u_*#DjeW)iVoU$>JkK%!K1TAe%jcl+ zHCbd!&=UAsvWL*s+Ix~dlxucbbyms$0{n`>z;jxps^G@}V&LDXKN!2|D{Gx%pFmix67(g(wRO2ox+l5zJDgaRGX_N;XDg7@z z`-x|q=bq)~XQR~r7|}mJ=R0{1un@B!)^Y#5^^XgY+kmTMX|L!Kbb*2k-%UFN;I@K0 z%L9<$f4t!LJOA&pXFvb5&>G&4ey?g8Kw~wK13e3#bMAa8U~jNB%QUM%yS@Ogsh5Fk z?=ef1(J|fIdkvLk8|nk?M`PAOQBe;Pg`QH<+_r;NRC;E9yfS69RGMw1Zq*ui%d~Zb z)z33i^P&UvJ45ZA0eMT`bK*Y#vdYKiQ#f8u=&&yREQJtbdb;@B2Q3CP+%wm;;1x1kd_c3 zp_xR65N0E*BNjmlxBbZ_ z;wx>VcE7^HKm}LN`o1wa+`F5+o56bkByozZI$xbFuzt=F*o!Nh{Itdz*drXz}D4RXC+P-P23pBCihE`nr!_m#WhU z`+l3aBch@ZPGb}SkF2|yF_n&cb}tvLXbGviGVTOrxdcmK3FQxLm^>UJ#}%I^gY{j_ ze9|)AYu>YGILl7F)_&E$XqH;1=yY5W>x}ews-WLTcLfc*Bh@AFIbNDj3-E1ggj}QU z@I25)R5K4S?jKDjwVb3y{%l-=^DfZ;<2PwST6&tKrLl0^pvU-3R^OaegRVQ0vNGsD zdu%u-+OP;4w+9MM5cOC(2~9!8V8dBn+rcvm|KZ}?OM z>AGLAN=8>7{_?ziKy|L>Oz{Wwv*4rJX8z?zlUHqx#++>{b$9VLZmY7#G>n=f09Axh7PAiqi_ zpA(3B0-NKcIK<9%y%?T`HCXqYS# zcTj~ea1Mn89qe7XD7UsitqCk^FXuoaASPZi=TA(sRWC>s;c_v8N7AFwF9)V*SL zjXqn0HC1bjVTY;_C?^Ob+VK8mD~dK)4OTd%{BD>*df!nHgN;Gk6_1zFLTgPyhA|qT z1B`?9KKU0)R6axoJP1TkkZ&eSPO}UQR3RYkNPDbim^5}595M)^@ax)6dr+?XkEfQ! zieU0%Mj*7v9ygGCtnxssZ0e+@%&6A;i__p6Pb##{?(L@kiROqm6F z^Zrp~mKuJ8x~?;`O+$#)ip~wxmGp77UV-LrkskXVLEVpoZ>C?@5KL`fd0lJ3UGdCY z7)|A+CrdvG> zOPNsk>l0D-!>L=D1GF{6LF-3jl=yS*t^RS5-+N1%sg;zYM$fOOiJ5_z9iep2Np;$<)Zin2| zVy_1>oHScLN}8=HMw1dcj*^pPQ*~<6T(wmXVKk3fV^|2nuf(F>iICVuH>f2sL7%h1 zfJ6m;E(2XqQ)m=!16%DzOQ~q4$!NT9DL9fCB-`IuI&C(1@r{%AS-PyPbNIK}`=<~Q zK|uHoJbbq^@{XJBKcnhKxf>yg~F!Bf+H9{O2p#${W%N@*?2TREnflw$?T_sWCM!h4F@o~W{ar%F zO)2NR+!q&P=}-{q8JDF+HY_k`m^?~cnr*pq|~UQ*5WP&l31dJjZ9-T6D%vPJAYV# zW^yY$=&|&iCJ!ybupOO(#c>SYd{_HNKFa`U4#8vDQKCX>ob#xR3N(u%_CFcwt2>!Y z{t&+-%qXI~a=F$jwc&Y+O3`wDOu8>bYvJY7q~Nnl2DqWQP=%yj^>{D1Ac!Hy(Pwaw zY*n=10*uA2h7Bq@T&??%cFU1STCKMr)G`|G#FlfxVU*dV%B$8C`}q~3>2M_ZS*uIo zEi~>i_FyuhbNbDm;>zdhqqbT(u*NJE;@?`CFesiyJni*RXX62b!R&lvzjUnIZy|kx zon@XdJa&exTd9_!O-0)vTw)q~Fa&f5!a(elo92~M0yR9SU$deks>93jsrggTN2Q*} zRnTscc6B$CABRbHJxa#<`cCyGR$yqb1I$pUTLZ*a^%pe8!36hBZ}>UEm&soWPUK*-#dH&Yvy3 z4dU6}VDfI~wlaMH4$2^JQc!W_=o04Q&j^>fxC{+)|TLUK=3@R7h1r*)ElZt!`xer zrs@E8PB=96lUV)gE+*ap`tFOGi8Jk-YaFxme%&x`;aG(Lz`Ux#y%WI?o4Lxj)&p)* zI>lXzkuuGqS7s8!##2{h!9GzqytHnYbqO%Nw*AQPZl|oY-L+vnk(Ag-9v+@98FN+A zi2=a)S?t$$TWs{nyg*}k5QX7liDQ8*LM=oNutbxhGV znj*bYO)MxW+n*UQe1*IK9X))pG{s8JG)-}tbQzY*BHI-t6lsYN|!Ak8v8=du{h)}&MxQ1MTNhf zv#KdJg7)quVDe$?C!JW0u@T&6z%??LARFId5zKpQfurT-L$&;X5OzKRt}(A+@hIBA z0M!cvnlHi>{Lsl4%iKKo5N?1jm9*5){D9{6-UZIvjDw}(-&lk&(0jS! z=Mn#-4)Icmh^yVpiIXfkQRtaKb;g_v|PU~Q`smPc2 z-k9p=@k7jkYtD53pfAP$>Nx<4+R(=;--P%V_uT@{_rbmeoF9OF3piWA*}MZ=jPre} z-AYv(>1{)7e38+%fU^ahFGR_f#@Q0bn{&$sdu)m0Zv$oHlmE%8YT@He$F?kaKP!u$ PfY<30M#uAyUA*~Uc1sVg diff --git a/redirect-rules/progressive-profiling/continue-from-update-profile-website.js b/redirect-rules/progressive-profiling/continue-from-update-profile-website.js deleted file mode 100644 index b29dfa4e..00000000 --- a/redirect-rules/progressive-profiling/continue-from-update-profile-website.js +++ /dev/null @@ -1,26 +0,0 @@ -function continueFromUpdateProfileWebsite(user, context, callback) { - const _ = require('lodash'); - const RULE_NAME = 'continue-from-update-profile-website'; - - user.user_metadata = user.user_metadata || {}; - - // skip if we're not returning from the update profile site - if (context.protocol !== "redirect-callback") { - return callback(null, user, context); - } - - // build complete user profile - user.user_metadata = Object.assign(user.user_metadata, - _.pick( - context.request.body, - ['given_name', 'family_name', 'birthdate'])); - - // update user profile in Auth0 - console.log(`${RULE_NAME}: ${user.user_id}: Updating user profile`); - auth0.users.updateUserMetadata(user.user_id, user.user_metadata) - .then(() => callback(null, user, context)) - .catch((err) => { - console.log(`${RULE_NAME} ERROR:`, err); - callback(err); - }); -} diff --git a/redirect-rules/progressive-profiling/core-fields.png b/redirect-rules/progressive-profiling/core-fields.png deleted file mode 100644 index e9918aa1cf7a586a1e2ad55d0a2f697b65712574..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75992 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 bGq= 3) { - requiredFields.push('birthdate'); - } - - // exit if no missing required fields - if (requiredFields.length === 0) { - console.log(`${RULE_NAME}: ${user.user_id}: No missing required fields`); - - return callback(null, user, context); - } - - // generate self-signed JWT for the update profile website - const options = { - issuer: configuration.TOKEN_ISSUER, - audience: configuration.TOKEN_AUDIENCE, - subject: user.user_metadata.name || user.name || user.email, - expiresIn: '5 minutes' - }; - const data = {}; - data[`${configuration.TOKEN_ISSUER}/claims/required_fields`] = requiredFields; - - let token; - try { - token = jwt.sign(data, configuration.TOKEN_SECRET, options); - } catch (err) { - return callback(err); - } - - // redirect to update profile site - console.log(`${RULE_NAME}: ${user.user_id}: Redirecting to populate missing fields: ${requiredFields}`); - context.redirect = { - url: `${configuration.UPDATE_PROFILE_WEBSITE_URL}?token=${token}` - }; - - callback(null, user, context); -} diff --git a/redirect-rules/progressive-profiling/update-profile-website.js b/redirect-rules/progressive-profiling/update-profile-website.js deleted file mode 100644 index d03b2949..00000000 --- a/redirect-rules/progressive-profiling/update-profile-website.js +++ /dev/null @@ -1,213 +0,0 @@ -'use latest'; - -import express from 'express'; -import { fromExpress } from 'webtask-tools'; -import bodyParser from 'body-parser'; -import cookieSession from 'cookie-session'; -import csurf from 'csurf'; -import moment from 'moment'; -import jwt from 'jsonwebtoken'; -import ejs from 'ejs'; -import _ from 'lodash'; - -const app = express(); - -app.use(cookieSession({ - name: 'session', - secret: 'shhh...', - maxAge: 24 * 60 * 60 * 1000 // 24 hours -})); - -const csrfProtection = csurf(); - -app.get('/', verifyInputToken, csrfProtection, (req, res) => { - // get required fields from JWT passed from Auth0 rule - const requiredFields = req.tokenPayload[`${req.webtaskContext.secrets.TOKEN_ISSUER}/claims/required_fields`]; - // store data in session that needs to survive the POST - req.session.subject = req.tokenPayload.sub; - req.session.requiredFields = requiredFields; - req.session.state = req.query.state; - - // render the profile form - const data = { - subject: req.tokenPayload.sub, - csrfToken: req.csrfToken(), - fields: {}, - action: req.originalUrl.split('?')[0] - }; - requiredFields.forEach((field) => { - data.fields[field] = {}; - }); - - const html = renderProfileView(data); - - res.set('Content-Type', 'text/html'); - res.status(200).send(html); -}); - -const parseBody = bodyParser.urlencoded({ extended: false }); - -app.post('/', parseBody, csrfProtection, validateForm, (req, res) => { - if (req.invalidFields.length > 0) { - // render the profile form again, showing validation errors - const data = { - subject: req.session.subject, - csrfToken: req.csrfToken(), - fields: {}, - action: '' - }; - req.session.requiredFields.forEach((field) => { - data.fields[field] = { - value: req.body[field], - invalid: req.invalidFields.includes(field) - }; - }); - - const html = renderProfileView(data); - - res.set('Content-Type', 'text/html'); - return res.status(200).send(html); - } - - // render form that auth-posts back to Auth0 with collected data - const formData = _.omit(req.body, '_csrf'); - const HTML = renderReturnView({ - action: `https://${req.webtaskContext.secrets.AUTH0_DOMAIN}/continue?state=${req.session.state}`, - formData - }); - - // clear session - req.session = null; - - res.set('Content-Type', 'text/html'); - res.status(200).send(HTML); -}); - -module.exports = fromExpress(app); - -// middleware functions - -function verifyInputToken(req, res, next) { - const options = { - issuer: req.webtaskContext.secrets.TOKEN_ISSUER, - audience: req.webtaskContext.secrets.TOKEN_AUDIENCE - } - - try { - req.tokenPayload = jwt.verify(req.query.token, req.webtaskContext.secrets.TOKEN_SECRET, options); - } catch (err) { - return next(err); - } - return next(); -} - -function validateForm(req, res, next) { - const requiredFields = req.session.requiredFields; - - const validation = { - given_name: value => value && value.trim().length > 0, - family_name: value => value && value.trim().length > 0, - birthdate: value => value && value === moment(value).format('YYYY-MM-DD') - } - - req.invalidFields = []; - requiredFields.forEach((field) => { - if (!validation[field](req.body[field])) { - req.invalidFields.push(field); - } - }); - - next(); -} - -// view functions - -function renderProfileView(data) { - const template = ` - - - - - User Profile - - - - -
-
-
-
-

Hello <%= subject %>, we just need a couple more things from you to complete your profile:

-
-
- -
- - - <% if (fields.given_name) { %> -
- -
- -
-
- <% } %> - - <% if (fields.family_name) { %> -
- -
- -
-
- <% } %> - - <% if (fields.birthdate) { %> -
- -
- -
-
- <% } %> - -
-
- -
-
-
-
-
- - - `; - - return ejs.render(template, data); -} - -function renderReturnView (data) { - const template = ` - - - - - - - -
- <% Object.keys(formData).forEach((key) => { %> - - <% }); %> -
- - - - `; - - return ejs.render(template, data); -}