From deab75d12469f14649a1bd40fc7122934ac46974 Mon Sep 17 00:00:00 2001 From: Keep Creating Online <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Tue, 28 Jan 2025 00:06:28 -0500 Subject: [PATCH] it go faster now time to sleep... --- src/assets/jpg/default-profile.jpg | Bin 0 -> 163867 bytes src/js/app.js | 1075 +++++++++++++--------------- src/js/nostr.js | 207 +++--- 3 files changed, 594 insertions(+), 688 deletions(-) create mode 100644 src/assets/jpg/default-profile.jpg diff --git a/src/assets/jpg/default-profile.jpg b/src/assets/jpg/default-profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ff830719796a4571944c50e7de3d694916d413e GIT binary patch literal 163867 zcmb4rc|6oz^ze7a5JIwr@E}|Eedn3TzGNG+46^V0645gxB}--B*AT-fLe`Ka`!a^? zm1PW}EEO%!d*}JR@B8_@f4;Y7=Ieg%eD68;oO|wB=im4Let;Mabq#bO7z~17;2-qw z5~K~$P@SVbM@2(@j+&O1<~%*y1$sI<`pYb=jBLEz{QSJ!fBhvOA}=l=BqRLSUlJM; zG73tns;XDS{=WXVvbMa6suKAjFj`t#dOCW}3l}(*1pg9L`u}eK_CXh^DIrRT0>%%) zFTyA;!v5`tE<+HU0!9Y+|27z$0zpZ24&3AbH^}Y(-U3LGZ~nUo(NVx4I3ook=-HuI zFOx=!nOuR`%@B|X)PscBc||zmWGu-G0KqZf4ffDE5#vREr}lyn?~o*VXbJ{*7NT}e zgrH{$(%J}03Iv@tLY~5mg0Yw0f}NL-j`*#!$f{4gn=L}j6NNs3|%Rh(;0&4bMeBeAQD}f0vv+FO5qq601N~N6VbtB z=paNNhS#{%*cc`adKsr678u+MTtNUG01B@$q-_l5)z$A{222N*5)y$!Fbqt~3&Kz`Gg9%zvkSp* zfiIIALMSc{Nxq1yqUMD-uRdhQfWgwBiw=UoyEK@Pyn+xw6M~c10b;&L4?00Z@Rf3c z82~3y(v;C(V@n1df@WQg)HFhEWOz=@r&6u?`HjF;eqsN$+Pjx-KEiyKP|hMcn7D~=3YO-Kz5%pOr@ zQ#UDhO$lH5J0|?}^f>rX3?I%^Vb_X|-0~kCOL1~=GHLM{RqQ%b4jnEZnp9{@qP9nw z7lgG&Y0y6v&~i9@j|37Eh9R>X9LP)<9g`anMSvZokrc=&IE-FroMqV!h!hM&VQj3; zNG}a(Bf)*prs%w2_l zWbDyT^~>#nQ&~nsLsAUC{;W1~g*OH8JXW_I?M^kXuv<9amb>L>i!ZB3O;XWJRJitQ zu*jilZCp9Af(yiag?EQvd3YjD=7z>QT8cE#3zJlmtty$yJtW9#42LFi34+a!QCRy;{L8!MX_@&+m#j$l)=pk%MQzg ztQCfR8L_`EkB2ttqfh2|$3&ix#eJ@&XWO0MkJ6JvT)H=E z5&#N(7-1y9i5kdtAYLtKwKyRcb|5Lq+nMT-GZ@W_p@qeR zL-4#AU(yAQoz8E8=Hti5!}t%TYbc%@HjkxLZiGG{ksLd#s`d{`VnSCwMFdGH8bo}) z+HXuL@*<_w_A=j<_70;TXdb`y#^8Iw?%8pQPX?1N3(U9h+?gDVstkB=sPGc!MDUSbP{EUW7C=ANf2c zi^Z$-*Kdv{^g}&VWbp?!KYJVoq6Pw)mNN)^As_H&Zd_7=ko^NGH&WEag>e#Aa8lK` zQc}g!CiCo^RM_d^w>HHjQw_25F7@AXYTv%L-*#y*4JfK+6V>LOQl^(M7}ikn_sml7 zuzi9z960a)WGjPn^5s~LWK^y2jE4M)iczTBut06f&#>49ufxO370f#7Dd^_e(ev%Q z60t_E$&$stmdMc^nvLNrqV;QtO}YGx$3q`?STT|-JYmvXv* z%?>&cJxDTrfS`5m?*Vj@znJM$tC-)}Iz9P{Ct3kl-yOmkophR{SE+3OGB4`D!siFk z!Mep>i>fO4&>h%3Kx&uz%>X;X7k z=7#TzxTivP=Ln&!K*_*+aDbG$o3t?WNX<=n6hQtzjiwYF-$051vL(q=pT~d`4kF_N z&Rc*U45C0tn@AhOWauH5L>T(=TvJ{~WLLp`4aIdr<7=z$ZI@>iL)YsA)&rS~Vg%ir zCf(5@Y*?`rrwp^)W|!H4InVBWdWNJVSCN;t=xkwD=1u=`Njf*mqW zDJwLZW@H@xcVp(G;|Ho`{(p>Rv={_4k^fH|{O=PS22>(rFqBrMpsTj?SG41bdWIcI z(oZ4!+m}bjb5Uwrv3&1Hp+rf&5Vq4x+cCt7W`b_Sll&Hb{+tL81<_~rC<_zmYV-W? z;UY%nNUKlFpL7C(vaZd$xMh|P)>hi(c+N9dR@F`CCrrYKMJ_2AQv}1^&mKrO zvT8E*e~=R@Me+hxqcxZG?xB>QlJ6lC4Z=eZV}B1)o(_m{T;(8+yOn04IFkMjcb*Y7t)!1&bja${`oo00}>07VdWfiK$x~Ek&=_G`8 zvG@Ds51MlZv=EZ*hN?xQLT7Xx4uNem)t~#2684Z92F(I$gy^>*`2h{7~Z8v0Kf zB7s1WW|W`8Uv-}qHNLJqoAN5Gi*f{O^C~E->*#^}=WfTsaW_Xf@pe>{Y2@ppt~2Kj z)~?8yTFEL#omef?j>A#M+_`b)uwlP+k?G>$B3ed5Hv;i)pf;}$UvSGhmV*y%Qn}FL z(Gor&u!XW#qHUDu|I+4xrqNn5+;49g#z)FNni*YJ@gp5o2rbLv476UOZQ--`G0&3B zm1TdvtWoq#92O&e!m=L=7wsNScG1M&hlc8F`0ld=6`NHuu^Q%_ya;C-WuIm9hj5WOk>4+EPqm+d6?T zxG>2z;Z(U5xq6=8*Kl#i2#@kM!CTEb$vJwrxQf=@N4Gtjr_r-EPjSPevm_Kz9-(5- zvs$cn+3N1_H?|K`NKGpHY-dHMoZJw&VSUF9BiicEwp&qNqutU`8=A0{^_bRFgmr_T zz}A$ds=v~Bd%{;?dqU;qo;q>T5~-b^e{**1=Gj=Nb-p`k z-1%fpsE23On#K9CBrskx(6=pqws1YLrIskC(Y7(3j><*_=)cHfLb%FdB~uQUB4Rn) zHj<=jC@t>ijm0ajnAU~aD;qhmH02p%Q6rMgeT(k3uk$7zUYyH*^lC1}#Pb)eNOWG+tum-Ez0l8_bx}gKc~iHxW+IxSZJ{}^{6;j+It$hK zWQyuf%(LTfr)l#A*=s7>h);c-9pR*v!Oy2JU?~_1(*&Ta!^y@dKq#M<$l6uI4=gBP zd0J{C7==J*A{?qpQ$nL3YG^orM%vIzq|iRWSOhcaSl3_IVaanaGJGboWT(Z9Gq5*+ zw`8E?_v|?A6^`4Am|4ELw@B|?9K@PBd?HOOxk^Yb&zsLWv^Pj>`c6(eC^^{E-Kmi# z&0D+2-2KKOeIlqcepB_fk+6sH5I2XBAnhmX-f8*zEQ<=66`lJD;_U?umZ%j6g)qx& z){lHP?UD`6eJTw?a0c#~BP&dkSDI!I?b<>QzP6t}t9UuM*ad6Qgs8|yJ{)jqe?BtPmW1w0AZ{@%`vflm5=nwBkE4<)g+?eQiZ7r z_wD1(3RC)>b@kd!J3S6c^Y*qY%C$vunR%I?$EqDK4`|%1Z?WHL&A<xK+`R?U`1szOFGp zlZ7rZzT&A~CAe_i+NZ-Wb!DOE3DecrShplCVc9l=+DxLKV8lJaj)1YPp*HaeddI}3 z`#|Z<%TE5X|NY&Yzl6y20v3Rm3rrqJAlP$0Wz<_|X`u4wm%=c-RPo^M=GxnX*C$f5 zR+>0LS58F=t3LH-OM=S^=a0IT=QPQl zemGV_;c=I2$61%kS=$6@rmYFp(z8uVuEV$O^HL^7r%34|wsrPd0TNAW5>4{S&%^V5 zZpbcHxT-v#7pTaZw^Z@kwJBU55POzt@0+7J3K%{vievDSWr7=9rEjJmN@bdjV5GY# zYT;jY-=NQ}@@Bqx-^PK<+puV{U*DZ3CoOMeBY_Qon8E{t0cdE@HJaW)@Ap0IxtJ;p zXAm4o3GTLiZ4Ul+rM1!or$VLGi(Oz^y*yUx*{;(qa|fy(SCi=S9p zqK8EdO|L<#V6=6z6}4}Yu*s5jbBD&l2UNXHfS4Y;l}{6Wzo@wpJ$w20eCw7P1@*G> z<#c;Tvn5V`-_#)cS1zxz@-_wAWmnw@C0e?{>9e**>VL9kS<&k1U#;&1>g$=>-?HZ| z@+$mTyW{g{v01A>q|W{djn%`1hr@P$5_JlbEa~H~oCG6R2%Bk<7Ab{Ic(N}O0|WAf zJrTnQkC%P4ihqd#nwtp(&_?i5QF@MgbZ6dr2!p0MaMt@1f)@yL=j*$bIa@+4LpQYA zPeOKE!&xM%jr+=fJjp^0Pbb>XODw+7FPnQSRJ;GiZrDHH;`3t23W~GLW}Y+SI`>8Q zAcLt=`t4g00W??y+eYxgdJb$UBzscCW++y!jxKqGi zPx}1Hm-txEvgC0#+AK>t2!nyhdRso?9r>(u#FqgB0+1F$0vB909Q#1uO-SZikgCrZ zqANDy_;#49Mu1OZU6DDVT|xAv7Ugsea}bkxkRa`FmY9ByUO{EJ%0d8l^TbTj%uUxv z^1LbH>5WWJ5{@cyFWo*cB_RTu#00Ij#mq}8}KmXndOOgZP(HsnlaYy$8DEm0^J zLwE9}!zWDSELwF|^t~lZAx)j2EXHv8+MtPO>Xc}R1)@&Q4}bGxqlsZbX`UqH@I8vU3KzXZ0*obge48zW0pfzV%0eY1oqOI#aD+>*W5!IJ=$IxxvF7Ljs(M( z9Bdo(1g$Ms9;Q7AyubW$#4U||{6RxWq=C*43?SKmE=%YdwNIun_0+UUDL69zb5H^+ z_o2)hQO)O~`SGz8LxmVjq^Br4!uas7(#)v&g#m2JG-uT%s;DKalo~dl;jX}G2VBwn z10K@`2{~PvmpWRyItBuTx(q7W))j1qH5aLe%hMIx=04IGw_d!Nkk4Aq<~Addo_Y0= z8GkrTMTmb1ablo5U}1=BxnGY~|7PD2s8qUiuWrkHTiP|-(4ETtx*+WUd!f63^N5Tf zhb&X0^}Lc$=0dobS9p_?n5kz?ju>|1laPle{+us`G|*beq`^=##xuund%uTdK-d2? zn7Uo)ixHj)tVX;4vrN%;>x4I+{O4RXRr+`E-f>}~b@grvD5UMhr-BZ{9T&_avh3@L z4W{y0LA8|#18Q4GH+M?ePuZ5{)HQn2nTSGRTVWb4MrfKkX#i^nF+YuOF^B6v+@zs+ zs967e!MMIzXGxZ+=2d;;NYPvoJNMjP=g)wac}lr^C9`jf!v~qhY*hDJm?LTiUiGHn zC~I3xQBBvI#{CV$10yG#QqBlEe@qQZosnb?GzMB4j2fmDgl0;90jDDSS@4VyH76Cd z`oGYPd)rIa-h1tQYV(p3+*eiXRUJN$W>fF1pruz@6b!^uP=+mxSpD3U)1y4qO{S++ z4Na^avo%@QE6^{CRF5v6OQ}A0(Ns=WKbg1E&(gw>_g)gcA)g2aXu$s&YrOstp6f$B zr?(ra_?0PjW7x#Pg4IclJ@u|#{o9rm>&=&5y)(nbQLdMAtI;9$?2Q(6_WYYZFBPjr ztFgYVHC&O4wuSd1Ozbul>|-yaAABLcW?+ZWu}G6$=iqGT6QY%i-v$9L49%20M2=ig zr4RDp2R4g$)(?Cetp(u!NWk=R8DE-o+GX{ z5NpjKU*~YE@M)oR{c~3~T|N;7h!LZw+5-W{Ekvh6+>8RX%LW zL?~+8#Cl(rtPZ%NP;YJH|LUkcFL+YINBP~SXNAJI&QsRkEX7rQDfR>P|)h!X@@$l5hb{%z{Q z5%;V1JT-2G;`=wh9E+}uXWGwlz~%%IFq(l2rz zxHEMb78&PPRJrXQ?yO9CuEJ#m_&+iJ?+foas#m(MhqYVxn1U$*2%Un z#Jj&vHGb!XGaSCkNP#5Zkf%FupHiz;j4fm(WD^>!3tm~YxkmVH&grQL+H+i8LZ?Th zNzSc&x80oIb|(sMhjJCkj$@~*1&0kf6pSL3?%JF*^4yJuRDe?$x+qi$JoU_G7#4S? zQ(Yv)%bq($527*7yb{D3(yoQiR+>QVakzPAbKTRz^hU2_bIuU`Ru+CMQw3ck)b$)u z2j831?aR>$_2#J&gHO_*)_n?B*3zFa;}E(^1{QFz-rZHr;t9?C;j1>`A_CtRR&8M^vd+@_?-&MB0h}N;$XE z!SYx2Y&TNfZlJlQyIeu|0^GGx5xItqgN>GFdQBy#My|p>6=?}_|T8Nbk z8V|CTYdWGmMn$s-c?xEhRIW0ap9EO0-b9I^n>#pr8m*_r?$@u>2aW33;YK_Ijr91J zH`heZtLBMp9lHr{ZOCiGF=lvVf;3E)$%{`}Vo%=tzgPRXNO7sdzAz_bxUmhm3 z!qU3$+qI2`EMn82i@7{WPI(fcU-Q0(hJl|ttCvPkh10^RsYon3+qL*Rt)u|)^|AWA z(A`Q|?dC1EQ(G1!9g-KKkdNN?n3%8TlsEAhZPJ*dTWZ|dwC=AfxbNrRve%|$|K_gA zuhYH^hVYH3KllM+zE>W*NCQ^wkvp+;Y{yP?d%b&K{Z-hwc}jkluCo&I}rD1dR@xcf{C*hyYofJvXkuo~ zR@aC$BKU=a>(FGKI`&#kWlY> zUxS)2zoBZP((mf_XqnIL!-sV91Y6E@TXt<(AAuC=xH(-YYZ|2)1pt&|ql^8K;G&U)i&pqj2}m+M`Xb)IxvMI+kdF{1X% zbeXF|*0OKBAIB&P)pgwNY@a-w-e<{_FHGS zmlQqoCx^5D4y2Dh?Y=j?vFWuPtlH$6-hYd0u<#*U$1P{HY4|9rWicU8N9SSv@FT5O zYn(e4Kkn(Iyz#mGl4Ih;UxDKz>S=45b#L)o_OpfJ{rSGqz@~z;Gx8#4S?y6y%ErtH zI^fF())b5;i|yTmEAGGRe}qT1Kf1ELOFMUKjep8ZG;_<_E{M;)}0 zJ6#p3bpzk6pLG6X{X?pLa+BwdREo{P%2fOE{t!p^G!4fTF zGp!yt_x822Hz-O>8mniHs|QcsMynt^m}9dAoW{ebzDbR z31L39!m&7q3fF(zW!VSE5x}6LF)2gRh*bRR#;2$WuG!|A?FNsA$QtWn%RnVhQQ7r3 z7ffGPPPgF~hSzc;EBZeluGyAfR4y#KfwfUf!~IzGAwzapghPm+%+S_QjeJ&5dV2+4Fu-M)Hm?^i>K5wOGn) zc!zdqrJFtBqi&RzyC^8&Ceq|_UgF@+Wd3g@y19!)Hs7yL%NN}rrCY&voMC7Utf3m^iHs;)?Mh^-JYZ^>ZhC zTR!b;4rhhc1r75q4eH+2xL0R41piS#Ys7Z``V!owr`Fx3VTvk>+)+l~o19df5cU<6 z{|fPXCn-<^E-};9M=hC`n`hBc3Go66?BYy|fin~5VinDo9F|qRj|1CU#vIy$K5}c^ zv7fXut_hPL9hnq#NnEiAO=aEbeQxVgC!TPHK~UE8q8y8#oS4g4%P%}(FS?|7=k4;r zhiD!PmF5{YESd>V(`R-6#^m=$U)uMH-;47LCW7@$W_Fs>$b@?2{YRYF!1{C>T^0dBd`=F%tACu6tzhV!va_Qte-E?ZAlDWe8v=<>-ENBVNd-{DN*&sG~JkO%SQevYPQbup)}t{SE^l< z6KehU4Y&5!t!TGn%{y;WqV{jx$icVJR?_p|mt)KH-8=o$;aE62OB~7?+dfplCl&KF zhTxTl1(ip$oR8dN?anu(o<03^+&J2QbU8H4*&?m<8Lc_hr%_>}xrT7tdbGckU6GCP z7}`o#+a#bq;uDG8?Zj54s~hN0Qv>tp`flHusMBswQ>GxL&1wQ3?=r8K!^tVbo+}im z0Qd5OAxdEmADjd}gHW-FJ2@T7T~7&*y|!8rZQ0}b?HHZtXSXsA`>P&Z^ur)#_F#9y|OXQ88{cZ zv6Af=8!h6~EN~t6TJCSTHq(_yd$GcDtwTFQ=koAdVSB^Z#WNkug*hZhA+62Z9e+G$ zj)?CLi{GSrcXi)Pc6(O7S(sHLVdZ2OP_-oTA)0~q%k9=rJKAk>FEJ}GL$a(7vf4Jw z&|2>X>%xY^Y_olpy{z%&Pd?j@?yjpB-~W}Y@z=Q;8_{Ohh=`u`G;7Bq?vvX6e{N*@ zsq{byn&&X!9V&-XO1-?_%hN&LQy{2P1yRGxgYg-&#IR_GPXD|+VL9HGqsr}UlPV2k zVbbBtF5ko2JUun9P^#r{l8j3CQ@)w9Dfd&4@m+S!3T{++;ugwY$58#ZLsxg}1$=PV z`E~d4D8;Rm%rKeJbhf_5b?Jxtu>5aFcep);(U)wlWX*2|wsK;dmY3LSWis9F1nuN> zk<{N*4Ek<-i;}s+5CzkTi?Ystl{Pafp2=svzJEyQ9q+iLWufIF@FAHypuRE5*UmG0 zC16NRA@r@4OLFP64v+JfD&zlDIj9xg>018rbNOZ8&QZk9(H-^G9FcEFs-ZGNZ^UnX z4pmj)RY3wD3xq89;Y1*=USc*f?ZrU!EZ_v{0VZ#TlT^f!la#Tl+`(RVD$|?9OG=T2 zGwpkXwU^gr8!bFNMyjg}B?}ewl}DDZxDjNMUE#XvW5HLhJUpU7Dg^evPiwV|+dg&d zN`?niZQGUzEr;6r;*DR;`(0I%5p&ji^L97DC39!Hclh(y15-ux?Gy2!r!1fDAKOcX z&O|*n%KDWye_7?VCvP46>{uW`LOkF4dTRLQ>FR^Q16$W{)pwA*)jPJalmuJB+CIvb zX|?)A6`S2iRCD3Nl6B=`5NWh+1pWMDgo?F|XU^)U(7{>-mvNGb}pR z;cDt>g+9iH!F!_;R%BM-6l>`?e-1TW``xvDT>1N9J7IAD%hu~3s_LsrhRiw~*R2VD z;lK5Aju$#!cioMUQ*;_e-LJIUZ69)5zh#V-E&PM(x}YZMgvuPK2$pz4^ka#qEOYq8 zHc}v2-cWADePS1;GSl(-Xn)?J+{iKj=lEGooo9t=X!3IqaoDmW@~*GvkevRoWw759 zeQFE@+#UJA*&&)z?v?5848csG9&nOC%sLE8K7(=-d1nd}k5%v=!*1LPE};aH;B93x0kftoeMRh93(ZBQuXXHCEjt=4W&aWo1U*D>3bc7+LrA zx?yKuPqeTBM+e_w4nU6wem7g^eW)UMhtJH@pcvZmn|t09`OJIh~@`>B%J z>rtTvzwK~^47cgpli-t;68@ddunR~=?>@c>pIpb0b>*mn-7=}R0 zB7C(nbIJ^SCv5Bc@4qM-a{lfbB88w!qq2uJh+Kgm8l<`=HXVyQ?hRFKvCDhxGG$zU zHpgTr9==e|Tt7`OEt)Bi^L%-}a_N)CKQuS8zN;S}+KD}|Y1#VPm7})VzMR&84rut> zsW=9AhC4ncct|#s6xLPfiI?T^@)|SFmV(sXQWylW)W|Cv3MJ|4lYO0tUTH`Kf|$}_ zwL^)!XFCUf&uoSfPIj=7Xq&^}T&Bd6>+RV=#GXC;b_i}}BJ^=9-I?9()H6lTaB~_x z8Qo0*{Q*IHCd4qW!F7A8ME~PIcE8rbs|Ulr#@*L+myL3KI5HSr9t}bhG!UixWeu)CE^5v7J*DN6(d@W@U}L#@}Q0lr*f* z=-I8-guT0mne>G)ec#hKm7) z)kdoR(L_#Cd2$zbNLZ+yM?yVuB6WW6qe$=jPX(>>5w|!zTk}TNCV>M#JnD{x9jjr# zrOA`rN9pMliLOjf%aX?I`W6@_BwuyieIpeqHeJk+ZjZ{`(JN?Glu~lUxe;b@9@X}= znc!vbaXL1ZIA^-nMfnqPd*Xwk0Wl5PE7qqhlifAw}m#mXbBzRNZ*Kv%J1TMEaS2=xU%J! zCZ%UsCgM|bk*-Ycl7yU!*mS;rs&S2N2!X%D6`C;On@f)N#U?wBE4fU1{-qP<^+sbn z>N8eJraD97W(}cUFE2u)%p}uxFXms!K7XEBv#z6uLhhLBuN$e~lnbJU-|q(fbO9px|EwndpW0$xx z^ENDazVWCi)zN$Ncge&3@UG8l^Ws08>_=N$+Rjvqeb&511J=_5b`-pNHh@j9AOg%1 zh}H`R6iw!9=&XEq4qiND)dP~+V3;C$2x{D^dSV_vvX)^}5pFuJ9!26LLKKqE>mSD7 zxQ{2E%o&HM?Z2|BWX`w529|H81y3Ea=WQ3Nl~qlmSJ#(=Cz{k#Hur7VP#>g2=;AQsP7U*yw0;Za&InnL;T+-eAzWzfsf>7T&f$S5YOe z*Q&hoMlmM)FVBtkC4xqmV_^N);(N@03(rT1ehb}*P#yuU&8m;bT{q-NZ3+!F#5?7$ zVj97YfnA^FD+PxLEp#1@DK(+ACfMcj;xXJbr69Kqq$Xit(x{uLm_H>_RRvh${sn!C81KDkK7)Q zke%r&a;Vu~YJKYc!NbXRdi|Rpt{~Jv{b`l2q+^{R@ykzjlga`Q^kV3C`KX3d>bI!w z(5!{^u$ueC)}FMpdr^B-gU-7pJeo=pvo zH=-*!8@^Y>FWGl8evStvoqjGUPahqTQyfEVa8v$b@PJO~7k9p_aLB=A=9 z5sm1|#Opizv1d`Id16Je{$`D7 zw~eQBb8ZwB#DoqRoRpMqp#79pCeioaeUDT+b`=wwj8%ChSnRVO!xKJO(a=W{NvY_d zwxxaGl+muL89E!)(b;G@|Cdf)Rr>syNa<57h+$wofcq%z}(|hK)JFsie?wN-WEXP7+ zxp@9kRhRssFEO{TpR2f=8;vV?0X+fE{3&ud5(KfrK@eE9zN!UEt%4{(z9q=rQ{|-M zg=yVFf*K+UW)|Tw!X~n$q5gO6{!z#SCG1lrrR2i5ZI?TJj?Ng)u*tEUvw|Xnlxm(z z^W)W7TOLJA9tQ!_!`x3ldU!mRT8!w5%{w_9zh|GhMJTvLb+^cNP09GQ@hGbOFkHkC zW#v}O*4t2dq**;~TDV(-@7Ba#uz5OZ9Vz2O4EL%w4GwQRK9H??@2ft}uC((Jx6|Zr zqIdb-?@Rq*?#HXHQ;eT}K4$CU(X0AoU!WU_-B-^ktB|`t+Y{(`Z~QD~VIsD$I1&94 z7sZT_NA(;Rd)ggeB2LS~sP0UgoF0oHFpM-n2?eJMRPM!$Lp=0tpKi3$#w6=VY|v+09tWrYFCCRhUdvk1sh$DtX4u+kM`S`fbM{Sz!A!hT(SF z+3}Xo<~QYQq{i?dYuzzJbx*yL?e^b#MJKn5Y)?m-o9pE(gcgHw)~3ZVyONTRd3GgD zSoRz~id{MHV#Bwzt=yFs5&flkbER8zXfoPKY7*^#^UPr@HOwoo;c zo8JT8T)m9>)R^z}>D}|oA<>PSC0CX{oF%_uJ5%4s< zlLmLA0~L#Hf!@ufNfeH>Ue4cOPBB2B{DhGrEc)*>>GE+VA@FbNcZNQ$=G-ggHj7dV2)m=DK()3i7Q#v7at~Kz#=UAT2%;uRe|V{ z)5ahvnOxUa3h{#Q%Vb4K$Ghzh`)ARPZ%6xKx=DN`PEwWG$tp94>sJW#dV!j6q%;-9 zj>8J}i(=#k_m0jYUd~?_iH=!nJ5mmqjEQ9sn$O9T+jdnwky~HL;T)iklIeWid=wc< zsMaLdo6K3+nunp&mm1EQ22OrcDe^}z*PjNb{@k9P@a|B|4rotqcSThA2dgT$60%36 z5~yelPxn%-2Fcijz;D@NOb z(mIj$D^JW2a4HN0P)c}*q^8j=N|Lc4bG^KXDQlHkx-?>{zMO-NjBz5=d$R`v0WB2v zRqgH_T*;jRd@0DZgedZ+#;5VA zt$pjW*LmZs_k`_?c3blDNllUp1sWs1=cLefb1`RfdnT{!U2A8=7BY-GhJA=Q&3E3f zssj{NIbUv%`p zBJF+_EYT}SQ72Y?irD_C>54bFTqbD?N*pMFW`rcyam6J~A^6Hb(U4FA;CF~oD|{|b zSHFjmR=&p=1lIwt%Se0a@^Z3bFf37P*ZTIltJ*&g!qhR4sqB);SxBSCpR}Cas(+!s z`BY>X6(5EDTVgp0iFctg*qIHdqP?LzuWoLWM49)5Hauf=}xz&|iGKHl;g>aZy& z(T$Z`F|9YOt9@^CSq3ZMHDL95-Ns40*ELqfjL`QcHa@^1;mU@vidd=opY&0D1@s%1r;O z3xGkT7)p=~gP>!yaYt2|<@V~!6CQ%JEFTOnh@AnGf|p?m0f`ciMM(7~MjS9YY9xn! zMJ4g%Xs^XM=I}+}IJPViq#wpJ6Mep%kB|luAke7DK_ni!3Wsdq|Gy_ zHF=7DkV&C`d*R)^C|urY-Jc zw~pJEJhzXU3D!>3O#z(@~7$QXN10X|+!XX5dfy9GT zht(DhyhHR=LS!64gK0BYB??h58$Q7xq_1Lt4%3Is#K2+XQey}%jeZmYz$P1##yfTjBHYM<*414u-Ex>#s3&ls5T zvb1{FZiP*xULK_5HqL%4Usv_ui4fQ(V3$k7bnjk@%vnRXlyG6r-&@@Z>pCy;=A!gF z$V3$eUA>tP(dj^C@n(!uWl0zef~FLBbSPOTC=U}pzG4E>6x6cul|n9FpdOF$oR)K9 zT$PL}sDA(thanjgLEUFUp>I)mWO$36WT?jME{ff(h+$4*MfQ37^KriyhqF-;wn{da z{O#IReoMxNE~RbZS}#;4dz_RM6*t^wrye=>;R?49JP-mxtI-EGxW*)uC$~yy+0x!~={jjjVJL@B$7~Mj)=} zK_@8tsXQ+#RVYjcis^~~pr95TjD*ucl$_!q*Z{{M5YnI|7!=JSkv#?#JR|EGN7{-99K#MDNf#6unGLU5jFH0cz0FS0n89dV&&>rRkXXGVo zQ9_{J_&F{-Uznx`5Ai*$;sxnN(u`Bmh!I#HJPrf&ZxLfa4mwi|cmNU!@zKO*uAsy= z^OcU3HR?@7lXhjt0~~x(E{jb}R7D3wbr!$jIfxZXmiA~@G9!haY~pHL`j#>r{l6Bt zMAs1NmPSaMt3iXwO_ntFroF&f0>Qw8Wx$IUY%;QN1T}4pP@F92@hX#tDw&bgUNB7N z6HtzbTCk1zsO*e{`nSDHDWM)9LR~n?730rA&L=H1_%Q+Ci5fwIfChwNsh5Y*Ch%bm z*0L?U7AAJBfmYQ%c()6t-psA zqGq&F9o?%UK`fMX+|U#}F&D!Ldj&4ys>m{>w;Cw|z5+{{!T`w;2TzJ;7jLhf>3^TA z(-jc0velWhHCVgt95SdHBqb)LUDBluk{=d5duM881BgojX=xgT2ils2pY8d7N^~bH z709jD5nZ?TZN+|iHK z7B>iew`(vEbcGo}ht!5A%z^@13IHwK3kIs&`JEvg5XtCaS zo#urMX2_WyKqoEY1xjCFbSAn#zfB->DE zuBN`_A1lF@;}5Pxn8<1Ux)hAPD<*f+cG+e+M3Imr@#Bo6u~joU&&djJTp{6^#4)(I zi-+r2Yina57&}A>N=B(c`9IY|un2%j!9k5=>=#1<957~N83kmR37Icgl`QQfY8Tk~ zFck=@=jT8jJPii?ibJ*NEpRY{#;C-mh%uo{hQ)iaKXP#aKc#^1Sc|uFdUGk{-Sl1M zT1n-(*dMAFiMu6o(X$t`^Dg2d#$r|HMOG#jX5Mytq^cZXB@_1jT9{20q8oQG9-dQ0 z&pq@3h3W#tUC5N?1urD|1qv`|VNfr)WW>CJLsl>V9wRmQlU2#w&cBw#OwBF=H(+=I zfnSP{z8-%CL2uR%OELfk=0x0~O-tZZ4&v>tV+i}@UD{xe${60*^OvRNqZ&G)bU?LL+@!4Mfa(d?VjXadYM zvX%q8kAYht6ab`r4--W}m9+77^8DIb?9ZJO6Tl_-Nf1MQZT>4){})SN!4~EBb&b*r z53oLYycJAiT}_z!r0ULzgHCN6!QNqORyhA1L@c_u%s>zPel>&#{t@wv=ayu-=KDWIgkb1s@S#g|MPe%lTEjf~`N z^j~S&>nFCab@4lS!#HosZ4Fj-(YJTTJ3EeD-G{rL)fHBBkXolXZ+4M9E5Dyji%H&n zBPZkT!~F!|F zz|SNno<4rp#sL^m-!_#AE>Dbw-49f$rIx}oRyvp2%<5$B@+1W=YbeL?ozacURP7r5 zNmt}o3FeL&JGB~IZcXeKN%DFm_$eped~QbKOH=8sT=d^%#AL4cENdwIbZHG@ACvtF zc?ovUsq2duU3-B!rnXLM9Tm~DqolSThc~e{Mp(owX3K8AZWlJ<$u@=urd9$oWAQWF ztj@@);Pw*f6fZgXc{n*ax#*l!<223TC16QQtFi~%pR{_+%xS(EmXl*uZSNUpM3m>` zEZxsbs7e=ZlJRgE4ZfJ1D8u-La|m!Pxo6XvH`6{0jaX|<^FG}hjy*)*s|eW|Ju4G? zeadQk?HX?bT$R^%j54P+v<&j7MiZ78a-(uq4Pn%B8ew&7rePv)4r?*`!Y!H!4oDXB zX(b7%*L_Vh57;SN--Kno74X*@WcjVz&Ycv}W{ll^5 zBL9{?;3Iciz%<*}6iBONQ==NDp-_pDVW5t`HszV;4H6SOPBvQjJD*Bn@8iJ{K4!^f z&*wpqCQdGZpW1+=65cb##9J+zDS*`GDpFnK#tdcZwLal7heE{*TH|yf%5!!pJx3}YKTYsgzLgN*?y@;z z%&UlaB}CJY33*5Sgf5H4RVK5@#{!RXb)F+zES*BHxn75b?tIV3e5>Tl00wG`WhNw| z>wP15I)+N14Qu-1Nx&mz~ClZ^YIrpIG!8?bw|&lq!8l>!6w{ zWrI;#u!Csj?+;^c>TlX~uw!8U>c-z&?dYs+V^8Tw>b`0ckdQQkH)BbMd{A1dhf}I- z9SLJKW<&2+d(yOJ15=JH)_pA0%xDZvU*a&DdoRAw+XLi?K%8nEbCt>2QaSyPr2pZV z$hWuYknk8qarclvha1G!sL>_PvQt@ZHfAM95o{o1?^nVhS8gFE%hn$+h&A4zo_tu< zPR2Xtsm@@kY1A{XfFY3T)tWi+w4;{fYmwnauv8ha%$s+aJqyFaFDgSolVho-#Oh@Dmvq2n;VvXIyhOJ|+Op=De?1ar??B|t6|sfJU6W;!hA z#Aei`*Lh~dO9qHY%ZjIT>BN~u&GQBy*H4t;Rh(iNn6OmywvX=Yvb?SP@*9y2&~89JWFQSW15Gh4>t6Vd|J~ z!mjS?OwAj^CljN0JbwJsY9VAsCj{5NfNJb$lYmw8 zF;0eY1YYZRqY#D}I^rz|Ex)vDqIG4F%l(+>D1>IVsR4XX@z8fvTYM1hysVIK7x20x z0Zc=HPeMR?@qP(jYZgmvs_MQ!0n!~35Uuw=F}qxX^v$=KTZ}Pg794Eh7wlcvFhO$* zRIMwBLH*0oX9&Q5X{e96VlTe@c>c@+_7IOf!9o4mbn~`!&RK!i@nV7ivqozM*(Woj zqfAk%HcBZh$TGX7tB7s;g%|2(Q&;3ljZ1wi;R14rfBxa59q(8E;34l@8=xFIot2Ck zHl`z{+k1r2wi;oj{BtdqQs=D{cg3j_XM)T_mfvHhjmR! zp3y2yedbx+5a1k=Oayw+({w#!CWiMWB+lx;O=z`WZYrUyl`)Dc2~(_b)66md=7lY& z%!Ih&mCud~E1SZLfzpAkR`|iuVN2e)ZI^^?*G#(|ucqIpp+i;mE?U=%gUdZtS%jFP zg_z>MvPKn8j;w>%Lkj9Zi_iOhGFgIokHk#CZ*gn%4{c7BpF3RdOhkeJR8V}hvLH{* ze@q;?nP$I17*||TBD}BkePwvm=>!Gg`MQt8b983}LIJ!6#dpBfJ0A$2bXBx8y08{- zg}SOFs7j}v$L__`=Ff4TU6l@3znqZ#BtjG5GL}rJLh{E#p2d`V!nVO}+p?x@`{!MR z`xjQA9X4S;yW=h@UkakJZuAzVI&qUJrPw=mvxQgU6OjKT^XHVnLhPa%5%266gQ04d z`)!w57MVi}=|I2qKJ*_&EH=|wr`#m@RRS!r>KJi!cT9sc!;(1bQRBwvV}-a1!+5)b z?=4We_vPCc@`N2BgkEa}Q9XM-F4qZyp~t9pSyaOhPM8S`#9mm9j@3sv2Wp4E|DXAI zu7A9gay5mCSj*xIOGbSct;T#9R$5@SMXE{Efh|z~;V6f^Ret?=-BOqe0Mt-z#B6D8 z!lGeRfN81!cGB4)oE*V`%^0o)Yk9vO8$?X$*DOfeO>6qi3&-aKwu!%_|!B zSjdTZ?B#V}5e>D9FP;U%$_Tb;_4+xB81D#9?nzTxYE#_beVko7^Bv`iO=9R}ZRm$_ z7qU3z-%<|M8CIF(=Hgc;tdMqwMRx+$NAP*4cpsyx3W9liL`^Ub-IkhTrlI zzt(F&_HW|WsqBO!bbWC_>8(CE*uHb%Xr&;vVys={D&lW~5`FGboFQq7|F$IG-y2;? zp&THE^#{{R!hH#kAADXGU2yxwGESZtigL?prQF(3% zUElufqor}S=*VhB37H+Z4frqKgc864+8) z3#;zq75R4X*S>?unL93ToXp2(5J5=uY|STWTcbtW$vY7V+$CGO-d3DJe`yBLyK4UZ$ei$m-QO` z7!0ilc!S8)H^6kthq5JChSTrRV9+A*j|O_zy0_^XnDFh6kl<5P$H_^B(u~BLpL={v zn4eZ>^zoky_T1kGE7K>#z=#5URhER9?2Xaz5I025BOs%_>wsTQ>9$iYl|xcUO}zoU zUC-Wtgj$5$=Yq`R$H-$Ql~+iMuT@TWNm^&e1+u6s@xJOnu_S^|#g9mL!0)SOy_R)u zkwuCA;qQkyYK!4ey#fN()?iArfAouULa6h38*qNIP}* z*zWTzGa8P&SbpUX09NRB`VNHx5a@s%wb#Y2S*vnZ@VM6k4w;7}no6W6v(;lfFP%Cm z(a&DCCEUifU2;UggNg5Qzt8`7uWg8~EavxIe1aj4S6G#U0GpaA76EIFMXGRl+=^pe zy(!FSN2f3EvOi|x>7}EZ%E><*WEa&W8MWZK0?t8xpFBgVmfLEZU8L!Jty}a-LnIJN zdcV<#NEd;z10VHS4rkgh2B`SW>CKPJ&g|q`28DiI-KV57uhxHIXs>97@kmHm@XjxT z+5wC3{U>ghk|Wt#Il-4%edNq>JYxqTYDRF1AWf=j%~bIWk;xo0*q8x**$CTKAnx;seFtzA2?fM+so-h@q(Va|Y+E@PcAKZD}>` z9&_{rDL&L6k#YEBAT+uE5d%`H@(@*ASz8_Ma-KSV!auJD8GJK=0wnjEk8mX!ojK-T z?opIGZC1u+lShhUet;Qao@l@VbHj6mxffbskahqKcxCV7;A$T+2gbf5ieriAGzW9#)!%_VHPH)r*Q6&ANb^E&$8nvF_>={X>F(%E1PJwN= z+wU-;DAY4eEehu=;`FqnBiYx+K@;h-B3zvLOS%;M$+HL``x}2H?J>JJ5`HD^h>Loi zHP>6UJ#)wce@jhFD;j+O{6mLSK4bRD&$tb7uSLH{e8Y|U$y5$N3poBYJ*=p=m=k@P zq(NbKt#Lp9d-JW{l{YHOH|il%%y;3LpNlk-BUGh2&yPLk2~fett<2nFtLp91iZDdL z(q@W8=!zi@B&I!ac(fNbQJk4AZuZKP&_K&3qL4G_`6H>`vS(@CoIX!U8@r(a7z~CK z$UUz$MsAjndyMLk5WVHvU4Kh7zS!NX=q06fd)CUzNDps=y-$rt~ z##{c*rqqX~08JbIx9vnfs4{Ep3VsF}J!3flwW)ver%U!{e1`fMLBr}rOy0Wbh8Xo; znm{FB^MZkLYZOmcm6%y8sfBONt|)wVr!dp)Hl_?n^T|%d+@V0FawWXr;LfG|pe{B^ znFWq&g(~Dk+m9>|*$oOSLLrdM)S zB1fI92BzaXETW0<&>YGVbFA~G@@5T3#T%A`+fo!#6S4k?RmR`QqNApY;9V1jF+RIT zL-8F7q*87Y!3$;uwNeMKuOu`Ds%hTB9cA>SjMhym$mn#y9-n2~k8Xbg<;P^z?80nQ z&rVwIKYOJJRRM()n_DiL7OpC@m|qscbjWOnFOS(iK01lUcpw|4Njrl?8l)B6^yKn; z?*e52lEyMTMMYYu*Zod>VwN>J5q)!^QRiZ&I_I@A!+=;_96LRU5My@dVrwvxq<>Ni zSaa0&+SFYY27(4eyCGIW;y6`3te7t0%ney=UWqcYn&sbWAjZl6a6Vi*=g~-Cb)rHZ zZF@@k5Tk<%x+b7dI}q#D9;|GA`-Mqx07tvjl@&Q;qE0QU^y!C+$8+8M9dSEb#GTO7n=My>=YI^qq`PQn(Q09eLd-+f=zfl%zNZDm^oPN(tfI(s=w z4~y?1wb*oE;f;=A8UhKkzSFw>st813j1g1)`F%SRx@zYR?Lh zAJ~-pGI-Rs<8~8C*R|RJ@{SmczzqDdHA$4)jlx<$%+)W~HCp>q{*1RiIb1CNo5HJz z%HnCyLGA}?0an`rsSwllGJU}4ZQ<5X#A?EZ5Oe0*{Aj(Vd|l&!qb5k-G*+e~??%J- zf+AaF!8m$n^VX-$e7rnRVNI#QRq+urX|%vh63O>wUvxk5eZmR!vhx}-ntbMSL?D0G zc&Nn&1rQ(IVE%d!V}#n2g;TL2r~^bn8vPCP?vLtu6iv7vU(jJH!+^Eqjo$%n=JG$B z_mxtgiD&>Hz`%x+2J%Od7a5a33Gy!_dHYMWr3nr7O{7DVi}lYY2j|*AFRN2?7dJEX zhwP^;D<;!HSBO<0h?hDaB}te}Bnv(gPJ00;?wi_Cd3jRdK`2*8yc)-g*I%5(sL=;d&+_H(UI{rFy z(6wd&7?)&$l>o{6=?H^VB=gG!BCZ@60YIUOQz=&{Z1cFBITUj%PoJxGqc4>k@q`){q@EcaubM~iuIh3B9TY$zt<8HTPxn{#XuolxrDLz5S8&jd`{uT`VL0Ep}d-0 z>#s%!%9raJYaIqWVCut&bf*PC=?&@OY2D;)oHYumGkV*=?+1wmmR6B|)eC-93MrXJ`Q zpO$vHWyFS%RxcFNyA-ig^V2*`bbo5(yRRWGd))5oXN)_}0;hda%gJ1JC_u@7iprQl7=2&z>3*Dyq)|e;6b6164vawT zNnYBTg9pb#`oTi^m}BC&w}bw&0nO(i+^O5RU*Rklf}#D(kz9ThcLj+h0O}yxUcko~ zR67X!r~$EyJ^cOaf@RG!@Qz&84gBoH%c7AFEHt3?(;_%m0D;kFiOl^#QztgvF1m$x z0F+YfCl|+1P@8coOA1>i?65cZxfct4{X@Ux>d%-edBHR>IsGvjdu7SpkkJINaz}-r ze(UIH>gX*xf=#Fwn#&ysNJei<>O2mFcrA&u$;_?}4F~tFes3F^TOP;Aa+%1yTDpwN zjCra5NG0|=>C_5WJXeB<*4FID{O@wk#G~&?f)JQWdlEUN9r=dP?VkMKQ9c`EHy76l zQt>6tR>YHaw9>IMk?E4}KAVpL@XP5FW}tSMt-x6C{C%nXTk5^swZBnkE#jWqsb;hh zziC~yXb{^^5exj{qEvkv6EC?$DGG(F38)u>xDMu>|0)cFl%z>3b`~X526$qR8D1AN+0t3b} z)_;S5&$hjG{)P&U6=?4g0;D2ty>WK&e!B1aih1Qc2H;?Z0omzUOA$JG*Eu306%yy9{~W|v@u^F#*GoR5f?{4Vyv2xGoe$NdAE@C>3m2n!HE z?whMAwRomG&~>}?i7gNw^5m#UF|kr$;!2NyUN$`$!{r(TY{eqpt`shlFfPQKz~nRE z>Gfal=RnZcMl49T9ZPr=fNmAg{0+Sk```uHcdY*vBoT9k9s_~Ww~r9ZZVn06UI3%i zmKD2ge4V)$PktTxk@i;*YGi+{olI~r_Q^%U=p$##&<}%9C|FJb$}XsqG(%&8L$qu- zCUmTOX@2lWIh8ZOdX~Z*_BoI@iOO^rJ-CcOAkJangaqq}bloabh7J_ym3^wV_PBh- zLQf@uMaj;}n54jml-w>;$rddL5avFGg<_xxr`FDFcKR1|AETf-wxR)o=$^4gRd%!} z3E%4mtqA*1{65t?y;y;LcJ)<`viZ?HUV> zevNs+FPyMZg?z0+PA=kp&wRX1F5-bALOVzwB8r6V1*h(HwUmksm_A1z2yAmgM&v_r z5QtSF(F5T}VEhI#557+n2?$G18EN^};t@Ieo8aPW-z|gBS?LZH?`ZzmKR+IF{gsfg z8j7u6ZoQSU?pYc_LMME0W(T|=am!&_91V1Ah+lru zf*2)89Ow0f)I!4xvf#xO%?m`vu_N|;qsvTBdZCCLP#L3!XE^=IX-mN<;HmwM-@Gk; z_c!5WSx#v;cw;L}P!1YkOEgH~^T<4gy_{z0_q!r_QXW`j$~!8ZSvfEcMq0-J9XyFX z!Vw}^YTjiG)xw-CKp^&ZgZvn_L&zZ|FD?;>b~*R zK;%{bc4oGDFUU{sy+I({>u7IVSXv9yKZ|{It=`l0v$P4B)H7rPX2gNbll_nNOSTw9 zNCN1CC$94oXP++8^^mM-nfIk!CUMpL?H6Zwc9BG21fv+ zGTirW&eItQmY(9Kg9bM~aYiSnd2Rg-eyEZk34ZyB$A`k}&uWlUqaoEo$xytQqa<-+Yb4Bu73%a{5 zMNgcPj$r8qdpb@o^#wbO8{&N{3wkdyaEvj@6 zI3byPL`?08xR76*bBu7|fs?*`i#Bvs`epUJmT)mqXg{C2l{xIyXRq3i({GQb{W8qM z#>1-TYizg4~RLwaCQ%F_Rh3Rd%Mz zIDt$?|DFC7t(6zPOj}7HiB^8%P$?a_kq%IgfAT@N(EA=)0>8=PVp0)CzL> zeMnfY=@Av)5-R)JM&nT?FJYrC$Es@(3b=zIAOO(ktTM7^a#zG-Ns*a#@*Ex)8Fm2& z6NZ(QuTN}q|I%FlzcPQ6!60%r{r? z+(?Qe^VWCRyykjb(`R}0$>;B;nK}0-J4yo`Xw9=p{6zY&!8@ZDEDV1Nn z1ce_Lxw#Wchz-r&rzv;9F?bSkS!3=5$?Pf>JuvI|sW!IZdNKq|#^MJCTfgoy9YV-b zrU<}hv{u`MmVYyY#VqE&dKf!Q;Mr%L--}5(^TUCnzcQEN`zeI63s0Yy0?#L=v18BZ zM&7V|a5hMEXnxRE9l*#&`$pf`fWNl2Mgny#dX zz+^4jfrP(i>hiihP*#h-t_Rzucs%LRXCE`Wm=(z!`KP^w!N87=A+J4OsonJz@Yxa) zk6-#$SP1%T9jZL^-l+Mr-Ti+w))t=KskaRLIziHPpUP%d$PNUOO8ZXlrQ>kN5_-q^ zZOf|$lc5eC=%{u;@^`H7S@KgV4YYZcE4zf%08rg-a!xc(+r7^RxTx#c0Fi^MGq6&& z)X20nxy=LTFVp|wu(~uQ`DxLI@&9?Q^<9#907f4hhfPfEJt1;jN~CxxpICV*G1RQl zek3ia&xT$dmAZ?YjEU^H+&kiTmHqYQ`1Z2NfPj3Eub3BwdSHS-GD9{#!D#8AUNnw|vCTR#tjj08qL1iu_2UfhDL$$ZMjW#SKOk|- z@-n_}Mk1s|&-@B)KHn52W-W+iW@EU(qTSPyrA}MUf`r;OVNdAy6beWMX>}b`t7itc z;oU_)ccoOE40%j?3_qKDo7UZhzx!g%k!yFlIB-%=NMW88{%J`aWR$<5Yfu#?D>Ydu z1Sl*YDO@37rQoeCKcM5k#{GhJEw&VUL$+liRemMCkiDbBCU4d^8pZLD#iw`-0+B z4H(-B0RRBuFbNsWVCLbH#ud-0-*S~|mJ>U-k}%$^?UrUGjjBPprn`9g$3#hIwO-Wf z8PRSCGus~-(?M8}J%o+XvKh3AFv+qE{^*KW@OsBduof-AB{ksd(q;&D zeSVB8X&A&N4DSxhOdPc7Rj>}?cfFU#gt~aE24UjgjJXaD|KVKeEX?sGFMQkzl1(A_ z*b-ayTzRKI(IEORVM`FApNEjd){4GJmJL8j|HNa@oDGp$mCR8wP3X_Wt#v8wA$65* zHe1v9E~A6vy~2Hd=K6QAwk^{Qa}Oh{p+ndHm!vMyTgi|bk&gD~rsbAb{I2Nj9Lnb} zB@}mVy@YorGc5^K{Ep`r0@p{}!v1r9UdjMFqv<%zGP8dUe<;o9QK;3{kWjy(J#&kE z883Z6Sgv*yqUFOZ9DQ8ND}v&Y6}&XRdY6lZLbjW)dEKoZW*z9AYW@i?GAn?rrw~7zWIVTR-eRa9K{njS-SthosCh-(5VavA%ORS0mhnBi3h|KXl_#$ZX}!zWy{ zL~p1pQq1?LdM<3T96ujM9PU))0h?N_kT1V8@S0U>wR1vF+fP<_W9N>pFMvSYSJTE8 z0@(hQI=tA6q1BdymI3ix`Xo$d->o^z-p$zRh0fn2`0A$l$xZH{xHQ|R75g^onK}2S zz8}CZOco2){8~XwBb;7XeOIy);xM0qVa3x4%V=M;N|-n#RCJ6O-1uhEV}6nOkY(Nd zwTSP_lsFX4XL(KIv^ZZSIeYzS`26b*1&Qi#MIWzDJSV&VqHk0A7LStOM?9I^_lBh@lKwB?BVdD41G9D0x9d@Kyzqn@B^1G#9pdCvFaqR<0KIQB4F|rJLLycseZ|gxi{M@+c z_VFy;a{ce+8L!w$k%T5vq`M@j49B>pIk5-jZx!_&4smv%QK$YHl7F4f{j?&;H=!T)S3G7kH))V z;(4z6eBR^6{BNon&005zK(yTE!cG1>IEY%B>;JI}tphb_1>HK@C?$%!ncRUhii4-zp!rhhH z4)vA`^H)JWJB)k2LN!Ba0X7XKhbY~uZ6G3yZQdq%b6?vdKF@iEd4+4Gv41l1z8k>I zTl&J~Z=IBY2#*zK)i)k?dY!@yoR_WB7L5WfC0P77g7NR}ur|?f+9AGUkqCgLwfD98 zCutSD5-!J;@4^v3D2m`qw&a)l;G1i`uAx&1Jw7Zw_(ivZ+wO|AP(QnBWx zo#bQLeI2_b9cq^+j;B`)rRZ4+9^1A)_YLBElY+(P#-+B})rWKP+$&B;V^Tz^PQZjZ zGj*B244oLo*#yAj=kB5TP#FXwXI+O>v#iOm$X7HeNYLHPo(vlMVyO|gmdO!l{g<$o zW(;c-W1LaYT+n>&m86gB9NG^dVmn?}SvYf3rN6El(8l7Fhzzz<7S-xcK#=lz$v4vA z;lHMCy+{rkA8keNdevLo@2KvT(p`OKeg*)UN91}p`R|@K{Ufg#XC1s!sitH_izCV+ zD@kKn+w<3vWp;t4bUVL=axC5;dJ$;1nKxRPTc2(yvN!2UM+ENlk*{q7q?s<~bhXM!@vzZs4;+X}Uf6BnH8 z_Phwp<}GSkFYB*jmz$Cd#yIctx!~aMjmgtzlTARv0z*cU^YVYVz zhtz46ClsG0KHC&9&UuSz&g!fkJb?U}^RATe{9fSy36)jyvgX;!c7Hkhy4_!rx=uZ} zQ?jb&$O(tVMOJDljmr=pijO<;t{V#VpG<=Uu(f5RrMls~rRl zt?iPI_U$wO6k20_VAbru&o7`;W47>!L*q1YArIp@MCd8WXbW+GR5Pcd~auvInITo_AruDVH$n~oEn zZLIIElJSh*uju-BK6Hh(p=~{xyl|3Mh4M4QJMNlFL_m-J zMG1LUe>8%1;9dwrHn*(w_UO}@S<8Tzj~Iw;<=5P1mH!$W}8R!(9=>TKdzIrt(q@a zj22tX_L!OWEX`E%aU4Fyv(-ujfQfaP7Y4WZZ-ghKtEu)$JQWM3X=TBg|I;MT_VZ&F z{#2e>WoO=m%3)37$Z*TH%~XY-%Al7=u%HCn(v#~SDPk5qA!A<-cyo3Azx=})GQO-~ zdxW=5s2?8!qu47s6LXR5uIfG33H^w{C1MZN@<4p^$7Vp4_*w);XW3}$%+II@)!a$S z&Kbv5vd5=AMnGd2_ZgPHX}dX~Gksq4+i5W~&)MzFwKnLvmz8hhZHJ&F4tf6;xWFFQ zu2DuzK6oV2IU-8l)QqeaUf~}zf&k>phW09JV5kpV5~?eq$x>N16?%gwWUg9jIX@zw z)yA7X#vScQW%6$b{${y!n`J0k@T-yzL`0y<$#z{BwNy}l(zehV*-EZ(5tpx|1;HgW zGq7jGB{MH>F!j3wLprD&NpuZb!lm8RGuvW(lB05unN&VWjynCriQAU zUHqt}}P{#}Q- zov$=6b)5^IJS)C=0AAndZor<`t}LFp&6Ytqi~jNq^S$Z~q^?c;sML5MjM&1D+2=-f z=wd|{T=c7Vu}nq@kG@qVuFU{< zv}(S?w+`R9g2*4|8zKR-r_1{U4p~?s{LEfp6Z6L8#PHxJ?SJ!51EalB zqQAuiByF`ToP*_d!JnD8^-Z6?JhI7~^(*Ese-KRjwgIom5acCOw-3xR5ib%Jqxm^b zkdH{#5Y+%AKej!bdk{1AM1B{#^=gHN_EW$s+TImgJm#!J5i}(u9oUS)D1TR#u};+k zGPC|?dCnWL^#<%?pcnkW*IaX{>-9~_KytT=>!?}f`uE898RIHppC&f#-|)-#so zkCQBtc)cLnHiZL>jxC&sTH{tE<7p#$rqy|#OS-wyQw*rPx+CAV?abhm4i6sculTVY zY4B-G5ETy!DHV-jNJ%KIM#hr9+x2TbRh7xPj2nTYy2UYAnZgrw;<5(xl!ZgEk-1J* zOA<;`owM{*ZL}<8e~6SC~_%kHIr*1 zNGFURkpoi@%$L%Xr9Q};4{LXL+pwsuK5}PxUUoK*#Q{BON7{0c-v_P-gMuH97Rp;_ zdNyVC1i{NGWAJxPxEizQx}|;LkPXuEb>q z#LIm*F#T&}_c!kPujMm<2Ff5zlH-c$hmObFx<$t%%E}=((~FP2tNMQ>3fP*(ThMHU ztZ1&0LLu_wM6(3}b3+#fRt5Z8LN1;!%Jw9u?sJ&>{H4T=k6H@5=@jW}iT=OQO zy8J^*ocde1RU>|apKAH^a{q~g92;?oyCaA!z%3w9Iy6tVkk-Jdfe z?;zM&V6)7bDydm3H^}JI6?>%xPYj0(tz}L($9uI$3Q`!MaZq5PZj<$f?{7!+9m?0% zjV?3t@v%6nja{e}u9LHSR%t>f-yr_0J7toxvUb+~jjNiCqT|UK<;p<(sBt&a|L)Fn zg<#ayHpyDc_|V<2_e=e)Nr>FbqmW7Gl%}HTRCWz-5B{j1KTQWv`mpyYOBqww%CkKD zr7o5)@{pOH#K_pS2JIRcyOe0%y{hBe3en4on)9SmK^|jc;beZk?%AK z47X+mB zdH8_tKNu<>RaM5c$7_;B>BT{v;-yIiGL|35kSNxbZTnm=^Y$ZCy+h-TsC#r8j_wS# z@6yX=jg9bBTl9?ne)SiM=ZTJ{HBZ-e9x@10xwfxdJ@EHjaHb`zI5+$`os!$SUsDQq zQ>k|R9^c^M|Kx-3uMkh_mDZ?(+~(8c`({^K>tLrp3ZM6 z+iQ!{atY`coz9!h`~JYa!Iukx{wEbWeoiS)jZ&W+Tx-r>2yATMoE$a%!)epz?eAHc zGavsR>v(x#4rAB00Y*@1hZm=;?-iuGIMcn1W$MTD@0lupYMSYit_-1R={#J@fV($O zmuT1xGS;vbsR_+!Q4vFVG}V}7KTIUD#`6iDxpef5ytH_UXOr_R zyu)PlZ|B>jZF!ZV;1wCoe>g6NFg(z~!Jb<kmt+~SW(AygRiVbSJEk2nCWMG;vB}%Gi!$z&Z@pwS19ej zAZ&`HTz&I^jrjg4Gtba}8ir^`&X0jvDKnF|5?+s8Ui@@&*;|R*>co%U8J$8XYSx@R z&xyA>xcrV|aPg@QWoGq5^c#?E^JUIb&h&h;gD@{VvASgp(B%KEcyRsIQN=F+Hr|T- z!yjfmL{?3s zukKI8V>*Ir=xxjIYAWo41n4!w3VAlRAL7g&atO55`}`}Q%az{M7Ek8a*sdCnbf0xv z=DC5lZ8)5UHvtu{#xE;Y=I2@>+9eAOdMHe}UVqW|q4h_DXdVY5{j}3z&0l$s!N=k~ zwZX`$U!R!7yhj!~Stk^&3A!;ul`=Df7{; zFhk1L%`NAuGv29Idbx%2$s)S$;zI5d-L_rxzi+4Lea^i^E7MW_CBZDr9D^=4PCUKy z^3;*|dv}Gq`iNr<9wMx0cr+$AH^v38ds-#T`m*|H7BFBUo1igUadz!E2ohy2wXZD~ zxGzdNE_{a-U(bweCV7XL3cl(hr3& z#umT87Plf)45nzRQWd=T`c@rs!+=zCkg^p=dR5HcX0M;uT)$PQbQk-b*v|6>0KKm0 zZTY;A)ZZp!QYyZBLemBkpW&pQ}eUwGWyir)MBr)tfnbhu~Ed5_YUy2Llof%YkeILapMHWSIBLY{Ri ziilAMnk=mG$2wPu+FJT(yV)=`>X2%WcKLb5X)wm5TjW>UwwKQ2&+dJEJ6zn85pb)0 z|E#geNLwU`u^Cl8?gI9`x^b#>HZwA4@vNW;)b zrvgLgFf%krmr_!af^>I>G&3-CcXyX`gMffTh_ugqzR&N!S!>puxlxkXlAeT(;BsW*uGQNi+sHT4K;sXE&zDY2lvJ$w1%($4P8Zsl-tRK1J8=8Q>A z{Gv1}nyyyqfDl~ep^_a2NwCap2f}}@uXN)&ADI9jTvF=?wk?u zR{(le>Fa%74{5~>HbY8BU9N6JVr?`jK8Kyqb0kV#3<<{z^Bu5*&*7>V|ftsr{#gypy8& z5SC96MC9dA=b{p~n6$`M>Lut0yE;mZeBf&Lwg;X8XF9{xD>~fNp7fu6wX9YIdRB>& zcmG5@i9OJ`q;5E<35d8aDb2_=$}UE>d@4}~w%6yBT^?rAXSm+A3e+x@6oOxJsr`7J zEtT`;V6yMUS!IZTDZazthVyu3F`__SRobegG^%qm)wlN??%UQ+Z|ijF3GeqsG0T<$-jbBpP@ouIsmF zpLl)oeXlg7QJf{EA~&|zt1{2CP!ev)vXNd^qw7O`>H2};jN%9!uh*zKhmXA?P}L>c zUJ|7N9j|&+k-Wps{y-IZki~l_*x9RL85zb$PEgNO{QXimCL{M#3D;ij^|fb)FY80} zA9Er%>h8bV#aBE6l9$nu3{ld5UUdHaX>`=6%ovzYzc`Z-Jy3WE4qj^b%&X4_KxV^fj43?<(De5g>V-9znAT>N(dh&F zDE#^doR#~^(^ikP7`o{Am=MP_PaUZVAIeEOCy#d|Gh7ql#P1# zDgwE^wS=;DQ#rYFXq(B+bUd?7tvqHm_$Z?MBXI|>qoj=R+t_%&(r}RovXY~0CMW&f z;iq9uBg;k+8hmqnhw8rXE)Bg24?_2A$FH!NZK(p;#~XMvd^`o+Dv9O#h-9&c7QoKh z7aEKAt8YCLemi`(ibr3wqsZAk^+p;lIXKaHT}t_o;cX|GVbOJeD(`sl%K&g#w(sDh zY(I>N6?I(GlANpNR9_$;{Q33ertt>`z2)wylhfJv7|EQ5Z1v;O`dd2lM9$N;S%}c* z*kaw)i!o7zxzIZ%iyKNy4SmwJ;zyc4`L>;L{$StUpVE-B#_U#|dyg(&iElR&w^=Lh zSThXU}Y$k!KOseO9nKSmL$PxN~8;ANV92p)P-sDfo?~`UjL8yV|`8RcoBX z?8PBrBq@uB;(8Q&ZZe`nMnCjefEFBnc>S(Bt5j@f-SqwSF8YIJbHi43lxbi`Mrhhr zF>C4Li<5@jg|F(}&&^Ebzt{_g3NLiD>s)XWn@YIPLAU2+UsP)7%^t-nTvJ?@$@8xp zD!1p(`NusjceG^d)Z`5`d&?Pf-~rWyg&QcRqWU#!wfsTGYRHfHGJGX|E8u%hhb^VB zCj3W6oqre(|1f^iaMsS7b=TkMYwjtgzHIir|INy}Y1bJlC$*96J$-NT-?`_mX8oB9 z5__j$&3qeS>b0t0IeEvnbyo{EmBs3ptU-G`2L>yR`-z7%j7uZ1tmjz|cY|yHFy=o5 zaynXN=BxbRi}TEV0lkOB2!7FYD>wBoMVFSHJmh5<|HDXIv*M+>?k``J$3f0Rh}>BO z8pe{T>=cUoxd2#zJR#|8I`?^3DlQH~m6y~9j|PL9s|~~-Qa}fC9Y5-yW?{bC+*t5? zk>pA@hc2VKdi|$v(>Jp zn@mluDT%%Jwp0@n6i68VDmm@X;wnew60a2ApW3^Z=f)e$hXaI5+kD~ck~7)j5=cyf zD2uU=*e5|VO!Jl-S}SVz9Nd3pfkZgwD5zo5YfH7Oq&+#^XPr{ix43b$#;Z0ajy>p^ z{#bh4+uvTd*KyG+Yg$oLBFdbc?^gboh?k?p={!~8BkjytyOD;exo0$Zlcz%Z3~T3^ zE=!q%&nws?n~CEs-A$$AiN82scXx!yB+*k7t?DTAI>{r|jn7VUSIb@x(&du5h?5c; z#~N5V=Vu}(=#?LgQ?Eio<5v2H$MF>N_Lfc5otB1=^YZy#^{>}5L0uSP?*&h0Hq;y> z#mINu3dr?l-5jtBcyCFHqMwgqtiW;vA;Q3a7}KH6zMZShUt32OGJXoge#R;#in0b9 z6!Pcw)17XVeQaMVllV9v+v<5BnQtAhp-S7JEBe#)o~V#HjuN6_=cm zK9G6;y7G7MDR<&9#x_k$;bW=8hI3KXw!OJ92Re}3dr65FMaUJb=N#R(=4#{jA5m01 zioA@IC6p-=l)hzqRDS4Ow>|nJi|?X}(?vNL?VhEM3Y_{|ySl)YbU0Sc54^D(($kAXOV}K>iJmZxmI`Lha=vX{-50|hT09(4vQws?scpJ+0z2e#6HU%NTXB7 zf6z=aPGSr+lI$5KCgxKNG?Wa@Rl|5fjOHkk(DU-Wd#|bWl!5evDZleGGMTUc!;w9G z@+>S)#p9zSwW|;!zWI=1)%zr( zjv@K@nGhrh1R00J%8T?I_Q%IJmARmritvv!sTKuV@QiRdUmw2$bB$?os9Hunq2}Sb z!`xCF69Ms1F|52=G&8>PaHiq3)bU3H4Cic(yu5 zooRTYtyP1Fua6wH|Ew%aAuy4ipU*~yT&myF3I&hIdez2{-MX=D0nN}BYwbpr&7CFI z7PtcyBR_uhE6f|L44D~!{!NB%$6O7!6rfyA$51nn8_o%0{3@iU6!kniG9O z;mRVW&yMgUs)2dPj(l(vvb}pV=hsIhW1dGC(($y6$xd;>-l_pOF1O6&NKV$Q^tKd(dVjX(qQT(0- zF8MEpS++IE3thXi^eVZunarO#UGWjU8+xM{z%@km)PP7ZDKgN>)t9UjWDG7$V@k3Y zOc=H}E31=tdjDFxyL3(&D6{rOpwb+HV(NIRxNv3jOVsLy8B1kQS^l(RiJ!TDtsOPY zw2W@i8^|SF~gG;hqMQqW|}FIy|rXSS?;@ceAYFIT44?)bz8*6 zmsTfx;5o@|EbS)-i?zJ<566LgmBY$swj&@EfxaWl?pyEb(sPnd3n!kh=55AmCsCf;C(_QSbdTbCDBIfrP2X+A~|N z4o4=nZ8dfxc@-hS2HRvFci91KIbz#}OpnH}q@3X#_Ws<6Y}Naq-6Rx$PDJt=0ek08 zv8}b;kmpd9E6E|i#%}U=@1Y)v!Uj`<|Bn0Qu);4iV@X+KSUtl0S!iaxP9EATQJL(x z*5I;DU;o|Jv9W=I((YO4JM)vX^0k;YC;MTktd95AkL}O2uH&`cYE|B7i8@;KuWdr; zVoKf%ENH6<&7R;$u5o%;XNX#t5a?Whc zb}W}zpU46&igT6NRb5@^*Auc6mhlS7pB#X>fxZVt%PqU8ej=C&nqy!a~X^)-}uWkTst?U4SP!`QUj8XdIdwK1t)##*h)?Q1-)63+Xrv1ZZ zK6iifTGaFk9jr*-k(QJWL<2CQi!(XfNi^ePurSGsSZ{MbZfLWVc#OcUh#2wOjneM+ zeQD)=)^406B=OyKn0NyHM=J+~;b+UH`T62`-()u_?Ip4urUbS8*`Zc;;L$;40yj$4 zrfA9ci$L~r2^Mfx1n5KO$vx6K*zvs9d{Lp36``zgH6zT}BI_RbIg0U_I9Lj0D5+9~W0+~uOJ&iq_} zx5K8wkrOY)lLPz=W&Fo0-*Fp!v0S@=$^O$EkQxUDTE#nfjxW76j^_t1CeN@Px z(;DWd6Te>sQda9qizUHOGHXjqghM{Y5#o|d8weQ$jEs;L7v5Tt|FSPs*mGo$Ms_V(r9dz|wtP2>YtqbV;D=$4|iwLGg-H2vf z7_o?J^rKO(!;#7ga*u;0^gSl65H~baWZ_Q6DV>Wa51GMx5v}A&kJncu6Pe0*81^Uk z8$v-fy(_DYhSY3YlF7^YPLlqxbG28ymz6MIxw?d~Bpglb>&wQaHD=0MteZ-Z%f2E{ zIENBUbD89$5=k>&SLQC3Hn{p`6W@_BUU}JgX)zZs2$XCk&K`k?VwL-@-@wfz*S1pt zx?v{fF+7MRCY={{xDTARG=T%c(1h|Is*wq*B``rJ=z7p!_n(c{g^gB_E* z?kULXTUEC^DX&mO-=o6Qd1THKcI2Cl6WKTrPkF;bs6>|(Ty(`&D5U@TyH}jprjo+o zA;f?@b?LBRR-rIf(b*;{gRG^4^h)gQ?3GFpAvhIt=HsP?!X0hmYyF4UuD=p1*z{9- z#FJo#q+*8N`TR%MJieC0^hcsjT+-FR*V8w(MGr~tuNfqTI^WyT-M!9ad?mKsBq=** zUD}UeXZ?*V6K<{sjsIom=ABPQClK?u{jj8;+CBybh zN^8|wH6;@?wRZnUCK2U-j#oDPrHnQ~jGE#1qG!iSrA1n;-yozTR5YhB7NQ*$QGqjX zS2;y5N&~(XYyU;rFlzUzhpurZ?Xn}JG^9XQXN@#AHzU!9c*a;Rf%8Z#lE-)Z3R&)h zZMNb4>Q-8at&_(drc6MbZ01~YzExrdjbO`f?~kAY0U{RrLK=13hixB-+?Fz`PtNNu z(YUWSwO^Dt?j&WPRQt!8kXrv|*XXJj%?&p$bm&e-O=%+iKmh+qiEzlixQ&bxt;(FPsy&;m=Agytu?qQ_=j!Tbiw)Yxt zkOzd;#Psi2(W7vk>#9np4C2US==ds3#hVA$ON=LaI>*TFV`+ zAwkx`=D1>43JMQ7HrllG9AfH>Eu?;Jn{4ys$+wqrYEYaMvL!dDEE+g2I;mbR%`*>^ z7xJqV-OIfP*Bt6LG#DM{ef-4mx9C{Wd*kx`ABL){X^`2)?4{JsX{rB9b)nH_Enn56 zzoZj|r2*dgp%XVa`inV+2qj|3`PKSBxznv!VQ^{eagt-8(cQhkEdvWkcUea5;#AN2 zK4(UbRlBlHSdLD6MAti=p27ZYV$jgAlCfCJ&!Es#L5pPKY>GY7JK1YK*zm{_U~X8Y zM_^~~j$F^4?MU$QLDBuyy?>qmo}#)}R1mw?)F3q@Ok!yvQY@VBbGV1D^7tn#k=RP5 zoWhdD>6ydRfjeBpzy*lM9A2S5!%F?;p4jij%4WI3SvdBFkMZad2$1e%tJ2Mdtr73v z7l`5#2p0rcmkyt^svfl|P5r~D=3w)UQA{!UXrgk=O4WB*ZClhmW#>!mTIQP~Rr$g& zu3oC23AHo3MpGQpqI<)N+HT3VG#!b!o7A$b86Aa5^|=xKB+=iH^@uS837yHcwsA^u zJ2lZHl4We_j}9Nb%W0gZ{rxFLZ?Rm9OS)WEySFb@rB1oz73KA{^Szmz;{Y=cwpRJH zUW4&4*OYJAXveFb#r_zgyMz@AQstP;+1sJCR zO$vA{`7|;QC(3MzQ_qZcaes9DqnEWOae`H$&yG4QTJeU?4YhM+%V0=kEdMJJKBOdf z+E;7+x#>!uMoL&7!lHs_J{TorJbx-?u8!X-w&ud=Oj5Ljqp7_NTDs4fsWzMW!Y z&*^G>9c5tQA9Go0nWE=S}}d7akI5Z_y~5>5-7b6cg@2`Mtyo|@K^$AXyNga zAYLB4_t31>MWzNvprMfc3HKJlt6STTbO8h_0tLHC$guq1!k4Z&NpuVmu}_yLGHI_- z3ihl$Yc%kag!8ZwR8jatMsAW<rj3ujcSa>yv(R-r!phNSUh3vE%224FKH{~=WtnVS2| zo&H$k*m%bGAj>AGjX)2uoc0eRyoh_w?jhmlu1agcEz3P2L{yJfo?G$Z?xPtcDkv6n zl;SD5`LPgdG{~rLE^eO4-OaUDJAk?};NJ7x#G7%+fV5-BBWxS5sc~Uofd06ga|p#} z8h%GAXQ4MjdJr$T+;@=cX5r5^72Y8wLxR$HEby(V#$V!6X2`16^?t=T%vs?SD;oF1 zbbW;3{$qKaRG(3*e4%6W3%k&zI6nemupmHX&-TLHx6;*Ig$8y=oqz(l;lK<=&Er*L zhV~63qokB-u2`5g7Bfim{>qsI`0=x}g-_iuuM3~2+9Y_p?l@8>RP^~%E)8Q}=GCy7 zqoWyub9ckn*(p4D{1lY`Fc`J*%&sVhMyl?z26?wTw0+B50Sw@Ro43%v1xjD68BRxE z^>~D994HMTmTS4O&(L6621gF|1@80#?x2&GwREm37M^3GbQ2Mc;Ui0gYZH18bp4vi z^wqJ=-Rydli|F0;DSUVqB2p<63FVsWA#Ez9d8otC%l@?d}B4}w; zy(yn@u5j)Vbdq2pH9T^LrDztr-rw-7iLsZKTvX2}bdA_mqqf?EiPa|6O1MT!A@w44 zheUmSSSsx@4ierXCmqgWq(E#mFoEaz63=co_nChfs;ZT*;^rHjl}qWY9}db^rJXtq zC6V_Sh>I?kFnEK^9r4U;aK@KlRd|}ZU`)QjQiAy?A~QOsbP+=n8^tB!qSyzZezJUb3@qX&lfz&e_|0-0x5dB{g%JT*} z!Gsc@9`;9zO$v%7|eyA-qBpLagZtDEIL)xZKYS(^% zR!1~0H25)`c<4(Q3We&Nx?>oMWi#6}AL&IyLG(}(^!T!}|NWMU`e@#>Ta2jSlzU6QRTVr&upApFaN|u^%1n zV_*^y)04d6dym$|c==781K!1xYUVM@fIpa3KYQyE*zJ@sEt|iE5;)WT_Wl3x{m-TU zhwq2$A_qvC-}RvVfK%NuKzh2Og}p^6+k@)L0IB=6 zIUJI)2Sjps`jP`f9|(?$&4o=}RN+uy8R%UZG{|nM8Oj2n-P8Yvk*5u`l4KO-dY;Of zWVhFX`<-ZV$@jNqz&{MTim^N3aqe-I(<$KPPkq6WOlc2p6SKy}KM`vl^RO~1+BUHd zJZ?kmEqkUd>FC&luY2l$@$=o^?KCr}(V#wILppiNs zdF8S~j^px18rOH&r-<$1zdW_p$&z_beACXMYRl86;`KI=G=o9_A8+B2_(jl4M0`-J z;1WL8FUBWSSo|&WX+3JqELiq-(CoPL;vJW=cW`fjPUG6=;0eHMfJ|Q6ubWIj3k#gb z5{A{*AJw{646Lf)i|bp@9#!sjYJvn=>45kPd0XitkZNNv^nMq8U=gGoN^=Q`Kd)Nm z`h6F;PNMzXKNSHN_E*eUTWq~6?L3TSs@#vgs{HA{3~z9}gVOdiE+R0C@P##kSsgM{ z2Gdm8;Yn&!MNR@{4jy3QbZ9R~dbCq*`)oI{rP@gIicJ>mmdIv6Q} z#Ekn6rVx%;B{@axDJ8dBa2hr%cWeKJI?nsO=~%JacQdGXaXt^lN}N`!rvaEQkeV8F zJ9q=ZdOU035`it&Ih;8p~?k z{SzDCop)xu_yBLvZMuRwLk(sP3W1uJP~viqzGs$wn1J`M0wql?*bN^zYHH^B%TDtD zVF(L+T7_a3=&%`-W9e9sU-d3Is+Azt-ZryBctU=kNJ_K)#zFQnx6xmRLRmH8HTfr= z39~cf8uU1DdCj;5QeXrEkp}N5QAx`0N6#?hI*XhD0QMEM%7^PAQo~XsyhdtEt-@ic zoe#VxM)_y-JR5T53REYW)_Ce}Nb*JuHHq6bNqN-_rN><@rbeKRPPT>8>jy4&Ly6bz)6QfH^Z*)!A^W6mlQ=Hn6se z7IGD1fK1oNHpOk?x#uLuP35Z-L!9PR9Tht7cx)wUx1v}e1?$Ia$EENf7N}ED2oPb7 z4ONQtDtp)H5iuZJGzL&jHq;TGcSz0{*G$$&ia*NK?Mddz;)%@#Hi6$ z3*Z|obQojz5;l3F{M$YyHq13>vi|lnd$S_fZ_Dp9yW^O1$Z6cxbbD?b@qL69AWS!>ord6}fc~2PyFvWwF zq3{+7SuVS1HP9fq)ManTr$njXv-SvQbvD2HZj|M3qgrv64sKq+;K1+YZ$TL6m-8Bo zT|r!15m2Zdz(d2J*7p7zxX6AyJ zFon-xUXBm1W-q}BCGk_PGm7w~d!`;`5}$lIDCLZa=xo`4^0{(<*k6D%qDz)?TF1L( zeGM4moav~%WgE1^8?f*qXqx1NSd6f>-x2$Y8r<^n#1FI3h|{nM@c6V5=uetTuv1m+ayK6ZSMU-Zfh^n+AzCK_CWG=-!Mw ze)5N31B}U9*jI%m7`bwf{BblZZ5+wk`|KX97;HIW{yI6;^v>_yJ|3kxE)|e+ zr#Fd(ku5HIdB5n1Qx}cto-%=75l&y*<{Q)6CBN6+c~saM(dy4B%BVy&xFA_bVWRR} zI`MRVgJj*&8aT@-ZZO2C64OkQ8>*OxBNG8q<%?S0uEUBPtkRi3XvnXqshnA)$(22BAR?!v7f_3%ax1nH9J{iF+S_=ls1^><`q8^YnzHaK zwWsoVoUi0)on2@WDf#WLeThzU1aT*|@7UecPru?0jYN*5%h-%!#C!t?8b0SuMz>#w zI%r4o7S;U?PAG(a54b_5KsRdA--_KGqvDD+ml5LlHoLNT|i?IKP zL8K8}-a|Ni*xr51p|m3!q;QCnP2KQzirv~)@xwfQcz#?j)}9Ii)wx=j1DOD8&(rbU zCQ)S~bfBCUM)Sm{t+z{NYh=sFShl+SjSRh|8<)7A-QW?dk!HWL)T6Rmm(o-cM0|d? z!4g&N6)c1iU~RIdrVho0KOTnWv#$vUlHL`4dNrehI0Mx^eWDpNd->f9e)NX))$|vz z_Sb_FoJ)=o*V()GGY1_J#y-HC0Qb1m4VO5hw`{GaK~%+(TWmu-7X&Yg>gK2NiNx;5 zszW`{!Co+AF6{>}9Bnbp&}Tp${w@S&6?7@Mm2V%g<@T*;V)-x8VH)hp_pVHBPlO?- zH(!)EqFb~><^_bcFy0|gLrXwWRU;)VCPKNC-A((wn)=@~+Nli3KfrBBJr))G3)(uA zo$n_4DzV>6OgRtI0jCGZ+w)YF*CpqIpK-W1BB~4{%5M?VpMgZxw7&qLrt((IZ}&3( zd{rCFitNowfxbx_#|XePJ0GrvJ4EXebbtzoS+%`D)~`xk_D*phpqkq2lGvGY?*-sa zkd-Nkk80_1W%DLmA9~}(iV{?;;8&2xOn$7?yOp|9ogIM#IH&kfpY4{n5(jbxWp%td8~Sw)w^%1gk%{y_ zsKJdu<3d3GV_t|aF9cLXKhp&(Mp%`k^{X)H?g?$`^f{Up7w)jLqbyTjG}3BOcp0vb zjll)X-+i5%%jbQ<+lr%a%xLVWPD|D&7A2)EIJc3GmSS+4Au*#)>{iy>v63TCnUPdqGP?#LziX9PswQm6sHzyjIQ;Smmd~ap5v$OA2l8 zM~)x4X^;NZrUY2q4nbo7VVL@TFT&Rnh9AJ4p7tm39aV#2-vyqyG1KHh$ol>masO#X z^iUe*LBVb^b<086QS&+`X>QZ{9^`G*WiQK=Yn+C`w3RY#^QqQ(gomD-U&R2Y_@n*ZR#`dJv!9wi+so+Kv@FjIDLMl+#D_oBKtq zPvmZ?&D2*QObK*k`+j*%P41HNCIL(E*@)eXmG#(#BZCjA5$sWf3@3R%_Y#5A%`=}xujs~ znh7-&eICJ|9>v({ELl#2jU^!iM2J! zSOuTbfdxA~d}zse6lQJpUu~C?JVYjMRQ73g$?#rp2_7J@U-JPVNyvMcAI}e5@##}x zdO0HN`W1}3Fxw2H8bL~Bldbg*hR%M2a8kvlPMpZio3^|x{Sw*Q5W z-TA0Eax(bSeZf%&`6&L}1aKNv*54bTYO2Mt%r)&|!v7CrBoBHif-uT&7?ZX@yOq4b z`~-Y#UY_9E@00m)U60C0za&Y} z#cWJ#R;c;@L=zpPc7i~%n@D_pnxG%5vkhKevIkwiaLp6q2T7pu(aTia(o z^fIrIHPPu5ZT?N{UaBw-Pb?Lwqav{1V~)3>KVgp+!+$7ryTkLXeU`k^|AN#OYO$gpgg-`!5 z#-ugg^K|gaz4qL|v%TMFIe|JjBmkHY)7+!UAAC8x6G|b1&^`{`akBFP|-!k0)@GUi-(~zu@tgp&0z|SV869J?qq8MBbzr z#Lo13RmS>^;O_dbf}%NdGvfodL3eM<6ha}tggQYNpheXXiAw%x)_E0noKyHEbY5fk zL6tK~IU#OHW(d0JKS_Zl`o+ZEmn^)*a$?Cl7sqWkN$O3un zquGOxSj)p|!^sJb5Hv0C0AJP+H`#-^rnhwa9c zveYFFD<6PnVW)E4Jjk}~1g0^(3uyENQ-Mjw^8PkdblKF4rY+=TRN`f8nOQFr;=AX7#zCLtIS0eYW`#1yP=t2ooLbK#$?Ib0nT)O+A5+ch4*R?P zx5-*%5T%7OIipKT8&J+pOTJz9;4^nW9g~D?9o2b2TMbO6&h8?R+j(6i8T2-=NV&3T z{TbqU%n?M2e9wzsRM95TM$X0}=ecXE_*MbQH+f7h_l}U!D)zCfc9q&`%8x?5w6a?- zo(kGq?J&arVf3U-Vf@4Bs{=wWy?`?Hunb$8Jwvj~eto-Z>z;;naLIwsEpJy*78CL3 zGi`$=yW+jp_x)YvA_hoD7pTdjPX8nGm0nybKfZ(0QkykHL)83J?@^?J^A!BN6~qddjSR)L`_y|C z6_L9J^NstgC1z{uv9n9VvbR0KssRKXu1AGQ!YOH_3a6uqJ{ z0shI>*1s`bVIjC9DV9D)MdJDDvnSGoWMB#fl|=8aCgZu5@3xyYT7K59a>x{DIpLL9 z*MVY(1%9%_*||py^xd>ccr&8{6K%-mT1Xl!wx8onQd*Ut@XnjNw{eP)g~S*M20b43 ztC~LVcxpo=2ETpDI87MOOwo#AYMQooh!)cO_+Cp8e-c)f4ui0>SH%SvhhG{N5eOOy8zy%p1_s3SS>lSXv!`be&w9z8W z&ruN3OrC(+W8m*)rOet;e{6~JIqG1n0?ni)#lM(xRP*o2(*r`)$Cu5@ThleHPjGyD zF9Wd2WVpslrfz7H1gtcv*?%Um>`qYpjVQ@y84Cz*IB$L)^;TOuD=-nVnlY_BuAvuv zX7rHHEM66~A!8K$%dv|mwt?&)M)9~9iV4+0zBu0LhWa!f_nV*)mGQ`79``0pJDq&g z8o-E8 zN4fVO7Gl8ky6#l(8fBjrgyx+~vOUnN7UUn&M#$pTE_-u`vwLU@3Rky6BZ@|n+mEZQ zt@u#p_yU{vH~EQ{-`<{j6J?K9eX5;;Pij1 z{Ze`5BBvcQ>)Z$wzAH+_7)mN)Yd)fKv4}M`zK`SyGP#w zb2?ixt06HA`&b`fK0vC!;O=F4b=>4n6U~)#2nvW-cg&@fLeb}XV6RU_#86aC&=@<^ zb{{cnvj_%2Xah|rXp&P-G~!C?Tqor=x0-f9wgmuIf$wU9;3vulo-j3`jCXV`yiG&~ zpDHTiwi<0u10Hnfq+pT8+L0&+_7$D;I@QW;p`X8vihoDqjF}$KKrKj zyhxkZzqby-mTZ5H8(~-E5C=mgkC>)u+eQ~($akONsdYWPEJVMwCBY|gpr3urf92Ui z5M2W7gqClAyF`M@ZOBz9O?&bfM;s>gSsLHdmVDi}PDtXUwK8J!*T9y&&fS`f3`pF= z>1BPkfInsL^ctW1&l`8MOxV_s>Cb=;)+L7)yE6A+r5`gCcxZzv`YpGP`OXJ^P|5$I2=yPVxK^Q3i(Y8$k zGuU}c2tY#*Mc`44d;!6+Ho~^?dH>yk!00x*O3T_xm($Z3o*aWx#&s3999hKh_P#crx=(E33(QWAg4 z9SIh($~vyX9XkJJ@O5*7d}+@|c;pM&`@u@`YUC0?QO}>dMfQ({PVX}C0^MhZH_X2! zgEPP}|6Gzvj6KUpR|A|z`u?;$N|mYj)MU-3B)wbp`_G@>pedjCVP}x$DBJ!tOrsxb z=ev0B-x=HsMSmXlakD)u9`(lS>EyOi^{F%s+ppCJzWWWCBLa<+9xN@s)d>1OL;2!N({#Q^LMew`+_GpSxFI?+U^l6 zjX7oE{d%wWV1k1n?E}OVB==0n`eAh2pP;UOzQ)A%Ou7Zb%FGk&l;Pk~h--Tw(yE2< zz9iWm)?F5+L*(^p>82kqAO7kcIDv#2aVxFv9JTZ`1!*lMi{wN!4U2X}dC*1=_OQ3o zXT$~l08Md6>X50#drYhD;Iz7xxxz>wt%zxJd=bMtp5Mx#q!7rkE8=nmQ+=CexE_<|8WoWS z3yfFuXyd|uIgh#KAlVT)S;TB0?b#)~F2uU#7ylI&y}Z64b_FeDTDaq6Dv@1&B-QpV znpVWU1TXRm*g>xDOr9teL~Rk2Dg+XJoAvaC=0!;I;r$+V2vjgpU<{1!%E$ND1WOdT zf!XZXV)FD<{X(8B8|DrxJAb3fuYD!Y51#k~Fx7Pk?)atfu2KFssA=hs_Oc`34fB#k zV-5vJ_z%1mxX`ytM6OHYM$OaPl*3%e+jpkDPsiSaMC^#SuxShFJzq7{aCj##{xzX6 zv#eCP+)Ag8N;YRG`Wr%HhW&oL3r=eV&qw#zC7YeylYiPqS9eA?!y8=?$Zf=kJh@sv zsCvcXhE89dizDu|HG0Ut*)+PheN{I%s{=u445cM!nu*^`ux!MMdU46)N@?x1Wp1*kZfu*VsFvGw`K+i!l9`iFUl7-5!Q~$ z*xAaMB$Ul6Z(k9dw*Y1HGutav1g}DjFjIz9{_6H}OKgOKI|i?vypo%yx=T#}*On4< zL8{h1jgUc`-PyjUsK#K4o}7pk0ZZUE^F1z(jWkZH}h8&w;(qSo2ezZjt&P_322E* zF9h3kA;*MAZKlhLvAw;_`g0Q~xke&%v2sQxAIv>7Q#GbE^r^)IWGk?QVyp9Yp3sHg zkvu6S{NcFgsIai4$cNpGEKk*cgm7N)!S4errpqTx?lU}sF0;rsY$Z(xd_d_i?5*dB zslFc#Br`}1-n4j7! zlJP`4txH%@WzCf$n2FFX8V!Ye&Q$jFE~c0UTH?hu2#_oo)q?|P{~rL(Krz2Vi~j%< z#{j9TMj;mdFpmkW{7wM@35%9a1zME$XB9n@$7OG4IrLK6Z*{<|Xt$dh9zCImQyAtU zPGuvEEj3e=qSKNiRNbeCKv~X-KW^h&;a^BX1ML>btV-~b! z2@F)vqpZD`F#4`=rEE=eso5dDZrKV*1xOOMPtnM5LfA7&m0SM+4{e63(?s@vvim)u zJqr6xotOS5su}U5ZqF@L$CMo03@taDePTu}(G9CBB`lnt-D<0dqNX7~L^{FW)$<2? zF6zL}04ZgfrZJFKjw(uLm9@D0KK`2mw@C72x8A@yxqmd1`U03~pHp(nQJ*nYD&9oV zc!c7|XD$)_G74%&?NMs@Zxb3E)xC$7=)V`Bldcd~Oq89-WAR!2(cQr6sG4)ZI74nU zOn+EEzo|Z)HFOGU(ZDH{Jj%3uLP8)e@h3$+Vbg<79x_%odnY|j?b)~bjit^{Wk94R zZr9l~C-ex76#AnF?DVMNZ6ElYN|K_jz}MhZ+I*`UMKFA={mrN1)k)lG7|tEkijiLl z{{Y(=jzfeUvp9-`TI^MyWP3wv)g7K-pqQv%XqVA}F z?3ERU-NxlrI5fp>?7!?%HX1)rRR!mp-@H z^&;M}4jCDyxL*jj@em;+;{L1RY%x=A?$~9jG?uN?hbV$o7sO{YDISIs9Hj>jC=r2& z>KH+;)GI@k$hTOJR_{#4!fIVpS?+^%zAkoF-Q$6RoRxFoV5d2B4O1oRjrUmlE@p-H zZ7x%Jrh@S&0G{E1#dt*AVa>GQY<7LjBviexQBsap_Is}jO|x+t@xaZn_>3LIX$c-+ zi%Kmxh47Dv+inN0eKC#`sGod70owOxsG1g8?Afp6z1_$GRqWX}^wg=l?H#L%rOHBM9Ful!!J@G-*`BI;-kP4K z6JnFEPZpKC%6*FX+YB=rAwE}Ne+faZ$1W_65Sk8z#v%k9N;^gl;RirJR2`OaBQ!cu z7M#%qTG!S)x2du-q63H0=f&D%kXAylIezg{5cq91&N9h-CSjfWDFr>DvNX+oj?53# z}G z?yR+08Gh^HpY4TI^2!o#zN*<&z+RLokL-gc^PGgEPsbyEHtWk1$`*blOk+JS+zf@n%dMj?nAgksSR<@WcJ1Q_{u<@!bV43NH ztIKw3c5ORSt9ps#=A2#5>>_SAtr5Gk8a5oJ@Ob;BP7WSZo1uYez@oz%W0VfhF;Jx& zE;3EpH?f5DT@=SE8X6VdG~am9ctB}Ottfi8_W2PiaOoDZHh<}}6)90jWUGRZ#NOzw zoHA3(B`8|jE$TN#pa`>PL4hi6b?#1-*d zb3vg7Hv#qF(-kcR!*#CIU3Yj={{Tls9V>8*jYJ$YQYeKZ zl?s+wM$TZa}t)qiSRW>o!KM|zwS}Ex88FlBXsavADs@}9QY7V_?Ho{tn zS{SuiI5~9~L}*cI%@&-YXGlz8iVi^Ef0eZUyUz7zx5&UiM4*X5zUY#sdzel?5!s@3 zDr#o{j4eA8a#;!pQ37ZJvHURjkNPi-{AoK)r{T%BsX+(-08%j*NYLGLwKvFCPcT(Z z*&H&xBAne5U7?J|7=+hqrZ99Sn&dWvv4Hl4tlGb|4wv?eY5iZ2tisjix54(H_vT~SB z+KfVLuMMEeh7CO+e-ObPnaL5JQS6IOXtcl_(Fxll_fZ{h?Yt-d09pKmPOz2dyTm7y zC8TD&z`r4c3Cc=&y5*djgIX$4nMLoW%wnwn01vWm&Ao9ddqSNv{z-*en8+ng0 zR?a5{C8^O(&XYPR0U>*`D5Jr`g%~%#17|!Z3quyBZCi^fwqMnG$?Z(!ORp6q6NQnt&sd6-f}(Ew0*}l4wOO-JtBJ5HQIcve1Py}s*(-S0jj6n5ppMi zXINR;`G5fdq$Dm?Nwf;8K?UaQuUH;cli5oC(S%9uL!?dOyr%V)*SE?B4UMnDh)wxW z_2m+W0CanfVtn4;a)UE7ctSJfP zDvPx!MW?08LTY76ZA#YsinK96@U}hf&qPr|;pa7pV6NPFBJI2LtQ%CfB( z$%1al9jEaxn?fyPEU~vYs1||_muNGzM@zF^5pl^)ZBC(61&0D(aoiwuxDFDJw0?g#|507pS|S zMyg?27`CV$IZi3J9nz`4l1dx`f(MF9cF_1%RP!+#Hggpz?`BkozKe4Wb-6bxd#Rug zlu8jDQ4pL#*a!ICVnfhM{cT)P7--0d$Eg z;y;+GG?WY9CVmhxO{A%WWYt((b^{Kn`$D^~HyHl_5Uvp$Ft%;zg4wr0d9K!oZ2(2C z#8FF6LgoF}wxc$Zr?2J)wGxY?Kf2r%YP3z-rM(0JwGrWibx1q2nbEst8U$B!MCij39B#v&4Bb9%0 zC?_7b3x-uwg#Q2*J=V%}EukuYgsJttv>j7_Fg&J+Os?TzCa` zLCa`-T^?du(`TytQD4Lr4E+m6r}IOu&Hl@x!@xq-0+c8fRDvmt&C1iV!D!tPfw@Ro zZYT`#Q%>)7!`cLlS|)+ku*1-|^FyOdPD*YyT@{^}nO3%yRJm0koW3j2o(Lx!q7%+F zT`m*~v@k|pknQ>H*Ctf5y+}z*R2h=8GK0{#-tg$AVMX5KJIWTB{mno&Xnudy$LP6= z$Lgni4G}5NDrv)8qq?#oWI)|v`?HtigY&Ci(ca!VAYC9;BS?Rg=jwwsLB3+~)ei9x zmT(GJT+}Cyf0575=Hnow&$DKwa@#tU{Gh2J*;g3vdq6@<=z&1~A$F>K3ieNKyWf%r z&Sq7;r-5)o6}t|~TB`R}x~YB?7R~xxF8k5$itl#86mX$iKgCfm$phyy$++Eaf~y;o zDtTnQD?aJ1A9%s+zFmLzQyk-a&*Xvgp7&nqbi43&czxpwDCn)8!WMN2?CUV60o24c z61?ZP5UqYkA3f@WZdhhHl|?k}>v=SuSyCG_)i-D%CD}Nk0B)9?ilQLkQ}#zAPxKSw zzxzeWHWFSG@^Y%4xORXEv(Z>8Y3AgvxFPrn_CrF1zYqEaR381-WHq^1NlQfJN3!4Y zy1OVlpo3l^ElM5HjGb}Fwb&J8RiCnM(>9v_0H9NMD8OEmQTmi$sw1KW4OFzmqJ5Ok zaPEsvNvKA7E|&q+M2%H(6hG(%f#p=MvtcTGLpK|p6oLT*q5#%Nla>f<{{ZS8=c#x= zbc1`RqHftfE;F^pk)03v0X!~iT100IF61OWpB1pxs800000009vpF+mVfVR32mt{A0Y4%C0ORlf00|$VANfcB0FaOTgZ}{J5B~s=JAd&QBlVrX z`367uTz#S)zxe~R{{Z9}&J>p<6i{a^5=PP6xP&B0D<%H`j(Pt8##hzE zPY#yE%hHiF!rw)u5|-foj^>jxHM!e6UzaAqi2^++zYs8`}Gq8(M?OVZ_1XUKjXCJZ9w1_mf`X-cvm};e`6>xD@eUNk^ zz}<9=A>^1H;yjHv^-ue!{V`byBePG>?zm(9))T+gdR*j=zv0}KJYLo*9yUy$wYTV3 zZ^nmFoRw!H7ntz39^EaG1AClkx5W1wQW?CtXArW*K(MkczD$T{(50~?rUi07XdF9$ zv_)A4er8{rss=7T-j&==?mm$x@tFpx{RM~1QENSd!F|M%(zKFS?c4tS08Mg8)BKdtxR*>^~==2k^7@r9aJ{HSZ0@)?_my}>HA_#=G5v#D4>7bIzvl*eR*x8nC zu{1;s3ZhOz3lU*2d*aJUE0^I4s7kwJsZ;kZU5rt+K8<)D4~#7LETL*YilGbqGtz?n zw;#PhA57&hn2p+6V>X*SG8g^dO;7yB?HwvqPig0)vjXID%Hy%KTDQpedRF6@m9Or_Qd%9ZpkM5IRW)gfu84Oxkb&GoB5 z(jy}lExRT1!OpIhtwhOlN?q>BZYV?%u$O0Y8MRa@@g-#~4n+h$r%YDj9U5!fgjI-9 zDAELolOns>5)vFGQ+#xDW7~QqR2UQ7r=PQyJ%^F-vID-p8xPK-x)e z5lO6XdJmT@wW!=xZ`AdjL3i3pnH+>PiN_{tenJMB@7l3G{odHuPxl)55>pAfoB z!W=M)@lSD#d}7@CfZ~#EK$WSw-Bd{INhISK=PjYp6bBu*u+n>xa`v;(M^TwtGS|d0 zPj?mLVwcOoz=vZ4yBr0da>-U z@Fh6<5X03Y(t@fPUV@eCJAhKP2}*quG*@VAzp8)V(~=~#tzf}6VrQ4-Ar)CZ1Ur3e z@A0mGZEK!Mhm-N*NI;U*eFz~5$|`C1ngox4v=xfUtP7+|dyS;t*j|KALTTMG*Jsd4 z=D`Wd_Z@0_u7%c0V>ja(wy@lp3}DZaN5G5mN~OxuNWTkx$VR{D(B_~@ zdS@O!Ln@$}9knicH4TL>$V)?A(ip)vE=vTv9WugLKLV@hLM*Py71G?CwJ^3M)b%a@ z0F0%#ckm@iAuSbE&cs?=cpp{U6CqsVNEsT=xB+N!03tnnf)C90C;5NExOF0 z)HxOAT1UFEhp>s0l*cM&S|dW)Ei~#TJ5<}U?Jqs!(4O45p^Zsl8eCsXD6oRLGzdK4 zl)HNAG83AMgoG+7BC)l^s9;D!r?I#DE!kTP34diP4{Trce#?IX%${nIeHJ+*&u>p;O4gX>BkpxK|~W660P9h(Sei*y5GOx=%;$-4!&r z1h0RDG?d%R9`De0(PT*yv7I-UWpalLdWk9hW8im@yV!RAOE<4ciTQgbygOrAXz0zA z?*jpGI*hhFku+1o{{YQ2NJQ4muYaR~6s>>d1xf6n?|c&0Jp)sfUI}nq6A4usn`gz2 z@NAbt6Q*ntU6|3_qO5F3_!WlYQNdJRMaY63jE_@Lv5gQ@IvM`Dl5R3kNeh~}Tu)-? zF-RT}8a#JvP#5(PG86SVGF4;~-|ZAlui15Gp^QTSdLZw9cCl z%FB=BlXaK&E%W8LLv~Wx3o+Uu`x4q+5ts_F8Xp91tI$JmlMV^_AwnG5qf-kNiW;EDmbU~kDP`MY8r`ByB8>10A zcWk*9m!%tLeJPYZB1Cx@dZ zt8sfhp2V8^2bnwy@X1BEo18UhBx!j!QY+Z#9mk`vjIusUOod_zt2vI|B2+peg!qXG zB1~>{WJss%kuq?pzU;A$RSz7EwYw~pntla42`fj)h)iI%5h@`Sctr@4*sw1j$kOVw zH3O1tPB52&3TAjhN%Dyaev49})e?~HVU=OL6x}WR5-k0}eereJRFOJ13Zkhux*9u5 zBC0KhyQ7CvAr93D&!gN-kq?6>3z3D@d>50*(w7%5MMej^`k4mX=oyW|x6!!Im||hd zE20TKiXgfm6_Pg5hT(+@p5^5e?9Y2cduY@b@v*yEI}o!RwEBu!7_~|e$22o6NC{6E8pRIi zJ!O?Bbwg7^(6uhenuvEb7EpDFNKrQ?q-_O}xq%9b%|s@$?xeszXeYTNggxj`@VLc< zl0IefQ7nHWIU!465h!xq!*<|C(1=tko^8g-rRpgmDABa8%e4A4$B~$fG5kb7lEm+M z4WT$eET^Z?(xl6#RH;g?&d(oy^nbWYAw7jvI6DpPt<{K%suWkyBbO8YNiwa3PLg;P z%qT$#HGN6SJ>fZ3E*hV~iQNdS>@*?NBy8B7WkHr`MT)Koqp}uDp?(51qUc`*1a*2B z>OiH6l$7B9MRp~9g$sLiWWt4URq#lmHP~bmrdat~_^<4ky-nGJ*j3arj+L;Lg_idq zkAxv=tbonSCnAt&+`O3&-m|f~6h#$wD_Zm+`~d#|ATdZs$eGVBf;6W80D)LescfQE zwqr^*qyGRUG?EfgS~xIMVT^4aq)0(^6)UGVHX3j{z##Gf0PtQaTfHvL(b7>;rJ@N)a+_l2p%Oy2A6JOtN<#=Tjqo zqq*RQENz~mtIp%>0?e-Y6(qPzlln3)eF8~Kr!4QpjA(C{g6*HNocswFR}~E|vwJF* z7(yPBPvO?u#5Sg<7yYlf0Ed?s+=SPf_5HBZ0{s({{V}V z(@$)YDjr3vZJSEsP9J28<c(dMIqe?RD>lZ z3673%HQYm}Qj81OiBhELcY;@C%U8j5*>jMvW{ZTx>7RJoN=p@ZNOVjRBs@1dG|SqA z#JH<0n-Wr6j5rd~;*`A!t9uV06&tH-A;PRmP_4#TnsgTIS}0sNB9(l|_vTn-JAblJ z>k!_<*U#`COLSZ!!asoQsNjo<&rLTKc7>pwgzv4{v%|=4PEaTb*om8ZmuO?Ch+8i! z{{Ra;F(kWW>UjJXY~Ji{*5-5)!st{M>HCTQ0LWPyNd7_;cVXgxL;aDy6gRM`svIhc zA3#vt2zF(kO_=8*5U5owMQbw9X;h;qP6NY_K`c zatNY{TY*tvc3X|BvFIz-+kYp{TXZaCw#EMd!H;#e5*5=T3T`5xq!K|&Pk^EHj5Bi} z*J9ej#0X!=64eA3Jqh043B?QuV+-z4n{E?LO1J(5U~Dgu*SN>n)n@vZHkdmXN%cYn z6sIbWSwTJ1?lk`ZI2`u%8|ZVmn;3*nFm^PV@A+ak@Wv;s_Z?1~L#SyQnhm)2o_R6HUw7t39f zwdBjRh3aNFDv{-))FJXJr;hL9|QIqZSaL^ zw$8)(oNhu0M47tDlo!H>l!UnwO2|X&#_zCmxGk)%1y^8Gh=L%isEJCg?WRBBM(l}) zRTmg23)=!|sa5^>Z1JtdHq*o4vQAHyLyB>vpoECmLoBOrBjxCXc36FaZ{&mCji~if z8l!Q;pwr4HW+zu5?uND#Av+ZI!CQVuM z%e&a3FETVd3FO?rz?NuA=cfcG^`oumgyx>2b}fXkks`_5Zh)$HoSEAyVBMaN_uzF? z)TZKaFm2tZ0+GFeTbg{QsVDLZ=|acP4BCQ}w#-XPJ-4m$U?B;Z^9zgo!akI z6~4;n#aKhNvY(z3dwwE0Bk1>VMRso@MZhUpUfB6}t-NiopWR>3Btj;N!+ zB&-at4Q9LZh6NKO;{hHjRmnEa)N~xkI6<^vFm)blQgkuaVJ3 z>(sO+8_?Kz++ma$Ok0F@7Q2B^Y&1*Ynyje`!YDsQzQok0M|RA zo)Ix>?RVoyt9y<0`3@pM9nZFAa@i%qEa~Y|N=FT0?S?q$n2r~~>D`EBY3?eu2t?$D zGf}VJOYhsF7MD`*c1O`4ME;ASX)iIQLl-Cg1kK4OLW<+cEXR~cjljVDQ}Tj!5+u&7 zTu&AghdUEbYKFh~iNOe$I zQjCMKCs&Z2Iw1HHh9tWzUh_dDEC#;=`Joibdngk|1~s08_QSkFep)Do+EUea$R#e^ zAvlRab3?9_vmy=`5F|w z*$!@o$y&SiMbfNurO7-007O0ziXuszjSMB-21Fo5_XDA5uVW}p#_JUC3;lxdzhHDc zF`5@gY75+?m2-3T6mZblB0Ibx7J_TUr5H~ku$t+WR+fnHHkPjFz7l_zC{pCGhE>t% zsmYUt3zbH$jq%f>h9pQ7w7e0}OF?JY#0iLFaxz|tXib{shRGw@xtXx?#Ly@hkoz7+ zNu3FlYkEM>X5j3!){v`dMe{ z4D0nlH2Z~CZTYDWd zxe^%Cpni7~hEVVV!`|m(nRM&j8u@(3koWLt_CEsktMn zwIXvp@LkCwq|O+)>=ioMAA(w0wI$rNozEa{5G=C-8C7Qk!WzOxTx5D;X%iRpCE!&i z1SnTn9#$?*%F_4|CYWkUYeYlrt<@_YL{(0-*ulH^6w0Dmk%AyjRX+M(Qv0SYt$8n{ z+#={Z6f6##A>O|X(xYJe8(k-LhK1!}z8w-pUN#t;-hM&0)s^E=` zWLF{RiSHbZ*O5Qv6`_z7m1ao-Y0(nV1;N~*l|ghw&r)5`S*9LM;iwh|hQ)V+w`@5h z8d~VMo)X|SFCGgdu$|8YilT3U37ra`Vq`6`XKE9nN_P1wxN;CL^~DmpMvj$bu{s3G zsw^Z9rECovU1Fx}Z7xX=tcw)cOBB0=xAY+teGpkmbso}ArfCIfgZLNVmL2|ut;5@7 z)h0det;|SVH}AZc)V}7rTnmCcjTZDHlhg^BdJky)4%MDS&VwPkHya~$0_dLt5{9&$ z#*Zg)%A>yIE?(nBf5@Hfiw(rIRBdg9q?e}ZqxF(+Dyl_o5=k|NRHs8EE)g4>aiO~* z;VJcTQJ54>VxrO6)fgbfk}s|gkw~~`t#hP9v^OlSoRp%cxZ9~?2{%sVAM!3bY4%KY zVyj6FM`JE?LT2z=iBVZm5;(xGTZt@DK;E33SxX&5dKJkk&{;)-64+goM6HR_HKEA3 z4n-Z7-4Bvf_C;0t$#%e;=@R994|2dkT7=13Dae$~{zu+i7u3GuIFokDIyc_Pv&X>q z5@k0cf3YQI&LlDvE_B5Yz&R_=dW}Qm1}dteW1$yO=%v@8xk~7jN*d6_tw5B@!pmMp zs;dm14ZzJN8g)+$X$sAeub}dukx3>j-mJ)lu`v`HsFbEM`xZu;qB62_iQi$|wR#S( zqBre-(O`TfQok}HV>UllB-}K1{{VvOCk-?cvJ#%MJe-n&Q}OCKMzRJf?KsnH8L%t4JG8d8b{cjI+)%`-IPZ$BNT@u%Uu^1_C2Hv zG?mm~QuE5${oRl6TS(g^mRN+LC(eVQM+-2!80CC0a|;1wg9I z8zSthF8=^A%i6pwi6c~{@GkC0`Pi{Hc&Diy-4Z;*v$uY#wsSV?oSUKhxM23x@@YhhHkL=*U$FeK5Y z5P=T_-S{v*rO_QC=0P`ni?CbMen`J5wN8Zais-xtZlk#9lFIN#=_O4YwV6p#y9tWQ zuFGhEFV%+(U9!Y3O_fI;uwsuW}n_KBI<13F>KStg-5P!f)0XscK>{IW&90MX>mF z`6V>&rS60%)$oD#WQ*Wsm!G7_m)Te3Yx|@LNT9L~T?$6(EdKx#l3_5=^(N1PC9@B| z9ZS}gdPSk|p9oo7cQ5iW!Z+f4Z`KW1lv(r2!`lQuk}WxJx;lO96# z7LvE*WJ@pjFS%X@zG*bNpy`Z4_!gW}aBZS0C{3UBCE$;+h%~PcaaKyrH?id_;R$G} z()ksGPhy|JHE`TJoglK3zxj&dLiy+jG3Y7o2z=~htdvY7D44x|3Y_6x?0Q6($lZA` zqtznV*iyW`@QGI;?_yhW*roI#a!Az`4kB&fXXNH4iOeMl&=g?x`Xkco=QyRF9w%edsIG;1qzs#$dI+>~cy`CJmJ zj2_qwieX(5l4=#Z9>U8?tq3VcOOgo~d`wEUQ}9g99FydS2oX_6<>7)GAQdfw*Vvsi z5%naV$bN)`E31x=L(=-Fc|<&Z9>B^9dK3yw;31N*Fn_ZHxm^THa{t);AI$LviwE4O4$ zJD76fy1(J)FUZke21rYZSNjv@oAnaxEu#QN_u~e}p#~rTf^I;N!od+zP zg|P!~z_aO;$KZmUP78cJE=cumVyv=OlJX{DD}0ioNwkTlV3P@=vcGMMS8)zUeuTJi zCH#V|MAZ;X-_Wo86cnq!sIC3Nw?eDDgmYbruarw+Hh*LL!CFT6WnrpraLOyN%1zaV zgL0p_$dOOlvKfEk;8>Kw8ng04t!xv_^tMAzC~R1SK}1`**;X}^4y~vv)_F14)s7Zl zA*=9?!NY$nZ+~(d3&F6;tI$ZJA;FCjS&=lPDpiMiiwg%Yy2BcHA0Z)OB~YneP>Xhj zP7pUMU~kckOO{8>87z`{D-%ER$Qcy}B#UlZ@lJ?RYDdgZP(vP04|Mek{{X^<9bvRi zwqd!^B?yS9_2_t3u~U*%irOe;x^2hF0~j$xcNAlNCeBgfmXU13Ufn{6310GeU%1f{taLcN#;_^LB4%GAPYs)fyoq@Yr4h2y`kpS0B*M*JWg<$qBPuP-?%V z3_Zh-u!E?Uf@_7~{{Se&j}D})RZ1a5s;_~qs)XRg;GC7Y`4v>I8iCVNvlB-(F$wPKC${VA8MNeZt6ZRz2=qa_pi@n~0qMOND zy`2W-Dno$ORp6p+szJ9J&9zP#+BGVXetEYo-@Fk_eG#4VQ*P-Fl8n?e2IN_=O%{kwX_u zz>BgJC5^yNu-7NE9eW$sgjJ%N@ikp(YEYjkpp4|F6c{{Rq}w1SjC zupq0ZiQPL8b_vsOkXnkxFh$1ZZ6c$2K0t*V$|Z#MfhtMLSL~yFL0NV(;;+dih&T=1 z$bxq$luZf33TPEf?o5SR7(~i~=7$Lm8%uUp6$TDQiSFcPDjzh5aT$gtt6n-rLDEhF zg}Qfkv4E%M{{R??xKEZOOxb^dmEn<5Q9#)v48q9hO$Ac8Tb}4}G~S6>6Hy68aoA4h zkvVe4Hwaoz!tG%9NK&!rc6cO{(4GlBPf~dk{{R@o?j=Y`AXnjzK^20OAm;tbeO0q3 zaQA-Nr+<`3g1=?;O{)TK%GaL!5IS=bOC#i{LDuzSZ+IndBnHO+0LX1H{SHK;8~T@j z4@;1Sx6Z2e7vg#NBMe3w8%L32atLybYYt^>d>YE?#g5xCNDPa=IDnsO{ zwCwzpX)F@AI3(y(v7C~Y z7n0K|MDEB_uTmS%O0DoA-Anx&4ppd1vVPc4sJ2)55mf&Grc*j8*qR>Gkt~K-mPn*< zBgB+g=vR@1iNT!USd4likmV3n;Fm&c=k11HYUf<~f|6I;>O$IdAWG8dD$OvE-bDbm z*$NO+#E;2H!#CKbM7A9QLn!ioU>f3!<;9BZ*5nwW>qLs9s@b}_5P}H$khkU>(^1@7 zhrBS$gsQH&8%9d$Q9a2{fm{-_4`OuYe2AuM*!mqMox@WA-fsi-2;sQdL_xi@z^u*C zQ6{t)mM%8#EE8yHe=Q&6Ssez%5RtO>6PMmc1XU-5CWY#67D9O)o4d&VP}%aNiHQuH zS8~JHvK5xM=vK&e=?HsE<*ktjvJ&|T#ab5QMuT&f-qUfUs@6qG_K26GI*er0imv0! z8`2AwNsD+%u*$m-KyPAq(7Af)rmh-ISx~84{{X>Jy{#G*Pl8d(uAkc4{{U6~g2&z$ z*K3f~?UzPGCDIoX-UWh!W+V-5t>@DGe*Dl2%DeJsB~-$l7-P38f8CMArlrL?fM7Dt5MGKIZD%{uFle zI%MN}35QkKxTMTA%40X|pw^`(q<1x&mTeY{H4BEtX;e<^ZlbWkocS$gLuCjisg04& z#l{57XqpbaiNJ!XM3gc~7e>X~d=eo@aH|s)=Yg9TI!R6L`YJ9eR$g6%Nmcg8vaD>} z?a1|Y8W9YZ>XO)@K9KdKtAPo66u6Z{?v6*ct9om8PoW4|WOeiqFbsk#B88YdqD0f- z=|w#YY3Nwi7!sShWJ~VgdBD}Hm*A9b9lqZ!7uh5h=U=WtLisBW5e%v|F9dWnif&${ z*h4cLpXE>TNo;i(c_r>i3wnf#jfs<#JByevlqbP9v${g6t5FDi#~hHgAwpp~9fD+N zRJfB(T1-VoN#v4EwVTN3pym-s!?`C8C_Pi)<8o+CM&wYy(uU}X6VVf;19gF=$tKO( z9zt{#HALxJP@RWLWSt~TpMvNaJr@pW&ta-;E1=ZmNH*>hI|vG)Uy=nU8zP%zsJbTY z;tZ*{Ew>Y7h(gA-9s3k?=o@XqxkNZ4e2SK@z*hX8jmPv0QT?@=FS5_oSXU7=W#M58TSB*Df-6%+ zu`w|-bWn|p*(L*mi7bvrke9HcHYveo=&1q;{0Mx~q=J=9!7RCHO6?SQhcp?|m>Ls? zCRzTWFv~A-RY8+ZO3fFLHzdwo#vzHuynO|swFw;;9*Iy?C1EkLb|k*Tu~~f)yd*M7 z6`D+$6)z&cbwo&GAiA?;%<@Cw9)g7%Q!a;0rM5Zg1wm1PxJlbD zwnVW)+(;4Fdc|0up(?pYhmqIcM2e{Gz=NdmKPTl7hVH(p3)(-kCegGpTGWG(bS zlsVLnn%I4{uSNFjF8l^D(%$9j{R{|i%lISgZMaMRh{OH%Lv`Vk zHeznx!%6VQlcJ93WmEYCMN=ut8?0}8z|M?{vkzgs+US^cbz{e>o zp|+VN%W=wt$4pg3>_yXkX*O~zducFLJ28smk|dky>k|VcxS1mr2^^AFQ8%J^DxktL zC=@P4^x)kp^d%3N7_jolU50b98LSYioFREA)*^> zW9af}S8$+UVL4xfC|Q0=xnkg58!-}R0(z!yA;F;t~(XdmHteYMQHHJDU>oklA>t$hKj-lJ!l4EN_CWC4!Ik}UN-9{5G z(WwK`qEPSkWIO#dv5Ksrz^+F@aZ)s15+VeK=zhXk60*;M$Vy$tmrnv4MXoWdiAhQ) zF;Ufo5l~2ka33SVQ3)lfS6|4ag#3*+a&9p+r8H<)JP?VcdLfCk?j`I`{fY2bi5CJLQ?J~ zf<;Mr!J0|lg>ql=H3~h-sQDDf%K09euXy$!%8w>k*?vSS`cdd%AyvE>Dl2=5`1ugG za>UNaGBz~F$ZXkoD|Kz05V;A&ioKR2QDGilA8~8@Y60Uza9W~G3hY+t-l6N5OprHB|tt3LB z!mG-&KgpR^9@BQ%tBa^TYB0iyJry#borxi`NueS=zJ}#aQ1r*p_tiLtKcQ8R>pXo6 z*b@9`-HDGsWB}q)A<}l*j4Mi8o zY{GXQlb&1Zf{n@KX46ZAZZXexSA8p}YQM;nLoD>4DCJN=A+(iDQmjfR+uHuskY$w+ zl!iBLZUntZ_9NSgKS&(HHhy(7)9gVBdxNQS;|2itnLRhS<&p<0)d=6h4JJH<9TGAb zZ%3h%y;s3(p^j8#340G`xYUZr!E<0}a;iZqpud7f>O#}%Ix*HzJtR)LE+aa^1&U$U7ipHxfT9q-HkB zR4WYNV)~5BWS!7$k5XF^vOi_kil;BBlI9N~;FJZ>0jgAx`n(BSKFSVcrh@ejD zmh5vCa^Vz9x4RfWGbT!!3fe`)G3!A$R+q@Y+X!;Ge6~j9rHu&kB*P-^G@i_~QH|ps z#UBE5SrIr#bnwQJY8Qfujx1#utJ&^4PD!OKa)ha!YwSvw1F4m52v-8sH!Q`EqI7z_ zW!mrSMZZ}OL?N+~O+@Qa2`&oMoer4K0(tixMP0ZP$qPRPkqnVOG6|%K?8i-ANfh76 zr%Py!s9NOgLlWRb>8~h9FR5IyaaZt!qIM2fiCYee9pHKBN>q{tRinq-W%jYfltj*6 z2BmG5TMQ^rG5F*TtFeU^DOH8rCOjqBp-|&wHIX7wB^V@;2LgB4e+Q|mhv_H{bLvrQ)k|4pk zY>@~|NAx5Tk@o`GR=7f&B_SnCaZ+tm6}2Y_k7NubjTG2;TSN(xqC~z(DZY@{=84K< z$}c6%my#)YmMIf)5%t`c7ZR}>;`?XzleKq6q-nUewZsd(!8s}dOshZkgo#MAO6 zR9^y3;uekVQgV5rixTX}#^m~G*lW1UW87{e z{2Y`LoyLUVO>kqKi4>Go8uSYDv3o_6(uw#>dMiJ(?`q6 z8e8^MsW=q0ERGs3BAIsNLaGRSid|iegCHRi^x#4coeO0zSIIbK{0vM}DO-)5ij~m^ zrj- zW@Ev7AsG}5cDBcIN>+ZyL9-JG*q>oGloHBD{{W#RvGi=I=y!q@ui=tZsWK|M+&TEY zMD|~`J3k+1#;i39b}xf+myol<87d;HV79*A;-dz681v{Q;Dk*FD-gwp$tudM!AXhN zzO)3HCx$L!OuZ+GJx8(oj}fsOi@_yIF(#-avwl&%55UfC=*f+b*XUAB+z+4Imc0^4 z(7EJN#d{#jih~)kH)hITBnIxnUWB0A{s}fpB-wfrFtk9OiE?s!iboNVA4*(*l@`bQ z?1uwvp_GfU6-$&&%Lkgv#l~@G&#$#o$M$h^G>O_TV!4NE5#WC$8in#+Z()zX_Q68| zS9=Z?pr}^kY>WIt*oh?^321vs8+++P5ys8cH)}++J9db~SWrhID0Cvp4#=^{Mj_4a znIy*9`xU^%5L_2X-iK^%7gZuqs`q3+_-Y5qNYk=jJLef}?1wo{-JnnythZnPN;Q5lBRCD`w1x zsQ&=ssOHzr3!3sF9DrMLHZCf84uR8#HAJxaLa5F1hEZqSkNfbq9-7I=Pqe$^>tCeC zc}bDmiZktkDcxa@b7j@cX324C8g+zUge41B%DYvGvj|Fw!&hL+(t$vdkHZ4+V7dJt<)5JVIv-doHTA_LOr0ntu+~jDYbbVMQ2q-ZmIRV2t31IJzA>pE za&=E)a_eTKGbj0>NW~=aF_R z)PqLU2;6*!w0SX(egu&x;6iC(Ex&_-lguGgb~GEvqqAe(Ujr+>*m^dL+PdLDOpC`gplkU_7ZAp{UX2pY{1JPP>|AJVm( zMfVfjTWy|bX(pkkf`Fi_$o-+xnGzHvF2&5rxMe9k*(y$#D0wOBg*%KYihC3kjP|yW z@}U>9kC5Mj5^RBtND)FpZ*fV@CqW29$H1DaV)NoN!YD(3UC4z$OfjyN{RIZ(EFyxC0hooNFBmPNnge(o&K~^Le#0Pjt?_tGBr`)?jQ}73VS0kF*?v*>xrX$6p2&q`v zlGU3+%;&n1*$vID$<<1`i-c54f`XsqP=pr)88l}w=B|1e=Px7FxI;)6xIM!_R=QbC zWjr0Ei_Eqj1?*aumU=BV@-1;@Tbm;O&*xuhveqqYh^pTpwl{mXxX#3~S}NqaUp6I* zWvlYWO0D=C&}&mbOR)oJRkAr2!6{g6lcbOvTaS?;vbeaXHQ?pB?A;9n0d=`_gpY#V zsU%B|>Gd7QEoLW)TE_;UPjf?GN<;dQ4*)zu?4GeU*wC885J3V$h$w=UV78FfeSrRi zdZEGnD?Q~NLsV}yy2$DQXDb8a;ou-7D)+(4zMrfwEhVVIr#S%lINS^k7r0 zvbREoRO*Z5fvq2+{{TnkUuQVVh<#fs#UM_RH0p|fEg`4)jz)<^li_eN)6gNcxsIVl z+|@lCY%wiZ$tp*B8RZcq3agMMZcv$GevNQ?YA(}3v!~RzgXaM(I0z(Y-X!oCIjq5` z#2bAnlY1|d4cx;_ptx%?DAzP{q zng*ljafKFHUlJ_Iu|k)dJ%-eV8@do-`@XDE7_=z+{zzM11~e%+Y$drrSAtIno^?(M z=)~F^n)D%9M(O*9P|9~!CuWOk17RaRJ0C_?1u`s^-y{mGSqD^eTb(`HS>&B%9e;@A zT&lJZgtPk}iS}%$U|LJA#f)!6Hlb}qiuFI1!@E2CEs9atNI8qPIxYy1{f8`p!e5bW zqTH0MF$_&{1T&l}f!w(h0dwW+pbMm0u`#Ayr%KY4Mr+9w-;;Nkaz6SM4b{@{Y2Lg0dmn7G-IB^K$>OvEXd6Sh{+<*TrU=V0@rS}#IhR65ZVz22b<8ff8)k@C;@HDWig+3)UJ>W4Z}qDOz^k~jAA*Gw7SBNJ z87_$}+E>d&w?1_nl?3COa*A`_k%7-EBSg;zIU395v|>bzlVxs;1u@sFe&w!Sy&dya$ORfw+po|Rl_B`juvI}OOd zJi{ljmd0-*fznjwC&4wtuVCe7I+)T%rxHObs#Uihq)^(}N+lwFp%D`FLOEWo+?#;T zCt(?>6m_7=;Y+A;eP&s5>c$DgGE-vYXQn4mDG64ly4kyY64;e4B)4MSX(3zaJr|Y` zv^k<2K{;jpTa1gpSWs^GkYhKxtcN3 ziuuwTb|S764kB*^rtDD@g!;?$CB8(>hMqlyiOo?Q6x-B|2xoQ`ri@p~ZmW-yr(qcv z{TZ2Qu(J7UJs?f$SsA(E_APamP=+RN_AH%##&j|(x3Mna8)}P|AqH-5V0TL7r79Tg8H+ndS{^({qOkEZPzZ8dcM$?O!uIPliifgwg+yawpfyP zBZ#TduALRRvDD^AxfatVX>>J8>Km(~w4dY_!rI7c@5UHoP183$QS7^I+aO#aDw1Jk zjwWTFqF8*DXpT*~tW;B+KZapXX~5X01d0*c&}@=PCz5$&@+Zsn6Xb5h2)d#BiG zU^!U3(u-u#z};Ygf|M~$;RN6H7nK|0{{Vr@S>{UFfjLrd6i{wpL;RtQz|xcZ3nZ`h zZpjStgtWMOo5T~wT(|fepTR;ZL-XNp{2?Nuwu){yu;E^;eF--9MEy!|uEx@^j|5S2 zaeE!iMLe{2A>v0ndlOrFogjN)X{+gBJ%!y7D&U*Qv>O{f0mVJ#Rm8jsmNTdo8Tz{T~69l$H*?l{Cs z+`1&3J0_EI8w8%n&GLDRWg(|`MhV5EndBZomczszi;^*LSC$g8RldbAtkhv$uiQW!qBW9U7P>~3@M#0yxl&M}}m(=okLw^4NBic7aG$zH&X<@L3Zsv7? z22Z{x0@;u|WYdPM%G09J1kj>cjlig#wq!K9K`7u(kZl|a{{Ufc{Zv=`O8)@JLp{)* zqGN7Ee9U$?ALn5KE5BiCOFiD?a>o7=O~M@-OD)+H!O8v*>GXT{MhS#BWm3*h?u(OU zTOp8#UJ$yEkk*Nlcc|fz^i2#?2J{IL{mh2w$Px1K2#L`&s>3ARv)H#RDQ-2qT#azp zY!6gP*lwwa4og*h^j?vPHXD7&5VB9SCL*!?QZARz$gQO{B1N4U(BKN41m%(!>7kKv z$@n6S%WaA63_D}}GHkhzLRAe=V|%=oQ{x8|4TsQC2T8Id8-qc!D3<;Q^P--H*{@@b z${m>Be_^0fGEhw&C&LnQ#gcsmefSkwweE*eX6mFTZ)5y|4g#Sc#bkw6CS_|>o6F7_ZYcz$eXocDMLn~A zilf*x*0P=;S|t)>TfIUrWkb>ktGXbY5_lKDbrsrJ$#H_P(qri4)P^CAHD-iurD0Ea zNH2QZnu*15oUO=EF=#bd!zdOJ0c^IU4%+H!UJeO0r7YTnZ2tZS!!l2Lza>RbeN~sO zeF>(#o-8&sN%|#Kku4z!R9Q@Bi950zGj93TNhzeV9^ELs@4LyDK72@u|0gm;Vf6k}~^&n$Z!>gD9d<~G7RB_fWFI3<`51m8kT zK$BwmI!;*(8!|8}tgm8cw|Fk7{o4g8lt5GouNo%ait(mzDr$Xmej!Wbjz{7 zprauWx~v64;R~5G3~#ZiIY#oxRIS zI~cGx2DEl(Z*wF0zl?RW#RJ3k^lZQD|~24qsuEyR$<3FZXgQ z{hA)&I=`U5C1kPq9LV8v%F99pftil6s*5Gvm~I*&bsvIQO_MhpQ2Hu-5Nq&5c&eNc zF5aX`Oq<}YJxu=NTj^3@Mo9kvNNn54;fAA*y*-Akp2C&qYo~fnhY%oP%_REm|cN-vU=Uls+02D4UjVjUq)tct@c+ zsVm-|Nn1sPyBiWp;K_h+mu#T3?Bt3gY zmy>I1qQGHp(|yD_g;%mF9zi_jY7F|eR7E3ak+Cn58ymaGqHK(~l0_fvZ~g|B9*u(% zrCD=hnl7~};|N4tSCpymBkW4ZvTt%V6E)5}!da5PKYCMjmFq%utO_?{xvN;3TWQvQMCuP`r zcEfk`{EnB?qFdD=K#|##L9$9j_K3A;(+PvY1WFj384e!gS5@5-`xz6Z6*SrXX+0MH zA7k>IF|iIuZc5WryAN$v?B2uL=)lL7)li(M-^iZC$=)mWU*hD?+3<(S{*vVKR@h$S z)67F1=z{Oez{Nv>cBrk$#M_=m7&l@}CFR^Ad*T^ekU3o0E53;gy~px;JFBtyTo1ib z)V7HabmbiJtddLIoym+9ZYp6H8uwqxJrKKcN8qkCcxQu z*LD-+kk~c88rT+k9RoAgoIwYP%OKKDqE$k+vs9b3O04!{* z6Fd!UCJrCS>j9o|3>^^(5>u4Tpn+9GXRwoYIBrv$bDnjsrN`hT`h`b!wAd+aeEpSb zO8)?5#_1Z8@Yr|ohOj)yVg!u5T*_ZN+P?#b1r{vp)0 zvT%fHF@fzo5L?{3GZ4htBG75b`)P(Xs$y#%g5N^Ps7Uufot~LetKew!q&a|uyV2x# zJ_8+wEmWNyp3GxkPjpBbvC!7BQ5_KZ==G9`H)!W54Y?%PLRT^9K}@ij zUHXi6`bifVQT@WeNdXOy_QNT!RfP6u`H{#7=BhMAH)KN~f(nVog+W6^F}w_==w=K~ z;^0R@cNk)kt0Bb$^PLo{^A`q3d0Pk+tNoCr*lJdYdz47AQyj+w=uS|vxTo2RKV@pV z0u+`?2m+H*qdgLZ_~6&K{#pVa*34v+Y9sIqarrzu!@()BkoKit{-+1q+`WkA1Qgi~ zc)4{WC?Rl*>6eQ9qJxL6|qht=ckJyh9R)vrqO}EG$gCGbm3t zADn6Nff7BWzvKgUE0ji+b|o^SwCor1B^tKp14C)9!c=arf*Ur~XFozJFJaUzR@vEB zgJM{dZ*fw|5-|B646Dq&kv@p6*$H71RFWdbj>A!>q6;0T?$U?yCbPwo^aI2oQFoa;*9m7_x85JKIHYE-clIYLo;DG@hw3z*Z1> zBDzMmAyh6I@fv756~RxOsfR_^k=#=%6$o-Q8Pd?z?nAu93BlCni0mc_@*)<)OPo`o z-|W-Sk5xi>Mm!3kVJH&4Aymdg7QLl$)Ga1MQzlqi zh@AfbBPea^ryP%EWJ-ehdkJDu@*!xuN^&cKClVp-laey@4+3n4%@O`=YDS4Uk+6iB za5Aku}}?v(reQneIrL&Fj>A?7#};^UmC zWjf$_A*j(O@Wenfilf$PfyRg=>=>c7R$^zOv?z^Lg_g?pI73!r!uLbzmHeXje~yS_ zS)n5^5?nsbYp2f@eL%OshdMo85&?n+}cTp=RmRzDA_gcTv}cyqaKKAhOpNiJNJPU3wts> zGo-L0zQS3cl?Rw*4)+L7TEFCm#VIY$#OtddPLM$ikEFK=k69$AxXDmDx{2q}|IQu?y}%9IJLYcJjoK8*c1+ z<=9iW*vQauHn&6A#^JDS?i*#XrMV3gxl-sqh#FF-;gm@Yh!LKmVme{-J_K4FSy)Oz zPmy4h9*GboL8=dnp*Rx>78X?KOLFmhMQs@LYYkw<6;UvPRXxnT7K;MjirtF>DI!R3 z&QV-3F^lnuA)I<9V}e=wB$8244HF@uF)`!{Pl5R|e( zC3}oi*yxyU7DV#@0F4-$$dgdF=Ym3nBMT4WJE9sQNY^K(HYzL$rDL42&Bih4BEONB z$dY*@M#q5Ul1gca8?;Yx60W;G5QPM@vYcXvYOm`sIRzxQ5+PIU1$_%HbSed?lpsio zP(vC(Ity{9VJ~4}9G0^I>UzCH(WJFDkCKk!1cZhX6OtC>+EOYM6ItDg&mZtjr0>0n zH4M7B1+?8YtPn@gn4FNZJ*rDrK{Cv?dJE!VjZ~^m{G9VykVuuyh9loXH5Tml;CnGoE7eEn=y6gjE_)^Z*v<+3yPkNn}cJ7Pb_5QWMr6`p-XHeu3qLeq}eyZPs_}u zF{KO~_{wnG@I zt2Su7G%1$?`wECcG|A=2VrNn0EoLN#A)-f7n3O{m^kdTkxfZ%2R>Rzjt4##VLS*5f zEzqeW`;Y$sMUH#0@Z3*qtjiN+sC<1AZmAW*A0tZ%ilat1S|%)rNf;ea$&$B3Ibe;5 z880D4+wg2ORCVNzj2(*Uf$}P0l1{hGWgS|=Qm~}t#AB+4D}ArdzJAT)kdftyWp+{; zUF=MjuzESkJRitxYJx}=2qw0x7{e}uT3reRl@cGq7kLlx5)$(c#7Ko#ea4#C#IM-W zqp*L_uBXv@5N`jAe&sm@Lolsm46KKSfqQ4#L&owG3h~XqF21=k}6Fi zhE$&@u3QO4g!GU>i7c`qXW{<-l9BS#P}ub*`ZHXVFc~tXEP{mRexzlBjRUmJt^}pMmNt*N z#jk;5N+>{;xI$ss5i6Nu!>a6qW|i6|rvvvAS7C8$`etWCN(phZ>i$O+1`=mQqD2JZ zR|Sl2xy1*jO~EkhlHghHLzi7F>aZ<&oKV|S6x z?0y<4xRY<&q9k=_1Pd+?p;cc&Du~u2i6c^VHw`w1hBP`{ ztF*lYJJqn{y03BKNWs0=WZn-!-FR|P&&(33Z-!IdD0m8Clsg7{t!#g@^gq{Q*XCa$ z`y_?oDruBEbN>LxN3GRk#zvsa6oq0cp9q#cLi9ozyTOs7zxm`tvRI%>><8p)=C9zjR#i-%n2dl8<2J(2Un3~K2HYtQRu|JgogB5JuP-EipI*M)#gRa zQ>YT91V~UQ+lGm9dlP0PsYDn*9AjmpZNZ7iYtdE6V~MDH6M!OHETnm%=(UVMPA`u&y1M4b5~v;W<+-*ZxVG7>7Ol7l`HMT?MbQ zNU@fy@byr>(d+Xsk$t1E#V*d1JE8o zuF*|a@&co=$SL;kOWr<3_S{U7wB5_GYH*4#1c5pl_mVLsR(q-4>^-S}F!mb-qUGDO zGa;7B83{)WxkDf%D@S&Kq$fK_Ze_+_z;7<*z{+p$qCx6MBZZOe7?MfRLvk0e6rEWW z=_`x+sy_=F5)q=rh(V!fJxHSqN8m2yiFR5W7U&@5sd%CND^X?$ivIwd7a)`uLnRDE z!RS?!lUvp~B&!$xgyMrQQLL0x`M=2TE<;(F?wv?Z&64v|`VDB;pwwu>cp4Ld2@H;^ z#k7g=HK#@;(FA&afPz6n+3&#Am`kUk2a#@vl~R2Q6gHzBV?B&(YaKTeC`+g+cVWDN z@{a>7HgD(dZ+Q6^+dp02KeLO7BW}pqAAwo_0AM+8UD*{f_zQEd%Pd4LNG)-9x{ zu2G6~t7t^M3X|%Bkaoe7O(kHWu}Y67O<>=FZVJjDC$UCRX2JH8%83`54#PSN^4md&;8nQT0rMs!hxN z78_x`#=R2XDQ4azH!!X<;UG+{l- zg7!z$4}@1cU^;NcMaTUQ(xlAHSWuJEp%1lO?2?{SC_^l2pxU^@x7?4V1%uT)0iw2LEqQ1>0` znHvf2MpcKR5YW&nqsZ#Cd=8V8@H!0c86~^NB^s4f#*66b`O(~q0^&(sRgDVif?~R} zyF=0HuD%%XrVxLUg#O=LjlFB~I(xDPGbw=&Tgw{%0Qr!Rvp(=#@|7o%BzuAqiY{3z z6fbOraax6?bVa5TASGQ-k*TrrZi#ZUltWf#_i-L}(%9QHB`Z9#tc0#gCxkHGv!vwy zax&a-ET$cW_$T&gk{=+fS21K@NhneVS#N|+6K#40R#b^yvb|V^FPQ*fRSbLN-8S_L z%{TspQXhak6Yqr!4P8S;0u^+lS|u?pZV+@$R&t5G;c|OaTd@f`czQ}o-*bjWiInUr zI+3-8v_+uNL7|0$8f5rbVliO2Uc=aERZ}xvzXTB_0r*@9xvwt5CWIMTRoAjE*CAM3 zPRf{tDTsw%2-!bmG@5+Nd_bcLc+ zN(^YpPT?d;0JCaiW)Q%rOClY_Gh$g~?j<9q^waW2Ss5Gy=jefjk)&&=cU8UIhYOLQ zf9kP#L~19}I#e4!;w=eBg$QH>nCb+I(F&K4w_Ha1j{0N5AUkL{iOm&=65fK`z4Tm) zNZ*(H1g+R&Q{6ITta=D7F%51Blg<=+xZezrbtPBwRs=G+*#3#t7r9}g#6XP+WTmKu z!)7vsx*sr^evOJq%|CQ08DynDF%nZ~YQn$LZ=&On@O1Y?hJ+-!dwlRaPMA4Nn6xA| zf*W-qm*Zpcp($su_*+B}l|cu%#+UR$Jp88Np=jbt|`<3TMDt(80% z6t>_c2@2yR4y;OVVJSfB5n?j@EgQ~}qglF9fyof(RoHMbBamGQ>FAG|^XP?^JI?(I ztUU&u-#RIfDlY{K@*!-sMIqUuTOwl2kxKI_4?&l5f-1o@Em*%rB}qxpnTY=YZ?=^s z6_&!;$P-*zIFoW@(@-T7Npy+SrRvsS;Gmi}1^d+wzd{vNO~Ij3j>6HUCs7R@N!gSV zi>=1%TjZM}M8DvU2Xsaz_r$1C4W17HP0;k^5}t~3TaWl3CGbQ%ot^3~88+Ez*yagJz)&9WP~;AFG<0tV9}#i4n>D zBC&VlS0Lufzf^k(HJDAYj&}q)lte!x<4h>H!x*8K@HZ(Ni9C)|)!AL}G0IImY(Y9o z?5pft*9fhV+;>=GQMZ9qc?wJ4p-~P?$dKhJ?;>!S%FBwff^3@4Zj$hX(2lf2wlpHt zX2_siibJ;pjZ?NEGiw9rN@+uuPOgN(6q+mL=zFIU@c{FrlVvT8yl~Xl^zBu zQL};|lHhu9iENuB(L{#|Mp?M*y0`cpN~^$yZ&A6vwr|>jO(yvSQE$AjgoFo&lcYm* zgp`+XOc0!kPBv>;@G8%OfP_CgEIeLV{{SqVz_2J;4&(*d2XqNZ`VvHF#9Zo2#RgMU zAmb!e!;v8t3q_Xhs)h>9pU#Ia2U;=gqlaSqCZn;-4h!}zzJx&00u_#_-3dzLkkf`y z^}mf22r%D8*B~HtIviSl#J$UUEF?o8bTkvYtIFx>+~?&Cl$L5qmAp@;SI&tZO8EVc z+>uX{C_}c^3ZfcWP+K&tc1=Pce13{ZCNQMMt~|K2L=;zcA_Z!;3NeXL(P#N#5+sIH z9&OmDTs2fKHYxx+b~F-Nnx!R{i!F;v;XqY3NI;i-CuRJx5ag|K>tk?RXLvvIRvSpveZTq9(nK1Hl|3tJoWd9b`)IY%HN9td@|Sa`o^=Sn3i|%d*>0 zGL$Ei;1p}=SLwoE(jBgCt9ZaDi zi*7`j@3}-FD7dd%iJ1`F50OTm57#9KjW7yA5|-#L!_>WLFM@V7c^>4-OrMqeZ1v4i7{pL8x%ZmxAa**(WHr@=1}d$H=+q*h&;n0{E00Pifr>L^hd5 z*+{!u@m0Ud(w*6OAx8B3&w0^Z{j1x$4&_syG2%sYlH5dggf zQEo{q^9W7eiR)h^NEdlsG6bN8sLU&9l3nI~;Gf=m?uzg2 zdoZm*ew4ym1-OwSTcSc#wR*6`cUciRx8p2GghEOZ*s!q9e~CJ_V^QTEm5O~zuE*TbuYkO0$qz8}XT1_MU!;S4+ZG*)v*=zy$h!I!h#boPLea}G zXU{9NC|Pxlk0Ek`@Hf)xb`?q;AcYW)%5)(NlWgyTm`!M$Nli3%tZ46LPn2QWk0a49 zq4W_s!_p#Y!MH^D9*se#niWfQqe^!K$CbMMH})R;rur|lYNz;rqV1~T3%DYp>Hh%S zjW*`&q24Lwl|tC)VjW)%*ud3o)r7CjUnk6%scITigiocE4WfiAucA^-mth+#G^B6K z4UEw%ErocJ2N1Q0{0UWd$#xjQd2g0Vs}|Hxt;ny3Nu)1gi-{7fEm&kiOtGS%HX9CDh1An=5ih34*&{FWaCMB72({-ltkt&c`M+|fj9~VxehJ{BchGLe_ zbTl!b+32B+O+!SSYi4Yrp=n-WxX8FGe^CRHPODXr?C#tXr}%=ZtS8&VKK`bqRGBW4 zESpW2?f!?V!LDADEr$coPuV}w_uUoVi|o?7-}Khj$rDYQn~Uw2Eeik?7usTj;~d_VQ5KfErw-?J_l)O!LwuLACb4=!rhL{r6fBD50R}njY!v& zBxqSe*+{^e;1IkdCJ~5ep`M9pW}%fAS#%_$po!kk6fvYdHaM?@{L=>0w6b_OF2dKCk7HCjG zRQVtxro*8t=m|3WA0k((z{Q%g+NpNp<}+9&jNBDGkg`%G5J^O=I;w>7$f>ubD+p9l znlk2rFQN;>!Nb^!gqKKM!%N=LK( zO+y~lOmro6SRU-vVF|-3=llh;{%AQPh;PvHq?l>6J*Oqvh=)h7*Aqenw^BmxuaBi= zlgUdLRet#m3A1S|i#sY6OFJT_3!EYpd8ontoB3kok*5`9GwZUGxMB{toy#?;64H{6 z$rS5JQqhU~y(VfNg;@qM?rXK zLF0c>{E*Pokrc>k4LXj(5ZjZ9hDi|i1nHEdB|;V$f)nq*MPKqPO(J~lcS0jkRG$PA@B9xzzPi63 zmNR?~zJ;Px_xmUMHom^?eJo;A6=aEelQ!zs`Ywp!%i0~x;%{OmcNspF=qw@E)B6mp zi9rgD2)QUB6mrX7dSD3xT14)zP<3S=7ZXjgqjofPqO_p|36+*cXDEb~!T5IYRhLy9wVP%<_7hsVp$9zz!3gY?%OW>9%K==@r zQJbQ}=%zBhsEuDifeEhRSfv(GEz#w4Yzn=IX~Q6ZTbeDRgRbR5;_yvYQT8q6nt@x& z8ucB{qg8!%97=l$VNBj?EVlVBFzonC9GggnL;T01vI`FMwn?8e&kg>B9ev4)2N6M=Vv>KWLQLMR z_!jE{jKn^xp@dE~pG4X)r{=zs>$o&}@?tHI@k8Dx-pfwbiz~;vji_h!r;PX(7u;w1 zD=-!Q{{XV66-`m9R4c!sk`H7=9q!6j^dpjdNjC#bys`)?SVB%WIa8KNLNPl!&`dVM zktJoLaL;3KS}VxduvJ$54fyT~Qm}uL4x06R@=*m6_A4hHF*|P{@FArLk!=)$;zTjXZ&DPy4M>q4&?4J>{b>>sB^h%5-4FC{Lcia| zy{UYV&n}|3(8Qqhq*)0PSx~0AJrb6d zEqX##Y~purE>l_eSsG2hA}c<69)#4n`M;^`&ZT`u z>6+Cv5>iwg7W5FbpcnNpK~de~z=k!Q3Bu)1A5_4Quh`=I^vt#pc11{jhQwK>!P#^r zpFtFrN^~U@3d78VeC{!nF~2(?je0BIJk#j^CFPCY>|Ra zh-xT@Cs2n_utzM3A?#2YP`E1(Ffm>(N}I1ilVL@nfUuWh`U1%eu{RqA?Fppn#*=Mv zx!{bA@=;aH^kh@3GWPntptp0kW5$^b?c8B-(@XEoDB((ehaMsU=Au}(2G0nTJK+jQmRdZmkqX_{Ta+y<5{e0VWTbuSUZJ<7 zoksg$6Y3lTE816Am%hbUJL zNp6`*2f(gPcQ(=`a4ZU$RuDb`7?0?PyPo=vGZ|B^1W4c=EdKxq`n{mA2-V>FIYAMJ zdWCCrR5`0ugA~6aWw{e6HD+Z$+M>VTG&2;+xerK9Pv|w9v=A1;O|pEBS(Ffp&wE-* z?u*G=Wk={orQQW(m!Sebw(MzEt%%a*MXrj48D!PA@JvuE6%tuOmtr!N32+W-awKkn zc4b9#K0zSXjl@_@2H^=QX)eb+Cn9dpw1~@WmmD{`aK+XwX`RbWd<{X~l0}sadoH+N zQcCz1u`%TOS88-g2h4@Cdj^ZD{9ykSQJch$*za%bSdm+@rBb z-N?m%W%lTB73DZ$#S^@VbLK|TWIJgqG`Mp&@^PvPYghJDqJ%X@sM#Oo{{RLBiU#`Z zVzf?9XEE>eGl7kSnd}lFvF^1?TO<(PE@)&MIWIr8TNmG|f%oh$(CAb;=!h+nqAuYC zp(L@YHR3>+r`D@+By`u3BQ`O&yB@v5OA(PCcOjiDEV8*C8timro>5}RCZ*oUctg5u zM&VX}SeGv#kmQGBcOpsH69h`=CTNl9w%mQ-K+<^?7^+L~BHAi;uqZfwyND1?G%-)G z$OX}`jOI*!f}oIW{{SCKd5NAXU&%<3-Slx#cx}r*qW!1iE`NRP2;F>z^|3p_;ybcc zvqU>PeG5X*&{}&RL$Ej%K#sS8G9}TWeRE)yjMdE>*nn1~(tKk^!9uMT$h_#~io<0r zjqSe(Vd^GC?I-ynM&^Vpuad0>J`qz2#x)+J&vBW8RJz}>24qyPL}STR>>SM# z6J;epuEcY|NZ^b5jYBU)RK#!s!i@=0Nkefu<$*1$dpAc{%uZ+YQdxWiq_66|5`^s{ zS7HAEBEaM5k#QBJpZZ(-Pr>)^Y()6|4`?bYf=0*Gm0RERJmnM!#k(u5$D$maO*$9k z_1r5UxoZVgskT}ab9=pu={N9o7UBf`J)Nh9*^*^^GFmHnDhp7>zqE-k#HA)=-LNQ< zdxZ$w%YlCaB?uRl!W%z7giHXhC0?jBxj_hQ4V|G0 zp_VY_x3G_xze8>oaEPkpMcvvft`KG!=roYbj0*Dek4k-Gdb=?&ZNLT3j03o!}0^T~Y{|;BP+P-%uAJnwzTzI%W#I_b$1$;~0Q zcQT&N>Ebs(>^;_X!P<%9OAdo?v=ey$a^}6Z_!07T@TckzEi`uGD|Z)TgSJOg$ANkU5PdhZxIqdb0{TsxeQ>loqyG zHFk;*mI@FUZOQyl!f>{BJXAZQdP+%sU*bsz=O;6~ib;z_5;iBU0L2n1`Qqy*A3h~0 zUi3{Ad|f1vtp{!-X?R{qZ&0*s^Ax@S-9LxNEis@|ACCOW?yJh}*-5T40?&H z-OJM_R0_EJcu+WvQnAEa>)aCmV83y#zS`a(OOhbw*&a&Cs{r!&#rrNHGPYej=qxkC zhpKg?k`StO?Umi-XUv1m+P&|&nNmKbD0I~NirA>VtGKx0L5n9r>i6c4`yo-Eg`@Q+O3IvNJh^vO9dI?zGrn(Z$NF^<#n^v7pllttHdZP%7;|zB!tRpdO z($H#HzclD`OTN2MFp-#UEy>sKXV1B@(ki%#{8ixj+TlK!z{?bFIniN-~ z_bla2@K66&*b650dy^I@gIZ)=A@^|pm|fh5`7^euLTeP;H!a*5<@)FNVT-sVVGT^j zy^i_%FNP3GrX^L{pG0Z%SmTo^8}r`d5-yuizWOW%N$EHD0 zbf~t6rKv+LH@=<4hUz4=!&%o&{~lgrtE=SkTFn#2XdE0KZ{VUwR0DJiDu|#VdKzg< zQfgR~`VX%;l1fuAH|6S6Ed9QDzBQh6vV9I7hm{R6kyXJPRej7BnU=dSmP)B4IC;og zA<^K+$oWF_L?H&LE4;GRMbUUF#jPZU`B-YGaXAdvPW@5CtK!!6$m%0{!T7h3W?_g3 z#+zUAr*4j@d;jJw{ztYb2=jxyDf1H>uevr&CNQ zP!G@7n%mK(7NUd)%cL|)%1|S+q)iS zA`n&uXIce%CT|YaOFl_pzXR`<$qX}A=cWH)u1C4a`#b&R4HE-9;&g+TkP^RsNN}bZ zrnpfR^?4sSK-&_3IEmjtTu>HTS(&MGBQ3HtV4EBp}=E+|1JY(eHcs4hCvS(9$F?6*!HwM}!J=)Na^j^Q3S1V4_xCl> z6c=+9HF)W7vf|H~GpoOXinPE#Q)*x_5jDSpISrzC^$cpF>Up!1?~1{7ub6~DM0a^& zA3Bip;I@Prd#c~rypcZ5mWoQzLvHMK{#ZuL@LpKYkq z(m0J|eDV~07M^&FiL@p08C(vfjfR$T5WjTz`oD7b+Z;uqrOz&OFyZqVcPS>E`Ft_8 zn6T9|bC}n2^?%AWO)bDYA<2H@kY1khu&gKzolHTz$RYmctloo#29a{^AGk$>m3W7W z*j~RUrJ*jlt-2E$i;`(WMzK}hfY>Q4cDg=Q9;1LmmMR|Ri{`$u6(@_tB0leQWs~Vm zg5-zwd>mm`H*Lvi|WwQc)5C-RHmQvDa#B_6?Tg3-K7HBV34Ky z$fqA9`7YX#p}%QC&V?^#EQgH=nkg{#49aWg|fX$}C{Z4@|O>KDm4Deg1m5KzAhKGe> z>-Kf;_3ujK_n$u}C~9ERD_WFEq{>ys^GQ1TJ7I zNgR$3g*EzOE(s-?Mdsh>&HKW!esDTy*I8zwH-nuQQ8n~+jbefTs&mPVN1x7NghJ_cSuLzWl&sl^RvsNh1X7!i5;`o6tODZrWA9>{Z?KLX~}$8?&7lP~)>z zE!k=mHQ{As{&r=wWlv+`=93DTth&6gc)6Hjz$i-@O9ie!g}5g?;fu6`= zl8S$=l9OUb)Rk-Y{%#*bABOOJ<(N>e_a`OT0BoxM*57mOUh^ME7*y(I0bS$dp3!7O zRZODgTtC^;qbJ}OC|fZ$nn!?-4j*8eR0c(UtNsX(J~g@N#;N-A9XIn9;sw7^aFA5# zeI+j&K~I7OoGNUW*i6jjYo%c}phlZ7TBT=s=@w1(kOZ7O{HHKNp=8pG&)dxlJBfY? zkj2^m6)mV=&O6RUL3IYmHRv?FJ?fhJ$NHb7L9{FOyX|zzc!f`p`#bcd?gJ%Aax?y8 z>v>=$fDAyDhT%{3$bh9U5tR2#PhX<tdxBKbSBZL5{!WXNRlqxHICLdA8=VQp8 zJ0Ey7HlgcD>l7gQB@lqBd<2C2XtavaLGhtRoHTArTdP@9VUCq=z>QOD*a_p2-9zhp5 zo(8jGFYvbG2`h04U7xUqko^gI5bc3Kbl=~?pAiq#b%yl1dfY6MP-~Qiac2uJGla{H z5$XdoamMNK2Pa zCfD2AU8~pc%XLyT27Ty+THxRFVKacEyITEil5Mj#J(-%bNqvgNbD@ubN5IiNX1Oub zr^(ikhThr=`e<|wA^5|v#+d?ospaytw3C$^aTt8Vdb>#6cTw5r$%9%hOZ2U%de}UX zx(SRYx!;=&rhk_~THwF9lsX{57dxTf9>40|~MxdkYMAM`yPtX435_w#O=a6b|7q>1GtdAauFqF<@b`dxLZJ<@dA6iM8W=@SSBL!DlJWkytN^3- zH-(4uN~?u6DXx5@)IEd%JT9I|BXCJ1Y9WA-Ew-b&=Mf-TrrtQzi$nb?ARJP!UP`GG zwr(h78}<^|h_Q=|OO|DC6DJ&ZLaxUOD3C3SekR8--tQ=naLnQ`R>+2YM`SXyB-!`* zY6@gnYNEK#%DoDWA@XGN)3l?pqk9FCI^};QYOf;Q7^8Z#Jjb1y!mWip7{K{>a%8Uu19kP$@y3y0C%Y1y;-^L zHKT-;qKdV^)EJm zF}!InzV_2#?X4~wK^CLCW*EW6bj|}@$}PZSUKnn`B7$pIUmEnQpy%lf|9=m@FJ$`~ zG(_2dA=LBztFb>Z5MKQz1->pYyae858sO9K2R{PD&f6BeFR;_o+*4d9RNH8R2Sz=X zIOA)YK`sM0%4Tg#Bu{@?$B@E|Bce|A%IUB@m$7 z(QK}7nUN7j{O=4hu<`lL@*_aalJ%RuL6CON9|<=-g(U;tjh&1_2J6W%{Mu*-!mm)G z{RU1FJR!0nWY}LJmFKo$N%n`ww=sMbhW`ZO)En;qEPuL2_0Y4jhTQhC;+*6>rO}pq zNAcz@P?mz%Cz&Nd-}UM3r~3J4lp$)!GRFreqtwn!G3uEn0k(^%#*bmSjbeb~=*vqi z`cjWs-0aVRowx~yl4t;V&wn!6^w?MF2}YfqSt_ z{K0uJwa#<rEBla3N9mT$=3ircX(!?5oR`egWL#AeTC1sn&@ zXI7-Zq{()BfA+r!LWQK2H9t0bDT_}K{;hgBTmF|s>Y4PyNvvf0|S6(4E)*OmE_%f+!9N;{a*mb>Q-1d!bl5Su_Z&>-3Q>bP*{&@yDYka@f2nxgp;0XyP zc5KH&`%-C0e!vsOeO1tm)rs4|%U@%(|KddH@ych?N7g~L0@+LYnr^e|fl;J1JeA#SdaL9=6td{7gsar%r zxDcKe2Y5#^-22v~Z##cJ`Hx=v#xlREtvwL0-FGk{_lhlneaY_*(_IN!P1}16#ax#1+{Ml zv)?wD@gD)F9XBTpZ%to@Sl9NK5)za$YG@56^NTO!0$x3ben^w0NWTjnmn#keQVzG; zm7reg5E>X_0tUvleI5b+CWU%|hhXyy=i}|B08VJ7!1Q z%^y#`DDV2fN*wz8z_RFmwI~qpiXO zEG2D7$B&snYWM3?fCc_8z%(ZB@7qf{$oR7T4^L!_&ybdky`TnPKu^KiprGX1eX+~> zh7F#M!9}F7sb#Lj@E%xGHu}~5Dy1?LD?v@YprISfcRfMKS$OBfRHC9X9{Q7O?3U0O z_UnObLvcr`h30afHQ3BjoOxr4_dM@9NhdnDmOo8j@IL_8cs* z!(>b(9wH}c)bk_{b_9hGo;F0x3ia#qIUOrWU7k#zie+)qB8|I=ijtHXc%(txg`veN zjk#Vh-4&?l*PJ`IbBg6QAR<}}<3`I{R6nDNb9>U!7;%e2n#lkh;5eTKv3`jmL{7b4 zcm?LHyf>eyyXQ~%>Iy?gbX>Zj2IM<-s0z;S-=qu;j^7ELarNz0n;1{(7OwYd-R@pr z>;Me%%2PvaQ`cG2JQpmgG`pQ8P3KQy%dDE^IgQ(mkDlTP2HacvvWwv#o~L9D?=0Wc z3uqS6$2wK9iERWPkU~`T-m;D>y_&6<^-?>N{9U-CajCQ)8%R1MF&a#vDVP2%5P%5& zrFr0>jIWC71?-g!#5uV9)|>Ng{S;em?MT?b%ocB-FWr(n`!7$&5TnB`dVW#zaV+?t zT&?st@->cX8}G+xPr}!71g`C4Q3X&1*?HftX(gw$ReR7JEnCkWRn9dTE!Hqz^Pv9O zA2QYgUql##mJ*<;s+}$1#kO!z)$cJIb<*sBsY#8>#nE0)a_{w2Lp41ena!796|}=W zzI#cy*YRi;aT^?0pKrAvJ}KlFAjNQ>33QXiijMP)#q5CzXr9hdWz~_0vi#GJ*LH84 zGt1KE$LX`cw@N~kT#PFC?XQP1i)s1ePAp4c* z?Y3E@gTS@v+Dy(ZkzX$sQ;{SFSD~<^33#1FzBm=op~0)WHGZXYL?X5ANcITGmR04H zzBMDQT^*iN=eTsIQt)xgmR71a^P=e|@YaNCFTUe(wE`C_5=vay!6 zwaa<9mFh8X{6SfE`O~u<`jX0G*Ks3io8A8~uEKgd%Cl$P z&lL;jeoq{0nN@vHa3XLn;hiR*`JPMJziVII<@Tc!tO>jD&wjWo6drn@=zhfP7ApBw zCx9UT{onDu%W}b2^JV=usV{3eOWx{;N8_}P|ME9aN1;R}lp^_^ z;1`keQP>W@a<^t!!_2gGkK+C_|5wc9&LkF}IbIw@?z(lwdSjxO4vN#N1XFDLlT82n z)^?X|-zsulJ(P8sqk_hh0&-71`6#j8mY&l1MygJfJ`VxxdISJ_e2#GN=)(f#m9ntX zN^n!UgtMN?7ynYlu~+1K_>kA#JnJuby8`4UzTN9y_ec@U8~NstM{ijt+V0WxlFZ|^ zY3@1x`+w$>wMtyicCM0Hv8*bdn#g$=Pq(`U7bPmmP?-g}6TWI?D9e>kO%Hjc;N54z z-ZHCWW}B!*G;yVu#!wPEeBIXj2v~WW&cU$r_tMaRby0=9V-i8R+DV6#^u3zbw?TL% zJZ_=+0{D|CAXXU=9VA5^z1eAMGqe1ktU)qdq}EM^NBl^rQ$cj5zYHYc`tx3Exz9* z?JGAz6bd4ql)Jb&??qqPYDPCl9g+HoqkqJN3O&IpqYd({wlpAB8^&)vvXS0cAFBPj z(dX(DU8+{e`i^~r*=1k0dD6iP^WzyYaUxKkFI%nkfB8P3H`Jg|okMW6(joDDV7^C< z7xPzu{^T1a9$meD%9)6{3O!G-Lj}J!_Vai=*gq_2;ylsY_ENa9{dn<)kk@I+eLb5s zDCtu~3bz!BpW@@%-9Gwd_8&wF;hV+~Em4Mk5kV<;bP&C=z$y9KJxcTuP+0AEO87?% zUa7Q8XvP|WhgEkRcoHpPRo6P2tRnq&BejwH8LsOntX6<>Z9EGX8zz5#R+3!n#*9#eQ(mYCnBrYs)qH*ho-|KEz6v~`BGYFpFJgLiT zR;_u`iD6pj?L`Y3peXdODK*(ygHcJw`F{yYNz6j=+CpAti+nXo?k4?R7E5(|!a?aS zJo5-xU2*tgQ#3BatuGZ(wE7T#ojHRM1uNWaEd45|4?g|s&!?GdH;(|6KNF?CB6T0n=8ii@ zge@z>I@Nm;Cafvttk@FXi&g*{uf4&yhjxWH8X$E+13-UEj>s$c6)WIy=Sae*mz`<* z`Il=((gF_f@=9uUff?tR|-^0h;Q@n)zk#Srxz{39&7AMQoP_ z(Jp~h(N8y2H++-TAA12HN-Qia!2h5xY#a>ug@M1Y0F)GLd~&?+S0L zk*A_N?is8)R-VG_c-_p-h)!8lZmc99WE`aFRtVmsV@HVUZW2?|`Du2Ft2;ce?C#=* z6{hdUhba~*2VxjVK%q4Fw01mY2rOYmzVO63=B_I&)+>|5s@Csk{aP5a&m4q6yo@u> zrQe54vuVKLLphnGJ|i!}d6RXFR9?Im7+#y!PW_^kg&4wv_y~IGTvhw5!9mPz|I>i&oSR3q zWWG@F&6eb#^%Pm$U`Ek8fk^G#Ovj>tk&?1PiAs&69e;F>?wxkx3VzF!QnpJrQ_Lwl z+Vvl+I}OwxvC+B{FdD{IrBpd}D^W===%M9qPRpjuu2>Fn?-j0O5z+!@iC2$+bcak! z)PN0f3FN2#R$NW@oWUEIW+XlC5dwFr!z$pPX?v$a!~D^`Y(TXMZq~&a)_{(|SZKQz zQ<{vm7sk&{v1ZwX>PC2{LAj=g$^6tomyyeH?UG#*dgaUUt^XpC;=;Pbf@m|Y zHiOxVhnV}Y-i)!DC;9QfvE8qp-@|U4;#Aiz0^60B@Zx3)ks>7;n}^Z^hP*JJ2AjH| zBeO$e+FSc$4rLQ4S6l0lKUc>Z zxo(@WNb2@&*Cm&f!Ez7R@oHg1)m<8EVT1rpw2^Bg5R&GJB2^ezBAV?M`Bj)6~{Xj!R4~KGrfi@I#D1ZJq_&Vp2xb z$ng-d%7pz7z`F$(Rk=5ehj^A-cu*84=0Nx!h;pouwO=p7cCIMy;#+*lkC)SJ)7sQD z!nbc5U_QUXIdc|o+BjF*VCAtf4LcL?dKUX^GTrTv^H9jUquLf(Um39n!mcd3izOd< znXZh%}-6HJvxhl@T={0 z+!*oBttstJ21{8BjGVC>)`<|lOj`77HyHLL(D-lrmw1fwbHCs#wgulo`#JFjD?e`3 z%!>2M+Jck@gOOA!`L+FGFiQ_HlRykqCGx(9V3myF_uwhxBK>unZV`q2R6r)toJy7f zC7*xn=23KWefrAEzpHfdaD!_t*p=m|^x`}8mjHvixapw>avW=ZxkbU?`9QgwkVe)d zZ?aVV=PiCwj;0|J4y(>h-xf)z_J$r(A@3FcgQPq}X@TzzNQEB(e{l8~zdN33)Jksg zbaaLXHDo4n9jcIQt#ef$ihqHI$0HOs{uRgj%UNZL_LV1l-ub6HPVRBAsX`ib4KHng zzI@YFj>qpP$&ql^q}f&}b!#LOANE_sK%-ilLi{3{2Lr>2_29%~_tZQHZ{&0WL-~M4 zcZU!EGKh&e@4Hn}JqtWLk+n#;J#xQBuLhW)livoRRTXa#-#&s57Q*Y1$dP4gdH zN zz7NbNj19UF#xmng4}?DCk~^&S`)x60^!KKt$000BvUZISmmG&RuKVVO*y0bIP&)y; z%T8;!hkXO`L}DJtj(0#i2gG{o*nMDowLl99BWV44%9#dP0FBlj~OE< z^W!$+b@~TI`D9*;J&3|@HY`zY&IO>s1^NX?his#`eyKYnyl`K?A6~Ksz9-D(v|L1q zYQ>=N(=DQJ@6qp$nWCD~LX10Qxu-ActL?PFIpQrW5vWrKb5#CNs*Qvl24n}2SF6Hn z1*XAwc(+_+E`uE7Ta7N`7D4r6#L)f)f4g7>t5k2`BG7)IajOG!u6>C1Mny}%I*c7N zhpVMWQF0J|Cwkb9qQ2Agywm&+N0TX3XZU3>QKAhUv4 zHU710GYh`G8B82nW&D8Xm&dhRkASP?UdyX#+!5!7JGJZ;I`3NBB;hON0AcRi7Slnz z|4=VHc^De*6)A{szSKo`Y#0fYaTi~@9bqc-^*q3RsqWZ;$U!2lXZQMMJ@(lMaYuiy zQE2ms+g}fRvi{BG`bIsqhU&~y#BHX)ldRFSBt+G3o+D2iC~XtGrR4)F>}>EhV5(=Q zg*}+zd5!~SqZ9UQ8;jdWqRxC@uN`hPDN|51H(M+{l#sp9mXeN&(>h*SV69$#ZcyXq zF!r$PO=smeMSd5470T~3XE30HdJB&7Jt3kB3Yhg{)L@i>blM~IfWQxUF7POXk zsg5K(_o@#ST&+;$G4gd-3#QSuwy34c0ENA^IhADe>hC|M)i^IDH}&smaX_P?B>#m$ z!br{L_QQ2H2o|!@W5RRtEAi`gz`f^Uj-0iJXUe7N&OWf31~1eMgnGzhVx7xQ{T_*k z-TjGsoB7o!gB!CZq}~x%`qf&U9kRu1Nbw=nFk%JXB|LDdheS71p@dhW25U=Lcg($D zE#`!MAusg#$+h2<)j-v2;J?c*?m(MJI#anhInO0X+3m)mMm2Y8wzB$GLf2gwdfj+0 zwr@7=Z#;wmjW>UcgTkNurpQPS zi1k`?md#tQG(!?t<7ze;P~L8vxAWHKC}?)t!FLab(I?H4xo?f7+b4i+*+*;Fhkp_- z<4W5XsAr^RH_mR?3t?RGwzrt7Jc?f%h#ndlD~enV{!)}n@&&|qv*-ddZhhUx3L9v z-{wA1L;S`%_uzf`jo$u(H~FBILz*&>KoP+@z9n@RRH>C4);w@*^j_t%-yzQua%L?~%01DA6;faEBH60Ls?hcKSuS7vv@C40v^k&tO_D zluY#AG2T9?Vg`CbS_oaVIrEPzMQr(O9$;6_%3qq+w_&&FhEaZfWp3 z6(a6WCuhJ1jYq&D85Ed)R31FZlWBg*@ULKP$-E+!)=17=c8m7`r(0JyPS^Lmbe$+> zxi#+a>P+It2Xf1*S|<~JbWFG*c}G0z%$@Zcp`_oh79f(j=Y)&Mb2d$91?r?Xl+fc| zXY}Lj^p0pLK_Z(l%eVVsV@$HGErP*x!9(jST*~6?&yp<+$ht4(nUZ z&E$lBIUBsMjPziGe)&$xylAbluzTM1fK{1M=EW6pzj$@(OAdqeGaGAJ4_Mwh?nvE* zZ#VZ|4-M#X66rwREyfjD{e>KZ>*L?Pg>G@JRq@S=IAoJ}44o(Bz%% z#cB((avrK{ubzr<(Bg^7uenJX0K##I;dkup}n(#%4_FgO$0ha*3|~J8}Z$G&iDFu9^)UoUd^L@ z!Y1q5tRw>_yS!ot!}PWV(}vDv!ks}euz8GZ`c{wL^-RWWv1dM{4Q7n*G)8E$DOaxx zmjq%!x=m5gkd5n%ah0NT1L7RTcRdd2qWtY`lgk#0+%U+*uT9iKbwabpNt9MCf1Oya z57aE3Crroot8M$#INx@*fmZzl9WBj%>PTQZZ_+e0s+N2Xb-*4@B$4TD=%CY|;(-JJ`KY-s(YE?W3)94N$Z5rR`T zPmq=;;-LpAl+-cuL`$nhUwwH5kVXB5Y5FQ(N}nm?*Gz#@$+fo50-Usz4pJpZ=WpH* z+$k7By<`ICInnJLC{`y?pA!x)xZUi~q8C#VGP^t+G7D_DE~i}k!)la${;_k>V35Vl>Z(3=r)Fe00}Y|sw2zozP5C^qQ1%4 z)(oII7?MG-c%2!{V}ZlHMF-FHoo}@uKaiLNh>rDEYnbG=8gZ|07xTz=RjnN}q=Uy| zURz!~`_wPaB5uE<)Hm4|<2Syu#oF58E1sPQjx7xT;>444GQNJ*t#K&Tu3X9Q*P@oC z1(ccW*giSy7W3JNV_U^MG0wh>f~%-FWUvib!`(}*YB@>pK%8|kw)B}Z{B$#VA8+) z?;5T%9EVPGM6Ma{5RZU$BUOs;ut-Mn3&S=;2!>d~p6aC(Y9m<@!ZxmB#0NY=X<@WR z(py_l_{KHMy8L+j_fV5stnw%arNe`Wo{Wg_ih#FrIu9Ej?{Yxf{=e5Be1K4_iAO-k zBfwndhE=rfl7J<=ZcCZ=-Y1qs(!nKYu~q4QB@)QUz9cb{y}-Rjc}Fi@FrI!#cfH4y z_6R5gq-<^QT>|LUND~1hT!#7qYGu#e8CwF0bN4X271v?Fru3Agl2p4Cyqc%`7kW^)%7cfc~^>Zcx?5TIV-&Abq^h9dL308&Q> z675B7)Y--1+=8IgKW0E;4y|z(g4BUP@klMm)|u)Q8T0R*S0X%4@On>szw|@#D9MO9 zBO_T7F82JN^DWUk0ku2L=J)(Yi6F=pUo4vhUFlDjX`j}ln7MQicf!z__okmf&(jhT z4x~e{O?H7EmDE;bm&LS2VU&!%)OMAwpZ*;P9p)Px-c0&^`pq=K%$$@gwijK7NSI{6 z@6Dc(f&R@+gl{8pNlp$n$;SA7y!qZGQ~1MiZp*6%yMTAnzhqKIJ?mt8juyD%2VRC; zXS0zzjj{JTrb@rsh?OkMC$6-z;I{C5DHdqnzfY*b(|5q3d0d!!b<1RXli-zblbdjvZuf1_cVq&(!sgUrqFFE0 zc}vpg=7Zk_l<=@yzs4)1c>tffy|A^^<7^p(eO!KPc@uJoAVog z>-debjk})U7Gpv(r5j1B@Y;QPyAWoyr>D>P@hW)JWn03&;e}6gra?RT6I#yP1Hd@B zIo5oPKXuk<3%e0Nep^cj!^TY=+9Jz~dZz0AzYfdHxKirI_fz{)J*N`clH4wrJOYkD z;=ay?bc^6c8+EQRc9$Ph><@up!Y&9>HO%l4nl9BS8yzJcSkerMzfb2Pp7}V$$ zQPW75NVIPrFu(5qZT-jin_S79sVA3MbsG(r+ZC|dOAmvA;M3>Ap4L`B!X0}>xN!xW z>7@pE2ZYhw=tUpkTPCkHeCMW|j~z21L(@(s-O|asmqeWnX18bny5JN@VACfCPZnio za9NnA)yxJp!Ej1!?JTD-c|xILc3Y9YP*yOq5W2jyz$-bLvTz3>yb+8gUk0^u=~p*{ zfy71G%PbaPbn9YV=#}w$>}st@MnE|V?_Ty8J;VhQYgQX!1c@jWd5xNeoI|t?;w!ST z-7a}HA@70-SG}dlC+@?u)Ac`BX*VO4?mOMAQuS?mM7r%W`sQO@#_U$2=DgRWt_3(Y zN7~fgmMq8EBNohDYQbQi$nk8Bnj_HD!|{q6bdK(kau~sbE^E*zxM8DRTs9Nf|Bo(8}jF zeH@qhcu8hedHwOynw{J5ty5h;+`e|vTJBgKZC|?sJ?Ba7vF|=0t%WYMoF-gtTiDU-)iv>NMN*w_eEiOp;!j_w=u>3zJ;zF50JCMbzGg zXLv&wy&5tcDCbt8YdDl70wYZ7n+9F(*yurchJA#^3#}i;m~Y=iIH;E3vV7|xa`X*u zu}&hqa#l<&Y@f>L=NPj!e8fX>N}@p83MXxFk?knMX^{~D3N|%0z;K;!)~ZN7G_A&u z|LGl6$9OIbC_$Ir@kd$Y;4k)8K#lDitPT7eCuXklal|Tx8V*ZmUAzhkcL({jP~s!{r8O9P~h`tJzK8AebHdHu#-;7 zd~g&qzeSG1#?j$CBq}XZK;~b^`w(ex$MSM&^m$J^@rc+WuvjLtm$%1ZiHeAp&n}pH z#*V^ku&02O@Vq0Z^k~s>K947}U=A5SJUVyRemk5>=<4 zcj6`#UK;_2Zf+kkL!aqy++?>W^1rJhcV+_bN!r99VLZtO4j*}_9&C2Yr4cNEFm?0+ zk;@^w4BvI*&_%XGp5wph#+Ks)4l(-uT+v3+}CuCDoy9AuIQC&`zPhEaGC6tL7}6ovBThdJ=mVWfb+KcCl_+1k&8Dr@Q_1_ECa0 z**?vkA~QWKxi?P4H?K~)99c%Gc3^99NByamX~)R4fAl&EzD!A5^A8l6SU~beK&o?S zqc2S&ExK#j$GfAPF^mzPi7tRn%=^-51+v|uIVM&2%D8Co1T2w?(Id&F(dyfzr-KhnJ1tN9U>n_(bJaq%e&G(sL2ZWvJk#7%WJ{~wL zRL6v!FB#9d@H`iF=Jqq{Me*qOwj?aXuT!|{GfRz<`@p{~FT*KFd|xSxY#8BX@F#=} zFsFea(kvl-7uifwggwDLur4l%&~yIIW5o{a@&^zwf5;Z))DVSV(LpoUP6t}``t_Ex zd$HV)85C}{^v)%4lYRu@s2GJ6lvDTjDLrkyjI zc9avkJ8){@N>c0^_f(yEyJf%yT>l(E2;*FA$Thy!d%8P{Hi_uzIw%*B4LSQ$Dl;opw0Oo4NO=1 zd|NjS8yz^?wBG9iNj7N$?_+*?1>P^q1mjdaq2n$uRX`^|;b(kCAGEqy4tvs_rRYoo zrw)P+u#UH~yd^0_PgARV2=Dlp19x&+|9zbrFckxi7oa29F19)X3aJ-yAw+5P7kCM8sv|B)7!k9bfC)XM!emF)pwo#=vYB0V;rMb_EYB7 z?G=;5k*4sQ`pC2Uy;sr@wYr>r11T!I+f0Sl>cJ*c@C#GJYyzeQx3`hkV74x9FtQi4 zDfxBqP%XnGB9x#}r1Uu>dAOQj)ztV1r-oyo}B zSVnil~M6)Z1oG z63CnW)z1=0Z%{i>>DZJ-n;NF~cO^G*QVRVAZQro#ZvmWkdCpe5u`(t#Ot&70Ng;QY zWaUg}6OZ_98E^EF zL>#7U&KV(~F@Mn9m7NgEiKk12X*5AbIi{3kyRQZ%stFA+Am(Om2|Q@qhe~!@sGi%2`E?8ufpqz)a=81Z*|2@%JqO>6=+V5@}Sco02$v z!+!Yc5!gkLPWK!^|&VkM_(^> z)P+VF_xr9C)d)POX2wW)(1mlP6-`%Gda&hk46i+CTi%F$$B%Nh^J*db76(5LU_h=h zI={Gcv1?%z-KLl`M5^rYE6%{DRUF(wEwpi zr6>I2fJ`2E7rklWllnf^zx|;Py-lYa`~^ZxztT0+7<)HSy;#mo(n>x@MpbwN2H zwZ62}+ljeIp5ayNwPY`Npo4~j+Ao9jZ?j=JWc#ig77aE@hZ47*8w0!+YcU7T!U%sV zca6N8`q;C-X4cDpN0awLPi0!$;msYq7eOmQ@$%Soyxs#6TfIb^ky z7eB=U0A7jvHhNrfuj-NxU3aM5kpyq~QG4>$uX~L}?kxJ$?(#hX-e|J67e{*WiIi?G zljM(#2fRfL9Sdwl^OH&NJQ3egHeK>zi}jWXhTy1FLRd&aH!U{!lp{!Ka`)mNao?Vz z@jBNCTAZ7geQR;sK!cffGT7Z0ex9NfyL&dTuG744L=e*Ymy$YPWXOW4UmY>yVVf_@XWrJreEQ@9VHyp|Y)@XGK(oy(igzcq` zVeyDoho{jo;pnF{fssaDqCz7sj{x0TLe_Bl0BJ_>IL_$ka?TH}r1fl-8?9T<(m153d#4T=}&w9$lVHLAZ|nR&sxEQ(h&v<8&MQxj`9VT?BDD_irMR0a`J) z23_Ex5`U_3t%6wmovI3!0G=+hbzuHAr_?W*^PJoO8a>4#;#OTs?rbs+Z z!XuVAYo00&D_bVKL*Y_dYkLo2B`juw?=!gRbr!`9Bs=et20wTsr5zXU)Xp+k2k%@Q z=2a~0N0;nS+e~XnOMip)TmJDl|3jx;pGKwZ%8nVi==@a|G5!D)+GfIQyb)~^Lwgz? z((BT_eNJ}HysJ0BHQ+Q(C&D`*d4k3|Ut70tCkIhnliM*e#daU@Fe1|w`h!m4_6_~l zYg?)C07iQ#8q?OSF>VDgo^p$+S_JdaaatugP_6|c?K?r3SQs$aJyH^NE zUY53w-+j}41Zb!pb(FHrwSiO*Opuj-=OLQbKGxPY4?>fiQm=LI^tCT`4H(l8j0Dpr zE~?%d&TD3`7#!rydw+al(~u`VFK;o~>XUVo1bMsiIzWnU$q;g6{3qq8=u_#3=9ei; zn2$m=RcoJlW}*+j%S(+4RS*6h%>VvSsETiH{s~lHl9;Yu`D=efHC8y~^{2|vV%w9+ zkV$c0jhmPDd;^A~L`73OqZY=AT=cCMjj;d7GJIH6_V!nbADpw6HeJ?)aEX3*7-ZGqmEv4UHi#f#Q zk7#5o&pYaoUijokxr54-)>7@z_Vf$KX_m|8OJ*%}d(@?F$$yUkq>ebB*db){VE2X#4CtgFe5#e>NHb1jF^(&D^}k5e5xAM%b`VFP!@arteuYWuZ2yC(NJ zN|$9R^jUeHQ$<nk}Y3QVsc2w>rO}YD{@8&E|VUzoy!x zNE`c$YR&rkYe18Pckha+XzGY3seyeEU8^QHLGq@5134FXHZ8>#coQ?u4ejKXmL>-Sa#!`n;+1 zN_qWzsyMscf=A$8$$*}F$-%yqfzQnfohWxLxXZ5q!SatT6HH-$KU{J z;dYl`KUn!j_x0{%22!c5yrGXhi!xMGtsMUGLg2No;*oKtyG3ln;r|EiKoY-TSF3Mb zdaKiYclGbm=CSDXbcQvV3`X%DmDTCu8rPuAHU9wPJsW?<@h{bLXugfTHU9t#=+4hV zEdXw)mmnVl=3Ny{j(%nZRpsFKl;&$>!`f7U8w3eaG2(4Dl{1sH14TI?*=CaC(xr92 zyUO&K_2YkA>8_RQxXn6TIv!=qm*`kW(DVk;5b)`=HR`hcH!dEdt$OdO{{Y7Q4@;Nm z%-^lTU;K|#7?3YjR100N2eA{P;c$CI8WGSs=7-0$ER8^*hIEw!w@sL`<@BuCth@B{ z{{R&K0FBRo`S1S#25-@o5+*v-eHS%^dR%%i%ukUSzg^=PX&!;od48kRdN=93tW6*I z9*Tj|%Zm>aUc1MqhF3$ab*uC+>%86w!LPi{n05~WI#0L>Z`23M-|WDmj1XS1i$Mme z)Jg0!XU>x4mFTPdPo)_@5W9{69|51i3w1jLQ&ew}{KKQ%QTW8I8++*lwD^NMH|sy* zf64y$jmg zmoKeXqVX%x^nc@4p!03rkC7Uv${y!3h_K3U7$_dlz2#Uy%DY8^jZvOznTgqQU{u}yl zJzY9&(T#fFPnh&{^Uf=U3 zogHOLhl!-Qyk^m;q^7GxHe1|>OU&1!)#!E1_+aGNmWo&XU85}@5F6@dJ%=T)J)jz? z@Ju4`YP(HB4FiYIF?9m@$GohnJ&YbDJD)Qcp}W6`9>Mu{WjCNEf!-Nn(tXi@#;rSQ zjV(&;h&=m9EziCBnIwPXXwEOOOBLQMgx`S?I$Ofi@WhqtzNbxnPobYb^xLPmTIt$U zNxxqm7U9lFXDbI zkIFQn@;{3DJT1j2Vm)IEy?(Nxm!!wm%9r9ULpLE3$`df)slFJh*PyDu4q-Dz=) zSz(&N_M6S;VKCpj!7RsV$6!Du;1TrecQW9g5rN;ngb>{_)s}-T>!A~;7RFZs`9 zuR3OUIo7i%a(Pn1JH&St(22VW5bEq7IZ^8r?Dx;_}-s{T@`v~Oha&1KD8K1Wxl zzfsVJ-s2NaBcl@Su@nr;ehH>*N12Qss&DmOjt<1qZ{v9Ncm&1-n+$x&K}0o8S#?p} zZa6DWq4al+o;ul1-ez>v?<@du1$U#op)lo?P}r`%4Oq1m{>#hp85{Nk<NI<-dCefNiWd)nT|TQQMg~C<$U#e+{W`vM@?f9Wjw>oGFuUZB~2r@ zuBCs^e^csX{{Rehxb!+#OO?#cW?n8GD)fom^#nm~s+&(7%QaxznC!HI1C1J9JCEXA zX7K2%;Q8$l{J#ef)5OUZ%mZ=@`eAFypVf`H&Yfx62N_w*TR60E`t#p6kew4>c&2&km zsKYZ@wI0&rcce;&SD4Do2zm~guBTf60Ih$*`*dsm0TZn-I{QlASEOSofxd11pt21& zsKB8^Am_{zPzJjme8u>wOjuW7=v<;$|yz zJjYc>UWZmaE2f_b^gSM%bfchjr>1Ak2*I85X!mvYnI!f;#mCx%a3S4) zgWQQ0Hi56bAOZ;Jkh$hEiw!rP(Q6TkNQersbY?dPhds`%r>xe*u)A{(J))Y5FG6LB zVyid7DMY>pb{48tyH|J?nZufvWqqP6w(OnK5G^%l`UsY$o6CR;u@#dvGVwG1s8(sq zB4weT+8%j`AS)o6dlJl>n_rI5Z1>P=;g!HTe56Faf2#rW+DB&Y-YvkK>$nK7?< zX>4b)%K|*$!QxXWi3$MKVEe!3vDG|>NTqux_W@};Y4bE%+ZlZ6FA6{7Xj5<4{^9Ms zkM2KetuJ43QUGj5Dl2=Xe9A+6H}XJ8JCJ(RP9=3K(sc75Qbt!@I_v3JlX%P0DlS`f zQ4+Ir_Z+Z+4vb;x#Kgb(*P_4R`Zkx=x>Ta~xkt+^^1sbReaqMbw!Rg9qi%!UA3#U! z_4|+E&+{@&d~-e8fS-~FV!EB5R}5vGKO+$x#)H4VUy$|jW(tmpjF>7ilvIXL|f5%+SrMPhPcG62E%oONd|iyvm*OD zT%F>uy{=)PUABRFXVO`54i9wDN`q^Z)nN?;8mlhy&0V75eTD)7TR5gC;)J09@2BDx z0K^EOsYz0$9UZ7pxqQ=^x70_0?;iR-@~>~`Kw%R^Z1g^XhJ6};#nYqI=;iA4uA0nU zO`=_sY)T+vY&%91#5Cyf5)l6Yt^WYRy;arf`Vk-+t5p^p`hO&5pMp29yZl1VvVgMt ztxZ=8Swj+;4w}E24jX;IeKM>b0{-P$=z${5n2#I5@z*@Tfy`>F4(e^%;>v?8 zeMC@O-9a5&SNljM9uM558y^tx4#cT(dIqt1U^Xh`&RIY8VPYnT-NT~y{hNye-Q92O zhYi5yLGt!-{{S(kN7YfAPZ5oEbeTQ3^RaKJ_%BQu30 z=6o=1Y2sZ&hSUoZS0#8{tB3T(H@%h8rHki2(+UQ;j?~%W1^ZC|&}E8_>{?7&y#6H{yr&Y{US=#+ zt<)#u_g~yFOpM$M{l*A#E0$1Xz1nD(gu}M)6NP@nFyvSYPb=MwrKw)hsG?Rv>KMVV z5ZJMYvptPp;yy6u-TX_UY+G1v18s58_A&T_+(FN7-eH3V{oe5Hf-Gv_OC|(QtAYPscyfLP`d6~>- z^1)H&y}L$Yy4B1n!1zZp=pIxGN`(WJ#J~sb{{RmA?FhIi4vY>dzdTDy7j0iZ#Bo=0 zh;6$J5fK;EHI-w#R#k@W0Yz03piC0m!I^wCcV~e2xI4XuTCz)*>pCPS9UhF^pvR;C z00uI;I_uMjCXv=9l>(Khl`8u0(dkmX8g!{ql`B1K{#gG2kq=WHV=i1;j6`xelKrnQ z`iQh`X#OF$V%J|uxd&x>8TN8^)P)QS5rRdsd~@|1hiS<-9v)(v6Gj^XMvI~;KZs`Z z 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%0DFDP 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 literal 0 HcmV?d00001 diff --git a/src/js/app.js b/src/js/app.js index d55fa90..af67171 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -1,32 +1,31 @@ // js/app.js -// -// DO NOT REMOVE OR EDIT. This context is for internal build tooling. -// File: js/app.js -// Project: bitvid -// - import { nostrClient } from "./nostr.js"; import { torrentClient } from "./webtorrent.js"; import { isDevMode } from "./config.js"; import { disclaimerModal } from "./disclaimer.js"; +/** + * Dummy "decryption" for private videos + */ +function fakeDecrypt(str) { + return str.split("").reverse().join(""); +} + class bitvidApp { constructor() { - // Authentication Elements + // Basic elements this.loginButton = document.getElementById("loginButton"); this.logoutButton = document.getElementById("logoutButton"); this.userStatus = document.getElementById("userStatus"); this.userPubKey = document.getElementById("userPubKey"); - // Form Elements + // Form elements this.submitForm = document.getElementById("submitForm"); this.videoFormContainer = document.getElementById("videoFormContainer"); - // Video List Element + // Listing + small player this.videoList = document.getElementById("videoList"); - - // Video Player Elements this.playerSection = document.getElementById("playerSection"); this.videoElement = document.getElementById("video"); this.status = document.getElementById("status"); @@ -35,7 +34,7 @@ class bitvidApp { this.speed = document.getElementById("speed"); this.downloaded = document.getElementById("downloaded"); - // Initialize these as null - they'll be set after modal loads + // Modal references (populated after initModal) this.playerModal = null; this.modalVideo = null; this.modalStatus = null; @@ -51,49 +50,64 @@ class bitvidApp { this.creatorName = null; this.creatorNpub = null; - // New buttons for magnet copy and share + // Buttons for magnet copy/share in modal this.copyMagnetBtn = null; this.shareBtn = null; - // Notification Containers + // Notification containers this.errorContainer = document.getElementById("errorContainer"); this.successContainer = document.getElementById("successContainer"); + // Auth state this.pubkey = null; + // Currently playing magnet this.currentMagnetUri = null; - // Private Video Checkbox + // Private checkbox this.isPrivateCheckbox = document.getElementById("isPrivate"); - // NEW: Store the currently loaded/playing video object + // The active video object this.currentVideo = null; + + // Subscription reference + this.videoSubscription = null; + + /** + * Replaces the old `this.videos = []` with a Map, + * keyed by `video.id` for O(1) lookups. + */ + this.videosMap = new Map(); + + // A simple cache for user profiles + this.profileCache = new Map(); } async init() { try { - // Hide and reset player states + // Hide any small player at first if (this.playerSection) { this.playerSection.style.display = "none"; } - // Initialize modal first + // Initialize the modal await this.initModal(); - - // Then update modal element references this.updateModalElements(); - // Initialize Nostr and check login + // Connect to Nostr await nostrClient.init(); const savedPubKey = localStorage.getItem("userPubKey"); if (savedPubKey) { this.login(savedPubKey, false); } + // Setup event listeners, disclaimers this.setupEventListeners(); disclaimerModal.show(); + + // Subscribe for videos await this.loadVideos(); - // NEW: Parse ?v=nevent after videos are loaded + // If there's a ?v= param, handle it this.checkUrlParams(); } catch (error) { console.error("Init failed:", error); @@ -104,13 +118,11 @@ class bitvidApp { async initModal() { try { console.log("Starting modal initialization..."); - const response = await fetch("components/video-modal.html"); - - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); + const resp = await fetch("components/video-modal.html"); + if (!resp.ok) { + throw new Error(`HTTP error! status: ${resp.status}`); } - - const html = await response.text(); + const html = await resp.text(); console.log("Modal HTML loaded successfully"); const modalContainer = document.getElementById("modalContainer"); @@ -121,25 +133,23 @@ class bitvidApp { modalContainer.innerHTML = html; console.log("Modal HTML inserted into DOM"); - // Set up modal close handler + // Navigation const closeButton = document.getElementById("closeModal"); if (!closeButton) { - throw new Error("Close button element not found!"); + throw new Error("Close button not found!"); } - closeButton.addEventListener("click", () => { this.hideModal(); }); - // Set up scroll handler for nav show/hide - let lastScrollY = 0; + // Scroll-based nav hide const modalNav = document.getElementById("modalNav"); const playerModal = document.getElementById("playerModal"); - if (!modalNav || !playerModal) { - throw new Error("Modal navigation elements not found!"); + throw new Error("Modal nav elements not found!"); } + let lastScrollY = 0; playerModal.addEventListener("scroll", (e) => { const currentScrollY = e.target.scrollTop; const shouldShowNav = @@ -160,7 +170,6 @@ class bitvidApp { } updateModalElements() { - // Update Modal Elements this.playerModal = document.getElementById("playerModal"); this.modalVideo = document.getElementById("modalVideo"); this.modalStatus = document.getElementById("modalStatus"); @@ -170,86 +179,46 @@ class bitvidApp { this.modalDownloaded = document.getElementById("modalDownloaded"); this.closePlayerBtn = document.getElementById("closeModal"); - // Update Video Info Elements this.videoTitle = document.getElementById("videoTitle"); this.videoDescription = document.getElementById("videoDescription"); this.videoTimestamp = document.getElementById("videoTimestamp"); - // Update Creator Info Elements this.creatorAvatar = document.getElementById("creatorAvatar"); this.creatorName = document.getElementById("creatorName"); this.creatorNpub = document.getElementById("creatorNpub"); - // New icons for magnet copy and share this.copyMagnetBtn = document.getElementById("copyMagnetBtn"); this.shareBtn = document.getElementById("shareBtn"); - - // Add scroll behavior for nav - let lastScrollY = 0; - const modalNav = document.getElementById("modalNav"); - - if (this.playerModal && modalNav) { - this.playerModal.addEventListener("scroll", (e) => { - const currentScrollY = e.target.scrollTop; - const shouldShowNav = - currentScrollY <= lastScrollY || currentScrollY < 50; - modalNav.style.transform = shouldShowNav - ? "translateY(0)" - : "translateY(-100%)"; - lastScrollY = currentScrollY; - }); - } - } - - formatTimeAgo(timestamp) { - const seconds = Math.floor(Date.now() / 1000 - timestamp); - const intervals = { - year: 31536000, - month: 2592000, - week: 604800, - day: 86400, - hour: 3600, - minute: 60, - }; - - for (const [unit, secondsInUnit] of Object.entries(intervals)) { - const interval = Math.floor(seconds / secondsInUnit); - if (interval >= 1) { - return `${interval} ${unit}${interval === 1 ? "" : "s"} ago`; - } - } - - return "just now"; } setupEventListeners() { - // Login Button + // Login this.loginButton.addEventListener("click", async () => { try { const pubkey = await nostrClient.login(); this.login(pubkey, true); - } catch (error) { - this.log("Login failed:", error); + } catch (err) { + this.log("Login failed:", err); this.showError("Failed to login. Please try again."); } }); - // Logout Button + // Logout this.logoutButton.addEventListener("click", () => { this.logout(); }); - // Form submission + // Submit new video form this.submitForm.addEventListener("submit", (e) => this.handleSubmit(e)); - // Close Modal Button + // Close modal by X if (this.closePlayerBtn) { this.closePlayerBtn.addEventListener("click", async () => { await this.hideModal(); }); } - // Close Modal by clicking outside content + // Close modal by clicking outside container if (this.playerModal) { this.playerModal.addEventListener("click", async (e) => { if (e.target === this.playerModal) { @@ -258,73 +227,63 @@ class bitvidApp { }); } - // Video error handling - this.videoElement.addEventListener("error", (e) => { - const error = e.target.error; - this.log("Video error:", error); - if (error) { - this.showError( - `Video playback error: ${error.message || "Unknown error"}` - ); - } - }); - - // Detailed Modal Video Event Listeners - if (this.modalVideo) { - this.modalVideo.addEventListener("error", (e) => { + // Error handling for the small inline player (if used) + if (this.videoElement) { + this.videoElement.addEventListener("error", (e) => { const error = e.target.error; - this.log("Modal video error:", error); if (error) { - this.log("Error code:", error.code); - this.log("Error message:", error.message); this.showError( `Video playback error: ${error.message || "Unknown error"}` ); } }); + } + // Modal video error + if (this.modalVideo) { + this.modalVideo.addEventListener("error", (e) => { + const error = e.target.error; + if (error) { + this.showError( + `Video playback error: ${error.message || "Unknown error"}` + ); + } + }); this.modalVideo.addEventListener("loadstart", () => { this.log("Video loadstart event fired"); }); - this.modalVideo.addEventListener("loadedmetadata", () => { this.log("Video loadedmetadata event fired"); }); - this.modalVideo.addEventListener("canplay", () => { this.log("Video canplay event fired"); }); } - // Copy magnet link + // Copy magnet if (this.copyMagnetBtn) { this.copyMagnetBtn.addEventListener("click", () => { if (this.currentMagnetUri) { navigator.clipboard .writeText(this.currentMagnetUri) - .then(() => this.showSuccess("Magnet link copied to clipboard!")) + .then(() => this.showSuccess("Magnet link copied!")) .catch(() => this.showError("Failed to copy magnet link.")); } }); } - // SHARE BUTTON + // Share button if (this.shareBtn) { this.shareBtn.addEventListener("click", () => { if (!this.currentVideo) { this.showError("No video is loaded to share."); return; } - try { - // Encode the raw hex event ID into 'nevent' const nevent = window.NostrTools.nip19.neventEncode({ id: this.currentVideo.id, }); - - // Build a URL that includes ?v= const shareUrl = `${window.location.origin}${window.location.pathname}?v=${nevent}`; - navigator.clipboard .writeText(shareUrl) .then(() => this.showSuccess("Video link copied to clipboard!")) @@ -341,9 +300,9 @@ class bitvidApp { await this.cleanup(); }); - // Popstate event for back/forward navigation - window.addEventListener("popstate", async (event) => { - console.log("[popstate] Back or forward button detected. Cleaning up..."); + // Back/forward navigation + window.addEventListener("popstate", async () => { + console.log("[popstate] user navigated back/forward; cleaning modal..."); await this.hideModal(); }); } @@ -355,7 +314,6 @@ class bitvidApp { this.userStatus.classList.remove("hidden"); this.userPubKey.textContent = pubkey; this.videoFormContainer.classList.remove("hidden"); - this.log(`User logged in as: ${pubkey}`); if (saveToStorage) { localStorage.setItem("userPubKey", pubkey); @@ -371,11 +329,11 @@ class bitvidApp { this.userPubKey.textContent = ""; this.videoFormContainer.classList.add("hidden"); localStorage.removeItem("userPubKey"); - this.log("User logged out."); } async cleanup() { try { + // Stop playing any small player or modal video if (this.videoElement) { this.videoElement.pause(); this.videoElement.src = ""; @@ -386,436 +344,324 @@ class bitvidApp { this.modalVideo.src = ""; this.modalVideo.load(); } + // Cleanup torrent client await torrentClient.cleanup(); - } catch (error) { - this.log("Cleanup error:", error); - } finally { - try { - await fetch("./webtorrent/cancel/"); - } catch (err) { - console.error("Failed to cancel old WebTorrent request:", err); - } + } catch (err) { + console.error("Cleanup error:", err); } } async hideVideoPlayer() { await this.cleanup(); - this.playerSection.classList.add("hidden"); + if (this.playerSection) { + this.playerSection.classList.add("hidden"); + } } - /** - * OPTIONAL: Reset the URL after hiding the modal so that ?v=nevent - * disappears. Remove this if you’d prefer the URL to remain set. - */ async hideModal() { await this.cleanup(); - this.playerModal.style.display = "none"; - this.playerModal.classList.add("hidden"); - // Clear out the old magnet so "same video requested" doesn't block re-loading + if (this.playerModal) { + this.playerModal.style.display = "none"; + this.playerModal.classList.add("hidden"); + } this.currentMagnetUri = null; - // Optionally revert the URL if you want to remove ?v=... + // Optionally revert ?v=... from the URL window.history.replaceState({}, "", window.location.pathname); - - // Cancel any lingering torrent requests again - try { - await fetch("./webtorrent/cancel/"); - } catch (err) { - console.error("Failed to cancel old WebTorrent request:", err); - } } async handleSubmit(e) { e.preventDefault(); - if (!this.pubkey) { this.showError("Please login to post a video."); return; } - const descriptionElement = document.getElementById("description"); - - // If you have a checkbox with id="isPrivate" in HTML + const descEl = document.getElementById("description"); const isPrivate = this.isPrivateCheckbox ? this.isPrivateCheckbox.checked : false; const formData = { - version: 2, // We set the version to 2 for new posts + version: 2, title: document.getElementById("title")?.value.trim() || "", magnet: document.getElementById("magnet")?.value.trim() || "", thumbnail: document.getElementById("thumbnail")?.value.trim() || "", - description: descriptionElement?.value.trim() || "", + description: descEl?.value.trim() || "", mode: isDevMode ? "dev" : "live", - isPrivate, // new field to handle private listings + isPrivate, }; - this.log("Form Data Collected:", formData); - if (!formData.title || !formData.magnet) { - this.showError("Title and Magnet URI are required."); + this.showError("Title and Magnet are required."); return; } try { await nostrClient.publishVideo(formData, this.pubkey); this.submitForm.reset(); - - // If the private checkbox was checked, reset it if (this.isPrivateCheckbox) { this.isPrivateCheckbox.checked = false; } - await this.loadVideos(); this.showSuccess("Video shared successfully!"); - } catch (error) { - this.log("Failed to publish video:", error.message); + } catch (err) { + console.error("Failed to publish video:", err); this.showError("Failed to share video. Please try again later."); } } + /** + * Subscribe to new videos & re-render the list. + * Now we store them in `this.videosMap`, keyed by `video.id`. + */ async loadVideos() { - console.log("Starting loadVideos..."); - try { - const videos = await nostrClient.fetchVideos(); - console.log("Raw videos from nostrClient:", videos); + console.log("Starting loadVideos (subscription approach)..."); - if (!videos) { - this.log("No videos received"); - throw new Error("No videos received from relays"); - } + if (this.videoSubscription) { + // unsub old sub if present + this.videoSubscription.unsub(); + this.videoSubscription = null; + } - const videosArray = Array.isArray(videos) ? videos : [videos]; - - // Filter so we only show: - // - isPrivate === false (public videos) - // - or isPrivate === true but pubkey === this.pubkey - const displayedVideos = videosArray.filter((video) => { - if (!video.isPrivate) { - return true; // public - } - // It's private; only show if user is the owner - return this.pubkey && video.pubkey === this.pubkey; - }); - - if (displayedVideos.length === 0) { - this.log("No valid videos found after filtering."); - this.videoList.innerHTML = ` -

