From c13f9bc21f730ebe0d484293d810577444791f0d Mon Sep 17 00:00:00 2001 From: seth1nk Date: Thu, 28 May 2026 22:53:07 +0800 Subject: [PATCH] 8765 --- build.zip | Bin 0 -> 228495 bytes eslint.config.js | 10 +- package-lock.json | 1448 +++++++++++++++++++++++++++- package.json | 9 +- postcss.config.js | 6 + src/App.css | 204 +--- src/App.jsx | 248 +++-- src/assets/hero.png | Bin 13057 -> 0 bytes src/assets/vite.svg | 1 - src/components/ActionMenu.jsx | 122 +++ src/components/ArcReactor.jsx | 132 +++ src/components/Fingerprint.jsx | 34 + src/components/Iphone.jsx | 70 ++ src/components/Login.jsx | 352 +++++++ src/components/Mesto.jsx | 281 ++++++ src/components/NavBar.jsx | 188 ++++ src/components/Notebook.jsx | 553 +++++++++++ src/components/OsCore.jsx | 102 ++ src/components/Pogoda.jsx | 161 ++++ src/components/Radar.jsx | 77 ++ src/components/Record.jsx | 102 ++ src/components/Server.jsx | 171 ++++ src/components/Social.jsx | 215 +++++ src/components/Status.jsx | 89 ++ src/components/SupportChat.jsx | 295 ++++++ src/components/Telephone.jsx | 136 +++ src/components/UserAvatar.jsx | 29 + src/components/google.jsx | 53 + src/components/lightdark.jsx | 125 +++ src/index.css | 153 ++- src/main.jsx | 6 +- src/pages/About.jsx | 205 ++++ src/pages/Contact.jsx | 171 ++++ src/pages/Dashboard.jsx | 255 +++++ src/pages/Home.jsx | 249 +++++ src/pages/Kabinet.jsx | 240 +++++ src/pages/Payment.jsx | 293 ++++++ src/pages/tables/CamerasTable.jsx | 261 +++++ src/pages/tables/HubsTable.jsx | 252 +++++ src/pages/tables/LightingTable.jsx | 257 +++++ src/pages/tables/LogsTable.jsx | 59 ++ src/pages/tables/MessagesTable.jsx | 204 ++++ src/pages/tables/OrdersTable.jsx | 351 +++++++ src/pages/tables/ProductsTable.jsx | 236 +++++ src/pages/tables/SensorsTable.jsx | 262 +++++ src/pages/tables/UsersTable.jsx | 237 +++++ src/styles/admin.css | 62 ++ src/styles/pages.css | 64 ++ tailwind.config.js | 14 +- vite.config.js | 8 +- vk-hosting-config.json | 9 + 51 files changed, 8761 insertions(+), 300 deletions(-) create mode 100644 build.zip create mode 100644 postcss.config.js delete mode 100644 src/assets/hero.png delete mode 100644 src/assets/vite.svg create mode 100644 src/components/ActionMenu.jsx create mode 100644 src/components/ArcReactor.jsx create mode 100644 src/components/Fingerprint.jsx create mode 100644 src/components/Iphone.jsx create mode 100644 src/components/Login.jsx create mode 100644 src/components/Mesto.jsx create mode 100644 src/components/NavBar.jsx create mode 100644 src/components/Notebook.jsx create mode 100644 src/components/OsCore.jsx create mode 100644 src/components/Pogoda.jsx create mode 100644 src/components/Radar.jsx create mode 100644 src/components/Record.jsx create mode 100644 src/components/Server.jsx create mode 100644 src/components/Social.jsx create mode 100644 src/components/Status.jsx create mode 100644 src/components/SupportChat.jsx create mode 100644 src/components/Telephone.jsx create mode 100644 src/components/UserAvatar.jsx create mode 100644 src/components/google.jsx create mode 100644 src/components/lightdark.jsx create mode 100644 src/pages/About.jsx create mode 100644 src/pages/Contact.jsx create mode 100644 src/pages/Dashboard.jsx create mode 100644 src/pages/Home.jsx create mode 100644 src/pages/Kabinet.jsx create mode 100644 src/pages/Payment.jsx create mode 100644 src/pages/tables/CamerasTable.jsx create mode 100644 src/pages/tables/HubsTable.jsx create mode 100644 src/pages/tables/LightingTable.jsx create mode 100644 src/pages/tables/LogsTable.jsx create mode 100644 src/pages/tables/MessagesTable.jsx create mode 100644 src/pages/tables/OrdersTable.jsx create mode 100644 src/pages/tables/ProductsTable.jsx create mode 100644 src/pages/tables/SensorsTable.jsx create mode 100644 src/pages/tables/UsersTable.jsx create mode 100644 src/styles/admin.css create mode 100644 src/styles/pages.css create mode 100644 vk-hosting-config.json diff --git a/build.zip b/build.zip new file mode 100644 index 0000000000000000000000000000000000000000..9c0baa8f8ca97b7e86b95110e61f2993ef60bea7 GIT binary patch literal 228495 zcmZ^}V~j3L&@DQ9X7<>&{fuqfwr$(CZQHhO?y+s#=lxD@a_&9J?M@@<`n4+QRkf<* zr9eQTfc|HM2X$%x@5}$Qf&X_JI60X(JJHGiXM_R-@!!;O`2QL~|7T=s;A&xHXG`nk zYIdzDW49@a@C}HX8R4++?qd2($>hZlNdl&XYBsO?BcyGAk<4Sf*#bRfK`ty0OFG+C|D%gNi_*%_n}+@_w5QM~B>ZjV1`&32hm zR*W~)NRBc|lXO&^o~o2QuGB?U^rnv5tooo$k)#k1h)+sGzpU1ZRiFzTdVTCbX;S_% zrWSS#gdhs#{&NZeyguyDh&3N)2HB3`D;6Bi%cP%u2LA<1wXej4vupmB?2S9XJXn%B z-X#J|#G7zoPpF(*Uc4FjfpayVTTFybIZ)q6oEemH=p7pt48LbxtA^hK^dUKDA=y6y zui6Dt@8I@mwFDA@=-5ZGP)^cb@ymCda=&;u9fkaggBq*=)C^T5Z`r>0pLFybArjPx z1Kzu9KwmJ(z0F+Ztwsr7iFwy&r8p`2`SSRW+jmxX?Zt_;YU?Fcm)r_PKb93J2FiyC ze&WANYPzmZHO*W-U2U^#aD`dL3>m6`OWF}1zoWZdRg=}yhf6nXgTV2D+ubiiG;I zgu7-@m?#niJoE^~3-R~44(&8_=z+S5Zi~t$^mVBTwG)$N)EW0{9z8&1rFL7$_^qPF zKqY~QZ=R&g9;yw_p$G#2$4j6o%JQWUkHRfHN70sf2PzyY&O*&urq%M)#VKdKuJ?Lo*|^Uo-|KNDi$veFX*LLPza4vq%ssP^)+n`iZWF8H4oWp0x^;u$dL3Ar#+2u^2DI5xX4U&H#~8p%zJ_p{pqL8t17HGFWaWV(+0keh3>8zR zgzUHEqUV{_TbPo46yOAS>KV@d)YJ7IBu5T{-cdn3=(9~-Gw2`xqOReG^#iSAc=$mh zXrzg02m2?d8EyeF+lBucj?f1#2R~)0w7TfVQ2JAzW$w@zP z$P{$&3J=wk;eW!y_`ks}hdDtTj$1;_U;KiV^MVGW;kX4@gOdp!sr>GK4iIz@vN061 zs1!bvhXcpsVY@TeTkVpg#kX>U`-Pwe`xpi~Z3OO@`lwECPDL3|oP)2tZU!t<${WAp z>6zQ77Pm{86cW4d%GGTIkm;Im6OtcS0y156OmsBr68Bqes5bR<^`1+vBTwG4y*wD` ze9JF9$xghtq?f*(w@|KSmP;O}rue8cKTKIZ?>V(l_>$eYJ*T6pD%EF%J0y?mo@J8I z>$0qSsGTS$Q#d}<44uYYGisvt$?BT2T4|b=Ra};=`RGm_iEf{|JhoAW*dE7jqZLnb zUN&C1maaYzjMhP9OTf*H_z+;%@a41YDq^7GU8gl+gMIZ^kl15*S|Y%w@VpCKb$JA? zt)*(>{9WZ*$R4PSXB0ujcpAX|MXV?^fUxHkT4{Ws3i_4R5S*?lLIHM8YUAWILXIrL8FfJsZ(c+p|RCb^Ak zhf2*Qe$8z=3)(#F78d9fpI1GhKcur^YE}WcvQ}>T_o>cmk?-ADs>UTAYct$H1E0N< zJ~ulK>;MMD%Rd5cGwjcL;k5k+dhT+o`*n4Fxjz*1X5Q-aaVf27Y5MOSZmyT=_-lV`6aBT!(aFQX-NDoE`R+UJ z*|e*VD;b_m4gc5ScW9&_MYR}xf~6q&QO$&FySuh7?zWZ=?shl#=i#|51Lya0f1LwA zC5^3YX=MMBRnsml%+bT)jW$66$)Z8!$wEb+w~|PdC0ZBPR2Rg?6!l5rFJmK>G~gt@ zQoL^b9fwg=p&2i}5Th{Oa6TTqT2zzHR6Ep(np{I#$?w>uM6tcU_nWuHl31D8@H ze_}=~>HuQFFn&F1V1pVCJEe}}WRbR~sI4UKnW#RMlztUjwcP1cCG7+Ed`mR@<(AP6 z!B}ZLeFQ;aU#h3`UyyJe1a5uC@_ZR}L@SSSbAwmpt+8@ITdzvH>UeeF3cz}C+*!bp zg4n#oiGeN@X1ho4?AwFg%hmTK5`yyh>*3;fsL2WMhR>tEZx{;P&t;EJuXjrhI}mXd zsUE)D8|2-B=F_6U?9|N4Wbn>1s!{f1jyRXL^DsdxnS}y*Jre7lLg0U{Hh`q2H znsD2kLxIddD`eOo?qgz=otvQve}p|E%_p(wnL38aS$WN|hGbuRe;r`LlP!2Z@^wQx$4GT13Aeohl)cb72yS}HF*bfEjPj$J?I;Z) z>j#pdNC+oYGjEY)Xo-~TlL}{%cND;3W?@G#L{O0ZCkKX^rF}t4;Huw5AH%I|k|9-z z%jG)H#b(yu#>j{rvs7H9Ewg?U;_OBR3*@|2Haz7I%Py5@>|*A?IV)d|kH zXc4$k3Edx~#gRbT-ng;skh**pN<|KnZ!=Df!D}dKygmHQx!j$&qAi= zzqg;)-`C6AU58y+pIzhvv?80x1btn7U7X2bZg#hQeVy#yKHMA7qT9Uka%^sDoA=Kn z``6!}T~le8osF; zO(g+@WTF)_Wc#RaH(J()g#u*pN@R5h6I;lGkpeO&l z!m=XKkWYm}og1N3b1hZPQ_55~o~)AwfG<$d~gm0n;sLtQP~9=Crnijn5$EB z1YQX(&?mAw1~MEFfkEI}=q@DQqzhc+sX$St2Yf&l~355eEuXmPS;pHrszN%g~#N|ZAotBVEmi#-BO(vwhk7(6t!V6m` z=|0gqKLniH(j6y>;wfXC_!;(TaEsjw`gZ$pIP~r6#La^$webT#{FXye==_u`rl(!6 zml2~$I=4`x$7_JW%lrQLNVc4!vrEvG`rUat7XZ_$Y0y?27)-8(>nPc@Hji`w2U{q< zUrn;fZO|wh4a>jj58Ubmn?)^XF6I{rjIL1{PtI}?HGIpYnoBOR7KNWH_=;}|HOc^Q z9}7#9&V#XeFppcP_5pQBRD5n5yGqu2p z*nf%IN5~2QNo%KR^tlr_;lRq(5P29Dybdx0QnT42$i%84Ei@=uWgfGx%f(a$_1i>3 zsMazONt|fRLe}RVOt*+w6}hlZPWf2wS(Yx^@j6Co%t!*5E?2}RF~%-q0Ze2!aBkvs z7En5I53G;x%usPc?$n;c^QmA=KeH=B`8ktuFpgn{^%BFM8MK#NAw2H1`bAe&3GMc3%D%-2zRoR+S3SftPGy5!#w&AX* zv7zrmjLNl1N%)##Mp28bHQSE={b&uhEosV#hE$u)3BuUCFQqkyiANjWj);gWYnFVQ zkRx9IY=ib7eLJU$m#mAPN0wVS`S~!rFZ&HWntgx2URV1C`=4mUIA|nJ4FU+L4Eg^Z zjr`w9@c*R77PiJF?zHC4Hr6HyJW50KFrlwMPz9(+AY=XdW(CfM#aE+f5#>gw)ND5I z&)S*xAx4X*Jd1#HK%O=SEU3=8P}5>kfWDDcJP|7ZXglFK2_)Z(3QgOrNuHtIXInWA z!jcj!mTMdZrcnyfU=ZtQr?uGFx-QO#|BTTGLmA&SJJS+#6M9cNu9ZB9c*#J#gPAkUeyjDHbPrs@}%w(}QZ_0{5W zUodNea&YXpl$@SQcQg{tXeGHtl}U0BxH~z8JskD7D!x*EEidezw%t*Xy=VJ4@ZQ zo#qX%J&kG_i_#wsAv2^%b}x-6nmY|8$K^pjzDT~mp%>y6Q@UhG(-G}k|k%<77lzpOwUM9i7{@{6(fp-=|f$e z63k-k*tR~%g(m3RvrIWv>qAj z(Js%(Xquqk)q{P^$#EYXBY&r~GV5_jJx$P0YG2A|=Ah%m4a&z=C3$1=Ad)@Y=}=CB za2h6aFv?e$P$5|-iCw*HRFf0n@og{w;8B)pgtkn!A24qgZORZ4VOFr4dK9l-whsR8 ztY=VMM@LI1H#ifOu2Zp9q5~3O?pB}l}Y;w#K9__B!bwqZvOC73- z5aCnWEqin`VC?T-x=}t9&8bgm_(5qfnh6X!Vx-~ghdJcNoHFF*J)k92#H8u6q=%1W z7!XaUJ;|~RehY`I((HUC85o~J9%~F-IM1fYZctmn6YvqcYBD7^d{k>^W6*3j-`;IA z#Mda<*1T=mB65{Qr<rrI=TiwEsh zOU`0j(jiQYQ`64F(YC=osFvCFWP~%fC^IVl6TKprw;4wSGnv;b%cs!_wdA`fnX)Y5 z=>7PC3&~UQMDJ!czX?;t9HtlTsixiWB6hT+D3$I_k;U#2$}K0S!c%eo4B;XH!xU>8 z8!a($DwTjH8+*v9%gY*--b_GI%sw!ie&h~U%$lx&Sxg`COq47*TF;`52p2O<-Apw6 z8&N(HEMoxNNZ_GYf_lmXY~8{cX;To_E_}S@{ZP0aG!smJBrS8Q;1JY%FS*&)!ZEhN*#P6AwK8pZV(4(4;7L;LuA_ zt75t{py7~LOneE?z{+KGXd|cKlU7=p1Jf=J%bfqPye5s&3$0BmP2w!_*N~W&JExmL zP2^jp7aG59Q9DywyklyrI&kK+(BOJ?Md)I}m|1MUc-owOPl!nvrOhwEGe>72(^sl+ zrUSBmYAiv*?^wzN-kEp))q5k4v}I*^lDgAhy3{`Y1}x7yUuNck)9m+mVd}p6Q$*|T z7ayHkqv?bJ@S84ksdsCd*MQ?)^X88k{AyiXmy$@oS9Ey$`|A^G->&1D>(-n;9|wML zmgYhuBAsgo8YH?_Qn3CYC7r*au}IZAn0Ex-ylmRhP?Lqax)H5~v`e7;=UegFcN0SL znqCpu#D!Fer&3-HUW5Q`LNr83&XWv-LEHNFSub~Zs7i|&*|Kdi$x*imCp;VlI{7s` zy0+aryTs&Ir5BmNxb1&=o9AukaI;#1cnfai+#KJwquh64GkM`lGSW&lpuab9x30Ze z%S@#VMx#YFsk=1>dKG2p2cx!g3sDpzQ|Jd|veF_xVqS59`%(dL$!d#ug=-B}jJ>#K zCE{gO-c*m;(u>7~{NdL4ij8RPWQ5BHf1()x&@9f%RtJ{PJlE@!9C8jsl^UE#JWS|R zociDnNRWBCv>}-UIUP@ymD1i?#|Pb$tLLC0m$FO?MLUkjb{FSA02gIqVofL`L0pFL z;@=3!4ePDoW%+ai2ZxeLbpyi6Bj24+1&OEhM)Y}!PFtQ2#X(Bq2shV)TJ*Rn3G8uD@?ZP#GO`6#dS!62DS`k-+)h(TYuf@pRU34^K z&CtlUf35>7!$I@uQ9BvRi}ljNhvHAOsq3(`zz!@wGorFZ4aD!7f9Z(+Y>*967Z)|B z-OTHr9lki>px#p?a?7l*1^SdBOYqjdWFb+1w?67%-4^c#d?6_az?N9RBC{Y8u{va< zsEC9q1gz7%g_Y|&l2g@ZTvgYu`nEaDQu-#BLb~GowMTEn?p+Vaalm2P)~cQKP#$K$ zh8f#B*yYC1PrNRch!o+D71q|VQS0W@zJ_)y!>x67J&2AHD^E^IZz(}RgQsmsc&Pd1xZ3^vm?Y0GMAtWRn> zkGGsvE=QJ*NXjItb|PBAE`sv04z>wpdFN2ZI^Jzzy#@$9B!2eRgxRg z2rQDwICmrtbuW*bU6iUdp%W-UK188e5D9EYMPj+Cs8J{gFT&6wTU1Mc5|a0;Z6s8% z5@b9rx*dY>SJ?{)g5f6-(g@npc!)}KYTqX)le%x|!r`KdDZB7HV{~*!K$Ez*7#MW8 z9c@yak>-6ar;RLkaNizfo@SdV)H*P+Y>DclAlyC=5+dvxGO7~4pE+S%!GlXHVL((> z+`;*N0nb;gmwzH_Kj(4h7xsuhX1cY6aNUEIT&hpu7{UEixO3+1czjoY(}aM>5i-RD zynV9j*)+q}>xwf`)b{`Eh@UCsgryN2fIMu{L4@;a3B@x={w=>x-p;L?6>tg~p`ZPy zeiX|whE_=3lp+3gkJL(M8QFLG@OP|b*O!-4)?0eId|lYukf5gZa#c8WYC8IqIdt4z zb}n?b@MH8peo#*~SwmdqNLxgP?qC5okW8-q$F4PVa&qTMojME$`Z;-%0$YASgwAt8 znJMMoYW4U7d0I9+Wt1*y@&?|QR)y`K#2f3nT# z;pX+Yd%c`ohc)TN!q4sW@_oL2ePes~@$r7%9q!+nfzR#AUv%N`@cB86*IDD*>GgTN zU)+7Kf9macyT5l%;7ygL*3UVN`R@mUrmCq&ic@aFb5NjTtzu4??!v!oA|zy2A+H<`-GTPXOc0o}v@z#48phS95`N-(d@85%+xHHY;45yO15{x;~ygPqFB zX=kUDyUdiE%-LQtkk{Ccv(>h^=22qAU8+m~J@0=w4K%4rRlEDB)oN_Im$WLFt|P%h zoVl|lTFc0=N|1qr*nL{(($Subm`8Jm$4Q&l8*SL7$bjBROAW(dR}DxI0Jl*e$eeRQ-RgR!vs|sX zVdZa4OSfN5lxK}p+sa>CwC{cQK8#p5*MkRRoZ4p$D_mvO15-igK4MscXF!B|X#={p zdtrd0I-*kFkWPRD3Nu_7Za8Wp1E&A97emd!h|p9G2z*z+I_=n|%~7pvBv#|-v|>pF z!7%BRo&edW3a@b?xTx*+9*>H2dS5ANTWq#uC&-DoU_bo!dEz4LpIirdy_wc>u9k=D z9ES#VQ%#c6jrG(9qw=PbiRO2ChKnG{Z%VJ_&wdp4O0^z%ZP=Jz!r15&B4ECsN;mFg z8z~+)PNc#13#ekDL?N~2xLzlgb7yO9=l-41ECzF|dYPRA>U7DJr(EYPYlTCkE(8&R>%L*e(onb4~XmMPJ)^8`8sd4}bfjLBHFrV>`R(hTknk+v{y< zN|(%4BGFZcS=J@tIgD#}L}%-z!j>v9vN~_PCO4?vpfw7+InSzK4_C)in~dooWHY-VpM*igSIEJV?R_}m8z%p z%892jRDmuk@V+if6G-5(*lZSaaIh<(Gp^z};qMZ3? zpD#ajrLEq!cEmTIl|19WMPuOWV&`@Fch8opHo$XX?W(V+j&+{CQMGYtRcsXxf zB%pE)xP^N3+8I*4U-^i7n8Le2SWga$xlK6e+`z0yMkH**zNAHsD6Eb?HOiL!$cj+0 z$BM#D^+)1k0Hq#qs_dpF)AH~mDJ<}G6g68L_0B9TC%82%xOx@?} zTTgkAvp8Wn+0IgO@(7}fGBsR{%67*>j5#H3C?1+8;IGg-^XImA&X%x7w{$E_cq)uY zQz<-Pz=RDzh(@8C&=*+1ctDTer0OU{=Ht|*J$lFIL?0X2om5Q$PmOs#zBRPC3nS+!w;^0Qmw}k@be_4~ht?4Hm?4S9 z-yU+CC_<@H9s`_dAzeakClcDaX#lR*wJY%ip2zt5ud=-|b1ZHJ3Y~k`+<$rU83uls zf_0TM5i6FMjHv~p4wKSrb5s97JsPeL`_J#EP0`Vo+vnj3yk?{gbovL$@D2? z&6^5EY=QVt8~DvD@0*)%T?oIl49%(X7v+oH(r&6doL$ z(FdUN%?&^<7}IAmM(JTJF^Ic6!uSU=Enzr|UN-AB;E&Rj2}Y-y5S{}PGBpX4$$NC3 z`sBB8*SGm<6m#L<{a7`WINBu+&q;xWLLoJxy-jBzmtm1mn!?3)j{S3jfBBru@YP>T z>v!nLJKRtE|8iA{&ZCl5CJyY?$wsP;sHEHxNV^9u5!Efe3^GsAC0m*ru$14VDW2Uv z8hR5hS5rYt@Gs|^c;Fkm*#hDTf?!3;=bTn64U0D&ikm{*^D^T3qwGHChCO-KeA?+m zWkMTOAS$3*vhk#?H2B-D6q}2I4`;L?3pBq~OUY^mZiH3@wG?MGm6%r-GZ0OzXw94o zv`lj;jV)!;Or%mtHXJLH4HHKvP;YOe7A~i!y_UKuoS6~4b|ct5#Mxl|in1Y{^f4uU zW6h(&5H8PxEQ)YIeO*d5x%4lLyFmbl+bw)vkn*+rUP4i?J$Jizl!QhjWkZx~!H3-6 zXv=LUlxog%b*cPOd}@Wvw~Q5my2EWuJ2z~d6>1kn%ual*`D6KVJ)%SCA21PamjSo~ zL&fV(1FwO(QT3-MRy=fLPJc{Jy5z+IeY&m(2rEY=kEZG?$Pz+=l~^MQ>~q4oy9_eO z|Hh9%o^j>;__9*DHWr5`MWf4?7c{_{Ye?ewxH_YBWhHyR8t_GXrYC#P`*pv*4eU+S z>It*)km84fYh7wSgc;5?aZBZ1CrdwSaY(3gaZTS=gKBaNG$fj4 zcLu>u<)RjegCB{GN+$=|1tAYvusCxf90!v0pL0fDG_hm^x#xorUZOeRkjG3)5~(^* zqg_5b_Qc*S;>6Fh@z-RdS9w2lp}YrU+bdO}b}z0!+<2-<3g{M9D7r*ZqinTN_7WI8 zjG@^i!`fOue%e_>dl_ZDV`purwy(b_b%>-Q@Cofa}{AG(ic70&PkA>!Os z%5MhMSP|1`3TR746RKcPO9NdEA)L&TB9t&}XGD6lYadorN>h}Z8q-4A*qJ za>z2zHCsV-hBO@%Md01s4&8@zNiuOsGJ7PMwMa6*Q_Wqo&0jbduv?`+tf`idMmAUF zMcTOcK2sucDjj>ShSmT4f=Jc9@8p!6=|iewID0g@X-?SJ|5K^%F;s`qb#h=@oL)+m zZSme@-d>oF(nJ~{Fd8pL`Y6dni!g9(Xs%pw_7YDfZIHD6=~C?V>^Jh7XmMo7m4!Yt z-K;GuRyj0h(q7HpNIHf0hxUoP@JcMj4ky&>_W9OJ5fCi5kcr$`fU?0=ceQct>tyYE zt)024(7_(}oAI>qtV|DwXOmhu@dm2UK=AEE#e>0GG(^4T^}$jb)CFg!_h|sGvFN2b z)tCO8)246YF5&IIuC*9IS*8H#%RM={lX%OxU#1QkM)80#nV)_oS9qABg<;6mdg@8Yi zQLmk3F2oMOrtD2Ey-rozBC-kZpRQ7vQ$>Vcm!@sZU|%^jGPuwT92Z3u=)Mh)Nz4=J z(7|zdO)jmjbvV#jIi^^nFl4f}6ZBv2Ylq~C`96ki=?|R@R0w`U6Eg-oui4Ef4*tdo z4!`VcfMsh~3cQr@oSz)A*stvs3(@UHFM)`Qc|&st3XB;YIl@UaXJ}xRI$p7@w%wff zBi~1}+)34BF^()*cBy>$)3(~kfZqe9St%@Adln~x8GgC2R{7OTp}5PaKE@L&PvK&6njGoZ#1?Hp0MsY&Up5Q{Kaz)C|nz8FE0 zF1y2%q2v0B%`h-Oo=edz|m7te-9M4Pc2O{{=+ zJN>uU<&%)=apLTri_xho6m)4PCg;JNXaGE`Y)*n@OEiyubfVdeuYYebH_)FMCbevV z-Puv0mDs8dWq^SR2|}B(sza=k?gkw|O!(Wm1V2^PSN!=CS_dvh0@z3RQnVQ}wfidN zfjiCe8WBQpzCPX%{qG3Hub&G&4`t7;6D+KFYWqF4A+ubTJhL;p$cFkL!F zxyLmKyu3MlnW~iFUsiQ3Q|WT95GM#GN$U2i+yDE=t#Uz!pk;0$oMRZ zPMKldTIIf1rYMM>VCP(OGxFupM=c8T>GD!po3E@Pt4w{MK*FpF=;Z>p~KtLzw zVTk>)$&rW8oFSFQnHX9_27!gT99acp#SyrYGzwTNYN`(Ju1opT;ob-`n|?2;L+A^B zQzxN1_TRgP=}irLZL=uc7Vv8%OqdJp)`ZjD>1%d-xq}P6)ab<>%gS#V^QkRerHTdU z0fvjoj8Azrpx!1bWu~;Ust3vI_(Yj&lFnU!Fx#Ec-T@6whmR`91J`YfZnkH|S`fU5 zsxm<{LAM%rKB|7J<9CZJhc7dV!c67*jV0kHfsh~S5TeGoRUO}OG~6wMHvA0$kSJ;c*_ zJGafe=I-p0h`j=JP90;@*zs)|ji$Zt8B?l45f<^YO|LOZw)rE+3Z-e0>C*Hpf+-G~ z>y@68&P8ew=TJ!JkNhahk#t9)dM{h?)ofYvjokY?S$i3onJP~H6*o?WB0mPMF7j{b zVQQ@xtQ9_Q>T2R}qX9T!SZK9>P*;Nimeh68Z|H^gNz$+-IH*Pn?fWI zbB%1WSCd~k5Rw_&(I>wWt}#QgD;$Uo0(?*$bmb|pvwpnd4)r=d z_jiR%xP&FF8GvjWq&SAYu%mV3{RntY%*Y+|z3nUnkD()TpATX5JamPnmvGgz5=wxA znKv{oA{_Ia&J%7-=E0VGkkjURESnCPXywcLU@u`C>2Cd|B6Aj`@Q}UfaR}gc1m)$3 z5Pn-^*;db*{8m^jGAG;iPsoX(6I+o!dD-48q7yKP>WV2HMRee7A{|Do+Mq}Voj(zj zD3mIP!^o%Dvne-xMTzW~NNA@;{DiV98^2JFtWE8qe)9=w*X3k{ls=YQ;r&QOP!}?% z*8Qn-6XwN^+6o_clE+6%bj8w_^W_g|TKs~VmJwyVJr+D^vG$>$%(1nIEGk#d=bwwq zWuKsn-uqsVzK!pgw)`*47{sq66ZtGU4_8Klo|nQU%Ij2&$3it)CyT--zl5p=Mu^23 z1xHx3zn?n*qp~HuytAcTCsH+0y=x=x=;v8D73Sp6j-}CC=Z*J>FZ7FeF0QqLdAx^j z^}2nP@m2Gg_sZcL{|TxZE)2Mrj?fL%v>Z6k-4h&KjM2u;mYgal7?-vw<2LAZ{rEIn z1pN`16|1#U*aL|L!8~i*6+g1oOHtqaN>uRCV#vo{kwsNg&3R%OOdl}U4Z<^5&MN&_ zkZPG;qkixTDi~yqAhH;v)(!O^BcA>>1}@8EjlqKzzA>HZ>6FbNe$XP(=bxLTVhiq0 zq=ZNZMR$@-&jpgeam1n`dslppkl``iyg8i&d-YD_t&3rvhohI2@I|$w?pei!AfCJf zb!>Xjb7yWZZvFYFFimkAHKtUK$fFV_TWMmc{$z`Z9X# zj4h~So96zr-p=&d6^CSLU#}CNjKchENGL-&386Mfmc)uPHkj~jz$;x7`_xLZ;B$}s zxBcWdqOxnZ*}U|Qcz$Jct#MRzmSEL8xhWK%BffqOvp`3%STzOEePIx>=7)Ug+kJy< z@sYLH1&`m*2i^N=?sm8L=TqYjJg5x*3;bKBjHqYR?{1i==D)Ctb~9-}Derb+2RY5b?)9EH?Qvl!%!~F?-)`Pd+eOOR z6(2U2`+jCIm~*=4Q~xyrzC!H ztM+hqe>m0!qBga&GZY4o_wSLIGtM;+4v+ikncI{5jL!pUIu*JrW5=tW%l(Tzode%s z$qk>!qyF`7V8~LS5+duz{&pd0?7J+;5=AArY8POjR<*nLgXpt`Bn&S z_A{Oi-SaEpQ@nI3Mxep4rusaBJ<`ItaL5+_sR@UA)k^earBeVAZ~UR4;_Nmy;5k;i zbU;04H_bozDDoBTn#J2ix(LXD(L6j888s;bWE_+(u~2(~{Z`n+H@0n_m&3I>{|+R% z8zX5X;f-c=Yeplokas@9zu}RvR^-jj@?kY$y1}&Qs+DVp$jpjYS*Y!^Chtn4%BSN} z+)ersiHw6x#pZFZWT7OXXGyFonZZMW)#QC4kRo(|fHYU#ARYTs7& zm@(PewcO}iRk?uw(J78m+C={{+Yk6PYv`K;ug3k>E<(IpyhtK6E!1_A!0YMpUiFu& zaQACxb1$tX>SoEW?N)68cF;N5D}nT|YX561qk_mMB$92tKU-?w(&WLXpMnaP zr(WmvA}Z!Sz8A9(vT1pB>U^dKua6a>u@BV zt~)D|tChI*F@)Hzsi{or*(<7O5hn7I`fNPmNbBjukpXd>Ty}O*>b~$E1{J-k=506s z4H+IK^QQ0T$3iWqTGl-``gRUiK0-Msr|OKE>v_+KhLsR&C+&+}b~7sJiybkn`#=dr z3y3vtzB(^lzUc7?_Lfw$VM-1bg)SD$OtLD#Bfc%(O~Ytr}x_UWvhj=`%& zH4iBB`tH;+0>4t1#5nzgsuDFXAUM6FRKBfuWs|Q-AC5dPxJqZCzTg6Law?Qt-5Q2z zq6(79W!o6J-*f9csC?9SV-{Bhvqz}#GF=-EJ`|&Z3~emr=?gh_YfIm)A&=PG8J{e2 z8UT;Oq1!Ut@Z+*E&3aceXP~;LJG37Vu-BYHT`eWg0)0gZo!k2h9}nX0*%O)!Df3@z z{#~tp*Qeo=v0k*WOtpV`oxJe_$$AYSeZ~E|ud$`_oSiio4ZKN(WAqIh(1| z&{7i<<2q;Jsi0rh4K+;Ga>J3!%g}FVzUc-&@)Ftv+ z;_#sE^6j;dL`{eGxLwvG=Nx)<>7&+}--->fgT9bd_T(g4B|rnC{XbE`U~dbQman#) z*X>o%g@pUn6A)@2I!1wjLIDDcDTuXq?&RWVD!XbGQaGGL>;zpm3ho8XF7Nyw4qyt< zV2lh^K`5u9uSmLvp)%JPBNpksQkE3#CXfC$tbu^b*y4*kIUyyMHQ)S(MEcmu;UoyN zvsP?gSzs*Q(=Cf9_K@6xT$QtRZ1%r-G$MICyIc-_Q(^nmyGzq)s9}~hB&X6T?1Bl= zFE4{k=OSzU6D=IiS&P-H+5~~Sv(Oegrno~8CDP;3yjqQ%xzr++!7^{9<64&d**IBB zYsf~Uv@jY6_|QYSOICno$oC1G)76)>eK&HR@l?|ikx6O$^iJyH@|Ue_2uI7IPoW08 zuL`>Vnhc;lWyl1<06ShrZ(a;s-MXUZzZ?>|Zoj^%E_}cDW0kvnXKv@OBgCJN!(egN zcjI7gak258uWP0|USES?aq%AZ!WCWLKYs$dzIhehK3N}c_8=#3@SZBJZWagwy}o~d zGW57h8^z>oE*7Fdit&2b3#Y}z#OP#y`fW6ql?JIyGh>eF}5cLVhOH70SVCP_p_ofiEO22pb$0g&cgBwH{=Uk zuYW~td#dyh<2mf+=wP2%@*hv1*$XloDQHKWjGDRiFe#kXx5dTu*k7=p2==@DR6L@} zu;phGng$Yej|Mk+UX`uF#L}Aoab=LhV$R%0_g5WAo&{B-B=BW?ToH1B6WYbjFP(Y% z#kzkKWeuJWqHnHShZADJM3x{{%k7=E~&wOTH*edeg9m2z*c#aI|5V1 z-KtjJ=t!GQ|Ei%s<~?hB&@B8{U~qy7BS?3_o&9(Py_C6gw4Q3dcjRZ$_!n?-4&+~; zq}jxe-d|j{K^_0D_P0`9?rlAs8Ab6+vZpe(GpnR8A?bwk>7^hWX(@&RR0U&8qD4C+ z8E?7>y>IyKpu0Wv8A8#8H9-W+dIBF%FXW`>K2zs=3*Ra93_=}HzUw(_5mgiRMRbUh zui4p%6nVKL&5R@Qm$DuT>iyXHHRAkPELMt@PzWeahP3szO zf-{0BZ}mQuo1+90{_FGi95F7qvAP@m~he>grFaJ zACexeSfoZIvuKf;_9Ttn0`yHSvx>=L37V^*V^UdiW2R2^2Sz zVh`MbX)#31L}g8+y4yJG0e9{2CR;rY%?(GOQgJcEKRyP(qCjgzwNq%wBN0N_|7y`o zZ9cV}_0h=o^F3J@Yh%ct<9rc8Y0C1M{Dm_C|9K&`lxr9HJ3;w;?E=M3ueCDo$3g0P zSMFW%)^`X8{mQFe`JfmMb82*~ohxTr4MoK^1)kde(UmJI17;ETpAcY(Cc4|r0O1mi z%(SGgAC>Z!CUEV#MOeE&6^@-=!o+(wQFA6Yv-tfR4jZQQ!o}IHh^DaLW`GddF z!raijA~J36c!5faLFP-PfSeLUroW);P!jCB&ulk9MWW-kD#wMmmdJ&WZ6gy;8v0$a z_TlxHy*XY#813mu1acMWrB%_x_X_^F_W@m=``u9X4l9E*p{)IvGuO?p{6Z{bFGb9; zNv3L^*p&R@pJ8-5ck7F!XR3-n9WX~0e`nkwqiN#5C+lwPDxV1zX?9sGMJCXyY;#C> zIUq&PWzm%$!Ce8t!v=%bO7wMag?39M+q`o8hksoL@SBhRSIeIL>;ke?SM(Zn28ZrM za)&W<0&~@1%VA~jbGC%#dbU#t7UvG65@uUy1pO7Q{zAzNu_*{()hi3EKr30|w9X~r&eHE-pBn=Ut}8qkc@D7f-I13uSTXjJ zShcK?OBoG4hx^B>Px@EFWH^)Ydukkczc(l5@ctLli*Bu1@+nDqlB8-+rHW~xcwB!V zOE_`2(DrwCMgk2^ZM+CyV(e_z_KDyLvqXQhf%_D46;Mht5}_aTo)UMMQ$h;GFf}zI z(o}YcD_nHX{*$xzo%XLMlLvzt#`Moa5%G_Qr?pN;o)u_ozyJGu)M*gitH|w{?1m1B z^k}q$Ub?Jh6rlWk{mm%7yB~kR5!rLCDrhNwV$u`b9H6>I(6yLo$md$d&klVYj{V@5 zhyC#Am{fd**r@-)m6H#Y(HS6D3et)n@5P)K#W!_W9LsmkHjO0q`ZgzwFk(wNEfua? zp?Y%6DX&wFY0zqtaq*?*iCjv`MpiXGXK16h@uH6uhNMC5b{5)4vfuyNg1fNO(GEw~ z;Ap$GOBoG|I!6H*6YCBU(WF726K5V@EB4Ux^8Es%bkp+s-J&)AG+VuPzI|0nr@=8Z{AWYJ6(c6u@q%H194qZsu#fiM$7;BDZN9_@|DG>hD+4MgCIE(iOie z;@ec>pNTpABr($(k7=5i^Vh|+=rm-JMN?|A3J=xsSzNi)V;SQfgIN++Qp)x~IRaup zn0Q6Ti&S$1!br^a=C4ahCWDHIrPw$+h3_-_HR~qG6*w1(4S@x&h?+YhV5F4T69!3n z=oo|8Xva)Eg6(okA!~!*dbDImcGw~<)ttNj7XU&)y}xazzg`=K135CW^+ z`-3WWh8{Lb?WD`=K$BKiV~6Bpi{3Q#!J*X4`9k(`9 zs<7|Xcdr+@dysQn(c$ivgsDG z#8Y71S$?ye`=?*q+ZrCWjKp_;Q?&d8bL z_gN`$+8~#Y>z?~as!M0*ats$Y$U}iH=8Ed^IgjUZiedS1x1`j^TGy)1H~GmwSg0bai9*!wddNk}fs`^$8v zF10G_41=re9^|SF@5w5bp5%4Cuy(SDL8eKukSbFqm}MW;oMfS(R{VW7zL;q|$(gd$ zMs?wj*~Ov8;4}xI$UN^lx_}x)gqt`@t0s<4{sT-Dih&I1(zMx90a;KbH>xd^Im#9? zzai+Ptwtg0QlSip51&-xJ4|>!`Lrql9ki>E+|6uMmCI;&5v;PfV4V!FdcHil*z-xh zLXe`W%IQgUW%pA}Px+!(^#-6l42F2hQu?+V9o16st%j{TLD-LlmY<<0kXLz&I<-5m zlkY42E1sDdf1&K9Pee(o==tRGH|%y)+RY}H-D{dk3cuBOmbgx~8{Xw07i1wkQbe~2 zkGU{L=wncWct$$4;V#TuJ;>%DK&6^_Sn=TiTo$Cba7a*Uzq>+BsGm0YS^|Jw(n5ww z#~^jBXZ3K_G z;bgV@92NPPZg93kSh&4Ys<`HISJB~8SCL!GyiyWwtG|~MnX=S{y5|UD050Nvre?sI zK3!ATWiaJCp$|bPtdulmcPVsNSVH0QdA^)y=fcQw%F@ejRtHh|^2bcgEKa)Y&fPa9 zyqt()rnBYT6_i1kGQi$NfahS5>}3~5^Hl_85o1$m`$!iWr(jpmD`zw|pyB6}%ik$c z8^XIcRZ5L^k}Z^_`tGIFXrK>MleJ!gmQ+*}h$y$$X9KK6cDy!`Q(O*1DKV_Ghb@7^5lW1rvS-q$K zZQo#>XJzXg?^uXQD{BS$Tfe-2WuGxG#dw9+Sz2(do2}sNqW8b!G}JoGRph*lubjDF z#VnqL-NVhzWO^nHBtNAdI}Z@+wbgV4OTExql*>X*q?-LwdNCcimvH)Ye=1n|Ax~{2 zdbNsOVr~1Uwr6a)-NQxTlb#gYNOO%Eq^Erhxw49_5EeRgGt$$8STReyYAp}4;$iZe zrPoui68}U_BNFN<_jbK%uwB`mpc5_B2~L#2>Me zSsBKPH^P<)u6lp2gubyn>q0-z^T_HfoRG}nn{?+-gB!kychYZ8Pe{V^4XG`Bb4v2U z{?OF?egmGl)m%^~RwEJ$Iu=XRh4JY#GbhPvP|24XEN$keH?2R=ve4H*%RnZ36mQ_R>374ObPjkfkzLl@=wv zvol0y`yiB;S4U7CbkBy$X+*WLXzH~}*XyPKgk1LRDvH@uk!)eAnBYr=edM>)LXp#z zI40#&JBj|Ox*=cyTWm`c;mk450Uc1XFHL4Q8gb3N&RHnK_i$8izfhqm%&E8rv{k#) zI37o#4stoZa103-^2(H!^H8W4#p*m4&5S|ZcJ|i=o&qhdR8?ygb8pty#ii$*6pFGU z=H9HoESq)yvb;CjA+FxjIDv=fR)$j4t$n<^H(=g*|}ops>)@xCBBl;X`)b9X*#am$#v|054KOR zD;&Ra8XZ*o{y>pg5IiIuL#5lR0K>G3JN*o)TGwiH?eI==4bq_&h-F-QsVz^yoWuXIvGj*QH6NY6;j%)ao_Xl)BRa4}7pk2l-$xjuQd1BE*q}5+Cfv zY;Sj;T5;y7*c0+k1jPixpP_eto;O-BCw#N z7)uttRHfnCM$y@-?6)F$837HKE}7^kp4pId^!33;Vly%k-%QXEs^oi_S~nBlug=eNxU6jSHcW#Cgzs+9DZd!h;UymIEgQO-8zyo6M6^&QIaF{F zMVRVB@mqqGck`?iNuQllAIhZ9Y`fsSCVgh)0*>G0S?)d- z!elmTCh(*OUXRk`{W|$mF?%r6gyDq7glUn(hqc|&_s>%!OLZEKL~p8#g}Yi2iCy2c zp!8R`q@_~Beg^TO{{r4tq&{PszbLe@iWB~$h^Nk3%gDI4r2=>c9qPT62DNi7A<29J`| ziPr{?ZTq^&Q#N>#q|bAcvcc0NeV46Dk+R)>0yC`A_GI^QJ!yNpG+ldp$U765oV^G3 z+fKvYL$o+a+1{fh{jq>xWbbifX7|t_CYlOAZBFZheq&M}JWSG;subY$KX_En?*L;w z8l-H15gzU0<3W-h?cw8Lk{&(4$D<@YdWet5NqY1MA5W6>=rKN?Ch5@=OjSQgkDlUV zfC~HgqN-8%F6thj@&^x+^v!Bv=VO3gg-f-&`yfeQ3zMZA_JiWL&vTQc7B{90I#{~M zlXPq`C}6^5N$OB$%4kuN)T7mOQ**z53TVVTr@Y-PEmB%t%3m4+1u~%_D>RpH%ufG3_I-xM!L?fQ~OwfUCz^%W! z8&3q)2=qeSEH&gXpm&Knw)E`Y$boPIN6KnO_#YB*5X_MP>1$QJIZrRd%>=hq^noZ$ z8@F1fqmQnCC9f2T6V-;}@Gl;ES}a9oTv?(4?mGrOQQw$Gw~CGK zx@n*}z|nspZqVz0TJB3judWxU>}oE@^M6`ZqYI7B{gp;=to&Ys56&GY{(3n{`iul3 zNuOCo0-PCG_mw8%34#D+BpxlUBV}$tj2M|45F_RaL|dP^O7RvSkxTEiTx9yjo?5@v z9RU2AVl|!%&>r?O@}UZkAt(@&I^rI(=3Yp+XOS`Tzt;`pxP%{4=q~-$)AHxKI33s` zH`%>J%7jw<`DjB)dNmg!e-R{gMK6d02vF90=?a_DsPgx)N=I)rs%&JiMH}f=i+?9V zH8&aL6n2fit;dR~QsT-IjeS<+_VpB-PiTJflnwUS?qjyMd&-RFm#WiA>19+r16?S( zKB9R`8Zc$;k%pAdvrb4tB2~+W@eqvWK2&j7kj>uxwQJ~uxHelYbUJONnY0>>h4&H^hSuMRnP)pP*TLuUfC;)G#IR88q zuJaDds!Z@%v-{L?U@N5RRF6QU(hj!aX)#`v#me|b+uJU&@IkLBGhfG1(E z9iGz__@M7}QczwMAbHo~bg<;j$ynV#8RKH%<@L}C@S_}S80L~8WIeX(C?w=Y?xsc& z=Dg1`9g`#Tnu-0Aj1+x+@XUv<(pi(~PN&fJnN?A716}Q4I|P$4aov{FD6gJmAuvXRHnsKUUmxzi3XFaDCl^i)B_CQOyAHBDW?0(uBzL9G0RN5b0`$ zFGpxVMbKxU7uYBRan|5{0Ye|`+b^$(UQH{K={)bz1p7n$zVq0)EdG42d%HC)egPyL z4fk;9;yTaMiz2lPVAtjTRRA|(s`)MH9>KtJk{RKDalyv-H;6=_OSON4II+Mzx!q@r zLYX-}tQ`ryzzT(E72hO}#z!eKJ*JFCP(iQ}k>FcdX^OrQ;v#AH1LAE-y9GTpkO^5C z9u9%JxhcpIXJ&ihW)0%mo1>Q!s>{s?ievtivlECriao^l36x z;Jxv8@ExBP>VQtYG-mzEg#tZ`1tIEl71cQyxRE5SC&nAvfYYm0IgczmBvA}co{&G2 z#B5^gd13DCL1zvRS6JkX=HPoab)b8$$DBv=La3LndWY#f=WL4wE)wwrd|M*WMh+dI+r?{!F0vK_sQvS zp(Dd)nh8ci@tDn2bf)3NqXyGM2d42Ytsb2|Ql+B^y=HUGQ3F?Ou6vm=+1I-cmN#b8 zA7PyiYN;E0Q4IpwtOQ6F$_?I$g6xr72k30{fM>^8*Z6iD`bgduAw_ZA`Vw2~( zzGl9zyZXs~x{kH`g!S)zA85UHlCVIf9Y>unYAvsoe}3vh+~CDLR$2K|gtgrF7Ie@Q zZ=OAPub|M8^=j_3k+8)X=BpD;u87*+HHcv{Ua#92$B8^;2Igi}m)xNgN<7{Wl%Nr? z%^L|?d{Gw!GI z7Rn!qVpjJpFO61VPzU9N^F#Suwg^}Z+Hbc z+5*E)$BYOT;fkd?#c=te2NK(Z1TMXssw%dQpuspv-GlX|rw)BMGPufvOvtqGwwzue zanx>;|A%`M;pt)UC{Egg22uCrpLdmmaW-LCrQw+9zVHJGkwhc@iz~g!zhQ?7v2{knpV%yp!(AQTMtz1x z(GSqZfejD;tXX}MSsiGpTDsGDr6V1WG`}TH=mgXWUNa%#W2OxgY7#~ss>udA6_IYX z4%MZGDRl_xUJ)UNn+&T%B@0|-G{3catnm4k=w2OQ_VXxn>#^?e`iat?d($wEi3+psYz+m%~qDN{>3x6U2%w*6H_OtHKt2<#3@g&$QCf&F-Uk_e73O* zd>CdqvOmy7JHuG4=tmu;mGxlC>Thu1V^#@j>;r&!$LotFDm&Y-oCT&YmazaBv-*Wd zy|PV^go)TPDNF0X`;~$k9n_I2v97<)(-f(`vrl=RL4tTGOVTNk8zMhRHug(&O z6TQW%TCeMVG-jn&hXU)(zj?~}Ck=UlqkAYox1=A!XhAwMhEpU{*5!e<>Vy5`wlSiD zVIPwJte7TLF*hfw@Y5boTIXU~Xz`(#&2rJQRpIAd zp56H057zvmHO7^qHO`AtwCGH`Hjo;&#>MicHC~z4L}xSl150oONW5piuBAPEALTEGILnl42)o#Eq4jO~i&AcC=l;@RlfERcqmv$;9EhT*S-L0jd+egk)SMJ{^O z#Yn^(R!DfhFYyk=SmGw?A9Ktl9&>b#YXmPPGkh#Lat_VDa1Ws?UPvexqcRJELbEms}!L@&3V+hw;U^b2*5PBxu$hqd`yDLSoUXHJZA;8RoP+S9+{A-p;>twZqMgYuswa!v9O=ohuJ< zg>aqJRleGcU*gU8jC)nTA!ZTThp~H;o}MOHbGVhs>S}|9jI?#%>@&tJgY#m%biRw3 z;aRN!PjVJik6YW>r7Y#S%%!>M4A$#NLT3*;*%`}t=F}2BNlhO3iPI3Fx0OmgydVYs zgk=4q02*$*K>)`%C-T(#!vTCD#81p=qAkuep!6}7T&?{J0lP8FtX!sEDOxxvB|q%% z->jVa_sxn!Cy*x3KF}8775ay8jNvvO91+^pwQru%G?SWao#0l#9&RvJ5@ivmZ!STm zR-p47nB0OlDT-kFh1Gt%5I5XurMgGrt;Q&M+_s;#N&8*Rs}0f>o~m@O#1p@Vpps(A z2LtchrnHzs@kp(fzTT;w4a(}?&w(yx={18V0V6`ur_;t1> zU9gRVnzQQpWl+7w67|U#EEhQA?4qErHnXt5oktJ*gTdp$E>i)*A>DYH+xIJ&vKWqh zQYlgToIVp%y(aL~Zx>U4gLKkF;B`8Mnd*hmD8dkLO=2FDu*Pkwf} zo8AX>;zL!nf_aaFYY2luf}eDH^~P=%K$}G@v@7w>Nw5v^T26ENT`nJK=iEhx6YZiJ z=)$+)ZL4TwLeDMiS_mor9On*5>b}|%^eoF(cen7wo&Gn+6O7LdrAoKp(*PLW04Cw65u5#v5&?9;zU0UDxJ_+rxTTYV7+SNY1JSn zoB*g<8khXHX(X6p^~2xsX!ns7+rdi>_`TrN&P6uy-|$wOj&>g>4=wAuGIR3}`n~Xq z0|Gd1Z@?5YEQ3fo#A`3AwJw+--H+CdFL*5@2NhZ<44XNPlGb@r@+T}?^WDaSG1tB% zH3{^CCfB>$jb7hvRETETz5BZ>fJf~Ps`_iTiax!+sA(2;W(2Uv4VI+3eTdlWmh`^; z)@HEEN3DaTLo{Z7O#-aJudIFeL$R>F&}q`xJS$h|49JR$~Gn6 zeahUM;vkOp?8}hY$)gm1)9UgDZ&Y9{Bes%MV985A52mr=!Wkyx{I8}m5N%vnkRBYt zGZ{T*c<+h)rrHHi;j?1Lu2i$kBPJZ@7$9&@u>(5ktsG?rBG6_hjMc9Vk-`Hud`07G zyH$gMKk)cUiwX~)oI+#cf& z(7gu~8GcJ@2Z>Kyre87$*Pt$sMFWvB7$dk8prFYW_|R1wWE>I7_~_i)Yhx+#L*chyNoQ?C;B%sU2?R?wQMA;vET|?OuOB zv)H}hvMc}Zhr^6Vx`Sdx+#Lk|y7zWtrk_3I1(RJ~FpPSC-?oOz)@pxWt~Dki+Yy%E zVe@1`QlPT)p0UmbXTve5S$xA7lc+%I%Df5WX)3mH8eJPo}pexzx#zAt{0(V>id#s`BZ zY_Ol{*@_--bE*ZMP8D-9fL}iUFhUqTBEf2!q!3i677L3wW^d}z{}5oe;BrcjE8$Eb z|FfQ?BeL52<1={w33LTKA#e?GDQPlJWR@4RH2D~%j@1r~j1V~CcnZj#LRO1YPBlDk zIh*$LPh#x-?TN)Xo(}jJrQkqsm%D`17gsD>;W3H?Fot&`)&7TxnUYe@t&S~bu6pvC<-T(`UO}I#G8ox?9klwiC1ti8-|Zn-Eh1FrIPl28eg^|r zI~NO3`wDzUfHy<$6|gG7JBiTtN~Xz41U+qDzZ>Vo%+!^jsc;!80sMA%zWpcNv8PoG zcgFSE<){@n=X3;Q#WW5ab~fVNBPmd9MPHn^V^Eaj=)2wLP$()_OR_Kc@n&KLA0IQV zq?)bQ-%p}ONv7gaq(uZ z0Y~sXr2W&{bI;-q_7Xxj?f|yb-tJ?UiPHK$%@diwO8%=iiw@NM{-l1uK&Z|6ud-6V zBH`idN}h;Z>@}3MgJ(LxvQWqvDGsjQo@MUsK8A5O;_&DizHvV#WCM2!aOVMcmy5L1 zp>O94B3`e5o4BV0gS#2wq&Q}Zw-sKh?0o8U2$?dPLOi$t1A20Zeuo1fIF1z}S@9=< z8vLAKOH5c>Z25xN8$6EV;U|6uZxXe50DR2BzpDXsfA=xor1-=#m}z02VrZVvrflX| za-X<}lTX~>&#!VcN4|>p7ix|yxWKBYsCBC_}-2l%A*y*yY*E zPhz&>BFR?7fbC_=WquQ7D<)!p3O4SmzY%Eth(}pz1%8wqrffetnU}EoK7W^dA|hmn z+0U+f-`d}rb`zOp(Z#n*5&c~<(>rs12FMT|oZvxW%#@7xf<9MRR*km zRW)X*nu^CxbJXP51NcK8hJD}Kj2e9Wn)}i*unK{KXp;?Zwpbx}KlTe%;K5d~-Qn`z z9sy8&v@0I$YwZRBEpsd_*znX3qPD!;0Iz_%vRuT0IDyI(9KMQbJ_fcrUR)VpWB^ctK%iR0 zj2l+KXv#NX`_wL|YnfvRKiqw=`{YSnzyTEbl}7(unteUp!ZY>T$)pB-&*loGSpdV* zA(d?m{sb7D(#wjQXPL!*zHEhKZoO^|Kj|oIaKRmAR@z_dy~rUj!B57x!;?M5IF19j z;hdidk5MYvsd%zq1Rv^e-Bn^dRvo8MoAaz0(+rW&uI^yAta_L&<9Jic<~B7(*I8u1 z7J+$)u}iS#b`9!NAtSsAaI1BzEsuNaHCIyL_B*zTW`lFwB5F@x^oOVvI?rCuJ1}rA zsO6t=A9p7KL+%h2HKn;BKi*=edKe{D<~S937X2()D90TWSXV5gpZ#go=}<3NZqw`f zTm+#%xHD>;I{-ZcQzs`HVE$%h9nmO;5nI6^hUQTz$S)t*!Y}rd6%tP{oSfp- zBRCE!_e)8igGU~jpAF=bG7|H+`Va&+eWfB z`d7Lm90=g5)I+itNucX6Y%L>sBrlS@>MBHtEH+`I0U7`$x0*b^{l=4-wE!e#*=Odw zH{LJZBv`05Gb{H5=V_3s?_oAu#;!$RqKlJlvfZkArrVP>oVec>=1ntOn)$jg_p_ov zR&BND{QPxQUmLYxw_dr zix-)%00#~TV96u#w$he?Iap?dHR>|c1N8=f-tiO9fn5upAVpthVO5Y|ndw)r$M)sx zd7R*VxHq@!CY_3|a;jJ{$chZrE=}p-0Tm3Ht{UVO6m-4JZry^acxlS`ZKmF$f|tj{ zw;3lJyM6l-Ga5wE(q2G-PR|&;W1og~gYcRHNz%=H$}z)6FSD^-es|^04S<|(til0F z1ml6CB!Y41wep8-5cac#V-Guc@7n?J5vn#>Q;FjCV|(HFaoz?8`pHdAGC+4#R)K(Gb1pC)z5tLp*<^#1P;{;f4(n-M3c7le&)mp z54`UIDJ7<6UY(B`GX7TI-jyK-~5AK{LiTceyI6oUDiTWbb zH(kg|Znl9R%CF(ghzphxmSl?nQN-})fWaf+Gujs@2E|Z?oV4X@71#rWS%RWp1Rp`? zqExIVfv!YG76qfnQEQKDnHgh^qML|h5=I;iL#KL#6)7JL?hR{p2=7OjbS6R^DeDkE z1iZy?F!_xR4UyQm05Y5g2hIttae%tv9!M^9H5=lzw0En%*}ia3E@E&TwsqNlehIXVI`G( z&CA?zCa4nlW|dt-@0xJn6t!QXo|h1ZgC3&*`H*Hz;;%Dp)PpRsxb$`Za{E?plCRy( z*5$&^&Y{a^0`hfcu~@nZO^^hD3`SZ%$QX5g>*o$WyL&2u*H7f)eVT>-pU(*~FF{`V(BKU)tAr zr=8tdYkf7bGVl55JfRdt5~1omqfXjN(hSV9qCh5I`^xE%smd#+@<;sU>*++u{?Yrq zUBVx|Il7tNl71!X^aR=eBX=*w_JwMQ1**olr(p?gM8Ac|QX?K1hV^mBc z3LXbfH5m`A7=+kF@i6Q}Se7wG>?88Ln`)MnL{?cdPFiZGYG||B`^Uly2KFc9Vp;i| z!TP}(YlXCNLIz?xU#d(TTlXQ8r1k;1i$NdcoQ>>o!LiDz3Rh*cc&91pk9>lx(-LMG zf^@|RM4f~r<-y=-JBhKoUdRo1mz=>i`r^)TaQE)Tg@U^o_Jn*8RsDH6iJjybHmU(y z?w8@MR|z052NT&oTHALWP``bXy!a4iI-&L^^%AFF62Gd9TYq2O;=mk*FMSGMvb_eBo2s-#JEPbFMD zF>WC*VY|UF&oc~IlDg6Fht~Rj*h=(EXeXDe6>huN!O9~E6AKGbHo=Zf)5qrm4#$~Z z$%^Ko0KZAaWd{X#)`J48ewr{jgdJAd1WX>>@S+pV0#5%h0Dw{;1@pwyKT?MD4wvW~ zwe$2LXy*>L)Q?bF+wYGYZOKPlx}$aL@%V`?7L!=8qJyW(V?56=UQOp(x@Csv%I)Z6 zxh0)!ne0E=D|@ma7k(Obc!FRb0zAfV{S(Bq-U;H;hbI=cg0AfusdcB*TOdsVAmd$k zh_%Dw+O4jS#kS{K4imjk%9Os^!3r9TMj}*nX!|KIuX``M#BQBhRS@ zv)m$f9JhRAOM-)7&S)KOz`--O13k|$Ebp4%m+;hW%NcGsY)KWv+c1h32s2z@-j-ut~ja9HLQMqK!eA9m|C-J48t2s4G(n~#eOeUzt z8@-BiHCN56?c6OLEV-v=QS>B_bM!<78tjC4f5yEv&-EhC?Mjs2 znivzB?@VYOOlYpwdhV1h;jmO&Wv=UZp7h7N)K~Fb!m{9`(9oQQ#Tt-B-}Huxqca8m`5nHf*Mr>Gd7 z!(IuI1@Phkk*LQ~H|kP1Pyy4r)jP3|#>sf;)_nZ#WL}kKe0l3u&>*>43W#1#;x~G! zmI9)0^wI(f3DDPi6=!Ox-ie*9ASlI!fjJ~MfFIfPrG67Y=`xD0{SmlUEqa3;wTiD* zqb?I=!D_PB*Qvt~eXZvDS}pY(Kq;@m!zcB@yPBboHE4&OiooZAg}>8_I184e-np%c zF{^hwvw9cI>YbYFcMbr;84##0bsaC0@xh_5;-$*e<$>W%6ut9X=BBl@Q2Q=~+RK!_ z@>c$pNt-BIejIAE5NdgUJvaR}2Fb2KCjI4Dg%?&8MHNXQ5SZ|p84Q6EI36JJnHQd% zTDjYcyY{NxYfsWM0VfJg1Gq>`wq@IkkZ}ubNGvKaC7O6G7VA674eALw;XhF`oyE1< zo#f0jzDCcSQ-bqFs5>t6S{II)E5h9=qNs2S(pr0lkJ3~^P17fJwy6TFd-Ns#+lUjEl9Xtse6TnjEfrEg{1cTO}oyH8p zZsoSTzuA^s@jK<1uS!3Pt3-K}6xOS9O!m@YD=1`c;wmBVFEo9&2A$#~6_OsfF3vIZ;H zNv+J{BzA#=j_uZ4-E%Gq_Ld2-X2mtcPp7zU>FUl9*fP3@Zb(PSL8`X9Ok!(L5YI{U znbe4ToarC37)4&b=TE~#{g`#~EdP@fx!st%8`KsjFPPK^^Kozq(RBiYTbxueH z8MM%ymAF;0??$i+$zkZ9sNRwg!4$4h$?{;N!aDnN5A>$L(+2a=kn>1tRGVE=-59d8 z@YdMH^EdCW;&!)V;*{ug;2ks+2hFyjFSCrP| z>6g*j@ZQ0g&v$j%MjpWtUnorr>hdFC~TNpsb;u8JC=o?1ge0j@RSaR-|;rJ zh6cEh>blbwW>=f$RUB!>(3LM@q>}96jDp?>8B4Y>{XO<%q>AjiJMW0EiOem zN`e&!XMHdkTl>@`*O{(T_@B|)Rmx_$+`eDtg&{w18om2U>tAVw7t$Flq9G2|Cx>w; z@8e8nk)*cAXJNcaYr1_1+2J`AY`rdpvTY5;Aa}6Nni?iMo2uKC{n|9N`dws|#IL_} z3Ey{OeEda%zKnjC0gJ39NF+EDSWiC_h=p@6_r^rNvw$%ZSp0$#di}$%P*$%;OHd1s z0Ng?_=HVSD`@a(K(A6;0jVeT19J5m`{is}am`oR`WP&MFrDycox)Zm)b`naw*6Z*r zRHN5BlRefb?&mx~C+q$ab&)mKGZjD%8{HLx^s6@Yw&(Ap=*sQH{Q$?iBxHAn(%zeWmtd{Z@$hFd18|U=+oerV3C< z&(sd#(S_O>WUcJ25k;{Zk7Kn5iTbSAXfVY5fLP;B;+c6s8chX8H`FDd@StUnr+szU zy`eJj++nB=Jt$h~$ll5pf*S0*yE(}{+Jgyi;vN?{Q^oMOQ!NL*l$G;RQ#E}a1UVgZ z8QSPy3bitET_IFpW#SU)57aM(Hk+0R6>%7zGs~)&B4p}H{ZiOB%F24Y1TEooV2a847a3zH2?FtrI-43V^XnhyL4Znnr)n14H)SUC_HWdDCb#iT_GJNxH)Oe)m_h z`<><6nKW)gf;X;c0t*v2kW8^RkQ`*I=_r|L14Y<7M7FTC1Tm!@5sddf-+@fwMSqq|mg3D-$#8pki7 z{7PQTt*i_ALmrLcy^xn{Luw2hssw70r%-Fv;c}s{e$lxa@GXP=5g{6{i(mv47-Jaz zzI9#Mw)PjAi#YUH0SGUXQ|=q^HBXpQJ>`Gz7`fFoqIlF>`uhj{eSyaJ@#np?d0B<7 zY7YVPU1zz|(J;&p@E{<_vSeA$F&7MA;6zxrtqmPT<>#(yd&wbTTqOWe-ml7_N`Ua_ zVW{IbG$4XoD6yb*@p)6}Og%v^GY5G@T6hOKLZ5vk7m)hqIACEz@NT!>D|H3qCc|Ux+J}%HgdG^i`Rs9`xV_L;ctgbKL5uj#qg~H?@2P;?g0$ ztMpSXC&@?GIjOdH*_{rcc(bC*W>d_hGCL*Z0~^2D`q-*9&1;O*kJD>_el#wIL1NVYhK-y2nFcIOjr=WXQ`mwr2b z1r7j;jsE83F=ZB8i`ptqUJYEPAbAsr%-wCb zmteU2PqF)aliqk5!e`7Bgg-O=;LnbF(APlhcupYC-0=O%0>=FcRPDV5k0^@YSLCv7 z^s_8}Uy;+cYV{Kp`^EI`CwpelB!B`C=Nx+7f>c>&v5>FYy`4JI`5!EjilpE5r|$?* z2Td@vY5@Hr7%gu z)J`UvyLk25{YD`&GD4{ViK??$jZ_!@UV<)BY9GE5|LZWyCIMr)(?EYw*V#3=3@*uJ zs1_57FzM1*2$kM$-3pUU{va%yu$=-Roz&M8TYx!Xkzp0`HD8eF*e~?cM`zyUBsjF_G8^CK&H4c)(@se?&3tFux zss;*D8n;ge>e4hV%KKuSDxH35}sAbkX%q~q$v?X1mV1)m!O!$-k642~KVG*SG zoP()!i2$%5R+c6=R?h`hU)a`(RitNI?3;eL_W$fk6kI>BNAP$k^a378N$R$Cp`Nh1 zYNJ=AzgmrPsPV|Sst^o6g@%5n^WVp0;a>p`Mk^+rIxE~zr`+Vgim23H!R1Hrm?f#`Ef^(k8A{BTx!Y zFxD=Q*wQr!F-%9qn&z;&r) z;n+#$Q7@bLtLo%!Ud}16k*XCu;HYYc%BUb$nXQ^-1s1&BY?{sHolg|=j^$C8RvqfK zh|^EiR>&I-&hDyt6W>!ebJMhSb)9lR-&XzJADDwIz#FL#vi-dsIXy#kW3}15siNWN z&SvwkDrQT$MS?)K`+n5-;qCECB-g1-$JIm+0@l(XH(`anY? zGCS&=q{P|q1IIQ^!X~gvBaeg$)lR?5JYgc0@L|fZ8q87G>Su`EQS=iK)#L3~ZjHjv zl%D5HZaVJ-Z~Yu#JNf0?y`WSll>1<8BVHNixOdWQ!6RUXA|)b`z;0!Y7DqHak&~(J z#3%{md<6?C5ybwisG6c z4}?{~bh)RNhZ5ch?@OMj@yj&DgIa~uXaZ0+=qz6;J+PAa7H zr6P{=sdY+26oh?uI;qnis$k1LbA73dgr6VC&8o|fo>74a%GT1_yWE-S>3}MIV|^tu zd-)pA0I9t3b&f!qY+$C!^;+#CVV!q8E&#fwKTYDY!rE! z+|>LCA*BM?_KLKA#@6G3s6Fte5r5w%Q5Zgx#81FxsCsDvGE%m8BoDLFtW0hMA-e%q zF84*bBXm#rktaoEa#Oms_=EshBG;JkD@{`0(xSkTdvs&N{=@tz%2Ul8A-71lkL>-R zqTafLZ%`r-Ag zD3a#p)sbI|&vgL12<18`6|V(G6ncR<8(hS7vNZym)V)8l9F*V&I!uRUE`p-vl1w&O zrEZb^5k{j{qsPz*(e@1lb*W~6c7Z(PC z>j0hJop*iONZ zGGHQGB-{~Tv9}64dH(rblQnzpnii!z_ztU8sh>9iNB0CI$MgJDZ|RpRJ{}_I=gV%( z;j!mY95!T9BNZIcA`Gip|wtVPB0xmh)7tx*3uZ9T_wn0+TS-J`lhP&B#2 zTC-fpwS&_WW1YB38svqLn}PpPp(45>*l*Uq(NSP88mGTM!VY#f!jtb+uzDtu#1cD; znNfN7RXuOw;ilb{tx#3XCSvEX?67{^)y_DW72;(2FA)#}bUWvLf~_BWo3B?+KY%>e zGoc_GVv|gIePHS>C;}q6y;1Ps61io-1}_D$S518P^xoj&{6gLBrIxvrCRa^NxYYms z4Z*+LUanBolL3Jb)@G3$lmf+$`^vm#C935h`T5xKs;#y7BE7H^1_J@=T@NL@8*fqR zO%vbLW+Bl3gDdQT`g3*uQ?s<|PlktNfe%h(@s#n-Znf{#~Ce5OXd zoqoHg%~`L_AJWE4cpW`G@hzg>fY9lSc39p7{u@50fPFfhlyQ=_oR@h^jx1t@cLap; zw^`RRZNhzO-D42Y;2>VmY!Nz8>QeNlXp)wQteRzQ43S^aZk(w%5^~8P&e-m^WVj zPbLr;WW&L&=MUxpoT)W-y(go?>|{k5i0+Wl<&<`2U1Qd@-?fMCKS z+3@b@EQ*ffAEMF4@ZRYlne_CZh|%ajDwWYM)@0ctN16@Nxfb{vp5g0tgQS#BriH3M*LX@;>|CA^Jx2D~othm2&t$4524E00bxH%)G0{|}5 zzn!eczn!c!WXVAk-Tkj@lBIVE+$s`Y8!Nmv>Px(j!T?Y!T3%?T^EgojiLu^TQ^ZIh zU^N)CFz|EcWX0L8toVVa_(vAcz^eYSrkF8#TFZCgyUOH7e%MVHh}u1r!qN*j@}`0}i$4^)NGm zql0`QqXWw)#KIm3OzVmTpR6C7nQg$j5%iUSJ3B|Q`*lcJS_ZS^&;Qv;mf;)`rrL4l zW*;c$PaOE8?NAsL&+?>c&tfw*K;^=R=rq4$7tl^FxDv=QI1ijA!S_;0QytWCcDBJNitn$HiVMW>`v&)m zsym9O=WfzM3rkDh?BToTQc)rQ53LBqg_X~=sGN=Da?Jz)jCM9Ag6^Ey+A2328;lFf zKlz>_{&2^KLRrOU;v{mI5W|+FghF|MxDp#!-ZlCoF?SwVtaYP)t>Xr2Vj((GL_1dl zZ-I&;)HqkiLos@Q!7S~`kvi2Wy`+~t$ES`5!si?Z$>ZsAmGa8OF>x5xD16=xXU*%1k&!h>~#JQ|_c>4U@ENas% z(}&e|{9^-OW8Q~{?@Zb1hZO%aQW2 z%aJS_{IqkV;dp;4Lav$^A=;;dyXt@-i7`6x5%%wR!%jbxW0&UE1ETJ$c*hF!XidP? zZNir`DWVQbsfI1L|8sE(@ezHAX(fAt#e(*?4;A11s*%r-%6b}Ufc2q zM}19n5Vx&!xD5PFg}vFMug|wmPmV10#;Hp6(@>A_gj_Lt6I13jfg`ZpZxAyuE$Qq% z5x$YSQ7MekJy2($W~>bRF`7*Bgj`_dSbM!=RA^mzLF;E8fMD0O+qh5h~eB9UNhrXXnufmQvmsYlxZK(pck+gO4lsNq8N-cL>ekk6N zv{`?{ZKp!rWHCRel0fsxeD{3lBwPLAB%hnI%@?_;zpc$8{{y_CGbcXE6;-4yQAL)j z&-#M2Nw=EpEf{yFZ>G1}Thr%nkP)=hFREL&)Zp_H`uQxqD&<2O@A z{!+h0d)G^iUOMe>P2Wr%HudnQrKRq@2EQf<_t#)W-@|K=p9I&S2d@q$_mQ^aw<1i_ z-z7{Wo$N5sEUMT=ThAEmb>CJvAghx{{#KEqk+#L(=U)nUG+P>bpS!g>Oy7f!PdfOU zP_M!D?*Yt3_7a4Z`UaV-QsV%>zlCL}{mmEgpJ>U;KhctJ)xSQ819?v{K($2wXwwc4 zaY;Yz@DMNfaqs%Rrl%cd;4M9(oBJhwwD;#@+IzYv=y{LWyX|N5C~fiIq0(=6E#yL|{8z7n-R0zclO@JUuqCnlws4%Hqa+5e>FKbfcB(&|46RU2v=qAEYx zi>kq0^_>qRP$(TPtQ7OKdvM@UvmO6yho^nV;grAs{}!Tt{6vWQkqqvC9io`mWMd>d z2Dy;Jhfsx3Hv0$o)Uz>u8nE%S;1j_1?*GHUw%!3YesU1lKC(S==wM<%iu-2x*Gc+a zg`M+z^-(en5dD20h+6u6^pyzNIM0-v@Zsl1-!VJ7`xB;_!QBM)Cp9Pl+ihX_L1lH+^mXhCQ0G!rg3gN_R;#Jxgll2 zQ2nRo_^7I9HZNT`#lsUUNlB_|(bIDFz!9`XvT;67m4?=vHx4z~1C0_?oUGWj8&{%6 zrBB)MlLIYs8>-x0g)?0!!Gc)-+ zL#ZXg31b!q8*&$fW{nszPc=Yhi!RGyb|E#@q&l}BQ+dnrad%!wo5BRJ#?0@7n zeBaR)Ff)rPQTZaC)@Cuy%cGWp071*@qr5zV)kn1n<&{SZ1j``uuYFa&CUa4d|k~s+V1boF?Vwm3BP0_q9}8pK1FRA&e^ALOku7}X)PzE%Uk5D z^CdU3-PhkxGHaCh<+M{PNaljO3!rFA-XP}XfvNL%W=@yNqq@4{gY#}H zd5BN^dZueB{N_zh_H4ZGR~~0%oN_ly*aQ_3KvTGgUZuIN8tu6&P3`RHNbf7O?m<4k zk8q4|Qj{X>qoY`Al!qy&kZ<4S$ePU88kL@2m^OZelBchebiO{x=JOceT#+$KLOlD8 ztD^2qDwb{8fjFDnV=|q>bt$xFH|}U8zM-_iM5m)W7kBNgLl#1>0bjY^L;i;|a;_^jJ9ZtJXUa+oeSF|E4F>fcQL1jTO4 znUROJY3pk-;9E$mUng*84zqf|;RSA*zPWdj2%mP>TFP2`i`|LwKWFNbxFpMNZxjv^ zhCk9!2}x-~5V3xNlNh(x*W_mEvImS#6LmAoU?QrwiTWvzAEKTQf(S_GE4tYLDqWZw zZ+sT%+nMExHv|a}^O!iPOoNsNj1bOJQFhiWQQyHS=ZxWOgcz7(TV*Vwo?&NoWyeP6 z7pN*^i=Ywk*%YuD1ukG+#+URQjrOdIgChu{vuo?o=wO!7}w~Ab_4vyymFO2LF_G>9)M}1v*>nakqnMr20I#%TvbE) z{!<2_(<2Gxo&@HB^->)gt&U@h&`8RKEw-g$4_zrC#olbZJCeNk=QQ3C>&@nPPQlqo za_-F8Jw#@B;)J;k;3?DDEY1>D&0-W~ByTcWaYkT|C>VzNoiw=o_;^TJx@I$X+GiKT zB%vtNq37k-j-DgFky4Sl995I=iT)yhAH%1QNsQt~d>h&;@@Ve5fh!wN4tW+x4T@UX zwONF0rd;e4iDi9L8gPtt0#7gEMx!XMUNx_E{i=B_F}9Vit@g8`vRSouX}T(vAyrnR zk*O$f_c<ZIFwX&33`f>06!f(oi;^I3c#cBW*DIqlwc?p%R6&lM z5`#i}I5qg+v|OSr2cuP+1s?@{rfO+uAg9iWY_*XCK7NAk^MrY*N_*P|G5R=7oU=@m z6$vC}PM+0isgQA?PNIlMMJPpW7S@-;9fEZ*4R)W(N@j4d`LhXo23vN5a<#FOpY^IE z{t?+dtaq53{Ifd7DE%4c3v&A$`e;O!{%WLslO2(}AR3+y2X{s`m4IZSuy>ItOhj?w z;m$7kj}VUhQm))%%lp=RAhjt~=5Z4OeLtH$&cp%?L{uk>J1!>4i=vWtx%J zi1LnZN{6kS<_kU`0+RxZIns^Ek&csG=Nn0)u#wH-6zM@Nk#Vi_=)W^ICe?c2z#QXS z+`Qzy=I90T9g1us=26nOO;GB68Ydkna%cM%b+yso)-524UV=zk4=VOj$WB~y#C3_k zI+CoWIsC)3L@f|N&RI+Zew-tWc2iPzzP5}0Hj;!wSxww1F8#O64AV^%##SqgnWQn# zIGm%M6}8wgPE!|l3x!rvl#`sAhvg;huU8K_-JH*ricC`uOy&2@=05|bF3+W(q3oy- z4sb`A4lAsOF#G2<*0WtpegHLP05#bT$OH#Nzz~2`&S~0f5`$!u2@ny;2k>*(@SE<2 zxB81&d~*fGfLsHFR<$Wp>83U%95T^_%U3SQK@=sP83S=YFhrtysUPW`kSTY#UFLvz z2C&j^AUV6hZdMT~$4igY6@YLrh=mG)Yd0EcrhK3|b*M6JS!T+)daMVagmR}u`u1>i zkLpI#9)lFIJHRg465Nw%*O(Zqy*&;tXPk_~kos#)(~ph*HJQXl&r#6xd)&3!#`EKT zL7*$BV+6w(CJ`KNyhCT^W_dlYv)0T}S)(?_8YaKC;j~OvZt{8hZLX?!rd|})`}7e! zS0J?kHqv0m)Ehk2peU1KB&yW+p;YsAQ#~h8svmOQs$c0gPmg_LG31X4?SrUD>;slsGsl%U<)9hcJ1+3HY72IZJ|5g=pkY7(#lh9ZPiP9+D5mW3qnyn`shzlud^yl)c`1&?&2D04@XDDt#6NKP=DjY%2~Hh}LvgM0%X zfE0yNb1ohiqD@Er4DPp&rP#;!IkNY9`2CV9-NITR=jeImv%$R!2LhI{;kw{*b2If} zOjC~fc$Q|{W%Jy@gdA#+T=cCFIFJEWJCImmL--OuYhoVVg=2}qM#G!$?(jmqp}pR) z?CRQtZO2oIMec=*jP9N#$=I=5$md&|1qSR$@OHRB8{A?1tUnctGo=@2Y9(QRIl{gF zl1x({mT5{Z9!&=k$TTm6zV>n*^Q5|IT#0;@oP@Ym)F0;{{^%q#CwOHdcztw|87Oam zlJ|p25<1!GIsQTTBCGXX=A;EczBltn`w~K#9BUN@Kyg;(1_i)?!_ce3I7)NqP%51< ztKy)_f9JEB$OESFnJCI?{c}UPh(t*b;l6MB)ZiHdPDo{3j8LNt7Oih5tQ+OA7KjE@ z|0Gcu3Xfo^Dzo2gy5R1jC$!*nnI9Yg9q!SN@Rb{Eq~$(f9QumlClo}#L;boaw8OoJ zva+jI*vWYHrCC(9*hUYu-e*U9R;|l+FQQ|&L}w4f-%i8LCWZ)1M`4xR``!sB1Mz;h z*Vt`9w%0aDL-)HmxR^MhP&t`d6df=H0_1q^!~?0%Af>>%nkNc{gY3_JC=2H5R`MX9 z@0nwl!k!N9f@~cR#Ff{}rO8bP&`Ckm1j90T&GdJ0Bx#bdMFg(&Q)ma)YTX6+aiy2J zJ(_ih;A?1-bd$wvF^tSV0@>rW#g}<_2!9O>6;>qTG%W}vebhSWWZ!{?*5*$E(nIYx zo4DC*pl7aQg{2Zr2r~hK2cF)CE~_MH{vW0X z5U}Qqv$K#U%!DSW9eUtygk5?-G<(&j31kPCF;<`pn@z}#hs7a01C_-F8AyUv?WaB zMH!UoT8S91>K(Ejn2{tv_*}Foe=6fg4Iwk5?h-P+E9i3lTTO^r( zr9-mozMSbBuOnlDGf?&L1FsDnDApflS{`J}5CV zNJBMP^xvgw;is_C<+_u5>l@d{0ln_=P*uAyLbdZ^WJ(9C+flW44?|2X$HO!ZD#?wK zV7roA%IsuE$xTS)P2l}%#aSI`6)D%8xIHLStWs}^TlXl`o# z2mDW9*<*osW~~^ls{O~AE24%JafGfK#8*D=WI%j4i%Xb0sU@3W2n`zYpmv0x^xFF6 zOj%<=4W$>si24l%5mb%E;*0*B1!cF-+Jlk+fhJtpw6t7iu5$YC(fP$hy7#cmD)C<} zhQYyXFLKE4;vD>*+pVsHttMk}VWxhs{mId$&#>vU&Zf)tJL+z_7?f}nQe95Z-2T^U zmlk8w|80lT>dvuPBPXA}^?qoXjtqcHHQ-s=as4@LmGYA~$0_ol;s*zydTV&@Bc#~Pjg~Yj7q#1jpbh1Is{usH%Uv535I-ZIN$3=w7!9mSyRY0Wo;s zhR_4W)iHIgsuK*OOZk9-bdE0|R(2?z1*XMs-9BR{aEpg}ag}SZW3IZdLaYXcK)zdd zu%vLRv}fVLqgN3z=ir!{NnGhF8g6iD*c)VYH%Y5V4^i-XSwZ{l{5px9csBVWPY3F_ ziK0+XMX!?^NtVJh)yZ*Ttw~CmCH0C=`?b0p#1M!f0fTcHuzpX&d&#~ZiN46|$&Jt( z%dK)U5^B<^3=D_AmMa4vWt32UY%F~evdn4QEx^h{wpbG$haDiGivfG^#XG zmz2I-B)b?nymi{S*`JLSHXaUA8kxQ31Ez=+#~c^f>HU=BNV>DM03Z+* z-ZF}v({L7@aZgiw;dRyvK(wyR)*ZeMgnY|MdkF7ih86XlS`mzoeGSt{9pO$=r(v`D zhtAZ|IvJBr^i zzStnCot;ybnom?%ma7^B2hJ8nO5aQ$A=5-Xyjt;tk!Cv zoKt?6dr2fZ?~Fn0AaGmS=}4ugp3fap1q2Fyjvh@2P^lP2hs;p9IN~g@p&YFN-!mUi z2FH85&uBeV4u!|~e(aBz0vRO8hMPVEl@w-ZaCZ0n&P5bGg(u(_xsqzH$=DGB%h87< zVR(_cLNnccBVw!{#qEhi62mtObQ3lj_!+aQ1{r0Xb5ZgJ?y8fxhV_^7uhLk0s9Jqr zd~zwt1A_QciIy3tR{zoe(e0U$RP-)J%@K}H6C&akzP%({&YBtObEO}u6gy+#)nW2|-3U8-@Z zpCF!q(1@V2i$rW=fW@P8Vd*k`w%Jg4G`)!v32{%=`m1?-X>65?3|Ea0=IMmwGD=7RjnvIGGPrhB9OJon#VUE_B9T>U9V~N&2hKoc!MHnn4D^ab@D{ z%J$?!KLbwV3P%8bg;#fO7w2EWvf@nF`d4^z*Sc5`)ubcrj!mH+06W0MBtt#KPUKQ; z11Xk^xU(R|KK2=ES0^xeQ!quMh}9)eU>Xfsv^xOP9E|^C*Qi=oem{Pi$H<;DscCwt z*Xq*`O~+0B6gj24&?_u2rTvy5+g~eI;t63^*{Z9<#UWYb2~e)P;||SwJ8pEzJ6`Jb z0-4pjOGi|Vb@QK?ovrS~tSG}9Yuv_S#&R#Zq!5lZ<{!>1B>dT}*T2{tMoa{<0)GLJ zHR~=Ak~o=*yQC$4`r}u+Lqyrz-VPy&QwZ93?Sl3;_i)mGZ|E4{zxtx%P_If_Hq7rfD4Z3HS0NXE6;^d9ExRX&L#0|e54hzWO$48dn8vnd>(NP0-Hf-oX zKw`Wr9BBk(xbjG)C1$9{B>?CMMikb~{a~bMx_h<*I*TRyM*1|Dm zHcG*20VoW_DJ4pZl!~I*dVLZH$Ye%B3E`!V!Td!=Y+%Pfl%E786n|o)3n!xX_m&cQx|c3QdHSIFE67rJ1jy)r9U?jFOm8w50V$I6m3cDLQo#2^-62c6O^1k(1ld{q7Xb1^Bi4O zrHB?}CYV)4k*yjtpQf;^lF7#=0%3+_>`euMp}^0e?i&UiBi6#SfgUYq7EXyjJ7p_q zOzJJ*_!@-j{YV%C`4ijZtQBq&!868K@0xrrG4& z3lUdUNUk8$nes;0 z)<(?kQe_xK{!bx09I)4C8mxBdgXCxNnS+KGlHlu{{}1G=9^nY+1Bdl4Do+$>?z;cDMdR-pcDz|%g13yNw=ukjG70g7ne05)=KwoKD zV2J=nvP2iv*Z*;+HK8E6BeH-3tRMieTAL_}f5+ZVK42$O%a5a7M~>~NNJ0f8R2iX{ zH5{PT&v}e%t-pz*3(_fDMsD}swwhQwjY&+?QqEK!bC+Mjc$cvt0+u>S<%b{e15zxd z)uihqPJF>cnpv%;r}arHL-7E%A2=HMonQeACZsxwcxIjXAY~i!TY7jJ-AVIB{09lm zrS=lAm+wM@l!Gf#O7=z$#&!D3<63Sx_pUwJZrJ+p0+sCqKmECEjlOca2gQ)^PmcA* z(ytfDkHajvAHXPDyGzLCyJMd9+^^Xk_5a~zl1{I`(u7u8NfPD(_EE<}xU&Pa8+pf}o{Nw%m_b2a9PpbOzAEUuw@Q>!*o+Xk1luEtp^Nb`6eBUc^EPmXP(OYj!5S)}AyCBiyLd!<~(JOQ6c-Zb}W-G2o{?I!V*^utLnwh4kEG{9Kyv9T6#%lA>RgruEH(wIL12x)t4D=0C#Tofh$Idq)EQ(zt> zn9ib|YWUD`B0E&)jbQJ?6VEiCxCiFYXC!QC&yv9)>n-Bcf&m57gf7zXzZMj?!E+%P z>~;h&$Qbkf4PXG{33rqI+rS`$zEHp*`*bj{XKYiGv79{|-Gvi2J37Fr6M2vAarE+i zbxu?cN0nkNqk9s0W;8+W>09L_LOh*HNm5LZ)~wIN_e; zXNwC_^u;_h%=KN<`owwY3>j@EX5VluzH5i~fbt7C7jtw{XU`}zI8l`yxr@C^Y^;mT zSf{Xa&Z)^sy-+h|$@jCkMv5^f`cW3?K{vSF!6|8*4*4xtnjCDMVxLoPI47rjpK5tiugJSbumqCMd3Q%Em-aoh;LV+=XHoP7B5B?A zFn5-&Ektz7@3H5&gT-%6ocvdT3tsCU0dJNx*QIO-cYl z%+0_Hes=0EDm?oX8{oghI3yz09^Jatg5v^Vg}>p-1TH*No9H%b72MfSaBM=cNire( zcBsbQ=?Oq<=;Hg7K1ZVM4@5vNKPReHzZ)O(+y+gz9Gx@d?3Zaz&jv{{hE!u&!JQR+ z%Dh=7;4#rb2i60i3FR$;T)Afcm*(jl6NH)Z@Z}(#%@J;=_cBQSwb94u;|^y1t<4>| zsR^V7qjwR-XR68Zh2oC2#_D3@nm zHto39@MS@c;HIssYh7=_PomSH7Dk?Iw=(m&hN`B z#JjqUDR~w&FOT=%?Ep2V$;pHr5td65E(5k`%`VpCJYo3tI}wB`;ey`to1;nLZ(C8o zmSNb#gr;>LRdv@Z6zxRyDv6udwLQ`OYy3>sh#BInYO_$7O>Gv^AELy>Qn7b&vum7@VGoR@IN)Sv`$iQo?l$RN+!7$j@&F zk#^?>V+vqC)=n-ih=2$=POE+n4-PAJW`g!_8V5>m7=U26fQ7(b0!JCKNo*r1Pnvo* zsqq)$a6L=u?+b%mN%XieC}-5vvlj-q!`QnItK6d7!qzbL{#A@ zO5Y`IsHigtCp1}@?8j3mIXNhLbP;^M6Ga)~nE+e}b&)oK`&msrvq@__W{rdon3T)q zKoB!#B?QI=I{^^J070HC#U(fy(3*_wuT<|#R0w059HeDPHf?r!to4QeIJ|2oAX6lynTLSP9c!jIDnj3_4{k?8g z+c8v%x`^xXKCh}4&M*{L3Q-kD4UfL6oE7=(HzD2Rlp>FGQ3gr-aTB8Y8ny(cO%IuH zt_jJp)B%7gLC(qX>%iexD-^EW~?BP|qX&zYR z-rxNys}2=*cjPW9rmNh001Ayl5NOu6b^dnUnr57z6sEjvm*WIgN#Gpth5eDNaQUmj z>ty_RPRXs|IZO5lqgt|>mmi^WK%AyPjO2{|7W8-R(!Bm?vfo~qHoO=o@+^H}S~V{S z6n#Ry1syL5as)sYXb}vp{x#QED`oT()U8!d@t0bPZ$e&`q`^W#UPDQvN`2EHT1jI{(qQit9P-teiZpCC z87H(_xM7a9KHY4P0QeRvG9iqRt;d5X+G$nj=2o33|6FT*ikcp`G(RH~vVd!%;w!xf z9atQZSm}jY=qt|K!M6*gGL?iLZ$ZUZxB;W+)-6`uq`(m z3z7r+ebD)x*7N&Z-_UWJIUJ@^qa5r$2lS-nR$Z-tbMpdKBCXMCOsuG$7YeEYwwJXX zx6)`h7~S=GTM~PhYeGcB2moRdc4`A7Tl9?3s(?Xtx~?#QdBENjxGpe}Ko$Zm?8v<4 z#Jn?Q+w`u8QV+)E=f+a4^46^+)8oIuRda>d^Cs)5I;X$g;ft243~}42h?;?u}vLC`C3x-*B^j=B)hhET zKx?JVJ(Jqj(ZyL5{luw2qx0b?ioTo09?^kD3+ZrqH#D zXN7K&<0G4VK`T=ziyS70ynE*krA15JJ~V~S!PI6U(K;RU=#hYEAXHv;ICpnfy1*dP z=D5cUv{wZpqinv+TP<4#62Jj06W) zE+t@F*!?AH(SPV&(|TE)Y{Q)a1H`2^#D^}K`&XBc8oUhf24@7t;|+Kbs+J4kK8S33 zXIq3W5uSFtpP?rI5ssbg;{2mIsmlA+)m7d;%HNt=be^GfLiF}PyZCzmudvlNfm?VH z0FR5!<};ABHc@UJst4JV-uIIkRIj&hLz8810LCBx9dRlY918AJq&Rj-hMXP{EZF<} zBt$-00xvF$akhZf02-wzin0B{0CWoBtly%sn^2;bz@^JVONuqV%Fa8ZQDiQ;)7DzX z#A^g+emh)8YH68Q+<=z_?S8y0oNz&^kY&Lt7J1&)u`G*yN|t4jboVG&N0(s36Ng!J z(DY^TS6&NteRwx@Yl))xvOub^WuYpl@GQ?otKobh>8Ixhv08i_e4@TwLF!GbMZ7FJ zzjT1$EbZ>UUw)4z#GwxYNOeaOf>fWuvE12t`tvLvDFSxD+|RT4jK8_F4!ao=sKgdM zI?S|9UQ~NlC$LI{7#c;t5PqpT34k>mXEaRrjt{$Dq2pT5ie$6t;h+%BU@K;YuBBVc ze!6Z0f=|~eNB8z_C1K%24stX|NG~4_{PVz4jlTkDY_Z{L09D-Ytg9{;!Z^j;KXX3YtA~rc}}T&4N^hEb&;r+ z>6Fh3fL(P|O`+4ETDR);7yK0TXyKtNgq)q8!$?5U}>AOUj6Y~^)^ zgK_C4U$hc-hPD#@B+1yu$}N-}$Nn2z6Z-WCP{h*URJ0ydj3uU}@D;Je}} zH%ML$UaR=H+H9&u z*z<<$3J*$Ox^K~=J@3uxs%fe^zsyTJB0c(s9(DT&en=4d*sO|tX5yI|3b{CXyWQ?R zVSiHD37vHqe_4gZW_o4XYzpN89~FI7Q_6Kzw%yZ`hkRgsR)6W7Y^So*@-{Z98BE8`Ihz@Rf{uAY&Fd<>7zitPikT7k428NQ`fQ&&a@T#b{l#aQ8F9@`W}A zKa1)+c%r}O0De!1MPEu@Gf0q7Pb?vZi-Q}*n%Bl}s@XX}UYSROYOF|{r=+57|!mUG;s5d`p7ec9xQXu@D3)W^eIvpYRXK*5{ z&@ST)d0|Cn+UEvD>e%2t=XMpQ&7xydw5rT!)XRcfoDUYf4BMGv7{do4y*eVzNPmrI zY`5`{WH0otbTPabQF_=N$l6&ldy;T0Z~c*V2kHybxBtFiMNOvP7wUbX?}L2>p$pQH z+sVH#bfyAs(Vu>gt?6VzvGQTR+ryJ2_c!(`cmUqCvz^d#xTyvQcxci*-}hdwCw0|u z)P?sDC{K6US$2cz1}<4&T~hA$Rh^0?K(Ll!&%@L1s8;*S+{M=!5Rir3)$z+4-5l)=R6vvAxebd#U!N``XCrs^~zc|g_`RbvC~bV z*PBfSHT!(CDU<~+d{_9dFY@+UXOqtN=r(HT1r0Vs1xEnO zRBtu~tP7hBgp=P0yr58qQoPj$?hhoviJ~3;Qr1t8ezDyoH-#>BOXP+ay~5+N$`Uv$ zQzA91<7!SC(}G&yW)D?clg=;5`O&P3?0TxEWmTG~n&wxls&2Egog(>${H*y`GUDE# z^qspm=uj5Aa3De?N+z??3rpx0V8g$8U)nkOk(0^74kO_z{I-3lSIkAYlFTcur*DxL zF)OE&=`@X}(_5?Lq^ND+;Nw;)?FqV81VR_Lz4#SRW}?na*Vxthdm= zGTQL&f#JycrL(Eoq*=sQNNtcdi#V7LLQOwqOwO`?to3LFOBVY}j!pqz9bA@sV6%Zv z3L1OS7+4&?k?&UL&?>J~0NJ()Mfi2mxUkENGm^^~7Su(1;SSYyjqz;<0DJh_GNvG> zw$(sxcYd!9Nz0uTe|Z< zHs+_&L}wDDyJR%%83-*&qpK&-8q;^@X3ZKK0Dm+}ZlFZ9>bX)}&w(dnd(H4^l?C(_ z@F3%Rg`yYu0HJv*`4IQ2xtv)%@X)^_iN*qUbWC1~{EUF^fXaHhaE}o$SL-KZ>S;fh*VElPcripZfP?PemT%Oz zPq%G^B!ete*Cvy}*=qH7P1pb%PXw&Je4Ma1OQ6EUYyvH#RYM=qElAKu z?w4eDwHmmwiwm&I#je{Ib5mA#-!T%MDQ~Ap)Nk004l|T~#%T%|d|Bt+NgFs86Yl<~ zmGBZJ`;Z?EZa6#RjqapxNjGc7L>r+j?nmdn`RwTdoW(wB9Ys5%oet9QnT1w*)``UT z$4qVt-UJ>+D6YJF+{YTFI(8MwL|71!<#pD%Mkxz8lV)87aTX}=`wHUo^ot_Skv5RD zzh^xvKyFOFMXfU`Oy^M7GCa9A>OIKk=th+_ zNLyr&nAkH`&*cYn!qDSc>jwL(A85!|O^!6BpU{(> zYdAn!)I;~zxBlJz_g2tATp#6z{gkWfJPqci@(8&M$Zzu=?5u&BWEeIKe>e?)a6Q0f zk%UQ4hyU01y*qF6u;Ya#H{oK*Uv`H?hH0)yW~6H)pQ}b^Csp}v)wJwJWv^vqjV!SrF z;@}YtJ7*NWGddNfomqG&IRb{P=kwmfRJ*h+R5L`QNie-M?)%UtzuOLhR^lFJwL|;^2JzJC@o8(+`A}VA?sGQ1U&TNoNIz z*^^8gY^`c^sb;!Xg|51c35w?0_~Bi~5K@AJ@#xT>=vmt7Abj!JffwyLbzVGh zGYXWjE~~>sew^kK9WAv%Y98Y2I(`KdozF&N)c$)?#31Y;CUL=OxgR4WULC<1>hLjZ?mwaq_jB#5!bhWiN+rPw z(a$)F9%zqyiR)yIs37vRP)`f(3PAW_pBAXP<-Xfx+Ou{)1f=In@)Z+t+M^OUb}QwA zJ+iV;;6`V)WONme=M}}Z3;)v=wzO0TI6dI?*t$sH3_c_kiCaM@M5Hkuu4u53OF(#`B2oba7G9 zqmfWHjt<#x=GrlTdBI7*$)Z{Becz4*ENE82sZ)fm6Jrzv+S#86Mar&h;o$adioMTpUN{CLG0u?flvOWwH<_g+gw(uu6Hf&l{@*oyo z^Wh4OWQcMTXZ@oLacI9KL z%V1fubDUBT`Lk@5KFe0>xgMwwENOko|9;Q|^;i$o?-F|O6@{h$On-l(zrPfEpuWSO z&+x|}2)f0e5`Sv^$=BRjCjYB7Vs0D!G{c`_t%v^@sI~k&m;Vd=wvsPb@_&hkm-zEW zp1hO)*Le7rzj!9*k9F+!=s9TM4+y)S{1Dy#A^qm$rR7u?ZJean^Ei;QU*Jus{}J^( zfaBS5{DV(?m~1xB7$=PW#f*P3pMS20>Nx(zM5p&oNAQA;qWBl1M;D{v*%=b}X(J)b zYo86%0)f#@W%KH|JJ+kxHyRZZ%eCjD?yqfZPmECD4^b39Mox*%2LJ9+qLW!x&P?&G zDN$yMUX7MT92*<;5Xd=WwBZ3=H7`1xy+be?dX6LE3<@A$ivT(S2|*rz?1-%{bHf zT6_v-Zebl}x#L)Zj^I4}#X6p;CSgHxqoGn#4OTu=4R%doG+yXW*wiAqnSErj8(k?t zOQkY>#+TDk2Cv1n%GNq_*?>_P5cq~WWRk6Qm1gUc)w)?C#Yk}-XKPg0*=D){smAV8 z*8Y*pYO}?29KtZU=>RyLwsj)fW~t>7YLcE&sI=?aEmiIw;`~q+`|Lb%Ii8U-u8okg z7bTNW8eNLHliuSZeXvHwR>G*S3b~6V_0rKO6*3rJ(Q-rEP`NaTu026YioAs^J!QeLKn;i~5&p4q+cP0uRw}AQq)jM>C=;az^+)mp3%2ez2 zaaPU?qd%L+FV{iTDeC@aYqeghYR!u?YgMn+SB0w7^yRXy+O{zBsk%J?Rk5{aj#S^Y=;=_}dtGuT^Ry_p>cjs>-Mcoo zZ3OAU-``(BW__?gG^R<(w}76oe2tyhu_HNl5=Co3#85;G0thhF#Uk_DPd(i;z<{D0 zC%f-Cb*fwz0nB}Rdivh*BZx)97;z!}xU=W+q+Zfqhko1uBBFClrsh3mA6Q6L`iWQs zVqp>g^_T1)s2}$ zz;ToKirMb0lS*>diDl|Wo){yc-D#XHl{HQ3|55n}0-4&#Sp5;}#|=H!9}yzL__oIn z;R)FB2G)Z^!t^9(3nXylWUs<)h1efbpaOnCY8uvvTZV9}J&6fF+aI#ViIih8~g89@8 zBn$blY&q}E!Jx`p3h{+I@FB2%k$F>FIQGKQwk22pE5ZTIpSzPKdE zyVc5Jg(hGOrbXBvwafKm+vn@SbK99&wI+7a`#Mx@oi}cshi#pQ^1Dnp<({G3PnoN976swXs^udwm47y(py!5Sy&uxKEaY8FSa)1JyXi;ohVAmSV5G^u z9-U_!tQzaYbFgc{QQP%`N)9ApIPf% zXt#V6UfCcmipC?%IBK)cH>HXBBle3RxO8j1TQ;_1Yc1{d=LeSnzFp75pKn$xGdKUa zycY;2$3?*o)4CBfTIOaid@k>Gq40M2T;A!vx);)LCLJiF;RIpl9RUv}2FUau$g#5 z1r`5IXcD`s*G#B$h#x z`pvWVh!_Pdrk48~^pf~33mmlv>G)dl2^(7Aq9rlH&uA!oBz1fA-#Kl=#n%z_Sa@>v z1|tJD!%)iuj+vpYtj2W4&cY^A`n%4aj1c+ibJa}RC5k^W6Wz*p!Z!uZsolgsO-LLq zAIS?``M)7D0~RP3^ssKVLH~GJ4CIkvk+az}f(}hI@ae0<@r z*(Tl6ABFz+nZ#GYF?qSdH~eRh|J=p(UAYokYe3GalTOeDqHi`i#YW)oC=K*n;5lk<_-#BdMh_mvEzb#oDtF_NPqVai;LzP{c`L?nmTy>2Ni`j}41^*%+{6 zZ|(sEY`HYNs6g}~4TDawQA}Gl4l`A@$464h z+|1OnWdUY-*MMfbQ%0TvF-RkELLkKJ_$6q@e*soy{r7B1{0WxgI+?eldM6PUasAC< z>7wn?J=}#P`!uP;Rz}1?{In=ma+->Q8DJwHgEpHr1dn8ko&&Lf*sokl1@10~R;7Se zB^IYkS&6R94CeWF?!vRCF}J^ScLEO31c*RTCE5d$EoIqpJpK5lN{b5aWJ8fA{=O0p zm0>8n-#`)q5Z6eg{-w=9W?-|bd857i_aKEGUKuhztX36Ldb}RI70~yfD-p|&gHn7P zlyXG>fKmU6|GrMW58bohZT7Xzmd4le+Y>h5-DYHOq2}xZCaPLFbZ5xGJX2N;(G*2Ybmk$r%)7}`h|(^R0hP5ILS zmp8k8ArljVgh0y=#usqjq%h+?cPc*EDxx&O;~r)i6|en3%)dRE_$6XFaSIoLu#4gI zAVk||=u`7g^W@4m(P;xIVJJUCA`g#5DeG}5OD90!I4Iqyb0Yu+^ilq$$`n97EJdbf zIxGkE6q@&!YNmxQ%I3w}qFe_g05lSxn%B>j?cj9L^7%NI!*Tr}u@+9XwQxF?$zgpo zJ|38ko&MzU0AmoF-`*CbJRazxT(1%5y8lBW{!HW#31LA8#ifMeK+nIG`Fh>TJkWn#^vHOfjE($!UZhy2-=Loi9!g$sfFQJ5S_rNyv^;tOA4{w`^I|w5?WPD z^Fqap8!2^eQG2!WEoziIaB(kkqx^>Ao0O>n!lU9rWdXdf0A9=Lus9mWzCqaHvI*9F zpyTPsu!axP^y3;AuF3p^el-|P)NFZFKklHBrm zIk{Nw?1a9xA5lR_KdpAafgjpS9bEc~jGa_Mc0a7Gmzr!6Oc2=;p4gkdh0<=;~YT${18Tn#NYE~mqG$4Gk9K%$GpgNa{_UB7bPS`vm zfoQitMeOZ4P3cLPSz`b>vpxCq5gZ!3)0Q;f=YNkP<-ZJ2XwJ?;PFq`dc z|4+p5Ae^q2PmxKOd_PlgJ&kjm&|(+#_V+QF=is+tK%k`uS-xwa)7eU7DI*_6vQ_2K z2zvo_2lFqs4`KbEY0SEr+p?EG5ue#aM`uGLqAIz_$jYl7hYUi?7o{p@Jx<;S`sInL z(o>a?ht{*ISkReuQA!h`z=<&WBuyS8*PUC=^ZdlhzE-P#vZR2Fh~9Cjc=;%^PCWH@ z0hHgzNZp3jv3Lg54a6ESrBGy-RGG!AtT=E@X6%MPZjZ)|W}|@55w8PkNII;Tvvu?X zU*LSAu#`Vo^TAx5^$wICS0Gb-EmE5)jFS?;3mM3|Ay!kWj#MmdjbNP8r1N04@}c`0 zij;y;=44>J5r`6iZ$eQj(XpITi3O0W^J!PBVrE!jXdT7t3hZ!4H|s%!(kNj)`ByHW z_<#%AJ1++!g8>%Xb*)zP7vhZ#C6MRs4Ts-S>gRenu~uQm>L%1M4ub(8DP??E0tQxs z-0(}9W`+Z0?7U>9A*NSyma=Kr=JC;2k53LmGb>B!N__?F#jPmA7z|JV1R(7|Q1{^W zmN_vKy~>OS>x`RqdomsqPmQc=Eb1@TvAla>Vi6V1=^!;wx;Q`Zd3r%rVlsB zs%gUt2fLzzz0vI;SZ{}qD-%!6#0^{iP|@m>jcd&GqA1MYI-xX0^nXVGFB3UzO)g1E zaEW~@66kM`U8Get6-XC@1)0Q&EE1{00)M%b3dA(QF{zW)%11{-ahmw<{WvoNg*|4L zc-}M#E-{KBK9WR+00w5l2-%+ICtVthbp5fh&7-179@ITW z0&dZcfx|eK{^-F2Hc_~}yHdfVID$_L!>^zVD-dU{(;9&7+r{M$K9h@;Y5ZMCXCb}gH7Y9&?Fx{|t z!LD{d(Yt9h?xXSWL2N7-3S+?#gHIeicu_9$mKiOj(}=`1W`}&aJb!ctO2$S>l6cQKwz$* zkm9}#S1W4uA6hOO4CUap2E+cL{ED(ae348Nq(I-#?I|Ebdl1xG=HAVmOgq|9TT!N= zvwPZJ4edC%cVgJAJ0ELc?}xd3X_Dj^)jXU^_B*e3@7}+?cjxw<%7V1_lY&iu)e(u)W~46Y8ntJ0tD~321@%)1>;>KnxRXG#~n8 z%MMf|==6gI+5|ky^>s%IEH&BKKr%3O5Xy&kAu-v`#EcPr-$g*UAun?gAS5L1bO1*OK>8AQ@sLR;B|pStoW~(4P<~P37wgjSivrtx|NecT%3l;2 zg99DP1}2wD3kJtTjhRzwg0nU}gOW0;FBZo|7Ioe=k|%^+w3!D9y{Ij;uPZ$Dv}Sriig3XCblF{8y+!n!qWlR&I>pSy3(EY@a3| z)txjVokXO>7%Jiio)y*NNvsjT;d8M^UF)U;niHGd(k_8`it6R@B87=qPNTB2ASq?a z`xndO#P?Gqnp~~0ioqZznwH!kAii3pTB~YYkch(9vT({yjuYrpifZwYD}|d;ciV4K z&}a|I@*JUXs6!T?)im*kxgT-=k!XIP6s(D%yEj5qWUUKpk)^d(xvJ{$@Dhp1VVul% z*Y=C+^8_Bwiss)`l=)622BKTqPRU|&p7^OKf)LzXvlnSFepvgtxHObs*dGe`Wra#C zl%5w!m=5@d;3qy*{x zpkMP7vFDpdUXL6KM+f}QMDu~w#|O4aEn)vJ~Is1o{vlC_Sr49_e9 z>%mCgEW&A#Ef==7@z-(pOgv4jRL_r&)vTzLE>2D|g&9v()|+NUt$JyG8fR%jj!gox#o1>9h{ zx2cn8Y|tkC%_QJh`G0K&P&`|?<9iaf(Wd57AD-%?@rGMCy|mES_(SYOA3hu}kB>7I zjXC2{1yRl)$Uv^dE_rHl{v!nVZ@PPJXiVPk3NlhyudU?mK>U&TxloY02PFRcn8=8; z?7k!-EzM7&9kNWQ;yfu9elXC*fv(d0#NWFc7&>9sf$WFG5rErPhaZ!p;FA78w)Js) z{w4@)Te}Z)zj&ViG$C=i4pytzm|=ee#Q^^t5@o~-gU}P*RB@r|@&;ookzB1b#9?3JIA&qFn7^%N5Y^}|yT z-MpEqBCQKTFkkcOavGO!mNeb@u$tWCgyy#c7cuuEYtu5>q_`QvXar~4pF;A- zof^Ra#%eki==2VEdYAv~+Q0Xp?uupIxT~9tUM&~9b^{-ut&vkwjB~XXc{$If-Aw-C zHrD&KqB6Z-%-`RtFq4luMRXcw@;CQY#PpcyjvuJ|Oup)rW2_lw@~6)0X;EI7%2U7( zZ2o%AOS3Fj)p?n&MeeZ~xGg1~F;dW-iYGdsE7R4$I2512U{(yFaD~Kq!;H zc7|yPQl5%S)uQN)oG$&OAwtDW_7f5b;!Y+Lw}=Jz<_W7Ah*BmKAWR@bmXS_(qQ`u7 zMB#J{^SXwfUC2tz$JQm?;La1d0Q#8AlNM8o6L|uJDo$YI;(7S9d)NHEw_43jkE>PL z{PIuahumL?GC(bir?J`lG4U7TM9g8BKQowpAr}_q4jZdGsDy~t%KWKVvg{{Ec*MFR zx0*U~t7HxGfK&?FyN5U-Aw;ZG37M)R3NUMDw-7rf;DFE+T57w#whY+!spr9xehIz& zQo>z4i?vFa7Dtk^8EiG!BoSiTGwm;f)oOY8K_9iWH+<`nrGs={G98?yc~YF=2AZUy zKb2{hN(v@ZD`rEyg4JqjWS;M-UdYu&HrYNTU06F{L}gpb<%CAXay^*E^XB+7S@_F9 zByvf6jW4s+3QEH}o`*lX_xLaQVQ_>WDDq59qNS_?0XM8ATN@|xWiC#nmCP7vNZGtF z0+of?l}J!vo5)%1EqjC&OXRPn;jW;Cn(j(#7SgsC1!5*`GP!B^RQp*V=5lF{3cXnd zg265EPsCy;V!SIdK`@7;ppf&)nLz$cXW!*qoX{eQGwr9iKjB`_JZs{YXiBkMYROF{ zwyC*DHkz7=6PaMFCnEE_WpEsln^q#9C8Cs>SjeTABleOk$0y?xnfNC`FyGl3pE!)_ z2e}x37=Mt7{~-uYc6R8*kB1NDH&4bvDHFd8#Qf$>`}*YOd>kxf;=}yezQ%Ww<>E*$ zRx67pJda+q4kp26A`LCwJ6@aCxwW-1aU~CZ{ynyidY<Sc%nnZF zg$Z(&&iu0Srva=Mj;r8Qe&i3Ar}9Zf1nz}=Y7(=-FA+=+#v=OJYL#_I0bYSsAUMb9 z6>p|ctLn7UlVP9>Ur|iS4bdtxq#*Q zDS;XjXuWuS;dvLn5>v!9<#|GS3t|TO&7Aq?%f+#(@U}7GAqO^A$XHDNi}t4?GG)b- zKL$33{Ds`uAWLjo@o|Xtya-mS3!?Yos*t1_wyD?xT`g6FDSoQtg?LoSO1!J+fVmER zjWja~-&OKaB|mW)mnL=SyXO^*Q;4i3QkLuzv9F~we=$kFo zj9OrP4%3MWHL_wFXLMvf7Ln)qS+!c7F71#6JKNsp+dga`q zS1#6pIG&tSKtg#O`p0rwfwMbqaG-BLBA2i5k7ZR&mb}nm!hdmA&Urvlk-O4&4DY-h z-UU%p&vWQY++xCrRT(i|JMar<;OFZ=T$o`8fj9s%hqwwyWc>tBI&iai|Jca7n8|MS zi>hfg)Eg?b+>!LWp$6KRMY+^1X)7uawtx#q48SQu(w2_JK|>57kg|v`dB^kc2c#_h zy|-GyqzO%s+~z}0@QkudBUOWCUeD8+_GvmP48lYTLYLy-Ips*N+7^OUf;AH6`S+?Z z{3H3nSb`iLwNjX8R$7PCf!;gz2T9RuYugaNFvsBJTX))@yZ0JZyJC%W+sBKJq{kXg zAzD038tD!zu(H;Dl*wNk$c00l*DWnT^65svg5`!}7t7uHo`F5FC=zm;JDx{D?CzSs z_xNfyn=qA`NGE=VHO`U8JhOXIxODVUu`d&O>-XySd~)kV?Bn-xI2;aFzb~IXd-mkkNvloxFhMV1c7MREb-5W0}nxsEFpgDSu?I3s|36@+$DsBg%D#-ar8 zj*(nh<2ENLDYfc(R6B}xs?KdX&EmQS%thfo?1UnE5p{#DM>;-!ktgch7Si!?O3xeR zlGF-Gssbs%={i15)!C!s+&rD7iJqI^bCsUVwP_Tt_nmtlVd$c;qDgnd-A7Q8QO;(X zpot+AT=ER)W7F80#!y#N+b42xgJ$4Wg+&OivN&3;aNsycHw^WyAD-4#dc4%i&&}}2 zA;@AZ17BEn3oxyD4{h*<$q#LiNpASrUMk5(KV;U|vBlY3DPwHHtL+%8V3ym)hi*3- zjQ)sE<9b@9r8dzYai@|4g#Vupd;2P$YM2-=dS`LnTjuJ#R8y^z?4oDQYm!0l#jJNx zEPF6dQ&4VK3uAoa2fam{FXJq`5Kx5IX`-s$vWAk9idE{*rK{NA_XKA}1|$(994yQMf; zT6Ak9Ffyr%Wu09dDE%VORrUPstCx&{_*!L4H+Dv<`b|i*)vE7DA3n_WA_IL~1sg$w zk(m&;JrY}TF@%pGcmcy6bM(bZ*_T}piMzu9rf8`h5S(8fMs2aobXo%cs)79t35!K1 zeFxoj-kQyI5&2@NRl*HvmHgXQ>SalWCXb6;JG|@rxXPiHW#nfIJ-n@8Q5BzAZbs65eb#`_(INKW()yb{VH{X17i^dxXx4FiN&T_P! zwYG~~sw|@gvujwzCnpdjm}lnccqy?|`|4Cxwfzbw{wj~NeN`9BYO3me_2&}Ntxau` zS2(R<*Hv|@9%kh{c21pL*S`bB$<@maL{NDB1<#XDb5&WbN1SEF*|TMq9ZV|)3XZ@e zt}k*+R$!iQkY|}cK`&JmS#2H-l(kQ-GRefnwx9U%O*)0*`9*GibieMaMWGdXL!=S& z4cEqx#XDHz#M-X)JWY~jxLE-`6^%SEUKPo**|2=GUQsr+V0Bc#$g?!JjaDj7Ugw#e zDz0v4`(OlG)y;0!)1qu2RJ_PwgT|vswOSnDdldcy)Us_q|9&^SYAL9gV0{&Z{UKPR z?QQl)eG)4-m&m^dxi5gXX$vk@ac0*DW?g2v>N3v%1^jznKdpa^fAp)s^F|N0P4){$ zR~2Um)IXEcI>y=9cDw%#6>Ntx*>?QGD@V1<5|l;Bdf4|}o3scPBk%plsQ2*nl9(A= zq2UJjXcOjpIMqu!DW9n57a_^m)Y;lz1u{ZK;Xi55)Y;bF{y%Mudf(R4!Mr&8N5iU7 zVOvXYQ~eKTsHw)*wm|Rxlf}a6yE3Xp_6XJz*S7P^tCzU#?%x6hUYGF{7Qg3$dRP)-qJP+S&ni_|Ka&1MNb8T1O#+by{!sMHI_hb#5;#nD`n>DcZ;; z?)UxO2e}cx1glkkI6NX@E<7yE@7Lgl4@dMqr}zB(M^X{wvdG~t@8_t_M-4owYa{lq z6?1Kqg;0$7Ynl81CrM@sc7C0B=bwviwu@^l1LE8R|AWlRKVh3Jsr}!f$N!Gb{s&ME z>w||HHj=N;atH)er7sWxoYj{AY*I`ZV8(9%wjawJ0l4b-sh<0d)ds@OJ5Q`z4taP5eo=fErH?k3PEsbUKd?bw`kQB zc`wa-YN8JFBjNxa+9`AtxXL*Sz<+ zK?IGds5auzBt7jAHcVKYT2`)%8!=&Q$~B+NbCz1%Ms?H0Nff^KBQmbHBmq%*;Nsbg z4@py?Su98oUtrmCXqd@>*o7Q~3`Uh&=I}9wRNXMwMyhL)rbHxJ+|+Z{)$~B=D2zAt zpN$BZMtrSspv$X|_U^#~w+V#GvKvG=%vlz*UdN53$#ji?ku(Tf2I&Wk&<8{2@Aji{ z7PX8IoCUFx#=0MCN$WS2g{-9s@ZXrAfX$`ltgc^9sK~LL2_>1pawgs7tPE6;pe&4K z;z|(c<`3)cOH$v1waB{fH#z!c_p@P6i|*SE$w2pGi`hTFYtF2;Zy<{hOkW}IMuog0 zb{l^MDOw=jxLAr>#4yt6>)@ zARU`MXqIT|ZbEm7YT5Z{Wklc!rW=47i)k}MEeny$8c9lxgh}@M6&%hnl1Y<<{5LEF zzU0W*6E=@9eDAIZC>_$1(3;d+)})ZJWHW_p)}*#;QeRz@y1OQrog)b9u1Vbe*n&;b z{c!EEXA@%DlP&;#16kiT=z%ehg`OK&Gm6yOU7?~xutQ~$zgT0At_Fg z4Cyo1k<(YAbeuv|)Zt)VFjI@;R)#`Cv*rfOKYpeYnkgR+`bj(w%U+JHqHbDP^V_+7 z^-*1%H1Z$#q?z8zxQZ9%x2{^z(^=CPoEst4;niAR4{S>dY|E>_wlu)jo*x?gwWp?g zRJLE1%d0SEfe^CtoV-_nR1+Ta6?!1C15RkbP4Fwj=Oom=p$+ZvjnFnCA35WI$4IqrQA(nB$lcqa=CiBAu zkx*AwbrE>ptV;+in%y@NdFP~25ebtK1um|@P7!#XF-)=RZfWwXaAK*AC|tD0(c6{1 z1MZ7?jgXae^QcY(yIxaslCJJ(3&&kR-)Xp%ww}H%lpsQ;6&3`*G*pQ5`4diFiNM(|P36*p z;K$~Sr(tX@^TYYk)nhgfJg>ZdtLDwx%*|F=y0Akd_D5!+EWY4vn%iwEd7FqlrEMx@ z1wwRT=+R9G0kK;4rCcDew>@kYUs>S!EY(^zYU{EqRx!dByzMHpyF<@JDJroDj2WR} zogsptorNyg{QP19%q8>w5i!P!)PF#kVe3zL>#^@ATlW3r^ZSm^yoV?49+DJ*sJ>?gc#$&t8<9+QBbz83t)cD86@vaVJQS;|0aa6n7#oVN2g z-7=5U&u>0H^X8v!Z2k=G@(gA?gW0wj%sMjwDd~9&zLYGHHnV$T6^gz0WY@WAuHR^r z*?P?!f?1JURS1a%=}a1)jDItM>zq|alL)5C0gOWPV&vFEe`lhHSsbA%sNE3|1NxAs zxvo-GKe~V^S4V`~Bz;v#)qyZ?viwY4KdOvzM1;VMf19sWBb)9_RR`%OB?_4i(md5^ ztcwaG5w%PQHZTc9Z!smcc%M*SG|<0=98#f5)n$<*qE8~K9XT3TjiP7_R+q?m2#+ez zKPG_#l9r;??AzKnVc?)3u|;QCiJW$aHC}q&`@|>4YDzi7+Rlp|x%}FnKBy<7(64W1 z!7YD!Go$!RGymqzO6VPV|7$efiz zwQ&IR_%uDiO2H{6=e!!^^11E9fb0g+{G%1rW0#EuZZJ{d9r7(PNd}N_0Fd1pCV%f3 zCing>Ohao``~yP#Zh-w&ZT0SOIJ{Lud~PN>;w$NDNm7R*ip4Gb2U|2#V|N4edqW5G ze>GOnh|^8p>Sjb%oWG^(1&Q#lZ`^!Ab0g0qt7pWSNl)_EoE3C3baQ0>Vn*Opqfkb4 zzZ$>AyfA2>F{Uypf-04_*4EoUZkkeeY8snrr{*>Ch)zz^!8L^%&5gdUgfZ#ktBkA_Sb_Q3V6e(OJ!cb$f=Z z8J)&vRoqAs%qJ_?11F~9F2v4NoJ8&6E@qwZH-zm?R^)!h1^&gh(`$GVo8PS=FKLOKGklT zxiPT~-uSEe)wjRAD5!RJIBq{#r^2QlHmt$%3`V$TxvHL+TuGZrlT5h(rW%$CNuV~X zVGYGG5 z{q^Nj`|$F`k3U47hXCdqex;~LmJIb=Dfq6#xdl2_UeXvLuZuM=Bdwuv#n`eE_!5kB znVQUOc`&B!Xd$KUK#CeGiMZc{0II8ylDkkbn&^q24?fg7uIDOwlGd>5gN7SE7K4PJ zp%QeTWt11WiV!w>6qt{PYw+GxdH_J**Rig5#ih|V&QmGUu6ARs)DO;}h zrS#JQep|-RKFKIzGa7yoTy0@m6?I)y@N{khi+|p zwSC9)zhLekEKC_fN1b}d2C zZK?Ec*AgP!tB}Ap@d#M9xhU5|VVB|VDLB|EIj6Jk;6RF@KolC`=Z1qr2F*rDur#=Y zooeXrvBwEjiC!4D_@yu9-WW8K!4bHF`cjSna+Xf`JkIdEe!g0Le!QI#SRiP}oS2&( zw?TJo_y5~t)Bnw}%{l}u`=0Y9h$X_g#~R=G%OPpYYpT#4*;c_dx=GlLqK9paDk23 zt9Z{KBJ=jXIVHRvl=dM4nNL^V4eS^H0>RI}K=9Kq&;EGU6nhqRTW8LLN`vz-aF0{C zwr5unXL~Z+5R`nNnZnuLnOsBaYow;(I63V>mQvnlZW!zWfB;ixwx{7-ECYlw4efxg z;F+<$hVbh*hIfkMjbQ^coKe`iO1o?nRprgF%ygM z)lB>nzL|-G@W+{W6+W9eB9gbWRxULg%zPMAzeZMYd-JVUPRxX-G$-bb-eMt~oMqa? z@3;dN3G>BW1BrVyc~$#52+wAN%C6m$MmS_M8Gjos4IydYv`hKA0aSEd$tN@5i`ESd z;w}@L!Sgg@mQ?=qkdJYcvaf!?jEWe=aobBcNk#_2AHh6-R9T*&pR>hqDc3 zr9duxb#xflSXSC8T3U*C9I@`le1}i#bA}^I zYo_GPC-}jlvza494$jfFE5iE3P>Hw(jOBqipHU`AWZ>8Waz>bK2m>A|BraXh+@JYz zfTU~a+YI_@spqDYujT(R^uB6=aY4XH7VWt?__^nqJcS?&*MrZomZWQ zO(=nwpn(+9cUeg3%p_t=qt;0GEJ_2RE|;Z zv>FuL2A9)8L9W?S3H&5y9;w%;cg0i5m~LD8$PX@?>8|AHnmWckXnUpIH3Hq5B}2mI z_cOl`8Z2BP$qy@ZCH}%Di3kfZEta_sM}qWhVZ9cqL7GL!AL>nuhkp4y9(n@dtOGX` zou?KlBYF{=Y`keOj#n#kWa~n}^O>Ipfxt)F^tzf7QoqQjVSh+R+Shhp(;)D?A9!p6 z%9M@sVh~6mUIQ>eLd4FVZaFcC(iS&MMq`iK<%&0!i`XNRKA0lBIpX1G?TWqnzqw*W z(}fWu$msu_^?O0<$KrJ+FZ@`ZD4Sg*m^{X%OSlB6q#tiGVYlxFfh9;RALqCQun5%} z5nv}-O<-u2F1wN=O_&iAyR?(JadRUOwzT)e*C2WLHNwX|0r)wGf{`f@JWwX+*wxCf z8o0w}2kbC719?MpP#N+l+ntYd9w5S+Iq9H;zMwWww-KX5F2rGPX>g<(Y)FdD2|6FP zEesNdxAQmG!}c|(CFQL%sR(L932|3Kwpzua?yQYL{|y@3vOw2eJ8Mx8f>WXngkQ+` z>II|%V3mF`_)t=YINOaZgvkkEQLVf~^aVH|$f*6C`JR?;CCZC;lSo)z$1Yps>Hq{1 zh@Diaz6kR{^II%blEz^^pucqM!QnsT*6>q+ovA8Sy(zMEipt#=YfA><0sv1yu)h?= zYV~O5$6$Tzj1VwXbId+0=EhmNvwI)G1sh(N^UXSGJ-Wh%JGilaqyxEQ0_QwIep ziQXx~VqHzQGN2A+yVd4Zw>Gahc<)F@c=gPgi|E=zw~6ex02N-Xp>U=I^Z)MDT_c~l zeVfwZw0tYEOqYy?D7>HH@QCGdgve{mtTwALKhnN${?;Sbh~@cGIdX<@CxWz zpct7(iqw&EzR=<$Z%! ztX2nCW(Pw&%rcfmurRqD=2u6IHQK{;B7*e$ zsiWqJ^elgF>O8-1fF+&zf5K=Lpw6Vg0=S0t)-9=Io8(JFgWO zkxtu4nHWXmLaLp@;O~l<#UdEj6O+{_4nm%KAr9lCpixj)EoA)KY|vKxXNZ=~Z0ML1 zGsu(8i!B2F>wVkf&&+^3RL(C=e@2lF9sU4TGzf2Ge4O|m>W{vZJ?{^lJD4MAbKqI` z*nH}5v5tpbP6 z$#y$vFNNr%A~=IAQFpISf1l)=xVz%uQpJ+KO6>_oZ+xKDX6EBVH zT?Dqd^PC3jH49s86Fpt}%<#|Cnt|cwO`)3yvzYY4Za&_vR(*Q6xoV8b=#z6mf~xfK zjvIDAG&D6;Y39Ofr)2l-xckTxR)7Tp{G8)uw6ISAO{B8ZrK#1fTjPc1o=8S7us~`P zRHr34dDDx~2K53*C#ejN_xyn2Rk8l_=oPTLf#$s|DdFW)1CP>N1~31MKv)F)=dAXO#y+mQ-Y- z-)%FcTT5xbK=Mw4A1m0Z8mx=gfk?ODR)_^*xw`eELA+HUKF0*6SC~Mujch%AzL_x5 z90K`v2jwm-6z)4JI+e$Kp*@AaYm5jPK(jua^t^^kKTJDwS*U z6AGtFbYASz8$E{wG9mhK=$Nz>1l^R`Cl!dYQj2MDNsEdMQzN^+xsDMw{zX13q~e!l znx8z5r*m_p%^>)E!_*3&O;kvO;(>xR`&>S!%q8-s?I6xFgnTDcKk6M!cDF60N3icq zc4RKV5z^k6E{nw?)lP>v(P;Wjl@`#Nz)u|mQRijKsTAPRS<6)WH%A7ZRIcOvBvZ-D zI9E0IQqNVE9q^4t>!>RJKrpkfrU>AD@x)N%PDSdd)6`j9Et~>a$j*0jZ+70973FGn z3TBuKm1~;7(2Sp5aX7;sePFJa=A9-g*Xb-()tgGq(sNnydKCH3`7~ah%r#N%GPSQC zJ1=AV(##jx47hl~UrMBWNEj>#15lsN+s*`F@kmDTa>~`yd|E8ZOlkENp8qN0`_&d_ zwm7-o0<{!bGHHBY71e6M+lHP@pwrWGBq%(73~R!b+`SDt^(6K8IOqcp92B7i>R7~W z;x`-s`3BaXkjM}$?Cc0NaArw*2j?Sl%q)uZlS+8Hmx?71VI|V~iJDVZ50!+unBqji zIOV$-<_L~3e_FyG*HRA?IA)|m1>rnx7bfd0OmLaXY3Zl1ZL=rFc-you(y$uX<7$pr zDk}MB%(jzdd_jtoX2kg#G=1xOjKvCL0Rb9*LflBVD9)UWq1paErtpnAKpGcY=<(9e z$x2fE8k=9vrMqk|U7*&^;t89W543L5tet7v-p7!Z>FNUDHggjw!GjQa!H-*z)88+F1(pB-#3dA5q%pPa^3(EPa~DD z2XDu(2XATrNZJ(3kArfotBcEzgHrB_4{eq8EX|P;i@wAH)lz3VCv8dc>-gKo@Bf3w zone6AUzBzNr=?$!fH1YZ_$!V(Sc!`gI`4-VR@J&{zbgF{AW8-%L3K4FS3~KVnnHWG zJ@4k|!N+nyS>#}g9T?A+)Bvb)`i$jUq<1DJ--50Y{2<}f2`k}xdk{2%hb9gb*Q1Cn zR_Y#$fs06Z&V{_8{Mepu!o1WWLaPnANG)R$kJg=1E4eG`LH8D1$=z{b20xXf2M_i} zH-At*WQ|Qpx`+-(M=LoMg(v@-u9E~yXP7EI4R~Jj#U?Lc~?8f#2XBiRyIF<3* zZU}63uOwSzHA~Y18Wg#k2H>=Vjb)NUbbO4L#JF5+GA{H90BODmCC^|S-C#4`4=oF0 z=K^zLbQ>r>au9^mX~`vd4*+uD4KvzfmR!Pbpl!|G6JxH<^D$NSMyAU2%d0R)*@EGh z0HGO!b#~aB7-AP-Oczo^QxaL*87guYDu`5g5gNJmMJYKKZi|P{X)Da(v1VMIz`AU4 zY$EBJhb(O}3~^9h^PcZO#CtV{%G08>8G)tG{?w$frVsRlEZY2$U9;`)QzSq#Uu@Q6{`OH_Py(^`W0Q8;Nm)%jbdyq- zaor?TD&u97$Oerb_+-h#t;;RMhEHCh-llrsa- zGCHr@AviB>&TA^nka(Oetx0=4)2ecwxq!Rd&d1p@%WBHa)fp&(idm_7T+cfno0vGf zcsx~8m>a9mY1}PiUYSy6neOv4EmU1o z2yBCKo+&>txAhBUwKKe=y_d}kuH4&Kv?sk!&4)cx^ilI>_wN1Mdv|W%xx1mS>Fw>V zt$~0U(%vppZwDo0n~zO&*)#L^t@-=36@5Kvf4(l|;gR@Q%7~T-$GJzpmSxX5Z~R;3 z3I8C-=~?vGvxu)}R*cW6eWEtamu1;ws7mNBw*yqza}Ex=aUQvl!FD~1=kQ~RsK(_| z_nH&i1D@_pm%2x2tw;E{$L9i>Sy2#Jy~ns{P?uS%{iqiOE!9hOoNgRF>|JslmNx6{ zIxX=OTVQieirE#n^yW$6XIubg>)gU-9j_i7IwnucL88Do`+8tXzDPR$R40XQHmO7s zK64(jqQ3Is$=22!68?{dgcq=CZ`e{pv{00RSf{6oJj44^#$Z@4kFx^VC|~EH7D=(7 zkI=h^xu9gV2N$(gi)UGUQiqku+ZMuDa28g0pcC0phllCWT7XVqa?jTwsdeDInj!8} z04CX297D|MUKx{9cwyHt$9g9Co|0xT#;c`b5uuTFE?+ZKPEnsEFg4i()D2gXeyH7sb?iNMxk3`~O%$mq% zvuVW5SO{POI+q1`vd(-fY+%Y&=9D=eRJEa)wX6{-sI9IB4R}f|O6|k8m4$|`ex@w_ zJXl*jjtPQg;tm+fTFdGGeA9?D)o_7dLVjPm6Qb!$DfcFwR_tklV3&z--n{jC-KpIP zMe>Grg9IPVidi0(tM^AvP=l*SY&?9>I*=Qt1`O4}Iq|f&U~q^DqF8CpSCT-m^-vC0 zqSn=Ns*B3c$%GX?T+3X-s*R5~g#v>PpHL38Xv>^hX2!@sEMX7_COnTYi0CYZ=#R#F zP|wpDbe3km!H0@ zAI(h?h_{`OZ|S4CIRf#tM8@r>@pSG#D+8QA=dm5`OAI%M+OgS7EIMhk+c$Ll4@$Uj zLr^3%lx^ho_o1H76;iG~HiCBF`Sv4%$YxgbE?$&~bc$oVzsVneBAD98guwRggUxdq z`Ujm@8I~Vh?w7J@j=;!)%Hdc)P*zK(cjTVMAL>vaiAt(Ny)!xzDgD?byDww#gH+bG z6OKE0T>8~&mE(?}ZftBYzP@R~B=5<El}Iz?JTRm2Neexg3u32d_)JzPZ&xR`PXum>-R+4zyv%-8Zy|l$~Ha zY+Iq6^smdqA>ul>plQ~89Q+8xyycVUy)Nx}WvR(l>*yOdDiu%lv!Yt;E3m*#)^QlQ zUI|ug0Vd_B!LSaj05H(Ap1>*)lR$R{YGOB*XHcwGpD^4;gxEO4+G;V31iQh=pe}hx zJ0G!9K9#X3WZd=_z*nj**0g>MEr3PQ7CIUAp$3D~*o+jO;TC$L2~SJb6fCjK(y8(* zz-x6=?gfG-v33Zo>DVb#VqZ2%coJ6GLoo6o64uu?&k*FIzqVYGHV8OP??jcKZ3H_@P5KlNb@ zO0Wp$JIBx@7rR3Tm*;G6frxy46J0qia*h&B^J3JZr1Q~emJnI{VoVWjmzBw>;dxFu z^Hce1u&gq1Nfbax5l~2#gfZgozPgrTp4PgkF7T<$kRNs(P|Rqv&21;GO&Jfg0yD`o zw^U(Uc#BHij*)_Hd{N1IIh`V1HVmx3sDe?<>p*n2VKf{DE^UT%g>Hi!v~(jn)pf)D zY~gE0{MkC~ptnPndv2Z+(k5-`2RZ>rBwrL-s`bz1psWgAVBZFn$`e(|=Ud*{Q-?Fh zr1I6~2qD>Ps_T+>d-#nps)B^sz~?wC{aiq?#M}zW!6B7ii_Wl?`2t2{-ErBM&A{wA z*gh_+*E9A9-DM!O$g|pz9b<@%rdI5-3YTTX^xLQk^x+51IYifv{lm{+xa?P`o#&*o zO^dt@o~Br;ZWkZq;kd)|Vh)Cl4VAFGMX1*eS+a3&dLFowq37ubbZs{L$QT#u7}pwO zDw@I;xggGh*J`4^+Rr_idz7`Y>XqslK zddJJ(v`B$1%%Xhwu>bVoTH;?xK#?6FL$k6xQ1il;+C(eyz`MuZ<@Zi zRi;#Bvjoh%B-yNtM1SPinB+)@2c$rDSK?h62t{bB!N1}m!7<34=MZLr(ia!9_IXOTzK3Ax3oAlk!ZGI|QZ4ej$kc#tN9aq} zIoZ;va{^R(>IazQG33(VD~;84B+fgimKpEp793v1fxKLc$If?X?Ssoq>0Tubo!G>} zXQ>fHd6~*j^!(c)msHY5Q-dkzRo@^RS|@GGbzI(HHmT!71SCd|ZaJ;Xn|YB>)e%`W zrjr3Ztybxz>&Sy}EUD1QgL7bsn=f}-MCEGO?8@6(QfsI3n)7= zU=9UE#i%Ck7{X%;*HIwMmW`_wh{E;fBP_|TMq0$4M=>WH!&rt1c=I;nzv5O3qg(4b z>~cgT(UIR?7F&pQwtrO^&9#mPejvZieZFv`pL1CG^>ooQC$abV;Gj1vsvcG?0=VG7 zwi2Zjz>7WAWP`^Nx9Bw0Dl{!n%aOQbZ4sJB+#Wuc18Z@ngh~E^DE_VJP6wi|2SyL} zrXsb0O3am{Z1B#Cb6o&>Erh9FG3)8o>hLIFGGIyh5t<|5d8rQ)1?Qk8E_|CUBgHhu znOyp%ABa&Pl#)@SX>E_LCZ5*{6xkIFxj#%^UeD|ImFGps0#AX_k>B3)qFTk(bRL-} zsC4abqFC(1M|D9z+tq#xy~^6*xse`E(*|7HPQqM9w<5uPgmgiphcJ~!%dD8j zkSRgrFdx**V|JADk)PSfI7x6^>H2-D=YDhx7UBKwy8&B?qq804@KAmf31<||2n2V( zw&u^|BL>QBu&g0TBSM*Jwf56Tb+KAC5yc#UgEJG)n9xXbUN+7xz(>F&G9qK_%qLCr2gv{nwJJEkcJN7zu;%-iK z7%OO|+Fh)83QwSOFpx2r&g1H#_J@>c;#MT0N@b)G>)9f8FRoM%7W#(FQ`o{t9X*#F}M676E?Lb)I zLh2-%=rEc@JCN;|)FS_3iss#-{}D~{5Qil1SULkC*+Y0q%#wKok#74KV;)Fz0>-E;RZ)z&;hgC z>Si|15Zci5rv9bTPt?L*E8)DkVML-b9f#VLypoSD_ww_>^T^VZfP;w&Q{_9=f$PTr zEFbtvWEjoPh^i#Af^<3y#7xc&AN#yg@U_K(UacxdIR#-wUaLez5%Og>{0R_V&w7y- zv)+@}ub!SyRf*dX!fV{xAUU7JI)0oLIXggDS&AB`%}fVzU8g6xKMU5e=Y8?YjNFwW zWg@N2{?j)vA3lEi&liW5CT*4`xprwbpeV)4Bms!iFCP2Q9s9!JVqSyO!@W9}mnTa1 z7(yB_?A2?5*A`yd56VxG^;cwRt>LyzVu)!+1Q9*7w_UHuvx{Cl#dg)bB3IPUsp@fU zRpGRA7P&3HVM<}TQ>g?9;7c$UFe>Yck8L43DQm%O0RdUdvS}EO2lnI7`!B&WVZ7-{hZ?&mfopWUeeXRE=9z>-80L$x>G5d|UKe94sp@zl>n z^kdQ6{O)ss6)Fe4_%u#4%Z2cY_kP}g8CiV3^$LxFJ?z9QSy>e6-|F4CC8GbeJB+|e zu=#h~(zQg`B4W@E{K?fBdP4Xohg$oHwG%{CH@D){Vtb?-Y!Gepmacxle=MIUe;ZL~ z?(d+vRaPqy?K!bUu_3(-@M5LuSQj##OqQ6bsF}u?%BKnub{n=w4#zdu_B{2VuqxS| z9Tn8_vGR*UbtI;6d@zmI?eH^0I^piBilv63mL*KWN|bRGFX}K|OJzYgO%Rqa*;a~` z+4>OQj|BKoRRM{H_7$u95c-SsehwK$Gc;s*;_hn+qDMHFF1`v4%f=l45wDXrU>-|f z!Oc;oqQ()&hD<3UBN5hbVm%MR6|(qx!ek$!tc10IrRjkpr?gX~80b7p3C)vDh5iCo zV___K$rO<=Q-}$gUT`_LAZOIM{p-tAf#(%g>hje8TtN{%Jg$pusa22qCvKtl)s4$; zrS(_6T-917y(KhCO{r@ARWGfHsUVZ{LGNMSi*1WEL$}?zP{yr<_17M#av zt`csun8AOzm+HD##_&_+>h&N(=wo+LC|9n#Myzc%5X;v`CSNH3u-d436o@54`xf~$ zMrh`-8rZ#{hzQ0HwGsGvp8pgc`q-yFZCylrW`@?IS%I&b$ET|2Ou8QQ-efASRgdom znwtB)H>-+;yFg#vxXjjHVX^?tW>`XtrN~49OFF~!*+bel0}C2!L%JBkOw`k&QsKGs zGx94=)Oo-#R=-j@4wvho!St%J_95nnrFaa_K-JM|)#snpLMnKgXtUIR z)Q47EaC3ANI@W%VsXvk1D~7L0K9AK}Dv?4p5ffis0QT&eLY7nYz(VmD*D+m32waB? znKYO7^UaaS$muq^1@78Pn_`O^nN(QHGsDb>bqBF-++B6|?h-0b!s!}pQzB~yD$*t{ ziSW-ouipv2$0ZnfdY=E^>9s#Xw}I#{8!0g@>{BY1h{qQ%Y6z{#{QA;T9xa`L zYaynRELc4Xns1NdT7~<{-zPWt|2p5j%F7Y80kR*(gprg^#ISk35oJ~8c$kb*E zdpX38Yp|$42!6kXV;|iZMZk!uIS(UC0@~#T&1}yhza!#qd-LafTxC_QtPjJXK9x8j#W=n)Y+sL*S&PsOLgx|RSL8j6c1(`k6T~= z{9iJUL$Z`~dUex*HBz}%s**}7 zPF-!c2}`hriUg`a$d{7%1pC)MFR&lwywZMzGroxnNy)BNy;iS1#`%$01VIqQWnx~x z>66Z8j0pY+Rf8Zvi&*vZeFEK?a|>t>yb|8{oQ<&C;i>@ zq3hkr$$rw`OV=kS`zT8@JwjS0Tt3V*qHA!qjPwmRlTnt8_zCqd%~N&^(f6age0hT~ zcsp_;QI;zl@u&4(c}YAC982PnTQdWJcbP~iKfe3;1`5tXOO4RydQqJ0V?_S^=vAHu zkDvWKsO0Ly{6(@eWcjD5gh<}nU*lpqn~=B zXZm~ag2^a57QNq2@!z2L_q~4abT?a{?4RtX`>JO9K0CsQ&jYhkE39{)~2!xe}6UVq? zav@Afy?~3sZL#b(#^@apo3OKj+&~;ZKZH;)zZ>U8q1k0)Q zuqd7Tix&%E=M6ipH}rZT7y>dU65}UW!bZa%;&cYlpre9D75)HjQ1X!?`+J%tio+WAwv9c-JtZp9hK*6ST0GsEoJ z=t;8$cQa>seBP;Og*&ivc-mntK{z*8#GU;m6E^Tpsel$R5j6+O6otn16;* zqJ-_K=yrjoLSjPErqXQ56R}=XpaVHZG*uflnb{e~H@Bbfc9Yq9y@bqMSJ}g>QZ^>a z{mRMa&2#i*e=l&pZ|LqT2ocVSmh>NQx1S+VAWzvxy7d+tqHeP0*Vu1#e@A-2>rp<+ zb7x79%8yYFdmW6wl6}#x{--;t|H)PV6RLkN`FJMElKcZhG@lPRr5!|0<1pJV%K$;= zu09bg97KQsB1ZIShVZ|pA&(3d2(Mdbt0c{z^McYXRORt5^OWwJjO6_0{!C;XC^O*{A1U<}82l^6kq{FZ0s_4Dyk*$=A|7@+%&B{qhsJ zxO^?^3cvaaUrB!LS0JULzi~LD>A_c$B7A3pI_Zq_B!(N8dh)0H9{lOv2gyCaJ^kbM z(>ue4yY9~o52fq=vXr57KYBQ*Z?_v*sj|j6RQfX88CL1Rw;SDoUr1fe_2%JrV;IPH zVv!y^+<5*KG8ju!x+kT*XZR#x$s_0ybIkK+00DN-*!!Nb8_#?ruGA&@5V{BTeGlr5 z2ZK%AJ!ZBaTNO(?la`!Qm`7dDpmHc-KBQ@Oqh~f+rdzIAwcRWPtn@(L^^9{+buf39 z=PpF!PC=RVkEq#V%3l^m+->@6T(%~H3;Jn6h^JiYMXj3 zU0fsxqziQ$BN)g=@?RN6w)yh70f@t1Sf2k>EIZ|t6imPp?u78sB!xsPIv)`=4x<0^ z;sPO6DI-M`ozAz#($upCEz^ZErS15TvPr)|ALg_dTK%!mOITsmc)g|@Z^dn~wEjg+ zX>*D(f<~rE6XnK2Fb(wi(Honj*(D$>;y~kS)fiz<(dB<>go$6niPbn3zmh4d*RE}> zUA@s|TDyVdZ!TtK` zTI!cYK(t5j0VqZYGEKg9 z$BazFZp7HJWC}&6jYWRt<0E{Fx9+mu1g-!Ug2qlD0$l!=_rc23j{Aso7%R203ourK ztK)#`-y@s}4^a;ftW^byO?k_l^%KepHf|L`KSjkePS_Hp7ds%Ev*fdGcSaHp8SFmV zq+~m@wry+6*tHA)3?h$#oOLF$97{bB+WJGQJnSTe>40#OR&rU&FqS8I+7TA!rLua^ zNt_pwJL*Vx$YB<%9vr5fbEqT9oK?FIIrZXHz*DJXjZiZv=O64o@CyC86q<}|&`$=E z-I++akcKr|yDs#<*$$0-N9fymVPsHC8hL>$yt?J$L)JVEzX4Ck`~TyAc(0&_70o+4 z-SI^b&Nhp&&tYiV&9fZey}z4R4-O%+L9ksq(l#N=66~vi<*HdVsMZk!aPTr2y9P0Z zfkKX&vhO%$`412vfhT7a(E8~^gWG0jS)%A9cO5OGXYS!i-YHDy1Wb&dN?J)Ji&fH- z+zoMTEOf!yEYIbo(w*oohOkdnkdG0DI@or=*L3Vu*v_>m-2}-==lqsjuG*et9oU3? z7&a{odKSzPj$F9D!IVnSfNpy@qh{z8478%`T&gPx*_+1UBoCcG$)Vd`kOvo+E~;?C zmvpXO@JSqA=Yz4}7nr26W17NL!OzW`cmHv+Pd-dd<>Uf$zjyJwmAnKHt(3J=k5>MOmjG$4M(Vy`i3ds%>8bsnDmxzOrDmi9O(&(#E3?wo?DO4AJful2#Z zsM3QM&{fVI=SB{_ZcW5#3xkP)uZOI{g;SK!PcW&~gHE2Z7s=e6cI);0cpjC$r(VhB z;q#;V>F!$5*!UmRn~C3UV-=RaqtTmmW>Q>uTezq_)Bn&HObY2-D9L|N=#K9&c24Y7 zn^IY)<8h=EN}#9jN$TzFAG)m~IuKZ)(^*Pv10Oj8Jj>Rd zAhz3`jskb(gU%Ce`yt~CTe;ZnRoFsVz4IDDogq{!hb}_EQ5ykgh;NG#lP>nlYgYUH z{-g?ww<`3f+l9<1!lm7=L!(Vt8&Y&qeZRFksL7K;wWW0oEI+!BPw zS$08Ss19&~^X>P-!6OGg)$L4XqGE2K!VrK{>=Y(v`5$_gUhX#oJ&F^!Q}|xe*#bk~ zRxkd;5uH8?L;9VTHwywk=sa5hMTb%+xrqD#Ehb z+R6FC)Wf1Grd>Kzgfs!o=%!XnhP{7oY0^`6WSvEdv83pKLGZ4A@lF_JV9+{)6oaOhE5t$#ZhtBwuARHe!V%mpYB@XuF8UF54hRE!yL< zHxc*h+ySv=X=*x?rNM<`EPJ1T)&PzC@ln5aux zT8~fQMG_bxP+ChSjuEyT3SWOSJ%A6mRr{=G&2357)a10^z}|37MVZHy2B@UjsQ&S zFmQBm``%oV1OSw?6>@pM{B^0WfW3HOBz$RT!DyT1gM+1+@rSEBKB^*!M$Z^FQh$B2 zi4)HJg3hEfgJrf}wA!tZj@eSR21W+XfL@(k|MD$TIJ-Mnn`bYPFi3^{7DGdE9KI>v zK>v(%E2aHN0EKcAPX0F&?gLf&YO;M|-?57&PRUv!_mVVp6w&9Xh~b)48J3(20w@Kc zlhtTA9(>g}a#p62BLX7iHFYxbjjR!Rm=%t7myy5lB;r02nX=*qAGw1YIMOd&toQEmQ$q z(31Da?Lv3ECS4U2SBn6`S6*4Z5#SPQ(0xK_kIM_y7NjaF3*ZTJrED}FJj?m!{DcR(pHBzfE|ivoQS#9yIW^Y1@QW%3Zr+1$icY?ch)h$HRIZirZ67)0=L6=#jm9fj61`453I3Q6=(a*@fqjmUSnm ziI3^p{7%w|_>HjfsXK#;`5lY2^mIK8aqCh1Su0Qql)?wzJOe#Q`4^+@!*!nTj1Z%bV89556OA z|H?9xE#QQT`|dfNby){5wEGslL_MHG3e#xIEDFt@w*|Hqmjb*(cnk5*wAC@Xyg7cp zG<*}ZukN@Uc`3Ra^^f&w*5GR4fk1=i)_Nu@{=PNXGRM39TY@tJy_vdrk0oFKo+V$D zw|blyips^g_9BVZ$(A3lzz{oGs$s$(3HZfz;$*?GAloiuD}VsdV7-}S7SZhr2#I0P zq4;@g`Kp0K{gIelSe=1Lvhx-W=iP2Xe{oci)2L2ihetBprgV?bfD`m44+DNOjPs#11bBKVROr)h|6(Y4BlfSe0NbrGvnTPQDBv#E^%pB}}4?5MX6H(X6-uxDwiDozg{Z`4=B{oOeT5aQYS;$|X$MQ)gavVS$@^ z47;r!8*eMoT1KjR6M3xRX$uqf%eGQ0ZZYV!ybyh5lkY${m<5%Kd~r?YaF?Kc+(89= zpK#n<_n!xdml&vr@Zb=czH{AI<@d;-8no;(gdKS0)iFR7nIXAU61*bkyf!C5zytC? zUn~~0+e9;T1_1+$vW9d~QAbz-T?Xd|=ll!H^5cgA4l@+T_%BzGxjzIhSDnW75s7Ey zcM*O!Yq%7Kafhd9Ab6224X&eyusc6>j*7wLbO=cO1RyZ<5d?+fKw;V+l|O?|#6;eB zeZttqByI!a_+W6sR|*K4zS#-XbuRv>hrp#KjzO%|DrHfS@oj{2ATEjcTr6SK!&pvN zxci(0k!fUL)QSKxf zzfxnRrYz->Ap{j$tkROgK+;+TvD)Sh0SgEcwfugh9LE`bFU0EUiRH5I*n_xW7li)*E}ob?1BKL>7_Jx-#T`z zrvDEiFQ|*;TRZ|$o?<27pO2hf(CQ~4er?kzP6Ly&LCU@b=AjQn!0$oO<$r7Gtx^+c zIiiw||GzHM_8sapcD^vg=R{R3Sj!EOWWG;z^k z&h@cA23#Q5NiOvmCL{!PlMmigeEA_^emuQ!p+0?IL{5z4sTdrE9G1sxTaj#x@oP$B zx{0CbnMO!|+E?o}EpQkS!&#gA6yjK-{`k$+9NC&ZsyDs>^Mnrz zA;!+YLsTybA@{Bw#9p`s>rPOgav10O16SjLbIwA*yy!ed%ZL6P1Pk8&e%uY?wO$t+ zcf%d@%`5oYQy7Y681+nh z9uNRn_#TAMhk5XSw0#(`kO1luTb>&SoHV2VnXx%8SDXI- z`|18=O~{KD6^xE{LL)he(Z}$TivoM;>C!)eLqDcR9Fhj~r7A=`H*pt0T7c{-X~`BB z9)cEmaYlJ5&6PCS{yv(2(+X58#j0k<8Sb1tj_umSEkCd zx@e=q_I>9o-hAN96ovH_ZMXYECiPureFlMzJ`nCnwcmWSeh7Vd+iWGRT=Ps-q(tk) z8Jaa_sIMpkfeq1f@F7-{(*xiGVJb9t>ayn)z@g^w{RU@2nSN4sT#M2ENv@gp*xWS` z(1sTbk?s!o_1YBbTI`&FqWI=3xTU)gM${w!Sl~s#G~dWbWYds%q~$db4dr*a6a*u< zDvuTdS*$`6LC^&pUm+%mLlh2~E6G5Ftc-Cim#wW47zEFN!oT&hv4-o%CauT3XumVe zq)RYE6lw&O&2XNH+vlV`E&?;AI`}H0qBC<%JnJ z%Pvp(CP-&`Y=hst0>&UK zn{^{0A}_o^mDcOVQz#rY$k{G9b-M3t(8u|1e(E0wOe0+f)r`Q36J;rFnU8D$rtqCD z=vT2&fyzh+H>zy(3K)fYjX-|M0L`0FG4ZH?_ z!>s|H3l{!OS=BA0xX${U_mh>6H~G%YB3MLCKKBAp&Yq&&6oDQD+;ji%2M3_78v&B53OLI_tEl9 z7;a#JDjx|8Q`J%@D(!X^Qk{X;kBwT`90j2MaHE=vGI3X7>vbe)UAH22FVR+1q&uM) z`!>sCL%1Q8FI@fKm zlvhT~<#k~``-%-c*v&nkabBOP|I}xA0y1%)nD>m`QEO4Q%+cpMWygl8Q)d98u|POC zJBAr*vv5`DSH*Z)W+f~17qg|w#;nlq3IyvTA9*$lmv5!GlG&0K`cttSPmcg8mQ5;d z*@bHq#%9tv9Z-LK2tF}zUNXtu3d+0PB0>IA3P8G2@)|sD1jWV1qHMXPB;)P-b0=%S z8E{pDw&SV*LVa0R)|ZrmZe^$NC@p4_tpB8nyX7L7y`f<&T&qbeOkGM7LWda_S`$z~ z1v{2J_0jGdpJc-RX(ZgH&!w-c7*cQhtwhD+nH1)en#%&%7b&%EPMw$3!nr~zj7!Dl z@oJc|0<#xgiu8y^4QN=}=0J15U~v+k>!f6hG)(1los8KWmyHR1u9KOoLxpZypX+4l zYBnbKxlSf*kyZeU$6N3N-fj3*pMTH&QuHUB#w2yS1XZcGk`S)f7MV`#r>`|~YhB7r zQqC^#p{qIYf_%6o!F7OIG36Fow9S4_0jVrnLY@-2Nty%A1L{;gg#A1O~Nu5Vmlq=ypTA@Zo?Wi3z{V@tEZLo}W3+J7=Xg z=rM#~9qTAT>}em&ds=}W|MBmX4x}N>_og|zHp9AbxFRr_n-yJ#UPj!3yi3IL(iS)q zw4pbdGXihZ?@W6IN@hG0<+&xW<>`S6A3qxLPf5tKY3hWUqyhn3A)q{P1I3ODR<=Zj zV2%-e@8uD+x0#4x7Znl&I*}xxLxJMK!nHFTm5EHVYeYsFTf;Vzt{b=D0;+39jhbme zdV!M`eV^)ZOj6C5`15v<_xH8|pVb<+*yAGhIQaDiC&nUtUG2pvwuZau&iTu|ljL)g zW_t5^KTF4oi91JFhd#vq>e$~ZLUlcFj<9hfEbbp++`hS#f-6O2S2p3>qh}LcH z^*=Deb)L`75mw>r>Jh$cgsNXQUWg?>I$);4O{Tb;3KdNAX+h${t^IOj{7%o_NOrb^k3!(cih zV+vHqMUap`!0+Msl-;iTM*!kz>qX@SWtg6&tKzEQ?C4;JBHKoWVk}pfgu8I?R(7qaz<^maf;g?Qr39 z7S{iZ(aQ{S!A167Cvzs@Y#LVW19A^P}1OeF+-1h%)@7{hOj1oP6raj0c-~umYzTs&JuO~+M z>hL_nPR}Xhlp)cQkSqxLS#0jnq7JJnG2)abj5MoD;D(CECaIG-RuD@_toD*d&_MnK z;K!OOE?CfNWb->V@04Ez3+RtJ0TMpI^mhjAk}o!ahc*k6Wdkw@`NP~^VrLD+E_TH) zy4{OLNKX4I9!aBSomd(hC5NX2yIv<}{H*QO$FBI*=&D`j{G%@UWxF_KSKaQs+fA;J zA@+*R)Ajnw>CbNYWuP6G4Lcmr%P%7~Ru+D;bAHA-zg(}8AK}b#BQ8PJWr_ly^61vP z1+W`_6~;Nas-L{teDW$h8Q$a@0C`%e5_Xy^nVmCLevq2bcy8Dx%JsBj&-wXChOkg6 z4`f87NAy5Awepcpj?(N{v-437e(Xx-Zscx8Ih=)*zVroC>`g(LSqtQ}a>b{?))+wW zz1E`R9kgtGt!lki;kByfAlj_gH=3x=m~HI4=Z)PZ9gUeW2Zm!Mj>PSqRRzxz*wpLK zF7f^{t$gtl+isUk1^1lJReJDhWB0%>wqeC!Z z9!o}0@`f<$wE-f5^G4cgZOlVzReGft-n}?Sz#ekF-npw7Zwq`cVMQ3BC&fHT>s%_2 zAEg1VK0VlI!;=|jw{v>h3K@N?+Ci)V=v&GX3WOs!J6P>+tehtj=}cBto*vuvdgBES z!|1cTJ#B`h#e6Kjc1dE%ry`*g#$$qFvMGUT6*CWjg~Z|;9dJ3HeIKf-@y&5cwy1?S zh|{T|S-D&+j4VrM2UUgs!KGn@Th2u2OKFN_IlDcQ_KnukAgCZ)ot;hXe3s=2fK1cm z;i}Nd27;bluU{iPly&a9Tc&B1=2eweZ#FhXl+Q54Kw)j{khcw&1Q&=+hVl@%`QIGw z{xR5=I)F%PgNKL18KLLY%T~DiZ}&afu)W{?_UWt~ujP8FuCzY9J6TIY8ZOMtTEcyQoEwwmNFzj+~!uvOs#g)uQiZz4pmsIdoP& zMq9{a0%lIg8L>sOEzY+ zQ-`JZz2*bx&mJz|V z-4hPsPFB`L2hewa_9h7t{kB4;B1I={1l{y|`hh4|S7YgKgOW4FkHz z%fwKk60l9q122Y^QrLdp2VG5`jE~ZAwl5B zXVS`8k2S4uGL2SE3#hITq~h8Hai#7c(#aN{*rW%cA6$>}5t4f$#HI2MmPt&XM=1eS zu<#+kmVz7|8a5A&jKYtwln~B8+GqKQI?>J3%>M)~MoWZecC^TfZ@z}-bAfEH zxpU~+pYDo zPnbvtlaBN}h3&wXkwE*UncX5|v!sm8)gK)#cI*d)Nkl=i5?DEDP}c-&sWYLv5#6%l zt%5)!dAsvbig7Iaf$VmZuXQWgR~VudxE>q)^R{0BF41xg*L)yJY>i3swWd|lo--y# z1Y^k$f7SRwvm2D>p0mcf08l98Z=`ub3K*9YXS)}OS0qWEf^)sCx&fM#dV6fYA#~MA za4<};rI43=5G=z8W30U1|BKrmTo91_%!|o{)JJbsX{DAXAsfL| z0kIoVBQ09ugxue)?_BL#jK`1nF&-W0DI4P3w-UUCb_!?q003O=B!{FM$lJ_@mo?kx z(xjN@|5kQ#XC@8)*m=Lxd7&o21L}zJSWTq1lpNc6;BQs$fE(+yTFyrg=wz>XCKFGP zyZQ>>%?;_yRgI^^V)iS-6|I$BOClke%5@M+$Je&=D++_Co&$o&N0RkTJ{W@#6llY zPyoEJj+W!GEX&NaN-2O33B08D<4y*S+R$1^$-%qiq41-;NRdXX3g+`pWbLx_RfsjfbsZLwtA3_>pbFyEWG0y|0pBRserM6}NvM4TRl5qVlOSSKU zS8@jL7Ff?WuF8>n6pSLEaAh-r1K}@mdSphVS0DY(inPq;2g^n$>XP| zAxnzvBgayLyj^&bU^+G)9i}XiJPyX@qvNzjl1&ZnY$YBt~u;wu9bZ(_-wrf3~#K8ZM~3ldQVBR5eo3*xLqRpEk+rVpd$kz@+8?Q&Bc& z<+xZ#_><&h`f&RjyWZ_;?DTI6O|AQV&V0@(c|?y2FCG_A^_On)>NPQD_YUo>;usku zTKDvVNCR|ctpc4MOd<);M0hXSHB5RCLnS;lS+r}Y^k5O&xQC2Ddp`>X9jrj@(%#3h z8s)&E{ZxFGaL7T3Lq;Xfi;46F2g~@D#0vvHoY$%9LJYbiHtDDz$WJ=z7h-9rkB;?e z*ivU|l41NXL1JXHyjV!BCSZ*()J%5dT&P(GI1KO?n9Yzgg-li;H8Fi0$q!yAc;brmMaHQ?}!&hB_aVtE|Z%|{pXr~`xxOQT}PV>ScNLZEXP<9VE? z;4YRTmL?A4sBfG*{WDsbH29!qkcXysJPRtf{V-+-VGQ*yc7ZBk7mVi3j5!AT)$R5W zCYlW>s56%D?YT4p&KI$21dS-<@$eiT8e$}D`_>Q!XP9#L1y>`2(dgrpPtxiPl1?7z zj6N2p+%QowBgfS=lA+H4Bg8k<(f|b}wayk>w&;e>VO#xvT4kAcG#KL$Y4F~rarmyM< zWB{IH5}-A}n36{v#tJ!akWrIDH_p@~J&=j@R-d{Q$3ZLLzo?f==RSMdUsKq9oe-To zVo#i&rZhZX=7)Yj9jDL6hVSeorHP`)Gd(edntWl@m9KCKe7v48 zWeeBB&V^xf{2b*z`Ba|e;oC^a$=THK<5>1a<4}v2ucdun%;!t3>@Chxq92X>&nA;k zMXa%TtK#9hkBWXV=JClu~*V5iKF*psLeR$&x5RK|z6-rab8)XzG zxLNpYHY=|EVl9#NXtTl#sc*k2th(@^a%H1MdicJZ?-x>k5Vz!zP>(T6pDh-RMvkTe z$)n;d98HVsAH;0-p(yPa1z?iG06W!BvtU|Wzc&+UHtJ1_>$g%+xiFLMn{V`$vU0op zqoZr>8?^RciL1gWE1O@Bj>2ev+ph2J_^$!TS9jeR_g|AMMynBb+M@w@h0iP9D z3#MnQkW|N?iq--QWfTwHY@xo zoJ~xcW>>C4JoB$m@xJqYv~_pX2Xy)}e$wyr3Y#5RIpk22Y38s`5EhhXwZ zZnu3exuY?MVwYci?)g~xoL$Rvf=M7icVFrc&`ee=-)*K3KqQI>3`UT0;4wQz&DrZd z8SvgiS$$v+dqav7giH;#aoBhWfkOd5b8JRCJIPu7oo5E@dBc4)&1O`G<_8$^o#k4c5`wid4*aZ)kbuEle@^j)V`*3S2j4eCP%nt?nL@taR z3o9r6&UdBkY}9-PAb#MUTPY?0;lfMnH_oD<)R~#}dfW);Ue>q3BKlq9*82|k2CBNH zNnL%Gr0exEX}snl-rSiq%NO`yb&8SxzbJkU~{S;RXdflim_+xO8$3`QT09 z$ro^LP_nG&4fYWaqeUpDrfC2&-bA)SU<3h2XNrNP$^^RrR>zx3R#e=eO-21Aq`^qu zrA0d6GEY~Q7hW2y8oh@FJXtx3DQmZ10cfg1NB0xqM2B==ITkzm?L(b!o?S|9(^1q1 zZrK>-hAq-;OGN2*^UbOd$J{i=>D;W6P-~>RnR8(hpp%;PU;~M6>ZfgN*6Udq`3_bV zhUzkwTslx1>^zT47x2R7Nq!{lkz3Ak62zfAJ-Dnvab#HUb%iivjaoImCz0Y5IT!8H z=uUilC=fwj4q|LtUMoAEB2^*@&xB=~t^kvLclWZ!d*ee`F?aQ}O4+KEdXmi<{&*=D zSAmPl1Y7F*svx&T>~Cn3{8pz8oK2Z3z4({Sm@41U`plM0l`rS#ax#&VY~u1x=!uvW zT4om&sfTY2KR3zByv*{){XzdxUiHn(lpPsfCNv(TgW^ZG^YdZ`Ka9lLX!^CQznJyC zS&ou|Y*)ST>2>qQ0SCne9dT%1#b7R&Fr9{t+!gYC&me)!XIWzbZW%*}$i4dqX}V5^4@9ih%VgsP+z1PHgg$Qq7% zAU8Pm0MwnCs**8e<^RcaeqsWGm$-~@$_(OE8CYhM5y_ZNhlTdwQ)MI4K4ku z8N~IeW*VZxj5Mw2O;i-ysJL_rOG+u|O;=ndu%Cw-v;bb3;DGP;KFsMOG8Hy$%o&w9 zYYlsGcV}HU;wk%{bW<<^ha;8%Fmc3s_$b>r0zUiNUSHdI=0MZ2Ec>N9mNkxL%=0rt z0D4RVZtu{JY^I;e5lmgb(Coi6T=K*HfAmJlC_9<#;s5^0WG@}9-QS1%OGi>=%D$n> z{*-QISKZl>?1OJ=aQu({NqM^0c(Uf%Ue)vC*AmHmulh#w9IoB`8i;r0nz*h2)fy zAD>oGq}80ody{Ne1IjSI=JP!_D-8+!wyllaZpKGR;TSN;LW*eOVY*%KcyQ{QatOcJ z+E^Ki4-V8*bD%;NL*rBCHbk%TSe+gq$)<0isxGBHQoqT_WKgV->+C zC3g*!ufYLu^M#wY-JyKUzIVU(@%u|RLGaob4dvr~yDPH+`>rudh+J6vy7QEsaJ~4c7Fey3(w|j~1*>wLA z6Z|`qkZVKQlS~{AMw%BHc#!L2~+_%BQcRD@doPnYLf!D~Y{< zuHAOKpo8%Ye-qNqT7LMoNh}+%A(Kt4PkxB!2J1Ec3`a8i&LjX0VuTotjrl&a*|7iQG3)>J@2vm#zo+bH z!+$c#k0xc`8vd0@el{t4=w|AW4@bi+k-Pj+`gAzzKiT~m8#n7e*-akx9_{WXz2RUt zkv+JvFsVR9hCLdzQfWVW;{xnV%B;eBBw}P0-h*F8QJ?E$NYZ&?&J?YuHG18j4jCDDq zi*U%xicJ(h&P!>RP_Gy%pz`n*gszXwW%#i$(k0cUXOL?ZHH(mH zH$P<;im$H3Y$;uUq?mxIgHb{i`kk~!jZ3=INI14o#1jxTk0}po;76tq7%cE#LEg4V zQ+*^YEBR_7XI5kbX4PDlR?HXK03n~IfMz;> z88UJpQGalL1UZLj_?#4c0)rpYzT)r)SChzNeaaUq5zLOX*CM4ji&sv1u**eOGAv|@ z1SL~gT*wao!7b!$$=pKDCUB^A3pu-BE^aSduzDdQ2E1sdO%?nX16lJOdAxp7bEPj? z!No}R>$SI#24*45b6*$m^V76k*6T!JmM!uz<4pYPAR}5j7dMWUBFk~nYqZ7Y3Vux~ zYn1VVA!B*Hx-nv9oFD+v1D%}!j^>@8Sy|9$(ebt(C07rYqt~j<4C|1JbH*7#q1S}1`USA^grQXA^ z1SySJAX#}jpIPfz=+bCsm4Tjd#O+J85S zuXJ&p5p#VDl}q5RZ-Dk}le6}Gt=HSjcXZZRTiMpyMIR7#Xo+IoDlXZtOSzQq)YueO zl%JDx1qae29IWEDSlVpBkU{p-l=k9)T??^L*`Q+2-NDC$fw+z9-VE)R0KDhVRg(9R zqU)3UeI-mn*DtA|PdMsEFT5(q$wW5E_jmL3cyQXcMp3BN&XB!OeE&+Alcd*6M%nSn zb?KvUtk^R} zF)g1}`_40y5IdSy?3Y->$6i57dPigG?ES@3PZGI1luy$Ap?t!=QGEYi$#MU(F%BP^ zPJ9H}bVR{~}HCA#dGl>F6>p{LxRQ*{Suco=+pW0mxJkVq&0D z@=f#?T^-BQ#+)ZAg%^IaL;yFcRZ^r(%obBYxx^h=7!8|`l-RZ(Y1(OVJbLm3$LViz zb+lGiV`Y3K9=9B?#)Oy$&+m8w5Pv#vW3O)r??2dZ<3)e8WT{lcaSC% zN9!Q)x?BJohXU-YKPU?|dbevy?`4y`lczxk!THdyH|p9ZO|<-wvO19)T9vXd6@QoH z6M31Z>^u7X=R9TKpm1@Mr|btRyPD=Hd+mN+=PCQz?TPP{f0g8i-yyStDP0Fdclo7-ht!jwLx{Xp%|cEL5vOJSEj^qu81bvdv4_J3YW4J;N-VYocGl(%9d6vWk=R$^`y@ZaOv@6e+w1i&_0L~p zaXpZA)zKIAm}Yg=(XWl-U*f1YMnlHc(?~@#Le|GNfp+vL#e3pVLfwIPg`tHu1{fy9 zjv>zG8(0Wx2-&ad&O}MCPrHK;*jLSlEa>Y`iti_*?EmJmw}08>Onz*h$g2ECeACjU z)J8vw2_QUb96Texzt-zPx<@%QVEy^2edBOIXZz2p)~|f4cs?#>g~{1N#lhU8?GKOEgVM%M(d>9{TK3O>;H>Gz5X4hs5u9Qtncn*X$Iy7e}@%~Say8M9G8b* zSHd9e2~%*15IhL}PN`BNgZg5oY-VE=t`-dR6id+UyisEM)UcED1%ybF_`ijU&i!nx z<}}S@i}w*JTDTHs^ZAGM^AabQ>AP-k*891xSJP&w5mL6dCzus!>Iu3<=MZo#5r>15 zpv+X$0htCca7(ywijA_?&kB*O+>p5RX=R2)&KPr?$zG2ZTJWMJ9qd6M#2AaG`ataM zK^?F5xI7l843@HJh;t1}ZjZ(30d%-OtC8B{?-Uu-(hNo4Qc;T%pp7(BdmKN4iM9EC zMf3ZFNNB-$pIU)q(jSf>Z(a}>4YI~mf29a`sYSFv*(4i_!2jOSh8=k^X#>JdW`nFm zpK1wbMqPAkn7S9JpAd;n6YD30d=b3LW-K76yD0|9Z0f#fDLkj}V>nKgV9wY_E?Hpk zq{#|#2OXY?2E#U?_TlmE=T$!)AjSJ0AErzn4!hl6Pc!{=xc}FY+)Hdvrn`UL)fq}2 zk%{cl{^NKjd9?qyr_e@I8C_yAj&6)@Rc zBs(@$TySXakh9TiIrP*1laby{hI`0Yx@UWO7rMyeKGWEW3mWu#$YF0BjBF<9DELsD zA;X9Rs-`aWA1ikyQ(W&RcGvbyx)-&k>gizQwPNM3#wIGQ*i`W2U)UFl{i;scCGCf) z=wB#3NyzKP)4RrEJ!>r1OIpY3!e#Qz*-pp==mQ=#r*u`s$%QoyJLRtkM9};~BpP{` z=<}}PX7ZGUUc?MP!zQ4))eR4ujvp+)2mm#qgW9VDVogd;J{Jkx^d}4<0tioGs!tM; zyF)*jaYgPfX3O2gFQnqYA9~QSA|H^S2+|)j{;y0~i|tWR)ZMy#wl1}>1KQ1}YBG`S z9Kq-9IlmR)tDt<*{7^sTgOSW^hTpI!VJSqz_f7jr%@03-CNSMFcOTJY`7L}0k-8Bv ztzXTpj9!AT87)MU3SNoqrN}l7N2BMh28wf-A@Wg!dR~d_T4W1R_xri;w>v-Js3hT- zsQp1g5**Tsc}hp0fDa=w7giCN#&Ehgb)z|envqZoplAev4Wz5F#jaZ~$ExwkS{Q8k z2cby?-wvJ1V^tqe-L7q4CI-+a=-;tAP3eDzDs@h)Rxin2#C6cz-@#9<4wB2JXJH1! zw+sRwGidad%+>Lj@CR}I>(s8-#V)pd=7~dA=bzBlXI@_C`M3EsO&hcJE}Kt zG#~IhlY8Q@(SGa3C~mfHcgLG^f`xv)_BUa{+5xLJTgq^Akvmwn@j zsh<X>s8cEreF+M+V>y3tNe7x9w)L6o1*QU*O+`j%O_;DT<7z_inS@To&8*aod<;X8Z z8$M?_R#kplFW4{I`^LtMO)wGH5_?V8zHd;?RamuIV*$taX1_lyM0wmYXR7?@qHZUM z$BVmvXNZ^}S&>LUJ^f9j-7fw5C{idGY}`2A8#AKP14|Y{g3l~7{~`6q!?E8{Sy5F{K-C-+f_Tw5 zc7v*J3$l$P0j|M{+5X*wgT#2@0IFx_OSqiB+872_6P++34IU(L@-kbsM=2v$Wq0V{ zpcIE_ zaU9N>8=qypA0{;^y|`~FEh_%K8+l#V?tO0(9TyO$xI+4?i}iZIrhK-aH22_mcbTT_ zk{3O}&iMDn`I^uPGv3FoD@PRJ2YH!3eR5#dYkoC)g@AQ;PWIz5*(~(dW2PF_>CD`$ z?h1W%B3HNUoZYY^_MBZ~i%g#m(;JY`Gd2Zue=^^j?w;*lru#SS7W%KkIUN!S#2paH zBfqGXPHuK(x_9ZW;f{#wls)IDdbD@Bd&92j_hs*B_lBLL#hRps_MUIFcfHY`bH7Dz z$y0Z=)iKwt%e`d2hraJhN17$4>w|L~E%j^9;PslE?aE!-n>zn`Hn#UG2NZ^ zhUvj=JeG9h07K77kfB!LJS2B5dt9eM?G!z|o5azKA2>}+x+iz*5ko<`FDsfH+Zcbz zG>x3?UG7R|{3zO8={|>g>{-A#IRrX>Z7I!LJxv6HeQ=0N$yZ}B8!r)| zIf;aI(d|ywYYK6SWC->qlbjPP07jUsHPEvyx?QX+e{|JD?`E9&p@b(Z77P<^Xu|?x zV_x(u)|uYB+!Z+Fzc7j2O`h-Sz3W|3i_j(U+w~@zrBAu(cIk!KR7G!`KIMv)PDJCb z{-{9g3Vp2Qw>~0hk^08uA)nOhL5)|_7anZBOmDr+;$?xvZoSj8vSI-ol!PX~?Ba|; zypY7mGs`~GDJuAAvADHe}GHnc|V$qcm?n(oD3A;5~Ypm01h?Z3I3#J8-Cc} zoZVN8o5c3M6RiHCFAYKnAkaWTS)Ws{1*PTlhl{L9vgHG|D6XZ+H1Ge7Tv4AF2<+81 zGyL(RC;kiyB7x$=Af+5d8AtFZg8`ct6LoRx@*-pf9N1h=CS5!JUMA9sCK)Fh4&{Y1A9&c@TN7L{AP6IcW&<{&5|A4?Na3nq{EJC+OIb@#qlY$ z^W-f!S2yeR3&BLRqV%HM=3gDYW@V6#uYh`UZg06JE zeq%DrL<;9kvQ3I$zvwjLYkzg!Ta9OM?IyQU(j*u*S2xlCrf=n!f89;+6*lN=1s&Or z>x8qUJszB*0?HpjX*xLNoZI8!sgJC6m4>HYUd5h5{@3H-=>dKp%45+Rp2B9%op!j7 z>~io20oXH&>}g#TWVEj#g(7B!jd@Viu^HFSL9FO@^;5JSu&t<v-ezyly-e|sCXvVHl(}1tFqHDxoI=GCGy-~L`Qa>ihWZ24$EU%I zEo&s!{>qD6=#J*{ICfxo8kd9N!vph_+XM81)&uooK;bROC$lW4$p?5D!8y0F{(fqR zW|$c-9(;x2s$bMfsqmxkkFP32?p2&n^}_!7u39v=>$OnM{5+Nk1Td$F?KR`vzisP8 z9uEcxf%K%`x@dz;Q|w4)cjeKm4pyZ^}AjB=SK*O8X&nT1-|qm*(=s-1jzZrL>w2VnNwuh0^tQ?ahtss zOlfJX68LGarPSHCqA_FN3RW(Vel1+RjD14EAaY_B#vZ)#g(!L^0l{pqBsuhLemQ_aQr6R;dp>tY6!z zk))NKN{{L5cMY`=-tSY{GxA$f1rAF|u5H49X-D2z_~Ug<(Tb&%>8e~VB!J;u_@WgS zc#IQ(B83uTKdHH-;AU5*$|GAW7IK2X0jd@9L80Ej6-|rTWaGKTOxz;oibQzsADzgV zxFu-T&8_8DOcnZ3xC~SvPOEu=Xr%8cN=a5Oda`g#DKN05H!)0}*&WVGscpTlFY{9Euf z3+#8KHE};*VBj+ouZaSvnq3ln01RE^Rq}MRz;y{2>2JjWxY2J#v=|kw(7rHUb9EB~ zdB94jg1rz4>aqeSHpmIIJcGfhJNw4G+_G07ISpY_%#|^PK@dC*sk@Yu*Fd2bwm@+D zmaU`T?-z~Zy#BnNKt%f(p5GgiDvu%Oci#O)Bx9$#y^BE4Dn34-?%mPw%uT-E_)#?G zvpwVP*uvKK4!5i~EAJ+HZ>f^EUUiFRZJ2XVQl@y2p*9A6Hu)XSZBKURb&`leb4^Rzc9bzm=*fc_0Q@S~Bhumz@ zgQwi>uFjF`+&wc$r!2-P&iHyw&Bq&NsVNIPjMMPncEDOwy&h>3lhQ(h;v#yPht%dhP}O8R{#b{IkuL zoBSKnS0lfa=Vj~8`O_AhpiF6gA`|hw_ezK$>6^m^Vj{7=o3rC*t!dXGEe42uJp1C^ z)}!0Ep-^_mH@&;AK)xcu@gj)YP>b@z->XS!IcUYuDN-*PdZ;zxv|wDV$U|(`+TmP6 zKSX!J6w^iHDA{1KTd%>A+j!i~Bi1VHT+~>DzNcx01`?MR2BR8Tc0ZWJ?z+BYlD{V$ zc(>Rx+umC4EOJ%XYcAvPIj#jqC0-Dww9p@B;ugF;O^Wu^mKL@T5~uo+WJOx$srIID zxN$Ud?T`4lJezD++?4Azx1*8v+<+B9Dsx<2cs90e;m}@_RX^DGaS?m&qwb(xuEEfJ zLkM)An+N*r>a})fT6vkp1NJ!Cvb7`cUoP>Dn=7Fj7xM+BSqu0!Xcv-N=!*YVw_ch9 zQV+)+UsZ*p!1dN40o4Mzdty`m^Mep)+|{aA&U4>ate(n;ru%Nk49Ss9dA3y-^3g#FLmrj1LW zSR^TPGJIN<0+ZH^v~IJ%%@3A{pRa_qVmt*?3Rk<$C&R}J;3~hG32P-%qqH{emQ|^B zmuyqsjnAJC{~vAd!rZp8tc(5?v5prDh(-*Rtn4})3e55=iC5ysvK_~cmQDbXBMC7D zFaRivCh*^Hef<~=K+5sH_nuV6B7nhQ9z8uh{rGxtwC?Xd6ZD);=f!zt%Nt7{3tP`0 ztRQuix^va>@k#Bpz2ssD|CZS-AS48PS|1&YLaJhw%~!|&d-^rW#V?Vy6G4)6PIqo#!+J$%3C;Ws$$p6UHBOz(FHxsif2mOBNH?CCchA?Vy(=rlzachAy4bt3l75-DZA zV3ttH*WY-=e@Vp8GST5^1UGQOe@$p~d`R0rpnqf02YWxIua01=E| z|DWr$F0*HAJpFEaNNq5PBgx2>0$+vbTzpGG5}% zx`hiuw%eFAhHE`k;HSrD8qsW$kcu&F|KfMVI)km~-*@^0#h4o14?N>r-9xJ2g9XGkF%$XwJ~=ZR z#)zWGmdRvtQ}QJuZ#GmP!ooY?~iU7 zJqkd(&W`$s$d{$=Q)k9{T{v7OSo-i7Vf>f2CfzfoDe za5x(E@F{drAep+UX?{Ky@%Cf3sIQ`6dkY-s?J8X?vi$NFdr>1N(ljx0=M_TBK`hh6 zoENvRvrn*%lmK0zMgpebI=wxz@X=MWffXh>F976!bY9#hvn&vacR$`FVSDni;Fxw=g7L>)VRwrr*h4PEQjVMo~oiJ_}j3%&pTomP#6hOtm z5549l0PQ$SfskJd>Z@03+tncF<(yU>pqK$Up+y5A@SS08cuThqXVjD&DRl1o{F8j) zKHX~|Qi86lmCYAO_)r$h<$I402#mOwsdKkDKFia^Q}?E0H8cS3nDe3tL-VFkkhji4 z{s8mZe~m^YU8n}SB6)Qmc55w`atL#ry2Ev&d)N4RAh6ssx)3bdhQwj&fzDwAC z{&6f$Ff>_ysgiX?2+z)5IBb%8u+G)q;rbw68gjJC^+*-hd?!y~o8;e~Suhp@iC{X% z8JEbUA!)0afZ_!1&{Fx7s!vsQB=60FH;fF3qeN()6ipLg`ljZ=1ejUDgCeA#eGI$c zLlF{C3=Tag=Q^inFgM#Fyl8p_NJ7{%E=X{gUfZZP(#I$_-T*`;YduI^#Xc}N&@l_h z;&R3t6ug6a9w7*zccdIbl#Vm!KMTY-t^pC1XejT4a0EIjISni9?s%&VTl%Y}f4!fE zrW}ub#Iurl0^Da>IzvGV^@DFp3Bql=mm_Rj<{`9DH%nW2CA-DD?UV)w#;>8wUhQ)G;{kJM~aUTH`UuX~9Y3nWE^3Dq00yLZFChO{!k+ zaonvjRqhB3rlaV#HP2a6^3fp(n629#UXm=1P{HRAx`B5FaT8PWvMg4%tT(_aWr&H* zlFqIiuK7dJOWgicgn9@`c}y_UB6+}T=LbLm&SrVQK~cXH@za9xr3$ZPCaTAMM}QDB z!Cm!15}H@;RZ5HPat8GCU?z*~CJ84g;VRf*TdY!!HEYQM2jY^(@J-FZahSA;t=Xd0mPKGI#a~0{CtOxRW{LGfnfbAcx`?>pF}c7N_>C+r)knS~g!@2O`I#bIt*Z8p8nj~FP!XiO~|yA45}+T(lrH|*y>JS^VXkxE(@jUO;nT_UpE>N zB5-fZiVD;1b?}|AY#7O^m%SMujYM|x>x)y~1Vs-UTk+y2%ALo*VKTWo=D=Bz$3Ni& z1kmd_xzSG2Jzh?(^h9h2{F&}{k@I*mPOW-+^v0MrNf?sMNFe5IY>PkyLTRxnxMs45 zNK@Gw@vQSLlZ|!fK76)ca&O?$38}7Yp{n`Y3L1HSI-^csmPIxU*7kIU938QpDPn8!&h0>KZS&&#I;%;shC`AxqDS~*=++K}7#r^$(zDo} z&3>lG;*-(73ddtRn`G6aBG2u-whN&yZ|uAe&_EA74Io*`7rU42#f6>MB+cV!1brcc zTcZZY*qTOR$PV6?0jK0t)AxbfBs5m*|AK3Rd~!gsjA{`yvbW_ob< zO7UOu*lss)-nS*#T20bj8C@2bh<&zmucY|4zDjG`H=?uUVy7F_rXA*iRSmfe)x?%< z_N@Epc^>yV=bMZB4IQ>OW)rM(a?>bQ84FQVLt@eR7p-iY{{)6T-uHNxzGmq!3UeD4^LKo8sJ ze}M$cEV}Cub{aIAeHw;OyMDxgH&Gj9_qz5i&O`IG3?ue^2;0{DT*TX6 z0*Zc`3YPdGqUV`s3i!*HqbyK?e)e*q{EMEdc*OyFp2s|1rkjvbC4TQ`c+cY`BF4)1 z1;XFn4F#becRb7KTZVj*k?6~kJDmU(Lcno{JUDEtFffYa5xneZDm+^0oH=Ehoa7;X zuimx|QXG1T*PWYY?#n%;)1G9A`%ee1B8>UQM?%u1xJHNDn$;F6`;xC7D`eAx9FbF_ zy#hjbXe#kNOmBntg;D>QpDVdFqqYjYU zgEnlM{=ozwvPx_n0vL`P@lg-yq9e{}!9a`uAYc<2z@eNh_$!pd}NS z`abqCgVW0a92q?r!rmmjiP+u}p^Q#@xF7M0yyw6U3=KHBOW=ot4q?Cc!aG~i;Sj7a zsArSnV{XftX5XW%tMET6E)ITr^XwOCrkjalI=4C(`8hjIfOg*4>lI8~(Xx$et`#b2 zC>^Un7s5eW1%UR)j!+SHVIDROLJiW2fc?uVs6g@oMWZ>JThcV6B{<3)_-f-ZRN9Gi zwMIV0>3CdFd=CenCA0>rD*orx%qxx$yDMsH>)1LV%?xX45JV0Vg&EWZ5+tf`>cVU| z>;|}^-sq>Qe{yd|1t0ONo=$)6cB>_JD@2a>bPeF!d@`o}^A9Ix=#JXmQGX`cXp5Dq zSaEKUJyu&I8fDBnxtax`L}jtgb@8BfK~|&ySj65C>G;U#xDk;bG9JCr_@b_xi+DMk zs3k?4*fh@yRy+(FPu%SyD2%{ZiqCA3YZVR;hzcysC=X3#=CqMQFdSAmb4hDDjr(1- zQIb#^>R~OSQ>0}=i!|ebO1n^{LWZz1S%oCB#l=N5@8p?f8|U0*wVe&;V~t}q?QE2( zB5ayq4YgD7Cr}Ux=)eV|RoG&}@pw6#1QaRCSux0z)3X#Aixp^K1_BpRhyMkD-^4pL zD)|`RwM#_v?gmRgj*jkE)$kRGEhsI}L>|P`11i=~x4{~SE#+*bcja8d zy3e8Nk?;1M&btn%Do4$|YVhw$bWaAR+pbSLng!htd6Df>sXq7JgqIcXKn6mA7iRBy z<=Aji6=kjIb1hvxFBbM?QDyLgL$(hFuzhiX_ni?sY8DlO$VUu6=($+|oa>^Bx1u}~X55;Uh)n(H za#It!2Tk2P&EJ&i{DU4vJ)NArv3Xs=!bT-oOY|}oZ2gEsrl8j6w(>QOh{Tjjd!qsrw{fN?L#9Zh zyWCJYQBC?foEMG%^Yt^Vj@g;QMI{e-yh2h5zASr#FA8gEjpzthy)xQF+~rVONR%Ee zEFRQtkw2m__dH#xM3Dyx&qiWw*cJklK+kxxPVJd)Bkl%m@Sh}TR6=^(LrVGS&f*7T zeUMMgX!}C^zc~DKn|qHkaFXF{%`Tu3(F1MRMmeWv{w1qw1aHG*MMDNiUFWr&b4qvZ zl02Wng4u_fim%eD%5E%YHrL?<2sdgRqrF%`NNE#(u7W{N<08XSg})_(apFdWPH5J&_ExZE3HI8~eFBq`BU! z;(TOD9_xgOi%QS;<8k+!otrU*eLe|s1gkzP)}UrzXu{ayv2uMERq3;Gww4XKiw2tZ zS%rF&HI3jIIKFm&U8(yC=hu};ZWrq9O7fYbM_y)KIhDgtW#H|2M6t@fdxfM0-e@xgYeR&aO$EbjuDTw&GizR{KiIK=(bHWcigXGssJ9Cz0zY$053eBM2{HfT_^I zx@;Ab(n}C>DRn}y$zwa4kb|F{O$04=Hq&|zpry96Ji4la9Gf&EVE(9LcGpq$wTHq7 zBt=z6e&a(W9#30yL!znp`s{o8yY6Ld-P4(msQcY_(=hrL$~Og)Kc2Rs*|^rI3|}Rk z+tuWMx8{6b3G&`MoqY41nH-zRxA3_0-ukvRw-xLs9)=EuC8$6A{cmQQD%xl`3i)29 zWzA_5H9}-|Qw0QX7yVI1=aqTwE3-ddQF=~NK>~9d4r7n5vgM+r`&FG@UfOc^&SP~1 zLu?M|Z`=>4gWUyb=b-v8i|fQBcA2gaPk-h|&h&NnusB-i>qoCyOItf#u(}|KR{kT6 z4Y>qC_RmZj#`g<}V5#EEDku#MNLwU;uiz(}ZkmQNuj9wmY^6ET66gu#$?^z>d~v{A z$KI&-tx|b7%cD~=>gH$c@<$$)3=(4?{vm;N|d!HkDvo@8ZjO~;=9a)wYkLt z1xWPTDLTeuj8J!tXFUBh(fZiCg%X&2XZIvuN4H4e=* zu^z|cQSYl{Yp#MdH58M~g@OenyYMb0<)7uG`jD+0`>vWMn@y^#V!d3v9z3W9Me#+{ z4i%>N*(qA!I}*gBin=i#k18^Oo5grM0_YVx&$~fkk5FzYhsSh4#V(2;n!Xo=qI$A`MCY2n%G-A7kp!vee2W^w&p4M@?~cLjkNW; z%ukb}qkG$YHY?l2WS(2@W7;W94n)BO-q8uP-KV9=&SLr=C}vcO^hOqhG#0<`oiNBc zR4Wl&)A@j3QqF`_XCalaM-6;?2G0Y|e@jVbDZQTVXiu^r3ulij7-9{ewW6%sH(z+8 zak_2IwsoO_cE)%*RTpMtDQEN+kdUW2G9FO~paJuC*BwKlxIb0N9DI;5G9^P?bSZVU zNJ8C1uIaP*MHQ3)@UO`L%$#6mC-Zehfq2AA5yUDsQ>6H*YTzdlcpBwmDzh}NE4W_V zr2HEORI)ulN#U!D{-+<-13)*952SZILlQzcu=ITZzpn{dNjg+^9TK78&)(jLSV^Sf zr6@(1rHfT!62$0X|3cs%S#1%Vn1FrX6lbA%M&d(%L-4aDK6g!}9JCVOg1875^;w6+ z?#x zr?@1CoyEfI>#MHul(o~1Rq`=gE?IMv&?^0fMoC5`S5*rbKt3M-Sx$a)<(XJGzOeTo zNML|X!V`Wou<|(K zPgSsmA)ov}f3}+n!CZ*EldQi+B`9-Ps257M$IjD_mGiL_(*j}XTW!)ji2jNK?r?aan zNX#_<`5^oX9zaEc+VlW^Ofatw> zEb-*{kPrJlDkr_8?sz=vv$ibcSUdPZ6deH7wkL>i0A3b`C)!$aW?LbQIJ*dBE9Qw4 z1GJO7bd?g(qqI=1)g65QYd|nC55g0LC+6O(;W)NtMG>m4Fcunx>v%cC8Hr@PR~|8) zlhWX7=giS@8x_WymE>Kzip$Px|Kw^sUa)@aD#XqyvC=hpQ}hOF zTa3rVs|!FiFU0+9CTbnXkHJFpEp-^xfrCX~bgbw%*<>8}c`2OSp|{9xH4DmE6ZkQ=(#H`(wFc+dsL(s^ z9E$*!Oa;Cld3Z~cn!;2_S$ancw>UrZs|ed6T1H^sSzHlVg1sn8t1U@pr>QB5F04LW%^vM4w(&QaZOk(b$nl!7``6+AI@Zo z_KL@08M_y|94=Yx3DPQ0Br}z2WkrTjJ@^!@kPItCPaCD@1hJ>1{;;(yb^HarldUK< z4q2i|_A#WP2D*@K&A&*D^AjqY_f>rQAv4d-ubKHNGe2hLx6J%iotbx3_I(9+jz#b< zNGhJ>^1Cm&sKcd~3zYO}lq((Dli6rWzZtT|Ir28mOB}dJ%lB_zU_U3B92p_uS6bwC znN|?dtF%UH7-*f;@6=Z?-J?d~#0VG%7`m4kA^#s8YZm$>VBwP8am!+LR9&Tu;-fm? z9?PoNGx9=<7Q~; z!z4%!)5GjA3E7>{&f~BDb56(ZqqDEV{{)k-X8#GlzFeDnPKn&s`!c0>=oyMyWap|3 zIH+e#;rFU=@@J9dL2{6Uk!@R(e^Hg|bV8(qL%lGmy;*iG62l`;@?9zHJ?hYGZVbN7 ziN}xI2*{ePDY;o6vd;4}BIk2*y=_f4kGJeg`x{~3JU7m>wts^>Yx}p@v$lT^p0)iu zuhK=ft|G5ul-a#Y9~j)`FWmj4R}+KxJV(ACZGj-@(7m4+P3O4*@XT{TmO-lsJ?A;& z*E}~_UfDX5zYmwi{6p`8V`BWr5X7K4Ac2QU^rH;TXTATvdoU1s^a=x6=;zWa%~Imjd`=M>5QLVz0{ zAWaiI@x2@Q`ufGZPH$`#mB;|gtR|Zq^6`)Um3cEj-uAfVd->yy@+ z{Ah58Xl`(iDQ|ES^yhAI5Jgna&2RSnLstJlsa0@&omL;BT<<^QtJV~ActEA|Q+sBr zxjF#^r}f4}4(mpS8JKJ*)@$r1n zpzVC=eV>&uhBtqcOnXM5HMOPFU`$O$F*#oTBV`_k?!ck6SADPab}XFe+Uuuxo9TU5S`{E%g7Kyns-AOlyNB< zaq|ROjGVCim{hK=4JRG&4}taMXK}_*_Zo|HAULiM3YmE$Fx8RMRGr` zl8-iF&A!$t28Bn`wrNJNLX;(t7o7=yi04*lDUOTBVov{R;w85w{6x-Qopp z8ZnJAfan+=?rmm2u8OjLSlkAoxyxkKH7PWdFOK{;`Ze>(GOkb6Hh*+{21F}S=|OMd z)PV@*n2`HfX-3DPB2#&IQ~l8+LvFoy5c9tqJyig^kHar5T$DMjr_lAO^%*W=V1-5SmR80J zOht(l%eZ6pIyQ&#mSzeAi`a^1^jzHERMf17sBKA~LTbKBz0-bDZbLveS$*vYEM^4ga0*nzsTF4ps_q-ii>o_6iEP`WCcVR(lTnVOzE zH9+Z>m?|K0vL@l5)D#?62(uZyOldu+H(QWMLzXrLnlRiENX@iO5x|5DkuDgifM*Ly zv|FlPc=qRNU9S>ErGG(5rZFlFQ&NehlZFe}T{P*GfmCWr7mNMfpbrA0=6=H}NM1F{V5*WZ2KcZQ0rETC}ch*^s%vF%~nN7)dlbx}C$wEL$r&NZh1|>j2&d zDnb{&HkXWQg&||<{%`2KQEpFk{4-^d{w^^~N>pi5lBOSZTxJGBtf3fuL{tZ5lg(?5 z3dZvONVDG?BM|R(v94?~Q?=6Md|lT?K8llkeSL0AENQv-eLRiqB&%MQ*>zfO2rNL zPA{LQ*Kk6^2gw4H*H0E%jWZLn^G#_09{V4^`3*XQco*dR@>xLd2?0kKG zzO+>|nzrIq@XV2e%F-$l@&-z$pIm8}1)K+SMu*ETf)9FD)e?W=;Fb{Gv1DUoEzXbD zs|2PvawZrM_y@beY9_qleb3LA>oOsJ%T>vWCP(f&Yvd(R!nE@FI-y72!!1A9jZ{J3 z>E`dbKYt%_F&>Y=&56oh-ZASxe4f7}Hq65=7wO!a3i@i(yc8mI+~vcZyfaGll6;WM zVwGMJ2>W>ak{?Q@qBO3_Srgj?#yY;g{Q`E4nW-F?-8)pWu{cH>8X=D|9FITD6+E>J z4fVnaIX&$C@fe_!+iE?Z+o}Q_x9(2>`v5FDHy5!+%nn!c= zb5f_}rLB?dleaR|gOk9?-|ZOG<^S>4qMG{t79H%gZ^oaGY>1f~ECm@#rn~}eAQ_K< zes)V=6!UeJz$4}v$SVs&Ga?>IC@lzCsOvI2U)MHB>hwG#To^_Ts?&3ViHWBK?45R^ z+EbstolprpiGlb?^!`gn@6Xbec{Mkmn6r?ZT>$M&d_NnHv(xF>4F8&+=E0U}B(h@9ct|k)7Sy->Wsbun9KxK;h5a3&Yg<5#Q6oC3_aSrX z*5DbRq`QZ2_iP~DYI3?i@lo9 zCYo=@0;ip&xX;&%5CqB)1qMAM|AMALP3zpRi?d|^%zZ@@{+f5J_+J>Kzve78Vvn-% zzNwM*p5?hMiCFeel3$FEPi=eh^W1d2vSjnuylKz@ z9<84po3x=B{XC}uah&q6`9M~bw(e!eUL(w3bJ30X0>wL_3eh{OH0OU}Mvabyemau< z-R}!=3MgGf0)q@w-CVL+_1|;CgnwU|e`RK!o|${Zh5tSGjoQYt$RDtO3?a=(3Z&>* zY!J~@e!PUN6Cn_!*0*jWy9|)50e{-izZas&^{AHHtDiaTl&J;W{+7je~U8J{}jAd`H&%9i$N z4n-QcAFh62*3TC|6*oA3@Wq=H4z^V2ahYBsAOucIXJ(E{kv=O+m*i?&Ezi0xlSV_k zjQ*=fUf4AA<)kXEZBWPe(I56rb%V9`x;PpIR1suxby@b9+F}XG0~QC3rY+&lCvf#y zT%VR_qy{TVZ}SwI<_|N1 zGY%Z2v&_A>(tyy_@M#rtWUaFT2bCB>_iH{5ubVBv_U9!j{z$JCiPs7}6z7kf;Qk!$tQ2 zai6f&-t)BvjUy^K5EZ`nvIHqzg0hD`Ro#uwVJG3p^~59($!qMFbW^Nr$)u8)WdHR} z&0NggcJ-f`KbAeX{To^ue=K7!ByWR3mTCKAN%MBTWJ}k!nwRNHoNw8S^@p;!W*>Z6 zIQ-_eZRbT^)#V!M$Y9GS_{bXaV~%Pwa7c`RDh9{i1$%lv0&M1GRGPkXZtU3d8*QWr4_?ZAqUs!lI*$&=<-hRD4ujXa80+z?1 zCd4K4Nb)o}T#T!+!ci6sC2Clp+R0V|kRX}wVE1;)bBFx|wK zsUFWxZJ#e}$wCp8kqJ_}PF-e*H+;CxmJ1DQkxr=hometp^NQ^d z4~kW#*>VPJR}<$f?5e(s?aWT-*Wqy_qq%2gYi6DP^5#{qX?7HxwUQp<+%#PH@n|F< z^8456a_Img`pbKL#{-?dfy=RS3N(@!ZDeM;xB`OpSg5PR0+u6KB|PKe(<*?218@3x7Pjp*);VNFII6<1-e3RD$Dsoa z=}`=0hcK&hr%f_iQf0le_#n@ePoJmuj6qn2Wf^Qvd9yXyQjTt@St?qUg)G_enB(rd zJAyekhn&lJAX;{!o#xgsAxo(q5oo1*Nk<8Rq!u;QqR^Vv3W)2^s=r?k3rg2s< zF&R3SM2z)X)L^JP-V`2_4r&8rBzm}S$-sryLXZ|vtepskcy!FTYInSyENBrT zqo5P5ng-$)H)qc_*GW0OGX1Dop89=@d^Xb!mPc`hVf4n2zsqPFOu59+WlHMmk~z&LU$~mS1YPz-*@6mq%;(TwWIF8Xkn54>*jP{dLG-?^NwxYj>9` z*0STPd!`uZvQWO$IP7`O+B;0;B%ROg(!zaxJQj#r_oj@X??~Wd;BCHycDReB49je6%lE$G?Mg9Z%wkwwe>L&+7OV&UsJyZ`2eYV)b!dNe#c`u zzskAj%FaJ`3<&EmDcX$|;06W(!f$9H2jzbOzN_0`k>`R=CxZWR< zr?8IySc;>~sP2VQZnNr14lC>;%8gV?DG%AV620;m-gsP&$GMx~6##De$}2>yO42XL zkb6(>=A|9)oYjIz7*JLz*}+VYyH3NlZTsgW#uYlJLle!1C(|>*`Bd)_ymLM4`N63M zfU1&-V7bG&`mtY=|CV3a|3Xwkohjk9s&{hK#863o>yVGF;$U1?8qAjJ9~6vhAqw_e z4s7R*q~PEV1PsfYJkY^9^r>>_;d;~#*c;MsD2ijTlJf}3Bi;E3#dv+ZG%51rFh8TP zY8wAL-{B4yc>vc&+5UI*5Q`ccRHS~P;|aL(;N{+Vh&sTGSp-Y|0D0fw__wb*?H++Bc&8vv zpK>4&oOiqoKC3>y2epox3Vt}t4$k2!C_+iQ`>>PN9HavYX;9q=J|{^dm7HZyYKgwn zt=v~$t2nw}@Z*Inweb$B$do$_ioQnSn-KF^HLe1x)Zki97El?qJ(3g4j4XQVAz)82 zS6zR(4_d~3@cN8X28$!4NCQU&nR`1)*j}ZT>wzlwQAj$%LNBkG<=Qe+R^VH;4|(*k4zy3HThMF_V%jM_jiKThZ`yZd4J+Tp?M| z?ph=8;hh|MnbL8ba!%VpxV@SSgJE(O1xwqSTd_L13@Yc#9x}LwRUzY6dAYtOm~3wO zjv-|+Z|^*7&=w)%V=-*5s27e=?uAhLn?yw6C1pdaZck`AiUY zITJ63L>zbSBafHCmLrEPM-aaQ@y^qweNWWOgE6A&ng)OCkpJeM+rxVdX{z3Z^7_x5su_r(}L(zW|9H06tkd5fSMGnl5H! zY$qOEk~=#ii4xEV_7^xdmgBLjW3nUJ< zHZ=5TV|E^G!q61pkdxc5;$m{^CTfGrjaEspqyQ&w}-Ju z)1Ta&n=GDu$CO9}`%;LSnPV23(yRHQ)GQ0hb8{2nu8+p~_3?E272%EC9ueaOqKR_? zqmdxbE{O1DoC8@J4V&DWhfDO{|L&Y~-d}GSV#ub0RQ~bTxk)Qe< zd9)0`dHd{SDa$G1VJlw>Osb&R!(kB z)+aHrd3Ot>#c5i8TOwL6ajX1YVm998`^0?mE`Lut^c5eMA@Q&qlGgmVjBg6nU%B!B zdC-p}F&RRb)SWDirzh$6KQ2#FtZB?q5#JQ2=^28+P789k1Duu!+zK&A0{0vhK_+MM zzv{4t!Z~4Z9gapwN4kTG-GMV%|KL-FCv&7r-F<-~la2|mXo|q_(Y$FKRNZPGR3@9B z7H1S~KAMNyOk=C+__yV0an>}&NqGqArfvg>IN?FkQeMK-;w(lK7kZw?mVgIe0nH;T za+M=fQuhO#@i0z!M-1+5SMwk>*}V5gh>9T?xS0KXR>pZyn{1XOQ5i;{l`>}B1(1WA zs8?9dg1N9|F|;%!m3rVi97r9dZEQ_J0dnZ5&L!I%c^31y7TvqE<%HV;6Q)zhaqr~8 z2k+%=hO=MZe=NR>D?(o&*M^gRmRH`sl5iGOa0yK5{1`?!uEjOO3Ur#^rU{Cs$!8cG zu_MJlFJXS~ZkRlbyyxSw8!HBQ+bRHwjg#-D|476K_23QUR@G}P9p9B zDB#Xq^s3(^V02$ zlB_;82*?RjxLiQ#02Jh)Fga+qBZY^|*_Ho-uOl!IV#sV7*{^%d_N(J5$FaSQxAUSb z?YxfY{rEnNq@!BnU8Fketyn+sIlBm+Yg*s1w=Au=%eo5qM{;jV4VC&Qw_*E_gTcK` z*#0AFTk}(|ZQHuE_B8|`a!BmS4v?6-fG3m1KIRn=LWINJ|4tA8CGnyZ1vwL;)7)~> z>OwtR5oOY`sM$0+h6Pr)_^+@P&Es76_^;~8<|I3v9u{X`$Cb%WkLi~pqP`4}U2^iB zO8T0rD?9z>u<$+u)*_Qn9rJ)(XC3Zw(RFn<6@u zl(uh*Rfl8c65YNjRvzw^yUhqUd&=_z|CO`0!}980h~9R0z0&UX@B@Pf!&h!!6VhAs zlNU1nFYH)bmhYn4@QDT)vFXpvS|d@C_&S*Dxb6S|YM=HAYW zkMDX959GD(lxWv1h2RWKSf)tN#X`|9HovT|^iUXQvwtt6d&?7hnu^GK2Jz|$=>u?& zs-|0Rp9OYPy^c>MJnymKmbrL6NmS0gBpHlAB`KEgK|a4K%EXIH$S?>rZYn z`|)9M%Q2UAT~>MrsFn~K^ji0X)*{zyS?O~l<-kPXbW9JUg(w{_kh^Em5z%-YTy$5l z_eAxP-mTF1g`38E#9|M4idUV;LOaD~Ge}hjBw2~pbEiybyo&nOJ}hqI^{i|4!{T-} zL+bhE(Rp#3>}fbo!H$J;ip6yZFI&eA@db#Jxalf@Ie@H)d@eys5NItz)A4+|w~6!6 z_*(v8!AJPG42`cMvg=?0WDQeLEHG%bT&w?EaGF57|3hj2THAcSL9(9g;$mF^*O@Xf zCnot|%iJ!XrFEIzy31eltY#XdTbtJ_U_1gs^@H6YCoq04v+JzJX|%}ggZy#{vcFEt z54IGv7QN(%Rs&Q8fzCtX1PW(<=YG8hDC@esNarkL;c{i?>t$Mct<_skZdXNab3$^h z7mw{tMn@m2?R?2bQ?yZtKQYN=nJ#c@c4Agy609cIO*+5v+Cnw6t`Py2C=Yl_SEu~o1NUN0k<8WdY*HdV0O>}|#X7EbXK6*V zBtu(waQlFkXQbv}>rxv=wGmA@ABGiRJ@oaH*Hk0a5_L?qn>_ww9YFUqLSky*KE-u> zpPa(vK%H@(g3=Ju_7|ooz`$ihH-4@H%PL8in zyjY*sXXZN2PgiH=Dy~jfUHt59e!4n~aLZiA#WJ`G%^&e9j^ko>jT9a8I=itEoLEl& zAo_$%64&gkcN1U5af}+qvTDcT^f&r8xXv?##-od z%Frk-S~KbzFdpOMXhqYEuEygLUSTi2rb*H2rjf1mDvp!$qFCBAPdd-r>>@y?IPQBq z?$u1mXu>U5DRGd@v@6QD2Ia#7^SQ4?JIFnZ@>e6`fw4nMd(!NkbE)!74P{Htgo(5du$1tj3`9dk}q$kwD|x zSWDyj5gmEdn%ZKCY|pV|SR5cnn_IpXXD;~LTu=H5ey|gdI8klxM~MTa6P`NVp&oPF zF+)C72nFd*c8tVHw2dC~HoBVC!7_|A3yI5+)9qVx z3fjm?UjTta7bc%glWJ{Fq(r&tM|#o!E1 z^dfGPhj3f!FK@_aGHRJf)H2AHv%OVOWpG;Jjc-oBDT|l=L3Z${0H6_v{lh63I08t0 zzz{zyionq5`|DhZ+@^BSj@RG}9Lh$0dac75^Eevq~jt>dG~^w@k{$CIh&i}J>ohN)ji)YGnCPpG+` zc9fEiq~}#&kLvLIIPZ!+mZGL47YElkAia65j$cC1&T_*pVEPQFMsmf8->ic?{QAwB zPmUsKHpNBZv=qHauqhT}f zAGsetqIcc5zmGq9@4MSlhr5oa-bBA}!x3&VG)xr+u4lkdQ|qai^9>atVli-2>x#S= zw@I(+53cH%w8Ga}9tY*DKR{&|(RhW2KH0L93Jq>Ia}Qj7;TCoGnhKu~y6HErN78?~ z*U=p8J6U{JYfikCbd-q;*WN}wbG3$Bd|{_ibo0(eJ$J7o{eUn!dj$6!c0oJ-8lGo8 z)nniuv45K9J@b;PQ?Imm@*Px^Wcz1mfnPH=*^<~=`@R$iiilqZ1<`Inv|GbdCp@A6 zT|lD0Th0_&cOb2*Kfq8{@yj5kcT;+|3{L==3QvgY2zpi?P;{49mB~%T;Ipt+^L_D- z!~Jg7f8Y^1r3?*cP`HL$?k02s1oTuR4Wx1+6d(rk6s7}cR%vZP-zmhLoS9$n3~E_= z1`Q}bd+%EeUb(pmw`c{X);wLCe3nmch1_Wc=tXF#*v8c67cRE(i|K{exleu0)-6%W zoUQ9Vj=gQ{q5lfrpFs4bA3g(rOO5YH3Zt%00W9N+k3f3cjrC9cmrw`OGhEbgG2AA8 z?Z42adg5t@>e9PMD?A*Jy<5c1cZ;RB-XQ(f{|LV6T16MbR{iJ?5jKy>Epckw;|D+Y zs}-LTFjg8THy4gQ(`_Oc-17GdI9qtv-GKh(wdB+W$!!uE8zh^=2m1aOHAGx_4$7EZ zuI%KNj|OPa*YGufx6!6|Z)1u$pTY5#+^T}CY0{=Cuw|5S=PmZ_BDlBB+SRQ&xVKH^ zZ_%!9$@d5@b)z^w1_~MAl}VQd$0h1%aBq8zueW#?zc%c##LiT#;UVLvmlnusdZW6Z z-Ka}$luC*B$n8i8iYog1KAN|2egbTsGWOlo$Oj7zzPBw~pnsu+?_5>43wufZA%`jd zQRW_j8+C8J3osh`8hkjrXYYf1+rmAAMuSEKO%3jCEB6F}-TDOY%=HPKI$+2Xhfwhr z!3@&4lD7!6`=H|CN2b@E!LMlG=Pe-5%BEpIFk)}-!NOd&qR!*O`ELCG;L>5gD= z(IK1P?=Zgf-8&;|{yi+{P`#bUP^a1ZRdwE!$9$X30y`0Bi}+%a+_h-s`VOWrlzJ+VTAd1MTfrF27icWLHEQ z2=&v)_;$Y$4(!fL_XhkCIxO|;oY@JJp12wT%8{tjF5-L2mU&nf&*6 z<|!;~s?g0BJnwFYD&za*_ZG=W@7J^AC=XthRHE0W(!Irc1Bz>z+2|Sw9(qLe@&hM{ zp)~XGr0q_~T^}>4&y=y3sG)U@+5?SGe*Fx#svwGe>}4p|Xe`o&;$sWa)=|xfTc%hD zPM;qrqbPWad3SoIMm7PYIBt>U+=km10&}6kK1M@evr4fmBzg&@KYT%H#XahRb*Lf< z71Qq!bVQIYB%aWHO%V88v92~hq^F{>X30B`6`u{hI$HujsnhFKlsRv{G|rCllk|QJ zUVn*B0xUg z;ke5aV>_lHk-+jqIOfsuNqs+_p43N2+HJDnNhwJs4zbKO4M}H+3tZZC;ax)U@QY0s zL(OjPfVED7QQ0)e4gRRebILNWMzK*osq%DHT~T<0Qi8TW2lleV1qxfpn^$(RUMiRh zjA;mk7L(!deH$8*mC$N!CUk%PwK{@#CDA_~4uR)#!-4mPBX|aBKx!GaSH;HwPQc+d7r>F%GNl1)Bl=TDCJlCid~8>+ zF6Z+Nz*4Z`5dx(;OL~v97BPVQ_#^;GzQ&Qk7Y6pI0L-phUlaNjkOawWK~cEnjizZN z(3~F0Sx0|ycOSiyF7yIn;=JS0~$4&=6($ zB^(!KI-q-sw!=W%&wR5ZLq3W0rh9bk@Cv{rI?50X7Mm_+Zm^ZsKwIvnF3`3$>qWfv zaEV`M`P?!rJaT_rrPY%gTQZvH0;*NBSj1aIaaPgP%+n=&hHATDcuR`x>Obh*+pB2W znu|qznj|K{(Huwc-;*=5TExfpTXVgLr=6^D<#uV}8-4Ii3amja0tgazDEx*tV2DdI zrRb}GLJff9=|quB+9edz`4Nzt?Bd0$&aSh{E*QiK7Ct6DaBENVvF*pL)&4>vcY3ev zK_0&)g?k5s%-APCrB(Mm(wk=l&%$RooUamg4cg=84EvK(nr5UBh$&=wUH)Cg=7AZ( z`5AK7z^nx| z%^bu2wBqYmMNvm3TL_%n7-R$0kj z$GTgOitFpF?jEQhqwaiMgRn=3y$i%JYlVB{oexwdz}{JrQ)*-ny?4N+9CC5DFjUl2 z(eL$DTH3|k&)w+sUt~PSXW~IHYz9A-yAL-!SI&p4Y7!9SbZjffW2iP(kGYIr%E}#@`!b-um9!vdW5Fr{Gr3kv62RfJAt%s0f3OSYI0JgPN-O!KM>$#b zHmfq^`Wgu!vf~gh%i^-MRi*Rh52rQ-=7Z zX2yhxqJ+vsgQP9RBE%`Ef70~>V=x$O4 z3Ty%;fZ#>#dmX+tc^}^7Dy_U~+{c|bX@IR{*+u$W#}9h~%Q zh8@KW+ub53I6HCHN5#IvDBSVIsR1G25EWO8AT!^5Hx132yr%>heBsHu<8g53Gsmy{ zZ0|R?T80P^rlF?Zm-aHNYFqLSPLOVVv=hpZ305Z)IdejLokJLts&>{~vd9*^(Ih4S z=uDkP7P2{?f7l&k5!JY*jIsZyBR$f!DCSpBoN=Oy6Q($7Kn@E+cs;%=k3=^^`tMYb z2Kijs^K{CfhIwo+()E%91ISY-fGhmMY>Rx58RIo#_M*b-(3q7xq6I@OHbC*?+nuGyBm`-N`7(1BHPVbUYzWRc#Yd zU2@QW6@<(?{RooQBU=cp@2H(fK?Z}(Y5wHa8&_1bi<8mgpDF2vbk|b0&8LFH)hMt6> zS9MFT&Mr2c{GN3EOTrFEPWN!BXXntrhx}R0^u9h&j&RQgER*SNFMo4#;+}K8*PVr} z+==?5a*{rSd9+ZwCRP}=&|@{FQ@_7I4oBg*pi!fwt&3@%?wD_K}C85YVyY>+%i^A8=S-@9s{$$E}m) zRsBC8S>2Kbx6vd*<4hMkA$>Jg7`A(chQ)#YP`=io^z<2yApcx+Mhf0KJ1vd2_f7?r zw*1Zl=)+Fl2JUC~8JBZQJ4kxy2N$(1e|0Hi9!yq6RZDgTawjM1?lDjS=fxS(8*`>E z+Fo`Pc$8T|#@(6Qcnp>Cs@SihoAz0s^KueJx5}3Ka6BHty%hq7-kM0!#lzy3occar zV&l%`T7e!7lo#@L$Eg^3D;+jf2@7GLK?p+t8l-Xn=OL1;hFqC&;!K2gXghXC+a(oO zj@2D*w0w8R8Ckm=S6`^j>Nj4NKDCB-HfGxVyFV8Q*zgL9a!^eL{Kg~3MnZbd7-c?C~nyeMH@J{drLs@?gF4L1WdOS+bHv4q6gH!sRb!k*abqHcaiR1C; zp>UZ2jY1hlBeGwVGeBOHF}O=uOJg_(P$hTEe9nDCM-nQKrg_2XC3xdwiE>Yh`+z{5J{_bX@S>6>EU%G_^dCASXmW4V1Yn}j0-v$ z7l`cU;R28lUqEmklXo&W7A4ejT?$Tw996}-oLi>bY~gT-T)VLX{^m4Eq5X0QIsg|F zt&!Ee#s@QEG(?psuqDhULiO(4U0-nq=eLVcEYeK=4sRN}DLL@IVz5rz2e_;!8+dOL zM$cqJz65+o9Fe1I<8cP`Smve534=_>X*|{zO7|U@Cqu}h`|eh+`wY{jFo*Db1ZfLq zWf?;!jOp8~gVOgq`;6s>7^G0F9$iVv>Gt=2FMu43NoT-(wpMjOrAPW$CyzS>z|x&Z z04{y8L{zg!(Ts9in*Lq79HQJRXvbbAL14M1Zr|OC(L2M+Oev(*t=B$T$&7umHefKM zSYo@K9eC@Vbl!U7aqxK0*zED`Dp~HJDbIDmy44?s<`qS9_eL4OA|kGOxWRzy6)(s; z#+0g})zF(WQzHk2=gOA59s-YDZVGK@uKM6(h=?5ynD;*74yf5 zTgT(T_j^Tq(m;&R)uMz07F)O3j{T+(qynB3?MK-wB%)IPCX5Kh^2Y9%%SUnSpMXF6 zvQG)4DTs>d^lx*FErcA|ZZB=k8h)0?>1?g&-^jGrG%<3f4ah>N#jRQ*7Af1msYUnt z%E%jgpV4NR$0JcQ!o5+9EWF=Ax`9P#6u>`M1<-15U9v;&^uz6(fY0#(42xWPMAV(u zwY^@|ZhCdrd1R#$I;rxhXP}>QC$3J#7nL0pCVb?)gB|sWZZNSo&4`f~dg{`<=%q(3 zG=yU3>vBiwT;`WdwLy52%JA)R${+-GZi$@4#^cctxgFBEBTe`u_eThaSL%_s-nz4< z?;oNjI6dU@hZ!$WjIe39#j}XdII)8-NAZ|6>j z+<~7vsrm+CCEX#FZ~T_kS8kzHw3mn=t&D+*%Z;l4b++CO9`R)Ey(yr+q9FVd#$_J# zOtHL(`z`C=F_g4}>b#UJ2j zLt+TcOF8KHrMxDEUs?}+>hoMeDf{!K+=*%5;B^aNG)nts=Y4E)&pK6^IF)e`YH=rh z^`t_u+utuP88xlUEhK+S6n(-zX9RLDqZDN0@tv-3Vy=^%dAqEOP_bo+vf;659?PtX zUAHGQQA!k=u6<9HQ%mFkr|j!?jr=kQd06;mKK)5WpJT9XzYejZjz$3!X@6nKe&W%g z-09PV_yJH~n6krmFDn#WTPmnu;^nG7aC_K3pw%cThcJC!L0`l=dLLpg=IQ9P1^hse zONl!^lO?;a1m(G)iu;4WJA>mYMwflR4sLw^9)DS5Xoh^B#aw+uMr&Wkn4Puo+f?E# za+gt;-f$uoPK~;m?2%@y$t48?Q$kUH)T znKT~Cr1DkY7OB4QpO~Uki_gncOmzN3oob5Qjz?-SaV=lmY246{J`6D_1QjI23_0os|5W=Qf(#2 zN1V>O)gro3CRpZRgNKzW`1Sni^oZ)v#>;A;MO72fp3nK4+wRAr;N0nDcUlT`0}R&S zV}LmM+*_OdZ;>{}eXN%}!6%w-!XKpZ9;S>)4(?Bj4Cv z@42q+zPF(`Xd17+SGV}?3@4QPyknK=#+o%3iK)Un#fNS_tHZ;VgUOhmdp_jHEr;&y zJeUrWEQ*F&jb*z1^lU)0ozP76y}iRBZP@Kr7*4kq_r$*aKCnbDZS8%|B4>lTt-Ak@E@@=HChLDmxLxI#Y ziep}^%$k`G@$W%Nv*cEF&WvUqkCsid9E9P1A0L|qcFp;CJX*_ssdVaeaR@q|Dpg^J zU{k>li%_g`JBNUnAu%t^3OFWNUfXh2U`{&PLR>#h>UDO@0-ex}Usw-8zf|Mcz>UYGZX@w<@P&Hu#4xMXki z2~GSapV$aI3_-ZKPv~9!MDIF`f@ceK#Q^Ol4-H+xda^+Z>kGlNb>OxOhz;J}y{9sHIxM7=#I+6u?w8`^qAQQ7fcxLS$Lq;d7_E!(_@}+n zzPWH}lpXPxB-;x$_;1$1#lFvkp#km-_0N$s$1BIF`4w5d_%)xqnA|MPnlk{F0=dxx z$p*_9)YdeyD47NidO5^mtxhK&UM|Z1?^46-a}{&A!R|A9N{@31LhG+S?t6dQ!24#$ z_S zUl~3NB_Dt^V)!_IATD4Ww(^+>k*Rr|35Bai$#nta29Ze9Aji1|)p-vlf3B}r!4%mf z_76i`%0lp7GNq7JI z?aVrFV?$cFYbNDD9kzSgpr`UqB>J)jaGgAHy`~Nk5@eI6bJ-oD+Z~_;yOriz`NI>&QcP#7g?TFS8idcbT=Gi9iBc-$*$4A8LZUZa9D{fa3%abq|w*VR&NU4 z1@2OV$hoj5Ln2+b92dI~sJ_z$U@+L=Gpd_rlsC<&M5aS_yam>*bWHcZay5*;1uJiCufQyq2!g#&k<`qwD0Q?X zXO3NdAx3?2?*m{AyJJP8DRQl_)s?)2c>JF(oSTk}ffsHN1LCGWcOa~$$ zwkaHOZSgm?$@1(B{{67O=Qiax=RX|q=35-9&EkRL24b*oRlCD%4copbrTgAUvTws%*#nlOaq!Q2ibm<8 zsAk7($JE?EGcQ62boC;+N-076cul8qrz-p2B5(h%Qb?8OeQ~b#S5pNyEoxnNIgiRc)P9V)sZWKm`U774Ci` za@7K6Ec)DcJ2Fd>?zQe0fut&;+ico@;M^W59qnIBl6H}T*45f`WppW{bC+1SFj@8J z_3O83nWg7Ti%IxviQGx^I7RlLyvS`bLzPiZ$!(EwFT0T3O$T+{C7~AtR`J`V3}E)O zIL*(_;yI@uuXw~%gzM?Zg+Eh{i3u{HqZjiC*rf5C_22rQiZ8TK`b@~p>s{O^;vPwm zRTrk{9UU1Yk4RB<(V{%p*Z^zwKt)bn{je;`=P^7Zsb)jiz@FD0sR&HZd^uPm$NhX2 zHw1cSMX8~YLLHRXhMw~|#E1Ut(BvqWviO=}J^`S}Y!)Ye9^vu0#zhZx#Y3>@fts-s zyzd@Q&}Lkb=UI<~RpbK}B5|2$wmD%N9j@dKT812PNtJ!FNeDo0mvttc)#_G@n5$EJ z7I_Lxz{q7dIF;c^Ne3iKjDnmHB^`|D=3&-Kx^w-|ZNgdUfbuP3J2l`onI)SfN^X;r zn|1K_-^SMjGvUV|GhWLKAX)xe2c^r?Hmt4e_oM`NF%niFIo(M{tP=}FQ8$zlm5OU zkgvVz3nMDJr>=R7D42p!K8`^UBcGyG@TYV`cX|QgHHO0@^$x9YdULBQJjyhpn!*Mc zxF_Y>iw>htRz_dTZP=i5!s_%+Jz!Lm_^`M&1&_>}TwPFfZgS^s$OX)A7_E8OG{KT& z?9!cfc^$DEC4qVNtW)!yiIj~JW3L1vPAX;Cwyl)_G%v8tMOG$?FdF5?jZTeRymcB? zGD>8|iHcq5n)%((HOp2OM33F@H1t6WkXx&RMa0o70KTpA|L!EOeA%Hvo)hEiz|#~v z?eGwinjk6>v(wc8pRK0p-4b^iB&-~Ic*!H^T(i4eiD7DEJX&Y2XHV(7>jO7--`eYu z!(Z&X<1~%m#Qrl6*YQ?1i(P}sot^l9NPG7-r;TM_`2X`MJnQ9nOQEe;p1WoVzgzsA)wadRl4!MOY%HJ8ex6@-w=TBHVxOHnjHQ;;*XpY3y83w1u8>UHP5ke7 zx=JEVH4&`|(BtL{ZQK3&rMs$QEw@a>>Qr{p`-JWN;ZGVFHl9{*RMJmvZrvnolrpu^ zDxpXN?UgMHt#acnY|6U(PpGARH?BS4g@{8(HgdA`5uav)t6KHUG(AEOJVx3Hm~%G5 zGg^&)`~ejWclJcS%t#lN&b7t_O8Qy}AB`Ks0hmQfuWE0-)-!v+ZJ^Pc8~xU<#ams^ z!@3?W_aq+md!MWKU@;EnUmt|Eek`HE-RyUmHZ9EHQCjJ>LgKoFFb(RGe4`-BQ_&}i}o9VrsIGrTRh{Ioqy^Z{r zkrjYL;CKA`CYC=2a7;(xWG=D=|1q$Kb9s>`6;J$kydexgibKOw6aa|VsI z`n|PQ#NmR$$0F@`K+<|VkNj_j;YIIk{{dw^2m~jV7-oE$=~lMer0TOaD=*3>OL$8; z=0ZDX>SmF0q%6%d=Q@kluu_5xp?cJ3>;F{8`z-%P74)RPwGRXahPLqtkA92%jpkI1 zP?`OqhTk3$_a9(DX2Q@twytj9XZhCN2~bQLO>m08MMm4GI5|#1fuBbfvd3~AictkV z0@yT#yNct|ld3yxD)YH<$g3OJ?gl*8%eCQ7A=gPmh~d`(dWPyW>dEband1Hf9g_*B zDzcmxq)2idY#T{Gej$9N6lyA&BS+hsCkTv`pCc(HKcdvdL{{}8 z`?9euzC;#u-gOAi${+|m@v(#R##v7{tz}$C@a9rI5X~Ma^JYW}-;#{N*c%f#m;^B@ zTeN6Oo#~vH`jGlw89djlcbHnXhb}-af{e^yp=(m`^UhfAfD9jpNpc-dZY(oW##LUC zU;M|yve`$SyQ0HalBZG8xpT0@S;|wnfzCjm%@sSKYyd##)tTPN$?`&l1bxe=1~zfj zS*TE^il9?cgvzi>WpFP@cZH1bjhgZ-SJ@HtxmRjuVRdj|slS+5oRV8B5AZ+YNY2Z$ z&&2MN=RBUxB_7589_&gRM}Dn-$qUMK+w6bn%<1!He!Ezg*(`MK&}{o572%o8au95C zP=BB0IA8IptcnPAgpNS({IsX*>Z!L_=v-$~W(!~ROdonwB@3M>7MyaK`*D43kN`k} z%n@kyo|q7ymc7{;r9&$+9wj`lV!1Z6tbB;9jfwF}VJ-AJd6I?cWS)r+UaGG?BE&i( zt;a0Saxc^>uuLIdB>2S#D*T}6+ zhhC%w7qGW^I-T-~w3WdQm~7QaZaTT7PDZMeQ{BnjbaK(?3shlDavQyC2P1wLJ%9?W~^-X_`xS5?oPD3oErrK9xRZ?gPFUZ-QIme&cdi!516-Z_dFc_w6- z%B$9^YP~!6Hhi0}zWJ60+0MPq^6y@|xB2wrHHSW zl3T(4R0KA=c97XUjMKtG;HPW-nVIPAmXXHM>a$;*&&A5NK1OVV^Ex4KPclLZZ}}9N zn&Yq7%icuod-X{0)Kfq`U`^rrxQQb#V%qd$r@vMAb~+A;@e-_^#gS>MQkn2hHtj4`lzjy3 zC&{AO{;(UcZ18l-$OY^Yva+jMkjmHgA1o1`j#C~Zduy{%%9acwTD_gZZg<-4S~(f4 zgGn_wt{&Bb*)c?^G0O1al{4NkaMP&x8B{>r?Y=Wb);EDi+>g7 zHP>`6YQ^?3b5qfcCrZx*UYUrNn$*!zpE$5F=?(uDT&tyn|2zvTm?FA(W!h_znWnKy zY=u|=K2}(>rmKdtQ*g=k3WPQrg-kHKueyp=62sAv%d)XII_m2bdsCdIxpTwUP>$D= zC1EI|*}Ku$z|fsz62@1N{Wt?eQ~%@Q_b`bgz0qyr&ZLtsi@C)Ck&?E1I&E)vy-{Sf zkKk6gzugb-a%6c|8$I-cVx3L`2BID!pO=?mk5(|Hsb!4?e9*UG2N#T%EE@awB1rhB z)gskfgyx0Tf#rS%z#opr-c%hBrZ!tt-w=a?Typbv(bQ%$;2UgN4Td)R)P4u$@3^$t z=$5U=)icsY+Sb%&qieQ0P=57P)w@|34g*s#uWqI_x}msu*XG=T><)Uh`P8~5ILm9n zh_r{+%%B%(vrneRy3F=wWIH8oaP9qWcSh)mPzMOgHOqBlEO$OT&8{;~*q_K84Fhqt`-7(u+KaCrAQ7a<_L1Ak#Wr z6e*VP!WhDnce;-_Df;hhwz6o!ZMMd&6K4(PPdgUFg2#J&fXlptnvWwGRgD0Dah{2A z1{nyendDGYaZ5CiCk5}Q`65OV zQP!?z6^bESb0|e%Sh7_HbB`%W+RCb6+h$p}8&RpELH4%Z`}L-85(jn*76fEf@AO?c zMS=7&64}XY7ET)x0KHM5WSTr+!7YpxQdtBnxSPibf1W{9p>N)YdB6f#VVjZ{DdMD= zyJy*CS$+9LgtK7G@U}NnAB|Zg!kIS;@Dnil0Z|fJQUqf*#pm8gHLU6yvpG6o3Qcda zl&+L>1Pk=-(=-akOoq96UG+Ch8^84@@5B5tMdC(swJ`NYL6*J=Q)E2HZ~Y=}5b+lF z{-MCo=>^qVOcP)ltfnKQV({Ki;k!lOn22&Od3ei%vC)Z+Onw5BsNh8ujJGTUQ&y9( zVydDgW>dpP;S`13UNugE&0RRP$*f}&7f(}IokU=-!s$qkmD8E@9~>Rw6?=Pin_z>Y zrG_eEf|eBgcF-zYCryn=(x9bywQ4>^^W2uBbgbM65jhTms8KqmrljJKms68H%rbE2 z07zh%LZIhp9#qTrh!HC4r?rMsX(5`i-yMYvoH(6x5zE6GAty^K^%bpXv%uK-JH|Q0 z$x=YFc@fvT=xG``S*q1cD1V%#g%n|&$^x$#vBt}6a-%;XwI7KV@$n~YgAeNGqtk?G zbEBFtfJ30<)SyLx5PkP zStRRsT)s$CE}p-C^|A!hD)_Vvmog*VSLz1HzRuj}bb}@31fuVXWe&oJEUc2J@@W)H ztivCnNaJ)?n#a%AkYFiE~D%&O|md5vE^u&l{}rm z+N`R9AxQS6t4sh~D@$qmxf4 zIo&F>Qcgv<;Eys9aZy6B#YIsn0a2+;q|13co0oIIF#fy@(^)x}i{x1*%DI&J(=W^T zwv3}PPV=RFl|{USiSvv)8yDCBZ$c3+=!yn+6Q@y`gx5SN6V#Sq{xK0)|0K)u641B^ z#Vk&>SX|vG>G>jDm5XrolBY8{FBb%>^!F!`E%S1rM!bmAauKKItz{zPJmKX63ZXIu z;E;r`OzT<6a-Nnjm{}|rWe&e|k(PN9PWU`aFh6+`u8S9G5~sY(vm6|Z`PH+jOVyoT z5(I0MSO$bqNA-H&xCGiBeNh$c3Wh{793MiKfTx9q< zyDRXApuPyx=sH`K#U#tQ`Wux>F-f?Bhl_+4MOpBKl4Y00Jj9FfSM{eTizJg}fgM!j zJV^*0m4%q#-;<1fXyFSn!ImU4QWlcuB}q-oV!2p^VqMDc`b8S?RjHl3WGoY2R#pWi zR7K^o;IG2GBurJ3$g;eH9IU((VP1yU*;3NpqnG29z#|uY8m~$aL5>iLFsMMVV5%{j zmbcj?yjCbD%wriQ7#nb|cEO_Sci}DJi%gVpIuRV0ElkR();pDP%7rXr$rms^p^JAk zr6?lM#l?#!^yDp{mYIT=EJc5oiNq97mIV3BRLwRJ1EJqkYFG{@ljVXE2baKqNaR?C zNjyu@okwB83BCv=zvXIUhDkmTueppTWw-#DUq-wPMR*-go&f=b#ROO{G$K_(jMW|W z9CPtjflwKKjTcKfFR#ObKLdavV>aEP>38#ZD(UWx2Gwf-*EOHTX?Y!oMR^T0o=j-3 zPr_V}Ym&ryi9c^bIsYwPYCQTK3ap8FfUPwHe&ngjm51i4 z5;f*|n9cwPb5!~;y8WQ86zTp@#u3kEBFyLUq>LBgjMtD8r)8WDh)4-yj&8~ux4apY zH^=48NqNIX%9B^26!A*mphZnc@D$C0s=<|qsM@<6`$iGCc)^Pj42+!XiA^{tiQ#V& zC{p8erj{#-7qPla`NMRU@G{9T4U16RaPc&a^wq1_T+x9=m)6Ab2Khm-1k zA}nq+4{6>gZp@XO^97u^&>|3Ux?H@T$ncgIrBVo&ney-~fp%fTR4Rm&(W;i}N5Q-@ z04qThr=Z`sz_h&4Mi*7V`*}RMNkNbDFwF|?mO0K=uZaag6cs(yngX{vugfYkOGBpB zfLeYHCEXSJ=b`*iU45*s{sdJfch!f$u=O3;DZRzO%3RPI-E!52Ai}*Yz|?=hpO2+d zSjXuMcrBHs;5iTF<7`=7KUs>3kUxd-0;CS8Lhbu!JOsap0!3LBH7S)_Uny3lSeImf zR~DQ{ihS1qT_i;IH3N;VFOyJINX-;HHTb8s)gi> zIVk<&wk%{UC-e7l!iy3CDijFg${-xbqHegHi)=ZYR}0@Ntydq#ILSzn-EjT$B!m}- z2-l5!4TVxEZ%VObWz?CGw+qzi*dQK+szmJl{P%2xENIo{f*Qn7MHd6$XEV7og( z=#9wZs$6M=wQ|eVpj;t!Ys!;%#Fb{ETp?!W!--siM5`MC>pFe&97hl;ep{8jn`d{b z>^*Us^q7eMYLS4KDp!jnE!5u+s2`Wa%B~hTGER88F4u0k9+d0d{(LRJX4&Fl8odcq z9GTRilQ>BdY1*Y_jh;l~(Zg^&dN1j>q?@;5JbDqUf|cEKez5I(KeE}>pH8hxSW#PY z&8H4L=q%)p<_^xikF$tBlvdyNecyFmm_9a&T~*xQDIVDWymTQfw%IMI%#KL%hS}jAgZr8e<`qFF# zlli6=-&{|Pbtr_Iu|BtIbql0jvl#Qf^I8KEb_jx-sPlBW*)rNMy85S6 zi~)&Y+Vu=fhDq=R8wX}y1-niXWJuF$kEoIl9o z9CE^)qW9TyGKZ=^TT1N(%Y-9Qszf2aYK}IpG2;#LFzwyjR8NB1Yj8_W97d#2x#yCB zEQy)1)9FGn#U*!0xAi{EDeA6MecHFp{QH8X1b+_={5g(;g=9D`@50w-4PQ(sHEvvK zx%YtKVFMV_B|$?BPfB={m?Sp_ykIs>z(7%~QiqymdLuZFqhV#MZJeN^G+$`__hx(b zbc)PCsv-ae@Z37#N=E|)jV?gc8Ok^m)3{$v{ia@U5{pR!1!2UeQ1Rhp3|(N7#Cd^o z==10R6|ew&OTYqk2n|@E4jXh)+~9}H5JJ;{1>ob=56-%{%98agGgrDMoVEiNfQ7`* z9r#OJtQXf=f{R-;4~_~ykWU3HSW>^hiUi}Dw*A_~KZe8|`GMjxNqtedP(Z0aJaWCG zBkR@Fi6OAU{;(hP+_L;}^sx8m_{XIo$&J1G#(+aRQi#~Hn1$FWnF5o-x3b}odNlkz z^=_s%0%Wil%QW$?v2dn`brxI}!d(;o5_gpn9#|fM&L&vTg25y$-8MAyOPJ}@_Fy$o zz9_7vJzSEpgY7NZXj$3V5ISp_KH3&1Kul`AbF^&?``Oe&rl>I2Dby8%{7hsdCM!H- zr{SU0M{KhHfOUR~AsZyxp0O8Gi=JXa)aglog_vj+8hc@;yV`ve%T%DdpaR-?o|Asm zjz@fqfEuB(KdJ~A%jBSdo&)LK$ip>CfM+f=Rb~Gyyi$3PytnVF#ux61rV0 zL)I2$_6Hl`#*@OA+I@)I%JgZ85ESNZBG}%Md$lY}A5|W?WI+)5%VFVV*xpFZuB`K; zBbd5o2@g~F$%Kg&DdwUh{We*R>|x}MqT2XGM-edQGL5WXHw73mn7g4dHJy!6JWtbT zH*OHH5ORUFCRr!vl0H1OQB%7^Qg@X5%c0c0=(%41O8Rod$6NSO!8!#Q@32^KZqRE; zu^6~bVHlvqrksKeto4%kSxd6iuAJEoU2gI-tj5q)@e={-c`zH#6hHwi4Ixa2p=EpT z1zE1Wo%%2T1FU~c4gmXms0qLR=Z~}HfsY^J<405f9U(o~lURWX&!wFk)T5xG*8N>? z4TWz+MV6Gox?P#-9X1UY#xlxJwQqVoZMDg}o}y}+wUpepQvbmw#cs*cR}gYg7+OSo zvQoqsK#`T&o^+NbWv$v2p*$h5!Im4S^dEX;U(+ zA6g)b#+QanB0Z{JR2w1R(l*#Vob)wJopP;CJ*1>vby()c)G zXC(W@%Kad5THZ}8@)M`HiSx?FqG;G2)=<;1L{`Ry2(wd`exZYvaKVl$#~U&PwW?d6 zP`etXCJ0QqczYR{Ocq{RSyJo4c@uV>WRsg03Nu%|^CrW|E&^`*YpLjW-jcOP1!L*r z-S0oaJ%r^3KDynim)&mNV`mYj%P>jSs$KqC?FcwME0|yS)prdW%W7esPwlHkw|lf` z#8sn=i`K#cz`za}%GRJP>jH2^cDMV}wC)E>SUzOz4VFemZ(ojM?o@)kmKyxL0m>%Ek3a`{2EzD1*<#G|Hya7lknf7&_J`yW8D) zsX#)!MO^TxT0?rVLe<7>v|1A~tL=8Js`Dsl)%v0!1jQqIRS(QaTP>R{s<6RIe)lS# zK;~N9ST?(DPKjb5l&P5Hn51@zA^#8|%{WZs8@B5$d+9~DYaRX1>TY(;x4ta-lGhz4 zd&kx!==pyYikpY+HQ3q|e0SlHxdD_C^EinFPc_qnK`d&N^izeB6gpBSKrf<391vv) zn9)zeY^sWZp?yOq+DHz;IlM&QDB-HN)VGgCRut1P;$F1%R@C&|h$lQV4}&YSmG*4!E(l$8{hBv3GQom1WWG{x-D=o3)WM z*F0yOr4UDYnmT~k=@ZE?^x(=g4~!-3PFPM)G?G3>dQ!e;{+g^iModDgDxhQ?5`;9& zCZtD3;xu>IoFcC|=QS970T{r#_%0OM^_3zucoakt16A=QHT&P~CSW;<;|;+U1E&Fn zd2~QxnI8_nPQAC&`YcyiDJv9fGhqpxXblFdFeiujsK2EI!p}HW7k^YCNmDpDkUpm?pP+6+62w?=5 zVWK?}#cS+ihBoM}+7jjb3 z1~wxaZiAIa{zMHpYn++?)B~;g>o+1>tseluwH)Znl)9S|7JU`wO!zpB+x~+u>R67L z3Dx)KY^D?fk+V^uKq+I=FJY~^04-`&}3_~dsCkb1uIYS zcgbc#R=i87y?_&oWzKPdNLwTwFvK14>X+~ZQt@;uW(1%Iv%z=E>w=6r8X<=I8G>L6yBrI5e4JO=efyP5EqE_Vpvo}Zc+nQ=J_g^ zteK&LrxO?r5eiYe3R|k-ead(JQFbS}Sw+)rHQiqf__J2c(XtQ%LNtH_)2l+R7}SJw zHt%*7aaUm|@LhYbikmaKD_(itG`muVV`?1T8+4)6hIk#6Rp(#c?H;vdL|RkUN&SaK z4eo>#P_a7uH$+n{xfJA75;RV1{j@Eb5_S#4GcHL)352SWObEyXw<;p$fjMh~i)n3#H5UzK$ud!Ji+4i;)1Z@xnq-ONe z9H>~$z=rH~Jc?SAhco_x0@mQ_<5rpLi=3h=`48@NtPaQnbEu{38si*f1hQvSZ-;{a zNG5WyfkKg+Fo%DqN~Pj)_*f&Ne0G;|@uUg@q#Oa@rJ)$AEH^ZYLMw&Wg~fZa(Re|P zE1o6wv)sg|vYAkK6q~A|tyD|#MMx|C;fKL}@xu=T)w@YvxzdaR7;ZupLUD$IvCWcP z5w|u)W0D;TS(7p{i(JV+;xx+cJmD*jmriI1nDRc;8rB#Jj3|a7YZB|4#0Q0ZmEH2cEq{?tvz>3=hIiFxJCEmK8YNs5K9s~j zU#%gT0nrmROUCl3s8}3&sNxQ&Ba~5j7L9IXspjd`D*!e{#Z(7WDdJ31_C{NGCQH@S z>W}FBP0h8wQnPNpQKUs>!J-d<(M?$E#{5;uHyUM_oXUHV8cM=K?oOZKHt?)Hugkn{ zX!k2My_LT5jfs4ug<0I6Ha>1us{?Guh0Mg-W>T>fHH2uQHIb5uQeV%pP14cWLK1nZq&3|CxL-hJLqIXF#H-q9bfSDl zO?>j5UE}@z9ID}H;8ze>ce&d|dK3%N07hQFBo|;ucL)t-ygsRh-QoK>ty+ZuzqyQl zsup-}|CoGgZImg>QXwQd2^Rh`w}=#f8%p$+n{54}x#g0*E$5Gv!n)pW$yP<4sGx$Z zH6WdlSIcg9X>m5qO;SC*aZS2Eg|cg8{Zd%5MnSC+!M=bJDKAbq70uKU5jHCiF+WXkL$pxkYK_}0uos4Z&sdgRz2yg*xD1$x+k6W_9}K(zVG*8fVsv+SwcMw_N|4oL7~3M ztf^v?GT6D?f|}ebaz0AN9x1s#n+9C|;u&3=BGY2$(q& z_TSS?BRPWJ1#ByhI8Kq4$PAOcS;VO)*&~QwMHouV}B$V;;7N+ zQ(6(xXzW@yrX@Ek53Q?M+~^_QDOpG3qgAVi&MBiLjj&v$WQ~OD!J66tniNP@$_;C9ZGNJknn*AW4PUxkTyqf&IVBJ(%RVV) zo+w$=A3VH)uITka;Zv0~j8jk*L`G@IRpJ6sRN$=%5fhO@EqbeBsWjeh29mGPtp2JF z#8TBX4~thz8A={C>7IeGkpAF( z_Lv-vmHvD01lCBlxG|xuwC=zY`Xt<{ABZ34M5hYXM}VWzF%g_t$)*eg-{^!o$7#~6 zxfq$%Mq3Eb7*-O7O2?U!JP>MpM5T+f)Dx@`Ag4OAx77fMsVEF@h3E-bXDq(%ShL75 zBF!>?J%LPCDOZ{g+Q;GpOI9VCZLXI-9XG+P{~y6kXJ%*skLhV^Q5x1KX29Qi4!;+p zQPgQPV17h!|IKfdOwrigutwGt& z;C}P?h7z|bJ05kW6n?6c@zgnaVC+lFta3yBVC4uS^DN0iX-WG>x8Jvoa;33($-;MQ zv$)%>L`;x%#!7*FTuvRsuyww0Z0Z) zl$BL*Pm}T8U`0KEY^J$C)Q+hT7@%J5852T)N@Bf>svfsD5Je@W&a|LkkyUC|v%HW@ zYP>+N@8M4!@lzcs_MX1V5i0WFmz7O+-0kW_@w=ZJ%B)WK>ZAZzw1QQ@q{21K)Zcu( z-hbR$=PJJ_3wMAdYy!y^5xG?&2Q|L$Ubz|ps`|dQ?!>V-A2uk!7M8Qx>YNNhngYs7 z<=w15z|-`S+IX*PUo6Z`4hF%&Wk4q~AzD?;*@?1hex1 zcuLMzOSju{S-6w5<+79QK@}3U*D z(HA7*tCu%4VsRiL$ij_+p|PSFARi%ulm#kjabc+@Z1~fr6P}p7iFFUP14$FZH|!0K z1I{6ok2KCmaZvTKB2ccz51ibcH7sel{vPhz2TaN@0hvh?kr_(aEHl)#Sw`HS$`}1D z{O#J1nbaX0&7{mAOv)l?bO0Qo>3P-9!Grq8U zAlE=Lwn8q>EV)(jZd5=+Z7hTpZm>Wer>*={anF^7P(2|`=Sptv*%ptan7VI0*UW{I z2Y&Mlwp2Tv>voUGjf7N02Od(kn4jn=j68hv>X z`pl+md;?bPU29ww9JSvfbG>iO7cemGpT;bDuqrtmN%H_u0r65s37QkVo3yVST%+}d zV@1comkWK@;J7cAZ^tht-wBftUclkC_MBZQ_un9+8e49 zX@%7xayHB1N!rV=GK3dfE66;uV$g|Sbi2hU8RL zKVwT@3{P-*&LW>onZ1A_yv1R_D&n0E`6wGxs+MIs;qPQTogz4qm$2&$B~QXd9;Y*J zNfrbI++ixc^V2>UD5ZHnEj$m(de~?WV(DW2tNI=i8g!)P4B4#g%(}D5P}lj2X0J48idKTOCYiXog^+3 zP+F*i*41}PRtPokGhakq&0#~TNxgz~slUpt#!{rUrJ7+xlnJUj5me$06A_{ku(d|s zfN(_>+E4YgtGEw!lnFl`#t1wT1h&rH&QeYF)UWn~GxUw6JE>#$xXOy7ImACgR)sC1 zkvp_9sbJ#YFqDp)J z-C+A9r=781FU2 zM*7Qc_w~ez?JHzQK}-M*mvq{+B)s%eIB_(E6o0?zu4p?Ug|3F715Ban*Eg6wmX@Xe zkdEG_3QF&zw%~t2BgoRzM1;m3tTn3`yR&ZwqK^at{Iue3_sFCRCzo)=+QkIyyFecA z06CQS2!Lm4hp)_!BTHLGRGC6CrQbIsRvheZBSW}_(BjAk&i6BbOUm*@E!C&|ZWk`~ zH391AGuOdg1lUkgi{`0Pj_>=x^o_i}YA-4G8~c9y;eXm!2rZ`RF#%hK!#qOgAZcE= zTUa(DQ#X4HT2D@a>U?>4-_-9Y;g?pRh;Y^xtERv|yD|u23Y(CwY?vWz(I?l?f1J~& z75kgfo~vSVA&~*SpxNY|miL>bl2)5kQZ-0-b!#ni_ZzZ0078^V9-_p&G?VHe00&B4 zx&`x7YcSPTgQ5>#3;)B!;_L<%?NFb7m{?NZH7iBV%(ztzi7y)ZLJO&)j{0SZUvg1` zrwGuuim%2S0SR8wZui~3A%A#HH`l2R;+?hqKn_zsSO-ciPiFGY%6>orBK%+#7=`Jt zT9^1eURty_l=Tb6%&y$0UTA5|j=_v?%3&r5w=EKtzQzKy{2#R7gI=kGx#R&-LnlNC zYHuCtz@Gn>Y4KY&j5HMU5>T9>2Zd#q~v>9j)FqI89{%q%@dS98W!|Zpe)LO_-7iw`NjIXEbKl zn}1jJ@CKW#Qa`*Q;g>eBe?vYv8C7aDIw~Jvho(kP7|f*igyPEa6lsKw|55|W8na(5 zi!t`4UTZ$5vJ+O!8IrVvG2LB0W5Q>o%(`EO?^1K88H#EZzqPpE*cb=8Z1%z7=182q z-Le-sNZ-p{NNy%Wo|v@APvVFoU}!OKi^KA`_MIn$>Pe>JuPHZoRo3vXH-a`wN4v|u zaqwc6bP(-42U|%Oz-?Bncml^bnh^_|R=0TmB8LGRm^Y{5mnd@2KKobs*%?R8fY?r@ z7A(Rkf1e@A#x1C)mU|u0;ZoHbXt z)1b|k5p1uY-g2SRPb2UMcp>Nvi+Lswq^8#H?sapX+=(TjBzB%?q@gq{^ZsgtaE;W~ zn&Hq28&)JSL&OZoL+i$rgDVCR-{CaXpv{N3la6CzsPO(0QA}9y>#3P#J&Wo~U+VLEYd6d% zyIR7{QEJX!l{l{3O`W)SiF3_2hgOg053EDwu>I{3{SAW9lwp66aL&5Ya02twD$)++ z7I`?8h*+;NIbw(HArD1w5kZrTR3ctukkqN~EGSCb;6qfdSyb^&)J?E+zz;@RU`*k# z;!V@%w}x9ENtRN&P55!{1tK|=M)74%0TtT_RvbXEd$m2E+Kp{4S!)=n4wmpW_cusw zS9!oc%eQpys7rp$*-p@iKO)u+M)5Xpj`k6;_xgl^(|KONJdI!N#z%nskt}N{RUgcd zE2K=C=RFOsPVPr>Ux>v}Ha(r#7s$=09^X&Lpdou(Ij($sm22$pyJYWOvN8Ms09e!c zYQ;hPYyRE%Ccne+Ni!hUBW-_xSD9pi?jushwjOa7AUB|G?>IEG=Lhli#NRNL zaiNTr5N{w$DL+_sVm@-O5N%tFoSIyWvp}G2URZ%gfyjFlggxPb3Birrlv`4z5mQ3n zwpXbv)fwQxqrC;x=^tUPMb*`v?%UfeeUvPPWp9+i*E};~+5`3fzcg*E6HN7#WYerW zb;>L)Jj9~L*eb@4W=gRO^g%V9Q{q0*jh#UxXKRPj`nwjuy z+CiSTM@uOyZzgOe{T>4HP);!;M%~?J)i!(|=HIaiDOKjTwjdtfx9BM#d>8~?YJcB; z{Nn)Zn|1l-ek47w85rK$$#v+-MuKFc6Cg-Z2)wo6&zgJrw{PravejKqCQ$5=u&wnX zXL3k;+Y5B+P}^pkWx;>aIT!_^-AD%ALdynl=*Tc9>)dUV%inI7M~Ex6ZbVUl?6mi_AhSbir;2LF!yR6IiDhf4Jk7b*!XFf|F@tD$S-cL0Ye zLl_$}-!$1dJ!Et}e2Uid23Ha!yz^2P(gyN`A7D@c%hCylf{3%wSCcG{7rq}D`+nj5nU4fg(UKK8_8$g^j9XaLbOtRQCj}VJ#?`=m7|aWLYg#q>0!8kXoV#Ij;&lS5J7B8n9_Z=_2S+ zTo^~lQzgTz^rz_h)hJMqq9U=+VgyGA7z8>c@IBgcwVyAv2+s>H|x9 za5pqC(!Jc;v_T#L>r{eTPtq1Z01E6W z_#@xyoYGa%^L(o_N>@d{=i4ol3tykFz0LRV!|aRy=afVRG6z!S3;g{`*K)CC|3ZTG zg>T^zg2p&17Cr?>quA6(2*`tw|M9{?lKCK@BUu$<-uHcJ*U2#Si%cxA7r7%i<(ssA zv_@g?Yrl6nwk?WBZ~r)B!9BNkZxGmy%wA@9#zca}yWjp>e^QSADte#B_pQI~@VT~g z^dBHJdCSVelkF;P7E+y>K*bA$N!N=eDG?3jrfFAlUpfWluy^e(%NG8IGVgc+a)f$6 z{&;tH=iD7TnV9`J==b|SQfPll{^$)(n94YcD}c+RY~=<0PQNoa=?qQ+hKzVdm8}vx zc_w5s<)8|fDy0NZ-ay~!R8d|)DfrAgCS{Z<-m*fCbvG3G)N1F#K^E&C@*P805+E&6 zpsy*(r3tTB>2;3WEt@RVc~OaCwbzerZMHT`7NoG;dPNEONp$|RjFVU84bZ1z1R6)L80|4tpZJ55 z)}$`|!NE2npaj*kslT%*b?dnw1Y18@SoUzZ*|LQ%hQnz1D>2SETe;AznsPE-) znAjdlHO$c*sVUU425d{EhS(q@0wqVt7EA#Xz8(&%|8evRF>R-c!3m49&Gh=jvU9yoJE*h)`&AX zMyi`WyVL2bt6`{Mh>qj5qojrQF!V;@cnm4#&z19oGNqt;c0eNui-OiUMf*rd@r?$T z3r3R`*AO5Nj=6VlBNkSOt#5CU`-5fznOe31*feUUQU`a^Rs>P{jHO!^E&QLY09mGQ zW4R94XrwcPY$7jsH5hc5UM zgHw9L?KvkGo&L*92k60ZFPabg>S5#4ho)w?bK;y_cHF`9LBMYK+6&yX%dZ6ww&StQ zrmCkxWOu!UPvuTu7w(|rUiQv==biK3x%oahA6%xvcFbDCa;cG1{nF}q)&H8PM)F1@ z0*N4ZT6uMf32{$M{o%Uk&v)xbS57dW%$$wW1>phjSWkw&4|ZQ-IbxUK4+ zEb{eYxBge|S>v6P#f5u&qux>JS~hB<1@1*)wijKmyx=%sYcDtnm{@s1HOuoXpRD&< zIqtaqIqIOLxR4o7FVq0$Y5;S7E3)+PVw`r|i{4r9taH{oGm~|fPG`rehFPnILo>a& z?6?>B8vpAW7IHqn`=V<2q-vn-I6cZh-n))xyOTL^or}KPar+P5e#Zs)y7>RRbL<=+ z8vt16#qmV$jvpOxJI9^lmxDp4T9AC27+AS&_FzRVn`Awk$;u1dLBJ*e;z7WK7r1>h z4~tn6?oIc?J?&g#zRX+8uk%}Rpi`Hf`lYY^>-fu5O~_hx2ch==r+s2+k$Ys$#J^k?Ts46npOw`l>o4FQym!$Y9WM&*$cy^Nh!5s{{4auY^T3=l%Ux`oIjP9{0<| z;`80Xm+G3_X+FIH;%N_T(C;+f$u6V__ugqu(8(-kbuqmjgl@PNVw z24S2v5XRXKlDNHIN9VgWTo69F2sCXE8W`t7eeY^`{(8BJmzjc~m4YC_qgeJPp@;~Q z+Q@6rZ}jCPU2nWBDEC17v~xT^yRA0om&@th9>#bD9COkcxSeA?=vki3&-OO)EBB(~9^al- zB-QN=I)mq@&HLWq_nPFook4FfH;sp9t1n-2HIt92>(e-$agmESl|7w+cW(fLj@z#q z=%c|&zvDXnLCZu7d^Lg;anI( zk)52~6#M(bJ$D9|odH^$IPRe5oH-}Q;2)gR-m%j+8z+~uB;JR2Y~;|Oa6;l26;)VA z$t>S*aL{qj=1$+hpF8`qTI`YPS0E4__iW+}dV`MR9=p9$=lJxb)32(J#CjsG_om{s z<6b(ak53&?y3Se0J;k3vc-A>nOi;%;KIxfZxiXHf_i@jKb9UMp3?|ON?Kx*>&dF)d zb&dzl>3RL-@m+MeM=f4mcFvrOMq`(qQ>VtO?o_y+PZfyV5r{y5%Lyp{2Q&(FVGz0} z7&HD5JBU*t;C`pDhYhTlxZ}(vnz@7K2w$3)F5{DYd7^s!o_effKJ5bXF(&!4b4jGU z-?{8vb}pUsQ}svjr)SPN_|Ef_m&Y9gmG1HBIS2F6?!6~>g9fK6y&;5A@_Kb~!)(W3HrRegU)&H!nwS3JEzY1;Jm_-Se$ZIQ}aV{^9d#BFn@ny&DJMQIi@7y`Q1as<~UtU(w zwXAk1y%n0lnKf!OpzAJjO*oyyyUD6aGBwn62lE{}po4ryWWk@!;J80+f0v|dj7iZNjcYBx4$@ww;9ZZ~) z{%OzY4+hSed+wZ^IVb&rbJ0JpkYT@b;SA0$)ZdA7d~(ur2JWeIF~E2I6TIx4RD|JX zdM7oM{7M~5!`oQJSW(?Gc`;Sov%(9GaWEL*)ao9C+Pf|;P--wN5f&U+`-p}0>ioHe+Ceh+JXew_5qdnfgmJ$%_a?=(L> z?p)l~Yy_>lbAJ5QbTjPpXrD<1k{|qzQwt%9sK5Fmv8jPMvt+HAEQ&3M$pBeD@8I+e z_TM>otKE_ z=k)BN0)B8Z1NXS+9QThC=lJxr=bW6KR&z)vKKFE9&$HXXF{E)1hUg*qGP6MjoqBE+ z|J8VV?`tp-&RK$HFP!7k22$@igUbQBcYF-y&^^&K;LJI`91#0t&X$+y=lt|m&Ap4=OlRGi$y%`7&9b0^POyhfQ;S+xQ66Kd*S6v)end(!{LM(s^g#?sCbu)kksm zW%6~O*S_euCxr_#+&RI&9{n>rVC~+1-aj^8b}pNof*z{)?XQ2ZYL9qnRsI@II$f>zc%cPY;ZqXWot*dFzHgU6G82YfwoK)rM4?5uO)T%J}N7VIv@>pmt9sSlKZ zy@&I~?`QRE9k=IBAa^{$tT@;(gOlFCIUj_sbK z3*nEMhKwgCE;#G4%^vCTWI0@kaVAxgzZN~bP>j?7Jc<_>WdAu{WEUF5Td%v92j6#( z&j-i)DBggKfzt=8*gu^Qk^$xmM6li=APlZ^dNIFr&g<0$-n+!aoSrAHb9UN0cTSF< zpE?!tzWh2r?E`klHv3(TajB?oyQ^(cmBC0Sd==+|eaQbF5zcqWf)*zLSNh{RCoV+F zW>VdgOL_Krx8;RPkfi_ae3HxS*%Ih;2i3I1GT#sZeTVF3apoMKbf{@?>FwSwF1~)n zajVtz!o76*=QO_kFN%3G0pc0k>^ZHA6k$OaaEIRYJFZ*F9nwkG&-NufpeyxD*;3xR z`v3;CaqBjS8VMa*{BCdXyJ6)Q@mh*~q1$oitQHAJ{kuhfZ;@VIbk2TnG($9`b>EQN z@$*afbFAj!H$4waePn2C4h-<(_gY}m?+to`=XIqd&$x9PWEUH~lE&SM>*eVl!h7Z7 z=>EJyZ^`;gd;rZu4m}@KD5(#WblW?2&T6#M?>PfVGzKS0@7OuH=$$ynrw<$Fy>sBE zi{}+ZPS(ZUF^0W+T653!VGYu=`uuZzJox-Yiw{~G_weiPWy~k~9QFsz>ayT_iUt?r znA_eUJn3krq<7Lgd4Acv@0?V!+RO9P8?L35tv(nz_c?Xh;12hEUG#MyeyaMgcS?XN z<3K0QzR?MHy^f_mfHmRc3{-D$QGJDz_PKL@QuXF+CNB0t6-@k2>&Lxg=fY@hZi+dd zY2LRrW{uk0Lr#~|8?7Pvg+_cAPvboX7KpLIH+#TXT|8`ba8swmXw`TpSdfSpY3nz3y5ycoRh(2<0ySze|5c{Otq5X3yn)DJDT$k z3D{YuQWm+_$?0^Dfm_f!I4GE-#l`i_nc{eBE6tx5WcO=qP)xpMtFlVrPMGJ(+LEl! z7e;1g8=1Y60`^fK7h8WfwKHYJdt(wkzn*#@s+ZU%mRy7~6W*T-W@>pK&b)suwmR=O zySMNyxFhNG=BfX2q0&RwR&p?wDN74KeyWWvE?CdqF$l4@wxxTgl;#%sGT4mIVPs-) zA3-*n79`StaBpEro18$Iq}QbXKwB!2Zzyt|E<~eC?;rCw8|xnOm)wow#_koKCset)+SZ(@EG8g>#?J zt$=#1K52F^qYjcUZe`ly>k&6TQ3;J31x{SRnrygVWO0fa#hq*FU$+~g>*~g4lKNDr zDbvX`Z8lN&1_}e4C8|Ul>)C9nR^vc&@uMToB6_OA39HO+M=qOEAp$bogZds;NID~% zwz<_Ym8AcnVcA2zz*r?^)v^oUWvNS)!JNux{u)s^w8yaB?H*bGT6E&HgB3oq{?yl7 zmRB7*T4LJElE9h4(#qj@%?{v915RUUVi0zns)_ma&%sTsxtj64*wsGhQ0Rn4O$yGFR?x>7hH z1~$8*rlJhv{jf`Qdd5w59@M&A&*%^oT^B7?u7F%a|`7JvU9{Z;(6 zeD?I&v%gjk`{Vnt-fQ09g9Ts{gMFTpMIW-EzP?L;;p@Ufq=YI*8`m*m)y7hRa9B)s zy&9VwRfvH?kt0G4OR+(17{dv_&tl(X8MqSvjIYG~`?geM37CTMkr*?8I2W-}mEo zWg6}~aRsYzD+4|Hb#CZOy{8-d^8Gw6%%=U$Ew1WeZwRz1(t70kzs_rh=h<9YtCCmT zBrJGBP7tiPiSyqK=|+U;H*+%X)_#K&xlJJDUJU!Q80LXAaNiF;eagY;eEJlWWsDuw zAm*ls-T+E7hLJSOA=1gdnp=X!paLxOzu+dchhh|twJrPAbZ#NU+Z3Qk5Bz6y3rp;^ zi#A)75yYz3xaNv%Plf9wZUe#MP`eM4?#jy3?=!>{RFHNh|CwIN`}b|cL+N(0vk*5c zuB=`Kt>B9}nc}gOQV^R>Cuqm{53J8~OEL?28T<#El<<(W4e%=-$pAk^5#3btsPaqR zhRKq9KQC0sf;$mQAR6ze&v?3AaAEEySvrkpOLM=iw$OLCA=!VU_U+DSZKS??NiYZ2 zY#xfoS;WaA*!TUj)4};Ap%b$hE)s0m>}@r9G(VJEUU3m-=V@+L!qHbfL9QK*9(Kpp zcPwgDK&X5MC89>A*&M0yo!%mwrrj+upE#sWJExwv7` zI?51KR*tft@rqmW`~;sw8w~kVs0MKOdbHIbtIZ>~?2#EO zwg&grIf@*7K+27$c>2I>NbK2qd)h4R`O@rF<+{Y3SR2(Nz=uJ$2(sF9yIo|-Nw@6x zeTGHR0EE6LLT64Wgq>uK5WuJ;b7bSuZxHEF2Drrf!+Qy;g zb zp^|Gh=6=h5Qd|@q8^K&@Gv~l&zZmYPdG4&e9Y(!Re-&f$dH5?D+ty!qKfq(b9E-H) zf;l39d^ci5-cPqS`!e?}Ycmgv#!gU)eRX6Qu20j*_hXL7HK?+mRnOn@+0#`X*zDuZ zbQtJv@3kjfrGn2W%NGN=y!t%1Qf47nk3PzWS61jtlrT>7hux&y>B6#1Vd8xV$Hm}| zkmHAaP*D64OpP85NHMr&yW1TFm7F4A!6Zx)$l}xm55`WMPLgHB3&e_2u&jA%m5mCB zW-^BtJ?fNBO=@7-9~e3j#A!#`8|j#WMyM(Ym#nf>0qEphWOtpXLS({%H)SWyWJhp( z#ybeO*2~gl-C1xs&!WzM1^3hY!G8q^>tb)&pS!cZ*)l<1YPAm}f*vDOHe8(TD!!^_ z0>DoSt3oeMktZ>dR3PLO``27`am(&i?eHTlnNZFLPFy@gB6MzX|30^e+>ol zLmd{I2bOM^kN&k7gB>ylivVTVsKh^9Zb(n`>j`fOR zky?x_x#t~Ofz05xiN!%;bx9FdxC&J$d^IPdu~%n2qB8>_Z4I2UpTfBZ%wwz=B{}wE zz@%(CU2aXJVP4NTxu~WyC1feq>EzimoglhOU^78u1)0zXegak_&Oy3zb4>?zo5eGq zoTw-hcfsY0#ezq1D7hzx=7II=90T0Ry|~~-LADRprpT6J!V%#(l%Xdms2=FcuX9Ba zfP^&_!BsJjr_!>K66eUZS&DSe2C1=M=M-<_m8u=dnSKZm|IP}+Rh$+7|Gf>xJQHCW zWeWtVWuvj}asNTV<@0Lo5X`m6xGVi!BRWD>(NOTtCXPgomjY;YQ&gZ;9(SNf@WPV2XmL zi(IaCL5_m z<692liZ|OS^gf}09^I-(z}w!>xHe$uO>n2q>E1Q2cTV@-dlbH3=RBfm^Pbb^al#?K z@z!%T&BW7iGWR~u*@BB1_nyre40+SYdogEl^79_f;XoAUk6yp>Ud~yZ&bf$X;k}(R znLSHFsb}r$oZZA}^m^*uTj;CzypSHBGoD5TqV0N*@Qv!q?^WYZQz_QoZ*xXLA08%& z_XoOZXsq|s9PuQZWbaF}#QQR5f=9~vk?0ItVpOyMv+O>zbxCTx;=DQ@1+c}gcAF=NeL5azQMF z;8Lu6Awu;8EP#%$7tVMpgR#xBCNbM=5rCFeA`cRyD$*PLufVRt7Z|JuG78C(;ot)g zF(G{wNs&}6R-eVTc8+b!SHKTA#qwH-(5?7B)F0$+%Z}(w0$<{8H=K>qu{uTgeo%1P zn`GHd%!47G(;tQEh3%olABnNLsGi>sSSPqIJVDg3;pJQqA3&;uwiH2~2mYB>EO+a8 ztm1d$ICa_W;^%l^Uke`IT*>>syQPoQ2PU~Q&LWMob=q@Px&ZY#GGbPr_j;)z&k(Hk zyIl}HbCg0pKP?u)Nr_mI$;?-rt`&^_`fJ(m_xnBdd!c?pb?Z*)_Ix_NAFyBs^+e;# zf2(&d>1Uv8IOlYGp>Lw{o$-rD$Haw?OaPtHxQ&a^0 zh-Pvz(+WH*p#0-$m=sMR?YzM=c6hg2v!)7Y+rV9i%b2ykqYxvc-@(~y$h`w|Hk;XA z)R?PA=+;kvKX#V-KU$-I|5dOne|+EmtN6hhdOm(e|7KU?`?fv&ac0h#IAYRSklR_V@5K&l#7-9_A5Oy3^^r>9vQ{6l+7|8*^C_|Frr#8bkdcKhpFP>VBlDZCA z;UR(3ZI3h>cvEkY`b}XH>@_0uUbhzNAj+!GxqByEeX{i*?44;F%eT_|MM)n(ZYs)b z1)bo&w68|Nj6(%c(BF9o&4XrMEa5-cXo%kxqA_tl{f5A-#?_Q})@)V;g&2u(Yub@8 zBDS~tax@*T?A^>KSMW_kP6rYIcAU~;a0+)*;D=U`;tr@(J~h^$yn!YHa_rA%kibAp z6Wgsb=bTh8oitqV&SF`}&Nc6Zois~(987G-=w7uv`lF-y7m`U|Sw~@6lC-!XmeN6z zYf)9Vi&s=K03}^6OF8yw)7o3CQEI>HwUZA)9P09a{#@>f-NjNyY?3B75<&JADpNEp@0!&n6NRXU1&IqHwcK4e&< zcx(^r`h`7&JH22M$i^F)3*2r)3sbp;{;5+jXowmIoNcf=<`7{x72QERF2E0mTv`vb z1_QhcjTS_N>ZyvrHbR6ts4orfQ6X{&HcSyATC=JZx~heUTJ)xxK>zgmX-w06(coAG z+l`r}_l;OfhmMdH6kSxYS(I=V0$*8{>lx{Y zC~OZ>nG+Zzl%iaU^vK<+V7_Xa6}qCaB3OHCCm-rk?AMEs(hAg#rVK#AVkK?1bj)BX zLlOnMl26o7L(GK1fwAqySZ}daiSPBgOC#1Jr60NqKGetvnCdo!yvWC{fB|rtj#W6( z)@)GsI5Lf57dE0AqvNWRhG=cmOf14A{>p&{X=72g1%?f0V75jaG=+qoj6|_DQ!0;C zXm2ExT>qD~cW+PI*xJVb-=6~K@z&Nv0|pFEB0T0v9kHY_K@FCuBycFO zKl^*#Yi6VocH8}XfA7^^F_K23Ij&j9drhZ+%ru`LMCM#3s+0)XA5Gne`TATenCxBx zY*xpyUgTsBQ1!*i9ssrnTWOrc<1p8DMcperuzh#%8-=L#gqO3^3{}zR|B4S&y+=Ys zDE^EHW~>r!K1gqnA)}o5nDt|gu)}Ks^GU;+?*>=vyHPT47?N~TdS2*u$T&|UsT0x~ z=8rw{-mdf~Fz4c5R#C+PkzU}_sjVCNkAPAmUCI2MM3k~!G^8L~wgAJn+rbTpnQ545 z%yl>|`xLx{mddyx0I@8O#x=;4r4F<9;GF489|&*wE|^^XmYzt3GG_>;RnDx~ykI$` zI8%8hBxzoCJt5)mC26_nX>knhrZ=?w>Bq*D%HXKN8pWkaIany|OM+6=m@2Z~!=l)3 z-7ixYgoM)?0hQ28wOlI|B9TIOjN(}0yWZ8b__#X=NSzVqbx`7f7ng5jJk4hT4_=PP zasd`h{it8W<75)Wkm)}{a(+pYGY?)?^a3~FQXi;i+^eZ&D|9!?Ff4aGH#UWsPRl(z zND08CXJiA|LO|$AXihNf=o+M534J^NxlvI9xmQ!xgQvpzR0M;|i&rntuP46BMLs%LIlwKQOL8dT;DGj=>Fz>}QSxX;v31XIC@q)+h4EK2ebH zz3Ou_+Xt;us=BUl(pbV*GIw($b6UcgZKqpwWpRW{b#mYpsiwEDK%}W zx~~zNkQOoq`Qz1FMzLSnf>%?+ziG)6aEFU!21AcBP#T88$jdB8!%E|bkyLS}qyk4? z4~;4`u5QYJ;fEyvwMOB#L)=`I4RsuvXv5m1jYYCRdWc>z;(@NeLP?S)>#pc64KtKjdjk zIa%5jEmNsMB$k0v_9MAb-WUT8meZzQ{S4T4l90Qo z3UkE~2CG%<^q{;3+S>9iwjbJecm}|G^$Gf^r`AW>?TKzFt!*{NMag`bAz9H+jf>06 z;a4wT4c~vbe*OO4@Q0UgK3<66vAY4^FTG!mN}Ruc_wMCa?=P<}UWwqsx}vAouisw0 zdjIiS1Q+IK@z&+V*B`HnxAc|y>br~UAKzbor#`7K%(JgAhu81l58u9g_w(@b;??WR zi}UL%Rr1kC=Dk-JA1*J>U#gZ~UJlD^QvxG%d2#jO{ktn`RLq@fsqa5tT%lijKrb)o zhADIY^49!xH%ytY z-(S8RzIu865`DS;c6jmA`NhR6^VL6lY903%blh8(nx@l6-Cpl#z?+1gxlU{HWzzIY# z+HpT<1U|AN=H=HuSDR^68sxz)8^GUnFQ)2nd8tf2rA^QMnZxn{N7%AOrrAfoMj0V@ z8YL%=TT`s|ThU3QN-2oVLtRQ90)M)Y_`|qn-1&QOy8s(wjKCb^&9*zbG2h(DJiJam z%Qyq2pCozaAGA0bUnG9Q{B89B3IjE!#1)jhLry6y3-5wPSuc-7+yDrDo}}CDgoh$- z;5$4KvEqDW#xoH&V6ok9HUESQWqiXgJ{ED~F8uOJF7jF76xMGwn|^tp&yf`v6#RiH z(WnFQuu#23kEo_}JInE`nQ5^V_e-$Lq&KO!Q3rux!C_+dWZp33AGLF$l)-DXTM4HE;lGOk@jQXL`V^V;c_3} zT>GpWRj46gjzbh-yCuae91`FQKw8;I= zk&#o^=78!i_ZB!^gzXcB z5Mqanq)pmEdsGCXKy>S-XXENpR|F7?Jx`L_M9Rf{U5jOw%Sp`*ywnS7bGef9j5TU+ z!!NZ7=mZogW6g#9*;z(=@%DiLRxui!N9lMu57U~me#c{3o5);_@$o3G1)k9;H3G(Z zw?-&~1g%^|TxnC#kZs(*nc>LzBTCy&1>je0L-Io&^94i1%0bg{XiWRD(W-?E_^>?n zTChdlD&cIm`!7xt_(qkq&pJ!=ZiIq}TPNgOIw6&ka`WWii68tE5Cu>EMZcZ}{E17y zo(KF1qhBuq{^URS_3R?xPyX3%KJf!DD5NzB&4~PX`5K-eNi1V*uhK>~IQW;#{&Tba zXS-Q(0X2tG4ad;VGLOB}LOt=xLl_h?5{ey1ow8&bR7d!Ssd#6pR(c<%n)C>3cf!pP za*C=-O|`=C-SH38hEca!uPFML3)wHKDbCQEaXeKf%C}Rt^WRPjm6`P+7`}`5%izh} zm4oID^8yig_zibmSiiOQ&#tlO@eCsc<2c zo^UOvm41M|S#R}&e&7dAz`VqeUrE}CH;({OK(4>pJ@w+6h4ExAX{GL#nKXt^b0T6{ zm?CNgZf=)z;GoNiFL^3|BiaNQ@O3<%rAeGDGatb2_Vq!Fr_1=qnT+XC@f#6II`u;F z5#^UuZ|$gRqbn>LF_07>V7CiCxO7};o626#97hap;MD>TI@DLvO4?rL%O%~!#w%ih zB_+1r?fB(XY_e!B;~X;ihcL|$f_>10bKY1^_HK^nVH(}8wFf3CD8TF@S=@L{ITxU& zP0~yG`=!j@rxQsL-3QGb|6>Zb%dgVpK9ecwM1ZO-Gk>$U!i@je-feO@+q>t#n{vaO zo7c=Wl{XhE0tk$eDTd!vgl=M>cgTv9C*x$E`2)h$hksa}FUVaCp{zU@ArzGd%XA*_ zfTAOBcKoZU7?X3n?%YMZBDL@jQ@9RZN;aZ9ughCD?&m-3X1Xo+JlUlQ` z%_NCX8oe?C!3!C(%AXaUe1>TV1=0`{LY|wleyX*Ye#o=F`!jUx+9SA(uCx@N@Lo}o zm4=^;nLof?9^d%n{u1+pg!wM~JoYNvZi%DU3JakOHfn_^K)S z^OWAeqDdI|R^kP86nf#3QV8<0p{=u)Yl<0<;$R_HX_eWJti`!Yi;AZ_=1uU)g`Xsm zQ<%DbnVRehh4VXW-`BEl#Kgd2KMT);}x$ zUg}(ZM$JH$1VA-ht>ZlWqO|Q=LXw)VaARGY@?nZ@*Qk+rjl-$f(2vTqyZ~F%1D=(qWrvLsj9d(mk`Ga=0X5Dnq)Tll zE0*kEuTp)A7nBK6wE*GSZli*Z9=O!92P`&ooQM*TYW|`mW3J@IBoSS^l&feZQ+Q-k zIG3hru_0f|Sh`2s`afxnqGd!fW)w04D$RQFB{Mn!&5xO0nkf}- ze!9B+x_IXPJAP zcy;Rmu6KMD&Z9|)&%Tg+F%cF8l*ZZ;i9o*p-wJFa|KGk-Hq?(UM<-zcXN|G}!| zwOoG5j~0m6;gs51P#S(rj3n1tO zJotSn({*rzbhw+tX+t*+!XNx|N|S~hR*sEXlwlX}6j=jf9*L`|n(x$9!FVXr2KK+% z)MX28Z5rEzh=mB}b2sK8j~b=-9OKA@s12D)B)~CWEfSX8U_QjsR14a`{S39~Z8%gX zX*@Je1Qh6%)qbk_Eh`UY0s?SlzaNalcr52~VhnD^kVoZ|HCtKHRccW=u?^|v#}UqI zG50Brrg3+M)4j5GBZk{rOTB|wcYnK8LH*{M^`#p#KX4^1@iZ}zK6>%K6{DS`|>k9R#uIn)v?Y&^ZdtL#4f|G0DqFG1Q-PAXa(WR!D6#rQZj~a1 z90W^d=s3b9Cs`B48Zx59j7vCt=0(i)z+^$x9<0_-Wg@S~z3fb+{e-B3??y;py4?yZ zJeHEXhU&A4iwJ_Wo-wwgtgn&d;GRkgnGH4Yia0hNa0;C$9J<{mZ+Dx8?JF6&2;_w# z9Bw=c=_qbc=7GsUkp)%rFgggpJSTgl5(c51UJ?KcWlPM%x$z*$M4}Bap-mEt2yO=`P2+#c;pAX?erz z4eAuSi68J++HPe7S{hX{Npr>+QA^Zn)%o4DQ7E1q=g7UwBDu}eXd>gB9Yrc8$S%}C zs3iG&GDcc3Sl$1kUmF5PP%7ZkHLXk)YgA-=>0xV`7zD`2Ck{7{sQPoZ3vS5!Pbn5$ zgxqIJnQX#L#o-3W1DUd8z({_)J~w*v9Z)bzu@-oX=50W8io;F1R|L|&DKbg!!YCGp zn+S!V`G672Jk8{InF4vw`T!80%=4@8PF_X16o;Dx@0$^5s31;}Y2!z)7JzEVaH3gG zz28lFYs3`pi#l`6V_ls_i3obI|LaJXSTuX_sc{bL#h#~5gp}O>OMA($pEBH(8rNE#>pp7=ehlK)c=>R@>vl=sX>HkoMKA9eX`CQiaF;%_sD`x%Hl6RQ}udAdvqTZL{jn2mvUh&R0~7IS&iBk(7Xg zl(b*2B3D+5=*Gv&e`72*%XIFCTtVvip+Y|iIn?qWFW>mdLrq`hmey`0d_kC(rFsZ& zYSFs*r9n#kghPTjPbE&lD4b{d4rFTbHS?1~|Cn$iyF;_#C;MW$x?#!Y2~XmW#FKm| zm?ECUuQbPE-2?%>TPU^(@_JQyn3%EVdZ&Omwj3@HEg$}OR~a91AVI?KYKWhl_fgnDeI2`kpRfX zuxelcNL3$5poV9yyb3tPJ_2ye({$g-9|wPUAVjv^x?kC!^i^8 zP@HFQQxd;baX3J&31zxL-2moPz%~+U!1BD<>Cr3#ze=bIcaZZKS(`V*VF{rHzXA(5 zo3Lf6M)1r^eXv%i%wPMs{L>vY>n~o`zrNYDcMQ%IBqfP6#e9*Xa~Y3a((D7kSrz<{%%ky|n*3-pF5;ErD3hC^ z8wCFqiHOkBpqw~p61pq20*y0IJ7m4Fch7IB@6V{Vv;6s4%8fI_DzYLA} z|EITazRmN6Rz)epdO^1e#as;{$%iz#i!xa{L;>A_mV7EkL?^*-LwU%fvNuy#abpIro7mm77*XhlU(V;o?4Va6@aATYGsD7s_|!#K_+dG7 z2s^~V29&h&n38M*dJY;baX}KR{7CxTBh(pm`45vhg1;-(VC?*FIjpLD4ig##AYWsmM0~CtD zD^{}?++{WSWh~`HLY-ww6}Lz>x6N_e?d7yryiW>w&Daul%%e|0W%WSt2p%^3erC{( zn+PUo#UCGTz0gSgtH{0Mg!|S>&|F4nE}B-Vji>ir$qg>1ZfLQ7a8}sNP+8?QfMI~8 z!r@g)TxnyEgGa38Z2zV>ICxkP!Hd8PP_{|Ov6eJQtVoL`jY~R`-NA$}ZbUY8$C@ZT zL~=A5(11@E;~BPw(o8yzJ6Q5tdOZU{Q@0-hgDk69{$)8*O(K8ZEo0oRQ0(p2P-YzO zbAgO3dT&wcf(F=7ijathgdIg|+|Thn+HG!SUsdYfKOFw#XmCvnRE2WVpSy6Z(g()F zktdWFW(8SqC5EBE+O-JPm7sHw0@`G15{P z8^CO}-ere17f;-1yQP&2DA%h}flN^}vM(FA(L9%_t7BrAKe*usx#Juds4`nAuN1s5 zaSVb(N)zDP5+VnWN)n~9XyCtwIMl?|anhoq=AjJ^ELXU%rZUWuxEJfms-QCe)X&LX zI3Bu{`>KMH=H(2K$pmI^k!IVT5t%_X#3;F~9d7cSO{p-ZhG4+#k%QHyN+f7`=s5d! z7;P*m&l{SyjuUrA?0|Btm8$Qlp5Y(%hv|goJ`N;0l%Pdl>Y@?Q=pY23!6mXf{ z7V3*u@>6UxKOYuT_mm_a;^=_<2Rnx{w3B89HsjNrZPv&DS(9d+DL?XNk&ppUdyz=J zoa=&Gd5Vx}o{DJ4?}s9UOLP(ArN4Wdq_yxqjB>&?igBV`gRNv#(bMyxf)(P|kGxMD zlQi%fR6Ri_%MM##p8xQ!r+cxK~O|WdY?GAsHmwt(#!mq>cmN zi&EbJg0SaVvQfjhSkC9rwZp}2E_2oNTsJ*6O^-ARIhvlcO$OY6#(17&(k*BP+LegZ zo_TosxS=N!6qhlFK~JKFl0|56HnV6t`!URA z`Zi2I`)xo-8;+y)id5gw?8(A(2#^P@`Uc2Dg+U{(wZOZm8N3TCMu2P4_Oxl7ri_W& zU@~^G?FrLz9*w1&dkW|AsHePYjY>T(s(oDxKxJjc0i^^5MdnoZV=&H$NN9V{}_oV5CG?0Gz@*O?zGd~9_sj)7|ed9K0qa1DroEixY2K5@;)TQkm2tzSj!#?d=PdF>tH7a) zPutB7-D{Wk&P2D{esSVB@u}#Z9JgLLj`Ui8viv00etw36?WSIA$DQN88+oF`(I7wa z#IeG9qhDId5RnV)`=JP0jn+v6Szd?Yr1P}ZYRCAJ z9vm1ChX>ii-r6d+pBoD2xX1$rgGzA=hiTtj`|37w`|wSbqWUq1U`je-nfmEY zW|(S@9t5duG-vPU4gHH7;hb(MWj+*wSa2Ki_4Ole-U`do$xcZ4m-k-|!6xXXMK9RP ziI2t0A*75s{w8!99b|fu=}ZDk1ZBS*BHnd^pJwT%c13-Y38SHm)zC8$aZj1A&K96X z$@`i`?A7Upn;~KZL!iWJe_m+gZpGMfmX7n=kempJq)DVLQ26>`X~pN8Q8HO8-p&|G zf)DSnt^^Eou=l`wU)1j$}p z`xl%N{`DYi-N+CYkcCp4D|$53jGD$++RJ*=1l7Sn)GS=@Sxs74li~UDD9n6Wj*(ExeLdG?> zKi6EAvW6`S3*qE39qR0%A#Ye%$4DEyDim|;2NuPV2(s`_)|GQlz=<}!Um(CC^S?Ya z_g(Fo`_6Y-ReVn#>DmqEiaE{|;u9pOtx1UBo-@Ze$L(B-XuG9v^;TllcUK;^V#V;| zt35|&`n9+kx`R1iI?l3@CnT|6k&f48H+;hQh4OHFC9WOk+Ln(TN0F_{O_z*cl4OMF z*1a#{%JR|&gOXQRibBnYI?gND4$rQtf%W@l(HeG)QlVXWL8&;ai1^x*Q}PQXe@F#c zPX5CBCu~1~;Um@Vn!0PA(F^)GL8EmlQ^zTCs}Sze*?F~@`iQDw3)bdBbcc+w zUM4PvNGF?2*8KC3oQromi%g85z8i^AKhOz(0zXJFREFCdJ5Dez?e)+lh9%12Bb_nB zvPM5_D;1e~j(#lyIX;z<97bFr{G6i^{8YnqE$rKClUHVMWOg(zZWS$&a;+Q%-uofK zGiblfDIW5Rp-0yRq1rQm=t=MwQ+I8fgBT|wzc-=W8X7<9kF>RV*Si3Zp*WD7&s7ta zY7M#LelFb${)PFubn%py{=L}~4=C}{SU9UILmRTy+j+r1{J-AEgaA7cU?EnpvS@x_ zyQM2*gir$O0>ljC1m*5_d%xXI9OspmL36l84FYA=AjSeF7%;O4GAlBl7NOsSoG)+0 zl7Jg%5;aVbeN6q`;P64pqZ=`E9PACfHD-(ecL9kC)kbeghO)%H7`m$cv{#fr@I5(O z=R7>S+C$m-|4kuDfs$*_(K8nlw;_H&WiPYjozDz<6AAP$DIh<)C;xv}9^ zd3tP&)MbXHPo>S7_-UcoW&E)NA^(5A#FapJfW=Cq&r7b)Sda;~mq+*v%CdN|gIkD-iBd4!x>>{ukUCXPz!fN^v>jmnlbY{X zn1_brHjs*vU*Nbg5fC^{U`VD?0y%VzG>(R;~Q#}4-E8W1_j%W`8ozHS7iy7Q1bmZce@>b zH>92YHeB!zwk%GmW@NmgbhTRCjSF!%EydkvCvqMN5D^~Vz>7&M&v?eid@kM%Rpdqj zr0-0G$bvZ*bE4E4+*?ejh~v!3y(Hsfk&qqeZMg8?g7boqJT^S_c-Q+dbQPfP*F&*^ zcbP(Y_%ciVFGI!7`h?N@VOWXJ`g&;mf#8m)wXKhPn@au!v-)Q~riidt$_(S{wCAlV z`4b%`jHtN3s%EFU@|s3JsMjFm1^f+Nf)6oD779%?P*x@WXZ2m3g1wb8nk&ty%;t0+z4JEUgv zO{s7dMssAY0)7=rjh4}T0`#hi1p-nP+F=51iu;DP zpSAh{Wu&V4{|G#lzvuPPz!Uu=U_Nq`ydEkTBR>d%W>}cjmg#V&VAE`~>4l5DwWtBRokNHH69Q@5^f&n2(*H)16yx^vGZGl+S5>oacORPke zST6_R2^t7ig+pcmi-E{S`0A3U0f?owUw?8_H{wBU7G|}PlyOa&!zbuZKTzm?Ik|Ug z1xShcTjFEvWm-&<1LTvPS>~Ep?KOB&{Uq)Et83$S#%D z(K2TCBAr#6bo!x4kwhgiFBLxPmbWuPX0&pehj4oijoULMrV{IoFm9~K-|aSWa}JkP zl%upF&BwY}3%t+^ihc%O{HGm+(|HsxB~JavDm46sUfqEgKB$WA$fWhnP;7ufmgYw7 z`Qy-p5+rHne>>dq?}p-=p$Q95(v1JE1K6u!>l&R+V>4yg(+J#wM+_ydQ?O{6*ch)! zaQSbhg|?P#CvT>^ozfNSQp$;=G@&V<3Q8c-7}{k@n?3fZE$EOSVpJxZU5~CC<8XnU za0M{)>ogq8{-4};bLQuQ9%|>GSSYnB?Dzx@F#fDH=s`fzH*ot28ofA6k)_h`?OKFK?l!|47b#lkF_Xhb0s7e_51dKn6xHNm3?pUxV{~#llf`0^F%yx$1*OH&y?J6^|FKY$$5@3`D3Hj0N%}>76gwgaj z`=+13_(eI_Wurhd<>1B@nkn-W4Xph5MW|4qenz7$P90UvOn z0YIb}{4i9BqcQ4?D;jn~3JG$xr2aG-4f0u|Ts@6OV+=WA_!6w%zA{ke~Ub3M>$hf3f7Wt4^L6TMxV8xFze3eynYJav@H3J*mltQFro8O0}X{;h2 zQ5ceukd!+yse0Y%5RP1%U12?xT-njdIIEs9k}7v_9)^j(BqM(byku`?^Sg#9Ml*=! zrmJx$|D<`*Uh|BBEbnjjFr$LPv{zd8f}OwFQJ1twKuZ1CAE+E^6odvS*eJ(wt0lYu z=F;Fs3zuJHMj&rTMKu;G zw2bu0#wcJaCS|LTn$pCSmag)a-mV5=rZJpHSuSIl8kZ>bB@tUs%pM_^-&_kec7Z{D zgDgY#EftQWL7H`o>D%PFOT7U!o)swvznPdaqpM&uptz$ay2ZsVGyw^v5Xm;N?Un## z14rC{sp26`EQ%>R1p;;TPijI8iIIG+^Wp*KR&k&e9UDY+I=@s+dLFGiyD}z1Irm%7 z*hW@fHg4fmq@0QV-nFLvO!@zpKn8*E42f$Ooxu2{=m=hzQQ1#^~RK#PGBVP>3eD*S68(LD@1<20+s)_v z_1(t|4QT7)i@7|XCDB-B{&BO(-zF+oSK&k} zsr^o~$v?)S&S@zpeg{Jyu3?KnnJA@uZGfPUqRB+Yen+)RwYSsk@VCUaze^BG3M>V` z)9i9wQbtXfF#JyQ1QYpXjmZGugaVtjzVOW0{4{Er-)TPQ=Sh4!kH)#*X};j!AjqQA zYH}53Qoh^5B9Y@Ho)C8K*94H~cUo<91c74LN%98%NPeev%s-|Pu9JA`cUm28#Z0}G zlPDyowoa?dFA*I2F3GRLJj!k()s5B(zxc9{V=Sg5F23}PzrK5UEyG2U`<>Qv{x-@K zK!q#^y4~U*~^^%2yKUbYwin^A5jG5?c0tr`_cr z7t=JH$g=xw3~kwc>%nup`8JH#xF@qb^E>SqW}H<-;@61J$;tsbMk@=`)7MG*Moz=| zC52pNey7{wgux$&^DCLIWJ-D)zuRnL!e8Gl<`OGMPW*1Og?08#n9KWc?RRNir>kfz zt@{0L^O)-*X5PEa4o8sr4>HZ7B*qMwyh(ny+2uckX%xo!%XyZ(lhY)RLIA9Fnk8-5? z`#J-NiQjFvusCBm#yUXLC-0ZJ-)*<~`!t$H@$2j(B8|s0S~uPHG1vWjKOQerY^rX% z!>_XWw_!ZVX5nY47gM+0<*#D`iM-0@=Q7QsTkIC;ciShs-X7q^FGCygLh_stFMb&g za-@j0z&*bw3QcSWo%p}wn#bbbcNPB52%=CDX)g5VhNQ7_V{UVTJm;HmK7W57e<#<- zOGX@VQ8cHpl_I_f5B(93Q7DzHlV|y2YVM zU&$Z!fPXK7`n?=|j`DiI^A+G&?(PB}uSAe8k**?LiC`kf^MFSy5&W;pnh@|17jSFH z7U5V1Ji+y6xxP(tFW?!j=iyqW0UxhaOieh-_{e(iMouIuKfr|n<$Emr()vGRA@`hCp&W(j$AyRwB`ozba$yr_KFg+dzg3p~5~ zNMK+io*klz0Kd?UguX<9r{Qi{=N;8qDQHZ^)q>Qea@$Bdx+iB_s~6LURVrP0wZdVw zv&xK9Hf;6RkJpv4sO5%R=T=V0QMHV6GRTdOft`Zr%YI26b8L9ca#{}bBxu~8tCeW+ zbNq9^5>0-Me=hLPtCa|>beQk;m>8f&o|&03X}WouB)OkMC9YsNp>X$80DLYoKjPzA zG@qn0_Cw0@>R+vNN>~4Ur6D^BLn>dUuyXP&8o}t7`Pr@<)X&v^E?4gRl^X<#Y!ZiE zxo8sGuj*l3a^q!FH%cl*AD6Yiq$wkLRW{I_9+Lu}qzk?&x}ZEdX$m1%=ns??{kAHD zYA#mg{kN6-;(B$~?9W#2s}--;uUE`(^7B=_jtLN=h3Gt*nX6U3&bVFAyZw4j?^n8_ z>lFgVP?6_7tjP1K6@9QOQVqFYSp)L5_4wNA$Ls1eOsNYvg37MGp|Q+JI>G7#v|g?0 z)1MdWPfK66j@9*X+t-`D+oN*F`a#G1?WlsCXX@`sTmRMfTkR8dqiep<)^E1jT~l{Q z)!lt=ZXD~6=}M0EyB*WmmMPd)1v@SEkr&72L6LvZA|jXe_P<&Qv&V)QDy>-Gs<-&Zl?&6|i&kHHZ67~7&A#+nzGOD`^bhnpEp7K= zB{1*IaV}P;$HzT}YvrT`y&*&p3UAlVKq^lRtSg-gVEhVfo_*tAd4q7I}aa+}jUv@XpTehJu zQ=^$)U>7UB!lap#>(zs4g@W$5<2dy9h2wmr9xAP{p4z4w!4^F<8e{eBMcb!ODkZXB zsP?A#(H<8yB+|QB9SDI@IB;JI(VTnY+m(wIUT^VdtY_RL^oo1t>m^K6sK{hT)3wesf4y>lUb#Q6Tnq+BEevcC zA2a;#zFE0<+btr%yR>6biN0ozGh9)8*A&B5Z)qbA9Or^sfWyVZ57S=F*rL*<#mCJ5Y2~7_ zpcbGi>uFn!m_3u-7u45Y&@)|+Zr%0Dy%PV%fMJw@gBJ0OulWdO$S?S3f<(O`<8(&1 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ⅆVly-PdRA@0%b6blebZLAIZU2chj6w zjVoSg7p%noB1R=3+Ix{${FFn>+E0d1=F0EFt$5(TYDBAWrdn-;or)S6^e0*nav)My zsHxn%av{EClY~K8VI%NLx6yv4>y?J)wPn|A z>YH!+fI*B=b_^QJ(lk2I1#MdOcJj41cXMIQ145hy4w^)|SKTl`i`PwTp4eizS1eX? zccWr?t@N@@31eIVZ}KWPi7}G!eUHF!4W8s)xCezP{E{LQH~}NMMXW9Ln`H z4uRQasbTan=3qTziF?FMnxsB!!xot5R61`_xF}aoql@sAIT~(%nMZ~<`SVs@pJUe8 z$}xr|jLG%5;IVR*y8l+1S(_n$ zM98(llQSk-0BMN2Z>3MEtQ;+DPcg}dvm=cPULuZzk>4NGy&DO7h;IH8C|r+-Q7G{% zHS$%?H&q&&GNVro1WmZ#Z#qt<;WqS^YSd@FLB=ho<_7f%$CxpmsPPr`#_*1jnaCa* z<1`3CSZ9r+<8Sa?(P04?*z_h|Q}^d~>wZz)SzEXI8ZPKaJYXl;Qo^f2mL?1 zIAo9up?`$`V#fX3=-&i7UB`Bvt;fne94HVF777p$!2cK#gER$vDL~8&-7Jmm?Y=p? zng6GuNzg#71`G&DF&YR6?Ef)z|9ad%R?h!v_Rk>Qk?8#~K|w&qzOH`{{U6(Z{6Qjp znf=4t`)1){YxBR|{bTpPDS+7j$DIoD|4i=Rv_BDRH7{99G0|^U&j0z8|NZ*@p$q=| j_?LH4@c({A|37(9Q3mpBP9PvqU#HdAz>&Pczoh>MIbBn( literal 0 HcmV?d00001 diff --git a/eslint.config.js b/eslint.config.js index ea36dd3..4fa125d 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -14,8 +14,16 @@ export default defineConfig([ reactRefresh.configs.vite, ], languageOptions: { + ecmaVersion: 2020, globals: globals.browser, - parserOptions: { ecmaFeatures: { jsx: true } }, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + rules: { + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], }, }, ]) diff --git a/package-lock.json b/package-lock.json index 2cd3f12..0d0e3f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,19 +8,23 @@ "name": "vkminiapp", "version": "0.0.0", "dependencies": { + "@react-oauth/google": "^0.13.5", "@vkontakte/vk-bridge": "^3.0.2", "axios": "^1.16.1", "framer-motion": "^12.40.0", "lucide-react": "^1.16.0", "react": "^19.2.6", "react-dom": "^19.2.6", - "react-router-dom": "^7.15.1" + "react-router-dom": "^7.15.1", + "styled-components": "^6.4.2" }, "devDependencies": { "@eslint/js": "^10.0.1", + "@tailwindcss/postcss": "^4.3.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", + "@vkontakte/vk-miniapps-deploy": "^1.0.2", "autoprefixer": "^10.5.0", "eslint": "^10.3.0", "eslint-plugin-react-hooks": "^7.1.1", @@ -31,6 +35,19 @@ "vite": "^8.0.12" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -305,6 +322,21 @@ "tslib": "^2.4.0" } }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", @@ -578,6 +610,16 @@ "url": "https://github.com/sponsors/Boshen" } }, + "node_modules/@react-oauth/google": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/@react-oauth/google/-/google-0.13.5.tgz", + "integrity": "sha512-xQWri2s/3nNekZJ4uuov2aAfQYu83bN3864KcFqw2pK1nNbFurQIjPFDXhWaKH3IjYJ2r/9yyIIpsn5lMqrheQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, "node_modules/@rolldown/binding-android-arm64": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz", @@ -869,6 +911,289 @@ "tslib": "^2.8.0" } }, + "node_modules/@tailwindcss/node": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.0.tgz", + "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.21.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.0" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.0.tgz", + "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.0", + "@tailwindcss/oxide-darwin-arm64": "4.3.0", + "@tailwindcss/oxide-darwin-x64": "4.3.0", + "@tailwindcss/oxide-freebsd-x64": "4.3.0", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", + "@tailwindcss/oxide-linux-x64-musl": "4.3.0", + "@tailwindcss/oxide-wasm32-wasi": "4.3.0", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz", + "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz", + "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz", + "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz", + "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz", + "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz", + "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz", + "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz", + "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz", + "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz", + "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.10.0", + "@emnapi/runtime": "^1.10.0", + "@emnapi/wasi-threads": "^1.2.1", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz", + "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz", + "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.0.tgz", + "integrity": "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.0", + "@tailwindcss/oxide": "4.3.0", + "postcss": "^8.5.10", + "tailwindcss": "4.3.0" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", @@ -956,6 +1281,73 @@ "@swc/helpers": "^0.5.21" } }, + "node_modules/@vkontakte/vk-miniapps-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@vkontakte/vk-miniapps-deploy/-/vk-miniapps-deploy-1.0.2.tgz", + "integrity": "sha512-IIBOCoKj+sFkXyZiwUwE0yNd5p/vpCdTDe6K80xhe9tNEcctugiTqyPE8WOzHx9yVfyFbYnF9z3oTpuMtfDtTg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.0", + "form-data": "^3.0.0", + "fs-extra": "^8.0.1", + "https-proxy-agent": "^7.0.6", + "node-fetch": "^2.6.0", + "prompts": "^2.1.0", + "require-module": "^0.1.0", + "zip-a-folder": "0.0.12" + }, + "bin": { + "vk-miniapps-deploy": "bin/vk-miniapps-deploy" + }, + "engines": { + "node": ">=8.10" + } + }, + "node_modules/@vkontakte/vk-miniapps-deploy/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@vkontakte/vk-miniapps-deploy/node_modules/form-data": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", + "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@vkontakte/vk-miniapps-deploy/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", @@ -1008,6 +1400,113 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/archiver": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", + "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^2.6.3", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.4", + "readable-stream": "^3.4.0", + "tar-stream": "^2.1.0", + "zip-stream": "^2.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/archiver-utils/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/archiver-utils/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/archiver/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1073,6 +1572,27 @@ "node": "18 || 20 || >=22" } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/baseline-browser-mapping": { "version": "2.10.32", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.32.tgz", @@ -1086,6 +1606,18 @@ "node": ">=6.0.0" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/brace-expansion": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", @@ -1133,6 +1665,41 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -1146,6 +1713,15 @@ "node": ">= 0.4" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001793", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz", @@ -1167,6 +1743,40 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1179,6 +1789,80 @@ "node": ">= 0.8" } }, + "node_modules/compress-commons": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", + "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.6" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/compress-commons/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/compress-commons/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -1199,6 +1883,37 @@ "url": "https://opencollective.com/express" } }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1214,11 +1929,40 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, "license": "MIT" }, "node_modules/debug": { @@ -1264,6 +2008,19 @@ "node": ">=8" } }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1285,6 +2042,30 @@ "dev": true, "license": "ISC" }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.0.tgz", + "integrity": "sha512-xYcDWrpELkFzz9SpZ3PlI6Eu6eD93Yf0WLDRxikGhWJ3MAir2SNZTIVCVZqZ/NUyx8AdMc2gT9C0gPiw18kG+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -1702,6 +2483,35 @@ } } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1773,6 +2583,28 @@ "node": ">= 0.4" } }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -1786,6 +2618,37 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/globals": { "version": "17.6.0", "resolved": "https://registry.npmjs.org/globals/-/globals-17.6.0.tgz", @@ -1811,6 +2674,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -1880,6 +2760,27 @@ "node": ">= 6" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -1900,6 +2801,25 @@ "node": ">=0.8.19" } }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1923,6 +2843,30 @@ "node": ">=0.10.0" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1930,6 +2874,16 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1984,6 +2938,16 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -1994,6 +2958,62 @@ "json-buffer": "3.0.1" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2297,6 +3317,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", + "dev": true, + "license": "MIT" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -2316,6 +3378,32 @@ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -2409,6 +3497,27 @@ "dev": true, "license": "MIT" }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-releases": { "version": "2.0.46", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.46.tgz", @@ -2419,6 +3528,26 @@ "node": ">=18" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -2479,6 +3608,16 @@ "node": ">=8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -2542,7 +3681,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, "license": "MIT" }, "node_modules/prelude-ls": { @@ -2555,6 +3693,27 @@ "node": ">= 0.8.0" } }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proxy-from-env": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", @@ -2633,6 +3792,38 @@ "react-dom": ">=18" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-module": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/require-module/-/require-module-0.1.0.tgz", + "integrity": "sha512-fbr7gXnwot8k98dOUIq9KA4tvEot+CNMg1GR6j1v+7gI3aECMeyxmw2Ux0RWecPR6GfLqktVJ84GlTXoFlS2Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "~0.6.1" + } + }, + "node_modules/resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==", + "dev": true, + "license": "MIT" + }, "node_modules/rolldown": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz", @@ -2667,6 +3858,27 @@ "@rolldown/binding-win32-x64-msvc": "1.0.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -2712,6 +3924,20 @@ "node": ">=8" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2722,6 +3948,71 @@ "node": ">=0.10.0" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/styled-components": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.4.2.tgz", + "integrity": "sha512-xZBhBJsMtGqb+aKcwKgaT+BtuFums9VynX2JRvXJGTx5UfZzN12rk5r4nVdhXYvRw+hE7yiYxVrOqJZaK2+Txg==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.4.0", + "css-to-react-native": "3.2.0", + "csstype": "3.2.3", + "stylis": "4.3.6" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "css-to-react-native": ">= 3.2.0", + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0", + "react-native": ">= 0.68.0" + }, + "peerDependenciesMeta": { + "css-to-react-native": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/tailwindcss": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz", @@ -2729,6 +4020,37 @@ "dev": true, "license": "MIT" }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tinyglobby": { "version": "0.2.16", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", @@ -2746,6 +4068,13 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -2765,6 +4094,39 @@ "node": ">= 0.8.0" } }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", @@ -2806,6 +4168,13 @@ "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, "node_modules/vite": { "version": "8.0.14", "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz", @@ -2884,6 +4253,24 @@ } } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -2910,6 +4297,36 @@ "node": ">=0.10.0" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -2930,6 +4347,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zip-a-folder": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/zip-a-folder/-/zip-a-folder-0.0.12.tgz", + "integrity": "sha512-wZGiWgp3z2TocBlzx3S5tsLgPbT39qG2uIZmn2MhYLVjhKIr2nMhg7i4iPDL4W3XvMDaOEEVU5ZB0Y/Pt6BLvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver": "^3.1.1" + } + }, + "node_modules/zip-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", + "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^2.1.1", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/zod": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", diff --git a/package.json b/package.json index 00dfaeb..351dd04 100644 --- a/package.json +++ b/package.json @@ -7,22 +7,27 @@ "dev": "vite", "build": "vite build", "lint": "eslint .", - "preview": "vite preview" + "preview": "vite preview", + "deploy": "npm run build && vk-miniapps-deploy" }, "dependencies": { + "@react-oauth/google": "^0.13.5", "@vkontakte/vk-bridge": "^3.0.2", "axios": "^1.16.1", "framer-motion": "^12.40.0", "lucide-react": "^1.16.0", "react": "^19.2.6", "react-dom": "^19.2.6", - "react-router-dom": "^7.15.1" + "react-router-dom": "^7.15.1", + "styled-components": "^6.4.2" }, "devDependencies": { "@eslint/js": "^10.0.1", + "@tailwindcss/postcss": "^4.3.0", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", + "@vkontakte/vk-miniapps-deploy": "^1.0.2", "autoprefixer": "^10.5.0", "eslint": "^10.3.0", "eslint-plugin-react-hooks": "^7.1.1", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..3a29142 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + '@tailwindcss/postcss': {}, // <--- ИСПРАВЛЕНО ПОД ТРЕБОВАНИЯ TAILWIND V4 + autoprefixer: {}, + }, +} \ No newline at end of file diff --git a/src/App.css b/src/App.css index f90339d..b9d355d 100644 --- a/src/App.css +++ b/src/App.css @@ -1,184 +1,42 @@ -.counter { - font-size: 16px; - padding: 5px 10px; - border-radius: 5px; - color: var(--accent); - background: var(--accent-bg); - border: 2px solid transparent; - transition: border-color 0.3s; - margin-bottom: 24px; +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} - &:hover { - border-color: var(--accent-border); +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); } - &:focus-visible { - outline: 2px solid var(--accent); - outline-offset: 2px; + to { + transform: rotate(360deg); } } -.hero { - position: relative; - - .base, - .framework, - .vite { - inset-inline: 0; - margin: 0 auto; - } - - .base { - width: 170px; - position: relative; - z-index: 0; - } - - .framework, - .vite { - position: absolute; - } - - .framework { - z-index: 1; - top: 34px; - height: 28px; - transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) - scale(1.4); - } - - .vite { - z-index: 0; - top: 107px; - height: 26px; - width: auto; - transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) - scale(0.8); +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; } } -#center { - display: flex; - flex-direction: column; - gap: 25px; - place-content: center; - place-items: center; - flex-grow: 1; - - @media (max-width: 1024px) { - padding: 32px 20px 24px; - gap: 18px; - } +.card { + padding: 2em; } -#next-steps { - display: flex; - border-top: 1px solid var(--border); - text-align: left; - - & > div { - flex: 1 1 0; - padding: 32px; - @media (max-width: 1024px) { - padding: 24px 20px; - } - } - - .icon { - margin-bottom: 16px; - width: 22px; - height: 22px; - } - - @media (max-width: 1024px) { - flex-direction: column; - text-align: center; - } -} - -#docs { - border-right: 1px solid var(--border); - - @media (max-width: 1024px) { - border-right: none; - border-bottom: 1px solid var(--border); - } -} - -#next-steps ul { - list-style: none; - padding: 0; - display: flex; - gap: 8px; - margin: 32px 0 0; - - .logo { - height: 18px; - } - - a { - color: var(--text-h); - font-size: 16px; - border-radius: 6px; - background: var(--social-bg); - display: flex; - padding: 6px 12px; - align-items: center; - gap: 8px; - text-decoration: none; - transition: box-shadow 0.3s; - - &:hover { - box-shadow: var(--shadow); - } - .button-icon { - height: 18px; - width: 18px; - } - } - - @media (max-width: 1024px) { - margin-top: 20px; - flex-wrap: wrap; - justify-content: center; - - li { - flex: 1 1 calc(50% - 8px); - } - - a { - width: 100%; - justify-content: center; - box-sizing: border-box; - } - } -} - -#spacer { - height: 88px; - border-top: 1px solid var(--border); - @media (max-width: 1024px) { - height: 48px; - } -} - -.ticks { - position: relative; - width: 100%; - - &::before, - &::after { - content: ''; - position: absolute; - top: -4.5px; - border: 5px solid transparent; - } - - &::before { - left: 0; - border-left-color: var(--border); - } - &::after { - right: 0; - border-right-color: var(--border); - } +.read-the-docs { + color: #888; } diff --git a/src/App.jsx b/src/App.jsx index fa09ed9..19ec039 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,113 +1,183 @@ import { useState, useEffect } from 'react'; -import { BrowserRouter as Router, Routes, Route, Link, useNavigate } from 'react-router-dom'; +import { HashRouter as Router, Routes, Route, useNavigate, useLocation } from 'react-router-dom'; +import { GoogleOAuthProvider } from '@react-oauth/google'; import bridge from '@vkontakte/vk-bridge'; -import axios from 'axios'; -import { Cpu, User, Loader2 } from 'lucide-react'; +import { motion, AnimatePresence } from 'framer-motion'; +import { Cpu, Globe, ShoppingCart, User, Mail, Sun, Moon } from 'lucide-react'; +import './index.css'; -import VkDashboard from './pages/VkDashboard'; -import VkPayment from './pages/VkPayment'; -import VkKabinet from './pages/VkKabinet'; +// ИМПОРТЫ ВАШИХ ОРИГИНАЛЬНЫХ СТРАНИЦ И КОМПОНЕНТОВ +import Login from './components/Login'; +import Home from './pages/Home'; +import About from './pages/About'; +import Contact from './pages/Contact'; +import Dashboard from './pages/Dashboard'; +import Kabinet from './pages/Kabinet'; +import Payment from './pages/Payment'; -const API_URL = 'https://diplomnexus.aptcloud.ru'; +const clientId = '631083577297-n17acu7qspb1n9n8lhmr8q43b4vbpif1.apps.googleusercontent.com'; function AppContent() { - const [user, setUser] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); + const [isAuthenticated, setIsAuthenticated] = useState(!!localStorage.getItem('token')); + const [user, setUser] = useState(JSON.parse(localStorage.getItem('userInfo')) || null); + const [showLogin, setShowLogin] = useState(false); + const [showRegister, setShowRegister] = useState(false); + + // Управление темой (Светлая по умолчанию) + const [theme, setTheme] = useState(localStorage.getItem('theme') || 'light'); + const navigate = useNavigate(); + const location = useLocation(); useEffect(() => { - const autoLogin = async () => { - const searchParams = new URLSearchParams(window.location.search); - const isVk = searchParams.has('vk_user_id') && searchParams.has('sign'); + document.body.className = theme; + localStorage.setItem('theme', theme); + }, [theme]); - if (!isVk) { - setLoading(false); - setError('Пожалуйста, запустите приложение внутри ВКонтакте (VK Mini Apps).'); - return; - } + // Запуск ВК-моста + useEffect(() => { + bridge.send('VKWebAppInit'); + }, []); - try { - // Получаем нативные данные профиля от VK - const vkUser = await bridge.send('VKWebAppGetUserInfo'); + const handleAuth = (userInfo) => { + setIsAuthenticated(true); + setUser(userInfo); + localStorage.setItem('userInfo', JSON.stringify(userInfo)); + setShowLogin(false); + setShowRegister(false); + navigate('/dashboard'); + }; - // Собираем параметры запуска для подписи - const launchParams = {}; - searchParams.forEach((value, key) => { - if (key.startsWith('vk_') || key === 'sign') { - launchParams[key] = value; - } - }); + const handleLogout = () => { + setIsAuthenticated(false); + setUser(null); + localStorage.clear(); + navigate('/'); + }; - // Отправляем на ваш основной бэкенд для проверки сигнатуры и авторизации - const res = await axios.post(`${API_URL}/auth/vk`, { - launchParams, - userInfo: vkUser - }); - - const { token, user: appUser } = res.data; - - localStorage.setItem('token', token); - localStorage.setItem('userInfo', JSON.stringify(appUser)); - - setUser(appUser); - setLoading(false); - navigate('/'); // Переходим в каталог - } catch (err) { - console.error('Ошибка авторизации VK:', err); - setError('Не удалось войти через ВКонтакте. Проверьте настройки бэкенда.'); - setLoading(false); - } - }; - - autoLogin(); - }, [navigate]); - - if (loading) { - return ( -
- -

NEXUS SECURE CONNECTING...

-
- ); - } - - if (error) { - return ( -
-

⚠️ ОШИБКА ИНИЦИАЛИЗАЦИИ

-

{error}

-
- ); - } + // Логика перехода в приватные разделы + const handleProtectedNavigation = (path) => { + if (isAuthenticated) { + navigate(path); + } else { + setShowLogin(true); + } + }; + const handleProfileClick = () => { + if (isAuthenticated) { + navigate('/kabinet'); + } else { + setShowLogin(true); + } + }; return ( -
- - } /> - } /> - } /> - +
+ + {/* КНОПКА СМЕНЫ ТЕМЫ (ПАРЯЩАЯ ВВЕРХУ СПРАВА) */} +
+ +
+ + {/* ФОРМА АВТОРИЗАЦИИ (Login.jsx) */} + { setShowLogin(false); setShowRegister(false); }} + onSuccess={handleAuth} + onSwitchToReg={() => { setShowLogin(false); setShowRegister(true); }} + onSwitchToLogin={() => { setShowRegister(false); setShowLogin(true); }} + /> + + {/* МАРШРУТИЗАЦИЯ СТРАНИЦ */} + + + } /> + } /> + } /> + + {/* Защищенные разделы */} + } /> + } /> + } /> + + + + {/* ПАРИРУЮЩИЙ BOTTOM NAV НА 5 КНОПОК (Стиль Akenai VPN) */} +
+ + {/* Кнопка: ГЛАВНАЯ */} + + + {/* Кнопка: О НАС */} + + + {/* Кнопка: КАТАЛОГ */} + + + {/* Кнопка: КОНТАКТЫ */} + + + {/* Кнопка: ЛИЧНЫЙ КАБИНЕТ */} + +
- {/* Мобильный док-бар */} -
); } export default function App() { return ( - - - + + + + + ); } \ No newline at end of file diff --git a/src/assets/hero.png b/src/assets/hero.png deleted file mode 100644 index 02251f4b956c55af2d76fd0788124d7eee2b45eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13057 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 P00000NkvXXu0mjft=yBf diff --git a/src/assets/vite.svg b/src/assets/vite.svg deleted file mode 100644 index 5101b67..0000000 --- a/src/assets/vite.svg +++ /dev/null @@ -1 +0,0 @@ -Vite diff --git a/src/components/ActionMenu.jsx b/src/components/ActionMenu.jsx new file mode 100644 index 0000000..f972c7a --- /dev/null +++ b/src/components/ActionMenu.jsx @@ -0,0 +1,122 @@ +import React, { useState, useRef, useEffect } from 'react'; +import styled from 'styled-components'; +import { Pencil, ShieldPlus, Settings, Trash2, MoreVertical } from 'lucide-react'; + +const ActionMenu = ({ onEdit, onDelete }) => { + const [isOpen, setIsOpen] = useState(false); + const menuRef = useRef(null); + + // Закрытие при клике вне компонента + useEffect(() => { + function handleClickOutside(event) { + if (menuRef.current && !menuRef.current.contains(event.target)) { + setIsOpen(false); + } + } + document.addEventListener("mousedown", handleClickOutside); + return () => document.removeEventListener("mousedown", handleClickOutside); + }, [menuRef]); + + const handleAction = (action) => { + action(); + setIsOpen(false); + }; + + return ( +
+ {/* КНОПКА ТРИ ТОЧКИ */} + + + {/* ВЫПАДАЮЩЕЕ МЕНЮ */} + {isOpen && ( + +
+
    + {/* РЕДАКТИРОВАТЬ */} +
  • handleAction(onEdit)}> + +

    Изменить

    +
  • +
+
+
    + {/* УДАЛИТЬ */} +
  • handleAction(onDelete)}> + +

    Удалить

    +
  • +
+
+ + )} +
+ ); +}; + +// ТВОЙ STYLED COMPONENT (с небольшими правками позиционирования) +const MenuContainer = styled.div` + .card { + width: 180px; + background-color: rgba(36, 40, 50, 1); + background-image: linear-gradient(139deg, rgba(36, 40, 50, 1) 0%, rgba(36, 40, 50, 1) 0%, rgba(37, 28, 40, 1) 100%); + border-radius: 10px; + padding: 10px 0px; + display: flex; + flex-direction: column; + gap: 6px; + border: 1px solid rgba(255,255,255,0.1); + box-shadow: 0 10px 30px rgba(0,0,0,0.5); + } + + .card .separator { + border-top: 1px solid #42434a; + margin: 4px 0; + } + + .card .list { + list-style-type: none; + display: flex; + flex-direction: column; + gap: 4px; + padding: 0px 8px; + } + + .card .list .element { + display: flex; + align-items: center; + color: #9ca3af; + gap: 10px; + transition: all 0.2s ease-out; + padding: 8px 10px; + border-radius: 6px; + cursor: pointer; + } + + .card .list .element .label { + font-weight: 500; + font-size: 13px; + line-height: 1; + } + + .card .list .element:hover { + background-color: var(--accent-color, #5353ff); + color: #ffffff; + transform: translateX(2px); + } + + .card .list .delete:hover { + background-color: #ef4444; /* Красный tailwind */ + color: white; + } + + .card .list .element:active { + transform: scale(0.98); + } +`; + +export default ActionMenu; \ No newline at end of file diff --git a/src/components/ArcReactor.jsx b/src/components/ArcReactor.jsx new file mode 100644 index 0000000..a8e182c --- /dev/null +++ b/src/components/ArcReactor.jsx @@ -0,0 +1,132 @@ +import React from 'react'; +import styled from 'styled-components'; + +const ArcReactor = () => { + return ( + +
+ + {/* LAYER 1 (Внешнее кольцо) */} + + + + + + + + {/* LAYER 2 (Вращающиеся элементы) */} + + + + + + + + + + + + + + + + {/* LAYER 4 (Центр) */} + + + + + +
+
+ ); +}; + +const StyledWrapper = styled.div` + .svg-frame { + position: relative; + width: 300px; + height: 300px; + transform-style: preserve-3d; + display: flex; + justify-content: center; + align-items: center; + } + + .svg-frame svg { + position: absolute; + transition: .5s; + z-index: calc(1 - (0.2 * var(--j))); + transform-origin: center; + width: 344px; + height: 344px; + fill: none; + /* Тень, чтобы линии было видно на белом */ + filter: drop-shadow(0 0 5px var(--accent-color)); + } + + /* Цвета с использованием CSS переменных */ + .accent-stroke { + stroke: var(--accent-color); + } + .accent-fill { + fill: var(--accent-color); + } + + /* ЦЕНТР ЖЕЛТЫЙ (#center1) */ + #center1 { + fill: #ffff00; /* Яркий желтый */ + stroke: #000; /* Черная обводка для контраста на белом */ + stroke-width: 1px; + animation: rotate16 2s ease-in-out infinite alternate; + transform-origin: center; + } + + /* Внутренний центр */ + #center { + fill: var(--accent-color); + transition: .5s; + transform-origin: center; + } + + .svg-frame:hover svg { + transform: rotate(-80deg) skew(30deg) translateX(calc(45px * var(--i))) translateY(calc(-35px * var(--i))); + } + + .svg-frame:hover svg #center { + transform: rotate(-30deg) translateX(45px) translateY(-3px); + } + + #out2 { + animation: rotate16 7s ease-in-out infinite alternate; + transform-origin: center; + } + + @keyframes rotate16 { + to { + transform: rotate(360deg); + } + } +`; + +export default ArcReactor; \ No newline at end of file diff --git a/src/components/Fingerprint.jsx b/src/components/Fingerprint.jsx new file mode 100644 index 0000000..9395983 --- /dev/null +++ b/src/components/Fingerprint.jsx @@ -0,0 +1,34 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Fingerprint = () => { + return ( + +
+ + + +
+
+
+
Verifying...
+
+ + ); +} + +const StyledWrapper = styled.div` + .fingerprint-container { position: relative; width: 120px; height: 120px; cursor: pointer; border-radius: 50%; margin: 0 auto; } + .fingerprint-svg { width: 100%; height: 100%; color: #00ff00; filter: drop-shadow(0 0 5px #00ff00); transition: transform 0.2s ease; } + .fingerprint-path { stroke-dasharray: 500; stroke-dashoffset: 0; animation: draw 4s infinite linear; } + .scan-line { position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(to right, transparent, #00ff00, transparent); opacity: 0; } + .status { position: absolute; bottom: -30px; width: 100%; text-align: center; color: #00ff00; font-size: 14px; text-transform: uppercase; letter-spacing: 2px; animation: glitch-text 2s infinite; } + + .fingerprint-container:hover .scan-line { animation: scan 1s infinite linear; opacity: 0.7; } + + @keyframes draw { 0% { stroke-dashoffset: 500; } 100% { stroke-dashoffset: 0; } } + @keyframes scan { 0% { transform: translateY(0); opacity: 0.7; } 50% { opacity: 1; } 100% { transform: translateY(120px); opacity: 0.7; } } + @keyframes glitch-text { 0% { transform: translate(0); } 20% { transform: translate(-1px, 1px); } 40% { transform: translate(1px, -1px); } 60% { transform: translate(-1px, 0); } 80% { transform: translate(1px, 0); } 100% { transform: translate(0); } } +`; + +export default Fingerprint; \ No newline at end of file diff --git a/src/components/Iphone.jsx b/src/components/Iphone.jsx new file mode 100644 index 0000000..6bedcda --- /dev/null +++ b/src/components/Iphone.jsx @@ -0,0 +1,70 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Iphone = () => { + return ( + +
+
+
+
+
+
+
NEXUSSYSTEM
+
+
+
+
+
+
+
+
+ + ); +} + +const StyledWrapper = styled.div` + .card { + width: 210px; height: 400px; background: black; border-radius: 35px; + border: 2px solid rgb(40, 40, 40); padding: 7px; position: relative; + box-shadow: 2px 5px 15px rgba(0, 0, 0, 0.486); margin: 0 auto; + } + .card-int { + background-image: linear-gradient(to right bottom, #ff0000, #ff0045, #ff0078, #ea00aa, #b81cd7, #8a3ad6, #5746cf, #004ac2, #003d94, #002e66, #001d3a, #020812); + background-size: 200% 200%; background-position: 0% 0%; height: 100%; border-radius: 25px; + transition: all 0.6s ease-out; overflow: hidden; + } + .card:hover .card-int { background-position: 100% 100%; } + .top { + position: absolute; top: 0px; right: 50%; transform: translate(50%, 0%); + width: 35%; height: 18px; background-color: black; + border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; + } + .speaker { + position: absolute; top: 2px; right: 50%; transform: translate(50%, 0%); + width: 40%; height: 2px; border-radius: 2px; background-color: rgb(20, 20, 20); + } + .camera { + position: absolute; top: 6px; right: 84%; transform: translate(50%, 0%); + width: 6px; height: 6px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.048); + } + .int { + position: absolute; width: 3px; height: 3px; border-radius: 50%; + top: 50%; right: 50%; transform: translate(50%, -50%); background-color: rgba(0, 0, 255, 0.212); + } + .btn1, .btn2, .btn3, .btn4 { position: absolute; width: 2px; background-image: linear-gradient(to right, #111111, #222222, #333333, #464646, #595959); } + .btn1 { height: 45px; top: 30%; right: -4px; } + .btn2 { height: 30px; top: 26%; left: -4px; } + .btn3 { height: 30px; top: 36%; left: -4px; } + .btn4 { height: 45px; top: 11%; right: -4px; } /* Added missing btn4 style for completion */ + .hello { + display: flex; flex-flow: column; align-items: center; justify-content: center; + color: white; font-size: 2rem; font-weight: bold; text-align: center; + line-height: 35px; height: 100%; transition: 0.5s ease-in-out; + } + .hidden { display: block; opacity: 0; transition: all 0.3s ease-in; font-size: 1rem; } + .card:hover .hidden { opacity: 1; } + .card:hover .hello { transform: translateY(-20px); } +`; + +export default Iphone; diff --git a/src/components/Login.jsx b/src/components/Login.jsx new file mode 100644 index 0000000..ddb1ec4 --- /dev/null +++ b/src/components/Login.jsx @@ -0,0 +1,352 @@ +import { useState } from 'react'; +import axios from 'axios'; +import { motion, AnimatePresence } from 'framer-motion'; +import { X, User, Lock, Mail, Fingerprint, ScanFace, ArrowRight } from 'lucide-react'; +import { useGoogleLogin } from '@react-oauth/google'; +import bridge from '@vkontakte/vk-bridge'; +import GoogleButton from './google'; + +const Login = ({ showLogin, showRegister, onClose, onSuccess, onSwitchToReg, onSwitchToLogin }) => { + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [name, setName] = useState(''); + const [error, setError] = useState(''); + const [loading, setLoading] = useState(false); + const [step, setStep] = useState('auth'); // 'auth' или 'verify' + const [verificationCode, setVerificationCode] = useState(''); + + // Логика Google входа + const googleLogin = useGoogleLogin({ + onSuccess: async (tokenResponse) => { + try { + const res = await axios.post('https://diplomnexus.aptcloud.ru/auth/google', { + access_token: tokenResponse.access_token, + }); + localStorage.setItem('token', res.data.token); + onSuccess(res.data.user); + } catch (err) { + setError('Ошибка Google авторизации'); + } + }, + onError: () => setError('Google вход не удался'), + }); + const handleVkLogin = async () => { + setError(''); + setLoading(true); + try { + const searchParams = new URLSearchParams(window.location.search); + const launchParams = {}; + searchParams.forEach((value, key) => { + if (key.startsWith('vk_') || key === 'sign') { + launchParams[key] = value; + } + }); + + const vkUser = await bridge.send('VKWebAppGetUserInfo'); + + const res = await axios.post('https://diplomnexus.aptcloud.ru/auth/vk', { + launchParams, + userInfo: vkUser + }); + + localStorage.setItem('token', res.data.token); + onSuccess(res.data.user); + } catch (err) { + console.error(err); + setError('Не удалось авторизоваться через ВКонтакте'); + } finally { + setLoading(false); + } + }; + const handleSubmit = async (e, isRegister) => { + e.preventDefault(); + setError(''); + setLoading(true); + + try { + await new Promise(resolve => setTimeout(resolve, 800)); + + if (isRegister && step === 'auth') { + // Шаг 1: отправка данных для регистрации и генерации кода на почту + const endpoint = 'https://diplomnexus.aptcloud.ru/register'; + const payload = { email, password, name, referral_code: localStorage.getItem('referral_code') }; + + await axios.post(endpoint, payload); + setStep('verify'); // Переключаемся на окно ввода кода + } else if (isRegister && step === 'verify') { + // Шаг 2: отправка кода верификации + const endpoint = 'https://diplomnexus.aptcloud.ru/verify'; + const payload = { email, code: verificationCode }; + + const res = await axios.post(endpoint, payload); + localStorage.setItem('token', res.data.token); + onSuccess(res.data.user); + } else { + // Обычный вход в систему (Авторизация) + const endpoint = 'https://diplomnexus.aptcloud.ru/login'; + const payload = { email, password }; + + const res = await axios.post(endpoint, payload); + localStorage.setItem('token', res.data.token); + onSuccess(res.data.user); + } + } catch (err) { + setError(err.response?.data?.error || err.response?.data?.message || 'Ошибка доступа: Неверные данные'); + } finally { + setLoading(false); + } + }; + + // Возврат на шаг назад (если ввели не ту почту) + const handleBackToAuth = () => { + setStep('auth'); + setError(''); + setVerificationCode(''); + }; + + const handleSwitchToLogin = () => { + setStep('auth'); + setError(''); + onSwitchToLogin(); + }; + + const handleSwitchToReg = () => { + setStep('auth'); + setError(''); + onSwitchToReg(); + }; + + if (!showLogin && !showRegister) return null; + + const isRegister = showRegister; + + return ( + + {/* Убрал onClick={onClose} отсюда. Теперь клик по фону ничего не делает */} +
+ + {/* ФОНОВЫЕ ЭФФЕКТЫ */} +
+
+
+ + e.stopPropagation()} + > + {/* ОСНОВНОЙ КОНТЕЙНЕР (СТЕКЛО) */} +
+ + {/* ВЕРХНЯЯ ПОЛОСА ЗАГРУЗКИ */} + {loading && ( + + )} + +
+ + {/* === КРЕСТИК (ЗАКРЫВАЕТ ТОЛЬКО ОН) === */} + + + {/* ДЕКОРАТИВНЫЕ УГОЛКИ */} +
+
+
+ + {/* ЗАГОЛОВОК */} +
+
+
+ {isRegister && step === 'verify' ? ( + + ) : isRegister ? ( + + ) : ( + + )} +
+
+
+

+ {isRegister && step === 'verify' ? 'Верификация' : isRegister ? 'Инициализация' : 'Вход в систему'} +

+

+ SECURE CONNECTION ESTABLISHED +

+
+ + {/* ОШИБКА */} + + {error && ( + + {error} + + )} + + + {/* ФОРМА */} +
handleSubmit(e, isRegister)} className="space-y-5 relative z-10"> + + {isRegister && step === 'verify' ? ( + // --- ШАГ 2: Форма ввода верификационного кода --- +
+

+ Код подтверждения отправлен на почту
+ {email} +

+
+ + setVerificationCode(e.target.value)} + required + /> +
+ + + + +
+ ) : ( + // --- ШАГ 1: Стандартная форма ввода данных --- + <> + {isRegister && ( +
+ + setName(e.target.value)} + required + /> +
+ )} + +
+ + setEmail(e.target.value)} + required + /> +
+ +
+ + setPassword(e.target.value)} + required + /> +
+ + + + )} +
+ + {/* РАЗДЕЛИТЕЛЬ */} + {!(isRegister && step === 'verify') && ( + <> + {/* РАЗДЕЛИТЕЛЬ */} +
+ + Или через соц.сети + +
+ +
+
+ googleLogin()} /> + +
+
+ + )} + + {/* ПЕРЕКЛЮЧАТЕЛЬ */} +
+

+ {isRegister ? 'Уже есть доступ?' : 'Нет идентификатора?'} +

+ +
+ +
+
+ +
+ + ); +}; + +export default Login; diff --git a/src/components/Mesto.jsx b/src/components/Mesto.jsx new file mode 100644 index 0000000..4ecbc1b --- /dev/null +++ b/src/components/Mesto.jsx @@ -0,0 +1,281 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Mesto = () => { + return ( + +
+ + {/* ФОН КАРТЫ */} +
+ + + + + + + + + + + + + + + + + + + + + + {/* === СЛОЙ 1: ЛАНДШАФТ === */} + + + + {/* Дорожки */} + {/* Парковка */} + + {/* Патио */} + + {/* === СЛОЙ 2: СТРОЕНИЯ === */} + + {/* ГАРАЖ */} + + + + + + + {/* ДОМ */} + + + + + + + + + {/* БАССЕЙН */} + + + {/* === СЛОЙ 3: ОБЪЕКТЫ === */} + + {/* МАШИНА */} + + + + + + + + {/* МАНГАЛЬНАЯ ЗОНА (Отодвинул вниз на траву - координаты 500, 300) */} + + {/* Плитка под мангал */} + + {/* Сам мангал */} + + + + {/* Дым */} + + + + + + + {/* ЧЕЛОВЕК (Вид СВЕРХУ) - Сдвинул ближе к центру дорожки */} + + + + + + {/* СОБАКА (Вид СВЕРХУ) */} + + + + + + + {/* ДЕРЕВЬЯ */} + + + + +
+ + {/* === ПИНЫ ДАТЧИКОВ === */} +
+ +
+
Ворота: Открыто
+
+ +
+
Камера: Запись
+
+ +
+
Центральный HUB
+
+ +
+
Бассейн: 24°C
+
+ +
+
GPS: Бобик
+
+ + {/* ЧЕЛОВЕК: Точка ровно над головой (320/600=53.3%, 380/500=76%) */} +
+
Движение: Гость
+
+ +
+
Домофон
+
+ + {/* СОЛНЕЧНЫЕ ПАНЕЛИ */} +
+
Электричество: 4.2 kW
+
+ +
+
Протечка: Кухня
+
+ + {/* МАНГАЛ: Точка над мангалом (500/600=83.3%, 300/500=60%) */} +
+
Мангал: 180°C
+
+ +
+
Охрана: Периметр
+
+ +
+
Анемометр: 3 м/с
+
+ + {/* ДАТЧИК ВЛАЖНОСТИ (ВЕРНУЛ) */} +
+
Влага (Газон): 65%
+
+ +
+
+
+ ); +} + +const StyledWrapper = styled.div` + width: 100%; + display: flex; + justify-content: center; + + .map-container { + --city-sign-color-back: rgba(15, 23, 42, 0.95); + --city-sign-color-font: #fff; + position: relative; + width: 100%; + max-width: 650px; + aspect-ratio: 4 / 3; + background: transparent; + } + + .map-background-wrapper { + position: absolute; + top: 0; left: 0; width: 100%; height: 100%; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 50px rgba(0,0,0,0.4), inset 0 0 0 2px rgba(255,255,255,0.1); + background: #7ec850; + z-index: 1; + } + + .map-svg { width: 100%; height: 100%; object-fit: cover; } + .map-cities { width: 100%; height: 100%; position: relative; z-index: 10; overflow: visible; } + + /* ПИНЫ (Маленькие точки) */ + .map-city { + position: absolute; + left: calc(var(--x) * 1%); + top: calc(var(--y) * 1%); + width: 12px; height: 12px; + background: #ef4444; + border: 2px solid white; + border-radius: 50%; + box-shadow: 0 2px 4px rgba(0,0,0,0.3); + transform: translate(-50%, -50%); + cursor: pointer; + transition: all 0.2s ease; + z-index: 20; + } + + .map-city[data-status="active"] { background: #22c55e; } + .map-city[data-status="normal"] { background: #3b82f6; } + .map-city[data-status="warning"] { background: #f59e0b; animation: pulse-warning 1s infinite; } + + .map-city.main-hub { + width: 18px; height: 18px; + background: #a855f7; + border-radius: 4px; + transform: translate(-50%, -50%) rotate(45deg); + } + + .map-city:hover { + transform: translate(-50%, -50%) scale(1.5); + z-index: 100; + border-color: #fbbf24; + } + + .map-city__label { + opacity: 0; + visibility: hidden; + position: absolute; + bottom: 20px; + left: 50%; + transform: translateX(-50%) translateY(5px); + white-space: nowrap; + z-index: 50; + transition: all 0.2s ease; + pointer-events: none; + } + + .map-city:hover .map-city__label { + opacity: 1; + visibility: visible; + transform: translateX(-50%) translateY(0); + } + + .map-city__sign { + background: var(--city-sign-color-back); + color: var(--city-sign-color-font); + padding: 4px 8px; + border-radius: 4px; + font-size: 10px; + font-family: 'Inter', sans-serif; + font-weight: 600; + display: flex; align-items: center; gap: 6px; + box-shadow: 0 4px 10px rgba(0,0,0,0.5); + border: 1px solid rgba(255,255,255,0.2); + } + + .map-city__sign::before { content: attr(data-icon); font-size: 12px; } + + .map-city__sign::after { + content: ''; position: absolute; bottom: -4px; left: 50%; + transform: translateX(-50%); + border-left: 4px solid transparent; border-right: 4px solid transparent; + border-top: 4px solid var(--city-sign-color-back); + } + + @keyframes pulse-warning { + 0% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); } + 70% { box-shadow: 0 0 0 6px rgba(245, 158, 11, 0); } + 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); } + } +`; + +export default Mesto; \ No newline at end of file diff --git a/src/components/NavBar.jsx b/src/components/NavBar.jsx new file mode 100644 index 0000000..8ecc684 --- /dev/null +++ b/src/components/NavBar.jsx @@ -0,0 +1,188 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { Link, useNavigate, useLocation } from 'react-router-dom'; +import { motion } from 'framer-motion'; +import { Cpu, LogOut, User, MessageCircle } from 'lucide-react'; +import LightDark from './lightdark'; +import UserAvatar from './UserAvatar'; +import SupportChat from './SupportChat'; + +const navLinks = [ + { path: '/', label: 'ГЛАВНАЯ' }, + { path: '/about', label: 'О НАС' }, + { path: '/contact', label: 'КОНТАКТЫ' }, +]; + +const catalogLink = [ + { path: '/dashboard', label: 'КАТАЛОГ' } +]; + +const NavBar = ({ user, onLogin, onLogout }) => { + const [theme, setTheme] = useState(localStorage.getItem('theme') || 'dark'); + const [hoveredPath, setHoveredPath] = useState(null); + const [unreadCount, setUnreadCount] = useState(0); + const [isChatOpen, setIsChatOpen] = useState(false); + const navigate = useNavigate(); + const location = useLocation(); + + const isAdmin = user?.role === 'admin'; + const roleLabel = isAdmin ? 'ADMIN' : 'OPERATOR'; + const roleColorClass = isAdmin ? 'text-red-500' : 'text-[var(--accent-color)]'; + const adminColorClass = 'text-red-500'; + + // --- 1. ТАБЛИЦЫ ОБОРУДОВАНИЯ (ЧИСТЫЕ ПУТИ ДЛЯ ВСЕХ) --- + const equipmentLinks = [ + { path: '/hubs', label: 'ХАБЫ' }, + { path: '/cameras', label: 'КАМЕРЫ' }, + { path: '/lighting', label: 'СВЕТ' }, + { path: '/sensors', label: 'ДАТЧИКИ' }, + ]; + + // --- 2. ТАБЛИЦЫ УПРАВЛЕНИЯ (ТОЛЬКО АДМИНУ) --- + const adminManagementLinks = [ + { path: '/users', label: 'ПОЛЬЗОВАТЕЛИ' }, + { path: '/orders', label: 'ЗАКАЗЫ' }, + { path: '/messages', label: 'ЧАТЫ' }, + { path: '/admin/logs', label: 'ЛОГИ' }, + ]; + + useEffect(() => { + document.body.className = theme; + localStorage.setItem('theme', theme); + }, [theme]); + + useEffect(() => { + if (user) { + const checkUnread = async () => { + try { + const token = localStorage.getItem('token'); + const res = await axios.get(`https://diplomnexus.aptcloud.ru/messages/unread?email=${user.email}`, { + headers: { Authorization: `Bearer ${token}` } + }); + setUnreadCount(res.data.count); + } catch (e) {} + }; + checkUnread(); + const interval = setInterval(checkUnread, 5000); + return () => clearInterval(interval); + } + }, [user]); + + const toggleTheme = () => setTheme(theme === 'dark' ? 'light' : 'dark'); + + const renderMenu = (links) => ( +
+ {links.map((link) => ( + setHoveredPath(link.path)} + onMouseLeave={() => setHoveredPath(null)} + className="relative px-3 xl:px-4 py-3 text-[9px] xl:text-[10px] font-bold tracking-widest text-[var(--text-color)] transition-colors hover:text-[var(--accent-color)] uppercase z-10 whitespace-nowrap" + > + {link.label} + + {hoveredPath === link.path && ( + +
+
+ + )} + + {location.pathname === link.path && ( + + )} + + ))} +
+ ); + + return ( + <> + + + {user && setIsChatOpen(false)} user={user} />} + + ); +}; + +export default NavBar; diff --git a/src/components/Notebook.jsx b/src/components/Notebook.jsx new file mode 100644 index 0000000..58d0e5e --- /dev/null +++ b/src/components/Notebook.jsx @@ -0,0 +1,553 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Notebook = () => { + return ( + +
+
+
+
+
+
+
+
+ MacBook Air +
+ Layer 1 +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + ); +} + +const StyledWrapper = styled.div` + .macbook { + width: 150px; + height: 96px; + position: absolute; + left: 50%; + top: 50%; + margin: -85px 0 0 -78px; + perspective: 500px; + } + + .shadow { + position: absolute; + width: 60px; + height: 0px; + left: 40px; + top: 160px; + transform: rotateX(80deg) rotateY(0deg) rotateZ(0deg); + box-shadow: 0 0 60px 40px rgba(0,0,0,0.3); + animation: shadow infinite 7s ease; + } + + .inner { + z-index: 20; + position: absolute; + width: 150px; + height: 96px; + left: 0; + top: 0; + transform-style: preserve-3d; + transform: rotateX(-20deg) rotateY(0deg) rotateZ(0deg); + animation: rotate infinite 7s ease; + } + + .screen { + width: 150px; + height: 96px; + position: absolute; + left: 0; + bottom: 0; + border-radius: 7px; + background: #ddd; + transform-style: preserve-3d; + transform-origin: 50% 93px; + transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg); + animation: lid-screen infinite 7s ease; + background-image: linear-gradient(45deg, rgba(0,0,0,0.34) 0%,rgba(0,0,0,0) 100%); + background-position: left bottom; + background-size: 300px 300px; + box-shadow: inset 0 3px 7px rgba(255,255,255,0.5); + } + + .screen .logo { + position: absolute; + width: 20px; + height: 24px; + left: 50%; + top: 50%; + margin: -12px 0 0 -10px; + transform: rotateY(180deg) translateZ(0.1px); + } + + .screen .face-one { + width: 150px; + height: 96px; + position: absolute; + left: 0; + bottom: 0; + border-radius: 7px; + background: #d3d3d3; + transform: translateZ(2px); + background-image: linear-gradient(45deg,rgba(0,0,0,0.24) 0%,rgba(0,0,0,0) 100%); + } + + .screen .face-one .camera { + width: 3px; + height: 3px; + border-radius: 100%; + background: #000; + position: absolute; + left: 50%; + top: 4px; + margin-left: -1.5px; + } + + .screen .face-one .display { + width: 130px; + height: 74px; + margin: 10px; + background-color: #000; + background-size: 100% 100%; + border-radius: 1px; + position: relative; + box-shadow: inset 0 0 2px rgba(0,0,0,1); + } + + .screen .face-one .display .shade { + position: absolute; + left: 0; + top: 0; + width: 130px; + height: 74px; + background: linear-gradient(-135deg, rgba(255,255,255,0) 0%,rgba(255,255,255,0.1) 47%,rgba(255,255,255,0) 48%); + animation: screen-shade infinite 7s ease; + background-size: 300px 200px; + background-position: 0px 0px; + } + + .screen .face-one span { + position: absolute; + top: 85px; + left: 57px; + font-size: 6px; + color: #666 + } + + .macbody { + width: 150px; + height: 96px; + position: absolute; + left: 0; + bottom: 0; + border-radius: 7px; + background: #cbcbcb; + transform-style: preserve-3d; + transform-origin: 50% bottom; + transform: rotateX(-90deg); + animation: lid-macbody infinite 7s ease; + background-image: linear-gradient(45deg, rgba(0,0,0,0.24) 0%,rgba(0,0,0,0) 100%); + } + + .macbody .face-one { + width: 150px; + height: 96px; + position: absolute; + left: 0; + bottom: 0; + border-radius: 7px; + transform-style: preserve-3d; + background: #dfdfdf; + animation: lid-keyboard-area infinite 7s ease; + transform: translateZ(-2px); + background-image: linear-gradient(30deg, rgba(0,0,0,0.24) 0%,rgba(0,0,0,0) 100%); + } + + .macbody .touchpad { + width: 40px; + height: 31px; + position: absolute; + left: 50%; + top: 50%; + border-radius: 4px; + margin: -44px 0 0 -18px; + background: #cdcdcd; + background-image: linear-gradient(30deg, rgba(0,0,0,0.24) 0%,rgba(0,0,0,0) 100%); + box-shadow: inset 0 0 3px #888; + } + + .macbody .keyboard { + width: 130px; + height: 45px; + position: absolute; + left: 7px; + top: 41px; + border-radius: 4px; + transform-style: preserve-3d; + background: #cdcdcd; + background-image: linear-gradient(30deg, rgba(0,0,0,0.24) 0%,rgba(0,0,0,0) 100%); + box-shadow: inset 0 0 3px #777; + padding: 0 0 0 2px; + } + + .keyboard .key { + width: 6px; + height: 6px; + background: #444; + float: left; + margin: 1px; + transform: translateZ(-2px); + border-radius: 2px; + box-shadow: 0 -2px 0 #222; + animation: keys infinite 7s ease; + } + + .key.space { + width: 45px; + } + + .key.f { + height: 3px; + } + + .macbody .pad { + width: 5px; + height: 5px; + background: #333; + border-radius: 100%; + position: absolute; + } + + .pad.one { + left: 20px; + top: 20px; + } + + .pad.two { + right: 20px; + top: 20px; + } + + .pad.three { + right: 20px; + bottom: 20px; + } + + .pad.four { + left: 20px; + bottom: 20px; + } + + @keyframes rotate { + 0% { + transform: rotateX(-20deg) rotateY(0deg) rotateZ(0deg); + } + + 5% { + transform: rotateX(-20deg) rotateY(-20deg) rotateZ(0deg); + } + + 20% { + transform: rotateX(30deg) rotateY(200deg) rotateZ(0deg); + } + + 25% { + transform: rotateX(-60deg) rotateY(150deg) rotateZ(0deg); + } + + 60% { + transform: rotateX(-20deg) rotateY(130deg) rotateZ(0deg); + } + + 65% { + transform: rotateX(-20deg) rotateY(120deg) rotateZ(0deg); + } + + 80% { + transform: rotateX(-20deg) rotateY(375deg) rotateZ(0deg); + } + + 85% { + transform: rotateX(-20deg) rotateY(357deg) rotateZ(0deg); + } + + 87% { + transform: rotateX(-20deg) rotateY(360deg) rotateZ(0deg); + } + + 100% { + transform: rotateX(-20deg) rotateY(360deg) rotateZ(0deg); + } + } + + @keyframes lid-screen { + 0% { + transform: rotateX(0deg); + background-position: left bottom; + } + + 5% { + transform: rotateX(50deg); + background-position: left bottom; + } + + 20% { + transform: rotateX(-90deg); + background-position: -150px top; + } + + 25% { + transform: rotateX(15deg); + background-position: left bottom; + } + + 30% { + transform: rotateX(-5deg); + background-position: right top; + } + + 38% { + transform: rotateX(5deg); + background-position: right top; + } + + 48% { + transform: rotateX(0deg); + background-position: right top; + } + + 90% { + transform: rotateX(0deg); + background-position: right top; + } + + 100% { + transform: rotateX(0deg); + background-position: right center; + } + } + + @keyframes lid-macbody { + 0% { + transform: rotateX(-90deg); + } + + 50% { + transform: rotateX(-90deg); + } + + 100% { + transform: rotateX(-90deg); + } + } + + @keyframes lid-keyboard-area { + 0% { + background-color: #dfdfdf; + } + + 50% { + background-color: #bbb; + } + + 100% { + background-color: #dfdfdf; + } + } + + @keyframes screen-shade { + 0% { + background-position: -20px 0px; + } + + 5% { + background-position: -40px 0px; + } + + 20% { + background-position: 200px 0; + } + + 50% { + background-position: -200px 0; + } + + 80% { + background-position: 0px 0px; + } + + 85% { + background-position: -30px 0; + } + + 90% { + background-position: -20px 0; + } + + 100% { + background-position: -20px 0px; + } + } + + @keyframes keys { + 0% { + box-shadow: 0 -2px 0 #222; + } + + 5% { + box-shadow: 1 -1px 0 #222; + } + + 20% { + box-shadow: -1px 1px 0 #222; + } + + 25% { + box-shadow: -1px 1px 0 #222; + } + + 60% { + box-shadow: -1px 1px 0 #222; + } + + 80% { + box-shadow: 0 -2px 0 #222; + } + + 85% { + box-shadow: 0 -2px 0 #222; + } + + 87% { + box-shadow: 0 -2px 0 #222; + } + + 100% { + box-shadow: 0 -2px 0 #222; + } + } + + @keyframes shadow { + 0% { + transform: rotateX(80deg) rotateY(0deg) rotateZ(0deg); + box-shadow: 0 0 60px 40px rgba(0,0,0,0.3); + } + + 5% { + transform: rotateX(80deg) rotateY(10deg) rotateZ(0deg); + box-shadow: 0 0 60px 40px rgba(0,0,0,0.3); + } + + 20% { + transform: rotateX(30deg) rotateY(-20deg) rotateZ(-20deg); + box-shadow: 0 0 50px 30px rgba(0,0,0,0.3); + } + + 25% { + transform: rotateX(80deg) rotateY(-20deg) rotateZ(50deg); + box-shadow: 0 0 35px 15px rgba(0,0,0,0.1); + } + + 60% { + transform: rotateX(80deg) rotateY(0deg) rotateZ(-50deg) translateX(30px); + box-shadow: 0 0 60px 40px rgba(0,0,0,0.3); + } + + 100% { + box-shadow: 0 0 60px 40px rgba(0,0,0,0.3); + } + }`; + +export default Notebook; diff --git a/src/components/OsCore.jsx b/src/components/OsCore.jsx new file mode 100644 index 0000000..f9bc613 --- /dev/null +++ b/src/components/OsCore.jsx @@ -0,0 +1,102 @@ +import React from 'react'; +import styled from 'styled-components'; + +const OsCore = () => { + return ( + +
+
+
+
+
OS
+
+ + ); +} + +const StyledWrapper = styled.div` + .loader { + position: relative; + width: 150px; + height: 150px; + border-radius: 50%; + perspective: 800px; + display: flex; + justify-content: center; + align-items: center; + } + + .inner { + position: absolute; + box-sizing: border-box; + width: 100%; + height: 100%; + border-radius: 50%; + } + + /* Внешнее кольцо */ + .inner.one { + left: 0%; + top: 0%; + animation: rotate-one 1.5s linear infinite; + border-bottom: 4px solid var(--accent-color); + box-shadow: 0 0 10px var(--accent-color); + filter: drop-shadow(0 0 5px var(--accent-color)); + } + + /* Среднее кольцо */ + .inner.two { + right: 0%; + top: 0%; + animation: rotate-two 1.5s linear infinite; + border-right: 4px solid var(--text-color); + box-shadow: 0 0 10px var(--text-color); + opacity: 0.8; + } + + /* Внутреннее кольцо */ + .inner.three { + right: 0%; + bottom: 0%; + width: 70%; + height: 70%; + margin: 15%; /* Центрирование (100-70)/2 */ + animation: rotate-three 1.5s linear infinite; + border-top: 4px solid #a855f7; /* Purple */ + box-shadow: 0 0 10px #a855f7; + filter: drop-shadow(0 0 5px #a855f7); + } + + /* Текст в центре */ + .core-text { + font-family: monospace; + font-weight: 900; + font-size: 24px; + color: var(--text-color); + animation: pulse 2s infinite; + text-shadow: 0 0 10px var(--accent-color); + z-index: 10; + } + + @keyframes rotate-one { + 0% { transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg); } + 100% { transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg); } + } + + @keyframes rotate-two { + 0% { transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg); } + 100% { transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg); } + } + + @keyframes rotate-three { + 0% { transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg); } + 100% { transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg); } + } + + @keyframes pulse { + 0%, 100% { opacity: 1; transform: scale(1); } + 50% { opacity: 0.5; transform: scale(0.9); } + } +`; + +export default OsCore; \ No newline at end of file diff --git a/src/components/Pogoda.jsx b/src/components/Pogoda.jsx new file mode 100644 index 0000000..48364f3 --- /dev/null +++ b/src/components/Pogoda.jsx @@ -0,0 +1,161 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Pogoda = () => { + return ( + +
+ + {/* Верхняя часть: Основная инфо */} +
+
+ {/* SVG Иконка: Облачно с прояснениями */} + + + + +
+
+
18°C
+
Ангарск
+
Иркутская обл.
+
+
+ + {/* Нижняя часть: Детали (Раскрывается при наведении) */} +
+ +
+ + + + 78% + Влага +
+ +
+ + + + 4 м/с + Ветер +
+ +
+ + + + + 752 + мм рт.ст +
+ +
+
+
+ ); +} + +const StyledWrapper = styled.div` + /* Стили контейнера */ + .weather-card { + width: 200px; + height: 90px; /* Компактная высота по умолчанию */ + background: rgba(255, 255, 255, 0.9); + border-radius: 20px; + padding: 15px; + box-shadow: 0 10px 30px rgba(0,0,0,0.2); + border: 1px solid rgba(255,255,255,0.5); + transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); + overflow: hidden; + cursor: default; + display: flex; + flex-direction: column; + gap: 15px; + } + + /* При наведении карточка растет */ + .weather-card:hover { + height: 180px; + width: 220px; + transform: translateY(-10px); + background: #fff; + } + + /* Верхняя часть */ + .main-info { + display: flex; + align-items: center; + gap: 15px; + } + + .weather-icon { + width: 50px; + height: 50px; + } + + .text-container { + display: flex; + flex-direction: column; + } + + .temp { + font-size: 24px; + font-weight: 800; + color: #1e293b; + line-height: 1; + } + + .city { + font-size: 14px; + font-weight: 700; + color: #475569; + margin-top: 4px; + } + + .desc { + font-size: 10px; + color: #94a3b8; + } + + /* Детали (скрыты или сжаты по умолчанию) */ + .details { + display: flex; + justify-content: space-between; + opacity: 0; + transform: translateY(20px); + transition: all 0.3s ease; + border-top: 1px solid #e2e8f0; + padding-top: 15px; + } + + .weather-card:hover .details { + opacity: 1; + transform: translateY(0); + } + + .detail-item { + display: flex; + flex-direction: column; + align-items: center; + gap: 4px; + } + + .detail-icon { + width: 20px; + height: 20px; + } + + .detail-item span { + font-size: 12px; + font-weight: 700; + color: #334155; + } + + .detail-item small { + font-size: 9px; + color: #64748b; + } +`; + +export default Pogoda; diff --git a/src/components/Radar.jsx b/src/components/Radar.jsx new file mode 100644 index 0000000..5199f20 --- /dev/null +++ b/src/components/Radar.jsx @@ -0,0 +1,77 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Radar = () => { + return ( + +
+ +
+
+ ); +} + +const StyledWrapper = styled.div` + .loader { + position: relative; + width: 120px; + height: 120px; + background: var(--glass-bg); + border-radius: 50%; + box-shadow: 0 0 50px var(--shadow-color); + border: 1px solid var(--text-color); + opacity: 0.8; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + } + .loader::before { + content: ''; + position: absolute; + inset: 20px; + background: transparent; + border: 1px dashed var(--text-color); + opacity: 0.3; + border-radius: 50%; + } + .loader::after { + content: ''; + position: absolute; + width: 40px; + height: 40px; + border-radius: 50%; + border: 1px dashed var(--text-color); + opacity: 0.5; + } + .loader span { + position: absolute; + top: 50%; + left: 50%; + width: 50%; + height: 100%; + background: transparent; + transform-origin: top left; + animation: radar81 2s linear infinite; + border-top: 1px dashed var(--text-color); + } + .loader span::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: var(--accent-color); + transform-origin: top left; + transform: rotate(-55deg); + filter: blur(30px) drop-shadow(20px 20px 20px var(--accent-color)); + opacity: 0.6; + } + @keyframes radar81 { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } +`; + +export default Radar; diff --git a/src/components/Record.jsx b/src/components/Record.jsx new file mode 100644 index 0000000..27e9ae8 --- /dev/null +++ b/src/components/Record.jsx @@ -0,0 +1,102 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Button = () => { + return ( + +
+ +
+
+ ); +} + +const StyledWrapper = styled.div` + .btn-wrapper { + /* Масштабируем кнопку, чтобы она была компактной */ + transform: scale(0.7); + transform-origin: center right; + + --width: 120px; + --height: 50px; + --padding: 4px; + --border-radius: 30px; + --dot-size: 10px; + --btn-color: #202020; + --hue: 355deg; + --animation-duration: 1.2s; + + position: relative; + display: flex; + align-items: center; + justify-content: center; + width: var(--width); + height: var(--height); + border-radius: var(--border-radius); + border: none; + background-color: rgba(0,0,0,0.1); + box-shadow: 1px 1px 2px 0 rgba(255,255,255,0.1), 2px 2px 2px rgba(0,0,0,0.1) inset; + user-select: none; + z-index: 1; + } + + .btn { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 0; + width: calc(100% - 2 * var(--padding)); + height: calc(100% - 2 * var(--padding)); + border-radius: calc(var(--border-radius) - var(--padding)); + border: none; + cursor: pointer; + background: linear-gradient(rgba(255,255,255,0.1), rgba(0,0,0,0.1)), var(--btn-color); + box-shadow: 0 4px 8px rgba(0,0,0,0.3); + transition: all 0.2s ease; + z-index: 2; + } + + .btn-txt { + font-size: 14px; + font-weight: 800; + font-family: monospace; + letter-spacing: 1px; + color: #fff; + text-transform: uppercase; + } + + .dot { + position: relative; + width: var(--dot-size); + height: var(--dot-size); + border-radius: 50%; + background-color: #ff0000; + box-shadow: 0 0 10px #ff0000; + } + + /* Анимация пульсации */ + .pulse { + animation: pulse-red 1.5s infinite; + } + + @keyframes pulse-red { + 0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7); } + 70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(255, 0, 0, 0); } + 100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 0, 0, 0); } + } + + .btn:hover { + transform: translateY(-1px); + filter: brightness(1.2); + } + .btn:active { + transform: translateY(1px); + filter: brightness(0.9); + } +`; + +export default Button; diff --git a/src/components/Server.jsx b/src/components/Server.jsx new file mode 100644 index 0000000..05b5997 --- /dev/null +++ b/src/components/Server.jsx @@ -0,0 +1,171 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Server = () => { + return ( + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+ ); +} + +const StyledWrapper = styled.div` + .container_SevMini { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + } + + .Ghost { + transform: translate(0px, -25px); + z-index: -1; + animation: opacidad 4s infinite ease-in-out; + } + + @keyframes opacidad { + 0% { + opacity: 1; + scale: 1; + } + + 50% { + opacity: 0.5; + scale: 0.9; + } + + 100% { + opacity: 1; + scale: 1; + } + } + + @keyframes estroboscopico { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + } + + 51% { + opacity: 1; + } + + 100% { + opacity: 1; + } + } + + @keyframes rebote { + 0%, + 100% { + transform: translateY(0); + } + + 50% { + transform: translateY(-10px); + } + } + + @keyframes estroboscopico1 { + 0%, + 50%, + 100% { + fill: rgb(255, 95, 74); + } + + 25%, + 75% { + fill: rgb(16, 53, 115); + } + } + + @keyframes estroboscopico2 { + 0%, + 50%, + 100% { + fill: #17e300; + } + + 25%, + 75% { + fill: #17e300b4; + } + } + + .SevMini { + animation: rebote 4s infinite ease-in-out; + } + + #strobe_led1 { + animation: estroboscopico 0.5s infinite; + } + + #strobe_color1 { + animation: estroboscopico2 0.8s infinite; + } + + #strobe_color3 { + animation: estroboscopico1 0.8s infinite; + animation-delay: 3s; + }`; + +export default Server; diff --git a/src/components/Social.jsx b/src/components/Social.jsx new file mode 100644 index 0000000..df4ab6c --- /dev/null +++ b/src/components/Social.jsx @@ -0,0 +1,215 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Social = () => { + return ( + +
+ +
Социальные сети
+ +
+
+ ); +} + +const StyledWrapper = styled.div` + /* CSS Variables for colors */ + + .card { + position: relative; + /* Уменьшил размеры */ + width: 14em; + height: 18em; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + /* Адаптивный фон и цвет текста */ + background-color: var(--card-bg); + color: var(--text-color); + border: 1px solid var(--glass-border); + font-family: Montserrat, sans-serif; + font-weight: bold; + padding: 1em; + border-radius: 20px; + overflow: hidden; + z-index: 1; + row-gap: 0.8em; + } + + .card img { + /* Уменьшил картинку */ + width: 8em; + margin-right: 0.5em; + animation: move 10s ease-in-out infinite; + z-index: 5; + } + + .icons svg { + width: 18px; + height: 18px; + } + + /* Гравитация и фон (тут используем переменные для теней) */ + .card::before { + content: ""; + position: absolute; + width: 100%; + height: 100%; + inset: -3px; + border-radius: 10px; + background: radial-gradient(var(--text-color), transparent, transparent); + opacity: 0.1; + transform: translate(-5px, 250px); + transition: 0.4s ease-in-out; + z-index: -1; + } + .card:hover::before { + width: 150%; + height: 100%; + margin-left: -4.25em; + opacity: 0.1; + } + .card::after { + content: ""; + position: absolute; + inset: 2px; + border-radius: 20px; + background: var(--card-bg); + opacity: 0.9; + transition: all 0.4s ease-in-out; + z-index: -1; + } + + .heading { + z-index: 2; + transition: 0.4s ease-in-out; + font-size: 0.9em; + text-align: center; + } + + /* ЗВЕЗДЫ (ТЕНИ) - заменяем #fff на var(--text-color) */ + .heading::before { + content: ""; + position: absolute; + top: 0; left: 0; width: 2px; height: 2px; + border-radius: 50%; + opacity: 0.5; + /* Генерируем "звезды" используя цвет текста (белый в темной теме, черный в светлой) */ + box-shadow: + 220px 118px var(--text-color), 280px 176px var(--text-color), 40px 50px var(--text-color), + 60px 180px var(--text-color), 120px 130px var(--text-color), 180px 176px var(--text-color), + 220px 290px var(--text-color), 520px 250px var(--text-color), 400px 220px var(--text-color), + 50px 350px var(--text-color), 10px 230px var(--text-color); + z-index: -1; + transition: 1s ease; + animation: 1s glowing-stars linear alternate infinite; + } + + /* Другие слои звезд */ + .icons::before { + content: ""; position: absolute; top: 0; left: 0; width: 2px; height: 2px; + border-radius: 50%; opacity: 0.5; + box-shadow: + 140px 20px var(--text-color), 425px 20px var(--text-color), 70px 120px var(--text-color), + 20px 130px var(--text-color), 110px 80px var(--text-color), 280px 80px var(--text-color); + z-index: -1; + transition: 1.5s ease; + animation: 1s glowing-stars linear alternate infinite; + animation-delay: 0.4s; + } + + /* Анимации и эффекты при наведении и нажатии */ + .card:hover .heading::before, + .card:hover .icons::before { + filter: blur(3px); + } + + .heading::after { + content: ""; + top: -8.5%; left: -8.5%; position: absolute; + width: 7.5em; height: 7.5em; + border-radius: 50%; + background: var(--bg-color); + box-shadow: 0px 0px 100px var(--accent-color), inset var(--accent-color) 0px 0px 40px -12px; + opacity: 0.2; + transition: 0.4s ease-in-out; + z-index: -1; + } + .card:hover .heading::after { + box-shadow: 0px 0px 200px var(--accent-color), inset var(--accent-color) 0px 0px 40px -12px; + opacity: 0.6; + } + + .icons { + display: flex; align-items: center; justify-content: center; + flex-direction: row; column-gap: 1em; z-index: 1; + } + + .instagram, .x, .discord { + position: relative; transition: 0.4s ease-in-out; + color: var(--text-color); + } + + .instagram:after, .x:after, .discord:after { + content: ""; position: absolute; width: 0.5em; height: 0.5em; left: 0; + background-color: var(--text-color); + box-shadow: 0px 0px 10px var(--shadow-color); + border-radius: 50%; z-index: -1; transition: 0.3s ease-in-out; + } + + .instagram svg path, .x svg path, .discord svg path { + stroke: var(--text-color); opacity: 0.7; transition: 0.4s ease-in-out; + } + .instagram:hover svg path { stroke: #cc39a4; opacity: 1; } + .x:hover svg path { stroke: var(--text-color); opacity: 1; } + .discord:hover svg path { stroke: #8c9eff; opacity: 1; } + + .instagram:hover svg { scale: 1.4; } + .x:hover svg, .discord:hover svg { scale: 1.25; } + + .instagram:hover:after, .x:hover:after, .discord:hover:after { + scale: 4; transform: translateX(0.09em) translateY(0.09em); + } + + /* Shooting stars logic changed to adapt variables */ + @keyframes shootingStar { + 0% { transform: translateX(0) translateY(0); opacity: 1; } + 50% { transform: translateX(-55em) translateY(0); opacity: 1; } + 70% { transform: translateX(-70em) translateY(0); opacity: 0; } + 100% { transform: translateX(0) translateY(0); opacity: 0; } + } + + @keyframes move { + 0% { transform: translateX(0em) translateY(0em); } + 25% { transform: translateY(-1em) translateX(-1em); rotate: -10deg; } + 50% { transform: translateY(1em) translateX(-1em); } + 75% { transform: translateY(-1.25em) translateX(1em); rotate: 10deg; } + 100% { transform: translateX(0em) translateY(0em); } + } + + @keyframes glowing-stars { + 0% { opacity: 0; } + 50% { opacity: 1; } + 100% { opacity: 0; } + } +`; + +export default Social; diff --git a/src/components/Status.jsx b/src/components/Status.jsx new file mode 100644 index 0000000..39c977f --- /dev/null +++ b/src/components/Status.jsx @@ -0,0 +1,89 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Status = ({ status, date }) => { + // Определяем активный шаг на основе статуса + const getStatusIndex = (s) => { + if (s === 'new') return 1; + if (s === 'processing') return 2; + if (s === 'shipping') return 3; + if (s === 'completed') return 4; + return 0; + }; + + const currentStep = getStatusIndex(status || 'new'); + + return ( + +
+ {/* STEP 1: PLACED */} +
1 ? 'stepper-completed' : currentStep === 1 ? 'stepper-active' : 'stepper-pending'}`}> +
{currentStep > 1 ? '✓' : '1'}
+
+
+
Размещен
+
{currentStep > 1 ? 'Готово' : currentStep === 1 ? 'Сейчас' : 'Ожидание'}
+
{date || '---'}
+
+
+ + {/* STEP 2: PROCESSING */} +
2 ? 'stepper-completed' : currentStep === 2 ? 'stepper-active' : 'stepper-pending'}`}> +
{currentStep > 2 ? '✓' : '2'}
+
+
+
В обработке
+
{currentStep > 2 ? 'Готово' : currentStep === 2 ? 'В работе' : 'Ожидание'}
+
+
+ + {/* STEP 3: SHIPPING */} +
3 ? 'stepper-completed' : currentStep === 3 ? 'stepper-active' : 'stepper-pending'}`}> +
{currentStep > 3 ? '✓' : '3'}
+
+
Доставка / Установка
+
{currentStep > 3 ? 'Готово' : currentStep === 3 ? 'В пути' : 'Ожидание'}
+
+
+
+ + ); +} + +const StyledWrapper = styled.div` + .stepper-box { + background-color: var(--card-bg, #1e293b); + border: 1px solid var(--glass-border, rgba(255,255,255,0.1)); + border-radius: 12px; + padding: 20px; + width: 100%; + color: var(--text-color, #fff); + } + + .stepper-step { display: flex; margin-bottom: 20px; position: relative; } + .stepper-step:last-child { margin-bottom: 0; } + + .stepper-line { + position: absolute; left: 15px; top: 35px; bottom: -25px; width: 2px; + background-color: rgba(255,255,255,0.1); z-index: 1; + } + .stepper-step:last-child .stepper-line { display: none; } + + .stepper-circle { + width: 32px; height: 32px; border-radius: 50%; + display: flex; align-items: center; justify-content: center; + margin-right: 16px; z-index: 2; font-weight: bold; font-size: 14px; + transition: all 0.3s; + } + + .stepper-completed .stepper-circle { background-color: #22c55e; color: white; } + .stepper-active .stepper-circle { border: 2px solid #3b82f6; color: #3b82f6; background: rgba(59, 130, 246, 0.1); } + .stepper-pending .stepper-circle { border: 2px solid #64748b; color: #64748b; } + + .stepper-content { flex: 1; } + .stepper-title { font-weight: 600; font-size: 14px; margin-bottom: 2px; } + .stepper-status { font-size: 12px; opacity: 0.7; } + .stepper-time { font-size: 11px; opacity: 0.5; margin-top: 2px; } +`; + +export default Status; diff --git a/src/components/SupportChat.jsx b/src/components/SupportChat.jsx new file mode 100644 index 0000000..1aba846 --- /dev/null +++ b/src/components/SupportChat.jsx @@ -0,0 +1,295 @@ +import React, { useState, useEffect, useRef } from 'react'; +import axios from 'axios'; +import { Send, X, MessageSquare, User, Shield, RefreshCw, Check, CheckCheck } from 'lucide-react'; +import { motion, AnimatePresence } from 'framer-motion'; + +const API_URL = 'https://diplomnexus.aptcloud.ru'; + +const SupportChat = ({ isOpen, onClose, user }) => { + const [messages, setMessages] = useState([]); + const [newMessage, setNewMessage] = useState(''); + + // Для админа - список пользователей, написавших сообщения + const [uniqueSenders, setUniqueSenders] = useState([]); + const [selectedEmail, setSelectedEmail] = useState(null); // Фильтр для админа (выбранный чат) + const [loading, setLoading] = useState(false); + + // Проверка прав админа (по роли или имени) + const isAdmin = user?.role === 'admin' || user?.name === 'seth1nk' || user?.name === 'SuperAdmin'; + + const messagesEndRef = useRef(null); + + // --- ЗАГРУЗКА СООБЩЕНИЙ --- + const fetchMessages = async () => { + try { + const token = localStorage.getItem('token'); + + // Если админ - загружаем все сообщения + if (isAdmin) { + const res = await axios.get(`${API_URL}/messages`, { + headers: { Authorization: `Bearer ${token}` } + }); + const allMsgs = res.data; + setMessages(allMsgs); + + // Извлекаем уникальных отправителей для списка контактов + // (фильтруем тех, кто писал, исключая админские ответы) + const senders = []; + const seen = new Set(); + + allMsgs.forEach(m => { + // Если сообщение от юзера (не админ) и мы его еще не видели + if (!m.is_admin && m.email && !seen.has(m.email)) { + seen.add(m.email); + senders.push({ name: m.user_name, email: m.email }); + } + }); + setUniqueSenders(senders); + } + // Если обычный юзер - загружаем только его сообщения (фильтр на сервере по email) + else { + const res = await axios.get(`${API_URL}/messages?email=${user.email}`, { + headers: { Authorization: `Bearer ${token}` } + }); + setMessages(res.data); + + // Если чат открыт, помечаем сообщения от админа как прочитанные + if (isOpen) { + await axios.post(`${API_URL}/messages/read`, { email: user.email }, { + headers: { Authorization: `Bearer ${token}` } + }); + } + } + } catch (e) { + console.error("Ошибка загрузки сообщений:", e); + } + }; + + // Автообновление сообщений каждые 3 секунды + useEffect(() => { + if (isOpen) { + fetchMessages(); + const interval = setInterval(fetchMessages, 3000); + return () => clearInterval(interval); + } + }, [isOpen, isAdmin, user]); + + // Скролл вниз при новом сообщении + useEffect(() => { + messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); + }, [messages, selectedEmail, isOpen]); + + // --- ОТПРАВКА СООБЩЕНИЯ --- + const handleSendMessage = async (e) => { + e.preventDefault(); + if (!newMessage.trim()) return; + + setLoading(true); + try { + // Если пишет АДМИН -> используем специальный эндпоинт ответа (эмуляция ответа бота) + // Или используем /contact, но сервер должен понять, что это админ. + // В текущей реализации сервера /contact всегда ставит is_admin = FALSE. + // Поэтому для админа лучше использовать /api/bot/reply (как будто бот ответил), + // ЧТОБЫ СОХРАНИЛОСЬ КАК is_admin = TRUE. + + if (isAdmin && selectedEmail) { + await axios.post(`${API_URL}/api/bot/reply`, { + email: selectedEmail, + text: newMessage + }); + } else { + // Если пишет ЮЗЕР + await axios.post(`${API_URL}/contact`, { + name: user.name, + email: user.email, + message: newMessage + }); + } + + setNewMessage(''); + fetchMessages(); // Обновляем список сразу + } catch (error) { + console.error('Ошибка отправки:', error); + } finally { + setLoading(false); + } + }; + + // --- ФИЛЬТРАЦИЯ СООБЩЕНИЙ ДЛЯ ОТОБРАЖЕНИЯ --- + // Если админ: показываем только сообщения выбранного юзера (и ответы ему) + // Если юзер: показываем все загруженные (они уже отфильтрованы сервером) + const displayedMessages = isAdmin + ? (selectedEmail ? messages.filter(m => m.email === selectedEmail) : []) + : messages; + + return ( + + {isOpen && ( + + {/* --- HEADER --- */} +
+
+ +

+ {isAdmin ? 'ПАНЕЛЬ ПОДДЕРЖКИ' : 'ЧАТ С ПОДДЕРЖКОЙ'} +

+
+
+ + +
+
+ + {/* --- BODY --- */} +
+ + {/* --- СПИСОК ЮЗЕРОВ (ТОЛЬКО ДЛЯ АДМИНА) --- */} + {isAdmin && !selectedEmail && ( +
+

Входящие обращения

+ + {uniqueSenders.length === 0 && ( +
+ +

Сообщений нет

+
+ )} + + {uniqueSenders.map((u) => ( +
setSelectedEmail(u.email)} + className="p-3 glass rounded-xl cursor-pointer hover:bg-[var(--accent-color)]/10 transition-colors flex items-center gap-3 border border-[var(--glass-border)] group" + > +
+ {u.name ? u.name[0].toUpperCase() : '?'} +
+
+
+ {u.name} + Открыть +
+
{u.email}
+
+
+ ))} +
+ )} + + {/* --- ОКНО ЧАТА --- */} + {(!isAdmin || selectedEmail) && ( +
+ + {/* Кнопка "Назад" для админа */} + {isAdmin && ( + + )} + +
+ {displayedMessages.length === 0 && ( +
+
+ +
+

Напишите нам!

+

Мы ответим в ближайшее время. История сохраняется.

+
+ )} + + {displayedMessages.map((msg) => { + // ОПРЕДЕЛЯЕМ КТО ПИСАЛ + // is_admin=true -> Поддержка + // is_admin=false -> Юзер + + // Если я Админ -> Мои сообщения это is_admin=true + // Если я Юзер -> Мои сообщения это is_admin=false + const isMe = isAdmin ? msg.is_admin : !msg.is_admin; + + return ( +
+
+ {/* Имя отправителя (если не я) */} + {!isMe && ( +

+ {msg.is_admin ? 'Поддержка' : msg.user_name} +

+ )} + +

{msg.text}

+ + {/* Время и Галочки */} +
+ + {new Date(msg.created_at).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'})} + + + {/* Галочки показываем только для СВОИХ сообщений */} + {isMe && ( + msg.is_read + ? // Прочитано (Синие) + : // Отправлено (Серые/Черные) + )} +
+
+
+ ); + })} +
+
+ + {/* --- INPUT --- */} +
+ setNewMessage(e.target.value)} + placeholder="Введите сообщение..." + disabled={isAdmin && !selectedEmail} // Админ не может писать, не выбрав чат + className="flex-1 bg-[var(--input-bg)] border border-[var(--glass-border)] rounded-xl px-4 py-3 text-sm text-[var(--text-color)] focus:border-[var(--accent-color)] outline-none transition-all disabled:opacity-50 disabled:cursor-not-allowed" + /> + +
+
+ )} +
+ + )} + + ); +}; + +export default SupportChat; diff --git a/src/components/Telephone.jsx b/src/components/Telephone.jsx new file mode 100644 index 0000000..7171419 --- /dev/null +++ b/src/components/Telephone.jsx @@ -0,0 +1,136 @@ +import React from 'react'; +import styled from 'styled-components'; + +const Telephone = () => { + return ( + +
+
+
+
+
+ + ); +} + +const StyledWrapper = styled.div` + /* Добавил стили для контейнера, чтобы уменьшить весь блок */ + .container { + position: relative; + width: 100px; /* Ограничиваем место, которое занимает блок */ + height: 100px; + display: flex; + align-items: center; + justify-content: center; + transform: scale(0.6); /* Уменьшаем визуально до 60% */ + transform-origin: center center; + } + + .loader { + position: absolute; + top: 50%; + left: 50%; + z-index: 10; + width: 160px; + height: 100px; + margin-left: -80px; + margin-top: -50px; + border-radius: 5px; + background: #1e3f57; + animation: dot1_ 3s cubic-bezier(0.55,0.3,0.24,0.99) infinite; + } + + .loader:nth-child(2) { + z-index: 11; + width: 150px; + height: 90px; + margin-top: -45px; + margin-left: -75px; + border-radius: 3px; + background: #3c517d; + animation-name: dot2_; + } + + .loader:nth-child(3) { + z-index: 12; + width: 40px; + height: 20px; + margin-top: 50px; + margin-left: -20px; + border-radius: 0 0 5px 5px; + background: #6bb2cd; + animation-name: dot3_; + } + + @keyframes dot1_ { + 3%,97% { + width: 160px; + height: 100px; + margin-top: -50px; + margin-left: -80px; + } + + 30%,36% { + width: 80px; + height: 120px; + margin-top: -60px; + margin-left: -40px; + } + + 63%,69% { + width: 40px; + height: 80px; + margin-top: -40px; + margin-left: -20px; + } + } + + @keyframes dot2_ { + 3%,97% { + height: 90px; + width: 150px; + margin-left: -75px; + margin-top: -45px; + } + + 30%,36% { + width: 70px; + height: 96px; + margin-left: -35px; + margin-top: -48px; + } + + 63%,69% { + width: 32px; + height: 60px; + margin-left: -16px; + margin-top: -30px; + } + } + + @keyframes dot3_ { + 3%,97% { + height: 20px; + width: 40px; + margin-left: -20px; + margin-top: 50px; + } + + 30%,36% { + width: 8px; + height: 8px; + margin-left: -5px; + margin-top: 49px; + border-radius: 8px; + } + + 63%,69% { + width: 16px; + height: 4px; + margin-left: -8px; + margin-top: -37px; + border-radius: 10px; + } + }`; + +export default Telephone; diff --git a/src/components/UserAvatar.jsx b/src/components/UserAvatar.jsx new file mode 100644 index 0000000..eac5fea --- /dev/null +++ b/src/components/UserAvatar.jsx @@ -0,0 +1,29 @@ +import React from 'react'; +import { User } from 'lucide-react'; + +const UserAvatar = ({ user, className }) => { + // 1. Если есть фото от Google — показываем его (круглое) + if (user.picture) { + return ( + {user.name} + ); + } + + // 2. Если фото нет — показываем простую заглушку (как ты просил) + return ( +
+ {/* Иконка человека, залитая цветом (fill) */} + +
+ ); +}; + +export default UserAvatar; \ No newline at end of file diff --git a/src/components/google.jsx b/src/components/google.jsx new file mode 100644 index 0000000..39d9de0 --- /dev/null +++ b/src/components/google.jsx @@ -0,0 +1,53 @@ +import React from 'react'; +import styled from 'styled-components'; + +const GoogleButton = ({ onClick }) => { + return ( + + + + ); +} + +const StyledWrapper = styled.div` + width: 100%; + + .button { + width: 100%; + max-width: 100%; + display: flex; + padding: 0.5rem 1.4rem; + font-size: 0.875rem; + line-height: 1.25rem; + font-weight: 700; + text-align: center; + text-transform: uppercase; + vertical-align: middle; + align-items: center; + justify-content: center; + border-radius: 0.5rem; + border: 1px solid rgba(0, 0, 0, 0.25); + gap: 0.75rem; + color: rgb(65, 63, 63); + background-color: #fff; + cursor: pointer; + transition: all .6s ease; + } + + .button svg { + height: 24px; + } + + .button:hover { + transform: scale(1.02); + }`; + +export default GoogleButton; diff --git a/src/components/lightdark.jsx b/src/components/lightdark.jsx new file mode 100644 index 0000000..b17ae6d --- /dev/null +++ b/src/components/lightdark.jsx @@ -0,0 +1,125 @@ +import React from 'react'; +import styled from 'styled-components'; + +const LightDark = ({ toggleTheme, isLight }) => { + return ( + + + + ); +} + +const StyledWrapper = styled.div` + /* УВЕЛИЧИЛ МАСШТАБ */ + transform: scale(0.6); + transform-origin: center; + + .bb8-toggle { + --toggle-size: 16px; + --toggle-width: 10.625em; + --toggle-height: 5.625em; + --toggle-offset: calc((var(--toggle-height) - var(--bb8-diameter)) / 2); + --toggle-bg: linear-gradient(#2c4770, #070e2b 35%, #628cac 50% 70%, #a6c5d4) no-repeat; + --bb8-diameter: 4.375em; + --radius: 99em; + --transition: 0.4s; + --accent: #de7d2f; + --bb8-bg: #fff; + } + + /* ... (Остальной CSS код с Uiverse без изменений, он верный) ... */ + /* Скопируй весь CSS из твоего сообщения сюда, он большой, но я его проверил - рабочий */ + .bb8-toggle, .bb8-toggle *, .bb8-toggle *::before, .bb8-toggle *::after { box-sizing: border-box; } + .bb8-toggle { cursor: pointer; margin-top: var(--margin-top-for-head); font-size: var(--toggle-size); } + .bb8-toggle__checkbox { appearance: none; display: none; } + .bb8-toggle__container { width: var(--toggle-width); height: var(--toggle-height); background: var(--toggle-bg); background-size: 100% 11.25em; background-position-y: -5.625em; border-radius: var(--radius); position: relative; transition: var(--transition); } + .bb8 { display: flex; flex-direction: column; align-items: center; position: absolute; top: calc(var(--toggle-offset) - 1.688em + 0.188em); left: var(--toggle-offset); transition: var(--transition); z-index: 2; } + .bb8__head-container { position: relative; transition: var(--transition); z-index: 2; transform-origin: 1.25em 3.75em; } + .bb8__head { overflow: hidden; margin-bottom: -0.188em; width: 2.5em; height: 1.688em; background: linear-gradient(transparent 0.063em, dimgray 0.063em 0.313em, transparent 0.313em 0.375em, var(--accent) 0.375em 0.5em, transparent 0.5em 1.313em, silver 1.313em 1.438em, transparent 1.438em), linear-gradient(45deg, transparent 0.188em, var(--bb8-bg) 0.188em 1.25em, transparent 1.25em), linear-gradient(-45deg, transparent 0.188em, var(--bb8-bg) 0.188em 1.25em, transparent 1.25em), linear-gradient(var(--bb8-bg) 1.25em, transparent 1.25em); border-radius: var(--radius) var(--radius) 0 0; position: relative; z-index: 1; filter: drop-shadow(0 0.063em 0.125em gray); } + .bb8__head::before { content: ""; position: absolute; width: 0.563em; height: 0.563em; background: radial-gradient(0.125em circle at 0.25em 0.375em, red, transparent), radial-gradient(0.063em circle at 0.375em 0.188em, var(--bb8-bg) 50%, transparent 100%), linear-gradient(45deg, #000 0.188em, dimgray 0.313em 0.375em, #000 0.5em); border-radius: var(--radius); top: 0.413em; left: 50%; transform: translate(-50%); box-shadow: 0 0 0 0.089em lightgray, 0.563em 0.281em 0 -0.148em, 0.563em 0.281em 0 -0.1em var(--bb8-bg), 0.563em 0.281em 0 -0.063em; z-index: 1; transition: var(--transition); } + .bb8__head::after { content: ""; position: absolute; bottom: 0.375em; left: 0; width: 100%; height: 0.188em; background: linear-gradient(to right, var(--accent) 0.125em, transparent 0.125em 0.188em, var(--accent) 0.188em 0.313em, transparent 0.313em 0.375em, var(--accent) 0.375em 0.938em, transparent 0.938em 1em, var(--accent) 1em 1.125em, transparent 1.125em 1.875em, var(--accent) 1.875em 2em, transparent 2em 2.063em, var(--accent) 2.063em 2.25em, transparent 2.25em 2.313em, var(--accent) 2.313em 2.375em, transparent 2.375em 2.438em, var(--accent) 2.438em); transition: var(--transition); } + .bb8__antenna { position: absolute; transform: translateY(-90%); width: 0.059em; border-radius: var(--radius) var(--radius) 0 0; transition: var(--transition); } + .bb8__antenna:nth-child(1) { height: 0.938em; right: 0.938em; background: linear-gradient(#000 0.188em, silver 0.188em); } + .bb8__antenna:nth-child(2) { height: 0.375em; left: 50%; transform: translate(-50%, -90%); background: silver; } + .bb8__body { width: 4.375em; height: 4.375em; background: var(--bb8-bg); border-radius: var(--radius); position: relative; overflow: hidden; transition: var(--transition); z-index: 1; transform: rotate(45deg); background: linear-gradient(-90deg, var(--bb8-bg) 4%, var(--accent) 4% 10%, transparent 10% 90%, var(--accent) 90% 96%, var(--bb8-bg) 96%), linear-gradient(var(--bb8-bg) 4%, var(--accent) 4% 10%, transparent 10% 90%, var(--accent) 90% 96%, var(--bb8-bg) 96%), linear-gradient(to right, transparent 2.156em, silver 2.156em 2.219em, transparent 2.188em), linear-gradient(transparent 2.156em, silver 2.156em 2.219em, transparent 2.188em); background-color: var(--bb8-bg); } + .bb8__body::after { content: ""; bottom: 1.5em; left: 0.563em; position: absolute; width: 0.188em; height: 0.188em; background: rgb(236, 236, 236); color: rgb(236, 236, 236); border-radius: 50%; box-shadow: 0.875em 0.938em, 0 -1.25em, 0.875em -2.125em, 2.125em -2.125em, 3.063em -1.25em, 3.063em 0, 2.125em 0.938em; } + .bb8__body::before { content: ""; width: 2.625em; height: 2.625em; position: absolute; border-radius: 50%; z-index: 0.1; overflow: hidden; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 0.313em solid var(--accent); background: radial-gradient(1em circle at center, rgb(236, 236, 236) 50%, transparent 51%), radial-gradient(1.25em circle at center, var(--bb8-bg) 50%, transparent 51%), linear-gradient(-90deg, transparent 42%, var(--accent) 42% 58%, transparent 58%), linear-gradient(var(--bb8-bg) 42%, var(--accent) 42% 58%, var(--bb8-bg) 58%); } + .artificial__hidden { position: absolute; border-radius: inherit; inset: 0; pointer-events: none; overflow: hidden; } + .bb8__shadow { content: ""; width: var(--bb8-diameter); height: 20%; border-radius: 50%; background: #3a271c; box-shadow: 0.313em 0 3.125em #3a271c; opacity: 0.25; position: absolute; bottom: 0; left: calc(var(--toggle-offset) - 0.938em); transition: var(--transition); transform: skew(-70deg); z-index: 1; } + .bb8-toggle__scenery { width: 100%; height: 100%; pointer-events: none; overflow: hidden; position: relative; border-radius: inherit; } + .bb8-toggle__scenery::before { content: ""; position: absolute; width: 100%; height: 30%; bottom: 0; background: #b18d71; z-index: 1; } + .bb8-toggle__cloud { z-index: 1; position: absolute; border-radius: 50%; } + .bb8-toggle__cloud:nth-last-child(1) { width: 0.875em; height: 0.625em; filter: blur(0.125em) drop-shadow(0.313em 0.313em #ffffffae) drop-shadow(-0.625em 0 #fff) drop-shadow(-0.938em -0.125em #fff); right: 1.875em; top: 2.813em; background: linear-gradient(to top right, #ffffffae, #ffffffae); transition: var(--transition); } + .bb8-toggle__cloud:nth-last-child(2) { top: 0.625em; right: 4.375em; width: 0.875em; height: 0.375em; background: #dfdedeae; filter: blur(0.125em) drop-shadow(-0.313em -0.188em #e0dfdfae) drop-shadow(-0.625em -0.188em #bbbbbbae) drop-shadow(-1em 0.063em #cfcfcfae); transition: 0.6s; } + .bb8-toggle__cloud:nth-last-child(3) { top: 1.25em; right: 0.938em; width: 0.875em; height: 0.375em; background: #ffffffae; filter: blur(0.125em) drop-shadow(0.438em 0.188em #ffffffae) drop-shadow(-0.625em 0.313em #ffffffae); transition: 0.8s; } + .gomrassen, .hermes, .chenini { position: absolute; border-radius: var(--radius); background: linear-gradient(#fff, #6e8ea2); top: 100%; } + .gomrassen { left: 0.938em; width: 1.875em; height: 1.875em; box-shadow: 0 0 0.188em #ffffff52, 0 0 0.188em #6e8ea24b; transition: var(--transition); } + .gomrassen::before, .gomrassen::after { content: ""; position: absolute; border-radius: inherit; box-shadow: inset 0 0 0.063em rgb(140, 162, 169); background: rgb(184, 196, 200); } + .gomrassen::before { left: 0.313em; top: 0.313em; width: 0.438em; height: 0.438em; } .gomrassen::after { width: 0.25em; height: 0.25em; left: 1.25em; top: 0.75em; } + .hermes { left: 3.438em; width: 0.625em; height: 0.625em; box-shadow: 0 0 0.125em #ffffff52, 0 0 0.125em #6e8ea24b; transition: 0.6s; } + .chenini { left: 4.375em; width: 0.5em; height: 0.5em; box-shadow: 0 0 0.125em #ffffff52, 0 0 0.125em #6e8ea24b; transition: 0.8s; } + .tatto-1, .tatto-2 { position: absolute; width: 1.25em; height: 1.25em; border-radius: var(--radius); } + .tatto-1 { background: #fefefe; right: 3.125em; top: 0.625em; box-shadow: 0 0 0.438em #fdf4e1; transition: var(--transition); } + .tatto-2 { background: linear-gradient(#e6ac5c, #d75449); right: 1.25em; top: 2.188em; box-shadow: 0 0 0.438em #e6ad5c3d, 0 0 0.438em #d755494f; transition: 0.7s; } + .bb8-toggle__star { position: absolute; width: 0.063em; height: 0.063em; background: #fff; border-radius: var(--radius); filter: drop-shadow(0 0 0.063em #fff); color: #fff; top: 100%; } + .bb8-toggle__star:nth-child(1) { left: 3.75em; box-shadow: 1.25em 0.938em, -1.25em 2.5em, 0 1.25em, 1.875em 0.625em, -3.125em 1.875em, 1.25em 2.813em; transition: 0.2s; } + .bb8-toggle__star:nth-child(2) { left: 4.688em; box-shadow: 0.625em 0, 0 0.625em, -0.625em -0.625em, 0.625em 0.938em, -3.125em 1.25em, 1.25em -1.563em; transition: 0.3s; } + .bb8-toggle__star:nth-child(3) { left: 5.313em; box-shadow: -0.625em -0.625em, -2.188em 1.25em, -2.188em 0, -3.75em -0.625em, -3.125em -0.625em, -2.5em -0.313em, 0.75em -0.625em; transition: var(--transition); } + .bb8-toggle__star:nth-child(4) { left: 1.875em; width: 0.125em; height: 0.125em; transition: 0.5s; } + .bb8-toggle__star:nth-child(5) { left: 5em; width: 0.125em; height: 0.125em; transition: 0.6s; } + .bb8-toggle__star:nth-child(6) { left: 2.5em; width: 0.125em; height: 0.125em; transition: 0.7s; } + .bb8-toggle__star:nth-child(7) { left: 3.438em; width: 0.125em; height: 0.125em; transition: 0.8s; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(1) { top: 0.625em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(2) { top: 1.875em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(3) { top: 1.25em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(4) { top: 3.438em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(5) { top: 3.438em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(6) { top: 0.313em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__star:nth-child(7) { top: 1.875em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8-toggle__cloud { right: -100%; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .gomrassen { top: 0.938em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .hermes { top: 2.5em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .chenini { top: 2.75em; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container { background-position-y: 0; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .tatto-1 { top: 100%; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .tatto-2 { top: 100%; } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8 { left: calc(100% - var(--bb8-diameter) - var(--toggle-offset)); } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8__shadow { left: calc(100% - var(--bb8-diameter) - var(--toggle-offset) + 0.938em); transform: skew(70deg); } + .bb8-toggle__checkbox:checked + .bb8-toggle__container .bb8__body { transform: rotate(225deg); } + .bb8-toggle__checkbox:hover + .bb8-toggle__container .bb8__head::before { left: 100%; } + .bb8-toggle__checkbox:not(:checked):hover + .bb8-toggle__container .bb8__antenna:nth-child(1) { right: 1.5em; } + .bb8-toggle__checkbox:hover + .bb8-toggle__container .bb8__antenna:nth-child(2) { left: 0.938em; } + .bb8-toggle__checkbox:hover + .bb8-toggle__container .bb8__head::after { background-position: 1.375em 0; } + .bb8-toggle__checkbox:checked:hover + .bb8-toggle__container .bb8__head::before { left: 0; } + .bb8-toggle__checkbox:checked:hover + .bb8-toggle__container .bb8__antenna:nth-child(2) { left: calc(100% - 0.938em); } + .bb8-toggle__checkbox:checked:hover + .bb8-toggle__container .bb8__head::after { background-position: -1.375em 0; } + .bb8-toggle__checkbox:active + .bb8-toggle__container .bb8__head-container { transform: rotate(25deg); } + .bb8-toggle__checkbox:checked:active + .bb8-toggle__container .bb8__head-container { transform: rotate(-25deg); } +`; + +export default LightDark; diff --git a/src/index.css b/src/index.css index 661641e..1567d75 100644 --- a/src/index.css +++ b/src/index.css @@ -1,40 +1,143 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; +@config "../tailwind.config.js"; +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap'); +@import "./styles/admin.css"; +@import "./styles/pages.css"; :root { - --bg-color: #060713; - --card-bg: #0b0c15; - --text-color: #ffffff; - --accent-color: #00f260; /* Фирменный зеленый неон */ - --glass-border: rgba(255, 255, 255, 0.08); - --input-bg: rgba(0, 0, 0, 0.4); + /* ТЕМНАЯ ТЕМА (Deep Space) */ + --bg-color: #0b0c15; + --text-color: #f1f5f9; + --glass-bg: rgba(20, 20, 30, 0.6); + --glass-border: rgba(255, 255, 255, 0.05); + --accent-color: #00f3ff; + --card-bg: #13141f; + --shadow-color: rgba(0, 243, 255, 0.1); + --map-filter: grayscale(100%) invert(100%) contrast(1.2); /* Делаем карту темной */ + --input-bg: rgba(15, 23, 42, 0.6); +} + +body.light { + /* СВЕТЛАЯ ТЕМА (Tech Lab) */ + --bg-color: #f0f2f5; + --text-color: #1a1c23; + --glass-bg: rgba(255, 255, 255, 0.8); + --glass-border: rgba(0, 0, 0, 0.05); + --accent-color: #2563eb; + --card-bg: #ffffff; + --input-bg: rgba(255, 255, 255, 0.9); + --shadow-color: rgba(37, 99, 235, 0.15); + --map-filter: grayscale(0%) invert(0%); /* Обычная карта */ } body { - background-color: var(--bg-color); + background: var(--bg-color); color: var(--text-color); - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-family: 'Inter', sans-serif; + transition: background 0.4s ease, color 0.4s ease; overflow-x: hidden; } -.custom-scroll::-webkit-scrollbar { - width: 4px; -} -.custom-scroll::-webkit-scrollbar-thumb { - background: var(--accent-color); - border-radius: 10px; +/* Скроллбар */ +::-webkit-scrollbar { width: 6px; } +::-webkit-scrollbar-track { background: transparent; } +::-webkit-scrollbar-thumb { background: var(--accent-color); border-radius: 10px; } + +/* Эффект стекла (Без рамок, только тень и блюр) */ +.glass { + background: var(--glass-bg); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border: 1px solid var(--glass-border); + box-shadow: 0 8px 32px 0 var(--shadow-color); } +/* Кнопка */ .btn-neon { - background: rgba(0, 242, 96, 0.1); - border: 1px solid var(--accent-color); - color: var(--accent-color); - box-shadow: 0 0 15px rgba(0, 242, 96, 0.2); - transition: all 0.3s ease; + background: linear-gradient(135deg, var(--accent-color), #8b5cf6); + color: white; + font-weight: 700; + border-radius: 12px; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 15px var(--shadow-color); + position: relative; + overflow: hidden; } .btn-neon:hover { - background: var(--accent-color); - color: #000; - box-shadow: 0 0 25px rgba(0, 242, 96, 0.4); + transform: translateY(-2px) scale(1.02); + box-shadow: 0 8px 25px var(--shadow-color); +} + +/* --- СТИЛИ ДЛЯ КОМПОНЕНТОВ UIVERSE (Вставляем сюда, чтобы работали в Dashboard) --- */ + +/* 1. NEON CARD */ +.uiverse-card { + width: 100%; height: 320px; + background: var(--card-bg); + position: relative; display: flex; place-content: center; place-items: center; + overflow: hidden; border-radius: 20px; + box-shadow: 0 10px 20px rgba(0,0,0,0.2); +} +.uiverse-card::before { + content: ''; position: absolute; width: 100px; + background-image: linear-gradient(180deg, var(--accent-color), #bc13fe); + height: 150%; animation: rotBGimg 4s linear infinite; transition: all 0.2s linear; +} +@keyframes rotBGimg { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } +.uiverse-card::after { + content: ''; position: absolute; background: var(--card-bg); inset: 3px; border-radius: 18px; +} +.uiverse-card-content { + position: absolute; z-index: 10; width: 92%; height: 92%; + display: flex; flex-direction: column; justify-content: space-between; +} + +/* 2. CYBER SWITCH */ +.cyber-switch { font-size: 14px; position: relative; display: inline-block; width: 3.5em; height: 2em; } +.cyber-switch input { opacity: 0; width: 0; height: 0; } +.cyber-slider { + position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; + background-color: #1a1a2e; transition: .4s; border-radius: 10px; + border: 1px solid var(--accent-color); +} +.cyber-slider:before { + position: absolute; content: ""; height: 1.4em; width: 1.4em; left: 0.3em; bottom: 0.25em; + background-color: var(--accent-color); transition: .4s; border-radius: 50%; + box-shadow: 0 0 10px var(--accent-color); +} +.cyber-switch input:checked + .cyber-slider { background-color: var(--accent-color); border-color: white; } +.cyber-switch input:checked + .cyber-slider:before { + transform: translateX(1.5em); background-color: white; box-shadow: none; +} +/* Обновленный класс для инпутов */ +.contact-input { + width: 100%; + background-color: var(--input-bg); /* Используем переменную */ + border: 1px solid var(--glass-border); + border-radius: 0.75rem; + padding: 1rem; + color: var(--text-color); + outline: none; + transition: all 0.3s ease; + font-size: 1rem; +} + +.contact-input:focus { + border-color: var(--accent-color); + box-shadow: 0 0 0 4px rgba(var(--accent-color), 0.1); /* Свечение */ + background-color: var(--card-bg); +} + +/* Плейсхолдеры */ +.contact-input::placeholder { + color: var(--text-color); + opacity: 0.5; +} +@keyframes scan { + 0% { transform: translateY(-50%); } + 100% { transform: translateY(50%); } +} + +.animate-scan { + animation: scan 2s linear infinite; } \ No newline at end of file diff --git a/src/main.jsx b/src/main.jsx index c6e6194..e065683 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -2,12 +2,12 @@ import React from 'react' import ReactDOM from 'react-dom/client' import App from './App.jsx' import './index.css' -import bridge from '@vkontakte/vk-bridge' +import bridge from '@vkontakte/vk-bridge' // Импортируем мост -// Инициализируем VK Bridge до рендеринга приложения +// Инициализируем мост ВК bridge.send('VKWebAppInit') .then(() => console.log('VK Bridge успешно инициализирован')) - .catch((err) => console.error('Ошибка инициализации VK Bridge:', err)); + .catch((err) => console.error('Ошибка моста:', err)); ReactDOM.createRoot(document.getElementById('root')).render( diff --git a/src/pages/About.jsx b/src/pages/About.jsx new file mode 100644 index 0000000..682b534 --- /dev/null +++ b/src/pages/About.jsx @@ -0,0 +1,205 @@ +import { motion } from 'framer-motion'; +import { Activity, Shield, Cpu, Wifi } from 'lucide-react'; +import Mesto from '../components/Mesto'; +import Pogoda from '../components/Pogoda'; +import Notebook from '../components/Notebook'; +import Server from '../components/Server'; +import Button from '../components/Record'; +const About = () => { + return ( +
+ +
+ +
+
+ +
+
+
+
+ LIVE MAP +
+
+ + {/* Карта */} +
+
+
+ +
+
+
+ + + + {/* === ОСНОВНОЙ КОНТЕНТ === */} + + {/* HEADER */} + +

О Проекте

+

+ Экосистема
+ Smart Nexus +

+

+ Интеллектуальное управление пространством. Мы превращаем квадратные метры в думающий организм. +

+
+ + {/* TEXT & DASHBOARD BLOCK */} +
+ + {/* Text */} + +

Центральный нейро-хаб

+

+ В основе системы лежит локальный сервер обработки данных. В отличие от облачных решений, + Smart Nexus обрабатывает все сигналы внутри дома (Edge Computing), обеспечивая мгновенную реакцию + и полную безопасность. +

+
+ + {/* === БОЛЬШАЯ ПАНЕЛЬ МОНИТОРИНГА === */} + + {/* Фон свечение */} +
+ + {/* ЛЕВАЯ ЧАСТЬ: ВИЗУАЛИЗАЦИЯ (СЕРВЕР) */} +
+
+ UNIT: ALPHA-01 +
+
+ +
+
+
+ SYSTEM ONLINE +
+
+ + {/* ПРАВАЯ ЧАСТЬ: МЕТРИКИ (НОВОЕ) */} +
+ +

+ + Телеметрия Ядра +

+ + {/* Progress Bars */} +
+ {/* CPU */} +
+
+ CPU LOAD + 12% +
+
+ +
+ +
+
+ + {/* RAM */} +
+
+ SECURITY LAYER + ACTIVE +
+
+ +
+
+ + {/* NETWORK */} +
+
+ UPLINK + 1.2 Gbps +
+ {/* График полосочками */} +
+ {[40, 70, 30, 80, 50, 90, 60, 40, 70, 50, 80, 60].map((h, i) => ( + + ))} +
+
+
+ + {/* Info Grid */} +
+
+

Requests

+

8,432/sec

+
+
+

Ping

+

3ms

+
+
+ +
+ + +
+ + {/* ENGINEER TERMINAL SECTION */} + +
+

Инженерный доступ

+

+ Полный контроль над сценариями автоматизации. Доступ к логам системы, настройка чувствительности датчиков и обновление прошивок модулей. +

+
+
v.2.4.1
+

connect --secure root@nexus

+

Authenticating...

+

Access Granted.

+

_

+
+
+
+
+ +
+
+
+ +
+ ); +}; + +export default About; \ No newline at end of file diff --git a/src/pages/Contact.jsx b/src/pages/Contact.jsx new file mode 100644 index 0000000..c157408 --- /dev/null +++ b/src/pages/Contact.jsx @@ -0,0 +1,171 @@ +import { motion } from 'framer-motion'; +import { MapPin, Phone, Mail, Send } from 'lucide-react'; +import Radar from '../components/Radar'; +import Social from '../components/Social'; +import Telephone from '../components/Telephone'; + +const Contact = () => { + return ( +
+ + {/* === ПЛАВАЮЩИЙ SOCIAL (FIXED) === */} + + {/* pointer-events-auto нужен, чтобы клики работали, но контейнер не мешал */} +
+ +
+
+ + {/* ЗАГОЛОВОК */} + +

+ Центр
+ Связи +

+

+ Ангарский политехнический техникум.
+ Техническая поддержка систем Smart Nexus. +

+
+ + {/* ГЛАВНАЯ СЕТКА */} +
+ + {/* === ЛЕВАЯ КОЛОНКА (Форма) === */} + {/* Добавлен flex и h-full, чтобы колонка тянулась вниз */} +
+ + +

Входящий сигнал

+
+
+ + +
+
+ + +
+ {/* Textarea растягивается на всю доступную высоту (flex-grow) */} +
+ +