From 3c425d7a6f7f07d6c14823796f70e73b582ca102 Mon Sep 17 00:00:00 2001 From: Tien Nguyen Truong Date: Wed, 21 Apr 2021 07:32:13 +0700 Subject: [PATCH] add references --- README.md | 33 ++++++++++++++++-- ...ng-boot-refresh-token-jwt-example-flow.png | Bin 0 -> 30571 bytes 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 spring-boot-refresh-token-jwt-example-flow.png diff --git a/README.md b/README.md index 15d1cf1..1e099d4 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,12 @@ For more detail, please visit: > [For MongoDB](https://bezkoder.com/spring-boot-jwt-auth-mongodb/) +## Refresh Token + +![spring-boot-refresh-token-jwt-example-flow](spring-boot-refresh-token-jwt-example-flow.png) + +For instruction: [Spring Boot Refresh Token with JWT example](https://bezkoder.com/spring-boot-refresh-token-jwt/) + ## Fullstack Authentication > [Spring Boot + Vue.js JWT Authentication](https://bezkoder.com/spring-boot-vue-js-authentication-jwt-spring-security/) @@ -31,19 +37,42 @@ For more detail, please visit: > [Vue.js + Spring Boot + MySQL/PostgreSQL example](https://bezkoder.com/spring-boot-vue-js-crud-example/) -> [Angular + Spring Boot + MySQL example](https://bezkoder.com/angular-10-spring-boot-crud/) +> [Angular 8 + Spring Boot + MySQL example](https://bezkoder.com/angular-spring-boot-crud/) -> [Angular + Spring Boot + PostgreSQL example](https://bezkoder.com/angular-10-spring-boot-postgresql/) +> [Angular 8 + Spring Boot + PostgreSQL example](https://bezkoder.com/angular-spring-boot-postgresql/) + +> [Angular 10 + Spring Boot + MySQL example](https://bezkoder.com/angular-10-spring-boot-crud/) + +> [Angular 10 + Spring Boot + PostgreSQL example](https://bezkoder.com/angular-10-spring-boot-postgresql/) + +> [Angular 11 + Spring Boot + MySQL example](https://bezkoder.com/angular-11-spring-boot-crud/) + +> [Angular 11 + Spring Boot + PostgreSQL example](https://bezkoder.com/angular-11-spring-boot-postgresql/) > [React + Spring Boot + MySQL example](https://bezkoder.com/react-spring-boot-crud/) > [React + Spring Boot + PostgreSQL example](https://bezkoder.com/spring-boot-react-postgresql/) +> [React + Spring Boot + MongoDB example](https://bezkoder.com/react-spring-boot-mongodb/) + Run both Back-end & Front-end in one place: > [Integrate Angular with Spring Boot Rest API](https://bezkoder.com/integrate-angular-spring-boot/) > [Integrate React.js with Spring Boot Rest API](https://bezkoder.com/integrate-reactjs-spring-boot/) +> [Integrate Vue.js with Spring Boot Rest API](https://bezkoder.com/integrate-vue-spring-boot/) + +More Practice: +> [Spring Boot File upload example with Multipart File](https://bezkoder.com/spring-boot-file-upload/) + +> [Exception handling: @RestControllerAdvice example in Spring Boot](https://bezkoder.com/spring-boot-restcontrolleradvice/) + +> [Spring Boot Repository Unit Test with @DataJpaTest](https://bezkoder.com/spring-boot-unit-test-jpa-repo-datajpatest/) + +> [Deploy Spring Boot App on AWS – Elastic Beanstalk](https://bezkoder.com/deploy-spring-boot-aws-eb/) + +> [Secure Spring Boot App with Spring Security & JWT Authentication](https://bezkoder.com/spring-boot-jwt-authentication/) + ## Dependency – If you want to use PostgreSQL: ```xml diff --git a/spring-boot-refresh-token-jwt-example-flow.png b/spring-boot-refresh-token-jwt-example-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..5f3d258a17cb2f9b9ea743822f2661c03e860f84 GIT binary patch literal 30571 zcmce-cT`hd_b!@HLXkk|y;r4cq?Z6eu+UVB6sby-Dj-FHB$N<3ND&1Df`W=PL69Cm zrI(0GZz4^4@8oXY@B2;}_x#2=_l|Mz9}FNnJ6U_KS)TdKXGNPD8$juK=s_S5^r|89 zCJ01P4+4RwXeoeK+Jnzi1HZt&Hw|<_CB1x$z&}*3Iz~DmPPi_-gc0G)5!9B-&$jn$M260iW_>L?A1*+xLNMJJJGT$G|pbq;?SiPjxfX^!(qT5 zEW#wA2$(J&X$S{ig^4h;K>xWM@&D6hr2K4tqSoP5IFp?1XYbig_W27ee#iiZu)Hj3 zZp+fU9-f|!!3RF&{E@K5?~#P*R%y$@%k@ER`LU;`z0vlEkG`T$w3$vi$hG!g`v=N?Jf^fE@HyaCkH{`+^E@4gLm~NJTyW^G@=*<#_9s(YgIvp^AoAZH%!c}+H+$R^btW9YJa>Db&kwaC{f z=YrLgPv?v>xth?ET6mT~p^z!!uW6(~Hx)6F&TFV_dV!Q*W+wDVD9!=yK8h>$9r|;& z8`GNyXl@HtuQYXkLSeru!SU|Ox28kO^Eg7Rda$madVRUW9{x-gH8AGWPRJ;>sTLV_cA{b8!#w*O zeDE>TGvWGkxjecSiW$ADh&I6ez$wirb^m3Af(8sKTcPG3_x#G;(1Uw;-c>t0JN~d5 z&WzVcJ>}HCP_KnA;zi@rteRoQFeq;T-;c|cp_lxJP%L@GAQRBe=`m2IVGhMK_lV<8k>0iB8@?a&3-| zZthDIle+io!yV^vF-aA)`LonMa#xwFy@$7fsY^~m4DMUS{Nwn%@vrj$1lic&HPs%;-Gm5K^1a=)Z}$Nw^1Ss?f1InwEE6=3w6Sie3?s%|F4n^$g?{cYK z;0aZH(riy|5)H4$Uu*fzNPvwqmeRYAf1C|yI^us;J3BH^XskmumE*H7#iMn+u6OtE zyeo%m-z$9%?dR9~3|E%Bcm;wUIF65eYR+JzFRkC~Odd<4OO5AM%2E$tB!DTXugz{R z4oL94WsrHd75dFiJ%Erlqxa4`Sc-*#f`rjI%MfXlmx*9RYkLNRdz!X)o~~?&m0` zjimkd=gKg1@xnb(Uq&u4cu0hz|G6R`y}$w_A@Ob;R(y67P9-YW=JYPDuW zDxT#Avsrt=jMaqv_KPc=P{F%3hc)OY3V}AS&2c6+xbxJ#-{m!)>Eds|vYIaFr=3-w zovcLx#F2h$El!zyc(gdygNR1leLLwPz(o$8yv^nNYSN*Zu4{OUbCgsRE?!Nei+2ZZ zwln)2#yq6sR&Z|f>&HR=&mpWY-kcDoOX#kL?IHKrUi-U`8yD)eW#)3Jg}%`t=+K&F zOdYSpIGtlo|6Keu@xVwkcTDSHqk5`HMWsFbxOM7kGcV!kHFy6#eM*Mg4@6az?*!;j zP|pjyZw*|{^ee0l$Yj%X!Jd6aSn<&2y~rira%y^|^o#Ys1trnuNQL*6Te28Ge{x!! z*U3?!r?t!T-B?_vCogNgaBbd{U4oIp%+k4_3M4>`=Z{ozR&pAF}Wf)j#pn!L^CFe)Mn^9Ic>qek(s6#I+^t)ZwuWQ zzi4!%uea{G@T$ePwUr=L__a&;1+JbJK&v@MqA7+J0X=Ky(#Q>iXc1w!$Cq?!FGCZDJQ?;(dJN93` zWM@{URudoO#yqIpVj^hjFsj=YCgFCO=_z)BBIDYl3g#E$DTKT>wg9O}*c~AthmM$y z<*~icCkXfaW_$w^Id|r|>M>{TUcuO%Mu>B=uwzOqU?c z|D7FLK$o*^FK$yF>!|h0yLyHOk{B(oB6LZJM^hJc{kQ;E1~$QQ zuf(qRum5o{6Tj)LTfXa4%~N6EtdOJKNUQ^*Fi{)N^b8&=?sHmdBKZZYdcq_M>n0yf zS2HhQGs^Ckne~&LOy8goag(tQb-y?j8K(Rl`xBWLT(ME~xStCV&Nlk;(<|SuxYChq zl2Pp-*Xoin?b+uxtM!emyV`fiCt87#P^M!!0+-C>E$I(7)r>67O);QgZg9BchiAcr z=3I+htga-B?5)yS2T&^ogV_B7mrJO8;(Fb>4@LDX4drM|sQ_*5R9eVlxdZa$ZyjlK z!)XiQhy`&&cq&}d!nnBZ#N-`2f%^0?=Y-qI*6(7{+B-_n9}0~~eM+6QK>d#+S3zd9Ab1i6SJ73;6xK2NunwN`p#@C|J0u%3KQ~rYTfA|K&sMwyK z-k6ze{-Pz%qZ=oE+Pn+l!Ea6r(e)cu+Pde1!|UM$ zcD?I0v$sZ98;0X=USwM1~8e(Uom3AXlG-VQ^7jH2cp?$cg@2 zh;`SS6dIT>YBdBq*;#--+M4;qs(L%x6ag1<-O4#KZj%$Mj7GoFc@9N7{GeevKkr6onb-WReIzD5;|V{uxtv!`c6 zm_EZpQe^|~_JJdTj@=kZ$cuPO9?qd&)Rv;t*Bf6!xBT}Dv_9xcF*c|apMoHzPgB^+ z1wslf<9WeH%t!EZ!V&FKoqXcRXS>Vd}{-uq&*6ngjq0p1sn zMh)%flPd#`6IC2!fXZ9b^NIzUnV4Mi;R8~HYPW)I_w9po_oX%Q)pF@F!`D<~M5h0k z2F~6K#xyQdEP$6;&K-`-sR;7Y4`nH`KH+lS(y{+CnunQOYgw@_i+r@{M|f!SIz@C>!Hk`Q5 zD(o)!jp!ha_)S%rd{0$~MREo^Ygai((4wR4o($E%MuEX7pY%dA71x#oh0k_jhEo@6 z=p1_S5nu-gJ}%V98PJrgJbDwg6V-ytnswyYXF>pYDjMh4UVT{qX?eqlylYR%pH%;Y z{M*+{Q+XmjjpntQb~H;Mfq=F8{t3Q3kb=+g!BNY_Ibij3I(29@`pa~ zK)`8v=43!hJw1@_JS(U=8%qxMwrp--Yvf9p&##k{e7}E6x9U9*J&0&i_O6j8{@&w@=f-P#`g51n-NqhV{FqNmHh%uCQV zLLI8oqC!VkZuu;(MFI{;h!Q555^U8TdoPVE{~ABErwD<`nljj|9^QQB#sIl^2Tt?+ zVupwJ3vlXZ)RZ~2Zd)V*rU?QbZthFW-`Y{K%Z$mX0*qc}J)d1s&Klt17OtID)A5&= zd#@3Pi>3EW>O;Cp$xp{UWCg9Jc6RJf0s`r^6Ln}wHUG|n;TD3z7o&`A&f-z0C=vET zudw(mFmity;Jfn%EY94f|F0BMPC>Q}g{4r?j()IKYHWhRISjsi~#^rj|Fq#@&cIDsq2>nJA2wQS@{oE%tu)L+i)}|M^O;4w=FCf1+|WUTG~J6k7(CofxZ(aOA|&3veaofl<8tTD zi(B-}u!_J9r$HmUj3|Jv4tFD9Z-6Ab{4;W@@?;@DvGW_p^)cFeAr3LIr+~@!WYl{Th~u@ zYrd~~33{AFxYPHHlUuBakXKbzg(jcA-CZ0g{P^*iF{lpUxwe^j;BVi(qcaYzRP>%g zRDO(Z22hPh_sh#}W1k=WfSQ||OIv*K238k!BL){v!}MKA=-iZ`n%~=^Y6{2cz01~D z*mUu$_W-KX`CHudS6oaC{XDyfy30*?|LSP9*R5NuR9}c#N?{&{OQ2#rHs?8Cze`Ba z3fQPdc;L^%bStp6E)faZ?K?l--3m?+lUMrj^JfhNcsdDvN)~PHOpqzVZ8{E^sf`V< zx|0uFy%uc+42n3@$l*{HQS1>HO8BL`a! zYZId-IDgz**R!!aZw_JLGQH{cxKBvsb$9e>0PV9|1T=4Gk1&0yW(KXo!-o&2=IdmM ziC)~ba3E?$eEt4ZHux;IK4)mDk)GGB`9t%2JaXkny zg*(_(sd6c~XYTu=Ql44Aeab+}xBemcwa|~O@#)hi35vt*#nw9h;U7PKz)}4|cjJkw z4r|W)j-##|n8^~Pfd#h(JG*L|9CwP4NEhktliMIS+Ya;nl zm`Q_1+v8rQ0nkku3-psDlCWqu1l4&`_k-g7jShSsjrqBPwvV(<-5rX>^a}1qM)4k9 z5SIY=Fmud91)9KR$fvhjcy=gP`rxw%zUc5p@MsBjMVi1D8&0(HBA74z=xg5k!xRI1 zfABWQKbktk!#9h`Ki=Gd6{ExC?5?#C+q_~*WI~NHmpPo9`Ll@pDPbb%%uqQ3kI@Bc zv2bn7*3n;OpcEpw#iW`7LeUMpB8;zTO7`33(v2y2iR-?UTO3;{)RzYSjA$=XC%zH! z%d0Q5aAf7?qz| z<(yuj?>fY_x_(nCLIrn432OjLDdRRA$;hhZhu89|}Do05qZXesyh zI|9GTrJNuv4Se-0%eNO*nAYwDj#o^!78T9U4@i6I=YO`(nnmdvnLwqeB#x%?n{G#a?8yJAMB`ML?QKsnGGO4B z(~&&>?cz|W(xMzJ`J%pN`_A8^=Sru4m?+N^eHQ8OPESn}jQ^L04ub^5hM|+Y%tv`i1;dNGBV3_Z<*<-Mp9W;m!ZiAeys)e+h2wFdT87< z`;cKbrz_Ugsk(|bXlR@tKHk}jb+L0l!f>1bsft19X2yyXjCWqX4z=A zGd3LzZckSp5OG+ihN*33o#PFXOPJoaZj748p4RS6eDyc`2kTu?oV~eJ#+IS$M|Eu> zlh8r8^}+NT2=3_%#i^$N|{3ALUTd3t9Uo z?4x0KrmAqYqgt(`2r1^XZt>u+@6O3}qn)M@-%j~zhQ`LzUG1-GVS~j1JLrnT=j&|~ zlIC3YaG^beQqu$7W{N<%l5ql-F7r;7b#pa0ow@})qvwa`AP9fY4?bMRC%MoLJ=nrF zuX2F2TZcFyN;H(Q&-Z$R2P$5D2xGwql@913MAS-II+kfTjZAlFJAbT|+Y_pW>rM!KnG=PmuvSzb~&J>09z3-+62pbADZW+QgJV6is_nseW6aOilznJ<>j|e zmw7!8Zg0|b2(xS~%pUGJiSZz#%jQXf?)xM(y|H<^p6{9-A~Obj&*W#54_x?KggYMB z+1Yt|a#X>NL$3+E3^Z%zN`-p-9i5SYpl)w>F?lN_2o7%6@ zH~_hobuz2@6glRm=90 z#%^BHRe=7{ej3;u?wLz#1(IzQUJ<`>Y&HU5)FTm0HJ#1R>hto?#?-Sc!ctKvnm2Mh z1mnr@CS?ZlwN_vz%bk9%<_df$Gh7s*SN4*=yr_?6-q>s3u{$a^YHniw95s@oAIb%u z@kR(EC2xK}?eG6h8zj%jhhKs_4j*@s)7NawteW@jQwa&iYHU6&_odV zo^FEQ&acvIX86Hg9T}(?df$v|^`8n5--NL7$Snp(@V!oPflu<$b zi*x_HV8e04{rY&E<!|Rr-_(@(cp@c#ssN?v^m;O+z@y;?@}xw)5Tn16%V5v+S{Fz*OZ;a%^9A@FNKt zHeEjv{aD=CVD88xG)rx6KCcKx`bBLWmICntK4QHgue8{u6fl#GV#4DMk0$jEeagFz zdWxnTRzDg1J0y9Iq0DI95Ii?twSRZ7*ME|s64Jq*>>h??{ve70GwtOQKM!#*s=Lh1ERkn6}9P zOrSdjgrdJwVf(j*J8O;k3M+}IFm*&nBQ{oxHB?a*A__5xzCBEltUC84vZ^KT*!kwo zR03)pD@ZeFuCWio<3xlibDI%cQMAC(DC4f5$FUv^&Gd|z8W*x z#eLE`T3G=z-N&kQ#d8u>UZ{73qzrVOe_1L9}dAnIVho_N+Xucs^O6_jI71!#0yr)6(Q0K zU%o3o#|x`R^AZV^le)w`*6msBM@7o1FK`Ekq}2~|gs`Q;05kaW?Iy0;GN zRpCI`A49#V7Wq`Xa~rg$3J0RlBMX*tD@=5f?-wTqU{6I|u$LpPv6Tlqt5EI3J~=oe zc}(H>lPCwDraERE;QB8rZ&nv^Uez*6Lc+GKNv0XWZubf?TckVucct^s`Kh-DsEGlI zOQ6KI*4z7+9dGD9O?jbe7D^Y<;-&2A^A~Jo~ptsx^Ml_dEL0lu;?C` z;@A_mFAlG`+Q@n^^{FrZSR$hm%|9Cs%n~?Qx%buc=smFcaSyi_TqBjp%#H`^E!KLpOT*FZf6Xd`-*?1s?rEFgLzVas-RP4SnH%(()Wx?M zWN7uccUQi`z;Au1n$iTQ`dh({3IfzdabPo@DX*8DO2=GW5?V5Gy!W{FTC&WRQ5gML zj_EW5E^jkp4y9u75`_}@D4z-~Bglugfje$tYz&U_ho(3fG9Bl@>t!(sLW8XhV1=vr&q4c88wH6T-)tHd^-U!>4zcn-aDFtGJye6pO4 zk<*CthXvk{0rl%i(FRtF<_RGj(*iD8rTt-r4yh?SdO=RVs-iP_G0fxYzQ4V`Ji==` zVlHGIt6%(%`(&hmGr~_lg{-e2Gl#1BpW7%e=iUiul%^UG$=B0@ff1(9Kr$s1sLe&9a$&Q3&K^ zSVc=N3Rn;e*m$VDzkA~}4I**BYnyg`KuP3;nfASuf($Oy9)?-4P{4mR#VcH_HRDNT zyDe}^6&yH*n#mXvX_*C?^TA63YADGaB%Dqm|2&8{Ug_KRpoJ5f2P5IxetJWzN*FGT zG4^u|s2>r8EBCDP-vpsuJzzt>NJ=!Yt4%wrCr7<90QEH_)7G-tF zf6QNGQT$Tn(QiO$Bx!W`=Sia!{W1TFJbv$nCAovDqYMQC(1XfWIUkIi5-anuVtFlm zThJyj#~Dm2bG8buf*e@rW%;CsdSCD{gQ&c+oh6+!7_tb)CGeagYK59 zR(!IbiZhxo8y=K59O|Bwl3;YWlznO9b{HLnh3dr>1hlNO#*A^cPbmi7E$cSIGe2+4 z=h5Y=@%~FKjZpXL!?J_9HrmtV0KLic012 zG(i*tS*IzSOr)wR43*FHUH|6H@Y`{p7#+yPcOeEk#Ga)U@&usy0J&ZE#e1DG?9y45 zY;+S`$8HqlM7i2jlU}uCwZgkEv)4L|PxV|6kTt=AChmtplPMEWn3et@%JTo816&iiYOeY%QQ_~J00SNzYp4QpDB$6P>#FJ3N zKTommn0^g><(q|yjIu$KBU(c6DbqfyQegut#zeRLSAnmG+VZeH9I z#jd=Y?3!~Q6^SdShU1b~ng0Ml*x$ZZ)VgVe)nO+zrkOq z6J(PYoWRs&fyesGYq}1;RP~!o^Q=ZGAU(&63f8CJCo-|dyh+9gb^qWn3Em_xNbjY= zArVG*m^uaM6amkD2tK8~j~Pp~DQI?3!wN173JRiQsaR*aDK|CSKS@=2O`f)kCL$CO z$~Ur9NI{Y9v^iOJ1oe)+@nYq|Q}oUwZJ(5~vkg)%JpK+$Pd?zPtaxo>!Ima6`5&xb z%XY>ww16}ftO=#;P=#Z06&Mslml=5qaL?n#{es03%uwPaTzS3?Aw|S7kG~b1>r;A( zd?Xc!&!`Lptzg#snnCJLpqYNUp>kq7ih_1#Dxv{XG_Sw}73@l_(f%}=q^iiHq$7zB ziP{GfB`BL#c-+;Py+VShhWL|%<-sZs92jeiWsx>Io}He(V^lQNT;%p4oYkiXT`zFWv9X;J$Pp0l$%<;COPlQ=)^9gH`zBJ%uL!`p$lj1ez~aL+qb7tA#la zwxn&E|4u?3?5ZLg+rn?V46AY6e`48@Kkf9u_m5xmU8|8^H9JWj36obhzA6N)jybmC z>^|q_JZI%TWA*7jXss5Oi-zU)gx#Hgb^`ZbMqAn;8+WP=ev_LrnSel_l4OHky<(ia zYDuu8IpsTW@dTW@Qup!W%Xgc$!ZLlJLiH;Fijo!>mcmrh`dsd(OS5$2vOQbM~jz z6xv>*5esZ1A)eJ^4sWM{XuSwbB&OO#zfO7r=C`$v)~WGVS?X;7lrUB^~RZEL$Mn25P?mWr8~+4Kd~ze`J9ot+X!FaK=ou7*c5i(cVV z_wUxHO}>1l5hCORlE`V2fgrzH6Rh@(+)lUaHk^cZo8Se`6tI#$T!+#{eQjp z2B2B~{`x8mYE$L@LhbS2p>pSwM6vdnMD51FjmwF&tRlWZW8S)ISC=Io(N231%JY;& z(1%eaQNy6D5;roGJb28*n2rJBJ^&bx06LdN*wIR~v}Fn3P!qWyyI;tBPWZd{ZlxVy zaaI!zoqGyTcinlwNo-qlJ-)yl7tikaptaVpC-A4G2$1@9KNDBy;mNWDraDOd*2A5p zws_uZhh~aGMiHO_xE}9sTu+yI1l*|t-04u1D9>pHJc*PM1*r_kn529IJq{Ht%<=D! zcfb(CzTwHIB_ZVQKNA_P=koSATdQ*S7ai39Oo9xU1b6jYr(2_d5yv+hZbEm4;tXK7 zuS@T46>`ZV`w)OHrfY6>caDrWnBO!rJ3q{Vhj{;KPcCT7EJSO07j(nTm1fp9|~==qyjJ_pSdH(QpdzonJ{V9>AMLLA z_ULY_i1FN<8&hAaFZZ24Cv7n_^7<(-@8vkhA%pQG7HN)M#lMO{>Rp|(f7~z17tziK zl*9KQKBS^xXTvj=uFZ(EhxGF zAI%Hr`X5N2y&tv1EaJOR$$q8``c-^qMn)KUr9a#j5G$P>B0!3q`K&H&GA%GI2L2HH zha6}5j{>A9T|OWk5S{%$oK^nM-wmh|{H*<7}AX6WRd^#y8mUf%ESNdI$BAsQUAl*|Fe-&bii~6 z0_FL0Vcc-CF@#A#W8ngDjb4Og`Zvq#iPy=q5LR@R&pz4KXAin%hJ#uie=)HH>u7v@Z)e}^98<6tmkcG|$1V@(vZySuaL`r^@p{;T}$WWAAhC;Vq79hEbptBrEPs+fMzenz4YL z`}?XH-7f@SYtM9Vk(N0|U5pH?%6pBaatva+?lnbZ4Jxm|Cpk-F9PQaRzU?#dzIaA< zy;LzbGOj%tDqX7}cofa8v{k}Q?CaTvX@5hM#Y0-ZYfMw2e6LkPN10n&%4A3RXv(8s zL=E|$*s+Rm{7cr8NBryic6vMeWDe4qyR!LJHHz1`PMAK7FZ#n(8P>Wd((SqJAJYSv zzeNCgtO4+Dj#?gTX_+rp_Dc*zd+F#Zf98}aQA5cbSzGmaiDO-e1%kn@v>*fSI60$Cmu^$ zfc%yXh)d}nkq3VZc9&It6evzQS2oH9-3y)V7;^x0SrQ#UVq6$Lqs^B+hI9_AzXz{w z_Fis7RiEcERe1>`_>!t6|B;~${gm9jMrp1qqa)VUpbRLnV0K}^3eIXm-C-)ZbpT6& zPgg31#~rWU;xhu&9)M{9wm8pgsWtq7E9aHb^509Y?JtFuWoeNJ(-Ai40Q%>_;k8w=mBX!Y7A=X7WL8gV)!7Il19y|Puzd!LEvJ0 zIQl3PK}GeZ48?W0^Ag878fx77xG%JH@^5pg(h5OmzV#^w;SeCGtQtZ_#cq=uOZZAd z54JmPxcixpqb{>!R7V9me`pf0zFUHbVNVjw<;jiw9=qNsq~3WUk`VG89#Rqw)a5{G zBO{}dyr_?!Jv^>Kl^V>O-*inP+$$Jr9_eJ7L{PP#{GboK%nYiTa-(R9-fY=MwmEXN z3D&Ngzv*Rx>QBew7)40^t^bk;#oT0u)_(&P_cx)@T&7GV(=&u6EZt{J7MM4$U@lezYXf{5M)WZKNft7VB1m zEmjcR&)~b7Tx6-uvzz@D%VTIIaQcfN*5pH%3zFiw&lkkJ3+&WQ4pY6{hoRr*S)m%Z zZWjsa1($0$wz4=kh5P}8ST@jm>J8IwUov``({XWd;`g7?aM4Vdd&ir*N}pDIe7`{c z-1y9nrr^ScAN3BM=N?O9Dr`1V_$HVxFe=*E5hUi@V3WXB6g3INs0^Rj_-YEPv};tM;U9;2fTo8RKybZnDKp9tv?|%5l!^X6g#tC7ruKhP=AFujnDLg# zN;ASh3Zeb6l;4ay+LfW`e2lT@^M2<#XC>TbD{a;(902J{hUh$<-no&s8%%)@!1N%c z=j{%%kQxEcd&*&-GS&&ygSHkg6v|ZVa5_E7y!m2QO)hIwOY@AY%F4GPL7hN#D0wxx z`9fDW7jy%@K0!@O@x*0GOM;XBFI zDno6ofwOJU`T%h3MHX!gR-%NoyAi=u)x!K4=A1lhYTG}oXoas!6)WnSjTMx6H>9$E zSQ9X*Am2|f<;~a_I`PbmS6-R3JZ8s6Gvg&l4I@BLk;-jw7x^Ee4%3#h?(jQJm1#=o zD2UC7ww2_+8WT93BN(881EsNhgbr#t z;aULzO5Egt)+ZtOr}T_KHK0*)l^8>v9kb#Oj=(n;K}i%GH_GU=xtwptg1Byrozjl~ zH)WsS)l2;UHyByY~SLwWFQ>_iL-!0k7_SbeY}i(^Eqr zRJ{29E%*ZnEP{UQUEsi+@JKQCb~&U!T9 zl!MHfCNGa-u`GD_VgSWFJ_h0p2&P1@#05@Aa@xLyX;K4?S>Wlg>*P=kK)jyyWEDR= zhP;7whskTQ!=SnK_4R;c5Rilwn&kKc?Iob}Tg)xBr8j%IzX#Vi`f)3B>92A94o4<| z0PZ9{h|ow)ON-}H{0$_Vl0+D{0kDpL`p^ka_w7P5+n!hU-OjW(=VS2{-eSZD_jANU~tIUsyKbYfBbk+ zlG`WO+RThJG_>$LqFrMA0?!3sZTheFF$7NsH+d>@kIHpg(u_*z@jgJ86up0c%p_9= z+T7cUXqP*Whd5|o?|IlLn6-Vv)f_tcv8w8qoZWtopAg0v2j2ZU=ddOE?B&asz&N*c zYB)B}O8>RTAlc5SQUn(YocQhq7|SaOe0Kn<;&$s>vn1xy#>4k+93tVbgWiA-UKQUM z)zXV%jGUA+goS2d*;fAwxYJkCI;0Vr{UFUQLPEB0*pUJnfk`)84Qc`DDPsb^x{~LZ z%F$Z_&^7~F$YV(Zyv+AvLNiVD3rj{R3L&ASVzYa{4T^Sti-W}iQM6q62v#K%jX$Bc z!L^diP%dusZR%6g1;$yd!~(mDV{7zXz8nIQRygKOdHExt=eN50miHU*Eg^?~gA&MJ zhDPuq*Qe<_lt~pU*Dz#mD$O6@FB+ICH#{qp3lKheT_)V31`huP^kjeePcLPorR3!YXWr;@ zTs43XiG#V?du~i<{a{_bhp-|(xX>J>Y)mmx00V}#$S7SgZ+508%fd4xHMg+;pbkYM zJev8Y1CIlaHv+UquQbwsL4t%qkA?r}V(aB)06IlHc`alSf%aJ16J9JYwf$8Y>cK*s z`bitcrQ`^AXCxM&@V(&NYuU}C5(`L;@OWdg|0e){zQ~^`Tsc~6(gujdj~_p7Zf*ih zR_Ju-%Z!q zV1LIONY%_3g+XDaw6wHzQt~)3yB{k4O|&-RVBmqb`$3%hyR04i=@b~VO1>XDmW-SA zdQfMere-66IurplLXe0TD1y_3NJ(cW0$>EU;o8l902AmcQdtX2(ISS@*`sW$Ro*hK z)AK$QI;;t|dkW;iKrWMeL<>rzJ^^tP#TZn+! z=dq(S$)#64N9~4Epn~A*)9XX7GzE}u;GEdhYix!U3E`?0Od>wz^qf?R7O>cO2>#dl zUWYeo3M1#Fb}KcXehgaQ@uk#BDjOU2^28qT?we@80p-SFnwjJ`qalF=L6eMUh@xmn zics8Z{&Vt@{d4-%^pU8aNvL)>klFunZ{UNnHC=lCX-J?Siic-j+NgfaSH$bokloI? zLPNjmBN6^gKC0g}G>DbDx8bHY6(Gh{BQ!7x9*{wP%er=6Zq&Li1^t@8*fv6rI5*B< zad`?jG6o2v|NRAjE6+S@NL}zek3f@${!}7|pUJ-F4dL2&0Xd$1hc;vME9W+#A_Bte z$0H?o*1v^M(#l`T72|~Np+lyxSNMDXqn?R{oa&kbMD6nGD-1Y!GV@H~1cbMKb`{{C z8ZfX7Fv;o6uh!^06F)skMU`E!(dmf6`I8lzU?Q?Hhr3@|C#~6}K2 z9-BgNTuqfVb~$AWelhVOb{dg&8`thpBH-Q=h0LLhG_X4y}4nu=>7+ z$YdKUeqQ-m&{qoMs&tvmbbhWeuhkHHJFX8x<+CNHTd?}+#gLK;Al#(>>XaOKMlf^& zO*SlRt+8E9Sr;f&{ja{>R$G4oTiHi(9o-D8OJO>tS-Q{=&N4oFCIb)$rRo5435Ei6 zJ@q@`{gP`^Jj?N2pgN~y5#Y$0)(`K)-q5ew`m3?NjLKR5dVts$Luk}2e{xzvb1E?x z{uS6SBa!usddscZrmN(U7S7U>&U@Q>Rx*$50Hd%$PxsOyjG3WhlVZI387Im^tE!S; za{jO4&NHg1t>M;5fKUU0&^uD4gOMV=D=J{2w*b-<1OY*M?@CiC(xZrqB_M(n=?DlS zkt)T2AWeFa(C>=pobi75{q8%yA9sv<{ewSXCp+1DueIiU=3K=tyJ)+A!{;a8XQ3}{fWRdfxH`;Z1AoCh&5@#gOcqDoHu z&RHOdfR%Sh$2BALfYIn)pW?Iz%})(s{Vg4n1M9aQEx%q{QsKWb3v)It)eX1Vd7Qnx za%}bau8N&MnO>74djfoa=h1n-d>aTy*EVV-+-9wE>x;AH8EEZDCnU^o9VM%l5Q&1D znUA2?Xq1?(-N&}xXPhcn+Z}2e^fgcSbOcEpcOujqOFfubpd5v1nT9YZe!eH)^CH4D zLgcE`PO=W8-&VDAdW4e?`54lm^Gt~Z=Msvh$>0n<&zT3N`yr9xOikj1r*PE+vT3ib z2!3@vNAp4kX?qTzD+fHo2a~4=6PL~6#+CS@!R@I#2XLwRTE3UskJ_&5=l+V#J3{MSMhz?kGWx;?Cux=v`>Jcyl-}`ZgC4%Ky97N|8 zSeD$YNy4MJtdxJ=KIDx?IPQbSy~C$~D;JWQ6^&56rc7rf9om2*CJTM#$}*{U^wbri zYZ9W2b|5$1LR{uS2}MML^N@b)@|cz`WhleRTGS~N;in~0ia5ZCSdjx9Rop`tcDL0` zzXiwWIM;(|!n3!EG=1Ciwnif-$ByVct&bw;KGGf9jo-Sd)*s?Cpc_y@T2lu0d{`aa z|1rcCM#ZV*M0=!?v;M0-3muE(DF*a@sDqVGgG564&w^amm!!d|mn&V!Be`lk7>(DI^=YKKqj;8ME9EnSJV~3{T2o;-ne3wJhzJU&_)OA z^>`RJB5dSB?T8p%lbnMrlR^Nu?p%+Y)F#l| zMu#tLS@jlp*sV3y3MlqA&UMp9`La?R)p=!CPe#6@SaDj@`dYCSeb*UW8?#1)b7|#N zzU*2-Z)Mp*7;jc1db(8;r2r*^UbweKmg4maCs*M~AsfoHY5nlZkL(CR2t5^ss9>El zu#nhW@?QxocJ6Cx_Y4Sn z>uO=QTHmqNZwIp8<`(i1GM||pxo$9D9V8ovmBRB^wB%GvgCYEIB=vgyxawT*ueou& z*KZxd!RHu08T&f#fCew~O!ctqOXs!*4j1{E5FnQ-foLd=aC^Tqn_}lauZAt206K4q z_m8$jkO=F^RrCTY$liy}LYzS?U_i(HkrDq=OEFXT(vG5Ca=+O223WUtuBx}=HzNBZ zvhdI7mNGc$8foqnf9d5IS%NXN-f3rmtJd&NwO7NiP)oj_AaD@d!6e(SLEAd1xId*v z>oEOLd8}n5Ssn&(HTaR6pAT$_o`Gy~OA!BQCwu&@t2~fJdwV^n?7B3F*C|>-}b$8xJq?!z_r;;DT=Nfbnx0Ayc)U2iK7L zrluZqQYz6+R#ek~(*hA4o}P0nr#JdV;dXlQrPyYOgkBF_2nxhSFP0%ShArY7(1G8p??ZfhE*0$u!kFV&q&UD=;u_)n32cS?0bausq6%4T2 z&c=@nmi|mkQ)FEaU2)^^nT}E@q~drY4e)dGMLdL|U!gxRAPH_yN#r_x06oM+ zkwr~Ui@%ytF#)PWvY!olV0hRVzz|a{v1#=9E5-?5OXCybbP%OEr)@uwEnPnpe_R%T z0EP%b{r6rpA)#@k&jn0%9=Y%%`$|n;-T^Sr znu9~>B_A2uNJu7tV3*++2o6$(tM~e z0AaFL(IvwqA(%X0x?xxiB0Hi!ca49k{Jiz$#m_KesGL@A>?=^>!Pk{zqHi&ELCKZb zAM}1S$xW5RRMl&ynPoU5cml65Xn{-Fk#FWv8o&oY(T)FXPmT#4D7wlAi{Kl`6IYm} zI3-K>^svP!<#8}i@=u79=~W)^9z_Vmh{?Hpesnr;i1uk0tw*JGsH;#|pe>Zu|rm%#iKA;31gGPJJyo573B^ABm#R*q>g= zk-xoom9+eyN8_7rz<0hMT)VPT<8oeH0efb%*BsNDSaIXCoXgD-T3+w!h;lYxWesBX z)~4xFcRaHLnhwTQ;6Sju`_!h9b!ccQEInQCs!r^1PghvXJhocvK!ziVb zN{(KyG_|fs4p5FGBOKR)%S||l*vS6Yp68H_i*XKG&3Mf#2Jb`Gqf0*yObmwGdCyy{ z)VMc;6{R%CyLBJm_?vUA+I}=7YC^>OAvaibzj*QD5!#)Jg$!Ku+Mb@TNUDzCBR5E9 zVovc%T1fucu0CWR%EQ^{9t(o##p^&d8m3!ae-nC;lb-p8n0tf7p2cq z;kVn=I|s7?sPg{Sv>Pa1T7O!UFLmu{VU?=W3TVoz0(O`R=oVUcba+(qi_jyNn1cab^!ZX;XFMGE!ec_LdwEOO#P zWdCmC3cHT)#-W5Q=5OuPGJ zE)a|uJTxZs4N^Y$KMSBq3V@ZYtSlXA zz_xTG#&Vm`J=VWBTIHDwj_k5<0pBD^JAuqCUY@3=p{>V0$GH{N#qn*PS0x35r#P1)W%LKiV8N&cX{@H83=(5KC#55dFrTVFwjd+Gb_&zn&o$gFb} zy+ml_i^2@Ov^3(^C9y)Vt=6m94wFi^gu_voF4^&LheYd=A;cruVKxq>(0b=q)WVRy z3rcJBqe)oRYydap8f9D*BGaoB4mWal z&_tg|uvARQ5JnGzbF? z<}bi#%ZwyM{X38ogG?liucZ1Hkdr1qCKY`ck+SO54z&N{(f>oiK-y~jZY)wb`40v1 zpBqKfsnj}6|CA7bxbMHJjs64E^lzmF{{S^Fts2Hj@Kn*CW|{w?wlt0Y*U-yb{{cG^ z_*G`?OmBWN17y(cvYaMrZ}&dT){2G?4h+0E3|{D*(eu*B{^{B{duv-j@!9j!uHn;MAB$X%*o(%-Yn_7;7LOI7Olz{zA|J;ET_yA zyM5Oitb{3Cnher3c+Fb*ZJ5v;qAP0u11tu>#PH8=Zw$`$ShEdDj~}*qO2jc(g#1By z7%Vo3o)Tc#(!Wn@NGE?2T{=2P0Z~w;(g~V9UI|mZ%+}h+Ib(bEBAWPWD3%vp{>fq8 z(711rK`)h}si?y-1dDAJ!344ij<~UM_n`WoqFTS6^M25mZac!foZ{rhd$YYT_YIlk zS1ZrDY=IN*WL!2+qW;EtY&>rIn}v}U9mKUii;mSY+ErppUeS2K=6xiRme(R42&Nnt zyu$Xh9>RSE=$^{aP_;d#A+weIqK9ICk=c&_bd`o-AGUSxOu6!}SVoTvA4fvyh@YKK zZLOnDX{r|8qwbrHi&&;Vzz2@1W4lgJS0$VMVp{Hn7%{v8rAUe+-2HUGht%0Bi6_c| zOZfy?8hjdh7!TjcrEN#L#TM~Tf>}fLOQo4wVfeWOO9VA_9D|iqFm%?OectgoJ`eul zb>mLBvd6Zh3#H#uc? zM~aT}j1XCuzDQ-?)e^OHn1fm4Fu*=xON_fb6YGxHnK-ys#6a@^h_Mh`o4GcAsGt*t zWhVdJI~_ER*3mMomAdu5 zy^z_BliGv4$*k>*H6k#c>H$AT0I=9e@&tM@RmSwDin z*6g>}gqktW)$~hMQWr($i{8zgC&xl{>zq(8TX2}3<~-GbrV~&PzW|oiD(aL}Gc!GL z62U{dXBxbWdum)i1M`&m8FbiRii9XR=o}k-epzQ$=W^RUb=YCYwZ@6pg{jd!)nq6N8tO8cj0UaCl++(viXgZ2iHx8Y- zrTC7V5)R@8mCfll_Zc{~-#y*lVZY}el9R^N{H3DvSLe#>42aO3WEn}$C)jRKPnZO+(a(KI2dz1 zDU>6#3TJ?s9^ZR7H)tzFGbswurmd<0K zq_grAnJtGbJ>mo1QeE5cT~J&6A8YsHlO4F@?`uiqUvfWDiwX_aCVlMy#_MUgvE6rk z2_W<_KY^O9JWZb!N{a!SL7_Qk5knN;X<3fuGJ3jA_f5lSXQl3hXOB?&=S}FJjLmye z&TEUxmz7-au2{3kjHP@Gib4`R+f$+08P4{}a-wq_6JnUVjkg{56V8tK?eRE_wIMNe zagfH7wNl~oRJ2tRwH$w;hXR1)|9x#U|4Ds@y^zPh^+wSC^k zN9ykJI(ekynlLQk6V-Rd1@S;#vW-IL)7_85wDlxdAo3^F@P54*xz&2g@U!-p43YUn?d()TT5B;<<%&(~Qs% z>6fjw*xS1D{HK$~a1{RpwoBo9Q&$Z|C_epEqT{EJd$2JIzsgs{=#inRwzl{79!WR5 z3oqc}~4f=R;cM597iDBZ~)q63ib^?akqdo%(uZi-BZlHR{{H}D(_pU-V1 zJ&8XOR|86Z{#E@Byg@*VcXIzjm!#3xBCP-P zNF@~TbHeGl@8s|FQ|D;@Q#4f~%(+zDehEupLIcP+g5(S9QY!ZkR6Z^yt>#~cN&O3G zf51QYJ#a2Z_`I3=vFZ~t@|evkrav`Qtre%7KRp1E!4DgsB!HtFcLRx?yG-&6gT#th z=t##b1x_o|L;6d26FWP*OeX;RTSSSAix&j1)Btg!h6>Eoa~Me;2WY}v9NTj`52(LN z5qmWF2U>|KO#vR(CGCw>fjiI{Og>I`n0^OZjGSMtIGTFCdUX*TN!U89&hL3BhEcVX z<-Z~=sdY*MK}c|HfESc@#D8kiB|}45$ih=^0Rye(nQ;^U+SnxY$SI?a^QC(8=o2jV zas|cLse!KhD@&fhBO|RQQvs6_%Vy_Yti8otA;3vQ86wGFo~YZTfwo5`!f9yF2=HT~ zi)j7g5WP1T>enFb-_*{cpFO))@;44M{`?o1RYU+c9<27e?u!E3ar8Fw#QrrMv?j7C zP6;EirUvqIa^xD(I7Zm@8#i8^RJ=^fU0ho`Iv9)mz;s*?=UNza-Pd*^vHH7@C*vLC z=zgj|QiqqEV_UIKybYL)8+~C!0B@?~W&{*STad=nKlQIi3SuspvuSS`0)R%+`?kQH zv|r%EEO*m917Mw|rW-HgCi62oQf?o8c}ayo1n=gmxp`|!n5tGN<|H9#aA@d6oI)MZ zBD<_qfYVGWpfOuAMhpN(8=>q_$HpzNkmt)+3;qpg9a1(WmqZ5{$yCA^w%V+BWvr;u zS-@wtL~p=%=gu!|;YQ%5pvIFTjV3;Bg@rIY2?I)3&d93*i4AL@YJwgz&}NW#tuykv zo}QkQ)8k~+iCo|<;&M^Dhg6VISp?6noWQ0MLU^Jw&N-N?4bb^a~SICv|5ns$K5A zO)CD2b^+|c0D@F|1|$=JsNDEt`w#mp4gl__?mGlg9)27Kbg-v?qYMBKVqsw!K-|e! z^eP}}a({k50O$IJH#kNoFtCPKMyetK4B*;+sAN_tPQ{ztx~)K}0&CwzAp25+!Oe}p zW2&9Nyg)nzLD}P@Y&j?J=>hP|;4XXQ3vft5Fe!^}@BwcW@Fu~4ZYwRcI5jiY4-XHV zGRif z8S(ay=db^<)|b^icLsUl&DepT3}Oa9SGZ;g09pVgQ`DD&o=9>^T2qb~8_j@%g-G*} z--67`q;(u#WLd@2-nt^dyRjy~Rzs20F6G@A2%hJ4D~iE3t^$U40Y+^0)A;hc!1W^E z@T|*!{n2~I4R4)k9(%fnT4O(xef#hT0o{|Atguk>>kxSO(~L%sF4wBLpb!`wnBtEf zaUQh^ha0}Gs>(EtfYb#!gx&2zd_(uOeV$@bn68WZYu&wN^4jjujTq4$y)Rt*5&6J@ zV0m}tCcl7T9MgxdO~G8tW(H(kykQ^N=k=aDXwvZitTU9DzbzXN8q(w(`l;rLlziF= zcITJdUNMCGUMhk!WdeqOwq`wdLNh-}Dj@$|!)K+9AAs9tposGoo&^-l=&)Q7V7S>k zOm)pKi({Kz`--%H;eXwcMef;;!_PM$^%$g08iu6;(mYRfM=BEfY~!*naK@_>iYME$ z>tPQ4lkIeOEPg)K%ldlgs#2X`ZY~q&AHe+K9kP83 z-_OHe54+F4DVfnF>ksrmO_jpSvCSHRKIH=7iF8^GTEs3!>tVe_tHiG{JFg~Wc`*a| zQb}_6C};k`+rw3b%-yk|J72Vik&zOYA|qOgyrB4qlK$C<46jJkhsb3ap1?J)aMV16 zSsY%bjh^WzfgBDX9ia3m@^)ewtJb>_TDZmd0i)y8$-DhD3dS7Q0u=O`#~LOK&vZS6 z-z7X1OLv=BFw{dgeY7rI;9hlaJQ?A&^E(j^*HqL*tkqIP(5#ngVafcZ>jEA+o>`E@ zV}z9Nt6W0Mo@3)h`aoaBvOR|tc|~sH?I&mqk|Zw=MBBI`?9^uBb|dLEBXuKg;uc3A zWy%;@Y(E0olK${Rd4p5l8L&|$>l!PVq?t`yPwUyBJ0+|}uRZ)=);};KI1*L$xy7u0 z>a){_mk%E`Sxrq*cRE5{GqZ^*EuV{%mxm z)rE~60-aA5r)!%DYCF!s?v5D^_o|J3YdahMxLN5aDpp#IeJFLudO-`K#-0SdYfx@0 zJ1HkB=x*S86Xm4p>ge#){UF89hpp#}CDd<6ZN$>-kR7iD`jEPhjuuSFXAD8q;_y7J z)@hKn*nhzFnnl{I@)qYtTbqQ@g)_GdH+o__)VpQzkiKNsvNy_oi-j#m`;_fI%7hZx zXF~Jw{ofbw&gFFOyvTnTQZ_~vBMKv6Sy7PE)p*c7n!%0W9T`7i&|Q7|%s2B=eHAe& zJS4k|X!ew6GJbtL!3?@&Lp+V~1w|&VMh)&n@I|^O!p8(9#cXau{8;u_sJ^Mq*QVeEyr5ZE2^ z$@PHdLTX1PQ~%0cU!+lD^xG`u=s+K|!mV&U%9D$gACAjt$tWojG(|wSYsEKF{v=%Xn|( z_XH?S=8kLdE$oz^f_c-AOE);wB_vv#E*Zl>(ZUkuU?@s$Kv2(M2l z_UHr>$CCN>Z+WWlnys!DgG%FJu7jtW+uS)QY4CB7BO6VZWIgGrz5 z{bI1XI>6S|u7Ln8jQUYji!5JWwkm4fFg3i2^XS_nV>C{%IDT#UUiAqNl~PB-CS>(; zu&5ya9rOO*U26IVw7$vUVi?pqSm*T1eCx-*@9&#oi3BnSIud z!?q&JAugzU9U_q+#U0o9iP)XCdkE=E#1==ps?=dnI0wuH-`P=(<_Z~)Msry;zFYwh zc5YRL?;>5!>949vp?TCa9^oP``#j(j#9*=w+b{*=oB48B)WQP^M17*e+#@F!5}LrU zc7Ew0JnyE`_Q81STlpZ^p6d-T-y#c(fCNzyzK49-ulmp$IyrR?igd3!wmUuYsani# zmp2Y7O4zM=c7sacdhT@FlBAP;y}XkDuOkz;pGJvTlD4a0UKo12WA!`{x0icg{pEKy zgoQ~&StTr$nu6WJ2IC#O_}&d-8&Kt2v)=Wnjd>Rnkv5NgI*wRe(i-e zNExDuzBtcsbb(PAixK>*eVv>u%%q4ow_3=E6#b^XjHxz_sw?uCnL1P{!`(VpK?xRTgx4s z+ba{;Nf*w}wtpv^n?XqLwZKDEsHU}Wu+(`aP}FyOXmW68oV}ps0o9$;49>dsZVCIp zbxXQY$f( z^fFh(7ROLC-mMEN4eSM_o>~96x4I`uN+2kq$_pL>Ea+M~9X_}0u_7k?a_vw58v;S1 zfJvKtCmc+2ZilxMZ(gn4O!lR;*U0+fg~XDR+znvfAMi1SmaB*h9x(m&T5g4Ikp0CJ zLhf3*g#Ed_5f*{VT7OA%`;Dx}R5c$TuVM#Z9Hf{5Gku>*dAfFpuzfZ?7ykS3o6hl) z_(V%a(mhqB*LHNN-#0?`&t#DN+#lj41_bWcCq}UoSg1_{vH6PAhQ{P}w-m#j(AtV4 zA77OYHf-=;G=Zpv!GWXk3rc3hI-l_jO)C~`4e+{*rFD8!qKMk=^^F?VjMNo2gp$aq z)sS}6Bq4E5yX=Mu`gbhDti`^1It}q|x5?=`T>}#p782a}e_xT;xe2!1+V)+USKKf5 zI)o4UA3V5=eEzqXHCOi)$^55DNXRf!0&)7g%(x$;uox%(>Aa5)mY2)%gUL^t9>R(E zMe)EixA}9-VQDvfK!boBFr5N7XYcWyU z!}5DRwz&CJ7ZYi+Rz@{)Z~$coCrj}LxT3u)Lyx#tovN@VNZF>AgWyrAIO3RmP1+0 zsaiCu<%`IMt&7;fGW8SGq_}c+Zcb?^1w=57qLUED{`S2x0_=!Ixzo`s;o)D(k9nd& zpZ9Dw*Mj+}uQ&vf%f>@i^yObDPz?mmHb61>lznF6`NHN&*bYgPKCG#SF_alw&}cBqzu=-th;z$$ilQ#~ z!0z%W0+j!!Q83eZMDc_`@QirmL9X4Osu?XvOLp(!dh{LQD=STOpT2|(jKL#i$w`Mr zm=lh;zI)PFo8cN1fx!v{-EO9Q^;;`W?7~vCO)|EjA*>~anwCvE#;?zT%@UB`JR1{n z6D15~sdo9jS-B46mfTIzQBRwGugAhDcQgu$_~3g!zT;>+2SHv1ckmFv<%He?Nuj3! zg-|Vs^>Z!^aheT@fS4Ww6P+pv-W%D>%^@chYE?d@pcgGed*>ds$(X_FB!6Gq*;5-+ z0c^1glhvXC1x5SJbbfp5s)GhepXG_V;nP&(()h7bE@p)6GnS}}Mc(qVN)I%wpB&GZQm<)}k7#Lr+Ho3*F~<}tVYq`LZ101% z_>6u=yfzu?tyzURuNsida@a zo63#M2&ncoW}vIY%!_?d+ZhMDM$$}pgZsj?%*^!aRZ_zbz%)pmD(WFbaDFzF0u_Ja z+I*g~c z+3evH&;^w#{KHb#RaZ?-!DfIASO;(e7_09-xkB?wQx05wo)fi$K!WQg4bLxrcIQ8| zPW-((Q8!zX1u}O}*7D7Ox{??c?09^1h$MgO^4SL_&{FB%k1XPQ%A^Jd7sce_bTneG38 zMcie>x`KfS#+I8~7`piUA1s0efdL*jAXqjUuTlf1Y6J8lss0{us!i0|Ity+chi|98 zpgkt`{tFQS78}7kD^d~?xq17S5=s3+Iz6EC9#l}gwoKp!neH>*+sXiuc+I0?CS`x~ z#(e-qV6P>Hru_oiBw%RlZEX?w2=h4>Y&@8V{Eb{RmC=*bGy1$1-`O4x#hZCyiH2Ku z!1X|37#|wUbZAk6#14>{DnQ-X>Lu_d{n4-J-+cJ}=