- No public videos available yet. Be the first to upload one! -

`; - return; - } - - this.log("Processing filtered videos:", displayedVideos); - - displayedVideos.forEach((video, index) => { - this.log(`Video ${index} details:`, { - id: video.id, - title: video.title, - magnet: video.magnet, - isPrivate: video.isPrivate, - pubkey: video.pubkey, - created_at: video.created_at, - }); - }); - - await this.renderVideoList(displayedVideos); - this.log(`Rendered ${displayedVideos.length} videos successfully`); - } catch (error) { - this.log("Failed to fetch videos:", error); - this.showError( - "An error occurred while loading videos. Please try again later." - ); - this.videoList.innerHTML = ` + // Clear the listing + this.videoList.innerHTML = `

- No videos available at the moment. Please try again later. + Loading videos...

`; - } - } - async renderVideoList(videos) { + // Clear the Map so we start fresh + this.videosMap.clear(); + try { - console.log("RENDER VIDEO LIST - Start", { - videosReceived: videos, - videosCount: videos ? videos.length : "N/A", - videosType: typeof videos, - }); - - if (!videos) { - console.error("NO VIDEOS RECEIVED"); - this.videoList.innerHTML = `

No videos found.

`; - return; - } - - const videoArray = Array.isArray(videos) ? videos : [videos]; - if (videoArray.length === 0) { - console.error("VIDEO ARRAY IS EMPTY"); - this.videoList.innerHTML = `

