From 5a195f7ebd1405dc4b853ede0adf43530b38567c Mon Sep 17 00:00:00 2001
From: Clement Michaud
+ + + + +
**Authelia** can be installed as a standalone service using Docker or NPM -but can also be deployed easily on Kubernetes. On the latest, one can -leverage ingress configuration to set up authentication and authorizations -for specific services in only few seconds. +but can also be deployed easily on [Kubernetes] leveraging ingress controllers and ingress configuration. + ++ + +
+ +Here is what Authelia's portal looks like@@ -32,16 +43,28 @@ Here is the list of the main available features: * **[Security Key (U2F)](./docs/2factor/security-key.md)** with [Yubikey]. * **[Time-based One-Time password](./docs/2factor/time-based-one-time-password.md)** with [Google Authenticator]. * **[Mobile Push Notifications](./docs/2factor/duo-push-notifications.md)** with [Duo](https://duo.com/). -* Password reset with identity verification using email. +* Password reset with identity verification using email confirmation. * Single-factor only authentication method available. * Access restriction after too many authentication attempts. * Fine-grained access control per subdomain, user, resource and network. -* Support of [basic authentication] for endpoints protected by single factor. -* High-availability using distributed database and KV store. -* Compatible with Kubernetes ingress-nginx controller out of the box. +* Support of basic authentication for endpoints protected by single factor. +* Highly-available using distributed database and KV store. +* Compatible with Kubernetes [ingress-nginx](https://github.com/kubernetes/ingress-nginx) controller out of the box. For more details about the features, follow [Features](./docs/features.md). +## Proxy support + +Authelia works in combination with [nginx] or [Traefik] and soon with [HAProxy] as discussed in +[#271](https://github.com/clems4ever/authelia/issues/271). It can be deployed on bare metal with +Docker or directly in [Kubernetes]. + +
+ + + +
+ ## Getting Started You can start off with @@ -102,3 +125,7 @@ in [LICENSE](LICENSE). [auth_request]: http://nginx.org/en/docs/http/ngx_http_auth_request_module.html [Google Authenticator]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en [config.template.yml]: https://github.com/clems4ever/authelia/blob/master/config.template.yml +[nginx]: https://www.nginx.com/ +[Traefik]: https://traefik.io/ +[HAproxy]: http://www.haproxy.org/ +[Kubernetes]: https://kubernetes.io/ diff --git a/docs/deployment-production.md b/docs/deployment-production.md index d7d251f89..8b933920d 100644 --- a/docs/deployment-production.md +++ b/docs/deployment-production.md @@ -31,9 +31,10 @@ the root of the repo. docker run -v /path/to/your/config.yml:/etc/authelia/config.yml clems4ever/authelia + ## On top of Kubernetes - + **Authelia** can also be installed on top of [Kubernetes] using [nginx ingress controller](https://github.com/kubernetes/ingress-nginx). diff --git a/images/authelia-title-white.png b/images/authelia-title-white.png deleted file mode 100644 index 75621a5f36b4ba0a578510dfad3b7b5ec3ebc97c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17145 zcmb??1y@{M&-M)N?#|%uuEi+Bs9A#9s{@(!c7H3};9t7lY*79-n3va?c+l_)v{ zLh(pgJvkW4A7OZK4s|T3s=96 t|aRo$9Ou-w!KELEaGPG%#)8thi~V_?XfYw z8@1Qaifio53vvLEcpCbMn{||lyhN=PK7>SR_-P0wvQ>`L=mwd#YE+FeJv6xvk5M|h z{+-~FA6($>VU{wQ#vc{38J)v(Z=W)ZG0iuZ$B2*3f4a4Jbw(wMV3q6WRAS0zKa^bW#d3iL^9Hii~Irp%vx$Wd{lwtfD*jer74zL#v19L^0e8;dS&^p zX#l{r0TUeW?s-0e+9K-4(e5bU10ALgC4SragEwqX9SaqCkb_lC@N7W$MVt^F2U_cU zaSVjsyAI}sYpVI%)Ce*=A~6bjsQL<7I~-#eLH#IyvoY`w5nizZ3b4hy3fkjSJsoo> zYatZIHuzmmu%3M$58olKM^IC|?DyuMUy>)Gzb;gXJftE=3{xjc3Ml;bzfiH85>tGg zW04U-N}T5I10gAzS8mXil(c#lq=zWR*7t)~J?j|y?qZ0gSt;GA97jz+{mf%<)7%hy z>J9QNK6LlvAJY-VnhW5jnOfpT8OkDEC$_lEE#CeGGz7c^0vmvaEjrUmEh@9Pom2%X zgU@;h=2vkM*55ljL~;~GOfz5THHc_M18pvNBzz B6P3I-H}{ z>@*6JRR`Q8s$ksQ r}Nmqxh)Z`^QSu&C*YZY$Ih5XCfz^LdSr&oH_Vt@sOQlq?Mj_V-sR< z@Qd&<(Ig7_)NlZ9tCJafDtahGSkIVIEP9e?Hu%mymjZp}03bdEj7N;SP8l3L_p&*8 zrpsqE^Vn!XG@vk5Iz9YbzsYEU5C>cds`X$@Y>c85d2{Cex*ehfz9KvssoSTEiYazA zupjvV%$y$S77&byxrYo_ph8=?P-G(Ds+;I9+fK s(ihh7NuRxv%b(&-rkV-~x&rKR<%wWQPm-yh<|xhty=zy^Y9l8N8#z*y z+p@HrVv xDSy{tn)wToW^oMGAX2mZj`)@K+yHxvKsUsSQKA`wFuoS_y+vj zvL x)!fOM9U$*W!X0sk)(I z$AQNQS)U^C6KvhFD-~5}8LVVN>Wg*}1(Nr-LZ^`_5XEI;<63?75g(Nbzieav9<_Of zXu%JF#_DuADM|+@=+sHAIpzF9F*F4&;qQ;Eqrc5k5qzzHHvJh#i?1t{`ku}&*8tr! zHN3}=lm<}05>nIU#L-bDW3N5-sS=P$2sb*u0yjQPW2$h54;N@~97-W|Kz$C8I>d;5 zldyKT(e1>oAExx^UX`Kz5l@A7$W-oH)Mrf}?dmwRGe9}bE8Qr6G8XJeHJ(>y>5Qzh z@Wm^d(AMHN0YN6_7@VpyvQu10q$&kHq7rrOr44Fqgeco~91wTKGBMZv^8kx~B%p_% zKA~Vvj~vGC?vefseSEhiSa%W)wE|F$832o$I&@tEYlJBXBIeJP9FO>d{v2sMvBIk- zaF0GeM@ZqiX@ImoOTtkReI-_bh9C?zKb}VT;Vf)NE~ z7|%mbnin=#?pFeuW2h)Jn3fyu1}`tT1!#lwO=0}NmmN_j6gz7RmofL4y~ah{@Rmwg zH$o2a--`B$tO5~wHUfP=&nE2KG^bJ6ap$lsdpMTj5CLx7N$jYNKQ2z1 PL1gG zx9ykSfs`}qcr>8{1Zw-%F(BqxQ3^V#4pYgVXoAwfDrT0&YxRjC3h2s4lFPqED&)ug z$}H|g;g(JyX6IB(iFo7)j19EGDGPk8$X`}xb2GLEws_=G)8p#U@ElF0M_H3F=MMn& z=~5>kgDvcDkMBhk%^C)ueRn9Ps7exnQ8^e$+a1uu5NXZdKEbDQOVUW{J?&;O)0l$w z^K$DZibbi|hF1$&mWBOnLt*oS2$*;DRSRE6+ic3i3gc|WkP~(<=?4UYc{Tt~0EpdS z!q %rfehUjMwy=t#ge6*k zVOS9C4uK|95)_~_`+8*kb1PdVH7SDD*&$Q8K$j;DTX6*x>KJ8d4R1+CCJ?nlS{o`s z7N;T;ih}fZSkxrtc-GVrwNP4ujA#gp8-`RQh#aQfJW3|0CI7(BqEQ%RC#Vz|k`H@( z65?8AT`5;lb{Bh@gD@QhC}+Nsq# `h1SM;7hUf3o+NYOx*V4_@J`>5AlOj_(bc%?Fk!NC5tw zW#1)e%^59JLBo*dZ~o^Z@(`tl1t8XV>O*%x#+Q+ADfO6pZI )xTK^bw7N$@Ky=*l6x$K=wA zVi18xrW7}Z<;~fb-KS8Y>wvF_hQOK$&&5vI UP>`PJMiCjcPt4sSiVf> zc~**zhf6>9h&~jR$dlmeg_Vef&VI&bDVupS3nhgIk)k3q;}sKnA%NXMlMm@PLsnXs zNY8V5U !G#C?(e z0*K|{J^0*ZYAdoRQjk7FNshS82P+mzTMIO^istRleO{y4(l3+sD5e&t2zRcRlrv^e z()~p&p}#%cR7Y$b<;F;OhBLkMSwGWE0)Y|-O`olF-Kn&7GdW*&KWYD%uN4PK_E!U_ z3@ 07?#Tt{6~w@x$=IZ_8#$Es WBJ8fheoLja*=;jfOqmp|% ~B4{X=Uv2UO= 8dD00 yehC6v? zxHj~vJl&m5&YOVn{y!svmW;w_tp=L$I!mdXUFv8(nu~FIQWd>j>;5Volv3H9tHN3f zDZ)=zG_|Q3y;b&pR}FDW>UJGu9NcHKMEjSmh2r6%_)9IQ>)*_PHFM3I3HMQYdCMPs z+7geVhNINBiqE$gM=LWqX(&hce{E$6Ufl4jVh;*}H>1e~v3-z7dV1(Xb)6ek0&FUa z;&H4M9e=Pj#3s^E7f7dW$L9TH#r>lYB(#Dd3Qh^OdzoF`m-i1BxBW>!V8`Cd+g<7C zkYn9abS`M*%}@FE$q`&HS6o#mhuJ?9@=a)>RyyHemv!ggXtFoPnJ_AsD|})+m&2L| zbPJN}-M%gx0hI2zBNY`+hSNf*nqhC9^omk3rp;#HBO)O@R` zqssBayT%JcYe}m(dx6yD!}evR1DDDi95n5;$cW(r)euT4ek8%^t4KOK1rW 1iRk%0xOIM;kQ?X@2_xO%C3R$yX2& QPIMm+p2RzzqQ9fjA&n4#K@FzGv-Dt_vj+m-Z zRb0d%OSA8CVtt`N_Q0ecK`Gf}*aBCS5bwcQ|Em_!-0Hvli-Cme9GzaqK;etCt!qiV zhvN*RB T7iU{ z$rb$ysSl6kLG}2S9wsW{(-`H+ak31FzDhb`Gp(@LR|x=V)y^ds0ji+Z_$&p!Q~>R? zYKxJMDSPU2-VkYcYZO?7c R0a9U#T<*A5aJ_6+^KgB!+{1G9G*`(l* zjG6B1>u;;li(RU}E6x?L78sfyQpXV78R3=?q@`8>rC?t9(dKJNX})$eSGn4!rjI(3 z0A&MP%yuLG(UN5p8U1X_>4SfTwy>a>r!vW|WEH9p>}Tj-*S8-yfx^X!#d{;+XZenr zy5-VW7`AXkx-j%O-K3Y+cSmW?O%u(_RevMj_>CM1_fQ5R*kU}-OZcp_2|qnXv++&2 zJXLWVj1Txzl$jwcV2)?Z788Bby(mbP<^|+k@vDI+T;PUOT>ROB7bmIlFUGAPr*96D z0?`-D4&TaE9&fU^MxkZAxxiu${3H$*s&LIw5BhBvjk3cis-e}+Lbei-7=z=s|2agg z=tQP}c+~PD?nh+UWWFAOz=F_n#$`faXOQns?{idmXGC}VJFGOy)vW}$c;%yA0QXfv zR_f!Q37}fWE*brCgy<}%=LP_ n`c!;9%kC4v=)U_~LG1PT^(aZcQO8ucWFIjD`;YPypnmK52TdoaOp-8)~Ip^fCp1 z;{cn3Fc7E{zX3Sqm?~J-Rm^1!vON!54QyTxWxK@U*H?ZxrtS;OGOiyN=LSSe4vql* zr=ql-O;HdL5j*5Z0f;aX6o~?SgGLt#D>~7Vxt&@blg3sRcd!1(ZWlG39+RR6r#<&h zbv^ehTm136|9?Im6t98Mns=LEBQR71P-xJuI hrnJ z%!`%BvahTH|MAwq-*zj71j=hYz-`aPpJ?6<1}>6}xR8{K-p=FbVsMTCGl1}3KCdQF z+R>vt#t#488>x(bd@6!CE}r^NUX=Zhg$2H7KB9(^&$S4?#Q(?|*$TnpX?sloClfr7 zwz~TCF`ww_KL2mDP!)39H+owbTQxF^ZNPTIC3?{Nq1M<3T^B=u9#Vb~bUchP^r? jTulWcXNcnNb0>b*#7S^ScC$M#BS_NKn_&* zsFTIf5|Tga5?m~968a;{QD+`GtS}?!*lV!T+ej2A6Gjn5jE?U$2gQ&H)O#)T_cmoB zolMyol^w4gYH8ES=SUA_4ek^#>EY?jTCbcA*c6 =iiIFoLS6^6i-8>f?5^ z0@2>zkT93`TAE*Y{qk8=o+~K=-+t^oIH5Wtqp~f~1y6_@F`dfyxo=fLeB&ZtB=dPQ zLqmhJl&M_yt1q( j0ntY7+`?E0ROuJ%%K9NfP#f#&f#*67#DVt+4c zly1X(8IQEu6UWWVzK-ONM*ssSZLZp~&_wbNx(+%}Rl|jgkzkN2xUx@e`(UQuG#4TE zWPAFAE7gi|N|{Yj86oS78W$!(?$z~$jo<~ak1w(}aZ8wp34h#>PA0-n7&jB|xWA!4 za}vRWdO28x8k9YFVFg$u#C ~d`}iLc=2J%U>gmz;O$Be40ni<19>w^rx6jrzG}4fCEhBQ& zlw9Cb8O*K*t{N8{!IYcPQwo-G@-G3Ts5KZ2=T8-Gcx&so|LpCx)h2c34Ztki-Q@<> zLs<^R+gj_0r==V%$#lgwihrq1BEmaez2~M7MgBx}DD{#%=&lE4T)#2JP6oM!dkWUZ zf#s2MuHf!&C^3C1D*Yn><)z-Pv@-nf7pV5dFb&h64`VO3Fk%!;o9Lt=$ZD|DCyWb6 zn+Vmgc^FA5sJ+Wp1LfcO06}_K!A JljzMzqWGh zLZ^K!P*-J}09m%~lRez7;FcXNxC0Xw5H!om!AzlO%gwA}0SA*R?T@s_f9ri(;RjO_ z&^Y#cv3MXWJZIBzNw!JVJpJX KstQF)PZw2gGPKQKD188OW++Nxca_4n-1ic z{g!9uJoz+~z`+>phlC-HoL#n_C6ujq%j>YpBBtc?j@_5d_=u8{r!$T_mMy*4A6s u=JoCDYd~4h_lvbMUZxJKD3EPR`Ac3 z5gZ=UPHdSq<1<&LSY6gT3p0((^oX(u{Xo0n*RlP?Rf>r)7lpS0F@{w=v-c#0nFcsB z#kIVXdl{(_8fyh}-ZygYbDx&Mp3A?Skriy{F@g*}#I?B+!y|n-Hx)`Dz0xIOa)1o8 zW$W-(9w(L5;YEL1II7c=ney*gJv~M)sGD8VTYs2@5I}qh=H>F1V*tJlU!Jmbz@)KC zTjv4pc-DG6`@HMpGu(Lox{3Qh-^%`uAQq62ez#b8QNSQeRBw%g;sU@L8Q5$n<=Hh+ zTMOt!^M)K+_$$*I%ja~QaUv9O#f{x(MpipKuYP?#k;n9r(n_do0u(iHFAnh5VkC_i zxbvnoT#2tIU%yr2288!Ar~=NmIy5RQaK(F+gXU)~GmHQ%=xMgak=^4Sk`CTl(qm8N zQLw76&nM=gZX5W4WV(Zb%go?1{8JA8)x#GXsQ;=;c2ed_!BEzYY >b!NS%YgOOpJvO;BNpr(K)G_nFUc#@O<0lTk=2(e(Z)q6@E@Hgqb{5M&F z{>o_)>~wvERTFaFo4A%0v{t4Bp<+~m^@z=0o5&|Z*y)f T73BwPx zXH)b%$J|$(bhF{Rg41|fmsLFe!D;}hK_R *Y>l ziWr;U+zI_rOC^MlN@M@Da^6-bKnmCwdcF ~yz)kP4x zn14wl6wJkrX%F2lzJfS4y?{9PdRbqbCz~@dW8(cJtIpUMnZf$&3JU0|WUD5+dq&5C zZ{_E_tFVb?zdDAzZuX^h&i^C|JEp5GpEDH9=}+JO%Oslr)h{*TOwFqyE{#;+N$QCU zJ1xSpAvAvZ;)77IY=I;0(YnkECb46!R@LkBu*r{IPj#K$%HM&iusT;^Hfha#Bcc|u ziv7ubOv-~T?uH$jWELE12oOmyPVZY>w(J79Ds~hM$NhrrF8y@Nu>Vl^adU(zXXe^K zj8{bDsr(PZvQ6fYWdkG%EfI_^TxXwToRsuAlM`uk3$zi2zc{)R4z0)(BXC*)lyOI4 zkW0mkcc(Owhqry2RY+%D|Dg;07vU3X@HtBX)#vOt!T86#7$cV24m~-Y8Wr7j5THZ- zN{sU6;Y-qZ2dwVyf6CB6!PlwoUgxD{LRXzN;~-w*yB5%i9&Ih_JxPVHKtP{9bAXYv z-=}dU!&Qs8DVf*&IuBLAa=ezz>y!UH|KEsyw^!`P{Te&OYlLFH@-p%a-Grjnk^FfN zKuyZy8s5=cV0p9p6!W0WCmf^&qsn$A=Fzs?;%Xs8Bds-Jma@*P!t3D@Foz=jY1ZsZ z!>uR-__z^w*l5B>P17T2>u~hI@FOH?h%zz1ji>@d(EOnYWX;?rl-&kVXEJ}RBHEWW z>>S8rxv&(nkU44wd8PzFYtnBc)pxGi -k<#-rcDbWLMQ;!>BkSmX~N2cQ=6%o_c{x@ZJ zBxh$thjB}ys(i=t2B$w~EWFCihmo^iWh}A8GGEWJ{%nWwV2S%w1B4Lx8C?bVqDRdf zn~VSg_uVM`B_V&$Ek&1Y5ntAzCcF3@?jj?FVT57U*h4<8lSrxAdjb@|THNU`wTQjw zfGR; kAU_w^9Jj zXKYv|uPwB4O{oI`qHG}Y-%Er)_j*_TEgN8dSOc4(z1bJ~wLBQFM2ZHhv6ISO`IQN| z#1~gA`F1(PmF-z;O~1n%46QVuv@?gmeuxek^81K9(uBQYgO?o> z5bci#5*+G9rc?pM9qb0!aX z+_ok;SN}$cMcaG`e+Z#2^$tTF0x_4fW|h%t-mZfp$pJdMb@n!smcc!TbZK=`K$X}3GYXFowb0I z>?5`h{`Rcrp~IS~@Q3C*Dm^vWNpxIfgJaO#y%C!4>7+9+A#DYjAG6KZ3RGw!qb?DR z?0GtUW;IKD?*GqlcCchxf(&PNoX#(aWX+m<%hLdipm&u@Sk>W+5oHNocfj=v7D9ow zhABi4k$>P&Ffc{U9^DP<3LnIBzC%VPVFs(~@Zk>%zVi2?*F6anRi2*+XJv*>3>PHC zjIKZl)(Fd-HpS-YEq{11Sfs=rDq)3~&gM^2ywbvf^Y`x|*GfUTvM+|3(*N1YuwqFP zkJs0HqX!yXR=@J%sG{q4T@U^5GN%y1u*cw^-(gjk;C6;a|Joe@qkHmKlkw!qBkBUU zc@-`%BK=?HP|hTcp$?@&8}B7wRQP!R33!tgL`Ftd94~Fd =78pTJOV$?|7J6_#VwBXor{fQg{%rPr*%iNg$?&meh3q(2Ac?phmPm!j9+zQ zyrG8%Hp@r}<`Ny_XXnZTwBWRQx>0t@r8|b9cIyp9G+`Qu=R}ecdRs!DdB`%&o!NBS zbfb-LA%%^I1+av@ 3$a9;KY zMtKpr|6|5yVESUQ*H}%zV%b*2v{)6{-FeEv40*oj?~8;OGl4D`VjdZYFnwD3U&Ux$ zBO1xPyJ3o>QsT%~*Kk5jV1ed5u-cwLO>@D>Qcz=!DX_U>(PH-tTSrr{8<<#nFFs^t zkX`FD_)$FK;gP`9cF485gaa4f%^)XFSiA)(M0=hMm;n_rqx&pS0*Qzj%^n8@N}02t z#=pYcQMW!E7{HN!ruzsAp^Iay9 VmFK=G7t59E z3YiWmCp3Y!9g}Oe7m(U3H04vF=|$C)bEs8Uvuy#Qy%KLK-Czf)>XPB8Pp^nA sri=tDT=*Q}z zn9<1`c+$!t{|KX^x?!hDVm#LhC*H_0$1mOMmm8YgAIbsh^A5T3+}T4T&J?b+z`dOV zpB!Qz?pLZU@Fim>hhB9aq4oB9#pjnPl48LOkG5w) #`fCrg3@ zO~P>5C?gMe)ZP1kolzbDY2w_Gqv=@)1 2pwHr`;`dr$}?V_>>$AQ@CQt1Ik#oSGSt4Y%4KxC$*Sajh%BMB$I$PIJa1sx?~| z9|*Mv)F@PLmIeX{E}bI(8?rp01v~zpmfuL!u=*!TbiU49d?^G*M~x}Sipg&sW~ZA3 zpv8H=5KEi0@%lm1qyaS01uQ$H_m-qbkmKz>oX~$w@Ve=RIcD{%H9ru}$qTV-XNNPS z;l(%8b{m+byy$?_Rv3J|<%+yQe85zTJ56I$NA$QJzedLEad7b=JG{it@*X%U^38!X zq^pdxbEQ@OM#LCgQ$O!OsIHW#ix$#R%K6^;KV#9c#n<2e_=yd9B4Vi2EVWcye=(6Y zYa_ZjCrQvsr@4GJZ@R%0Cv-bDOq_$gfIp?k?}Oye1;^ALbBKYi(~*!1Nc&i1;wn=* z%#qQji}08lm<4P6-1x)i@hG7Qdre9SGL74NWfp%xe)=`luWDD=LRF-+V$NAQF?^qx zlm%E&XUI8YKDk#suDUWVPMt6Zel3Q`Vl3hYxM^&ZEv>596K?Cv5);;I6BbNWL;@O* z4V#b(G;G(H^Rbd-?Lc7O5*RlFkzOk)^AC)z9(mES!VFTuwQma2$ICXN1*VqE?mB@l z2y@EOcC38%c1@(#O1#9ZpL-66-Jy6JuxnrvrMo55gvAvY)h9v!Ptq;Bc9sz{Qc3^1 z`2feJU8I5&F8VE}1A65R88hjOnEd;p4dL6O$dL`imujj1xnxZb@(=i1)n4ql+Lji9 zvIhMpKFlF+Mr~+{Hjj=8IWW*iIcS1GzUz=KJGTokhNbGKItii~3zX!^zF)yR>7xwm zW1>ob&4@Awr+jQX!uyo5>hmTOPDd0=LOx0feXD4{! @57u6RHHOSUXn?9aczwVLW$Z)Wdajcox1>8>eC?RkYvfSR+)#?kyvuuyqs zY(WV}pVyIJN{);ZC aqmF!7`2W9gRxR#LaS zGJbYqYlA94JF-m`yJ+YA_B)nOik<2)%9Wy|1ZEEIp_kDt%${7=V}*i<1%iHHyf&LA zc-5NI#VYmWH9e8u4gs z#mz{P2UH%@ANRoPcD>FpH%1v4 zD*P1|U-I6NvBiJ2Y}!RA=<^T>bTZjFCr-;oK-#gghy95z97LnGG4z|-w>(l M8oMmT#5R$Uq^v;bsg( z=5B4OpYONX6OIZC0nUx~GS6^ZEDh4Cc>P#IQ|-~w`NA;ga>cJ1GR*(b4Z5v3vaH+6 zW5eJp=93L#0EfamLDio7fvzQrZ8V3G8_HDpW4pgz$29L2ht`=}qnY}`t@jcLQK+8F z2TpnoUM{$|OhY+Ye!IYXSNZa>hfIieP1$=2e`LNHRmTQ?FV6&8uM(M`nQ{?qvBY-4 z{fv%Il%Nb*;g_c&kJ2_ Uvcac^{{DjX$@+HmrIe5(t4nJ8%z4MqLS?%od$2M_klUj#mQB$#UQ>Y zmm!%Cv=eriW%0^ P% zaXE{$YQ(!>(y(nhB%0hB#&~##dB-w{HMx0aNHNq+$LINk+MYLRg8Cy2Qkcrb!K&&( z6 wHObPqrEc1 zZ>4`Snuj$H0Edh}-^E)=#LEd|hc1{tl2BDB;B7^uFyU@r|D1P7KMylbk_axg_(wtK zgW1+S%4UzQmY5zVrn}uwrlGabk=_z?;*>BzXB7o7Rkk*TD>iRR+0^6LxX&g6)m0~Q zLFPvO@=!h&*%4v77J$Vi+b9;`o3#NwOp6gzmuM`dn)Y*Qw*jpd!c`x0cSr|prdoEX zIOY$XIrnUY#|<@dKI6nBWONZ|gJM!&nVcDlqgq9+w!i5}%cw=W5<_OvJqNZef7I{U z*OO^X?V};ae?j#4=eSAlxL1!Jo~3vU;B&ie*C4{Hayv&A MelqrYf z|D3s9gyXukIBa;r>@n+Ht BK1hwjwmV zAQku%qqbDTs!sz7rNOgRSWRX7$XXp|b@JmN_1^RnfWNJ=Vnexl)qO yE3|s`Ff24C9G}4Ib@G1C!7I&~j~SXzJY4JHAaoXPSX4tN^&xHB}DI4YCI| z7fpE5(y1n}utVr~jOAX^awHi79K}{ozrv_)?K2Z0J=!gD8(m?Cx*4v(KX5p3bBJ8~ zWY7toaP(E7);?qiknExi9;DE`9hmPp&CjsD(cNP`aw-OWTBDA1Lm7K-j;#K5<&8%S zBgPC8TC>cM1vpTziZbr5Bmd!uiR`*qWY4(m?^&A}aAS{`X`IZY*1$KkXLt3}l_IOk z1Q5~t2pIUH4dDDag54ly0yek)wERI;1ToXRlhO*PfduMm^%8p4vVEu{7x;V&wJL40 za_Sg~Mal}w*PO>Uudct)nBQjLq07yW87=>s_fb{F-b7Ykm>Ft-J6O+o{MQ3_@M5ey z^5KE?(sc~nrEE45K5UlOo(}vu2`E^-lQqBNVOYfG%lKVUU5n1F$!V`gfP88IntO}4 zOA3m<9;hqZn#OzqZ3rm6k!zo7=qOP+KZp;3nU1F&^q}PR5po>+L=ck{Oirs{|HZ!W z{##_V%G2+!Vr`ytp_WX261n`el+Kp$m 8q=-r$tfo@9dxmei@9 z%wh>QZ_3*2?FtFwll0Kk@EU}J)WLcE0?`HJME90X4A`7J;@A5ACdd$>ED!^T?twa0 z!(2|j{%!%dEy; $%Z?P=a)ba>vKgI^iEZ#;oXw z(hBGOuakJHg!rOHk8|QJj(}rW?`D{Q+*aRF5WLDdj4BiQ^lz+;hiRyjb bWLcwjAmmAgTRi|eBt2+KaI{G=u2uk}j^ zO(?+W85mVLX&0%eaX;OddyY;7AddaL&j$=olY_4T0FYSz+Y2yG1D4uj+zQV@aq5jJ zxQL9LcmE}@WRdtPojp~Cvy?f!SaHrg!SF~(q=EI1FukW-q;KGJ&Jxo+Uh^{Gj|7<6 zjtl% w_84Y?Vz_x-{2lWkY$%Bd@20Y%6LBFerCvsO>=+a52bPuunr zvkq2j3kT|a#hYQ$Zo?!y>%VBSUcQJ&!h(a=r|JqD3~LxP9T&PwI!0PBE$)(NddEa9 z7=W~ww*J&8iX+zb>&wj;t54624=> Z45QX)AqVI}6QSwf8qyU9~6lKn1mHg0%{OmGqA2&y-+xx2?I z zNlOKamMHf;-F$yBgh-=mW~hwlPwtud?~!?^@yC34F8@V|iuLT-@OVyZN%U45A+~Dk z03}~=Je!XXy2iYDnNtjI^2!?Thc7bxZ*}u+_je#1@2E@fA?>=Q52O)sjw`d)bJSFS zdVK;%R!^vrB=Fv|R)2t$4~Nfmq@jwZ*SH!r$cR)x%F-P$qEoOohjlh60jN>34>{)T zI{iRwzewU-#3Bo-kon6k%xv43p1gNPoSW?wV;GIS0%<{ufBk<8^Z~;cr|kf@*3g*j zCQ{)@SSHhf9)?D)fQbt64lC*vSxmx$bxWO3A0Ry<_llX_XUy737Y;!I*MJ3hqb$$HdUP?Py| z3T4a_Qh1!k6<1ff$WTA96NECAzYm1izDzyy4ix?7cAEb}BbENqklV*usz(^(NswEY zN{qz0^JnE1UYwGBe8~h6r$nAom-huIY@>ARN$txB{%C=>)|!V&gecSW_B5 tN$tfyMO8hp#km;O&yNZNNWK|e{|bh(zc-b(_vC>| zjO-?Ttm~Fegal?EyM82)H3e?@q3b#SYCw&4-`>A#yPIJp;r1OcsXF02LL&VIb_A3u z-zJYIs!wO&VtFydZ&sOM->5?Uno1_DJibF!MZ;SsL&%7})%}zySq*N1T{<;@m^Lv{ zfhFK?;PhqRt+wkl@5+#fz@(t-XQ(NYbj2bIVkJXFVa sE|F>wt7m&pp@l~`JLp;^Rc?tIt|DSG8-bb z2M&qZimSYHTP}js!3QR+V@)ah;CQ!0{^sJ(XaOAaplc*ui4~6qAt?@0xUkgIb_XV3 z_tFvjP+pru$0-@5WRK Nl#v0B)GHRu`BA8_j*PgbTGSb4T@z%kIu2Iyz@gEU;;BUzGc9EAZ W3>^RyD`qqgEpN_C>!XFF0GrU*26cgj*@SBg@dZp7 zofBs(u?Rzb^bd3U1}MDu!xtNQuf%?7iFa9hA1yRv2-pQjaKZRyr~w>c&z ?s&8UV#DbU>!JSJ#oG> N0@Hj=iE7Ut(V*_<{k>r{zP`i?mf7vYQZom-t3!X;|=6YGn`+Y?6(UW8;3=|z?K=XXmIg7r~|# n7cva@)PpiZtogAtOO&8*#I(7e1op5IQ^Xh41v>8H%Rer73h zY@rhyl2kQPIR8_#9?TiB Y4Lf7LHv`wu7YH?|V#7{%g!1qulF}w1lLXI=k;t+Ui zX5>JM?sP8!+l#+XB2YPXkUF^9Xzpt=zz=ADX{kK=_P|(baJWQ|Zq_XdL57IK^GVdV zr4CuCyds&3WA3d))?Qv5!JZO+BRqx_Z!#!rK4 dtsV50j|{t9K@J4Jm )@}`{?Tst!dAmJkM?6dN=Pq1cBmEW+elbEZ+#d4WjuD zW}=P88Mk0RUHX$hdguvG;#u@iq~4GRPZ5v!fB1$j03-&%_3D2+?EY_h4ZpltcK!e@ zFPl?juqum{PwCNbQSEO<;`WeLbsDQVs+29?E6Gm;&T}sdHw7)!)0{YM#V^(=HC}Iu zl|I?6PlKv#KKtD^#(DrVDiNICQ-T_n29!QV<16r=;cXF%q zTs^l?dq-v7f7x6Xf3G)`Ditja*9IA0*d^dJKltj;ti!>;C1CeU!D6SBTJ{M<{;4_m zeiLM2poruDHLLcYkNi;+A8P-i{5seJo46PDuY9#uvi1DeRlhv<&jz_GIQN&9^~P0o z48X;4-pP|s`R$a9V8{`gc)n^YNDpxJU#N(aJS!i!(u=2>|F?1f;M`!uF~7gM6e?RP z;3UuN#(cTayZMDA_Z^NLjziCt<9tC{sgBtH*;i|~TDNsIUk0u;W$<+Mb6Mw<&;$UW CjY78o diff --git a/images/authelia-title.png b/images/authelia-title.png index c56711689a2b67f3b84bbaa6dafe614dbee652fb..61e891165e741df804c62afae12a9176ec4678f6 100644 GIT binary patch literal 33602 zcma&MV~}n^uLk;#ZQHhO+k5PpJ+^JzwrzWl?LD?_>+bKI@7(+M)~cj>byZg<={)JI ztVAfvOTa;6LjwQ+I4Ma{WdHzJ@ZUHW68s-uXKMNP0z2)gs^P3`=tgMoX!qN~+LX}Q z!`_t8)ZOAY0N}n}lWvuW!v!Dw^ML9E+S@ #9658jUoNZLTAdyughVSw>1A{=^oA2*Krjd_c9t6R|$7$MuVeX4qhDgZE z{kv21%iW*@z1*9Rj{c2>gN|>5;<|pH#!bk*`_8V<=Ycp`k1gU3OxTlN`Qb~>#l_9n z`Y&sz$D6kNn}?f^4+^+Xgl}b;Svjrql$A{58=HHNLk%7e7KBI3T;H6_7h!= &0gT6 zoy6XND&7$KY|8FFY)%(120=klLeL~=v~W5!DZ1fYr&FqgF`)qTf)nM3Qd%ie9HC<^ z=^{>NpqJy!++3BW!xh8ucwtG40%uDRE9Gh}u+K;C{<%bAHPK9GEN0V|h3-MEi)k#E zrv ztKIvI}#xK1-I?Po?u!^=@9f7d mGhJ}lZE~Fb7b+y=dA_1qW;+G1Qnl+gT|e;LLc92@p6M?X zW`7DS&vaWpRVNfK^VAN^ZwO>a%TVqzl^S$Vz;5&cRE1~snmCnf)@V-Hq81|*nS~-T zMibSeq5mc|Za!*u*`*`_EWT-6U{HyFa8h9OIt9u%XI(zjmaX}O)pMaea6FZb3qG#9 z&8l^=ixch_mazj;TVqwj8?g_WBDEL{SE`DvQOZj2%4V#&IaNL^xzEoRv%41BxwfmL zG&DWQe?V9Zw47FwgQnJXH70n;muK)2q9eBX(rkk4CzZ3B>}I-xJfkKm|28M~`8;%c z mu|{H2={^XiU`weJTbaRHTpGDFx+Fe3vu^i3$`?1q)IXF^FW_ w-$&Uv`%dzQ|O47lEJ~O z=|WM=qH8!|Ba{R(u+W{)STd>0^%zG!A8#ueXJcvkec<2gtW6iZI=U mj zsQ5IKx CREk`N5Afz?-ugh1b0>b!LRUCPK9BN`=Bk3A8ks%JS0Q zMO|UOd5i9NZaQLzmY@5={=H|n+I95T^d((<1R=N8{F-DB(w=Ci;+goD%z6=UvRrkXWYsxD!N4k&=f$*?qa3L`gv!u 29o3)+5=3gXWh$Xn0Mx;H0MLQ8bNpoZ1Xe{m! zGL#N_AoE!HCBmge5Rj^86^`UaVOT^dK7o=`u+YGG*03s=kDT2X?Hw&-SkSC$ K>E2TI)B%@Xqi7d)MB^cPlPX4<7wzn;84z>bX-A^xV5@rV770`EYJ#$=X=v* zu4;{lw~7OSNf}xSIh{`WZs<60J 34b_5o0DiINY$`=FN;PRPHNZ#`6{6hFd!a8 zE#4{vs*PP}xSO{YQP%=evH&XP2}$7SLv}DXA|Z&R6%eUoeq7V1c3^h>LD2p<*_F2T z-3A~2hkr*$O3xDPDxd- p>)t1*uV$(Fh= $X2FJ&caj++CD6?7)Rw;z9_l#Sl*Xnt5IBT02=0e=8d=Zbl-EG68(C78~`2jbQ zOThkaIT-VBaiCxsD`BZI$#e28ixSygKqT S!X=^pA zeLxdo!t{8}_JSEQpRt({4b})8K)90V#`C@pCBYQ0IFm}A)i&-)=@_k{q(Rv4O3Q4q zP#}DQCu#ZSui|N3YRWiVB?!)R2~wwF)Vr{T#+T%>s$~N}ufj4zULkS^Y`fCd?3V!& z&M=Thsz8rx1@t^qnP7v#f0ajDHm}>=1>a<$VL3QWJXc?A=BVe4s;yUEN^1te=Sjie zBYEI|r ;Pcvzl$JPIZM5KLx7 7#A7gD-XIFhhGF--rz@tYd>i=ba^7&mxAC7FV#g!W`lNU8V6ohyhM`P z>x=!xff|8uZN2u1AR3^_t3An%Hcsd4?uKo0#Dw%z)uDAI-JYvsLF2iXlAEGTVDw>3 zGM$*2g3QcUR}Lsjw@u0C2_+?xKqC&T7{k;yHnA6&5zO?i541KQck=JdK{A@MhR&u? zw@f#~G`17+P0{77xxP*dJz1x4FO*2Pp77Uh2nBm({oxY@1NCQM9Fsjz66&DUE4)*} zHs<8~gSi|SR+PsvMtwc1Y$};;-SjHE7YoTV4r!MjlHU9toK=MY3kD&$-mqXeu!|7^ z;X_#)b0+Y6Pd0&$@lPZ_pMgPxAf(RIPUlz>Gto10$Q|eWk4>uJMWOH?=RNZ{8@`cT zJAbie7Ny<5fuIPUMGO!)k;DKdW5kjWMm>I#7Szp51A(5sbf!W#Zu|oa%&6pt)!1e? zHE_>H#+07v5TSmu*I7H0!d7xJM*gZISvd2>H4k}NYg-VefhqEBB8sP6L9{gZ$yLVX zb!u|TH911K*#q&5m7G|vZN>Rg4%D?h6Rq?!qXYe0&^145SyfR dM0?V^h2jT73RcS@yZUogcKI+S?8iO!yWn#H5~m;N3Vdu&Ift&aQ{SzI zdfN5OJ?9mvoxBTVT~S@ZoS*i!J#cYISqS0C43tf#h#+nj`tdXW2!fKUv -1z6G}+QDXIs+V*mhz04Y%+RrmGF9*=H4Q o-e VJ~0T8!7E8*V`EcSmA0_A_TKn^a+f~10!0Wkoj8l~r~^*=&k zf`Eb3QLbAD%>4je*XO+$r0FiGYXu9l+IpIn jY`{qkq=FjFG4~ zN6>qGgMTb(*4Aj{Ip^^P%gDeWJ$4)4v-G9W{#rIxx7)uZ??*#(7S-@R72PPkAPrDA z#HhW zdv=ra>wDXsp$e!Lcd;NMBR+5y{+Jed1<3HEw9#7HX8u)E7| zfFW=3cJp-|*8X$$#M|b?@%04)ix8uTQ=wGHA&7Q%n%`yz-BhYzI)9mw?SAj@xmd=p zc 114 f*k|yfSdK2Mhz`W zEDF5XRmSLat_rX3%6ZbWPp0$H+m`ZmiA1jH$z%_H3;pqe)Ld(>0&{x})Ef*HV^gqz z{C{o>0uFcrE(5FpP7D%5w6{(OOQp}Vp6C1kB#f)hw|$2#KM30F)<%nea}Zsa7s}_u zjX}IoQR!q0BWN)*w>JhKu@*V^#3=5rW_?JPG(?}@)Pd{3w*93la~Jkc(2_R4M0P!Q zPfXCP{ts4bq@aR lVEX6=M>Bh`IoLM>8!O4=XtXz(MHJj6V4x|w5R#4>bWzg|p;o}zn zs#+9`V2YM+`m?tkSr_f%>N>x+HQtQ1sM&4~RVA-8k@mCCN3^4kU{4$h*NK?Kx;4LF z`avhzjo*%wgsJymD5C)~L09sibbz~IG{l%L7W>1IeeqQ8oa^{Dvo7iWDF~6fIuUB4 zy~e*fE7>DnG+)nlow#U|`d5TVtbT$~h*)@OUP!@?A#6H#ype0sW1w)bgI~uS76w@X zy!H>H@Pihh0Q;8kR#P_dG1hYZe_S_an!fMz{zB|9hwSSeWu;cv%a3gW#W)AW{R%Q^ z*0F_eNc-sh66hNA8!2g{F)I)^52p4LFw1ub>$ds9xB(Hm#>XqXX^vPW#6s;cM*`L^ z@eGZi(vUA6G!Ot}* e#-(UYdf3f|5G34S_JvZ`!vMz zd4DZ|RSw6fXvL^pS7dpbh5FilsUU;MDlRN5MKfYa;)30>1q**|_%V}Hz0( oJAo{p3VI i1!_i;=EV@ZZ2(1yBTB3_yPS ztOn*6#;*YEaqRI*k;*Zy-+NxZ(c*Z&wOe`HGV*qw2!jSmS}SELMjZl`G6NLeJ6MBq z=hO2aIga}nD5XUTl)`MDkXjL<>kVZD;`n=Vi}at#Q)x3tBWThd+z9;KGK|;j0e4N9 zzfSpFqaXSk5#0Goi@%F7#cL{&{|ol`ra3ObMaGCOf}vpJLSXR&P1u761 6V>4gOp|j^G4YOgTceLg<||_|G~mqfvp<++<+AkR{o&> zPQ&F;B5?V9f3WE{cstl>-)oIup~9CdNS3SZiG;uhSkTwt(ghQoTA^gMuR iR|mz_aa%1J>n{orq(^LGL;RYx7YP*J*rZv7ND5H zj^a*1zULt{(1&2K{>vM={iNiiyQS6T#P#}hjR6z8l10^OF5Fn6O~SlgR+i|3MgEpW zi+`>>zZ{KFx<9_&t9a&my35^mksjaU(!%%oL7(O3b%p6)gqAs;HGR4#X}@kFuv|&M z0s4knJp1 !bxX<6Y1>uw9)`QUKH|Mj11 z0*@JB9t*~Q1A2`9`N1wbc3~Ib;uPzv_E{y7SGXMxcRCQk7=h{!GXn56zw?0ce>|+g zOZU#;hrup2XpZEj^Gd9zf}3n#V#4MDnUN5X$XzrSSG4>oVxBW+Z12ju>iW=ZGo|SB zHo_atb0K>;nLhr{*{;Q1xos=r75zL&^o##Pe)Z-oZfpW!IHRYKw$o3qLE_9-$nt&7 z|D+<;jllUC=$|?uQ}ny?xr523KXwM%&9}~5?2LzHYmzj-N?tdH$%iQ={mX1+0Mop? zm >Gih{IbAqZ7jA>w^$={XB%|+8_>Lii*0-%XHw5NvUauL61~i>1M!t_ zWM1cN&zF@A9xM3xpVM}4dp~bzxDMpH$nzX6X&61b?!W3ZMqCIyR(gAbFc)c`NYFuh z1_L476pu9#L2t3V$;}&qW1s>5n?a(Z1HO*TzH=b(eG?_{eWSnWNG>tY&GOlY>}!PR zY!Ry#R&N&vX)hjT(05O$WOFBCXnB3q9hEUa@FBXJNo+pOZeU7JR(WN8r!>>QjUVV% zGv>kVHAa)m?I73zeZam$i#vTVB ^FqCI*W{ym!%dSepKZact zTyvCp8QgnDqQ;K_b?Q7~rV!2Je=rIvA(^mgkU0o#{n_W*10H21IJQ*aR81jTUFewo zR{o}e`19Yj{fr>k{$R!Z9JgJrt|2%xtJW!5v6`>q=C}_klo=xD)|GNymZT!RaoVFq z&0yl@v{;~=Dj96O3 A)V6Dt!dyH^-OD6EqY^|MU}*v>-iSo}0bYZe6Z+<|ydAfbqYEsb2wq<1LCl zD= ?Y8`OOY?X*gch&Wwg+Zi zWwIHXaF(VJh;v-PLjaFuZgV_m&~t5}ut`II{_hIEy}vxy`vqPErnCKwA~E1OcyQR* zC{ 5(Go00532@ODII2mL7ewIWpqzdO=zB2E* z1;|Oj?wt38p$1o=I=-o`O%$5GAdG~aEH2Iu Pn=aUM09${nl4IJq>;mu vCFmD&3vOzwfN|$=V- jd#QK$YZTd^n>CaKtfJJFHnsFDOzO7+czhla5wMUie?%gJY(J6&I z_wC%}qtw-i#Idkz?>0xS9`j{yB#-<<{j;u42 cKIYE^&Uw#U!@`?gb8>Hn9U%?hVW6bcR+-iPw!Jac0(gLcIjfY4j?r+ zb=fspS6nIOsb)8fJg&xbV+e3jPB%GQYi)5}be%3qO}N%Dm=Sp6)Z;TFCbhVKVvDag z6R*&6biqIUfl9jC(naQO*Pr>)yZMInGx?i{Tdy3!HKh9GeTUG}e@*q8;|^X=ql-zA zGmxLFH Ztzy?(worAINoU?CHglFGy%m$HvJ|!*z@S?=)+|%U2@{ z$~l;Cx7BRI9&&NE&w6_o)W%(m6=wy3T`v##J6901HkCw=sVC6zvettsb#DMf#Qsvn z6h9S!cV-)Y5=#1@earFS6UzGWycoy#Ma$!MDK((b2vrVg-A)3m2l&JiHx_sN7*t8G zSC`ryg%BdnpZzR{;6zJ$xR;h?OOq`;TQ^mI`S3ph@|#ZD>B=h7<73t;ufl?4o7bm; z{3A=jeu-=Ho;2IhM+zjwhsl>u;v_rgkV=#(5RvvFoSN;!z|&gb@Sy0vE!3%Ti6AER zoy;@yY(F=4sOsVxYxlDl3Z}C#v|f?EBX=0v>P6}DdZWvOd&AdONZjqEiqtn9_3@Ea z8b683`0i|#M#r;301x}>WS`fAHjP xOT3@gX}
^G$J3E2orqp$2s37tP(rgm2viGvk{ zqIRfkYedyR+mF{*(-8W;Kg=7yM|@Ly-wUl_J3GG`ra++V z)}#hZP ~DfC!pdztWv 3rJn0M)vR$lR|+^~=lHf+ibZ)yy;TSiXDTu0X?AmYGWM%AB{my&1Z%Xf)% zmkt#?6JmWlTYZ54C9WbFfPyZ2j!h;Q6(MK(>7Jfe le@JbIfMjT@=lE1q9R%S z0+Mrs^JMwbr>FbNy54yh9e{VWe@tfe--vO9cTPfHhl>@>?@S`U!Lhicu7b*&X)i)Z zY=@v6kdUDbLVFN$pm&5jn&(dPw{$w$0WpUv_Dp2mNWqdwFmb%+Ikug&8FO!(;jwsA z7sqXBY+poz;_@ymQLqO+=ww_}PtUzQJ2QbDbCc>2RJ<9nr7*9nM4+(4lQO|WRld^v zQQKW?fR~J`Mmf&?QYb=fB)kblbqe00n89%9Y`Bw?TKu)`;~G!ajn$ou;R*VO6CP?< zXUQAh$sq8XN1n3Xv98QY@;( $*{Fs7hvwzema7 A^uK_GC?Cz0@^-^ohw-mr#^E0P00Zs@#Dpv zJ#rc2PwF(HnEY$dRFZ >w#8SP>K!v%ht&XkmTkLtKK{ zKu9n4NEF#AGsqE62Uag|(@a7Dx;p(qC;IN7+Ws?Y)%n>VGK+-8^qLjee6UTiW=RVA zkNZjezAwwUsxKBPyj@$ou$c(IvI~+M;V}ZKf+|bi+d+Zg~F&t@u!bB(aoz zP&ot$hYT<^KLH7;2cG@VwszJ;hn{ZMG9oU)EjT$`t(EVtRUCDUKvd2mcZEX=L6Fi$ zI_mtZqOqN(F+f__u=F#UD6!dxGAY!XSn0aBwWO{!nO;1kC@>}u_k3BCH%ZI|6$mNu zjBAzr>dsny65kH6j#T1C$!@;ec7d}q1_T9;)VG4`TzEN`f47qm^Y3vmom%;H@tJKz z4*`A7UKsfhzKzTiTa*WrA3o*+ &gsJp)JtV<#Dxk5&+{38Q8U#rK6= zib*@M$|u5()rz@%q7!fd!@Jh!q2 aDakPyuP76TLzS(%uNlb>rWk{MgAzhi}`{;yYTdipO z^FZ-NndQF7i$dQa5dE0+qQnd( Nt{Fj2ydjXe4h}&xp&J8W-59)AxbkiVj zMb}^AJbTMyf9TZ_%1Pvg7m9P-K#N}Ya9+lf9xnU SDL9lyaM(X(bqGPOi#uOLQix z1jU`PCC57vu{0(f3V<;+bi+Zso_^DG(F5<=v8H~Pem+_*9(81#^${aoSL?n}yYCP1SgyLzsNk&Z#=!N>%`6-c zK1^fJFdyt!tIQHuay*dWF>@R9MYt*L@NpsXe1||`BW*ovltQv`g|$(+YW~Ck#Iz?R zp~9&kmXxdO9=4P9(lAT c++jo zuSci3HLl&HGJBFmfJ7cqX1e@Cfcod5aYJ=v`_W^~AAKm4bMdeHf;32h(V?uab#H#2 zW$yjguW{)3 P0v;8nCx}w|}wDIE-%|$M8iVQ4xTiG1BvQC+7UF}6(UiFsseYwii zbdY5J2r3T&w8fY%we8t9O-ENBR>~s*NpSa0o`0pS8{?VF3|dXzyya26;eWLR43Pd2 zh+VVcK4&IzA5U(GIK1C^XQSb~%c>LSBMiLDExcQ2wp?B<+_!YHN1FsJ9#tm*bn@JQ zQE498NKRuSdA7iH0kKAZ*-9u<2m0JzgkL!0$X;9VX`Er F CR)z zjsRm+OPq_Z8Jh5=!zFSpDy}|ltTsH)nY91d)e4+{X-Z0mau4hYx68hpr{VaVt5l>n zE&?Nac5bx3q<1`(JCI1i+}{M{4%zNvJ?l^ahl3|6HESG@JqtpA*kGqW+fZloid&Ec zOUHk2))#o{7CZ7;z(S_SVtWv#F1Sa9`3Z$xNHNH!s>3JmxuOnWT@x zV81gW|4TpEc4OaKIU($KqSYHeyxx5|`*{2656KA3 c0C8#lmO z#U0rlv>oNOVTSKb6NG)!Ev;TJL$J`f6+oC8Ft78+A=9Dwxm jNnpl`~^d9yrCY!pohUR`I>9N;3sV)hyG}Z1#Ic5}28C?tX#@ z?@n8s+eAmNVA0!Qz@tp=>f(ZjDfS?Rm_ZwgR%Llm?9g5 t z^+^-S1H4^d^coKvyYu8&+jb{FTpm5!#A#_G=xYjA0Bq*yXR|{N9o a10&lj>p+7Ro3EIXM-;%^j_U+P*H?*jO=9=6K3C1FQ=C*hT(7@`7uQ zH+axL(4P=a3YA&)^2{IB*HPsOR}7@U=N7e@ff&elYb+d77fKkUT)!(PJQ%nt%|@cJ z>eQB<0@PP7o=lB#bEuw;Q^BMtx?+WJN2|GR-Vi``{vGAUljoNg$Cjtv;4;O+FCrL< zFr_8+)>PFYHRXOx;PemR%5fITw7zT8m8dbEmv1k5yxCy|oi5j_FXk@|XLD_)gQS7n zZ2I)#!UFet!H#Ezx>$Vg+kr*V!zW_L&dS`vO5J@j@~9WLnbN2+=UsawF8)CkX$1uZ z<7pf{m$u67_4#>+K|kN4zhTof(Y&s#c}10SF|fhivZ|GZx$eU3yrmYaQ_ysswDB!3 zsB-_;3qWI{?bT`mFriM~*6D}69ARDm^f26x>ltm*^JEt2JX;*<7nzO5xjnoZ#yr{& ziuiJ9*q7c73HRPG_E+`ZEm{b)#Yro)fW?KxL&kufH`d!6lT&Q*7cs)2#$i*h+^RJ- zLEv^`Am`0tWHFR?9}ig_T8vP_NXsWX(Jtm26Xm@vsil|4?+d&A;ptIKKJCo&hExgR z!f(^_U%VR4YdY$E8P87ou9CXuJ{Mj2Dt_~0@T7vhdA_Gq9n+A`%*l49r5hwMsyyF* z%}i3~z>aYXAInm8`6UI?j;w(-de>D*snvJ9snWZ;y!^EG^Ljj+H~C>?QNK1`r;O2b zB tv`5S(nm(*gwC )Pcr|a<#ORBh%^K=jb|0_9?CMQ0* z7wli4ZVgdA+|j$dnvO#?fw+U$8`Y nV09S*_|Rboz|k;z;c+OG|mn1SLPG z5<6jR7K(1IYq_{ks}V6oI{C;!5*&T93nfV>JCro(LR*m3q}jb`PEQlSB;17Wq1*3g z@P5!jR64-COVjz(+wzb2IpQR`B4tWTiUubw=Eh=Ul6KN8=OXpD(t>#ze2yv)>fEQL ztPVK8TTJPHgK0%Y`3ux8TPjp@y(C}I`wpLTRZRJ-V3n 5>>WYtb6C( zA)g!s?_r-j+uTLXY E#-A0wsdd;i5KqV&Xdw*&V5v)R=vDcXxFHeX~# z?=k$tDk$fON3y9)_{QPTJF*6Y?7BK`F~#G!R_wUF)l1Xne0@Nx38fPefzs8AMN<3% zTjcO|v}!Gj^*x~Y#)dtnZJOtjq@J3I;Af!}m+#Qy@5+#$gJ}`$vTex#jgkW7rtEinshXECk#j zz yD&}aJ3H&s=}pY67l$O5$0l&L;;8a{n9Yv!!>x$& z{R^k>J}7K!qOSOQ7H+WWm?)+cX$SNZQ(V5Wn A{dKZXW?7xOXVp`j))oJ zbTM?6k~TD|W cNqT4ciBo%Z`~f%%H;xoGTLIU&Ir ;z-^jieyiI#)JFlu2?n72UAL3xEi;N(>;C@4t3MgF{)5s3@; zbt2O#? O%xvX+# zV<1MwX$`DQ?q7I@NtcIB8lMS2c)g~f=la0=d0Qs%p*naZ-lUcsTR|L=N29T5Nn2rE zrm1rqNamz|HEuH}_&rw9Z)IK@N&waid1=e7F##c9AU%wM2MjPrve!sr{AE}!W1b4N za}u&?3uqqpZSF$23-k`MB1UnPhWbls7`Zh~3ivQe@g`FekQ+jJ822l|7v>yB&J2+w z&*+%Oo7iE-y*LdmvlD `Q5UiOnx(7$S^4y?C{$ z2AE@)V(*`BzJ&SL0lhT7Uan?z@xRV5{7y7*RQv64yFqIJ9_KAH!l#S^ j}(vWEJ3c#xf13cod!{TohaORutMI)25nLl|p%{_Z@jaue6+1L&BMHwX9Mm z-*Z-dLNHJDDpjYcT$jj7G7}jBJf${E5iWTT0m5FyLUw!o#KM_+O>Q)3XxDciNRRZ! zUHWR)xZ(A;TJxc9#rO852zE+zCX_C>kK`3w`}~&A)~feXKby`Omv3gIaS*b!=-q?$ zWQ`ZxJ7(DIsV!UcsM86FF$kpVYB=3Tt!rG&7rz;`YoT$6&|GK(NU;ZqETn&FUQTJg z6kT?oJq32inxb7m?J~tgN`jq(B6>usQO#ueSCU xCc!cYaR)B7otB N+et0goChDqjo`D{{BSZ0HJe1q=MW&SB z9VcnkE;_a9g^@eTyNyl1aEmHA?03=px_zcS7~DmeG5CgY)N_SE7~r9s-GtTpPiQ>w zAX5P$#lwS{FbaMVmA< q*JHQg2)wb^l{wsIOYXBXtMBz!kLJWVIR23L@L zu)iYb69rjj0WHNw9(0*msW8E)m_W%vJE)7L!dWfE;)X%p3eOgy%>;mql_gtnb9w~7 zq9oSlBLLA;S)M0ZyJ4V##f5(}@zkFJMll0--(*M|$gDJXNRy&cY!fv%Bjg8)KeeP3 zTLli;%mNk)BrcP=F}kkLk=K-wwnq11Jz8AgKh9@X@) J_cTxVI))?)mheeOvx0~hd{FM0 wFJum5Dl8R;#on0gS+VT_|$Q37R5 z0%2d0igP+}6e{%v-2b=YrqRA;wD(W{>M9 Yw;mT?sm$R_d?#SD&pu90WSAz6q^J&*W15b00b3_9>U`#eg2j z_T_V@mLc9{FcKaZ`d%N?OezH;R8D_`a9x`D);WR+Ic3!(=YxI`?*?zq4) nc zm*R`+FPzb!?ab=9vmR8< ziy`=wT&KQ@r?l~JnpQn~)M~CUS(p3GORV?PSh5( ZQ8bur}~aM#w5hcYuzyacTb9U zu;qPz;_On;a+BDu_bw!r0P{h#w{(H(1zfpSru_j}q{5tdp=;Xl >>@lvUmZQv8xWVo7Nl9W-f5a%Q$6hi=Kwy>OCUHPy;nD0Bm@Bnk# zG*0zZv+}?Ugc3!5+1FL>tO^Bi#_IbZ_Pj`{)k)H9Dg%#7g}T;@{!JvM%1ir$!I`TU zI#0PHfL^3?z7Bb-vfGCGK2PU;5eWu;ETEtaZVn+cW2*sB7Kfh$j`-|!j0=voagn-| zod>v}B8zF_>az%@(mw!*7}aU@7AK;{F~C`l>Y-AwpTR&WCDN4 82TXL!f-zC1FlPOSsEz*U!bR>%_M z5%oKu@bq`ufAPp7e`jWVeB m^S)qFwCt?5wGL2>JE=8nW9NoS5#QPck@ z#^pdKHBStZn}u11B+OEwlatj;vU9M`Nber(3SMFK?||fie`l%g7pZCkIb#uZN4rR7 zK;odgFIL6ofhGGu`VzQLkByCO&dkhURlZZpM#V4#%@vPZ&Euk=F4 XHw#r7 zRH r2lOmn AB`am)i>QFCzZ}HQu2r22km3O#+hlfXzS{~WU6Im!@+kH2312nc& z MgMlB%@0pk9VcP6B#0^q8ZMnD48ZV<=8SNwxr)4mIl#ZDG zp>2FYbXmEYGalnXP6iTOb-(7zX6}N80i9Xj9xa1fzR@mf!K+=v!O#JEbzc^`s5HJ{ za1fCa#u+@cZL)t7f)aW7!gXJrCHNIN@HXp*-VSIlJG@{}t>daxgKZmEe9qO=*nc93 zJb2Bt5_mXToh(w>+v)RoK_tKHR9a}^fq;Ne$X*>k;gphR*tV7jUmx1)#;8-krbu?* z;~?7|)oB=j 7#v!IN; BPT$L)a zvnO7j?(RMBbHWB88kK6i>d*SdwIA-QYs89xp%H~Xc;JF&8FDj*WhYAb?}sd#&!-q^d@c>2)~&R+F4n86ZKv_uCaSvlI|z&M#6|%>={`%S%>P zS#ZJ$_YFiP&d4QI3X;;5WFY1&V^nI*kB8%Tmx}<)O3@rwoXnp;JOL2W-C^6uq8c IXO8$DKm%=!DPbDg@NJTRYO7cccMXdgS;m6nUcH(K4VK235v@hN3>jD zjcyn|lR{Qhi25JP1e;QmdU-a6{>Q&(t26dfz_>Hkoxo+qwtkf2x9j76p{nSC;z~6g z|LgCEL%ZdQPtX6Hjd?3cjt3F-%vVfBN3@=7lXyT6w+WkX7pw@sX-caTvI-HWEIj5h;&% z6ShTQz_cR9T`-m%#IH0k|IK1|q#I8E={{5qC3MNxVYnS1gETipvgq(33tnNh8(M^q z^I%{?r=gJyg@r~DpANS@sFu#+__09cTFQHxA3hU4=$x9fU(!aWqQwYhi|XrrN}q5# zx-RZZs$%4 Ru$IG$1B zm7jEvydo_X1-|nAhX;WzCEdf63H2&9@3y#^(4pO0rxiz TS|QL4)yS!W~5Hy0NB(4Z!fpq;??t-+5>=kfTMt^x$kcQ9-B9JR?bVDQ1&On zl&8LtgGVBKZ(iaXfpd8DmS`+zUf$--9aH6bDQz$`Mfy=$0BE5W>?=uV!Ai`e8bCq1 z!F$)Tl|9K~mo(k7+*TOQCZFYC6~zh5XMoJ+6 ho;Nas>AIqMzLEn?Uz)v zNpaFE<8tr8cM+7VvL%k=sU==|r=+0;R}4^ady(78Q5FcCPypn5BkFhW3v$Fs7Nc&p zjrW$n20Boy60a5lSs=Ej+-KKR^ WxWO`IXI3)%F0OnZQz-WmGl+zdi1l zBlqdRE!pM)SJ51 o4g zPGpQ70QUVJCN_n^Q(?}5l7P36^&yM$^%3Pyz<9*rqa;jy21(^za@}SXH+7h4vAw{O zn7t%A4JZ<|Ckc86kk7~;!6-oMbsxQkNn#zqNlb9^+yt^fC-LYl9b l%M&xLQ@)9tIm69NcQQDIfT`f!Ol>vkdtsY>!B; zGS6ksTcj!qGOpbsKd6f_LWp?)v~Kj>NC^j5QxGtnL)WI;G1xPPrM<6*NxL;C`qPqL ze|~JjB;2=+0m@1yn>6L@FvR4FP0L-}o~8zA+&Tq8K^!c<0! rtL3ED4U zlzf4lbMS}pKsD+h;mF*C@oeV}v#Cj xT}?gg(wUH h|rA@p0zP{Y{Swx7$u*qwk-n-LLyk<{hVuBbT zobvQcw!Gb8u$eskjovJY&@L9oyHU5YCB()SWn-T*Q;D~i-9yP$V49WPD~`fPY#Awg z6B-Bc`OFn!lDLDYD{+=n-U*VF6lZx_c5Wses>7Q)t60O$Q%42J2VIiW;VqR4$dGud zXAuqvDOtEBeGeM$t@})0HV2y+Z0~*fph(=t%MO?s)%uPGtAQoC-y%VB-@I;x4kzw3 zN6qaF*_b$<(>QN6Dqw)}?`8u||F1||u?%~CQYtHF!)&=)oo{uFefZlAfMT`OuG$%A zZ>1bH=s54; `88p?^YYntm2d3=m&MA_2IS>kg (>5VZ@?Fw=5Q*# OlW@Y z1RSfQ0PXA_Z7PGGM{x;!Dwx#U-Bq=@n9O*nMc0eIsbj7*EkSlYNuv}uwq05&eCj!S zRaZeBN^{w$VEYue-DUYuEIq^AeN(cHBW0FFoddtDgEsaQj K* zk7NTjdua?3BSe7?!93)PtPW5JweaNKyAlO9KO@x!DsP&qsw$CF7$E!W*pJ(l%pgR# z5SaVaY2!}^4!Yx@>g;WW1W5ADF%}NS_0%i%T2er$X2c%YQg_VLTn6hHIgD`;JZc93 zD$ ?R%~aAej~1`h zQxNjSdkblDb|Ci0d2UZ*BhHRJC>9(mb6R@6hSU%9c%O%OOZA!~#+Iu@voZ!jgyto8 z2m}P{;&DLY6beYFIFNy#;yOr@3i1URdYYZ2P#IwA|A7>wBzwTrVUPW!2WPy-0)VC* z1#!*SMfEnSaNrMTKkz%9+T65+ BuYXiKE2G=Lc92_AFRO1 z1R i+NLotv|kNTo-$4 z-E$QtDaUmf6^sh7dc`tsoge@tL|KeCySs8iVB%DIY34PFvthWU>E&*0kyFl@CGv?j zG1%qZLmb=Cj#FJDk?l+$0gd*#Q)4>p?0bol7bLk9TZI;_0m|YYl8~S{iMNt~$3S{b zDkfpyMT#o1O=1ghZOC#k)NMBqxg%1}^;OkqxhUD+cukGV9RRDjqiN=qFNYA$J<7Ip z!2{&}ycEx|6NlQ(?pwz2*bUPDcQyol*@dScA4Sonz@@;6WhX+rJ3zV<*!S cP& zq0L^E)}Cz(0O~1t<-_h-aotC+f%z{_Cr-Lz#xPSh?c7aeWsyAE;&12>8LJ3l3Hd)+ z!@H#P$@(zmFhB{xBXM&p1I;#!FwR|Uk`dKez7E)s0EMP$ZnJt6RMP0sAQ5TU`zkvL z+RfaIY)>#-mJc}{qA*B3?a-y&thHAv7Er5xWOqasrAGj10DkWSm3Rr8_oB(5173 zl9M3}_3Reo#_lO*L6B;YS*Qh2s5t@Je#i0Z-2J4vPH*q`E%6A7aOvw$f1ZfEK}0SE zR!zhaCV3Xp0pl4vs-6~*u>X!*9sqS0+}lWgG`k|9rek;-7se|L>=~r8ay*!(NuP#- zl)kA`*f~}Pr33)vvG^L5*$!i2s$`;3T4L#v3W10Yd!5LF45!9KOyz@v!b-oJRCg#5 ze|GecuniCipu3a0N{OfM95&g%i`OSCT>5eDCLQlONF`PRR3ji3=e?EB07+V%r@n@k zr+_FW&QFOA))bEw4E6r=+h!QoqyPe@#Rx7OaAWv+)&z$s$?CyG1l==w1=wYmUG^do zxlBYZp}l%+<9Yv{4wDaZlD>s;$_lHiOQkqqz5M_POfN9+_s^a+gN<8v=HaT3ekA90 zq6`lWS74>=MO=_Ov1s93c0M+y-% dZEC8{amETd56EH1o)q001BWNkl &m_V4tXSs%C76 z%VfKZ5mGFXw`R?n6M#1ZS70>%Cfvk%=jq#U)}Xr&i01dz c~ZG z+`40*y@Fb;&c$#2AYc2pPqbs-Y8=9Fr%qA4LYu!Kz>*{8^U%aGK-RO%oLNO+#rfNL z^p+9YTXnX;&GqpKb^ibka@eaI+s@+H2{WZZgb*$2N!kpg;LCIxPkLRMgx|75VA&ms zQ(fiepQr}yMC5I#X6{7US2jc#MzK2^ezz3<5K$ayxXlEzl-z)d?JkV4Wvd!&@Er~` zNpyD5jVBIKAkyiA0YT6xJJv70_~JR;-QE8KcnfgK cb$3LpUNL5{Uj_gg z&M#I6kZf-AwdU)?-;DBGgyQRagxc3sKqB>9VW (68 z-;*<*Z 7qb|+(Ar*ymivz@0 z?3Vpop`8T)XlicH>dx=i*M0OFx)z>h^MG7JN?L4tNmjSAY4eVDjM)J245m+67l)RO z*k>O=^Ps00GxzrNj5PteEC4i=l(vd1wr*~5BXC3;uhjv})qH+Y8c}hi;sbR)&nlj5 zth-Pev1H%Ui>oA+7O@q-Yh 7@Yqh9?4GhWV=CoB zwu5rL{Xzby*}xQ}x3NG7{&1n%RQ^Wv7{Zr5!GFmvX#efizxF+lk|oT!w3U;qpAm0w;p zLAtSos_w}2L^M}!9!zJ%Aq9N~&Xb3RjxfGNs{fP3`ZZ3qb~2EpfkIDFfj4RnKtD^W z r@MR(J6t}MAjWybF!4h?3AO2V<*jJuYdXF zQ4~ESA~#HCwx>1p_eh^~_PdGDX^*me2j%^+JOC=HQ=eY&a~yT#BKFoGzL37Kc|dKj zpIZ=gDCGh*fO~ J$S^t1{* ztjK )dAXa79*6m#Kk?Z$&=wje| z77*+@1U8ACz&``Gam;z~-tvC{X3U+=m;UZU6A6G6*z9^XIhE3K7$9{?CWm>^@ZPjr z(wZFi8Lb {T?Kuwt-Pa+Yw6Pjpy0Z^U+np?yG0UUYkQB6v_K74M5b&4{$ zXOJg<{a8E3Zzpg)@Ffo3sxZYgr2QA*A2{~BUCpGA`d{1ppZW7;CI^ivh}YcXp;k zDQeJeLj&({O_GrVzBt!AF=;Q((hU&;OXftA(y;$S+7*K87l(nu>%J~I#wFDPD*cWk zTM>t!BPF&3K9Fj-r|PSkZvTe@7bGIXX&)}9-<8;krjT@m*RWZ_=w+z0IhuVT%CS>U z`G&yd7rgW$;0D^?xH@qg|3yTWt-blDZ;qnqzEYpvR>peUQsNlp9p|R(xI{mxeN|x3 z7OczpKyT51K5^x8es S1#v=6AOS8Sg&f^Dy8!Nr2?Q-3{fJd{Z)G4#=-J`Br;(ouMev< z`v|2Utd44Ia#78_CF$r4bI@zDX=Mtp;@zq135GcSW0GEV?!-*Mvq*R~YH@m@$srI6 zQ`MoA^AJHI3rZylmYDCtbFm A2ME#iS8apjNGuH5Q|2ur>x z@j|6ZAGu`i1cM(UsTg8l`-?As?|~0x2c8;f0M#Z+!VS}9`6-!3i#T7?GY#GJivwb# z^&A1$VUn(J;ZJe_9>v?YL||xW=>5QPCEUW7R;^lf)wTcYpJTtpM3{$nSx&biPuwla z14Hg6zJEfYdADx|ur2q!E=;qu!tH4B{KJ^u)7=_`Y4Nw}!! KB_KiGV+ZuB^b_Bb=->yf} zmO07y*If9rC93+zC0zcO8#iuz+qHlB`Pk*bL?m$0h;4|fIC*!Dgol$rnpTRc?svbG z{4Cu?a~@DPu&UKAuzL9t`ue8P9d$UHmbL&v*{^7*vSZgEm;K(KwQCNo2fiQZXe--d z;344uZvs9|%uj}Z1n7u_zNu4KJ@)eVlsPHkIW_@1(~9rNpLufJ1r1 H}juI}&BI3QFwAWD3jU|RyGF9rd5-d*dN4vs`sVC{Z2@*}Zu1ga{3d4}Oo~3sf ziROLI67NIpf#*_jaiC_P+O$7spirGQCAlV)mbFTNYvzm}SYf;3{sqx~vkT+Be&QtM zO1!Vd@6ym77fs}Me*Ck?>f)&jxlMx0_dmS(gd>!S(+$2!B`hn2-=CJbc>uH>_-*cc zoxpO8P+pT=|Mwqe#+>PN_jYEbVmh{k(BD78v(G%;uCeR~zC*E? )Lba!<#W9DI8KlbwXG8v$Cz>ci9v)i3rN)3Z~-5*>rL>v3kC`^aTr1V=HMnQcK zyW}dc$X?GT8HyMtPMzA4&d|9I$y|u-L6eCBh~|GP&;b r=nvQ4{F7g%v`e}e0 bVBx8qqFz^{P2Ij}Pa6?ho9g%#&FXcB;OsA{K1S5)bYgu|wH zGk@XieZ6KEFsFoPdECw^Q_ Xo>eoyGf+49d?+NO5_UQ(a*6w? zI >eyhYC@1gFo`i?jD+qHoINJldCR?%*a_vQj8vSl3=$z4sCZIh zb6$$%yDp)g;;r~6Q>nm1{YI0XKBc5ATKQum%`G{EV2Y4wHI78hsTJaP>`n`j)kzyx z$?~Y80}BArO?@!|CJbrU7!v||{-hQ L_A6d2MOfP7x=uUZMjh0ovUbygZno z0*pSx<~nGXz3#;`fR~hT$?Z3N^Ufz-s4tF2TPO(R>U}BAevjLzR;2*y$o}1F)WU1e zA4)wI0JSVFI%er2rcawnXJ=G^tBYA61qNy{>vs+C#ItQHiGKw67BF-Gf}h>MO&DFH zCQ81D`ANR+= Nw- z+7CcJHT59R4xXZUQ`}R}%(XC}t^MqeGy8(~9}z!K(P;r1MbYW4h=={OG{T@x4qgU8 z_OHq4c$l~J9V8MzP8d4Pj1r-k4H%ylah2 dl28nR@Znc$1S!2#JE%L?n zCH6KI)$##QT1BC`2B>xpX=k`_g&S6BK2DpnqBKwfu-gkPkw^-zz-;Bx(+=oKVsR+) zNw9N7JP?*t=ZM0ZSD&y |qNcp`#Y;IU=^QIRIl(_R2n$0QQJ4!`ni1#q-wSPEUD zQ%+dHvm3UsXU{No^*yU*G?Z @vwK)|%#qwaZpNhTwi&3mYSrr0os^^otrmb}7tW-2qF{?V(=m-q{*8tL zU+$QzbEwDZ!EZOhz^cn8!CA%M*~FRWs$RWZ$?r&VFpQLv7m*+!EOC3aDHA0e1XA_e za=Qw>$$hEn&8m8G35W4Lz^N0Ae6q2QI)k&tB9YtVfuuo19LJ}Wp _KRgv|To+bRedg;z>4hG>{UplWOWJ zq^FEjd{DQgZ|Xu9b%nnHXTGZ=C@CVxmAXHvq`85q-c! %Ou-U6C-YcN(jX9XI<^76Wu7@TU_ro(sK^iky=8*aIKs zT4X18@; (LfS=8mFx=yn^elo}e!!<$@E2L83J5lIGwf&__e}L61DSHPIw= zC}CiTWd69Q%N~Y$FD_r%Tm^Pew z=S T}+=bjnDnn z`}XG^79M0<+FTy~W~bv^Ws5p;Lt!N!EGlVVs|2v7xi8|?TbF&dTGq+g;8cSvKzlAw zqDv&c_D!nt5o{-p>`IEAgx}=- K$9=fBkRD@+zmI6C=?&9A29&6Y5?g0KC(^Y*k`Y 9i}L<*gq z5xrBUvG9mlZDC9fGM{dKMy9I2xoDu^g5*2Wi; ky b&2R_B@ zkDx>XJ)ND*p4rC<$1UIA 5z55%)M+`PSuTu*IQ%6|O80~a1uK9U2g}4U*VA+h79>a_YIXo6*K?Z|Yv~M- zs>X8o^I_ieVD<^f%;S+cCk335Zo}k>5pfhvfJk;%9UUEW%6;$Zg*p9RiD7zyxykmv z=%M4Jra6;Z@IUv@Mw{8|fuGVGK3Wc(HroIF>|gvL3yxX9l&)Snyd}IB7Rdf&J&w8S zo(Fi>pMJVsEX(&{e^O*hu^J}t=YCe4uf@QpN%1gUEKwBEci1!*EL%7p;X~Kvu@^?~ zKm|amnQ~~7%o(b+fjg&N&pLgzQK 21TC~`}~y(e|sE2^zh zQ!5}PQMenCIPKk*Q(bO^Awe9yXL}lEp^;KS(1`YLg@GL~yc_C+=+^rtfC!p^1nA_t z68XZL=I_IT06$SL=S=edUh>)#rxA!G#RuwYQ%Oz-&*^DYQV0yPFxYds@6Q5WiD{3~ z($0L|N~SNE!IZ9^7A%mqWPt$sM{4|kU-?eE#<`#NcOBnfi-D&(?);i_Lg#=_GyX}~ zpD9y%nSS^z&OCYL{xc;9r!DYQrv+1mH5&dd2YNL3KU1r^8h` 0apW4*o(U zPlYMA(nK6-t2iAj)sXjOePX9kuL%RiSrTU12Z0tRfksg@9AZ1tq@@KeVi%`0x- qKPMYM8YeW*#4Cr-*&A7=<{F%aw3Z$IH+RWawUrijv$9bp%i? z_)hf8l8SQ8gCZ>t0D;j1x*tCfom7JzKicMf?fZX+V-_!9%B=1dxj?P9qU=|0+ttr2 zE`2u#wH2y8Q_%c0D+%oE?4)N}AIHpD%(d@*>;40UgVPpzrJb=up^Ao4*mV+*Tz_6{ z-<=>hEOr_zCZMCU8y@-g#7%W|8nxMbl$83Gj3U#JnJ1BDf5??Tg;7J1IL#7s{GRki zM#_FOnkJ^{|84KgqwK1xH2ypHy;oCGNyr=^10+lxWKu>IP!L5_K#fTQ+Ji#V*y`$b z*{dCaw!6{p)<(c?kyg-zq$&jn1PLS}1duQ^bHXHHu27JHNJ2=eQg` Vk^(GIt}6f4{$DfxwIfSc1C850^i2Q5}iNF~mswp9j74Z2lLUj%3qa1**J zEE_dA4cKWM{nmv)V)EE=lt$EB&CBSU3|Uuo=N}$n-uV{}a}tzsd$t&{?fR@!Ur?%R zVDhN3+`8bRiV%fi8v#lwYpoY3%8&Z-lrK&P6Z89Y01 {G-;;@x#!)H+ znTQ8HkRUq>lziV6hBWPS@^EB7nW$J#4NtY *1RM%Ph8u$}lv9 z!0p;5kV&Mcs~OC4yNBD`V7z3aIi$Y2t?`uTR1aa){vnLTk4Xpe5RotuM7w3FiAFpg zAIhYn6nXklN0WX!{StEV<=2O}E8=KY5#ckX_xiR-W()=3PLr}OY5idG{5em-kvVD7 z4n&csCt}J7GjaW9YbqTfFfv~}BdCLenGV8>Vu@}J&QU(xqL z5HMy$6VoQ{!PS?3(-WY65ul{%DQUi`UwZT6xGXO&Dw9D;@h?$2(h$ZWpmFZUmnm{B z7U8+2ReK ib3qW2HAlr*1)*C1lYZLNl7b~H}8ldRCkD`|5mkvjV zo+R`TdQ#|Ar0LhDbXw90dlr$`F+x`nl}ps6XL7DGahd$zj%1?*N-1aBFQrtIzRJ*) z--nSIQQVl<+<}7YtBxA6B6fRLNuohgcJc{D6Za7y&}HOH&^^MkQJ_x)hxPS;tz7am zMmCS4p;XFDZ2i{*0d%~%k>fsj{;phSf!czJJ7>sFFX^ul^>s`bJ%T%K`e~)lW4IEa zdY-#=53!BCOzQ ^sr`iRcAC%ufWZ;>tw33M|Cx(6q+Up{LoY$>`k>iF6mK vCq5&~c>&)-%^5g#k+W2eDJHPv(2;Rm`nkKtMd4=_bx?WRd` z$wp`Ek^t?U6f;D}4osJ2lLFEU?EcPKhX74YNEM?$$*x+GuTiy$ xO6ba2M_9L+sPjm~yFx=$uu+z`|!fB