No videos available.

`; - return; - } - - // Sort newest first - videoArray.sort((a, b) => b.created_at - a.created_at); - - // Fetch user profiles - const userProfiles = new Map(); - const uniquePubkeys = [...new Set(videoArray.map((v) => v.pubkey))]; - for (const pubkey of uniquePubkeys) { - try { - const userEvents = await nostrClient.pool.list(nostrClient.relays, [ - { kinds: [0], authors: [pubkey], limit: 1 }, - ]); - if (userEvents[0]?.content) { - const profile = JSON.parse(userEvents[0].content); - userProfiles.set(pubkey, { - name: profile.name || profile.display_name || "Unknown", - picture: profile.picture || `https://robohash.org/${pubkey}`, - }); - } else { - userProfiles.set(pubkey, { - name: "Unknown", - picture: `https://robohash.org/${pubkey}`, - }); - } - } catch (error) { - console.error(`Profile fetch error for ${pubkey}:`, error); - userProfiles.set(pubkey, { - name: "Unknown", - picture: `https://robohash.org/${pubkey}`, - }); + // Subscribe to new events + this.videoSubscription = nostrClient.subscribeVideos((video) => { + // Skip private videos not owned + if (video.isPrivate && video.pubkey !== this.pubkey) { + return; } - } - - // Build each video card - const renderedVideos = videoArray - .map((video, index) => { - try { - if (!this.validateVideo(video, index)) { - console.error(`Invalid video: ${video.title}`); - return ""; - } - - // Create a share URL - const nevent = window.NostrTools.nip19.neventEncode({ id: video.id }); - const shareUrl = `${window.location.pathname}?v=${encodeURIComponent(nevent)}`; - - // Gather profile info - const profile = userProfiles.get(video.pubkey) || { - name: "Unknown", - picture: `https://robohash.org/${video.pubkey}`, - }; - const timeAgo = this.formatTimeAgo(video.created_at); - - // Check if user can edit - const canEdit = video.pubkey === this.pubkey; - const highlightClass = video.isPrivate && canEdit - ? "border-2 border-yellow-500" - : "border-none"; - - // Gear menu if canEdit - const gearMenu = canEdit - ? ` -
- - -
- ` - : ""; - - // Build the card HTML - return ` -
- - - -
- ${this.escapeHTML(video.title)} -
-
- -
-

- ${this.escapeHTML(video.title)} -

-
-
-
- ${profile.name} -
-
-

- ${this.escapeHTML(profile.name)} -

-
- ${timeAgo} -
-
-
- ${gearMenu} -
-
-
- `; - } catch (err) { - console.error(`Error processing video ${index}:`, err); - return ""; - } - }) - .filter((html) => html.length > 0); - - if (renderedVideos.length === 0) { - this.videoList.innerHTML = `

No valid videos to display.

`; - return; - } - - this.videoList.innerHTML = renderedVideos.join(""); - console.log("Videos rendered successfully"); - } catch (error) { - console.error("Rendering error:", error); - this.videoList.innerHTML = `

Error loading videos.

`; + + // Only store if we haven’t seen this event ID yet + if (!this.videosMap.has(video.id)) { + this.videosMap.set(video.id, video); + // Then re-render from the map + const allVideos = Array.from(this.videosMap.values()); + this.renderVideoList(allVideos); + } + }); + } catch (err) { + console.error("Subscription error:", err); + this.showError("Could not load videos via subscription."); + this.videoList.innerHTML = ` +

+ No videos available at this time. +

`; } } - validateVideo(video, index) { - const validationResults = { - hasId: Boolean(video?.id), - isValidId: typeof video?.id === "string" && video.id.trim().length > 0, - hasVideo: Boolean(video), - hasTitle: Boolean(video?.title), - hasMagnet: Boolean(video?.magnet), - hasMode: Boolean(video?.mode), - hasPubkey: Boolean(video?.pubkey), - isValidTitle: typeof video?.title === "string" && video.title.length > 0, - isValidMagnet: - typeof video?.magnet === "string" && video.magnet.length > 0, - isValidMode: - typeof video?.mode === "string" && ["dev", "live"].includes(video.mode), - }; - - const passed = Object.values(validationResults).every(Boolean); - console.log( - `Video ${video?.title} validation results:`, - validationResults, - passed ? "PASSED" : "FAILED" - ); - - return passed; - } - - getErrorMessage(error) { - if (error.message.includes("404")) { - return "Service worker not found. Please check server configuration."; - } else if (error.message.includes("Brave")) { - return "Please disable Brave Shields for this site to play videos."; - } else if (error.message.includes("timeout")) { - return "Connection timeout. Please check your internet connection."; - } else { - return "Failed to play video. Please try again."; - } - } - - showError(message) { - if (this.errorContainer) { - this.errorContainer.textContent = message; - this.errorContainer.classList.remove("hidden"); - setTimeout(() => { - this.errorContainer.classList.add("hidden"); - this.errorContainer.textContent = ""; - }, 5000); - } else { - alert(message); - } - } - - showSuccess(message) { - if (this.successContainer) { - this.successContainer.textContent = message; - this.successContainer.classList.remove("hidden"); - setTimeout(() => { - this.successContainer.classList.add("hidden"); - this.successContainer.textContent = ""; - }, 5000); - } else { - alert(message); - } - } - - escapeHTML(unsafe) { - return unsafe - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); - } - - log(message) { - console.log(message); - } - /** - * Plays a video given its magnet URI. - * This method handles the logic to initiate torrent download and play the video. + * Convert the values of our videosMap to an array & render them. + */ + async renderVideoList(videos) { + console.log("RENDER VIDEO LIST - Start", { + videosReceived: videos, + videosCount: videos.length, + }); + + if (!videos || videos.length === 0) { + this.videoList.innerHTML = ` +

+ No public videos available yet. Be the first to upload one! +

`; + return; + } + + // Sort newest first + videos.sort((a, b) => b.created_at - a.created_at); + + const htmlList = videos.map((video, index) => { + if (!video.id || !video.title) { + console.error("Video missing ID/title:", video); + return ""; + } + + const nevent = window.NostrTools.nip19.neventEncode({ id: video.id }); + const shareUrl = `${window.location.pathname}?v=${encodeURIComponent( + nevent + )}`; + + const canEdit = video.pubkey === this.pubkey; + const highlightClass = + video.isPrivate && canEdit + ? "border-2 border-yellow-500" + : "border-none"; + const timeAgo = this.formatTimeAgo(video.created_at); + + // Gear menu + const gearMenu = canEdit + ? ` +
+ + +
+ ` + : ""; + + // Build the card + const cardHtml = ` +
+ +
+ ${this.escapeHTML(video.title)} +
+
+
+

+ ${this.escapeHTML(video.title)} +

+
+
+
+ Placeholder +
+
+

+ Loading name... +

+
+ ${timeAgo} +
+
+
+ ${gearMenu} +
+
+
+ `; + + // Kick off background fetch for profile + this.fetchAndRenderProfile(video.pubkey); + + return cardHtml; + }); + + const valid = htmlList.filter((x) => x.length > 0); + if (valid.length === 0) { + this.videoList.innerHTML = ` +

+ No valid videos to display. +

`; + return; + } + + this.videoList.innerHTML = valid.join(""); + console.log("Videos rendered successfully (subscription approach)."); + } + + async fetchAndRenderProfile(pubkey) { + if (this.profileCache.has(pubkey)) { + this.updateProfileInDOM(pubkey, this.profileCache.get(pubkey)); + return; + } + try { + const userEvents = await nostrClient.pool.list(nostrClient.relays, [ + { kinds: [0], authors: [pubkey], limit: 1 }, + ]); + if (userEvents.length > 0 && userEvents[0].content) { + const data = JSON.parse(userEvents[0].content); + const profile = { + name: data.name || data.display_name || "Unknown", + picture: data.picture || "assets/png/default-avatar.png", + }; + this.profileCache.set(pubkey, profile); + this.updateProfileInDOM(pubkey, profile); + } + } catch (err) { + console.error("Profile fetch error:", err); + } + } + + updateProfileInDOM(pubkey, profile) { + const picEls = document.querySelectorAll( + `.author-pic[data-pubkey="${pubkey}"]` + ); + for (const el of picEls) { + el.src = profile.picture; + } + const nameEls = document.querySelectorAll( + `.author-name[data-pubkey="${pubkey}"]` + ); + for (const el of nameEls) { + el.textContent = profile.name; + } + } + + /** + * Actually plays a video, using magnet lookups. + * We search our Map’s values by magnet. If not found, fallback fetch. */ async playVideo(magnetURI) { try { @@ -823,49 +669,49 @@ class bitvidApp { this.showError("Invalid Magnet URI."); return; } - - // Decode in case the magnet was URI-encoded const decodedMagnet = decodeURIComponent(magnetURI); - - // Prevent re-invoking the exact same magnet link if it's already in use if (this.currentMagnetUri === decodedMagnet) { this.log("Same video requested - already playing"); return; } this.currentMagnetUri = decodedMagnet; - // Set a looping "please stand by" GIF as a temporary placeholder + // "Please stand by" poster this.modalVideo.poster = "assets/gif/please-stand-by.gif"; - - // Show the modal + // Show modal this.playerModal.style.display = "flex"; this.playerModal.classList.remove("hidden"); - // Fetch (or re-fetch) videos from relays - const videos = await nostrClient.fetchVideos(); - const video = videos.find((v) => v.magnet === decodedMagnet); + // 1) Convert the map’s values to an array and find by magnet + let video = Array.from(this.videosMap.values()).find( + (v) => v.magnet === decodedMagnet + ); + + // 2) Fallback fetch if not found + if (!video) { + const allVideos = await nostrClient.fetchVideos(); + video = allVideos.find((v) => v.magnet === decodedMagnet); + } + if (!video) { this.showError("Video data not found."); return; } - // Keep a reference to the current video this.currentVideo = video; - // If the user owns a private video, decrypt it just once if ( video.isPrivate && video.pubkey === this.pubkey && !video.alreadyDecrypted ) { - this.log("User owns a private video => decrypting magnet link..."); + this.log("Decrypting private magnet link..."); video.magnet = fakeDecrypt(video.magnet); video.alreadyDecrypted = true; } - const finalMagnet = video.magnet; - // Update the URL so the service worker has a consistent scope + // Update URL try { const nevent = window.NostrTools.nip19.neventEncode({ id: video.id }); const newUrl = @@ -875,7 +721,7 @@ class bitvidApp { console.error("Error pushing new URL state:", err); } - // Fetch creator profile + // optional: fetch a single author profile let creatorProfile = { name: "Unknown", picture: `https://robohash.org/${video.pubkey}`, @@ -885,17 +731,16 @@ class bitvidApp { { kinds: [0], authors: [video.pubkey], limit: 1 }, ]); if (userEvents.length > 0 && userEvents[0]?.content) { - const profile = JSON.parse(userEvents[0].content); + const data = JSON.parse(userEvents[0].content); creatorProfile = { - name: profile.name || profile.display_name || "Unknown", - picture: profile.picture || `https://robohash.org/${video.pubkey}`, + name: data.name || data.display_name || "Unknown", + picture: data.picture || `https://robohash.org/${video.pubkey}`, }; } } catch (error) { this.log("Error fetching creator profile:", error); } - // Derive a short display of the pubkey let creatorNpub = "Unknown"; try { creatorNpub = window.NostrTools.nip19.npubEncode(video.pubkey); @@ -904,7 +749,7 @@ class bitvidApp { creatorNpub = video.pubkey; } - // Populate modal fields + // Fill modal this.videoTitle.textContent = video.title || "Untitled"; this.videoDescription.textContent = video.description || "No description available."; @@ -918,22 +763,19 @@ class bitvidApp { this.creatorAvatar.src = creatorProfile.picture; this.creatorAvatar.alt = creatorProfile.name; - // Start streaming this.log("Starting video stream with:", finalMagnet); await torrentClient.streamVideo(finalMagnet, this.modalVideo); - // Remove the loading GIF once the video can play this.modalVideo.addEventListener("canplay", () => { this.modalVideo.removeAttribute("poster"); }); - // Periodically mirror main player stats into the modal + // Mirror stats from the small player const updateInterval = setInterval(() => { if (!document.body.contains(this.modalVideo)) { clearInterval(updateInterval); return; } - const status = document.getElementById("status"); const progress = document.getElementById("progress"); const peers = document.getElementById("peers"); @@ -956,7 +798,6 @@ class bitvidApp { updateTorrentStatus(torrent) { if (!torrent) return; - this.modalStatus.textContent = torrent.status; this.modalProgress.style.width = `${(torrent.progress * 100).toFixed(2)}%`; this.modalPeers.textContent = `Peers: ${torrent.numPeers}`; @@ -967,7 +808,6 @@ class bitvidApp { torrent.downloaded / (1024 * 1024) ).toFixed(2)} MB / ${(torrent.length / (1024 * 1024)).toFixed(2)} MB`; - if (torrent.ready) { this.modalStatus.textContent = "Ready to play"; } else { @@ -975,58 +815,43 @@ class bitvidApp { } } - /** - * Allows the user to edit a video note (only if they are the owner). - */ async handleEditVideo(index) { try { - const videos = await nostrClient.fetchVideos(); - const video = videos[index]; - + // We do a fallback fetch to get a list of videos by index + const all = await nostrClient.fetchVideos(); + const video = all[index]; if (!this.pubkey) { this.showError("Please login to edit videos."); return; } - if (video.pubkey !== this.pubkey) { + if (!video || video.pubkey !== this.pubkey) { this.showError("You do not own this video."); return; } - const newTitle = prompt( - "New Title? (Leave blank to keep existing)", - video.title - ); + const newTitle = prompt("New Title? (blank=keep existing)", video.title); const newMagnet = prompt( - "New Magnet? (Leave blank to keep existing)", + "New Magnet? (blank=keep existing)", video.magnet ); - const newThumbnail = prompt( - "New Thumbnail? (Leave blank to keep existing)", + const newThumb = prompt( + "New Thumbnail? (blank=keep existing)", video.thumbnail ); - const newDescription = prompt( - "New Description? (Leave blank to keep existing)", + const newDesc = prompt( + "New Description? (blank=keep existing)", video.description ); const wantPrivate = confirm("Make this video private? OK=Yes, Cancel=No"); - const title = - newTitle === null || newTitle.trim() === "" - ? video.title - : newTitle.trim(); + !newTitle || !newTitle.trim() ? video.title : newTitle.trim(); const magnet = - newMagnet === null || newMagnet.trim() === "" - ? video.magnet - : newMagnet.trim(); + !newMagnet || !newMagnet.trim() ? video.magnet : newMagnet.trim(); const thumbnail = - newThumbnail === null || newThumbnail.trim() === "" - ? video.thumbnail - : newThumbnail.trim(); + !newThumb || !newThumb.trim() ? video.thumbnail : newThumb.trim(); const description = - newDescription === null || newDescription.trim() === "" - ? video.description - : newDescription.trim(); + !newDesc || !newDesc.trim() ? video.description : newDesc.trim(); const updatedData = { version: video.version || 2, @@ -1045,35 +870,26 @@ class bitvidApp { }; await nostrClient.editVideo(originalEvent, updatedData, this.pubkey); this.showSuccess("Video updated successfully!"); - await this.loadVideos(); + await this.loadVideos(); // re-subscribe and re-render } catch (err) { this.log("Failed to edit video:", err.message); - this.showError("Failed to edit video. Please try again later."); + this.showError("Failed to edit video. Please try again."); } } - /** - * Allows the user to delete (soft-delete) a video by marking it as deleted. - */ async handleDeleteVideo(index) { try { - const videos = await nostrClient.fetchVideos(); - const video = videos[index]; - + const all = await nostrClient.fetchVideos(); + const video = all[index]; if (!this.pubkey) { this.showError("Please login to delete videos."); return; } - if (video.pubkey !== this.pubkey) { + if (!video || video.pubkey !== this.pubkey) { this.showError("You do not own this video."); return; } - - if ( - !confirm( - `Are you sure you want to delete "${video.title}"? This action cannot be undone.` - ) - ) { + if (!confirm(`Delete "${video.title}"? This can't be undone.`)) { return; } @@ -1082,45 +898,48 @@ class bitvidApp { pubkey: video.pubkey, tags: video.tags, }; - await nostrClient.deleteVideo(originalEvent, this.pubkey); - this.showSuccess("Video deleted (hidden) successfully!"); + this.showSuccess("Video deleted successfully!"); await this.loadVideos(); } catch (err) { this.log("Failed to delete video:", err.message); - this.showError("Failed to delete video. Please try again later."); + this.showError("Failed to delete video. Please try again."); } } - // NEW: Parse ?v=nevent after videos are loaded + /** + * Checks URL params for ?v=... and tries to open the video by ID. + */ checkUrlParams() { const urlParams = new URLSearchParams(window.location.search); const maybeNevent = urlParams.get("v"); - if (maybeNevent) { try { const decoded = window.NostrTools.nip19.decode(maybeNevent); if (decoded.type === "nevent" && decoded.data.id) { const eventId = decoded.data.id; - // Fetch videos again (or rely on in-memory) and find a match - nostrClient - .fetchVideos() - .then((allVideos) => { - const matched = allVideos.find((v) => v.id === eventId); - if (matched) { - // We could directly call this.playVideo(matched.magnet), - // but that can fail if magnet changed or is encrypted. - // Instead, let's do a dedicated method: - this.playVideoByEventId(eventId); - } else { - this.showError("No matching video found for that link."); - } - }) - .catch((err) => { - console.error("Error re-fetching videos:", err); - this.showError("Could not load videos for the share link."); - }); + // 1) Check local Map first + let localMatch = this.videosMap.get(eventId); + if (localMatch) { + this.playVideoByEventId(eventId); + } else { + // 2) fallback fetch + nostrClient + .fetchVideos() + .then((all) => { + const matched = all.find((v) => v.id === eventId); + if (matched) { + this.playVideoByEventId(eventId); + } else { + this.showError("No matching video found for that link."); + } + }) + .catch((err) => { + console.error("Error re-fetching videos:", err); + this.showError("Could not load videos for the share link."); + }); + } } } catch (err) { console.error("Error decoding nevent:", err); @@ -1129,26 +948,32 @@ class bitvidApp { } } - // NEW: A helper to play by event ID so we don't rely on magnet string + /** + * Plays a video given an event ID. Looks up in the Map if possible, else fallback. + */ async playVideoByEventId(eventId) { try { - const videos = await nostrClient.fetchVideos(); - const video = videos.find((v) => v.id === eventId); + // 1) Check local subscription map first + let video = this.videosMap.get(eventId); + + // 2) Fallback fetch if not found + if (!video) { + const all = await nostrClient.fetchVideos(); + video = all.find((v) => v.id === eventId); + } + if (!video) { this.showError("Video not found."); return; } - - // Store as current video for sharing, etc. this.currentVideo = video; - // If private + user owns it => decrypt once if ( video.isPrivate && video.pubkey === this.pubkey && !video.alreadyDecrypted ) { - this.log("User owns a private video => decrypting magnet link..."); + this.log("Decrypting private magnet link..."); video.magnet = fakeDecrypt(video.magnet); video.alreadyDecrypted = true; } @@ -1159,30 +984,25 @@ class bitvidApp { this.playerModal.style.display = "flex"; this.playerModal.classList.remove("hidden"); - // Update the browser URL to keep the same path, just add ?v=... const nevent = window.NostrTools.nip19.neventEncode({ id: eventId }); const newUrl = window.location.pathname + `?v=${encodeURIComponent(nevent)}`; window.history.pushState({}, "", newUrl); - // Fetch creator profile + // optional: fetch single author profile let creatorProfile = { name: "Unknown", picture: `https://robohash.org/${video.pubkey}`, }; try { const userEvents = await nostrClient.pool.list(nostrClient.relays, [ - { - kinds: [0], - authors: [video.pubkey], - limit: 1, - }, + { kinds: [0], authors: [video.pubkey], limit: 1 }, ]); if (userEvents.length > 0 && userEvents[0]?.content) { - const profile = JSON.parse(userEvents[0].content); + const data = JSON.parse(userEvents[0].content); creatorProfile = { - name: profile.name || profile.display_name || "Unknown", - picture: profile.picture || `https://robohash.org/${video.pubkey}`, + name: data.name || data.display_name || "Unknown", + picture: data.picture || `https://robohash.org/${video.pubkey}`, }; } } catch (error) { @@ -1218,7 +1038,6 @@ class bitvidApp { clearInterval(updateInterval); return; } - const status = document.getElementById("status"); const progress = document.getElementById("progress"); const peers = document.getElementById("peers"); @@ -1229,14 +1048,76 @@ class bitvidApp { if (progress) this.modalProgress.style.width = progress.style.width; if (peers) this.modalPeers.textContent = peers.textContent; if (speed) this.modalSpeed.textContent = speed.textContent; - if (downloaded) + if (downloaded) { this.modalDownloaded.textContent = downloaded.textContent; + } }, 1000); } catch (error) { this.log("Error in playVideoByEventId:", error); this.showError(`Playback error: ${error.message}`); } } + + // Utility helpers + formatTimeAgo(timestamp) { + const seconds = Math.floor(Date.now() / 1000 - timestamp); + const intervals = { + year: 31536000, + month: 2592000, + week: 604800, + day: 86400, + hour: 3600, + minute: 60, + }; + for (const [unit, secInUnit] of Object.entries(intervals)) { + const int = Math.floor(seconds / secInUnit); + if (int >= 1) { + return `${int} ${unit}${int === 1 ? "" : "s"} ago`; + } + } + return "just now"; + } + + escapeHTML(unsafe) { + return unsafe + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + } + + showError(msg) { + console.error(msg); + if (this.errorContainer) { + this.errorContainer.textContent = msg; + this.errorContainer.classList.remove("hidden"); + setTimeout(() => { + this.errorContainer.classList.add("hidden"); + this.errorContainer.textContent = ""; + }, 5000); + } else { + alert(msg); + } + } + + showSuccess(msg) { + console.log(msg); + if (this.successContainer) { + this.successContainer.textContent = msg; + this.successContainer.classList.remove("hidden"); + setTimeout(() => { + this.successContainer.classList.add("hidden"); + this.successContainer.textContent = ""; + }, 5000); + } else { + alert(msg); + } + } + + log(msg) { + console.log(msg); + } } export const app = new bitvidApp(); diff --git a/src/js/nostr.js b/src/js/nostr.js index f8249dc..48fccf6 100644 --- a/src/js/nostr.js +++ b/src/js/nostr.js @@ -46,6 +46,9 @@ class NostrClient { this.pool = null; this.pubkey = null; this.relays = RELAY_URLS; + + // We keep a Map of subscribed videos for quick lookups by event.id + this.subscribedVideos = new Map(); } /** @@ -207,7 +210,7 @@ class NostrClient { const event = { kind: 30078, pubkey, - created_at: Math.floor(Date.now() / 1000), + created_at: Math.floor(Date.now() / 100), tags: [ ["t", "video"], ["d", uniqueD], @@ -254,7 +257,6 @@ class NostrClient { * Edits an existing video event by reusing the same "d" tag. * Allows toggling isPrivate on/off and re-encrypting or decrypting the magnet. */ - // Minimal fix: ensures we only ever encrypt once per edit operation async editVideo(originalEvent, updatedVideoData, pubkey) { if (!pubkey) { throw new Error("User is not logged in."); @@ -382,7 +384,7 @@ class NostrClient { /** * Soft-delete or hide an existing video by marking content as "deleted: true" - * and republishing with same (kind=30078, pubkey, d) address. + * and republishing with the same (kind=30078, pubkey, d) address. */ async deleteVideo(originalEvent, pubkey) { if (!pubkey) { @@ -407,6 +409,7 @@ class NostrClient { const oldContent = JSON.parse(originalEvent.content || "{}"); const oldVersion = oldContent.version ?? 1; + // Mark it "deleted" and clear out magnet, thumbnail, etc. const contentObject = { version: oldVersion, deleted: true, @@ -418,6 +421,7 @@ class NostrClient { isPrivate: oldContent.isPrivate || false, }; + // Reuse the same d-tag for an addressable edit const event = { kind: 30078, pubkey, @@ -451,10 +455,7 @@ class NostrClient { } } catch (err) { if (isDevMode) { - console.error( - `Failed to publish deleted event to ${url}:`, - err.message - ); + console.error(`Failed to publish deleted event to ${url}:`, err); } } }) @@ -463,117 +464,141 @@ class NostrClient { return signedEvent; } catch (error) { if (isDevMode) { - console.error("Failed to sign deleted event:", error.message); + console.error("Failed to sign deleted event:", error); } throw new Error("Failed to sign deleted event."); } } /** - * Fetches videos from all configured relays. + * Subscribes to video events from all configured relays, storing them in a Map. + * + * @param {Function} onVideo - Callback fired for each new/updated video + */ + subscribeVideos(onVideo) { + const filter = { + kinds: [30078], + "#t": ["video"], + limit: 500, // Adjust as needed + since: 0, + }; + + if (isDevMode) { + console.log("[subscribeVideos] Subscribing with filter:", filter); + } + + // Create subscription across all relays + const sub = this.pool.sub(this.relays, [filter]); + + sub.on("event", (event) => { + try { + const content = JSON.parse(event.content); + + // If marked deleted + if (content.deleted === true) { + // Remove it from our Map if we had it + if (this.subscribedVideos.has(event.id)) { + this.subscribedVideos.delete(event.id); + // Optionally notify the callback so UI can remove it + // onVideo(null, { deletedId: event.id }); + } + return; + } + + // Construct a video object + const video = { + id: event.id, + version: content.version ?? 1, + isPrivate: content.isPrivate ?? false, + title: content.title || "", + magnet: content.magnet || "", + thumbnail: content.thumbnail || "", + description: content.description || "", + mode: content.mode || "live", + pubkey: event.pubkey, + created_at: event.created_at, + tags: event.tags, + }; + + // Check if we already have it in our Map + if (!this.subscribedVideos.has(event.id)) { + // It's new, so store it + this.subscribedVideos.set(event.id, video); + // Then notify the callback that a new video arrived + onVideo(video); + } else { + // Optional: if you want to detect edits, compare the new vs. old and update + // this.subscribedVideos.set(event.id, video); + // onVideo(video) to re-render, etc. + } + } catch (err) { + if (isDevMode) { + console.error("[subscribeVideos] Error parsing event:", err); + } + } + }); + + sub.on("eose", () => { + if (isDevMode) { + console.log("[subscribeVideos] Reached EOSE for all relays"); + } + // Optionally: onVideo(null, { eose: true }) to signal initial load done + }); + + return sub; // so you can unsub later if needed + } + + /** + * A one-time, bulk fetch of videos from all configured relays. + * (Limit has been reduced to 300 for better performance.) */ async fetchVideos() { const filter = { kinds: [30078], "#t": ["video"], - limit: 1000, + limit: 300, // Reduced from 1000 for quicker fetches since: 0, }; - const videoEvents = new Map(); - if (isDevMode) { - console.log("[fetchVideos] Starting fetch from all relays..."); - console.log("[fetchVideos] Filter:", filter); - } - try { + // Query each relay in parallel await Promise.all( this.relays.map(async (url) => { - if (isDevMode) console.log(`[fetchVideos] Querying relay: ${url}`); - - try { - const events = await this.pool.list([url], [filter]); - - if (isDevMode) { - console.log(`Events from ${url}:`, events.length); - if (events.length > 0) { - events.forEach((evt, idx) => { - console.log( - `[fetchVideos] [${url}] Event[${idx}] ID: ${evt.id} | pubkey: ${evt.pubkey} | created_at: ${evt.created_at}` - ); + const events = await this.pool.list([url], [filter]); + for (const evt of events) { + try { + const content = JSON.parse(evt.content); + if (content.deleted) { + videoEvents.delete(evt.id); + } else { + videoEvents.set(evt.id, { + id: evt.id, + pubkey: evt.pubkey, + created_at: evt.created_at, + title: content.title || "", + magnet: content.magnet || "", + thumbnail: content.thumbnail || "", + description: content.description || "", + mode: content.mode || "live", + isPrivate: content.isPrivate || false, + tags: evt.tags, }); } - } - - events.forEach((event) => { - try { - const content = JSON.parse(event.content); - - // If deleted == true, it overrides older notes - if (content.deleted === true) { - videoEvents.delete(event.id); - return; - } - - // If we haven't seen this event.id before, store it - if (!videoEvents.has(event.id)) { - videoEvents.set(event.id, { - id: event.id, - version: content.version ?? 1, - isPrivate: content.isPrivate ?? false, - title: content.title || "", - magnet: content.magnet || "", - thumbnail: content.thumbnail || "", - description: content.description || "", - mode: content.mode || "live", - pubkey: event.pubkey, - created_at: event.created_at, - tags: event.tags, - }); - } - } catch (parseError) { - if (isDevMode) { - console.error( - "[fetchVideos] Event parsing error:", - parseError - ); - } - } - }); - } catch (relayError) { - if (isDevMode) { - console.error( - `[fetchVideos] Error fetching from ${url}:`, - relayError - ); + } catch (e) { + console.error("Error parsing event content:", e); } } }) ); - const videos = Array.from(videoEvents.values()).sort( + // Turn the Map into a sorted array + const allVideos = Array.from(videoEvents.values()).sort( (a, b) => b.created_at - a.created_at ); - - // Apply access control filtering - const filteredVideos = accessControl.filterVideos(videos); - - if (isDevMode) { - console.log("[fetchVideos] All relays have responded."); - console.log( - `[fetchVideos] Total unique video events: ${videoEvents.size}` - ); - console.log( - `[fetchVideos] Videos after filtering: ${filteredVideos.length}` - ); - } - - return filteredVideos; - } catch (error) { - if (isDevMode) { - console.error("FETCH VIDEOS ERROR:", error); - } + return allVideos; + } catch (err) { + console.error("fetchVideos error:", err); return []; } }