From 71d6fc5a4a841ef6e71e6b49676ab7aa62c4ce1e Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Tue, 14 Jun 2022 22:14:48 +0600 Subject: [PATCH] PlaylistView shows image & extra data as header Loaders & error placeholders added PlayerOverlay swipe to open PlayerView fix: Logout functionality broken --- assets/empty_box.png | Bin 0 -> 170673 bytes lib/components/Album/AlbumView.dart | 134 ++++------ lib/components/Category/CategoryCard.dart | 4 + lib/components/Home/Sidebar.dart | 18 +- lib/components/Library/UserAlbums.dart | 3 +- lib/components/Library/UserPlaylists.dart | 4 +- lib/components/Player/PlayerOverlay.dart | 99 ++++---- lib/components/Player/PlayerView.dart | 2 +- lib/components/Playlist/PlaylistView.dart | 188 ++++++-------- lib/components/Shared/HeartButton.dart | 4 +- lib/components/Shared/NotFound.dart | 30 +++ lib/components/Shared/PageWindowTitleBar.dart | 27 +- .../Shared/TrackCollectionView.dart | 240 ++++++++++++++++++ lib/components/Shared/TracksTableView.dart | 74 +++++- lib/hooks/usePaletteColor.dart | 27 ++ lib/provider/Auth.dart | 2 +- lib/provider/SpotifyRequests.dart | 14 +- 17 files changed, 610 insertions(+), 260 deletions(-) create mode 100644 assets/empty_box.png create mode 100644 lib/components/Shared/NotFound.dart create mode 100644 lib/components/Shared/TrackCollectionView.dart diff --git a/assets/empty_box.png b/assets/empty_box.png new file mode 100644 index 0000000000000000000000000000000000000000..24e95b239fa3c42db26d0ed09f353d79e18d8fae GIT binary patch literal 170673 zcmagGRX~*A+cgXWLw86>DcwkScZbp?-5}jCpdcdMjdXYCV9*URfRxhRApH%ffBn4& z&v(Ls4s-8)?<>|?*V=@sD$Agw5Tn4rz@W>?N~*)aAOc}v;GZKQK>sDFZ;%!Sh5|-T zQtY{>;m$mwG0E5Vjl0DPs`C;P2{0BCY%uA!8ft}x%?#D|txC=N9p|?^UOe9yVCb=8 z=QweYm?K8TWo5ynXs?M=A5SC9`FtQ8XxD2nOPIg78y<|TV@FV^ElpuwlzR^u-y7u1 za&h+z081Q;Iv@EgFJ~g*SMB zP~iQ4e-#oIULNNE`7k7k=v^e-Rzl~Uj2Q;+03Qdc?>ottJQ$>@Vi(UCkh*c$cl6G7BX|z5b+0 z#h^|;B{EhddD6ZjIF*&wIn+5cGGsb$+ird*_`LE{;AJ#5_Lb$@=}W&d5ss*#ky8V8 z$Fs-%V_7m8H)&bhuv;!4U;6nyCr`cET$bgGH5K8}uS5*ru-$Tz3^3dmj7;tMU`53f zuVF+GbJ=D^h0{M&T*=iFA%r2bwf!kZHIIh1u|vr(BT)noxv}~r)P9Td^n+~ZZ0co8 z^ovEEJCfdAyiGD;?apJ>^-J6%2Fiv94$QMgT^^(bvL*Wb)_9Z{%qvy%~zRIK0a@zh~(KT z%uQ3q+iCCid^t0X;%y^1cFY&mi8(2phCc`e*Q|ah#I{7%Gd0yAQ|x`PlC?Q`ZG6 zVw(aY-2*54(8_s0O6Vc8AdT}^bdPxJgR`o^#eKx~o_2sDWj0QeOk1)viV{+7t|%qr ziR%S;9xl&fSXEpnH$Wi`?u$DstVxWD5KcN9f3k7WLW>Vu%T6nI*FU>1QM&`S597P@ zoRBD-oYO5T~2S|VQq&?vK~!}xDji=x82 z9)8igJ!wPZJ!klV#%#P?j08^)PUDjGi;VbPm2{p|t=-I|;(Lbs*4U_(bqvdc(%+g( z9c#$_XI&H$K&EO=wx9E%MzObw)Ttlr73NZ~o6mzMY z@pKX$o<9l+r9hEG4eLMO1_O%;*yH7)1g0w7>)CS-@$WUmm~x@#I%Y74=3^ zyqd=>htS^0VUU;9q1wG+Le@*S$(PwylmG8}K$7r^Q^pR40$wJEFA+Y5i5}^~>*@sZ zSTVxY`uzTAuRiGO{zzSB%eF zpd)voxP@ZQREt{Hi>_ln{_nxT0A`p*tMxhrIX!qJR_ylR zCxy&`o~8wM6RK>#7b8mz;!4Hm-CWoo=&>jl9Z-D#BLt9PY`om5UOX8O{Cyz*Yf*Rb zbJedxD=v->1mF>F;?`x6I8_3(jgQkkAN_u`Sut3nv-wLZ-|n+wA^imPl)ybv#***7 zA-Md*J2iDl>h}M>FFZTn?+PM$KiuqhAR`+}A#QEFCDOSDUhGQSIill8SY<~Ik;fI41MM33l4j2x| z80t8lylt)7s%qo(h-qszDSr-`yx=E`V2x>I3u)$R&|8nJ**C7&CN5Isd^=it4%6&% z`9snp?qj*a7?vzK?84j43C(!C-{+t!W_;@7sHd{%Q);K%&e@=xT`O%|;z&bhh2Xf3 zxk1TeD6Pu&^;`JS@5ueN7I)O-!!#k(h#@TJ8h}Viw54SyE53lc^}*2f95T)&AB~%I z;xP87)RgJ$bC8Nzi&(xKm*fwH~P}+bp8vw?Iv+ChsJAuO0_G;xDV_5R+D_rg&4alHC;w= z3W(=PPSf#}b50XGYZ*S!Vp1mjY%67`{A*IjxXhln|C_8&_9NzNZ;;GNU>w1U_BvZ{ zerHz}wsx&k!|91ZV{bQCxG(zU7lO|j?A__FS65c$tY;{Qo*kiVsz0Y&Y}%vg>$5ie z1dS(DPK^Tuc3@g)ckTbu;32NE;D2x&18;P)Z3 z8yffDEH)ZuokUNPRn+Xaaehj6GXBIigtDVU^-0FxpuZnM-k~B45VBI0xGh36M|CEW zR?UR~ys}Ys(uO&Ym+Rh_O@5N>X1ZpxM1O41E@9;rv=SCVA@XQ$feZAl;B_b9NmX?7fk5`Cs= z<2aIs7eqbiK342O{oTYU5`dcRJQLnq75lww=mV)0t9u$BmiIe3qo6p6h|@FrJ=w9_ z<_EDZ%0`=;E*?R6ppM39A;K!#e?uW%bP^-S@9d}rIj4NS=|w>Yp9(iH8h>M0d4h9) zB-T&}b#>MSQDIR-xvHm-d0w&o2VC&lX&5{Kf?*!0YY~^w&RXEW7aj*+cEvAkquNX8 zPg#t11<{``TC_h~eOX*wVmIxpS142eC&QjObr=yw*d|sDBhT_U7PMy}8lVPE6MEsM)VB% zAY`C}yRiG$3o%OvmjE4gRTlk9?Pja=#S>G=INf^+GB;oUkdYMrD#*jC^$zhgsd_n7 zLF}b}?OrAo-G;`p6XAc>OMwiqC?bl`ty!C3W?zl)Fdx`!Kl{nyk3>BA<@~yW)O^Lu zoW1Cr9%rgd)WxTSgRjWtxMW6Gw;{yan%csPt|~#b@)bfjY)^`G)C5Vd5i{Dwtal@t}f1e zM@k~ENH0l~IgW2HJQe?9Zs(k9$;z3g9f&x@IAj}&OQ`4&YVL^S3xW|7YeD>d@_7m1 zelJJeIPxYX?h3=AXFR0uHfG)vMJJn&1y76flPYX3nGkU}G~qpRkHY_OxHqtt*k`MH z5CrSD5;8Cx*}7QUEVJVEpD2X^3}IIl4o@Dgm#8q9^`{-1Z&wJp6EgWTU##uW&Wt>J zQm;%pJCKappWilO?d?)RL?A!}TKMQX#Q2iaJw9o{AP3ZSzC%#&D(P_ck{kCqXJyA) znn;Y=-D!B@UV#^IO$Ui$lmeXge)tcwvwp&M+SsU9sp8#h$jJ5{~%y&L&YGn-21{U>z$t9B9~hB?@u4R*yUQ7k+pkuR0`3g4 zB>eZK))SEOQeYgbIBnV9h5za{+{jD;>s&)9*C0FH*0K+?Vwr8P#b44t)_t1WV_2^7 zrbP$TXN^5#i*mLP?N`bL#?HE+_J8@NC^rhH@~6$$^RC6BIu~PwM}uXUW&@E1pmJQ# zl^{GXZ;35@iSX4QVt#pk-x}O?=Dz}ht$29cFMC}a`#*9$-g)ZTr|QaqIaGRg%%jp5 z%~*-*yg?36-6IL+fnCt=P;;U99duR|;K{|?QSX~g5!s>dB~8}P+F9Q&%q{yb93P<` zb1@$1LThfJ4yZY7Z?CBGoCI%jQ^L{ga#YhA*Ztk^mhuo2GnB^C>4+s50|Wa^iF^Z^ z3I+x@*j=Lgw(DLm>P&RPX-}ErUlCx&RG#tg6^S)wvm6N!B@XuoMhTrK`euW~SjEI3 zJ*1}r%N3miRi%z-CAx-b;gBcMj{t4e<2fmGRKLPFg|*72OK)o8e6B}9;THXQFpXqKI^_q%X{8R$s+*|`Rzx=kih|gyW61Wc8e9KP9HH1gRp4A zIY|0rvQ%!C;^KTTd8y0Q=mY`uR7LuM>3%;cS{a~0)->d8dh|(M!(fKZQh|+@ z(&8t6Vo(ksgY0BmUDJ@s%gYO-&hBTGeN960Z~n8(F7;+Vw5$F$YWDkfW#5Z(@~BK6 zAx?lmX+3h+Y^6D$eZ|&NR(ZNFibIcWdBtpUkZ4OLNA2Qk91UBOL{7_z)U@PJ-KOT0 z&<{?L*XnS=wAh4pA1G90mNo#)0X$E`{)ASYsPUIJ2sC*f&0LQ$kdh|%iDkelPiCTh zW>VPO-;`B$sE9`+qciO`paufVJ2j16ic8#9PKLGx%jkKtqvkwkW-<#btQ}@N|0^y* zUx2c4e=OHyo`HCt^}Z<4P#S~F5! z7>r{Mr#0QXUmFr_LB3vw@aS%H!}KfApl+LV&Y0{r$qAv4 zTeoHPXfCqd=8K<^yWjfEgRchi&2Ol*;DTqWzDhrJzRIHMyDeepk?2|bPWiZuC~=M6 ze%2$tXHi5}kn%ATo8Tv#+SCpBd0B&2Datl{Ez%4Hn5M}cqO?3kdxiVe= zf$Z)do#;sgMGJ}Kq6FC55rJ3z=t=058f;^cpSS;&PAI5>itZ`3cyC(QGC76{q$gIu zT{d2a8B#~XHTCLxM*CNulR#VTyJ7m2y1t>9aQVxAe2I7Y65qJ#H@9Ryqyr_GiYv+! z1jtgJCcLm%*|sObF8s=D4XLiZ_7bChg)TxIZEBVWE54{f>@F zDi9`XUhQn!N5t2Rn@T zB%DOS?z!G^uK>XYE7d^6wp|J-MLGn481g|kvV7+9(}#K%UGTeRj7z9%_#M36;k5h; z->Jg#ySWkZR%NZMrqlx_T#nlcD8#x>?40EP=s6E%XXp_dD7(Le_+owT&C%YGo4SS; zWToCeN@5u^GcAsC)lWI@`+A}*M45Ei-(23j=Ew9LcyFPf;o>`G95v2i;@3?peji5u z!{^O+UopSu`#c#Hhh5-ghF{+NRn^RL!TlGG+PM2S70=7`D%Ka7_3;Jej3Xvq+ia*o zP)PX8o=d;K_SUrkl104EHjd>-Y5iBl1aUrMi&IK179WCE=&>RuNIk%E(A%hCXLh$c z*tar^=7x*pn_u!`elD6wp(I>T;dTwa15EV5ZjVj6!4>0bPn2@prIjCA{VESZD+Ccm znODmHYE~wj95rK+5{nl6IAre+^vYs9h_Ar^SzrN_e(H91<7r{_Xb#0M5$|;8!$dGf zk{I<36)mm5P}qq`{-L0s)t#{O@~UNR0mZ)QzW}!v2^RNY#-mE!Fr`t_g4uu>+kkO2 z!-l;mChPI*{yyY^Y!2lZwROzIYnF`N?8I7|%$c_Gge2^UsUZ2}vXS{K%zn}+Wk|MT z`AvUfC@_Ptd=qm%Ne|z zn31VqHZrGMEq^wr;%jr)J+Ej!W8WOhWiwBYHNdKbvR&89(Z?*5bjdqs#sU8}xlw+A z1I!RIFeNbcIIajkA%WaJ(bBSm7GJ;vk$<;9fW_@@Z?ZZ=-{p*guhq!0Z(>t?28V!+ zC|JbT?47bSp1sv}$TlqVbi0?*_e0tNxXJ+WvRt5pAeRr&GuO=Vn}*A;7nO>n*tV{@ zU2YvEXMg%Z6wzqSU&JNAJZjl{<0M;4esk&81Q49kfsHqK@~FW7-xV6eD`NE!o$@6W zoRgQtYOOOTK;=knJz@?`X|PF>Qa*F@i#6W&}@>vzQQ3zp{vS>#Nc^ zo(n0T6r9QmhewwCu`a8TokK@0X)Dj)wNpeR0NUinvt#I<{z75p)K$(4kEcZTE+g$O ztX{-{l4=cu?t-hT7GCM-a?46bHLIh9qnLd9vcqd|2+gaB(1xjR!8gBB@;A<4L`tSm ze%_N-Dl)^Qv6#x5wp%9ZkuPj{O|U{&WsoM=oLAPV&sh`&W#elc`N%bP<)b8^-Es7_ z@+;TyIi5pmgNn~boO&_sS=#5D2Hu%-hmaIbHRJMr(1chZk1T&3j`=U8kfINua&u{6 zyH*>JIQ!`Z2%}-n2LFsMHYT?+zRUbei)MBoifbsMT!kmf{;-RxY9VHO%%+4!lQ}){ zAJPn6@(kmstC^*oxm!dVug8Z$-5Ti}C@o_fj?Y(ui-EQRXxBwgnD8N`eRA`n*B>Qm zQx zy_0E!=*AwMmP8vYkJvl?>JxQmcIi6qouakqh?p2VkRu;e74x5rVpj$air_{_n+EM<>aD7KtUR2xby`$-b3dot5Ub z{{9XF3e#B!b?Ek)jA&0&@d-sPj|J!mvk0u@FY`a{v9En}-t>`YZJlEMpS;zJ>YO(9BiZQaiDUj!R`0L7R@EVOoNZ31nf0=IQLZhcZ(NFVvPGfsrQ8yrPXz;CRI?n;W<{7 zYlNK71b1q)RlVS8C0|QN_W3r#@JZEEf{3fc>&h%aNsdBsN{x_s>?QOVcBm}yd%60? z<9>^c3#mtMC!doG{y3T8OF6p=@6>>>uv_eWWp~vsURg`62h0eofT6V9w*WI=<3Erk z5MWW~wWL}vC~^*`Q{@~yIXT4@-<`qHeK%%BDcd+q>gqk(r9OW3+&V69!Yo6yv!@r9 zTSK0lUzpAch2Qqj#_RGc-`>YaW)>gcs>>h9Jbj%v8)B&~U*5G*XaGGq%xnhKS?`Y& zREDk1zm9L)4<{1+4xQ0$_R%?+Y-h+jP~B)(Un5l*XAbiT~P!&|$05nU$| zxy}VdJc)VCDj)#zp_|BzMERHP24VsZbCu#uEv0g6u5(pZXHxbDpxD-zu8V;DBf4m6 z%^R-eoiYuTc;qCsII{T`UX9n6Li!l`R5vI~2#6B1{u9t5Tsdr%ey}@KATsB4wZAg{ z_%=;j_REQNwU`#97uB%ee}ZrPaNnsQbIFZCQ|m~twwkI5Ap zJ+lQSViHmDt?dm^`tKX1j33Lw11DA3!_1y7f{C(pKZL3in`vJez~#?#Z7kS#>N z4>O8HGau{)E-puJoz?mvR1mTx?ns?r7NdrfILU2mKrjs*;a9r7&ya<$o06vp8}RO1 zXMx+h;3W^7nHPZkrF^8kNEpYUNo!R3pa(Jmeg@PW3V^DKJdN^SF3piM@W_uvvyS0C zurET4pd2k*?8a>FHMaU>E_mC)D+9$dQ#f8x>=N^z#UfG3Q3$6Dmtk#GJR%$`1LKoB z#1hpmBn`EmbDGU_l|hp7mdR~-9JsTasT)4H5)&>x8vWx15Z(Hkt9pB$u)e*hWLf$O zPJBVDP(U;6r=Klyll|FA=UV@_aLvt^io;pwP9ZakZX%wdEO(81ZTork3WD8DE`B^2u3kZunZN6GuyD*+0@hEWSAZflY)K4KpC%2Rv-evdhj#`12ah2Xvq zBb+2WW_jFw@?mE7RT0lWTav?L12z1_-#phOi`80VO=wooQpm`_Pu4c38O!NLWd63Y z+E1Nt6gMz{DBH?yzr*%KZw)z_>|(NXzqgFK6sLvE#5?rjcwgi;PM`Bu@3RzpWvObe z17myMlWjF;`M^Sp}Ef8ro{*v`gez24w36^z46u+ zUlYnqF0YsTsH2Ay&8Kt%_pe1%8U>0Ne5Srlkj2byNx)84Zmuw_85y{#ok5#i;)hT2 zRIIG5f$ZizPlPJzr#qnx^J2yf#X^SXL*hU1fl5g<$)T2@fTs(`phF4cIeB8zq7G9n z7bBa0IXI8B>Wx6n0DkK;ZdzKVRm%(-N>;kK3ewr0n}Rn2tDDyJOYo)4UdH1CHD?nj zt;;lc(@1YtG0@R6)tn8*TjdlKQ8G>eu9s!|0GNm5&kF+AG*@b?K%=-J!q!c)K!Uv8 zWeBbRdNKW_ma;=68UuY|^>SrQ&c~o>c=oc7qp7>!`RHT|jBUA5ucZI72nthR4*yxW zG-b`!GD^zjn&3=_ItgCdRcU)-nP@2b{_`Tusue8i=yx~=7>uaPKuZA~o~-E^_s3=)!s4y|xb%UMg{tmU5HCH0JIHT9G!PE)QfTySUd87O_O zmG^C9=3__FqT_QZ(aO8e}4A^U0h zMUCmXun&_JcR){$QrMi^!k|j4`yR!o5tfA7&a)RvKTrhnxy3$(xWQ?>OZo^;v1Hiy zR`Tglu1sP79$W(QsnKy}ukAPGz0~TJMW1xv?l{=zVG>W5T1BI?E;_Ul;eM5GtUR!W z$D-Yk@7gmcZFn7E@+7@Ufbxb#4|2W7ZgY~*qG?=gQOLz1G_)^nF?NWAVxeZL@!}sK z;)~@3M|Xw!qEBRk&}V1UH$S+rqyLTDYb_p#F&uRDo`J)s{*00!m=>-u=PF32>!tX zR2~oe2Zi){gSw&Qj+f2Oa+=xTE=-VP+s}Z}$x$BdCVf*pBibm9+sj!^&ZxPqth3JX z8%-71Y|0~@6IfM<{q-*8eHXb1x6;{8Dc(dU4zl}7gFS12j&?#X%lPv+6U#K148d=@ z>6Z_$_UBW!!-ahvMS8*D}gtA3&QX(n(G6JbLwp z{rhf~}pKI0rdP@*F$iKCX>Ord;-0;<;5=io%>9?gpgGQS8Nx)xaAaak=e=&3lG z4!ZF-YCANvG7JkugynBS#x-OoZ*IEF(1G+A8y98)S>4ypAAr54npbX~9$&!Gk~wNR4gR@<$u}Uo z`C1k6RBFOI-%b`7axca6Mf;QPNf(54daW!WRsK3#0=@5}&kjrN!WvJ`qz{PAtQ5Q$;1+i}H7P?)T&(hQ zh2xn7E!(t^$l@>x6C-(V&`ucW^3rAs@8o~*`++k>y8|rbRXL<`Qr>jKOAhMVu(E2? zxFnS&dS^(FA=g~E=xwck|5A=b*R$%8@C-^v{Eas8eOhqGsTkRITMXq1rqQFw%PPje zOH}A+Q`D~Z-6!KL^FF=7E)BQ>a+`^TPKLmZX~R`d(uby^iCUI?-okar(>QAjBx?p9 zuG$2F^35Om-nd4g=}QF>sFP+BVi8aHtG_>_nFvs^O59RD9{(|SzbiCSp%bCA?@AP- z&?)Ck5Mdm@OaoPV9A)qbzfuV1V>;k`%e06~0h0Y(5Mx$W`IqWzJSP`ZMreN8W2(el zUhacFQ9`9mS2O5 zj5vJ46^nk$+t;RIoemlNz4hyf@;X@)R4Q=6c1S;2mtG@ykn>WB_5^ZZx-jC*ytzXo!3LQkjegjC`m42)NEpw|X)&QA^q;9r&3q!wh|_>rAq5Q~ql64* zB$>mRPbQb<6%|ovMjIEtMHZ)=h}`s25`$WlrtpjY#c?=atBp8`V_uMJ^-l7v54amJ zR=pDHS_16^W=BR`WzH%{XNqVm)Ac(d;m|w^LGEyfr!W8#LuTgc{F1JZ9630hcW-_~ z;Qnk_8E6k*O`0IUm63xuh&78)idq(E{KDf0P}khmm&P)_5uqoi^;~Bh*J!Oe#BOLQ zdg99s4j1!gpL8lK^&1$EcD~lpZrr^g|)ybdlLqxBYrD_?ML@y1j>~S zTBPBE$G|}#8H6YE&t6?M*qg0*1)E!Sa!|4I6w1*gW-VK^5CF39*VdijIgrhy(WA#ur5@*Uc_Z1Y70&euu&$8j6-iI9pA#5DfymL$5yLK93 z3q&|J-$cv*$oG<-j8n8*iI6M_pYT1pjJ*MD0j9ly(OKl*HYUn|%-a<*ZO3-$AxVI$ zf8WM-%Yij6`~F6b@;6VDLafEzjD5F~y!(HKhxR5#?PL4&#gqaIV%g05EMR#oosNgw zkHTp)zk;*-+D|)D&c!M@F8eAoby9mB+6V%*o<>W;^1s4)HiQ3=PM0Xxr|WkksmCAV z)Qw!4UK+1W(Y$3H@XdJSx>8hXwo!${p;zo67XQ@m8waVv9v7WwS73+pC-YD0YdK>4 zvlE;VB7ovpt0GC3DyNo|duf$rYM{j4oN znN5H!ABS!rM*7&0!s_XurP6{dKhpGVb4yH^DV z1=&gYgMy}=-$ z_jyjc6jyHDf$v8&ypp|pW2!>V5=L-Q*gkV9V(i%~7u3kN_3pZ-QS-Q)W` zge6$eNgf?qK5K8g%+}1-YTHP5$$pYf;|}V zg+E-ymp!|=a170Ac;7EppXX%IwUlM`m+R$$kWttJ=dPcgH?*~f+N>nxlMl2$X2@$0 z{sDh`axIj;J~zF-KIMt}fv@T!HyBw-MR57^vUw1TfRo9~j;t@=wUP2N13Tn$E^mDe zA?LoE8B%*UjmQbdsgAd@(l?L{;m&Wk4D77KCb0ZAk9dS%+)vio#f&%8lgbPCJER&M z^&w6@TG>Vp{L{qx!qCZNv$XdK1tS~orS>*NjFp;1knU@1V=s@xZSHHAbZfCRc$iKK zI?qf5U?nZx^yScJ?0>+)TjXh;jZNgMcSEgavqAMW_5t}q*dLH_LYz-l`&Jf zFjC?;*sibzMiTo$p$#cjb90NTWSshi5lv+BB|y_JL)*vwEy*;k8Y4r!?uz5wS<%Yt zd1NJGAMBK%;>FB(tiMG~130I5mR_~kmCEmBKSO&oRT828*m@A9E*O;RH~G`9=Mx4V z4T-}~6Fm=I^(#kaa1u((z)ywHKBD$WNPs|6z~j3Cla-WNjbbeqV7f>C)vd2tw_c6s zZs?HT;kt;5$AwX+kET2evDhH>E2Xp1cL3K>&ClkL2Q<`&ug!i%ZTmy0aaIRZUH?tb z%j$IIs7D2lcuIg-K|b7kr|G-8>S+1P+ushbbYZ_0YpKLN< ze-MnrFB(Cmn0iExW(U>S2@+2d7(?+D^sc18e&)zhFMUCW4(KCrf)M$hG&h=mPeqsW zTzt*R#%mzYLMAsyeKGWfERITaT@i=s*Bs7D2t@0DiEcZLsv@5^{90)aA1B?1`R4X1 zhYTwdL;U@a;faKTiH89h-;C+DPSyGeo>MJ=c?hMBlacL~WnMBksEj^2(=SN)}ZOX8_oEG9lr1ITlh*|ZP;ae>Z5@fwu5Aah&j+}V>yhmS~1X zA89A2-ajPgj%)2L5|x&yKwuHbeLqj}#R!1(Rr8pH@1@XVpkN%q?2nidM~c-gpIh zL~rDUV7HC)wObqI>l)UQJun~}Iw>i_b@?el@IZ~qd3x-7yz@}%L@$vz7kZAEC6sw1%fpAYp`vEkR zKMSKoDD^z{t$AbD&%NoGM6!-DeJ{$yGCjunznY)xFo_lp{^%~;f<91`0p)tR;;z9$ z=(uSTYDXB}S}$+E{5Xa;CnwIlnV3~M5p2k8zDgY%my0Sno$}7tufSwc?hX4)y95N~ z{oV}y6sUdHU~v9(wXn(pZTA=yd10=*<<=XzyK{vF%)QwwpKIp#Ie8Z0RO1t zBAsjXym6o*YKps!t(Uc^3gHeR0WBUG5*597VW6i;l$ntMpb0d1K|hx9jjF^JIC}#j z&ERoy*9i)mnQ<%nt6>M;0id@NE=7c*jB4GY6jK{D8}>!42tHp6#^=%=LPuiAbzGle zhH^ms5M$e@7g6br-DQr`=Zx)U58h}okJ^tP636Lfe0^)`2UY_ZUrEAW<2x;?(6Ids z?^H};Zar%%4fSStd%@Hn929m3N>aQ&A74sLO=-MK5eI_&06T>ohU0(@kXH<&zh+1j(@NnQmBIRYmI84mM`L_y z1%k4Ty*X*}|BA`I#IP>!I=qh^Qf?P?XWAfUz;1E>m*|M8^x~)cKhXqva7RX-mC%dr z$EifetS9s*bv`#kd^YbZDl!nml@avrsS_To$IWnR3xD&?hd$@37XA;}*)v9081pM* z=Vyo91wHw%VMw1*r-H=qBR++d?dIG=n^pK#ls0xPcW{=TDNS}9W|7P1?M9=QVxaeF zZ2Aw5OSI}Qgx5@udgO6IO+LXxx}erZg*xX>gqu3@R%|fU*Uz>EOBd}bvD+b;DS7Hu zkN?4|<9gr>;>ltuSq4lwWjmfPFdG zO}+XmaAAZ1^(KWH=15U9yOuCs!rH_i1 zv&m09%lwX@7i6pqU^(Uw>{Fj<8)(=YeYLr8EAQS`w}<+)ri0*^7p1l}W7;iKU`W{p zh|{<3d6hqs;zSu3LMu$iW%2IIH0({P_iF7EVTD5AP?DNyWlYVHiNOjV1QQS$vj;fS z1%3NGUM4zL55JS$AS7dD7yCgI3C$ZFC9^Ok2ogu1yeAZS^f!+@ao&#D!dW36Pl z(q1q;EuP%s^ZS&F-$G?18ya*r8zda5wj5=SVJrQJk6&Ym@5X1~zy(2W9b=a`2yNIV z2)*>N_xO?&R6*B=Js0wog$uS|82dy_Xy>I}bts?UHCYjdfUq9-EO{=`#E}`Bf^Hgz zIrG6sd(aFhUG({u>N!$=v^kr92H3MeJyM{N2@WuqkT-*>CRADVfX(JC#w9~ZHkHwr zKgHU^J(HBNb+slA-c9wR3D(FO1_vpU%b)+97WC4<;!f9&EVxZulS!2omCe-16fkQu z>YbCi7OZgcoIssGraGWKbsT^G=84xWrpr(liuuW#RdwIXK4L=7m%zm8gIXcpM}RP- zwTF+}(;gvE1JTA1X)L8A%5b81VX)YNGWRosB z>bbOxQtGrLKq1fI0fzkPU&xb+1T{;+eXT$0S06&rZ&!P&MhkDL(qe51-12JgL*blw zGYf6DUY`DuYP;316F;==Yprg*gv&3oO=@DS_D>2?hI(SdpkH!(Z?1_VPb=AulNR*P z|K`J`-oKq(@Ui1TEro`_1ca3H%oj{(|j1C8!)AiY#-IlqF=5^y>(h&?40^ge)yA&--=d@0JcfptvDRF{M+!VMoZSlFW*wBCXaBs?LoE8msD=S{Tc= zxb0=z0x_lnm#m@E|Fr1=MNz7gK0MaXr=WXxlZ*^Jf*!HiD-HyolS}CJrv8w`j&uZZ ziYKuA`r^KA_ay=95)3={g`}SDEUTAy;ne~!s7>~cnV1;HH^nL^>j4T>W-6WH(#Gzm zy@_9^^qG*LrnX7w77FjivpDq)tY$iNmuKLCdJ+kK|A-v5fwldaz4s8?x(^|xzD1nF z^+a%i>D=A|nM()cbqQ9+KHy3)9?SA+ex=SomEXf59uZ2Yr+^fnnlvUUB0Xh@@ z9-(&n?Y)L|PlR{YWRUiHO<%jJoyCru5Cz=4%`L;^zb?3FPEhy6(KHje_s0(J0f!X9fC#$@`YYn$WhGJ7 zV9@uu?oF|qERwqF+2&?GXDP30ecf5D*#>*lJLnZIHrynda=B?JCM1ypw>Nrz?MYh& z^|4xWR~_di>c=>rf8XmEi4I?F5b0Dd3n5z%hanvzu)w(I%XwK~sL$JE$bXGh-LHsU z(-Yd__FH%h_nrQ ziyrqc9(92#IX=gx&>dm0s>uAaq% zns76%h#T`Jm<*;*kCV6V&xRRW`)s&$sy5)7{K9h;v6@2O_vG__v9>GDn{<78a(3D7 zNOCCHaYuLW7*7;EnlpwUJP}(v3Ph+WH_)Tj)heZ38!nFI2=r)BL`8|ECsg!UF8Twp zVE}!&Y#JNovuz3mETd&$zt9~W8%~@J5(+3n*jl;se!A~L!PXI?#%%g+t}0#6w?N;; zJ*>{r_Gx@Xl4f&nYTGS16H68q_C}GN{Dm#IL&6nJhgE=?*9D1HoAN%+>K`wFA$F|r zDgid3VtBX8zPR^h;iiG9{KIVYfCwaa?myyfyY)$3&tSDy`I>2KSSwcNyga)~lt!ON zybyWUaS^*e1nOqksRuMdC%(eym-$uTYom^=e8d``ND29$ff=quanNlqFE!&3}xfS6%mSV^rSc$M>{;D3t+`^#Z}o- z{DS=+hB^;Bfa({xiW~&(TF-Z4iO9?1lzcFzi9qN)XDJC!p}&TKuyv9xX3)f$BJk2+ zq+_S7vj6R|e4bB|vT|338sh!cRV-R#8qE5Ya?HemJf1baiN`*N)f|`^D#_tAR>lX= za@Njvlxm84AmnaGnF)d>iCH}K0>^?w`?HHD#m_XD$kb}5Zqk9=Y*wdLxqI)ozFWF(H=p7yhrhomt7iC9;i9XHC~e0NfWrN#3sDo{4m zJ*pnmX_VXAddjcxej(Y0B{0-2&#C}v=oL%Z6*kKC&U9Thjsbr|5>yE7kM1Z`aER=? zvVMy=t75bJ>i8L-7XX^Y>483eyAkI}_nvjH%Q7cRCHHf;!=HEY0au3-zAJh9wuJ$p zjpv(-A(Qta5^n)`>)cWocfVPRyFzC+S`L4XAQ0ooRqXB2hhR>|0~>m}4gbNTV|e&M zHbGrC)iP4O&o#Ax4CWUQ#FKFoXv;67-;hd!{0*tPkigdK;JDqKmm=*g?dlMe^xFmg znU?+R+rj2Jd&F7J1e&~oBVe`J>)H^l>c02^G%z3yL!02t^;lvj>SAqYVSvEqz&5PwBQhPvVSsQ=57X#3nGM)DZ{Mj8cHQy_9qis+J<0po%B5Q?wQP@%UxdG+xfF(9a! zpKJ)-LZ2AZtbg)@L8iW+a#%Xg5>wxVqSUd-m5Cs17x)SXC`v&JOm~B2zUV34?@y;@ z+-2}=zO}Ga?=idx@V`w?7ugbN+o2&vrmw{WxYCeE^T9*obE)v&u56>ZRIXm_uQS1? z>`VXJr!n6}MdP`O@sX?i=y=V;EwYt$kK=qi5-L*QkG;vSuuXj^c+i1;NjY*hIpVTR zfic@23I6{yDR7!-uOZh!U$YCGwQb{GLLaK;z*IZ`fD99!)!ld*u2m4oVu&frQQcmj z`xClS$OEmpl5NHNt26B!xQ2u7`-@^1(+0_N>^~ckm4jV>e&@7(A6>GOL?cFL`27y?0dE4uE#9J^vfyKVC-(K40SFv^0V|?=G zP|7Y*e=5)zHc94Crc(y@Ex=qxQ59;G(CsM@{?k-MEl}^FG0hN^Sll3*HV0ILv*aiy z%R~j%9$|@HlW@0tuMPAb59IID(~{M5iX}XwAjW`#c41`RBzC5Yt5O&9z1Xjrk+Ubx zva%h1i&XTjz9i&&nVeoRjG~A+toONTO?PnO=uo{j=qX-;u@{xFaK{D6fD@1?zaJo6 zLk9?Qn=n%-il1)rBxB00+I#m%ab`Mu3@dZLf2L9Z1j=xn6XOZ0K=9f!xq!hN-6Xhw zPNCNd*3u8$-6uR$?CoaXF4$?+K4{RYV?*h!yx4@21=atMJrftct_MgPe=^HIqvK+Q z`kDMxpfwCF7CPi)f~QO(!KB$1*nLXuQ8*Ke@5w1yDJE8cc{)w)Mf4ZE z)WQ!QxSS@=vrE+i8p(@n_|G^d98=4{BQ*Uu>2D}pHofO%!OC;YhBut>?e?0Luk=0GSlXSCoB@B* zqaO3cGS+?dvOt2)5upQ~i4^?#t|X&Ves-{B7?IWLIzg`+&--|&<=-_LddvK!#8NHb zu)XKqWLUjrsP@%)n4}V`i9l-L!#(#C+W%30&}U$(;nT@)7b{?>zUlDYJEhS-d{Tz; z?1>^mb~{rx0;~k|FEIG%2nVpTcB`P<^vCBekBeDmGUN_FW&#@UQ!96o-4D(*vDiRe zKD4(QQ}(mOt)P$pA6Z`k6xIK|4ND_PcegYMNW;<~-5?Uu-Q5ccN|$tZH%N!l9nuIW z-O>&3#rpo|{mtw+JE(W}bMJ}gJm)!wh48cU>(XS@yTD#fqo@u8##*(F!--|P{h^E8 zpvQx#z{Xo>tegtpiwkMjvDFJ1tj00R@PcbxC)^z|kvFC1#vp*o)*cnvHM}*sBFdEA zbT{_YdWO$iI-9@#y}FLka-CHx+9uT%BLtY7?f7bs9KuDwP+cTUGgoaXhU zijg25X=OelVLVP1p_DhNGGLWG3l=Ya*E)JO+Jt2#?oDHwL zjh>u5E=lQFr1jZcHtox|0m|eqAwe;|k6X*}({%M%$<&N+Tb$Z+dujl~q@r#x0P{)P zPQh2pvY26?l27dUX3qQrnzd|5NQm*`8C70GL!_V`FA=C0d(1^58^|eBb)Yn;%n$HQ zBs{L{-xK-!N9cfMNF%NV(|?ZvW1SBELmAcxJ}cy8lPST=4p-w1d;Gk43qZ^FYSJ2!~m1uzz(^zHC?~Iy&T`J{^ZzR zpjdWkz1>p3zs~xk7(MLW(nJfQ`v6_<#0W7+-6a?pFsgid2!RN|(7}E>i=)mUG zNo8dArCqpKo03-0Q^t?cIpr~*vu~ZL^M=}@u3$u1#hJzc^w;XoPB;&)&Qe|`7eI-m8~vpriyG(KRu)3FbE z=y+*vXlM7@A82P_3RX&0V0A6a@3o|78gP&pDW3e#LCBloL>(*hHT1LrB=)LVhC^e= z=zHC)#C9dk8(=96-%AYxblX->+yNIr8m-#?RaNv={bhKOXrMVp1Tek#Sk;R-nMvyE ziXXT;hwROCWX`-ca}peVEjDB|sc~PuRk@sig_X5Z2aPk(1CHVYqGh!IVP_jX zOr+7%_Vez!J%XYL-lNKHqO7@DBU9hx2hTPox-gf7^r2)Rf3Tvc~ij`ZFg#c)&vF@^x%x_$25k7q!IlH6+B;Uho+1wBJhblST=G4!v z60c78V)UN@Vyo@L;0EE>#5DaN=NRh1YJR{RR?I;U4L88>$5*M`^7@{87kjd{k<(m3 z&-18gLPS7qwRMvjNg9(5iZ918-(O;xhWMarL(bD0fq8)GOaM$8Bh!{4J(jP(@nn<; zXvCZIrUY$pP*x}o=mAh?Lqs--m()~ygMLktaCU;Rh@H(UkFY3&o?Yf;9{{{WvWt(&04QI(o@TZ!I&GBevJ2h};7gg-@v z;kL+qEuEMEl7az{ZtBs!eJ^a0K_eh7)YunZwf8HxUZDt-ji&3CZr6Qv!z9QO=U z!RHI_F1(c1i z)>l!9jY3E-46uV=Ps2D5eCvK?tV*QM# zyfH^c-M0{hDB+gYq*+DED1zHpe3J0oEb71j;{$B`kZ*tTeKWuDq#M$XBq{&Go9!(g{Q zA4n!v$o00(m2Q877r8pz(6wK5Aq^v=Yya9+iHWAk8HU-B=NxP4=Cubc&DcZLw%KBB zi;n`YGVN>6`qQmx89$PQ@8kKBvu3Q6vqm(^cfrlHGTItzuULR>6k=~+3x_}Q; zy^il2rE4Fhvtq2*Z8}I+h%RTAY6PAk4eY(cj9cm4=)Htx3EI``^d4{UMd0FXuGNLD z<2N9kM`0MKCL?6#~6QtY~6|Ej*48JZ(wiJ0|d`sN&qP6 zcGw>$TSNF`#&AOI_JJ)m<)S+|K;Oe*3i&2gnEQo9p*~y~NiRuJ&oP#~Os-GLi|0RX zRd@^h?D~yTcbr1)fmLqOc+lL57yb3R$0hBI!)XaTRugO>S<^Oi!IOfA=%um34Z)I{sb?c;FSK{kbBd^v&nr~;-z5)UVEou~uQf!ffCrVn*w`%hEraFN4| zb5lRDHX)Jwlk^WuZZQXiaqS}h3ShHG>yDsgyJ|bsv6J@^FXl>|xD?s;rn$N4wAjXG zr~C%Up2v;Kfu;*&B43`=Ca9wd&RG}3YR2`0hNVX4lKh_SL7EvXT%`Qg1;?)*^Vh@p zAAc9M`Gc*H-mWRhm$lSB7LcwrU#E9@eVFjKh?Pe-T(&RmZKbnK<)OZPt}5-AW*EoY z=g#dMtgdNeFk&U8Oq<_s$vZcVZv@t)iF?`00cnF6QrLL(<@Lb$+S@C}nf}!WZ~o2{ z=2W}bW5%ArPX}phhk3(87V%+4NF?M&$uS|o6U_!OZnVDH#?AujdymN?9IS6g?D~f+ zThpf>D0KZ>o$af_2z@@r;`Gs-v(wZZA%zb@CtC#6?rH$7lTRUEr)Z6KuB@q1OGke7 zUI?{f9e%0B9*eV%K!1)(r;UsE>j6MpqgtNdGgG$B z0E7Ao@1<{o!gD5#s23`AdPsz4$)Oy)fh~{59526d~fb7@t@P2 zGcj6QxKLbY$kFUVaVH7SfDV_&0sb*N#P9aH9oP~l$bf+*{sFZGb0KF&lizKB4R2$x zP+3#Q53Shk;v^b)cBjS7)wZx{)?5FRvV3O$%)w8TNH02LgQ|RyQXs5=UT#zF}z{^3m(?GCx`-`5`0Ny}sL@NA+Uo6CAL zxAjulw%{=Vi9mk}63ix5higI2F#eAgOb2vksm=jmjg@i=d zgWg=ArXC&k1q9%sSbFVKa%^1p@y+W44_-R0t+RXO^76YG@AC$JB`&}n$tfV0 zgF+mpt*or0I;mruHH`#a6T7mjcEGL*r7yYPL$CA{zewf))yp&y+_C>skB3ozk9x2Y6g*d zC*f&XqBH@}!31TbRzj`rgNUp<38~0_~3e21@FUb6&FAKm|z?d z)W&v_AC%_$Vi@=$Vy+VR2X(9VSrec~ONeBhcnS zEv(E>H1@9NQqBBx+y!1|b9t&n*>h4CXHp(*&O$6H^1 zrB3l$+Pm9ErQ{Z5lZVH`Kix}IU|rjB=BvXsk${4X;#}TTJPan^4e2|Zc3a+zNXFhD zlviy$Af(ZJYu+3zbeQRj$_jLDQc?xEF(VOT06Po|D`L0ONeoGV$waekcQYq`whsXW z%Ps&T=#8Z+@&}amfgz6_<}gz@mP`9kEuf~kt<5+$auTZGa7cE@N+SF!jxZc4XTWAH zg?u-+_`NFuxp}bgWH5KxqIFRn$uRJ#Td`6*9m`q4J@MmSzCLQ`SjNI->hsNujQn<5 zS#Imo*Me^Prt%9Z2N|?^2@&VON*bpkk2jPcPJ2qv7F=jp5Fj1grP&2mwQ2!<0b<7B zWh)X+l7n|Z!iCV>nJivf<@Jpq8;b#2j6HrAU``3>2rk4TL7AG&9Q~@ROZQkFsgqx^ z8-#8@ee3kJ#d=a9>FAzsuBGCbRW1O- z)4%%uz&g18??C_wQvq%l3!wctSPGSpv8>x;u3-RdUYkZ9`l^tS>zM>;{HBX87hrXIJT?GJ{F(gRTx3A|=xWtt~HnX!wWmu}q}dT`hUB}>4Z zc?)ZfUOFXD4;dpS`)BK?@TYD~7X^m#*j1tk?Q)``1f{v4){Wgqrrj0u_CAKoYT1sv z7H(OByV2E2lZAs;Bslotdq>CPwFA8Phtkb{vs-~?&YFVy`?P4|NO~^7&@|As?hmY{ z*KXQaadtJfmhQq5dE8t`dEvqcu25NsfYnBNR1y-&IDG{cjJ2Nm`zm4q!9zgv44ApT z+wVz|Ov*ZYd?@mrDEsJYzveiAui=eXIdgA?f7eZ`HrcrXh#9;!0HSkW*gTMg>BV%>0uo4FRg2b8RS}8-1oez z1_=Rv|FC}Xb>m6WdOQCSW2@a!BO&n!0yK-!jsFk@085%X9v4}d!U-{)@zohlj-_7s zczWfw2eO;%LxB7P1IZ`5@=Ey0KG=(;A_+|716^~~ zd?b3rKd3af(H{%jx&96a>w~f{`u6H@02yZ;)Uf)57Wr7Zq#7A8_h74GFgE9w##b9# zGRhMD=1w7@Wsx`>V~0k#8Z_A=^=n8V(*tzSgqZUg%ybcA1>C8dHNglm~l@7Mdu0seWd zkTI{&3|h5pOd^HGfP^no8={j|3jX%vL??-~R{O2?1@*6rp{Be<>CGSKH>ZJ^s~JxL z#Is2!;T*;wva@M~1Iwp*9WB2Yyg_76x^qHu&h{sU>tL)){{601;~|N4M_|y;^+?WQ z@tEhq^jFc-=M24xds=xv8pGGhdk5$`8Tl_f(NJELz9brnrc0PQQIB~;@*aM;5!9O7x`~s0PXyjadsxLHDD9&x#F1|1?TEt6y$NK!0 z|3!C(o$)1$0E(o!W}lFBcrfV4LAA zv9w%^kfQC++DU%f{%PK2haqxgdGioY--%(sN#My?V*0i_1(0aO4EpyH%K9(-^y|GF ziu(@&F72xii~9ScV`4;}I}YJEE;fQ|9!0N4~9nce|jiCOVARAjbQv1%O-mD1(Z#*pI@w8@RM4Tvo)D`w7~S+ghxyYEb2CB6Dzi~To115$fTF0 z?94pZZ5pIHJdiQQ6LGZP@2cY>GR`#x{L9ww?myEr8p(=qwJRTTl($F;&_{k>iHOWNYPoAsQ zp|TGLw1Q9^4RM?Xzq5}zY z^cF#jDat(etpyufZsfiNuhS4}j;ZTdkITL=e|wnl=YOTocl7P0MxVXRgTlrt@B6r* zoL|P5TLZqm+g-RgNO-t9seKCyJh=CKRBK%fz(25V=Q|nYYRy@+U|XSw1cLJsnY?#- zflc>*3@OvhH3hmTwwFIpHi0?gj+p!BwzqXET8SC-Ltk@nUjRl5eO!^o;z5Y-Y})WWMz`rqWZ)6d=9c@@EL>;|DBcT9 zJw@SL1}|}A;kP7oWV&_u>nBMsAiQ>d+$T`Pb;9h4^=O+f{VdPlw?l4m!Nr;cyA;9 zcL1V89~z5?1Ddl&vg=-q>-aYNta{~38D>$W^r^WlXy@8Ht7Qeo_8@s(f8V9$wc9ou zZ`HG9($4t=b0Z`4fPnjRnuy1e)VSK;X;{{HVF?Dw425sTOU!XGp`GEPr6K-Oh0v9l zkQtRIoRTWa5+rNZZVfEhv8ndBL(T}@2qKOg5<`)(xFRPg>FoHNeK67yf(oI6{c(s` zkFWxWc{G6WBbV$sV2GCKw`cqxf(-(OO_c+0GA*Tr_oOzkE;WdmdRH!uAakZ9%~92> zWeUm{Y6JBVZ1PYCxnz*kQ|9@){@4mM=J+QFXVI>}+D9!%rAPaO>|wJl%VgLtGq>OF za>yjjl|9PK5d3@v-&f4+Sp$mXWO&)f=?!usxb*vB=IJ2|U}gU-fc7BT=qW__*xPzz zx;$pp%z6gf>KyuCeBWAnFO=p4=fM}!RS;~e*9s22&NjF6bgBE03~wF zn|=#C*EycaWv{7k9Ib<&72Fh;{JtR#T5Ddb56h|F?Y1I-$e|uz;}ixsaBg_GlTuGK z$Iu?EGcjEQ^WTC8hlM<*slKmjBU0nSNl>32lR^6`-A71Sj!gR}WH<=a*-mSr5Un-@ zM@Sti(;@mpAp#r^I{IdoU)e}LlB%%lzNk){7ylV=_<`?H&82rEE%H}tD+GAPet48& zIEXtIdP#>{dPB;K((BL^!}(W9pSX;^@r6%JOw2J<5~aCyYFp#XvMGEvF1-oAUc^|T zktNlEvt0(3P2^>HSnJWhSUhVefoT-!5Q2UmaGpeg@aro)ev2sza*C*Xt@iMx8xI1T zh1iNxsE^oM2gZX&J;-ZktsX8@i;X?6u;mmLb7E&Hf9@GI*QjSci_6jqc<#s(SHgFK zCkO|P4h0b>H)ut8D8PglX3t*WvraqqEE|t*eUP|lxy5OlCN>Ond4Zx<`XNUMU0MZH zA?Td*!t5HGftgu@sN~Yeed|KFhR|&M3h$J|5N-fRi5i`U4SHB#bpAyIPGUk%FG;jK zPbrAq2J=0Xcqc3&3MU*a80y!H+!pqf2U4xI`EVJW+A3j<(-709QxDNczkwG_lJziw ze#Ro&jYVgNYSgOp5m)=7_tApbwd~Rj8pn&?*K4Z*m4*QxI0rPkv;pW? zu*vug9v5C1`PD-6RXtxe-jhJpwyqgnP-NpACyELt3T84Q=!mk?euT+p2kVRZYH}V^ z`WA(SyjhxU8+Gcb)Xv$J_t%<>@vjfJlSMMIk_sUr=?v1~!G*HdZ&e(WlVD(Ztuvw2 zIvIFqFzW{uBs#J9iA57mc?I6wybFQ=&*k^aUl&A)%+kN4pt{MLQ`USk(7-*Zdw=pu zPodVkMOJ>*r}zyHexw+SYWt~Y>(~9tY3J`Uf<+=}^G*3hd@RCMp{jiWt_9HP2)|DD zo)Y@%0Nd%N!dF-H(EBLxy3O%Kkb$nZK;HpR*YUz{5gV(UG{-y^3Leo38WwCo1~SCq zahpz2tJOsNO4^+JByt*!)&ytvS?I{NAK%%w6K5WM0;4oJI%Q^616_6<*9Ub2gI*2F z4>*Y5(I#nR5W(1TF%VG>k>5`W3YJom9Gh;eq&)LwX$P9Gu81(pC~bQe@>;UoxcmpJ zW3(z@KX7Y~Vk8#+pz(p07{6xtP8F29Yeu=V_vX{JsX#c&Keq-vfgV*c&5FyERiuAc z*yfhz7rVVYYo^B)$I@oia$*=0^!oS(c3^CaQE+@9SRCp0d>CQAwm?dy9{9A;pO-#7 z_(w=SdVEb%+)d^kb6?-&@c|DAvLZwDkH+%&f>2XsJ_*=+t@>o_hs(k&gFXFzA0ylA;P}?lg7S#! zP$jfx#HqMYB?TtL9;4;rb26rT7fUZhU2jJ_%f-raN2i_X&y@W^Xv2?w1lS)2$Z=ev zEwUX2Iq)D&FQfDG3K%gEiC^qTmG4U}d~$*Mm(B39u(4 ztiTX!{TJl1<9ikNDDJ3LBzmc77^VqN94hQdqcm4 z%>O*_uM>$!`)hsOwsQFSt4%{3st{_W zBlXZoJncF7+U*oAzqM4A1Wr85mK^_cgU~TR6~3p;ca@i9XRZ5dL$dl)acV5b$R#_q*>Yb%&;HqTLejBz0D?elBv#+Kp90qZ&|DUa)`r zc!NWYK1&8M7 zmd2)pz}h$RGR!Yw3IV@v4YeTjRebE>>WrzMloKAS>RpwWVF}qVL8mXzi8>QXx--Vx zPVr=7*Iv%(`G|TTAiWha`2MM;)&fgX`TSV;vpZi*Z zp`|*V)@MKT!Ck^44nL$(z%?R2;P*=P)iKgmpi-yxSvd#+6BRYQ)x9erDM~lyVzu(5 zL2;B8!ho5wo6@iPR_6!~$UF;77{*l;YNARTZ+c657H}2?uUo$&elGXB z30Me>NV^&Zz9J9>L9l6n2>1483_A^d3-`~1qQ-y@hij!FsvjTHkDm-mYe`3&|0YA% z1XcJ*E}EDV~0Jk?qZmaPKrvH-CP>W{UH#{2IW8srG^HICjU7f$jwj! z7Vg!V{Pgektr&41mO4m1!kinwm`;*HxI44)=*RG&}QBp<5_B3Ce%!Z6Gals>8(2wW6X zSV>fAY)w@$pYfN|nM{=x84`V_l1Zh-DgG0n-9h(IPXZrO%HE1_@bY?TSi!dWbL_M) zPiE;xx~PbMu6Y>`5Av-J!=6V1ts^oebLe<^-73x3#s{`BU`Uj|s(#k{GNjAmz4`>q z7-n8Uo^pkr)MVpkhC(=zY-z`A9fgLEgkUsX=K8)VURDYK@SbTkG$kPmvDn1t~Szh7zyG`(+1t#(_h)~T#McX4b~JkNV6Cbuf=oxiSo z+tMvP>|!;gR0WFMp4Dq)uc6)3TNS8K68v=?@Mp}Z!!a=Lo3Z{2(=p79_Q1otLpNvh zPphfev6ZPYMQ@-oyXa*MQyvvAQgNk()CaF$A>-ggvt*mqsAhYL{}3A zIQSyGsx@JZ-V28Ejs#pl|p+^ z)$9z38Y@-$-2cLim;ira^vpN0OZkf}0=5V_!S-WI3xhcpga^we-Wh1{4c zIT83c{{CK|cAt~17iax%YAv{Q;0Vc@4`f|b0vx_fZsw5+(rBzC0noZnMx;+w0#WPT z8k7#)#8X#{SH#uGC|7vJl;AOWbRH-GRVR}Eu`@vM1?~{o;Gnu=UT6q?gwRCKu*0dkNM`E)bsu5S)w{gYak7%F=JpxoDt+R&$xqy_=xg6!*keEW z#-NmdnKp+ao}V#M{9-s|EYt5IOGAGBxY(q9zzd@_T>9VLQ9#=IY=9J=ddsrDcH&WY zz`UsOygkiiDoVQ*_er3KYiOl98R=32l)sUNKR5v6a=nCL{?trzGDzKz9;18C=gDRo z1M5j%UV-w=L7GKJhZ8-c>|z-?q@xWsz_)X1I)wy!ZJ#3C2+p!aX$*yZ?35PP7x-`- zEPDoI%6xKD?7tbv9}7eo)32gi`}~T(!|%4n0-=@TfowjmM#=*QXON%c!&wHOc+BRc zd&R&JXw{|A_&_+97jyYOj#R4J#K5gMItlmF3tj@4HRwNi$e3Db2se;QKk+56*Kwex zeQGIE9Gg}dZR_b1CU_%WwA3(lriI`paOMEIyUEbmd?eXz!pqWfoK?qB6>1W+C;r+1 z*16-+Fwi`9zq+QwMBEDo{}f_lMeJfwGAaSzajn{xdkjF8fC0jsha9>fo16)bz3NXP z1O>Z?IR+=4JT z)yd;E%eJ4n-NQDB!M%u_#n6xt#P{keVVeg9sDlq-?3q5_dP+p9g_Wih7}r`ts}(0>+#V`>Rh%1S8F5@zT9f zrizqNul3`4p}YUUzzzuF`@Bp{_$!s@gQF4cn8PbiZTW2i#J~}#`Jr{^RBMeupa%n6 z`Unm*_7?~$V2$8r%P(i>nu$Q<>2Adl7$cuSx zr&HDeH01fHhz*ob%40Y}#=i?m0L#y!K|8h651zGrHoUg~j(ly=Ey=(zj`p*wVMK06 zO7#N(J_VN7RR7pVj+kF50g?uHo<1=qfZP7zx@Qd>Mlx{2z&gOgE zusb5?{o5@Y`M`m&;%f>I-2DLPK#jo{$xZK%&t4N`HnJQ0-H zT!IJ%KRkJ~v&G;ZlLjUFzmNb8TH`L>dRAc)k0}SWxr>3V)*g-bZl?Lmf_Mauxvk0- zW>EtYml0A=WiN4Fs`uWHTCu^vtz!XQnuq8a(+ohaJa>3 z>ekE78&Wl--{fC-Yljm~0EgR~)-45vTV>!gpch8@zmXr%--7I?d^oo+1shR4Edk3B zpuZRReJ)8~CMC+h=OTixn^a2|7W3*5w8r7_`u;Mx*&7B2h>nQfrpL#T&>Xkvx5J{D zy_?@>IFDb+BN#z_W>9`fXQ^HxX-2Z}QDM)MI`685eMzi0^GhM<&&gDxI*R3WwyS1@ zbNz9Zj^News;GX>jOtregf~XNsJN4| zF$g$9H*D#Ap30}<=}CCTmyeLg*9b2!^x42Wh1 z!)nUn~xRw6q-y*7IOhJ`Lp#j)2r{U|B^52h<$G7JMs(W zd%I*mX=tKh(`Y6`MRp^kCKKIoSI`#-dSEs{U!Q>`qSX^R9(tCGe9qc8`$mtZOZzP= z@R<45xn--XEEjW;()_;9ea$h$J3c~{rA99d^Y3xeG@?*~?RzHzSYE>LP=9o%m|odls^HFoE&zDt7{-!$6}9&66IC<**^R8K}#27 zZbFVTO<=?7PxWg~e~l1CH2)3=5)kcDj1DtVADHSFO~Sb9#-@jNPm~XZ1h*DX6mojP zYZ@rrQ+ho)W2%IhSrfWDm~%g3Zx2g(cNh~(*7Eiv0o=$jwD`#%ZiE~j)>)CWNl@Sa z;l}EVLULynsK#w?qfEaKbIdwq9yLUrTnEN;V%<)cI;<{q>{urZH=Jm!!;eHP*l`HF z8-de2gD*#^_BV7ZQg#5a{UPZ=11Y0Y8;Jx&124k20RZx%U)5v zI`b@XDD8++&$OMcXg-LJ1vRR?K1(fXs zPP6S-3@kVnO0I7=#W55jd-5@ixt`64tq6)6Wj-}ijjLs@A%-h6PvGebRVn5qaGr5{b+PA zewI|}w#=GaRSP0V^}jGQw|kAmlzx+R-rjqVDPNM%)UdhI@+2$su<3S7R@P`H^V?Q7 zw3$5tXC z!BVO^4d~oH%i;Qf(_p>&G?~wj-e#bGQ*%J_3Fi~d?2Jga&^=N$ZG@iNiQ+mFPrBr< z6;hk&_M9&KrCd(}5v?%J#XAE3Ccd|@T{eYD8xM5>dg;}g91E)+0XOU9A&eWbC{Y|vTF)84{g`h7viPK zD}_NKyp^?Tcp$e!75%Q5(i*&M@(pyvu8iL`(h(Vd?O%t=mLRVH&;#phnPuQ^#DK}o zF$x#p3Ehq)MB?CDN552o8fhGawxc!j9OP~eg6pzQ6!&D#cE2KfPD5x6YE6*`e%DBV z{)!wR%Dd~XZfO`T21+Z4xkm&R;#@`@HebsGlD%Ww!q1OpACZ;#G%V$d{+<*fyy;sm z@8gJHrgQC8iD}j|;<|wEcyH(vm|rD3Mk?4m@eXDr3m$cMjv0GYQv&48AvL%x2H7Y2 z@bcx#(^`fR=u_UJ-{eoC+Ly4N-xP;G7!EehCbLP5RmS&KOl#nhNlC|WqsLC&aWHo$ z%yV``;}S61G7c(9^7g2d*Mnu*=$_ggAJ_JfQPYHjluM>FE`0PqbXCj(O@m&|c6qe; zj`O4$uKa*GsRtEr>7Fgk>09eq-D^3<4ku_dZPi$R3mmN>4G4}+TlT_k^#acv%8Q|a zY-pHK6Oqa%I&g-nIJ)=!x}Hi3EN3<9E2du<#&}TPw<=pXei7dlA%FT<8A0$odm!pyl=Qqst{ zBJoLB^sbzUAaXtOq=!yP!CyAB6Ri3}YUSckcsyTFFkqSmpc1P;zusG>K7NxV*&4a8 zfTu^T0jVwu@nQVIO;|Wb4{dX3i)_6hs`lD^h+vSG_{O0?D;f>fP!cNJU`Q#4@=s)t z#s}^FjK!^3emRMI3)odR1Do-(naefVB1VY1LGof#f|Lt8+dMAhCQzN3DsW_L@}0tt zE47JfF1>>annw92+~(Q0Nv7tAe{y%%JFpTqXIE#D{%{T}9+T@LuC_@cV>q-JX--WA zLBx6xOtSw56k&DlQ%I5GQjX8r2sOiOvlN^`XBRDC(!;hxqsZ66tGmwA%Za@1ssFvez<#O&3@VZUAY6% zRvz)M7T~H$GF}GefLPW{-zV}!G$t-op;&I{)-Gzte z&p9U5iIJ8xk9vxk=I>f*6+e1tu$aaB$-hi^KJ_Ku5$)7k;%uQ`|3JIQFQYzr-%&>s z?nE(H{OHNuvXCotnrTBqyp!m9_44tH zX<=_>4cPd}o)ul+-H@@K8jO;`H+K=&I5|z&7uY3?hO0Ivs^i`q)9e^Yz3hZAXL>I? zn+&-kV;ybZkTze3g-$KbZ)862i6fWpy zoNjtP#(rTSM&~1!79kA7r)jdn+>XFRRQc2V7z^L?m6gqI5Z6l{c17C(vZ|h%gqv6X zT{T>V`~-+vXmFSoEOapZwHUA}5b)I~6w{u{8?|wS-{e@aG`MZDP6hWtoH))MQrfKT zGuLHUW>@y*wGroFu@qjaH;Rj;51U8TSYe1Nmd~FW1M(h|EnFi#?VSFu$}x>$VHi`a zT;Ut91Fp-qSA2>g<$SL=D@rD&&)c!K_ZSV|6FpybrZ2w#7##2~uKo9h91}K93W_(2 z-h_S(?*rz3LRM(NUUb)Lo}N^F!95+ZJgVi48lGi$#Q3-9w7YZi|C)$9fDVU<&`Z+Y zb>6JjordUVLlm6+GMt;jZPdHYnk=_>>?Tn3DAMlKS4aZB!!q+RSIbS8?lQjcThM<^ z`!8MZ4>rVncF0AG8xL8R`Dy}fKSu9U=yVgmm;O2;RF3ZIdK}|v6sFTbruyHEDF++p z2K$ApiRZ-Yyj5{~RK2M?GuF6?FQFx8`8ImqZ99-gmWCX`rHrvs?{L}RT8Z|zk z4Y+519f}w2oN4uY0}ejW^gyH{O}pxak$*+{g7yrF?~sBTb8|0>Lk2NyZ&^mC-H_cw z*RPaXCU{)#uW|ilz<}!(`ui{DUmWk>S|%kqvos?Bzajx)Ku$Ktzo}|e#&&`*T@D)k zzwetZ1x}6KoiHFr&%Du3mrQYM!hz>H&NG|%GU@Brb7AzU?il?NT9K`oJ;}&3CqE>p?^$|8e{V zdIp%9*hjTV}zoySY|MHH-W_+PAU`ha1yq5XMlP4 zSU3D3(*C~5#fIiZu}TNR{cQ;z$=vmd&vnq3%s4_@XZSz&HYVBsKvGRVZ4C!^yidkX z^^HT-s!)=xjMa3x;^^qYI}=6T7^olamJ~+WSPiRdxbq`rL~0!D<5)hmV?zIPKJD|K!yCY_qHP?POW`RflUI=>fqlcadM!35k9{jg*L(8uw zZ+`Zs*@k}b-89mIG3Y{nQ5-@7saQ@cZ9QKJ--&>5yG~`({_n@3zbArjB+ze`l=r;N z7l}*XP~Gq7R9p;#0Vte5_hObBoo(dgWX{mOYt5}NvvTanvIm>MN)(@o16hk`J~hr= zfEV%gOi8^)+~LTDz2hl%*&jIae~eWc4z#l}F#1pxzqwHM!7@UDeN-HsWj8<)$v=OitjON`72n%CHpieKMS@7}#(y$?&SOX54XnNF$UD z`Z!!B?Tf3Xfw$pc=|igdVkuFlh->M)w{3sHYB>pS{YBPBy4FUV#*p8&AhncU!l__D z{)ql(!}Jr~n)i^+jIW_1Ti>*CD4Sp7b@SRGI{rbsz~l9o2VHyWw7b_O&1j*?CFQ>r z;g&%Pti%VpHN(`ROI=iK>upxGyc~MUWcc50-PWcd)?qDeD4s_j>9nxrIE3smEBwqc z{(qMNv?>@sCrZ(Ta|jN7R~p{ztT1*oPa0kgimAe9$gujgNBQd2%*`&(GtbxRosQYS zC=@8zJgwJ(`XfAed6vo5lKAQg0XdtB>88{H&<*I%GY#fwCogx{jn;mM;EfTOrRBbO?Rp}W$MFpNzX13rW|MzMTHEW-q2T^D zs3S8M%BM((a5ovEg?;L^o!41VGiBi4<8$<+Y`*@>#?w!)iDnn=hgP7!w)pC9hKniu zXJ7BJpjGj2om^hXyKfq~INKebwp)McmM*kf_T@DG!NlF&^&#lSvc$OHn~@k2&~X#y z&M3PR+N6>qL*%lY$~MdJi)+DbfkyhD?*|3@nLM*<<@~3Q;&}1L!K-aV;;Q!u;~=zF zo=Z*>-mT3CNnf^L$0s4g2`mT}Q_r89FES@6orO8yC(JawA(KQn`ipUaNY)kYZ_$Q@ z4X;^NP*C8T{Tjdt9x@)fH|e@G??kv4fAHWaaUt%>u7oJ);a-)E3x3X_=7zCtSts0? zYSwWl`1z0g{u>K`YyMRJ`dK1$yXYvkAFp!~$L~Y1UemSn3xThz8*4Z?lRuM|RV^~V zj(<-G(d^TBe`Yn6U&W0|nUN4^GrP=Z)bfYI07^*ma@g4~O^(MGcseLTTpyX?c^kC@ zKE#c!=lVKtI*~Qe)0WGns_EtN?ZToTQzJlnD+JYbjwcf$gkX2LhqCGD1fqyZBpCm@ zAaKoJFU$ZiQg3bJ(axJSR^~8suUqdQXA>XIVl-5WGrW%!+`f&x_B@@uieS1Ge|74} zOSow}lTCoyUYeoDg!!K_1D#Cm;l$@F870-*+it=eToEV6EWu4_-cP?B4I!vYGL}3i zaS`H*;uuFN)vY%_^TBhr!I_^@6Dm84L}O<<9qYR}$Q47g!dkSZ@$?)2-%tWoVO?wUdc*0YzqLTyda!AJ>IOClUDV8U0RCi@?li3b)$2JUXX9R z`+<*kmf9Z(^6Dw=q_L#VKGvnv z65f2n?*0Cj{OHmA_PE2vga`sxjXt~Mzi;;MjhYOIkkJwNiW#m4v$)uMlt`lDo%A{7 zbcPpM_j@jqB-cj?!Mna2Deq1e znqsmR!|{o0EUDR;*s5J?+|G0kCC<~}^!{A|`YKVMu{J37~t z%+iq2P6&4oQn+i^`G$?PZ7W&Z61T4FlKeMD(9`}Wl)7XeDf_EdvBrN_Ax9?xIc{&S&pDajXAA~dadBJab~2%mE*v^?ONbZb zu*k|cK5bls?8%6(ELgBwRtVU)-i4zb+H9-cWC5Q)X_Lo}(2&m+CB_>oVN^)KUWXKU4aRdJu#CIUHzHW4;N*CYCu) z=FF}$Bf*;Y$>%&{wfl58So9)=0259&@Sp;;C&bxdEAH~7JE|^|=k9i`V(Ro>ROs@@ zWq?Aee{x>hTmc|46^(RUU$7P+{Rdg0AUx=m*D%P34^>6KKUBh$EnSr~4QRxfqDo?_jT1{h6oUyS5zDk=<58E_uGg2x#aj#^^X+c8Hm-gs`Jb2zHi85)0@h$jX#CTQ^2geWx$C-Q0xF3L> zg>*R&mNnYe3NPHgHqGbEhl?F5RdAJMNQME>3BN3nA3r9r#m&LmVU3Ok5g5%UL;fmo1w82!1Ha$BVXz8XrjP$fmDLB&Lx<5uB#d^CN9c{@?zxI|RA<=iz#Hm#0NL4N3} zwmv&}FR-ca@;p7Z^JY7zpZ6tn_T-1N##cgoOQ*MbbcJxy8#X(Dz+Gio2Gu9ZfoLEt!On^io+vIx zYTBg860LD>%wTSLY#Bbd?`XH$gE5IoOO{zgp0UIWAI=$F3Qhmdr$L|v&Rq;8Ku5XX z23OD0oNiVLWv{Scbaa`s|!Z~HPmV{ zOg0%N9MeGdBJ)L8OYrW;ed06R-N>Yrd*y72dSGVLiNob3FGjB3^&Y0huWTv=4oH12 z9*i05c3HE|l-~2$&fZy4BUz^%ti6qZuf(}N-^RY`8F*~j-oIge81uNJ$7iTq zHG`~!Ks7+t0sF?DTTl)g4RuEt_zdSM&=2SLcZit=iFog$x%d2}@r@E>sNN_ZJs!0| zseGmB^@UmLMREC>x|%LNzEz6pTQYNd(AGpkb=%fg7ffodgS-vFDH>5quO|(jUK`1I ztfqMuXckgte}jhU)`vwz5Be~~W_LPs9nYcU*M35YRIS5O~3C3$a3xKf-i|YgJ zd^}J1JVfPD^MEK^U!%PId3<+RJ9Yr}C(QDfw)lZebF>l?scY+$8fS})*B(lvwV!nH zP??&O!(U-FMo3Ak1S@1Cf=10J6x^tmscLnd(n|@-GLy>bXDZYaqM+1@WFUrXo*~W| zSU{K%C&;6}LU93!LCXO9Lm)G(J>hvAJj@*g(P{M7|j`9!FeQnv#@t- z(%$}f!Teiogroe*6T>7W&8D|qDamzjWlmLDF##VZKK~nmi*Ib28UypYE#!ShSUuNcYOlw}$wT19k&(8+p>lw(s6Tj%VfNz7K3*181PxoQO%|XOS?=&UR7zx6B1!z)j+3(D6o1a0Mi_j-;>mvfc zYI*IUTF9XRKk_5L`4zaArCI>>Z3o;%KQMW@TFeATdCV&E|HEv^7?aJ)Uo5Bi;$ZodyQMw$K7?D2QD z6|YS^NLut|QnAH!lIwGC_LY#2I=!)~q5gT&wj=3b+g!2&0Rk~#$NB5??&_;phS?ft zv@Ppp>s7aysQj=hEl#5WkXi;# zLtQ^cgPw#&BWfk|w@KTc=(xGwEarxqDNtS^J!Jh+ji|OCo49}H zN)SNRS?yQ5Pv)+taGLx-qUj&fajx#gEu8HfQ_r`DZ$-NOf(s)${JAgHo&EAr(PDg$ z5}~pf=%;vJM(D5a3QrzQ4U)6gW`Rd|S9s5*59hz!&4d){TgtBM|MD?CL22-I z4wqb#1k6h8p35~n6ZCR3wjK;J_YN5^$M!v6lp`aF$(3=%fWMD&Xf3r_n12kG+eup} z?-jV-pWk?{2`|Z1kK?9oZKWcLx(8&vzdZJFmfxkkd3C^t$jN{{^TImQdh8F0B7IDU zY^0xzRW(z4vM$jt=-WPnLPI-vx?VB0Fpz`q=5J0W)FvDHS4u<0*Cd+ud$(=R=B*88 znUqeC_ICt?ssj>O}TFp=d1Ea3>Vuh?Sx%%#v=a=Gzcgml}Tt$Dx&d0+a0B@=mgEjfs9agU<*%TFcS zY(WB^nvPe8@%kU;^Fd|qExZ+JV!q_YPGo{m@YzEyyC^!+nl6#e@VCa*e@6_S;vu$m zS?0KLsZdSQ4tALsu3CE6&q7T6Q#kmiA&O@@tEbsImxM&^asUP-1>AjabSRdQdUP(D&1$_tlTsf*8i`hNiSM-#!`)|_oGzge&&x}+ zo?F8(7ngR0t#RZT{(1`u5fCe^*ZpgeS??uksq=;{(9M`?B;QsgmKWvCiD$$rm&*c2 zcW8lLa&ER)k(rhl0b4Kyo7x*(34^_akM zz*l@3r7}32^3Rp?t91h@^GeA0Igd9-oTtTYDeczoOnbxfY52)doT8x-|9WA7VI|6> z^i4290;){UR_!86S8+0AOVnWKOOI_ds~jQ+uNrbpZEB%mSGHNmXdLS zVmgZ|y7JZd;cM`-W;w&HYm+9&Xw8lCD|hBU(Zl$DWkK2g1$Y+GZTw)?&9j8nk>SU@ z!jZHo!!5Dk4#Qj;C@QhR=TFn& zZfujjYvK#L!f_ABisAoY`e|JNl^GP^T}9iSz7giz8+h6yGIHAKyStOt>zoPO*W~dQ zO+mI%NRMp^T;M>@*~zfmU9Lm$@{`UC@3cv+k{@V@M zqVoQMJjJiDI|bEp(K&_cur#_#aI~P`BPh*ON$M>>fuhW}sQ7GF`m9*kuWjehCspL! z`DkLHKn;Jz`({8jXCZqskph-Esp);e)vkiCYU~E_(-gb|G2qwR>9f9`KVrH`jUa|; z-Ap;C-x#mxp9IjN)iCOoDlyi@Pzm_253uDd-#ooST8M4g249{f=(%NCEN83I>W{Ci zNcS%amM$>2DtNbl%48A9564c2Q-*{p6GYHE%GK1d=jQlN>`b94!hTzm>YM!~B6QG> zLpRAecov(7lT<$j1&qc6Wa*{19JqH@v_H?RU1pRKOz{@Qp3TbYV?4&X6oeh)HSz9pM$Sf zQ8}*4lMcjkvP{o&1;V*e40lO;HgL(1-tuQq-xJ`MPE@|w^yyPKe8k~#rER%djg$U) zaM1J`QjJ12hS7BFJV=Ehb+=$g4rT>~84vXH9cIyZ_8WC0X6=Nwifa4rw)rw#KsKz6 z+u!JPu3R>-B@=mqMh^}7LS9x;z|*Y(ZBh9lO(}kV4pSVNH`THd*=~A>9SPlsuesSs zr$3BK^(D*@pL5q5FIl=82yTBU{A02B-GS2@t@1oiy+Yb>Z0VO}vTv}kPkn#$+#Ck2^BR`DDUS;z)W*1; z451#)VI4`;Q~cd%$d81KkR`bZ-7VBv`B7|4_DT6`^l?S(^-WHEK~^h{>*)^jeeByJ zE!iOsa)p4x*#|0dH(=YhJ)4s$wf-farGr@iw(Cjix15Lw=A{Q`22ttH4gFtsuNHi^ z$hozc|E^koN%4cwt*KKCRu@&QsHPEAXZWny9F?ehp=_ky7`U=dA?19R%U;z;#qQxj@ zQiuDugcE##sB*^jMThS^LR@Sxj=N~bd1Wj23U_4Z!(u&TJ#=&P98T@o*NzYtpqBEr zfirJz-W4o?F)6!yr|toh_CR|=NmEzO@$IZt-OfV;i^pM#pj0i-!>&CJ!!TU+SCrxB z=M7xb@#Hh1=w zaJkv#s?SGr_MSb5)mAlO0h`9z#dYzY+wNeY(^}Yo$-#wdG)mQK(Rh5W_%DZgHTn?R za8T*Qxqr4u16&BCV3*c}_gg=s$BQ8%*oh{LB;M7uC|v`->nJLKypkGMpsHL+YridZwJ?hRgJ72YB+4{UsEs9ENElG9@ee_O z$fU*`4tY^;0j1{h6E~{&t4&QknUa4%V5Xff@1!vmG_?*#IwXn4;Xa5|P4pu5YBJ(3 z(xIi()0Y)ytEG9}UZqxbY4HS0Q1PkMGQyG=QlVoUR>MI2Mgj8ELS}~{Q_#@mq*b)1 z0k^$YwZ5NL)8X~78DcL@Nm2hW*c1}bR!&8g>-UkDiXH^@>xtmVN{uP~3f~d{_Tm0!>qpaq)m`2rr0C9xf+F*xlE-lk4`jG_$h z4n`INnBQO$TwZ1_bqK8)4jJhCyY`8X>Q6i34?|_(6B6Y3nhSa0&+SE+;1ZQ17YJ3J z_PvNH0GZK3k~d{*L3eN#B*k~=Mqn8-8Y%92*1S`zfODY9&FUjc>kr8)%DherO8lT0 z9Iq5(={{oTOIf}DgJjmhO2kys{qPKF1$VcDl0^DcH@9v%7oD2-wT%V97}3Wm-_RN* zG5YoYi_Lm-XYqMG9tY9QCMrA2$dB=&1}?3}QQz-hD?JSz78{HLsGu%^OaQ!P+rElT z^{(E?xzRmt<6GPE4qaXW(PD}YLZa280CLCcr?bAr0))ecbM}U*4X2p}uR+ztt|Ms< zexYAb^E-bdQUWoHGw&BBZ(iTn>QzUFPgHIOVo5Mr{6*Rxn#<_o_O|>rvJiD#mmqzx zuZ;~xr|3~o6)Ht^JWLn*&e#+7mj$s!BOe~ECDD7?EAaoyoxTysU*w3UL_n4kmlTF( zn>f=K2(vZBD49xpF2HSVfKmTppS5#0WFRY7ii37Pl+G7gfY+Z>M)4^TU!NdqfVl7r z<|6}7mAIJ#;{^~7VB#v_F9ZXetjb}8)5C6?{qnMxntZsw<>qiA4jG@rZa$nnG@w)r z=XgA8#6~z!trhOa))t@IRIo3NYa0@i@dUK&sZ7xwr{q`H44gFm)!&s}egnku{ftVV zTmZREb)-fowQ)+;@$0oOac1Gv>)CBnDZKsHWjJQ;v`3JN{e6{&54WsFj|z7uuB-go ztTv@=fS}&GZ<7b-D6ba#0qJ~oF*EC-QDejwy3KXgbxlqp>hoO&$ z2}ip?^knl*_3{^a`X4z(A-TeS7x;h>#vy-ryg8=wo(PF?iK}mAxD8!6?WnvDJY~BZ zW*G%oV&9jAg{K>`oJLLE*zh6`b;jriBRuO-O4o~#-JXl8hn?i^_r>b%oUD$U_J0Jx z+`zjfxhfbiy4?^r{fBBthacz_)}SjQ!yyopB#~`DPUN~FeXMuuxb4bbZD2Dxbjx~c zI?KtKE|j5m)n?C!R;cG>KyVU6Y#v62u#o>OrQtZ4I<_z#9Djw&G+Ur9>wclpPUjrj zRXD6~3}REu(?{M}ldbgOh(;IG;Y1zM5e;a>;GmFZ|6|Zq@`t_YMk2nk&5Xy4l%CvC zqI35qn2|cbn%8QLqmnrqX9L#XaR>k>;YWcuHt0Tz(iFWIO5hP;r{IgEkC#nnjAHCL zGc%@)%FS+WnGJ)YtTJ{qriFd&h)=pDHt~`244e0E7xENPpHUkt7mZ%y4kFN0QZlf_{)XLaU%l_r-`)VxXXW#2_@ zv7luvBJoFjiJoRH|7hSDM_`-TaI!eD4{oEDhT2bAi{`H3q9iIwCuy(6!&t}w^c~h1 z^Q0o3p~wT@Nx^)9DlKjTqY08h7O_aO`7 z-Sgw_sx(%(Yr|fZF~>8mST;pqy8i4OZ<2?d7UT~6LgE4+%#Hfsn)F=`E4q$K^u!BgzYr(UPK2wQhK z#P#IR4aP}-jQr_}e05dtmbXRd!J_>IYI2-5x1Ss+KfU%WMHrxBlb+F!>gMk`zxPgZ3%YIQQ0_Qc`we(>{gC?ve1s_J{!2n}4B z%!orRu(fMu+Un(mkmXns`PdM&!ON9+6(ZoYncRwa5jMoL>uA-Rw04eeKu$fzZ%*jG z0BVAn#*TI^7tQ{ji@uYta4*xV zJ2n_Y{iMNs>a!>xcl=quy7nr5HmyAhC~PO;V~6mSl3u${-V47(=V4Lhk(%vTK|k+P zs27}Uq_n>L&;g*kWyNR0d=w0(`42#%8)861LLEl-CFoU$_K5oFv*@me)Q<5PvMZ(j zxf6I9ovEFHYHaN;p;{?&(@l?w#_8<{oUlM79N#4b7VD;oYly`(`B-_k?c{oW z&nSFOqo&#Qy>g^VNpu6{NQ}0l3;x7W`SDSm_Exx@2{2)(HcZaT3I9)dDS?QuiE;hT z;(CS4d-SR8yoG=ZzLGq$kM9YAWt-hyUpLs13hI)~Xo$i!F<>@x@RNqM>tEq;-v?FW zmswY?D^=U8Zc_Z=-<>jlJ`LBx;&44Pjx0+s%j%D zN79wic&XLIt5*f%}I9FYuxBHXF{Q+ zc}f_eF5}ILT64FR3G5FAo8txh8?}Z>q?S2rJG}S4I4@Q3S_nB~Sl8`-*bxmy%6%*6 z+6fB(F`fQx{}-kDFN;%(d_E36)+u}ClYX`?SlUs@SI;Fm6`Q=h@ye zPWiOd29yFGR9VkK`E zXZ4BZTXot{HUoL0oq-7XAag7=RH%EYq+4vX#>ZM!+EfPj@~}u#YSIu2vjz@%WnrHvdb1T|)m40Wo~IE( zjT-ZCkLl2YEF|!UXwORCEDg3nC{@f?aphG>?w`#_00q4ukRSTC?oBV3XWih~; z?L%0jbr)QA9W|52*M8YXzpv&WG|Enn|H{K`|113DC~jJF)wv6g$=4b=sB_~%1!CJ= zAr7xkC-Hi@*~h!_6a$;t2Z#kVyrB^Ld)`~#wLbYL?vJ38Rkx`-P_ytYUd*q%Z+VL> zrB|KX-%8`YP+5NPf&U$xRFe{*1p*j(qMELp=wKsCuK1cT9azTU0_9x>Tzv9r0_%%5 zGxY|f1`BIo=^l@r0CYpUW$x=-I(OvK0jDN#8+1HD@(b65&K^F_lPq0X*hf{RLJ7_Dn1?K;eY7v;5PLUZ6AA008(w+f1Ln!urn85lFD)8K|C$G8K}i+j?kAa8q2M~p+-gb@-OdgW7mt(r zITsWaL`BJXhHW$%87J90rw)c67V-PR9AvM=%z7eRn;)rd!OgLg*iRLLG=dC%o8Z5X z#ZO=ialD|(-w2C0+RvO51G(WEHP`rl$*B(6-QW@`$KhUNqfy861<&(sEQBV3NHJszj!<`oFs6NT z%=VP$tQa|iV(T&!llKwsa6Bi2S}!w@QzA%K%~+VE_JGxCg(z3h9y_d2U$_Y{E$CE8Nci~z(t7(97DpNhNYO$5Zo|h)7uKi3CA_Aw{fEo+) z>zM2p%Z|-as;)wx@2hW7mtkRACl*s)2iMaXYVu@H9=)gYqvGr8KVRc7OsZEw%VxDE zatC0W3}u$fWK=qlAYBs%yX1* z09>oxoFWg*T?01*<1wv=?Z=ArVxsS~D%A(99W%54D|Sf1eseUY7fS#bNM`` zF(U51o^y>VX-F=XHnY03pYi@75C7N)Kxh?%J4X+VHc>0rDa{K`j{Buks0_{NF2OX8 zt&GzB(70JFu`4%wfdg^7?wcT#)kJN7I4cAp6>c*Y%rm;Oo9q%4cDPmH1p=m&|Lc{z9m{<6&6&@E?`!2@> zTt+~4Iry=5j%&ZMV+ozo?yz!r|H#NMH<8YRL3aNFt{si(nxEqw?PrBs3KAKEmet4-=4qh&I%&%jr zz>y669Mz~2@ijOOpUVS53Yc%yL&#IVXD5oRf#xa8=ajHitunKftdZw4cZZYf8J#OF zgTvLW!${>Zt5fuFqlYk7py2-rf=D4in$U%8FlAaDT^3HGk+Scj!EG_cM`{ma8eMoU zS$TR~IG#oTqY}24wv|MC`xM6)T^54DYvy9n&bjom@#!VFyJGQQ`MIv{zKECI#`%P= z9^FjdYtk3A%#354&LPdE{`JP#l(mxn-69%hM~B~!_Dg}7Sn)i^9&UnI6h z(m^!mT+aI}o-6`I?uD0Uqo04rF8_deF{vQe8Ea2Wd66!E%}2-NoehxJCRglZbzEBqb1M6#g`{a` zUgjao;8Jd6#&H5)T10L(yTVFaXq~}ozr)i*eCef+>Uq!Yvmn+@_uVu00{9XS`ZzSo zM1y%C*!4K9mp=PDw%jN%;FMp-M2hmmoKjb1%le@y&a_8U)f~3cD23~hDNd~OKvv#s z_Ys~HhlQD90}#}b3SA{7Vubs0jm+#nLq92Xz7{PG)}7VD!jTPG;HnA8ul3kz^md<0 zxe1{%206{K{i^={a-3AM{D$3!vEZ4x3Bzg>NVg4|G;9}<$47LWpFHpvRCn(1CNo3m z3q`MENFYT7a83LG)h2AFA1M?RDR1*t8Dt|5G6{xBW$I+jJ556{nmq|2+vQa^1A=xSG8ujUGk0dVYpbQBmH~0+xKw z%^dj`zBXT$ecr4Fu{_@HjE4^8XgE%y6M1QhZce4qGk>i5!3>L#?=&4iU;c*5{WO8Q z%Ty)#&c|(sRVS!xJ9BcsAO)9^w2PE#(VgA&wuQhDf4Y&!*jYzJfIvc^?)K9sH3JWq zUM;J5;XCx){NPe^@?^E;vRyK_{Hh}CTL0PM2vKN(vnm^6 z=D*Gw7=dErqjMt+osOoI51^=cS5i-m~KT4H`~_QB*(CvTcu zil9Bv$#;{M$`8ZD}VsJlY1JLM*1EkF| zPQljcM>cvNplUsz3&K+=lZC#cnI9g|lS|P04dU17Bg-l(ulK5KRc%gxXANzIH{;6aCJU%!- z7~J$t7~8>7h0+0ISA2HMK~&ov4|kGen4(`KF9!9uIWgexYO~texWN_cE<9L!mChP_ z_5!q?p}#nWqUfrboW`avQVeJm2(LvSvd_~ zAX7uV#qtY#Sis_~iZIuMD(N3hO#faQe-DJ!Vq3!JwHpLW_rjNtZv9xh{?aE{Ec*xg zp!LN;Ke+&EAS?17*wslX9{&i*pbi{_#xjqzae z0y-F}n284`kINOQa;pZ5il|#2e)U0cz%NU}--QO`2wHEoBAUv4<+!LRk8^PoK5f6; zoHVsA_KH0_Nl_kbb%O-2rVb3R?NQ#~HKDZ>r_pB3YBlednat3a5z~JG!DGE}Lt)#N z|D(w~K*Te2_W96bO4*nki4*R(PyOfaP!Y!6;#|jKg3XR*W%@dpo{3>e2`};Qw3f2q ztS5xs8)GlMPB=xQoxg+y0QaDPv26X`(>6~aV z-xm6B8%{7jW9oI%ZU2!^G=f|{ILzc9WKGpLKR(X9))xv{Xhjy4j{ymON92K}Q=L?P8vsd-uUoIV-?>QH+z)lfr`^!?y9&dJq_tU5L z7O1CgWlW4~Vongz+p~P*%KNDa*3tz5+Wpx6v+6U4>BR&mIE1wpvFTff4S6N({FAZ` zR%V=!f0hpZ5f>|j`QgTL+qPRgUS&#sYQ85iOdVS+84Mo|6~ntYN%2jhHXNyOV*7&` zXa#Xf0w^lRwz(VI^>YlMPD62``N2%}ipkeD6DFCI)`1yJKP@_5KtFuTW&|<;6ek|4 z(XW=|5E39qk!F`G7Z01oqWHLeJkUT1U2qXbyVTi4-Yt8#=v+6ng)@1Jh4ahQ|}H(NLlIEtILzq0=@Ge)xl%sqF(KD3eA!T@Fb z?SlUG2a-r1+ga1_FgRvohb1Cy?O83y{qS0h`S( z73WuSyjKJ>w)5GO9=C5M>+QlvncIWKebIKr^J=!z2?A4+c1KXT>5)-S{y$lbKP$xm zHGD!sV2fpg$CCy1ykqCogRGia32cPTM}s{CF>H2YEQ`B~ahd4PFv!hDgODfiY_}&~ zrRC+Ag&KcfyEier;vNMZN83DhR1j=~As%^Dbw@z*^HcyA2L!}4d)biAb3HvBZLTR> zF-dM@y%{O^g2`erQ4ilC*e=^SP+z#$;zw}}FG7asuNh^Vf3i@&q7csId@Am`>K&NZ z=0WBYK4T-CX(HA$#xA$IBjQO>oZg)?`%mH07Jj z>{DsK^9jFN#uA%bs7k0ftwvmthqbpH=E$}(3QX10_(bRqukuM3rkb8Boq2QXy{@bc zSQ55Anw1nY-^#^lqcRr72GS11$Z7JvY^#N8rGTL=&cFxaDXWnLGdRAXpNu~QaUS48 zV?96ZPaU^|uFSq4u%SiRdFwl{7_HvB^SBRnrR`sOW=e3u-SX8F^+%c2e+Vd(ZO1q=SoNTyIT=Rn1T?<6Zb=7nG zm%jfLpJ~!6YFGFb`>A#SGI+N%kE2D|WN%&<)%o7r4 zupze`gxF4dY*8at2A$3%<_=koJF}wY*1(mg)D=NttKq{9ng#2}9{z-e=kJXqY#a`T zTNPLT>HPRxTua2eV%$H3NMYP4GwQpFmAA{8B>m ziJBGD9s>w4#r!|6FlG_N=kb8e<8^_O25Et>A!aKr5imp6doF7X&ARVZ;Y6f;+uGCU zxT~O)VgTet^PZu+m_U%m+1`Hi683s_%$Mpe>sD+fhTOerjJtvw(5wi56AG);-} z{^y%wwn3b-An-07wRY}0pFZ(EJ-9-hFEV0<1!+`YVihlizU)Vt@`W5Ck(GWTe@M=I z04K1MX|&Lgu#ZLLWLh@Q?+hK~ykl-T&#iUVrQI;0okF84Qoz2P=9|~|xf3d*0aY8_ z%8(Cz`X>Kt#`!;X^e><&hF@Rd!-~TT1YqTbV&%dL>yQGV2&60PY+(epqA7{F`dMaR zD%<{8yr_yo+=uUh&4@|riH`3M_nmi8FYdwgTH=J7)Epd0R4goeR~d<-L=w2bhGOq&9@_$%`hj;~yaO!MTfhQ$fI=>n9KaZHt3xqbQlYGzjXnv}-=&+ydUl_^my-@=t@` zc!Vv{57CJX)qRgW!cu>Sz5iCA=s;@Nta4+&;}K>BwkKLm98Q-?$icOz_jdWM`fN@2 zDiz_mr&Twm44A2HRNGTQfw32^@ApJfQebbqdm9_}O){w@hi{#pT(NAH!=sz2d@$bz z=aYw98)(F?5yp3Dr#3Pk$%FJwz1#Gr2P9g{irHS$q6<~URj zbk|(_mH$vt>gRnc)Tj4BJJ_VgElO7VXdZsfFNmDXer;g=TBM{x(tU3I;&g}Wd^lZT zO2%8h`JP<{i+XSMmQF;ZKVkSZfQ@UDm3iG&1M2cO?)dXokA?gSa2ielD7)FvLOs** zcXW;>g~oD`;>}LHrVS#Cg?xcxCmtz<7L{MijG4~~{VQ+j& zi7!{%^OAU8bf@*(M~=|0Vui@Xn}Y^ZlgSMp*@)p961oJ@7>cm44}cqXcSl>&-5wS_ zxg`uN(Y(tGuze>cW9!21e#q<)KjTbRjk4SnL}43zlq>)9biWf|KM8)mkcaI!+k=cZ znOb`wmA2*qQ5pIorPepoGwyd~6b-ySx2xAdtDcY|Ac&}lh^+=f)8r5oiZldJ6k*KW zz*H(C!o2}wcL$!T!U`x=egxtQAc!LQ$OJ$^B=OUpcU-leY>FXDZI_Ae`|zn}yMdNf+ION8=f3u7iA%4t&dBJJwMO zVZt0xsm8;ZdT0e4r?TU7x5O=-e9R2_QBbe<2`80isY9a#|6|4f_E$w@b|lonV0ZZ4 zr77H7IHh(n=4_CkWKmkfyv&XG!a_Hf{6yeuY9_{)vYR37Y#TZ6E)yK`vfmj~OwHFP zMz4glqy}C3_1kL?0eS2^v3#cMevP1r?`awtc+*}i1YL1oA^m)Zj{&NUOQ{U@uWd(^ z;x9+^xpyW8%!vm7u2Oto>wOk-+hUE0cf@Qhg1lRYgw79SE8tDXz&{J0rBzNj0GE6B0S95$%1z#;>sW@F4V{B1)@NmoqJ z|Fs9%G>GSB%nvC^`**O|1+aXD6JkXjY}&F(b>?UgAi5B8hKAX*RVhyG73=ixMFqm+ z=!r9&UdNbM29IE6do`O#G8%oTN3RWHA)GRTg7if>FxNP&$oXZ?D7+n<- z(nJJ)M$i5XgnF0Jz=&%dcW>x|5Fj0)ywvZQ!>tfpD;3@hrJ8%H|jyUb{kAv z4tpyUj}a(Q#WA5%5*6sniW7RRQ+A|3F)@e|Y&`#wG)zhQQl(Iv$|&^%4PFMz3tUB7 zTE6`INK_8puT$zFQ?yX2cN&wozb-V!$EEFA)S6%yiU^l0l+Kt76YIW}+5+~fzin9v z(Ww+RL^+h$DrXLtL-Y}!cn_ z^q;n@LaQ&XzlHE_vy{>?Lt&|0ypAm88)vT~r(Wui*C-Cr2 zS5h=s0k-x{e6ujSQPFv_bhb*@oWUWHFi%gx>ovj&>8&~IN6O`1N8t7HTv?=Js{>Pi z{J>KYybY#3Z;jSL^+xstKINSi6GW=!30VjTue)yQ$E7WNc@I5qoL2qEGGxjRA9N%X zFXY{Yi^s^&?QudV92fAurFpbKM7_>2k}fFx(W>^Z$z7iY>G83Bh_>91#H zO`UBA+v+w&=W$lFh8tNCbCY_zC*L?c>Z&67%bO6$GlB&1`4KNPUoRG|jb|;nqKk6u z_6Dkw+}2@Fy3f~cbb|3nu&pwcf}p2a@PxAa&$NUpQh}WE((8LLT|m`~mn}^DY|(8qw*@)y__$z~Rxbe--2J@4Uk_}M`|$}$azdxL0uK+(k`?L9 zBSQ2rXF{R&6aCa~zIJtUKWV8)2Sp`hP*oPweW^RvJ#>HPy*@y=nrJav)m>?B(< zi`n(+VdV9TE*G%xm&&=2x9^?HGdoa+p7Wb#$VePnDFNIMses@to0-3 zxF?veA_q~hhwa~~#5JKNFUK<5h7=XgBjRv~KW45)z;<7x!Oe_j?V#V4GFdz~-9Vq`0>#j7812lCP z&1X%2z`@Zsx|p#aAR;!vye{+Vfoi?rJ8%zc-!)wwh4U`dZV~NtrrR%DjCKe^apJs=?d5Oa(C}wxFF+YKrJ8Kawflz#&>Wlmt+gu}p z8v4+YbmJKcv!K`Y>J6pGj`)mc$MrGR>V*+9i;@4w)>}r!l{MeP!6m`nNw5wixChtZ z?he7--Q9z`yE{#AC%C)2yZhUjOy>80XP&kC!~NFl+*Rk zW@CZI2*=`Lj z_sJDt064`TE_?IZXiFfYXkfGuNACA0!TyI`Lrwyn)zQ8{n!tB%VG#tw9P9C``>y&Y zEYHo3c-)0e);Wi{pxNjLnLtgn>;}IxFL|MGA51svnHf*kv@1K5WD+MB%gC**$-Plb zyb#_f`6*bwnOr~CE?OhMY{mnbqK_Q;gt>oMAX$-iRwRS+kBZM#;VTbrDEAtXI%cZy zrA&fp`G(^)wjQ4qLVaYXlVsV(#WLmGM~XJiLExox!AK? zpUK6dse5z(jX8hM=z^J@#4Rz_K1W-d)a_%_9Q)qefrdm!WTpjs+L-jDwhw0%_xYd7 zgoY{OjMQH(gi3jV8j<~C{;2f5l(*2g{|Y!_J(F4Qx=oR!&DFZvUO2a3{I-#L`;w$PM`<#D+?qwW5J z&yGSZysm1RrvV!7*f#uR&UdCCo%)ize+q&C637Vd*SxnCTURTcc~{R1;eBl6j)U#` zbp_`SWzW~Z$##*`Mg{x1aOI+7<+-Q`WbcRCn*+C9MOD>^ZeibmC9z$gDT&4mrFOSx zp)ICN_FT8Wl}U(c-#>nz-tGy1K!mCx*WfQ&%KTMchPW&lS%i?o%gK)Ll6CnA&e7@#)4Z3;u z&uiUs<8}D+AAe8)Ai|5by7YdVC7H`U-wKwbWfgtfRG~y%irWeg&(zPKuG0Q3{%$?B zjdQULY>4P|2pUE0Yq<&fmgF$5oQnlK{2n_I*G&zcjP)aRqKMw+S(qUAWQFSu4z!WV zvCqdewti@bmVgoCi8r8@H8$}7R^2w_u?R^VU7P4bld{uYd3sxH~0+^lNqH+VdB7mAm&-ehH0<#mb_%tJjvNUq$`qE3Hh14fQsFKdgY8!T0Kl zzwgHre6LfmZ?BZw3rQZ~2*=29sht`}MmphGTCvhsN?2=D0|xO%F~FbDwl3bz!Lju| z<0Je2wI08k(!_k7dT)3{>5PYN8-dFI>MjAjqnQhtF9<1c7#20l^D;HmNb= ze}CypDV`kQ>Vp@iXOkb$Ii9a?B|;8=5na&YM=^o@iBtIxC5|M?uS;B|(*7Wmm_;lq zc{Uw%M&L8pN_%N7MefD4Uyw&FSRE&Eu~<|OPa5@yL&8`7bqudmfCQF zZ8It~(3wO0_nj?33|6IhXR1UwoY>-3U0oBtsdJ+kVUvb&EdPxL4XN!#!KKT+T$Dtv2d)2J z`;0a)=-=H4Jefl%$Z8dwu9HSnm4-h{`dtlBD0O_hgx%U)4O0Rpkx37hb>FV`JNr5<|d-U*^82S)eljs~P<{kdKn_X}f+dvEU3+ zwJ)72UMxEp>54RxwH+T>C65aVMf%U?5@qu4jPn{1YFBr;ygW5}j@Kx^`C){o8@Hyf zlm%RRWwpnltsn9j88qwDNK--4oF6N}JMcVRe&6yHGo^OMd?Y_G@Y+#`I1AO-Ud?|i zAk(5DWnGEa!=l~1kYQW~_y5EKe~_&JcqhqFB}_(k8&c4m#f3;BitwsE15=UGWEk1q z=r^atb%=a3)~l&aY0Qo)n*O(%wUA*x6lZ8%TY5Rf+uy$Enda15kvz<{`Z8W0PK(-( znegp#MIX*&M>(zx;UceK{m}w&N#Dok1X_Of+jOhxfK>VW|A|v!?;u_tTUA=pxgJjX zGD~-dr0Sh_E1eg`jIS0$72@;P{f4VP=@WYC`JiZaOpLzdw4Ez!lwffpj1QN5X zp3e;9jek#{O@!`)phawLy?er|z1h{uWlrZhSt_N=yUNd8 z+q;ai1U3QRNOE!P7kkbO&rfUeBy96x7Udy%!8T|X) zzVY6G`?kF`{(Nh-8LdlMQPp%WI;m=lnDw2AhXSzJ5QhEZ2h2z2Zw%_F{@ccfswy zp#yS0B>c>qr{&x2$GtM=)yV_ydhA}F$U##uTl0>RcbX9DlcuoCT)N2zyWHZ&>}YRk zQ_n*|VsI@_p;xB|Y`s8z?r#OxcP{(evlKFXe9i0-IxuES-g?{uN%nra%sbXkK4nz= z6S3^rvH#?Tf4~?lS^Gc&+@@AGH;aY*g5$mO;C#tok6q6XdnW~Onm+T|{@%Vo_eK&xR3k@TA8vOfjuc*=4mIX%5)pl=|lUeF9;|JLK$ej6& zS1mcg)n%r41v*Slup*VfC&hVG&qYy3R7ih~xcf#&Ffsy%O};((OljOcm)1eBr+eHh_*A+{QbXsF zy$2E^vHEN)EjRL1(oI_H?j#hI1u|5ABRHF7C0SHP#v9KA{#|%DkK9eq={X=)5%A%i z56ry6Pw!)Rf0;kA@9&5Jx?b0=An$gtRy$nQR%Bw+(sb0%Yf7vt-wAHSulWU96yRda z&)MKcMhA3MshVepD3}3dKI9aDqOh%aM^zp}zV^8FS?HtBqpZm22>ioYqJ=2az~%NN zKN0nZwp>#+F`mI5b6GcViRLz#9s%LYQsI9}kgPaho5;wX9Ne0<(U|2A(?4|`-Hj3o zugx*<7quL}EOT#rTCnIS#Rm1m@SrfrpTIAi9vLn7h3dq?S&7Y3Pi^l=jzAWti>vmq zpR_?qzK=^EObIhDN$U@r_y<}4^FTq-4qX|!@*1||-r7EA7!vA1Z-ML2w@V)}?O?bY zdQV|peA#W#ZB8Hc^yDfZqv-vPH$r&#TeCvAkC}8DQ~nhm6as~=8Qe`?V%3XJia1dJ zL!LfiPG8#{Z-1g;4*=DEx=hi(7nF=P>u^B%4x-onok+Cr!<9ap!nEAqJA$s@L7ZXx z)DX@MyRsll+vx=a<8HjS>80bD_j1@V8*mMr&^^E)d@{+kGK!ONtkHD+PeI2S%jmj? z=pdg-1_Mdr$QV2i+>9Jkm#BG%N<(5I!Lc4$PmuQEDHYWa3GDwq>TlST$%uOQD9w)G zuKnp0V|)1{e2S>J{5uJv`GjoFf)!F+YI1-2B3XqC`Eaj93tISvHS{cAT+)k^#e_mmG_&PW?~Mgq^^;<0VpqrDVVt8a{tr>}X4 zrPy+a$2lQfCIzv8azZ*B4NNIfimd_n^spQ6&`oWs+GlSq$=DOKK|>4vtz3Bno0{x3 zf>%LDLNRfo(G(_Ly~t7Ji0AfLXXj7@E%fP5F27x$#xf?}4S^0kmAMmObXbML4`QqZ zaSuQGSfVmYce&bF|&U&R~KHmcO4^2mQ67gTlVaGl=U!i~VJn_c6wqNyp z-y(u05l5vJrRnC}jPgdE%{eDHdhtt1m&Io1ra0kJz(S9|+dsSY?}to2?VbVqtAi_+ zF#aU^Cc(ocr%NGwBd1k7ky{Ks)QthoZORMYNf%1pfYx_mKJ|&AGPAZeKQrP@07$-; z*zX!>Hdj|vTfG%67?4l~hnBMm(1eb?fezW1$xMtd3oVbx^=I$@RFq?3!46%`-MLxv zazR%n<`~^eeu;;i)O1v5owww6iF`p|{%9V#A<(fY33Xi=H5^=BM4BdxSqXKZj=$$;QfZKc@yfj`H`P#z)^2cbgEqM^-$Cke~H$fyf z_5oC_=TW* zkN215oOz>M9C&*-!a1Ll*18Q;5Di@tRVbOboJA|@kL z9B5u%L?K=^Dd~>yHG@@d4!ov4B-ILYBII2+g;Apwla*4Ka*7t^6HD~lvmdFM$5S0d#w@Fy_>FrAvtjRCHr$L#@EQ#TVY@cB2#^( zF%of?0l=G?v`$42>QJ5u`ZxaRQab%z&?SR%VVE1kO~P;V zfsfrvxcbuQE|rV}!(FJUm)8Iag))vtc=X*7uM8B%+;qENZIjWvzrlAdobn;Jj>gyL zFCZ&;j*J_kf!Ok0JE+nU&W*LCJH$S+_=5K|ZUSZOc0L4yf)if*ABL>T55^Bu_KUu} z(lcw)i^;At*IKkRUJd!lj5K0trPn@~r%vnC)at-4HK($~@8}Z#gH!$_t32%*;79Ax z0SGw4p06#V^}J)zJlJbSu0IhxblWXjn|S(Yjn?9Yzy=)u{FG_{v+Zh}&7inSFKu=sSpxH8s5(@moIj-S? z9V%vCGodT`W3-uP0e3y6?pxg^!b;pu^0LJ`0u0l|Ho2bWm!X%?>g1;&8}f9qrB;Js zsLRU@2^VPGUF0~f3{#z5PGlCj^(zyVqyJbTxd%cC`7zALA zk1pB>;;&uXjsQN>fxk}paymqE^#r3;H8{o(e*@(@5p<)wxv`&q{+j=`{4hc)pVMsM z#~WoFjc@4cH}_v2hGbeG=F>*CjSDO-oFXPYofq%*Zh3C4-{M^0uHCg!Q-na3=`-yex*_^h@ieJa zp2>+L`5aRx03e~92pPW283=Knmx~=33K{^DXi8o;MjY=7m2k zPqdjXn2n9Q4MQ7pL9E%xD6Sl{CA_Mh8UDlY5V5C=3l9ZK@;Fv6ua4iMx%r(l-mFn4UG*e1#%djJvD}jm4CaBWB&eY+ST{-py1{Bz8jJu zvgUD+_ui z;p^9d{+;K9sG}nEPnTI4j(MXT?_$nvsu;x_$#3+5GSbdVr75s4 zu^MLFHy>w7)W+xqLT_p=FO0VexTPgE%gvae?t7MKu!w}wpqF{AOYu;kg|VUIth0Z! zNj%7~=q-_+pS}d9d!C9dB-L{pomBL&%-~^2v*igq7vwru|1=K97Jg)~XoRd*so}JZSLhQemq?@(r^jB4CDko>~M_JyF&jGag z#P|gMOOnQWHPjbOs#UZJi?wQzx1FM{6E=jHvZqQcS6EmsfJ110keaV;sOo`{&xyW| zCtj@&`3aemnWMvS18U^i65GD>>5;@1mPpI46oQGs&#AKYq_rcdUOZLS1+GPSCyM# z?VoZ@S!G8$NpM2EN&!7UPojO5KJ_B8eAKjST->G~%eAM-63;G7&f6dvsIBe-(0JxM z^s-C1vzoLJ@}FqvO^i$%|Ltk8e(IU=xvOIDt784(YC-l+54?iuSXYIcNcac`Rz?SL zSb=yP_8S~klvtpYDa|S>y5`xo+-Z}`*tU{gERAxlKwWRHLa}K&r8G*X2F+EO(0jf2Y_D=pwTz{38OeQyGdQ#xf3nDN?qa$O|9F(R7Z=g4s4t^jMS`42z~^#_1`_U~nR z%h?HVYHaZB3DvA-(?+-RZ(H|aVDNp~-`}9<`eeSs0jof-=H@s}RBLxhy}#QYJ+TM# zN}u~^Khxml4F`*s>To8VVq1S~?9R^(qlKY0ujU9HRx{v2i5*p75fOV8T};p|+Q z&66Pn5uk2`YSH>TaJkNHErYKX%k-g)?_>l zHe&*)a|(yIz^q3IXWBSlX#D@1LihXI#;SmCpx-~=hHWV`{FrDG;3vp+-p`YH25_+t zEE!@NZlS5L8p<#C3Y-T=4QosTe&SuJ=vm2);kr>#XQW5-<(HGhLi38j%eAmMuZu1? z5c5B%AlE5VPx)P37rkf{VfNwpk&{#tS%3Yjc`%Bv{mI6pHgLJ4?QY$TJ<+*=#}3#g zm|Zq^2kCORO;ae?G`L*OCHp#5K@6l_!oKk(A9x1Hi@@@i@CUc zy^I$goOzXeaj^N2L;i73tlkcQC8LCUB^Ft4H})&K076KZ(a+xqUm6}3I~}JR=s){@ z=K0~M+3lgNB7W>(m4#@QKkjs{2syYBWJj(suSdMh_CV&g(CI|2W7X+oB`X0 zB(`UGn&-huanWE(sZkuFO{-Cp@_ZtFPtaF zhIA`sb}?ErVz*)CZ*=LB_|Vjj&z(!r^!1bF3Cb~fWS}Kn$al;<;$KzLBQCp7OMx%8 z(Abkf2-dC3AD?`Oa&2s>lT2#UU>Nr2@2TFgZDE-DqoBkbPGv{6H2vfxv2cK~|1HUl z6$R&uO!v6L=Dc0u5Pg1>&WyAWMq(@pj|eaDkZP60TAmYoiBYE95A-acm0sr-swZ8l z_K4#u--W8bAWRTBn!cmyjldJ???>1k#EM;0#jWI}rS9M*D4;Rr!Z&HNpTo8v&YJ*vrQaiY!-%0)|odO`8ACV4~8O%S1iGy|A(ut zmf$&RK{WU_G3FgWxbFUP2`#i120qyf#W%%|PRT9*2A76om zlKR)Qg*5%E3iP2TX(Z@{-vSM7@QsoN<6TXc{Y@y401zwoG+5uQRJMi-!S%QVct{F7 zg1L(leq$Q`6R!r1RI|pZoXdPnLKLYnLn(8#g*Clcu`E}-^9*z04tyd zc<2iwk?nrD5^tX=9aTsWJb=kJY8K_B2z)XwDhCzzl8oD3jn7A~7Skd6BERs{)NjERGw zM5HGyp*M0^Xcb}hC|(;sSHXZ;)U&7Ag@y2cXAu98Dj(9?X-qwHunLA^R~A$jy9^La zCeJ)H#F1zmEMVZZH;4hd*NhgR5`5uTVPyb!m=7&AABD{uz4 zLhzBwcq?Uf?GnA$wyWF-Tc9bolW~>hv@QE}brK1^8U85Lc8IKBIxnBaHd`?9L2Ei8Octn~8#55mioBp%((0dwROZKO${`sgxTamPNa=7Y=m zYGhfQh-^w(a#bJ+!wJJ@z{kJ4exdDlDSsK*TIPYFaqpuV^3Tw?zLa{1L zvg0PD;(TzjAdsP}r@Qy#y`!wUF?~eB9W3u(?Ro$W$WOELi?@WCSX_6}5&FB3h|z_8 z4V(m7xuOdD>j`a{TQgYg@$#bisL=GCFgEQ_7*|I*NzpB|Ez4TY*LhP-QY`(|uRk@j zFpZf~*h@CQc!aSADGD9OvyxWR-1IHaq!#hT6~quJ_{OkVWgnSBr}xT4we(UN*H+b-ThW%%Y{ z3PL*^6`kUzVn}kCe*4b@A|9=B@jYq|dB)UMy*h;W%Jhk*P-1&9A6hwUKjg`_hd^9pl?2*4bUJ*=|O57l&NKb<% zy$IUfiLCWyJYLL*O@CkVaXfMd;b0<%vw~%*Gnh0i;&0zJ{S+@{z0c3~XwQ!8vKQx$ zqjy{lVcl0xJh4l~pE>VeOn@bhDys4YqHiEdM5*5mEW2BzrYEG7A^WHn;90hMzf51d z7`7BncomBB-)aQF7x~GIB?#Br`{RUy|Bnlj6_ODN!E;Y!fkw9$O0}}&6YV=Xvu+o& z_O?RnG85SVPHKZ*)Y7iU0Ra@@vRDx3<;$JP5$JZr96oW!V|}JZl@E13Wpp*%dwg|1 ziWi4ym4cACGfXx5CDcWIcwIG2HR|_KA3y~g3~su9Txpv`P|AW~h-`R}06ZL{uO`p= z3E*CA;G5X5Pv2d|Zomb0gpYN&+a75=M6lrsng7mB(a6h79L_2vXY#y=mH>;<@fl@h<>Iu-z|bM?2w0Uq>Yatj9Rk zjVm-rj)=7+uE>FQ3LW}2*K3Bpp#2&4nZ@wM-E3@Rgx-$uhC-XR8!g@<+fm6ZGfzzx z{|5@j#Py*KnT8X2(+omDVd3xLEyQMUL0{wpK5B> zsCz8BPZ=Ij-EH|Dms&~DzN>cq#IGvX#ysB0%{>~lsO^a?VXGObsj>g|_Wbsb79iP_ zMlO1`)LU(f)khV?PWddhzPVXIr{Q$K6Fp)^{~uq|2@)ik%!h%ASZ~RbTJU;*6DWf( zsr&Gg3ms2^wA4={hdAMOs*qpRf1u+~TV&>4j`rBTnh@{BVQfaHg+Mqa8M!tsDdSNz zu0hy$T~xTBGYmfwh>{3&&;y4s%B-yT&1@L=Z{%GZwuE{CB#TbEe&7^+qpeRS|? z%S^D52=*x%5~D+!yY&I9Rc?jEPLQ;79eQ}R$y(S`f?7>?ws{X|(F5aQN*VS$kt>^I zpOZ9{3-L)f!>5Ff;Hvx#fm!TJ0hHl1@c-^~@-hcEt4(Ho(SOj}gl2|aP(p&;4G5U` zM<8-sc4MypN3vydA!f3BA7LPQd17`d%)uuCH_A4t$2)cNm#^9H+1DDSFd3PK@i&!{`!2`Y?U{g8jX+$9sG z@u!?F8IRpfw?aNjcE!dJQ{8+k4$RZV+A~0X{OQ~DmAg`+$kQUkr}3X_|L=!PMzpi4 zYU8mMl8;{=gNlOaJ?at!G`Uv|Qs|Emi<4skSiNOmf3kpzfMz(KdV~;vVY~Lfu-)-+ zZ>M@dzz3GVry|#`pF^eND`6y8Th02tm-@FjkA|y)4I_=yl#`o|tD=N2zC)LkgDCgE zWrlph?Gxpek|KHgM8gH8sp>h_ray8YmRZ-opcdB14mVzniDk%kVebA=u;0_pBAbQP zKGWdGc?xl`coHOzylu?#n_Dpt!9_1!UdRVm~ zbNr0#k=OkQ1NQq3%flvW0n#E2w#ULEu_oe|pN?(Vl2!#Tn>KZnrX0iEyvq;Rev9ruo1@C=|8xQW5VuwtUPbr|p0vIJ2!w;s@NKea)>T!E?gB(z?eEPU;mm|N!_~g` z!WYY?X`{c}Kf{Grq-%5Iav(|8P1T#h;Hzl(T$>mDtow|a4D_gxz4q`J3&Zm{swx^J z+m%Z|bkoNF9r}oM;b482eH0G&H&5Ydeij-ZNrktw<4zXyQ{cWlfCEb+m2Z&MXX+t! z$%NK`+i$P?pDUsmp_4a4n9g!{Gjeg6irJ&JOsx=Q)Y*jXQ>9tY943%XwgAP8%Vl_V z{|-NIVA0>VQv&K^Ip|D294{n&5bTxx6#TsXv&k~c;JSDa4^l96BOe_PgY!B?w2mk$ z38X+cO17T?!8rv2TRNrdp?4Pr1)&-8CDtvey_f6Pd2JKPX|CW=;M1`-*}}d}8e)cI zvovEUypx9yR#|+%@;s|JFXz=oyVp*?tl+V>y6y$e)VQIe9vpjh4t{PaVGKHS-@uqM4%iL}@;UiPtvsdRT6*?d#Y zN5{&if>q`G^xx43`3I!kgUJY$jvSw6GcA1n%UUB=_% zr0Rk3!TedEwg%?f5nSICpJFNAj@qH&_gV*<(zU#zvIM8iT6eo|`5A+rZl{)#!7;%JpC-F-AscB&0FoWn03828Wdhc}%mzSR#e zF<|uz<_;r*S94#u8)Wp82>T{hoW;MxVz0xnD^4>^B4LLLCVijU(6_o_D>L3BftYeI zg~lt-b3@2ZHcU+60vd$TLWexenHP>&@GloLg9o5}__x-AXAiE@+hixq(WoZ`BN~QY zqAuR*XyURlbieqmY7x#A_&Q7r(_xfi1m}3HKV*(}aAdXRD%V6!WLyJ&-`h+X0|#n^ z*Kgz2o}WvwPy!xIFa{^@z&L;6NzeV9K{3!KM*O8i72x<)=abG3#gISnwoATQPq3qn zu?&LYg|NUO(%V4YYZW<_U8J(?C?MW2lsWt2C4%bK8=7+~ZCKRo=w{c&`Oq;Bm7k=;N0-`iK(05<4& zc0{Ae_$Vm&$YE^3bADAVq(!?fB+jUFj8LGHAp8n}*JAK2t}qG+hlepJ>LXLxEv&kW zhZBG&b1#DTZJtR~WHi_M(qjv+!K4^dgF~+L)_6PfSNnc&akl`iaGonYHmwiIfvc09p^w+@gjs}L`HdR(N%(Em6UO54v_$(&i{yLv z^C}avAyB8=N}59M5B4$CYRX<(x)>%X(`#?e;H%zAEm(EDM3F7kC)aW?WK#b32JuRP zgeOqGcjjhsY6r0QS`W!bv!*|6wOhyoUC448ME78_YA+PaL{#%kC_e}o;3(u|W-JFr z_&-XsKx=S7xfqb&Pa*|pz%SW1$^cCWR8gJ>EfN!n6;6A-gbPA1|R=tj|qX z(va`I`{-DxUPl9f`KuzPjfyN>&bVn8AXM@?$M>2JOuV>Ujx<%fQdcY!G91etef|Dw zr9C#l0VbYIn+|TPNl@VVaIq;G%4aFg*z$Bh8WN7d@`Rt8PjIilV^0yEc|L>M<}|0j zhv`6&yum~Jcc%BxMFM)LP^Z!)ZqM;zTTsQ_8=Zki6;nd73+r3<&d-3}|wXjUSaCk6&E+ny<@c?8HA^ zyFV#3-tBmtu*ez+m6|!CqfvzQwP~doEhl7DT*3diuE#5~O)yQpF1K;dHbHpjh;E^Q zj($qbc?$s9U!p0Wv7@2n{f}-3L7svzz4d)F>p$9)T$J6B+WzaVs*!CpeQ(_4Z-p;JMM5__4Fuj@YyAbu_EqJM{*rNAno z(GbE+#EQ-;^m$g>`(xDZ;@Jv|T#RbpYOnu>R0M_1FPWPcC-~0dY$L?wcy?T^_B1;) zH0Fw!zrfy?zC9Mqc z6+ngVX}2T|h-fG9pkH06+reE~vqhLp2uVM7bwtN2P4lxmOY^W{+;_yYE$BCfonl8%L z%sk6;>(UXK4C<_~QZwPvpxMJbI0#o+f17itQBzur62IYgzP}8KVd=a-D zmwBrt1D9R3v<}9q%6w03LYbmPN|YB%`Imirg6WSI`5v;C5x?=v{CAySAZMPc(=}7s zV>lgDXCIGFs1X9`HL6vm@MV_=k$Cl^2k_r4J+tf`#=Cud zhDRaqZkS_rxeo8&Iu9Bg2WC)v-b{ac4)bjFDp|3B&Vw?v(vqlr1OC7Wi7%Smh#lakp%cvUz2;I%OG&l2{ed457 zX^TW*pNf(tmaFzVP|`*d^Q(C>F$7q0pEyUZCiE9i2wA$Yy3*)V5&iFE~Y{KB>~C4xC9~WZOAxXE|Zxi zGXfe2J8<`*+-TVE%YQgUogs! zPW-S~FNlU~b*b?5j{kMT%19a?gdX0Z0T|&?kLQ{)@<%nlCJ9H-qX17KF+Ji?2b8k2 z7`SqFb~Qge;sClx{L2TC+q1*9#bmac?xeRz4%{(YSy^FrR7EJ~3Oxr89qrMS|}x9D>;J-S&7 zSYE*D`JlOivm6yIdm*L8M-sbGhrs7#hSH`fD6odltH-B+LQ=~JjRSMm6P(u4|#X%pYap!5qTh)h@vG^Ci=Pmm+^K7|9&Z9MB<-vxo?8#lML&D;I zIu7A$vqeMItI+}bo$-8LO87t&6eK*HwvYd~+1JJMU9_$*KquMl_)I66aBNOL)ztYR z-pGdd2RBs4)>L11a6yO?=}l>4#EkU05vAh1gzAwV9)y3dQ#u~@P9=-c2f+vC<}~J{ z9%rAoK<4>XP{L%E_SQ-g)VQp9!EAvu_f|9%?H)=#+^0Dz{a1y-mkF#p78F*5T^!=A zF&oz~zgFVLme0yFwYAtlJU8fLy^>bAP(REe?t5^iO&6A*;}6V|e&+bA{K(Ud25|ZQ z4fI;}x-1i7Mky>3n^FYAXVxR34QsQ`iC)3g!kdC*7C*vjXZw#&Ic+tPKX_}TghOSB zqtXU(XZqyBvb_vCEkA)u_g%r?inaU`w3>i zifrJ7-~C8vDrx%5*JXxJarxiSuu3xtJPp5c^Y-ddX}$?S10aQ;dg4tN%4;^J6JH}w z|AL`B%4o=|!O#0iSDi3g<1hS4y^qSwT(;H(S1^bs-4t;JzkCIb+3jOA>M>>^UkD&2 zMc%}G7ANoP&4}L{y=f8um{{vXCz1R>I$fxukj3IXIOc{cZ@Lt*$w_(^GTu>M5d;~q z_^=7$jDi9`{QJYc0k4O}?;ps|f)K7sp|S={dQ>}j5k@8$gdGT1X;wUUQfz%wz{O+o zd*7Kd1cV%{o&gi$g}DUW2|foh^n30hvus5mcDo0Ir1AGgSBBhUI<3=2oZ{7yvCvX)WA4z3799k#xZ?)M!qQy6mqBLMSL9RLjrnMf&jo_Q!%PS!oS*%meqiyAx zp{guQ5~PSnq#wfkfU-;=lYv?)zWt$JodCc3v8;%2k3@7DP$cGiY*%-UT4BT_FS9d* zlIGbMO-4{J_C3g;>Z}=}<>KHmj5^(yRggY=hO#QV3$*-Ntn>sVe3;!+!1I1&8RKE- zDS&&8Qa%xGnPd6ev|^5qT=G*7`JBF}%h{mSW1^c5?Hv`STW;IKnYmlC>^4)*xGl&r zVtXJC|H==`uOI8I{Bv(d~q0cxDJ)k6_^!IlUWM+yDZwGMtz!y@TkPW`2HHw!1@{N+=IjJ4$uP9A}rLr zp87POBts0Fw8)H4z0SW%KOVY@R?N_b5wDShiSw`+Q_k3*-ix?c%*fB3`XK_vp!+UJc%p|eT+X=GW7g$Vw;XZz4-Exw#{nVor!+a1m6>@%e2 zSMlT+LfaSMDo`eR+87ayvvNfgNcx`D)%cm9f@;_I-Dkhb4%kOJ)fQv-x5pHmkII!P zw(@Nai$L8)LYKont+z{_#el2s9QS4a-LW=mb5oAnoyo|*6fOFZUQR?0pxsI#rZ_oU zGJ`{iw&X#CsUZn!U{=JXKh^`L09+vg37h!dpp9dM9mKg^-^f2d7j;d=>)_|CPqXAp ztE-nbzUed<*nAtDojr93kevu3NsN=MJycRU;3xa<5)0mg6pFX2DPnJ1l{2@tM9tQz zzqFApJG=M!G|5Va`=s|8e(x<tcE|zM=6P zpY=3jP?eF{Qz`d(TyX-Cz|-VY_w!_=CE;P zr*hO)$LHj3MiNW{8;Xs=LG*paLK91e9!^!r|0I}*0otxZ&|6a*ck~QF6O;ESR%gh5 zg}_OyvMlZ!LaV9dvAM7V_qSxTDP#w-?N_VHaK%nv~~%{4x~s?20m>iX2cLSq*0QSe;*Oz z?YD&*F#p~5>KE;0y~69)w1Ks%#9f{<8eh)5RIb*aCHh39L1&3q-@3)_vK2?OT*e+d zHl|oa;nlC=!~e+wZs+nd?`CxR*4L$pYoP<1OQwJ(89({nH4_B#@|@^*GL zHWcgD!!WA_X~D$DP;r}ax?J{3c0Du48YNfulwI6sgqV1muY|#U5lNSYtgf781q0q};4fzBGw1|25^ybIh(Smxr z)M&DU=wIGjUQ=T1@4qa+?QA#dEJ6Q^;}8IVSzpexrgm3UFDqZig=CC;?jyQ=??TE|Tvn%JsM|I^2uGXNseaci z$8D>{SCEsQYqKRVRypz|`X9xz21qB8+l4{P$&2k0HZFIaRQ$#8YRto(k_DOFh+Wo3 z0w;A>O(f@NwZ?L*n&kqkA=n&k)`$TSeR^GpDp!a4t#l6i!0BJ zzIyN26^?7g%Y~8bnk1^o-uq>g_|8@h@-VWm~1xwdq!) zC0FBK(N$}eDvV8C3`W>NEgkSg^6=o8VB&MAiEq(P8~I+{r$6Lj$=ri(xdkyPD(W%t zgq(Rx4yJwW03~~R2=EpCD-wKutI+^d;$ZUs0KOxXxuojAUPRCMmcGKPv}H9i(h1wh z8}f<F00#SsCVtGf+4AF$nI#55-Iy-$q>|jt`Qj*Ba6+g;{CZV^lbCNZl z^VkhgIoVrumeY1Ww%iWf#@W;(C$Sk&d=Pa(P%riaxIyZ-D8z60`5#}OeGmz_j!a(P zu}lh@go%C4_KtZK-c@(V83>(Kn3u+Z{fXM18%MUo_rg^c<~sE16o;-rwBe#ya?6?&33-0!HRK z&uR1?R{6qBYrsZrqW8LKe=e$J1zwV82okPnvlmgaZi!YZVnc}`x2jI&@AUA4{98~^ z342&iBx>THMX4N*^!uk{#tz;!+*7i@hV@2UVqP=Lp#GAtED;m0Xx-o6UwK|8OoXhy z&=<$5y~m*OuWLnVyb85E5WeMjj$f2Or-8Kb@)Cojb=Ckk1}2|7I!v*=Ru5U+e7LtO z*32Q7NM#o~kJoO0heIH&n&aSq&7KI>3m2x*_C4L6)hb#%OAYWxhW^jBLad$A{&X+4 z_w2|ey@FM5I_>x1*fLOwh#Me8p~#U#i$_MO_+F|`l~=lBz85te2ULRa0L_rYq=ORE zm9`(0PEQeQo#G^W?<0_s&jOhI^p)|Y1f%xxyQnhOB^x3uVxBcbqujCRHrW=B;;&c_ zU<2P+uCut5ba}4%WskAyl!DQUvm7HiF^TWJ`dEWj@| z_5b&4H--)3)Y*yBW3*cX)b9r0vD&N{3V?i$jgpzOX?kp)xPj$Y!8O@3;iFq6KKS|I z`%d7X2zwQFb_~kJZmNRz`3d{@@$dIPw2IYE13m)Zf$Z2pb+sV2Sm^*s%>0I?5shFU<@^o14$wOQg+j}5xn;ZZ%rG_i4!;3Fs>8#a=hq#X#qVU9Ke{MpYaJLCI}gRQUNzCS zwzirgctAIU5xOmFp-1sKliB64wTifvn#^N(Am2vz4UEFf4;hV}Ar;qMjhg$qOM576 zw1EF2JaNpVx2XFg$M`K#4S%(?gx&d`_3Ul9V$Q78#~uEE#Ql0J=rWlV{hp%=up;*> zVqeO3UEij(73uN$^BUZAHf#-BAG!g%&Rf_U3YZA!w_0C`FwWYEix!(54i zl^##<7E4N>&z0_8l{GW_+$J!wCA5OLq*!m1g8%y8a6g5d+Ni6uO;{7eHKhDy;cwc?~t+RE|tIjb-46`);AM7g{pNx#!eq=6f3au0@Wx9B5~P z60V*P5&EkyzjpRwc$LVqf3A}m50RbSdeq#}ro2BZv+NC#UQ0(h4?DEnhThq0wX*bQ z{!4j+7Z32Km(8nGF3X=te3RsHjKHGO4>T_BgGibwQd@^84Ux?e)WEY=2TR_;PsV$t zB`e&=;?9|jmENy6lkf{0H@H$f3@ z7iu)rX@z?%5E)P%|Bf$U9R|2R_iZ5_{->JMU5j)b*FhY0<#2<}kcOqXYQ( zGWe$E#?QbHZ+f1u$*u>12fegHkNHoo2fVceF;vPKaD}zPM09O_<3| zo})BqI@l!;!rZ?mD$nl+Z6@K|$fznU<69jTEfrdkhbl7N})@C!93>+6h1 zF&m&{fB%!k>r{JO{JRVZ)gh%~{!7woLIVp$B|Cs#0VrK} z!QsB$l%c5nS@jK)pN}sAgrtLl9dnn*)u!(45pzPEHog~@A{4x#lfe$Guh$xjuP+Z1 zvp!O9z;Hf`VTmgI($=ssJ3bd}R$I;; zLv`mgFVSRtPNQXk4e?8pBSC76K>fkl5F<`J}CzZ>yZG;0UFAwVa)oTqt7} zRZ$xTy*Q)LQ!Y`t#(hvCZ9b`>srzNQt0dwvQ5QS+NF1G6SQIPXgtB&S^@PCXb z{=*YOae%J1Nu}SwSUfoR2`Cu)r)4Z?NvhO;qJQrdlUW?w2pRj(Gm5F9C=-|1)_IdG z-a1$lL3Uv;3)D_SUi1_iZ=&oQQPM`exZV3lSvL^T&mDQ4af&K*YD;B!+pH^3c^M#6 zsoR=&XLDQXPRJK<{4q}`LI*pEcT9+!d$gw|mc9NgDxjOrEKz>hnGSXs31Gd;0iAe* ztfZL(6>OFl1VP}B4!oL+X}`hke5jlTBj>^QF&s@BB;{mBY%|?b$WF15nC$*2b%Gt> z7DD~c`o1CnRim;-!)Z<-PU@gd+fL(&CkvP|jZQ`Z&q`Rr-Bxr-t;IL~pnzwgH$T#1 zFc;G~1d1Seh2|2u$q9Oh0fGWuwsG)pw)f}D0~zr(@R$DIs8-^v@685>->Dbl1>QB< zyE!;;9yFTo!;1^v3YaIKjajrju{cA=`%jmK>m)OqFo~lfBnjB?cm(SQl?OtUS zn`*SXeHvoA9T_`g@dkzTfghC`4UHR@D3qkLAu<-@1Wi6gy`wt=JLxa@s{u zjzK$N!Hcw;0$TiUiRk}|!+a&WCSYD5&oQNf5RAx*2mB-SRyNKQ3vK&+VSS~?Lva=~ zY$U4W?51;Oe`*4fw3FvP=ISQH2iw`e>BxHGKFa^fmG^H#tPl51Y^qJP$V%Xp4?cgQ zVBi0g@Bif@V?0UWS$U{{Q{H4jaeM%b8ThUWq50$pci-fyF{Nt-oGm$Z9r!yJvNd7Y z$s_jjlXO_mnBCa7lnj7Z`3TM1`_%E1cta9Ec^BSv3hQ*bXUo-6ZTROArCc7>22!Fe z8l+R?7pYETG%|)!QjLcDS?Vn~TO$CC1w`-pl`VIG!{C1&-9J9iL62r|XY#!7!0O8w z-p{)8k22D%Z=L`{IH{9tf^qJx=uA%L`W2EQKt%7LfV;|zgA8VHmM}|xnheb^L5yO& z_H@=LE3Zb>s_n@AoY_FnGcV#(wq(na2o%guuBDspt+KY|M+HA*4>Fr9=bljd_<*de z4;`uQVQJrak6$;?2{)TIsS?_m(Rx2ZZg#8|wg31;f^+64t=E|}__y)TTRz@Ypj@A8 zdP9dYYaScFMy*aiFWywk$<7!?q=_lrQvvC;5Z3Zoxk)zey%FN~ z`GhtEW_^NxNF@d&@wx7ObG>*Qc&KZmos4d8PcF8eA?M&o)W(>LYAZ`y@ZFf7oWc81 z_sf4nfK00XCz)!B@O4wiXVbXV)(7-swTSSF6k+~(-s(-4-jhCiBG!SJ4eiP#l2tFx z1c`7;Ah5JFW*`!qO$V$}O^9?o7}pZl6X|XT35&3Ys?wH7=>2D+YO@!r)#_3hZ%Z%r z4yoyGj`k9t&Zs*f1s+jXR%?kZc1x5Fn@wasFSGBW z#PO;BZ1CAK73SAJZ?a&P(@w1UOa}E|F!0~wn{KA}`0&$!h*W_VrxU=@-}YII*J|hN zcr9e9-q@Vw=x#T^$oPt=5h}ELiYFgx1UgsOA3iy)iHD`=u-I)ECP2zEqQ=&P$$XsP zij&DaQ6{v|=)+y!XBI>li^LVs$0|@Te&9RgE3{#)%rf?Jqp{Sa-?&MjXz8FYLnc?4 zv_RhY5kn;X{L3Li<8)WTgPGrRs#zg=xx}H6{YSLCe{% zsPJYgg#*v;VfKxyffzWT4p;LgLh1s|c*WP^ha08;S-A?lF00bKd%8a-(@Uqn#HB&4kiDOHi;|7+pYy@3x zSLj5h4{U&&w!GGi>e>KD{O*9>(=LlrUt80ka{GTbAQvb1;p)u%u*&FbYd6Ib5mL{v~ttOnZLb;5Lvb+ZO=;|h++y@Zku%8K>^K1Dd@;bbN8s)+_MM4?z)Uxc!g zOH9c>hAJI)kiX|Dqidf!-hQ`znLMlk9xUM!`mf7ZmAB-toHiDBwEXA~oO`$=-0y62 zMRKb#OzKw9Nax@p!%RnMAKH!??q!AGB;}=^ZPF(e3^Sco|gjh=wmqhFf z?Bg_eJ6|>#U*d&jQl}UeKq{>om_wgRu+aDtTQr;f3*vX%0`$HO#Fy0s-&w!9x;`9h z4l^DjapImtjrd~Rrqk4Ze2yW#8YJCYS^yZpkrJT+Y@gji_y+3p%2 z{cOY}hOcC%S)WF7<&jay-U)i*vvr0eJ`9`a;hbj0G-`0<>7nv^8D_!}$BjJtP zihkEFO}yrw_Li%X90hcKKKi}FdKNMGmO{dxeyfJ# zdRMwzN68&$uuhmb!l%Df+qzkJek#mNp%g5Ng9t>$`69dCZhkVI{;VWB)opn^jH9&V zbW+p=V(a5Tt|P5TFZRoLwW|ykI^4LeSfEo|{XWPWNbGkM?zP z-!+R>u5F&yP{AT#?vb$CW%C85M7@+L#`xi6{S6h0X9m;Tzg=Y=IY{?4obv3*itP6W~%rEi-cJv|Kd@_tZ_{d93L`R)_J@(S*9gIcU$$y zhH_|?9$uKvPHBtl+5}3VmDb!gZP}RFf8b!SL{B4sGN6)2n2$P0g)^pynib$Hv)FnT zbPsu8FE}!@L!UMp@r;#exlPbj$8i(V0&UEDrRhklXthezP|`K$$2)`G_-@MvVaR*! z{noD#H;cy8!F_vEi=ZG51L>zC+0vh>d@8e*kc433SZN!=;gUbsSgGHbeH`&FcO0U3 z{P%6(tr&0VXNeJ$hgPsmZJN`>Madf=Kq@C_R;goRAgCq2%d*sCKb&mI#@kp+BM%1SyX^;l()1Q_Ld zulyG?{ezR!O$UJ;!u|2W^jfDEa9W#;GI&Yr_k5r0IZ%a~IYJKrzv6jJEp&jKj-92g zR)<8+l_{ZsKvJNiAoZ`y0;T}JwBB1k2h{MY#|d{@tqUsfXcNu(mrOfXEAKiPOA)@g zeymiO9xAa_n-WJp{orFvs=LM>dkhQ|TAP+nd3y@F;T#Zje2!q@#t*J1z$gDfgUuK) z-eDSlgp6`}Fy)B|MFHBT`tjoJ`VI5erIIIC8LU;uq42 zL#!eUMrm`0E53>O8Fo4AqWLW*!r#2F0f-N~jq4^?+%uwByC)eR`qV0Hq*cwad#=etzxUEw-i@IxMaqmZrMs{#l!;FG*wCffiu zz38u|uhO)Cd-xSSW4iUo))hs8e}*5g0%|rK^~k92&CISdyIDd-k-qBrRUVzo4xan2 z43tT43DXi?N9Fc`9jX@Wqcw#dQ@D;`Ow-bl+FH{IKB$H{ z=H(YGA7f?kM1#cp+AtH2dQ)+@#a&q}V$FH5YK3&Xty(eNC)L-`Izj{oT4YsAYAwIp za}>jlROO_=U?6~9e(eg!ZL$R}A3W{_DatE*f`Bxx?}w-L+mFOqDLlV?TBYIW`0%kE z0u&Z-5v%5{xJ(!o(Zu(DcD*Q$%QRGM!gT#3=s~$i3bwN(Fqp3tnjtX@PSnZ?rO#rz zMlXjqk^By4@qcHXKR%m(+NfRjdV59lc-k~-sI3tZGx_3tWV3p3#G7fpa?R1I({ZXT;_`tEBG(;cF7=#pMOaZC8AU?-R=Id*_TX|NaeA1VQ;}gITF->Z zX0Q)vBjH!lX}5fvmHUAJ7?#HuaX;6zRh79NHtu}=NxlACoW+!#7TcHv%GQ;4bQA&> zXT*31MuoufR$!)|w+7&(ByOdI^=RbF3b&6|&a*jfsNPiTW`F77jzXl0A>KA9%elC^ zYounLg-F7_@WTQX-k8z)uw3)h-|wG|wC?r%sr^9m^I+~`6f4PiZ1E8J%|lZud3T%c zQH{JT8BRcS*GwL<$!*Q44qwFeC3oI)i8#MwGn?6Tgu7vsEqc5S7p@Q-_xlG&!lRZw zo>^JutH)RS^Rxg()jFAG+iFD@w(#+vgcW&Zvx;xLx2gfd5q!V*RwV$v=)(hHURjMi zI+8$a{<5Q`RDh0GhXcnBX7zE)-3hjFR)Pxvb}0oyn+{xc<}Hfqcv`MB-(~X4H)I{m zHj!BwK=W*0A8%Yo z$E)2xBlD3U$aiu`Uyhm#74{_)G1JL>)wdu1aKci@my&SJwlyY}A6MO8iQAfN{1t&u zyoYJltDJP#OAaDh_r$vu4)v=`J(B@+;EJlcv>6VE(WJ2>`V*NwvK)`o zL&ULHUB~y+O0+0zNVK&a2Z@&R^G3?uatd<#h$0IsVhO=?bZ7Nzcw7R?ooeKN;EEpr z;*=Bz1;_od>pDX){KsN}ksDqwJNZC_v!IUX4&#$#dR7(k=rO^|i<%Wt1{W778N{}u zW3r{-?Un8C+Czx^Il_~SEbqs4qS*HgafU?Nbm^0&n2J-c5+)zVW$JA4)@Vq;R)Tkx zi(1td>r-b`N6zr@u=nt~EObfxZV>5WgPB#!egd&2I%cI{kf)zFA(%6g#m2M45Z7xr ze&G<7V|U2zjnB}hqOT){ET(0T#v5$E_C8O?PE)h;C80(13!JTw4v*#tJc0)P-NptH z42+7)%XaDd=CtPAJd?0*QOc;aI&7RRar}IS(pZEYf8!n&!l0e%ip2sIjLb$J0$5ua zCPmH)Dy=aOiTmUx1Sr7N(r(^ljt^FMJH?yhOP2UV^FO4yVx`*&$e7R@lPG=HpZ)n2 zk`E66fcrvE>X{S}@3MbJ;CeHMP-MM;6L20!$l6q}!%obc9w_Y@;+pAFt!3j1Rg?vT z7%T(k{KX>t*}`jl26mw`CaiGP-hN@6=`8Y_W33W5t&&@@T3-Dqy4RK$HN~C(h^(CW zB~DJnI^{xC_+R?~5U@L_;M!kHw-ELd4?%;u)umhz)f&pe+^#qCrK;@4X`tme5Y&x| zI96(WgT5|S+D6lDAusP}6RC-mAv2Il3IAd-pw9&Lzs(P_hP1Oh{)#XjZByZ@%uIjh z_GtAC>j^cCEEz{fVrsG2c$_U(Vual7?V;kw<--FmXEq8ESBkygZ>rqfB2a=0lb&gu zh_kbJ>D)A5sJFbmsog;wW()eJ@Zr%wZ{*jporLkYDrLGH@1kW^JSKnJyzjk%B&XEC z|CmKZp?kV;r<#+e=w^W^&Tn&UIwtUj7~#o#cgGP`_*ec7&mGVUZN4(tYO+6mD!^sf zjIU%V_{epCACsgo^I>s%Oj|aV?(N%9Iw^5N8}+gZIj*0)N*gLnzHVE@1O97*Rk`!P z-5K$FMf#PV_n|sd%I1R$x9i2vKE*CH;gX>nv)e8y71`V}*P74ArFo|1gOI<^QTs)+ z4lPR0b-sxX#w78@`f80K)tTO9N}`SaN_HuYX^Z!V4V|&;7C4(yoOoae=mrkxNh6xt zn!P-DyYo3sn9PE^WFbzw>tqo;iI|F_;7Dc(5kIxXVTS{6dqzt*E( zdY||9d+7GZD^5@&#=DPp0=L*HrEUN_6>-Um z)PHv@57q%|y+@m({z-C0K6>*@Z!NDfHN=_02VzGi0#`sRql=wJG|;z(SxjulVwv7K zbfBdbD^-S%{B!EIX|Bp#C3V;+CB`{}qvIe!S z^8;^pk*6?+RP!Un6<~y5$u#!@3##`s=(oA&`L@2BsV&^R0nlR|f_eVrW6gUWuY%AX=wO-?22 zX>}`Hxo}~iL_1FLswZALgRD~&rJ@Uz_;&jJ~ezxMk)jb%r`~-_^Sa1hc+e z*&QTDT4)-NA%)VtxW^Q_nC0ArXQ?6p8o`mYIpTehc=)m{GE|{o0+vN-$z$e!8m3K7 zHuS76`E$-H1+aF7B3mDp zH?t%aaIS^&USWETSOn|PFThBU^=-bp$kyrM-4Yqpr68rxZIrEDEcDz_qr z#kR03r*%>2hSK+XvFiJ@68XuAGeOdB592Z^D3jcuXbv3_n0kd~TmyaWL9{AXd0w<{ zVin{C;ytFMQp?0KjWQGC_P6XFO_Efi%8#4uh(%(2Z8G`0sAX_3$;uXFh^bufM#2~N zsR@@Ed-vR#{iE(OyLJPoAF{cC%~lxTqGuk|R5VIxRmWsvdYq~6%xkmR{!(Y6o(-j* zw}9DPB7SCC{R?x)kDFJ{U>MJuL#*bFHb;X9z&k`z>dl%9KthRxJ1=GB9RB@z+Dckm|!DZCV)Bd{X zxlOl>FgEwoZQ&H-o6&s&g6Fj?IFxtSH|UK3?w*~8`<<94(s!5PyZxYxu#A)xamEbK z;5KOO-NVA`2&t$#aR8Z%O&uQI*JvRzN?K%)(z z27Jn;aBewdP{V?%Ad~CPOkbUAs;u);34IF06{B6Fp7k3)68ZOP@BiY9BLEikvn)=_=Aa2{ z0X!pC8_kSaCRg_ryhBeJoO557yzLJ#u>9Z1gHecpeeefpb9;13eb~gLxQ_1%_D(zA z^O%$w!9lM3C$uK_o`iuvRt=hviLY#-(mU7fA$F_!>R#nf=0o@S@t&Z9IRyz=Ovo#V zfeGNK)Q{gCvOZpi|!m>7@7B5oZ`kvhVPiL^d8W{0)F@terzLP|HM6;j< zf99EwYYIFUBzg3p$&o-lZUcbCV^u*M24Qt@iNHgY z1lz*=Hjwdp^Q-iHW?ri`g8K#JYr0$gNPS5fs^7_BGNER*{KW<<;+f!TZbU2}ULBw+ zbH3;KtyFqm1sHC_gsgUZJfknOR%nmNM6mPmv8E)NO*k0yS#R(qcWH7Ae7pon z4;B530BcGSc^UxDsb#L8BEcN)Y8aSi*k+|d)+Xj~pLf*b>nuh27*S4#{e)pvLApyP z-t7s@^6GcH(>ZHN^(O_M4!%Mlv?u(!3olKoo%f;J31}+SifbP0Y^KW<^|hO(bAEO4 zk|XQl3{59%7D5`z9Hr>Ze{Bvy04GSgeG_%X6O#z*uUU?fJKHN+oj3WO+)*UgHC|Qv z(DHf=ln_xh3o=|5nLt$K?nj^6M|}T#)T;Wdi!pSFu|Xfg(*<- zgG=Mw#pqhI_iQvjD?}sfb2_Ile5Z`4|Za z?8QFz&5bmRccc+eIgSBAD%4Qt4}hE?@1;mA?$_GY=}WJ}GW3_Xuu~b-YDpH8C4UlL z_d;+=ei|ZTKT$G>(_Um0+$b|N2OFQ-1kR@2OAyi zM(rC5DeB;PM00RMTad$p1gkVj=}gT(YKnHaO$Tj!Nwg1@|?M+ z`a?0#ZXoXvk19lN*i6ccO0G!3s$c}h?yo^D*b0_*F$r;29+x9i{})#SyR+MoVDbB} z%x+A7+BE;!I{fQ&Vo7y;$73EY8K@8uoOJu-g+$ZlHx^GQl~K$sff>JJkDwJd{^BTH;QTa7mzr{ z)krn%=<7{Zs>HR?VjUP0`@uXyoPm4AwDUgfu!%D#m5D8u0NV?gnPwBgCyh+^L^`*F zy(FIR!j1{P`_=N+k$y>>TR{-;0H0(aCehFz9m!T-++oz(l>YrElm;2#hh9)5_QAMV zE|w%B4Ouy;33bcx(|3;P1Awx%2W_L%h$+?qR3=W-uWp!K(q&ExmmtD1#4TL= zs3lO~UANSc>>&*VWUA8)rF@?!lhe_eISjQ)5y$;*+uepb-5OQ#^=givhbfG)C_kjD z3m6*Z&Fp*w9~wFSQi`P?i^_qD3osqmrcVl!pfn~KfPdMI0(-R3J#UFoGVK5Af8DYp z_kMQzo!XFdnDW&WSi#Cr(m?OCl|?`%eE5hEt8zR;{T)BF!?R{2m!qSfR_8@=Hqj4c zSi`}$x&+s<%OGH%=?r4=QRzy2*PwIBF;KS~~+7HXbF55LOaL!tH3x~B8jXX2u` zNgyTDGwn3%?E+)jnsY_8IrQb5{wDLC)$b|rk3BFvUhEo3dy1~Na z1SQ2SIOAtv9vVWbslOx$w114FZ+2>QCIHheHN`#{$s;vL72dF=R6N@8E^L?g;kew8 z$wLRbw3$3xy1vZao2bMDOPLdd1AQRcie-PakJLr)oI~g+&ozkkxTin8v{F`+kug!ST_!g^lj% z7i6n7X6Qd4Q}STnd2r!7EwLUcB2;-DV-b5ycJf86T2pGK6~fDu)BAoEA8Z&smX&^I z!IRlWlNRUKZUtna)JeciFoLc(0Bcu5Z$(YmdKhb`mRROXjdWyVsIEK(lPZtnW2STg zqpQ=$_*{A90xT&1KyP-VF=(A}WtVqXFC1X+7;)uhotKy@&Ch)TRORHVPwTij5IEXe z|57YRNgJ7fO6>ukiP3}EtChEg(}M{#Bmk;LtV8%#&XX&pTeUK;dr$%ppx!_(i6-r6 zCAawo%r{B>n8?!hoNWs3NNW?a>a(Lg_ZDdI%iCu2$-VXdQ?UQ@feK0Y+ui6F+Nmvw zFcgSIA@oceuymm2%mzPxH8@b1Ty)1`z}Jp8Q!7S51Vp@hvN|$5MQD_JJ@9sg5aNr1 zqBWgn$oRt+=TnDnsg#*nu3uo!&tNh(*A181d?mYlW_Ake>==4}K22zbcnb{bCllsZ zyK(d#eU{(hVtfT7!EkZEr%G_=d++mM6S))5V%8ye6{Alnf{|4DW z`1p=38^2iG$1F4?eGzQSj7#8G5Jq4+i~FFlW|eW*j6+QvQ8(`*ey_T%r|UN-_Pg%_ z$^(D}OBY@uFNyLj?bt1Bu+uEayyS}x)%3DOyT=@N%Eg&Vot>AB5^s6ZH=dyqw2rFx zu1N`UR?eUN?006u9}%krx^Bcs*N)3M?>Tyk-KQX9jx!eHCG zqaV$cgzQGaHzCwBqySqIy&!MQW9ivxXUiU4kGGQ~bIM=60;$o-LK9r?P&##rohHS0 zaQsrL(DU>#TPz_3wOchczAt8v!X*#2r^+IyblIDK#U&99!8jftH&|RBgqGUf8iT{X zKS~xDB&I3$vRVj{a7+Q3?Q5noN8r# zFsbJ?0ftye1Pw{QDx5mMzvB@ip}I}tW?4IY-ZZS+wV3>7A}BZ=QfxYHJhZ)5NcbL{MWfV2KRP5qWiC+ zNq!uleryS<_ZHSo>K?#?ywi0CW2Zk^uQF*;m{}HGE1XDz9m0T#`OP3|$949Gtk#iU z?rU+|EmGTL?Rbm--{@JyFaXcX1FY*~{zCrb(u5I1R9{?Paq_W)Jtv0aq8b&V0jSns zyf2lb3{W|b$>T;4kl_t%&GrY%LaI>UUcJ8xM<@yR?(Xg^*N`({p!zF+R+hpzrJ%{? zTzh1&UhL8S8k@kxHCy~WH<0OY3A6zstW}nvN8Z?nt=u9M*T`>sdt?K;RDs*4So0ypiZdC^HVE3 z{kYTvPGM67nD%c;CT}hU$wI8of~baaDJW@E>xrpXtxJPY^nmkm;AiI(rG3g3agIvf z?t4}&VaJz@vZaQw0?)Rl;kd+lKqW(>R3Ep$_ zQ+jEU_Zl`>J;DxXv1+<=r2i@xG~Rs@fEuc9sB4pkDgQ{lom>tt-kprSBx^6J-u?Kx z1JsshYjFuowSpfbQXaPfjouQ7JAc*mR;Yz4_Fd4T-yBN4KHtQK@|U8mW}nlWhJOX? zNfsjez^mDmw)UnMk~R{!vFZ_Jl~eGt7jdwpa77*>r~%!oK?*I-PkIBC-seQ|X;MIt zYE293ypPzrWYwnHV(w4Ji=5j!7Kw|Jm^!7k1=#Em#YewL0;54!8@62jdVwIIMgZlP z7fj$k5;yJJ=Ssvc2q5#cNL-FS!+lc`R6mt8G^!+YM^GNI5Y9LWyt~>oxrgE-KfoDb zqY|TN?)A9KA-FnU`4astz!nJ_)qbWW^k6QZ^6+~7jV)`dg~$l9Q6917t%vdOLHe}B z)1Wb2_7>|FSb7DK$fir+QxAt0cyr_(U(HBZ_cI>vj0%XR#tN|o%a34HvI&0ZkRBa_ zuLJ?D5`}R2x;Q{t7f6ol122ahD3i`x-1sKU6G*HzRa>qrrtB35xDrn0U>#ERMJ2@1 z8x}=qMAE)ARuV6fTL$3&9hmcv<%1Z=!lkzdOGr3t)G9~(guGlViQ~e)TeCs4F*f7K z-oU6xPRo4dXnnBR@3=c?4FdY#QQ0|Dis7ax{_=Q-mJDxopYff*a0)7{n>>>$XT9Rk}s*m)V0ed~^laNJg@pt|eMxL!?}N8sun8Q#mt%e()Vb$_T?T& zh26qx*sEI3#(db8MphaMG1lfYB9TAGWlN{!^vG-!V98R4?p=lDJX`trlz3Z84A+`& zwORqcYPW6?SrD6%Car#~zcV0}j!V2toL8xZagFN{>HV8A|NopPzz+oXv(DRu`P0E` zltm_X#NL7ZUdW^UqZ;Y(3~AWy<7eZ0l#)q$L3vU2*T9`2ixOFonx^05#e!_V8Gpf` zP9+)X``#EmEiQ5_18=KjyWO2ioe}RyuRo?iKsWjd@~1YY-MvyWLSnUIxB$}_;z+1u zm}Ug@S3IqNqZVs4Q=$ZRHzNC-mAi?#9 zs#~D}nFmoT)`>vp(B;p#t^+t}i@pkCqM7GD3^;7LG{HJ58wFG@#EoKO(an!;A1LzbeY6huySv*%za_|;1E zSok|6(r;dc#9&?s2qf|-eL_61@BGaa5?4@y6NJ=ODI*UjzV0S4ZLZQ5wdG9rKe-vp z)Ewu}2>z_VL(owDA&qm~mW38$D^WQ>ViQwJ+=+n{*`?7 z`%9Of*PdZtBo)LnaG;V@g=t~OA%g|@O5xQN#_8S{L|%!c&r7arky$FM$rOY*M(JOf z%u=(e^1|ZCL*z=2kd%LIBuvDo?(8c<0jdIS<$B`&dNywmfQ|_|tvK>pd>g@f4l*QU zd1*SP$%>?2l%M!|udVD>^xYt)(1fxyYP(q%$y=UI)nL0qvlwopzPFLzKgnj|yKbHj zN+|S?rZ5P%(1SI0*hjrUSFf+*k>x2<7Akl94Db>(Q9UI%CTWuy7l?@G-@fN(YCj#A zJ?#zXSoD2qSklvPfNjhZ^5Cq?8HqX+(tabMe^Y+dDgp-mk+W^(H&54gcZ;?C$cXpr z3=Y5Bx#y1RA5GJLw=1p?-rNUX4nH9xEA2^=Rc972?;%HixlR+Uv+bT={Er_%wEpTR z;W>c7N;lRDDTSqxF(y!HLl1nEN1P<_qFH8q| z3f*OvBlCza7C(`<0b6i5+V{_;T20flVWESac98dF6dStXw+xf%-k3YPn2poC9S_=$ zDpKAiWy7RS=b{T~%a!6Ggk?yjDACnoi0!tbS>mt#o01WIT0XEVs3m$hx>4<}!2EewnY$SF(}lwh6~Jr0PP5F$e9KME33vRWGG z7L3)Jjwd1F_5GN{v_Sp{0I&-Y?jh^d z#C$>B-C1uV-+NN36_ht8DTj#Y^w=xiy;*%Kk9?wvr*YDB0Cg~)`X$Fch=mLAmzUN& zak-rdxH*hP<-(TI0qM6qZ_vAFYLGIyfLP|3fq(AlFB zr9G!@biOE+Rp2RoEvTaTjzPl(!KH~GcG`9syBRKb)E9G0U2ie({dAZbo@v&LbU7%8V7-!%^Z)pD9KPi zAnMcTfgv8Cs_KFC>D!pFtLL321x@Waa~4hf74}CqJPSqIguq+Qz!bxf5iSD9jqJ;p zBZ`TLOip>2yYCX+KdOMPeps>}p!`GmMl+GMU!KRFjA$ohw+_FJ@O&dq?&>Th?ckh# zGl(QM1_W@MBh!>DP#H94qaG>Y|B-0*zh{**&6(CCpJn-)eQY(B z0>p2a-d1Uiz0?9~1Z2wQOooP-9CnoAPi_MX35%Esphcb1+YHYs$@57Ul@6AqmgBj` z)eh5~_1jN=Y+UJcDrDYKvxQZ0qUhjnO3aCOH?IT>qQ(jMY>2U|M(EbDWhVIQ1Ixzx zMz$fMEFR*uc(<7w(NRJ|0t_x32Yl0s07vJ0CQ22C5uJ-$v7B4ZiDA8teo6I`L}Rww z28$vz%b%IH|M>~L1;MP^9zomh@2~=Db8X%@^F>H8Z23FA1u64V^FqqX{J3}8Q7 zY43N5%?glkA-n(PpE7N*=4JCgQ&A8A6%U|bn~J3VhKT-41|l}lQttPZ4OlmjE38ZB zje{|9N>L;TjO8t>P7q%(2#Wg1LFv&Ym$`T;my9NKgmK-kwYu~sO%CTC$J9)l`iPI_ z%kbgZ$us3Y1?VlIj4fx5oYl)72r^TYUQCVA@{=EssKi5n#fak-B=`aeDj}V#Da;e_ z6jo;&@tPR<>1pFVMuf{8)u4cNq~Td^ZO2vHSfF()(8O?&MEhps4(YWTE{GL#+fU@L z7=IT#sGv)u)4C^y!wdio@Dv~K8xkURGy7mh#!udOtsT4(pzhbdGsIs;g>KxU0*LoL zs}>RqLPRW0s?-I4-wON05vY6GSk7s(v_gC}aYy9wfuz`VGhAz_A#W-vedM@97KWe? z6I2kw$Q`_FxhP>o5;85YUiV)3x!wqhXjTya&vD-ZZr zdqTOS7Kf-n=PS%WkV=q%@yGN?u)Ob>+q-1Gr0aFJ?CSdckal`lg7^ph>iEHGdIj6H zP-SiZqfmlVKQocm%9$D* z0SDpVz32x$7~v%>5jVaKQGniEFWvV8wWkSKo@(Z&{+ddK*EB5Gn@hKJ?4mZYyxnwb zg9suGn4?rrk|h=6(sbv~e~^!B*KlF~(E|LZ%<*+$gROhKf8yrZHPJgyZHNtSA{>vR zPG!n*v&8DU;^vVHR0ldFQ@b)A$Ibh1BL}p2YV>Yhd;`Al){}w@->)6+t@eKzohZ*# zafU{HT-m6@=jU}-J1c|>^< zsQ<<9)NzKgcAEWa&!-TwNVwS7}hnfU7kkM0D3$z(37fZMtplaQ4d zFFae&*j>WXGcDs|joA{-ySCML@1`h;&Gawlk^kOnJZ-2dy4OXo7hLM(&dI&SDG(xn z`|C5d2zuJmi0p?ze6DCjUAO6@m_qheny;Z;zmMy+^)7(1EEu#MiYfv&r%X%ZsOc=*-5lYTpU-X;u40HI+q}Hkx#}H+Z4dKPs=;5r@IAa zNJ-?vZLQ@yFW16(d$EZ~&_!GOwz%+;3-4Z5KdVSy{KXynv7MS#L1U2W61<0 z0&%hIUF?B+XyPB8y4;5y53SA}m1VyDot&8z6qLK);lI5av4#+HQ4vm;lG)J8= z)pgK{MbY9>FVR)Qsc|d9AR+-6P!t06)Jg~3XX9h!Cl?8G zx!ujQpL==yYJGG_Abq^#EeAp!dH7g_i7yocKT1pCADW*5jwq+O18>iu7K`-~kyR^| zsPX+Gra#D-ef*GhoNS$r=B6J==!B-rijpXX*kobuwv&As*TUGb{hk?-iGBHY5QB@+ z9S>KWZVH993{opJGai#nWY%QhZI716brSeLe`w&$AR~XAWEd5HxG1Vr>sm)oIJ(9A zhsK4$CyMti_U(Dgi~%cYl?X7f%2Ag+rIIlshwrQJVBO0Cu|!3P(O^D;u5i3~3YLL@ z3Y6Rme#N*2Ks~@T#%RmyK{antQNQYAazEeNHlQ%&_AWM{MbElA4d-@h*?%Bp8irP$ zZDzyF$Z}e+{$%=aS#fcA^IOw)7>lc^465w(v#iqTnB+GK8c(+JQOL&DfE+4c7bS`- z1*Z~#63G`6W-7Ga|CEuwY)<>I^?4!xc^baqhVgEC z{pwmSR|U4F;9O<|R1l|I{nu?64-Qurnz)6>zQR_t?-4vNF6D}FOJOv|<2Vffqv9>^ znaEt;|6}VL!|PnTt(!Dy)HGU28ry7a+qT=-w%ORW+1R#i+qRQ$b?G zj?q%@eLWgDSdG9U`(HfWcTnPQ(Mt+!_V-lisy)07KTU6cT2g`x{uCm)_4ClP063r& zKAm4m6Jcw%WKA`0(5mqT@-xY5CuO^VEyO?HWu5>hr<*Lanyo->&^esD%%I_P-?yoV zr`sa{m!`%B;M{m6m9&JbnK~@#duwZFP(VQzAT&TWxQGcl&ab^N=q8Q5`(U0$Lj<;V zWP~PRIs&6!X%VKl&R~IPUnZhODRQ$2^s_A2G?@`u^SJv~Eu7J8A5|&f*IM@K0$zzZ z{32gQJHgw~`iBCn*tcm%&-0kPi3*A{>5k8;Pzn` zme{TJLa88p{~|*{(s(0tmuCxOJNYaOj49DcTaRMwPPli!nWP?f<%J^cODZurFFO{! zUKp1cI0T z%*OlJHX8n(##hV1$NShz5p#S1MG(LxcBsC8XI1pvovaL<{k&_ER*~;)wD((KW)gfW z0l`Vu66(5?(W6Y<(kE@w$dYCG;9dBG*)57fUg%%(Ool|J^YXoKg(E8X?o1I8@T>~; zaFIw+q-)SL8AQ8!4`>pRe$}{QFw6e(k(Hkx2*3^u@3Ufnq%8(tfO@S0l{hl;&TnlT$~dm~#o;tYJM>qjN1p(LPd2nTCYbGExy)w8l zzDln&Qqw3t)@r=V&KIv#f^lj1+wPguzWCK8H#S84DlFacq%X53UW@ed5@*-a>(^3^ z5j`~Ngm>K7R_S)m1P`s|&Rh41iYTP#G7gto->(uEq)OKilDu+#qRn=WF8iUz(@umSu8I*@%dVr*EM6MV3Bzv&XaKIfDV^y?-U3oo@Yp#^h? zsm+XMMit!WOVlC8YJFeiqm37Sw~F^cA8xKC%!<^XFAXG}|0vekwm)su0B3KBm`w-| z3F2L-46PNDk@>tJ-89P{J^MxImEoa@;&5hKC2OB>w~nBAy^AGsHWzJy>?VvG5&7Ik z?&H5mavvZ`5hqlW9rsV+CiBBgP{7$>I)$`v4UdxNry9PUcWen%!qBDEL~g9Np0dQZ zGEa)i4q%W2tFwS$hNB{Xua;yj1%WqBc2Lj~6(wWL&pam9Kic=p*LdDlU#fjW0DNe< zlVp!+2g%&`VaqIGn@)qDuL3G+BWdm>9>+14dTo~g?M+lOD7Qq_n*$SEoQ2}ksU5Ba zjyj9sDoQZHZ*huGMm^%TjTtR2kjlG1U+OWrCY@qT#QTz?$HjPi0H6CYeAsw-(!7?B z3tYqjHe8HPw=Maga=_Hp)7vcK?61b_80BO-kbp3jEQl~Ybws?8Ol5-ne5OnWhs+b{BOW5GF>Lb9s5#LjA0y9 zR}G4ngewtSgRsC%3#VnrysCot89AW+FFt-gGI}5ml`dcAbjh&N)IP;L8C)^$po5&< z>>|lz5huGiYlb3gu1%hGYUSP+Wm#3xcb9hSn0jHrKL>06E%lZFxJ+At-@cYzIl^h%;0O`bI2u$*neDq3;&WKd)Tv zDwB)iKN8b~k2>WH43u$2fTQE3>}-DxZ1?<*iTPh#O!%ZSf!iZD=Oc20ujnug`_M;s zD6S&HumsS^1{LF7bf^2F<~7TfV&YR#Y{Cm=qJSl9@J8e)ENDK1SUD*Ha6(`KK#S8C zAwqnAz7P&E9=+47yZ13EO3z|Lx1D{QX%wt3{DD9f#*{?!ZjQyt?n2 zAq?!O8SJk!%G$T5Zp-FK!-@teKK zZFV2{TVMNsKQ}_X>{$DtThXLjc*Id@sudH-ECBt@Af9aAW1OtqEdkDMCJE+Z5`>oO z4p=~M2Ql?+R9UzZa`0Cmxe*bFkY`kctiR{h>TEK_%f=089auX#uhuv>ZJ*K@JBt1! zvKKbzr&b|$YQ34L@Q#g3C&&4z)@kB5a`VPqC!;1p z>odQ~F`BZ`={v7j6L$zqoUzb8_L+5<;W zka4)s9}}Y<4DZ?Y@*D_asklq46Jk8dk+G57q8teH`rU3q0p@Ph;O{^M2*uRVCE83? z#h69;Wy>)z@!MgMLDxw0Xld+wx?{}sUq0!Iz=;EeXm!l{vU%Dne2dcgV6^m{{>0UK zv_Ip-<|vC#=8VWNfi~AezCi_i(be%8$b}WopH03Xo(yTpQ?7 z6$Rp(bkDztm}3UwGR+k8weEtsz{zPrCAh!MUr(EK#$n22P`+z?Azl5Psr zex{U4DnPJ@^p|!9$1NS)ft9Kt5e4|E`rkaC-@-TNiBT22jk_guJ8Dx8jofwDUMR&| zm26DsW9?ZaG*bO*Gch2T~veo@kx1CS_v`zVol-kkK@OZ|a zF|l0UN^$O^#!Zht`!iZJe&LI|voXOzP<-?-!1n@hE>Bd5P%78Ah0M@SC6EnAb2J(CHd6`f`Sq(q&}QqcyyNkzYu5?I z__Pa}93CkpL7xAQS@leLw0;W(Yn(yBy3EO*nf@pm^rLhT9RMpJ8C3<)4Bx^mSDYz-k()#Jz5dQ(PcI8>y zQ~3Sa1nm(trEG`=vxu&{N^ zS^DJ}DY$EgyHQU#H~J^gK!S}s7Yv0dac)<2Pn#XVx_VRFq>QJ9))`vnepQTXDcsQ% z1^d;R2G|}P&^DXw^>(OtNjbw-{(sexL0X`tevS9PgpF5|*Uj%c0T){1C_W_i=Q=xZ z^&>JWYzCDfE55I?RrDSAb_sMkc&Nxz}EtrxWp;l>WQ3c{ai` z%(Ec_YVoU?cb|Q$CjV)Tudc7UQ8P&Yq5;Wex+10AdPb-Wn*xwx&vXPANq@&!$FI@s zSJ<*3`#A9V-@QGljb}qWopX1E%N@4Q7UM~wAr@JwK;FA4?Yny4*~A4^blPBRVMXV1V8omN3C<1@SX)Uu6R?730#A`1^UADy2?AIoMr6}vXXe^=SPtQ!m6ua zTR>MHZ=Hyc0W)MLj>gOfP->(?Q%S2vw%aX>gS7mFg!l#W4u;or$0sto(b|ONA=d$* z<&lW#O50QUN7tWPWGeyG(3DkU#s3{smAW}!W|U7FW_a+X`{w!C14verD*>mN4&NLG zllm*6!uVdP4RzBZTi}n)m!n80;mz;`@qo>s9IJ_~oI$ZSw7$ZsCKxieKd9 zWtq!sPpR{o_PtR9NhxWf_i(MDEp(qsYw&hf1zSgqurZC}hOicfloF@4JTe@Rk--IJ zO%|GufTTGd=9|F+YDwFY*yenHJqFvFxjQc>?r%{ojbRI!M4fd$%Rl94|85+l7EXRs z`5s)rgIfnB&9bS|q zEef|CS*&vha8+Y4Zx}U!J;K5W%oxSi{J%1hB8SDC(H`r9;5jdoB$R=M67boQ&G(b7 zwkV{{8BFyNQs%!22{+6NdKwNbYM7Q<&B(E{_y|q6_sd11)2$AGNssgmd^Ks76da5X*!@OF zNLIp97_M!Nw%2A=-&vH{a?pQoPv!qe&AM(dmK<@7GF^dX46BA+c#q`zOnuj>)iB4q z_+Og-8-89H{$7r2cev(@Bf3~-!~|{eLfhrdkxTVvW*WDlU__YAJ<~0)#>Qw&u73Rl z!T%>t3WVv0G7`fx#=R`Vh|*Ah>2VD4>!nG}WK?VNfZ=?ewJB<`$sS?Pab#|K89^$^ zfrHxB;n77N!~Rrap{sKarSb{dW?1=^_cz?O^YkY?6k@Y-Ku39#1VZzHX;)ca1_WyI zwLRd>)|;uB%NPv}ga+!UH0`fsQHUXrsqe)j0##U!f@iWvkM!wKd;G0_3S~>T`p_^V zLrkk&O~zrn4~nJ=OA1QmRe5`ASUfjQr==yIdiVfuB-A_P@3{CtmM0e8Oj z!MfJzU?DkPf9u|{O`9L*rAA2fi*Y<<{8`D^DgWzL1QX!bw_gB2wdhEurr`78&v~v) zpRP1HEpqewULw@XknSI`y^PkX*jnlk*z-wJgQj>C6AP9Nje+c?#8=f2BLuZI3|CA8 zc&pzzEjFUq_Wy@U`Z3-oiraaD55ACi!%guE-Kc4kvwi!S@=|Dd!xJLg@rnFyUv4~$ zHqu%LJ;tD9DKVw{s9yGvT&-Rd%)i=-z!8Do9Vz`wQzhl+o589ROsih9Z<8rJ(|upE zYj%3bL%!^8=WMSjpl%pX`HW}XYEmKy`uqRpkb=YiRaH`cM>o9Y;#V zb~Redn`ZDjYe>{@e|OBoFLt6((jeyc_W#efYK$Nu9jS6#sh zORRi|1!lLmrD1ZcfGjew=Y+V6ABFJmb7%FAGo73Cb(GX+)(hyEDE1ox&@vTkXAnm; z@u@Km>}(tyv@i#RFh+5(h7C?#c|X%pXUY@w*_Q z+?7@HA}l=jVaO>^tuJSybyDKeh2U20z=^8V4^%|@l!_*~!Ub8c%cKwL!_;#ZYVu)} zn4igFbw9c|WYV+O!kSG_MHQwf3K*#d(8(;1(f1~DBG!=>q7{;RQpE8gip*V0Zz?UYX?EkUpYa_q z)biy>ul|6Re{13kFNNSTM4InU;?KHIh?zjM2J1iP_L*73e&P+S-$$F_v96T zDe_z76hw-@v8*NHa`{GTVqKAPly&+XY&`Y8hqHk=ZBeGzZn9RvwQBoHq)0awgxrUn zWg9RXP$}zPVa3{d+dJjeGeaHK&8@BJi*Q{fUL9~#&&9bgTR$XquGP$^9{r6S493z1 z+PJY1lm6Sot7A6c1St2(O2aRN1=GNVk9wYHiW_!Z<;*m!yKPRNB@{>(ybCASDfUoR5Xa}Ac&K0nK<*>9BRGqHkGDoPH-8^n#xy~ z_~JSq$S%}S@*?X2XP}z)xBAx3Z;H;faYA0gHlK`^?PKS#cjwya0Ca=`HW%8nI8gjn zq}gW0Mf0hd*~&BtoPKF0dkk4n8@g6W0ukj^2i_jtTK5x5_%k5$GAbC{_i zOL^>2n@r89r!3QmJE!w6%pF0j2$&5*T?|) zNAiziKSfjsyE)+lx zu>9pcIdyY{f+lD`4Cava$7beXeYX4+#TfwH&*zj>39WDp5o}8xEq`Hza|tphYzpvw z9wTfxc@+0hG*E=wE|2R@il>pv1PZg@zPhKK(81UwMQLj*P>6De{+Rek%HhaiE7s>h zt$Ql206-Bw#-BuN7LrVPvSu0#>(^5SRaJ|}wtO-_WHgRaQMZ#j-q=pi1`%5fv7bQu zlj%uT;#hc9U`s8u^peMv5^-WcxgqWb@kis(Sa>sw@txa}q6T`QU}5D+ zh*GN-jU)zRkX#I61Ln3tkQl3ly<*|Uh?c_B%gxb>Kg0QQ2EfH(2Su^@1EUH1ZDG9K z;kPs=&${u6vbMky%(Q(TK7OT7!Ise#;cdJfKjkVQ)S<%z@^l*V5s$z@h(Hl)kJg;@ z>a;X!)OEkj6bYAOGnkCPiou8WN++7^N6*z%Ye1H8D3xn<S~ z75^{wluUvUNG~b;#j(eg2T&LLs!Jt|;Wzm zWu^DXQJw`>aX;;7y=#Gru-FKc!FDBt(qwj342L9E-3dW4eHN^^;?>Caih>3|gO*3U zvQ-5Y#Zs~MBa;{_WOB-n&o!0^xP~=+J#$E8@o_$KrwQ>==>e<|qsbq9D@J^d5Pan- zel3P%`0|(`K=z@R3mgQj8M`8$&4GaL_@Vl2j0~g+P^O!#&;_NOl|ik!S%?#e@yXbqbo(Ch)?_v@Aax-PQT3Zq zu2Z7)ilawDjUV9^!F84ys6(?-4E-766xh%&FXCBY%B2lpr zJw82rpnoZUY_whvh=ORB#QLRI}0TDf&z)k`5=;2EY!+=rxEkI=DyS^I>{+6aq`$ z{}G9P+N9!(!iDDmMW}>^Jv*DUZ)+=>N)#_|NPKf!I}G*%RacNQow89=q#AnK(+&zQ zmfS;z5oY=m_!)WBcFxt2%nH|?v z)*I!M!7GM@0k%ZCeX!!1gn3HyfSP^*qLW2&jUPdmiIxt7P`w*BH1X3B;OcQdk{ORN zoFAQMY9(z!7H>oFg;sd1%Y+JE^Ym|eN^mBdM%7Oo=BKU$;>fhOHf5x{6c37op`1-Q zRKTG* zWXH9?nW!(2o5L^MuHJfb`bwP)>Eh!{V3Vx`26s0ke20pjKc;4mMPdD|g#NvN258+z zV2Hb2Ph@lWgDB3j+vPIw0o>Xz9ftF;)wV6a%=MmqE616^<)V**l!RavC|dd)MJOy? z0N4KL4HT6j1kRUXi`Rp92>p|FA zE_hoy*;%x96nWOqmU{X+&nsrsRZFr4C+sl0 zXT*dyp*l*Rh>5YhrX|}f!sN|&fv@@h)Vpd;=n|o%7+~1}JSy4?{T65CG#U5lpp<4L?yRcRwA3ah4e^$M0p# zm{flysE{8htSt(=xP?y_1N84nTM&!%4|HJrnv}*{@;<5htc zTDHn*#f6W3?Vy|MT;*ulDZM7d2s(FHxq#Oet)|+2a3(4^+PyN#trlNCi+pi#@X7~VPCEX-Bxz4)3S9K3t6J0 z2d4vC=fG+a0oV?|r$p|M6Cds&A1Hw99zN@a-7uOS!S;)2P{B!Njc(bIs&Q ziyqdyR$UJ(mDdVRUz(dm4QI0t5fusuEkR*VW27}xcKiC>;O9KOJ13(b^`xoQAzTC` zbmC+k9Dl5kj{eNUjrFkz{V?>wdjb)1c&OI;Hh3I}_)ZmciHy$UgRP63ug}zr+yj}u zplF>rlwjxP{rH+71ml6fR8P;vR5>w5GxO=siAX%u0d`nlL}Nys*`nEXsgXjbZrZ^e zo@bU+S&Gv7LIiGJX6$km?(FoL(XhmY4&e9W2SdO~awmGppa-$vzJ(osyW;lLyb{W^gp@uy?Xf+U8T+sbixz63LL^(Y5-wCi5 zfs~4-V3T=;*F!rAP^~Iy0Kk#Fp8Ed1JU=uRP@>BJmU?z8!-w5pCmak1j0JuDEd8o9 z{^UK%6;TY@`j`trMPGgiakZt|JhN+0y-msCc`%$6ElBv-gQ_QR(`|`~8O|@@E28F1 zw{6k6#A^Cmtkh|S`-=tT6EF@c$PiaJTn%lrO+%fkft}!)I}i?GGgE&2Sb985ApQF3 z%2Q7eL}l3u=rySy0~iGd2?PVw5gIc7?d%#RSD!%^_jA zQ0wC3m5TdzYXg?`S)!7koc<%2?(>fp;$igx812~>C9^BBi)9FVBF)5 zOhgb93_%fF2L`3LL|A#2nJFGAAaiAY!agU zfWA+QIzjdrIfSRN&)}(NWH2@^PPgcLpgZZgfYt;O&_Yl0NvP7f?=Ji7Gs?e#{{>X3 zYP0uQ3X7ncoC-HZ^669&uM)9jC>%`_WcS78~#+^^~(sq3fn@ zn7Q&_fok2m`IUkZO$K%T6zfa_tsfAyKT_S zS!$fRp@^TGhX)cP0!{sYS9ZWOf47lsk1GQMQhy)W&6j@N)%{d5ZK1r>;J5fXJB7^s zs5jq1>?J3S3GtYyn_RBLiK8tBPVT=&yZF{E-~z+j56Q>U-^(X_8L(mTK=^q96>ux{ z887UP7w`OJD$DSYyBS3S?)T4%H=X0{;tCFq-pM0jE7?CBlR~D#O;)_#9K^VQ+N@7P z4JOs$hu`L=SS@sXQ#(4o=6rVy<$Hkslt=zsy0kxifOg)CQI#3`5gOcE1_5#r#`X1E zk&B>e5nsCktzXPK{jh4{U!cMZ^F0)5Aq>TEsL8)se4H1T!MC4oa*ua!W`*iv%}b z)3Z~^VL)+ENWU~cSO9e_tKTLOeQ`tg&F0CYd#+==+c?ai2bUpDorK6KuVlgjSRZQT zL$1oKq7Qdy+!E$lt#n|b84UeEpyO>+cegIWBn8(5{i(-;D+cNJqwIM+R{bX8?bUAy zWMDgMUn{XMuocWcw`--9QyuE6|7V*^*25238W`3;HFh7sFp=QbG_ae_zo|9a)Sgyn z+u8Q*H_Ixg3qNA13AKElUT*qWd5qCNBEu8=w?5waw?1BI(WqbFc2`Y9OX!U%WxMMA zj*SX*#DqZ?XbNEa&b9oU-r5xYVi#9N!h9GSUUs;pB`jK>WsQUr-8$fGqk=Yo>R>|7 zbJ}EYZ!6KI8BdUhyAl}S`XIv%xj+n$n70uLT)EI*HD$AH!h)YEUjCJ5Kiv_1U(vLf zl7cy+(8D(Sb{!!OMb!cV``@Zy$WI_)@t*JWlCDmlob!HW)Lv`dszwzGZfi8%=YzQI z)ALcG`@JaNgqESTnlIWLm8xrjeNPr}O#+S@pCPkfQJ@~`P@}ad^;QKBT+AwQvYbj& zKW>J*f5(o4Iu=vS8XQ^TI>-%U6fSUf`1D(XF#BCOt1{WdgI>fxqhe)zh?t5%Uabya z5y>k1e~L;goZv?=&`AN@1Bwm#dadGjZdXT8gMP(z=XcNJJL1~AQI#qp)#xx(D@Xij zsLv6}67kHIGok}yJSu!vh;=+669yuVpp~LQxY2kupblythF3p`uOzVdBq>|zuiHL$ zf+0Z~z^yS4Mw^*dQ`Od;wcWl+&$hM}s;}0MHHyy`olBbSC{gXZjWxPk&X$j{zF%>_ zo8I6lzapVtmY>drJ3J1LpU&u`jx@mxYEQ~$%leeZUDPBo-E8ha=)!@)^LzmL&xdz1 zbm-CO#Qn=y;O@&~H5*gb(|k{pm@aO{%ZBB^)fo6;D};HM6c#d~My)6`40}mAq52a6 z59xulx?Bt^_{hNNCBJlzg1=WIv&&PL;A6-7YmUboBa;B5qXB9S*j3&93ZV1l!)GSxBiseeS7YF&ng-N-P17qv|%E*8;{q*FvF2O{|}&$xL*JHnBeec=e}pY zila%%!|J;7)1OV~U1@uHOfS27nr|gvE2_L#D4{7ti`B^|T{aVfvLRCAOcho~gm#%p zRM4jev28E2dkXa{koutL@AW9)wDll0o zEl}cBsu#m2o&uON`cQmKEafOg=ad(Wr0<55AXAZY$WOoa1mKPUwSS#?e6V~Kc-WYK zbKHVszP4^KTcm5;rm?U^AHzE0tMng5C&zyIC57>%_h?f2OL6QwPWIUUeKIeeSeh`Xr~i#{#-Qfhgc_Kc045IPMDw7#Lw9uo({MI+29*&`^VFH zmGG!Q=Dxq;M1AkKbA|{p6|8pK2wZ!Eu~~geko?sZJNG=MHot|^nyWTFR z<9(0#u~O1>_}*X?OO1Qkz=ZTGr7F3*|;rk?XO1z0l>k2;*0)NtxTpHV(C?j4DcHE&q>KIMIg(Zd0PymyYT#eUksY zV836rOi@tnm#x<;ocAMcQ>plqtkEIlRY~=^;c(_xvnJupL}UK2^D9Nf(xxiWsZ=Ip z(7LS5FZ5X0I=MRJOObqpC|~CTxw>rkhwg6>&(o{1wp`Pj+b_I0u1>7?o0Pd!N8i`% zcF7-4%~z+iB&ux6Z4uC2y{>|0SdL~cEIUCpnXU90?3v4dfKq4aBn0@d-_gp^Cb6g! zOlW`%_n4pYaX+P%2h_J8GAc3BxBGFqJO}>h?kg#~D?d?CdGAK#dX60EMR=9fEIw4= zauE7I(E|kRiU59S!2g@`I28_n>~O|rvgGNQ!Pb|4BE`+~GOJ!x*i^j56+PoMv=}f? zvEY`omU#1EVCKPA?k))hetNnJ=1Sd3 zvOUt27|}}vv$WgF{nl+$8y+jZ521g$oH>y_EL^5W<u9D5?jKgK~?X5!oLegJ-kIV0oNv2Ld0>`Ac*E>tajx6 zpZM`RlH>~T%-=mem}f*m;JC@m-+e1T5{6Eu8l^O~^n8sNHf{bDLdQ%$K^vBosVY3t z0v!@BaybM`)>-gX5(yVzhR#W1kSjJ^iH*_09DGwf#OsX_xWZ`1~z|J8G9Ao_Ni3iD=hFQ~YAX5fR51 z>mR`$1k8ly;vz?Sp#SY)oG87wbZK~EaN#^ykz)7z`72}8C4-Q6j21C~VOSZ!e5mHr zdll5TWNXt?3b_#ALzKp47kS8EJv9<*+r)EY<@Z)hjpZTKWewYq{VsKXer8vr%Nw4? zMe_08O8ap$sZl)77lx#+`7U_(>Q{Q%)Fk4;&B~>rS&KoIcDWN(U!emcbry;Qg71ThLl@ z^KyhAHCb>Lde%#lJO*Aj2B02iP;nw3m3ry%#(d_O9@ES?ej+E zyZ6_3k(Z6aMqYjV9&>fe$ojjx9%Z-LwE`2RyxRZ^t6LN@J4!PpC>G0PFf)E$EE7hK z4v|gdwXKf+Y3gt`=lX3?~I%KmJk2S1^7jwq4IqW)=c`vy^B9HS$U8Q@Z)JBxgG*S zAaf0r@%7*#4M!a@o!gd8Hi;r@1Gwo(@oLPmo$*Q0^3`OX=Q5kiy;!2?T5p zv2YRNuHEx4qI=wPF9Ok27)Sjn>#ni=DYvG+o@C9_2I6|g=tZ{^=ARFg*$Ao&KY-(L zAiX=mYs=5_n3voL{`AIdo{&gAG`yg-5%dOqc*eN6OBx&i|QG*Jw|7z-sev7^FFVfFeuNtbk{ZP zBEvH7{UAfFfCab58r|g0hm&+ZmTM^n=R;$6Q~BXmdc?UvTMjxISd>J}6I`Nv49}ZJ zH*+LqtMz(ve2NHNm7m$l?utJ_>7DH7^XzaN_EQ%S(p#T2chugdj5q^2bZzC*KzMME*>jIarNWA!xQ34G#2ZkqTL?0GSHe zsZQi$|i^q^jy0)3x5vS zh#|kzOJeL;Iu#soP(k31Kaal6rOu)pR6OO!Tv1S|tV}7KrT&{NNfTD75U(^ZThfO{ zxOSqJ_w)Cqqmxq@wjbmB4q}<6k{5jcNayeaO+2L1IBevePRAKRgZ*aIEXtIc1UD3OUEhDAw12EoXpng7f5McP;q<|UwOR;gxSU!e_6du}p&F<1Dqj)im z3Lc+0gJKyhWRZF!wR$Tka8>yV`LXjs zblT_TfTDij{B275pvmV+J032BDVC4M5C#TSw8BE(`86jXJuN0r6L_mmsRSO;DRn%` zB5*u}ptrX}QOqjbtECOk-h@iPj?Aq63HRY`$8Nt(DS$U4Y zvbAG!Q1xF9qGsa4KxbufpIT;ktSWzD6q-UvwK3rCbXSL8%;GGO0Zt|v!2{1~e?k<~ z;Hu+$@koM~u2BtR2d7mQ3B6Z-~MsPUOZypK0YspIG$qI z&Ig+Z#WaiJ1+mjbe3p;98Ij8Edg4`@DGjwrt2GmIc)elsNxfCcDu_~PYQVrg!vqU% z8qUK&QS;VBiN#I4xmZ0};D4JeFj@p^m?oUL(lc3V6KDJ#1`8&)!lV|AO)OHG4Lp^P zR|q=4T9ynM)E1JkRW0Pp?Tzm`G=%4EAd>b`FU~DE+RMTD@ZKnf@z*~h-Utj}CuRL9 zeC2YGJ@4!2W6};C{hG&Va-7XFyC;$QVzLswO1*3WoM!4HN-n59A~5JNvZDR2=F`;t zyP0HpAUcm`CWw(K2OsFiW5v7pktNNdlQUfOl4Y&~^+Etj<#YBQm$R=4A01?_eXKiJ z!8Q0gsbRq#Pjqu}H9vb(0*TpN9_#JusOfADJtkp+rcBy7SsM@!xC3%DS*8ED1|6lK zS)qroD~|2k{5F?eXi%fcmrv`n+D1p_g|v}rI8HI8YAZ#aQt0GN<*LwBRETCxSez38d@N|Wt5-BYd;R+Oh*x*p;77iNVnpD`PCryWAN$<%y_Uota|k# zwv8Nk1Bw$DNHai*{l0RSn!DOMvy^GYh+`FH9VgEBZcYO5T56_5%Yden+NB~H9SQoic zPS^)<*&nA6O>oev<`@IA(FUiObnSua(Ql! zJ#Ml?ab|TQmHWVNe64u{!6=ju@4fY2oYODScgr56vUH@&Z(zT<8?8Nkz8$UO$zGq- zetTKn)P`;2v<}OG(iutE%;JtC5=S9g%lNadpCZ!9hiIluH`iR@mIqeyOG3etX)NnQmd+Q9G;(DccxhBlkCz5NL*XsJPapyD zn$dLFslx3hSWRXg_OsGqllSQZ#6S(cFrT>K0N1gYkuqRvMI@Bu_<+;$aQ5c`Gp@IjVDDV;cz z3|S#43D+xEP2Q7$<(4Yq4FEKqyU|>7$`!uMD?et&`gPRBwJVp}>lb+|7?;YM#!bzs zr6o|-KcY?__?Tt`Y5Vj$M)yX~Y-aKi*>Gh4W1Er2-Q^gIXud5O`N5UkT zD2<4PNB8&378a9aZT(1HJ<`!H&+8BRkB1qLmwwMxf1dXeSRdogf$P3ks>h+iR(2AG z6cH@@+s?g*<}Zy#N_OweB4g(Y0qa+TsBr(E$75euk#PYd#@+Jf>fTeA-x1TX21l;( z>ux2E{~up(9T(O2eGe-#N{G}5Qc?yjN(o3y2m&MBq0-WzbPNJ2lF~?bqjU-e-3*;d zhoY2(!0+4v-+-U*^ZdihfIH{zvt#YG*EzU#q2jw%`QEIa!ZaMM{UU>Ps%OZUizz~p zVW5ZERqQo9=YgWtB}{TUc1wn`MeX5FmgCQA7b4s>C4F5s^5pOOb*%i0yh>_?{_O6D zd>H=iuBkm4rTJPwQk2W$Y7^$(@r^0A~$`o^?MdSir@6v))9YBOCEv--Y zu;yN1f*6rv4h_RU=e{H>+q$dC@nXCR*)E5zl0&p>4=+A9iLqg8d5)Eu@m+kUo=%H} zR@ipuT;BLTo(U_-UWIqD zMi^o1Fd4}UGPk)G)W0ie#2Pz2!P`X&<5XDaiS)PU?v*M_FW!AegiC;P?b@Srn73H1 z2FF)@FYk=a?oX`qd=S*(qupZvwTHhSH)1tuA61|D^F&b=9)q>6PxS9kSH7PO;J+$W z#(CF3JE=|e!+pU&0sVfVtuVuTr9tyv@(}vrFFCyeqzk2NfeB>*=;47K1ff0cR z6I#RN@sXrpZE2)y3+{1wxj0o@v~XX1D(SUA`qQ4$T)Gph$svn9?Uv z8gc`-rO4;A?L@d5n{6NbwjTHGMB$Q17bs9WbkT%ki_WU9I^rHOKtBvTGCQcAS2$j0 zU!>SbJof{4e=1i%CF0IZ(v6xYxAvp=?#fqj>x+PUVna8vdt|2DZe*u!!)2zmA_V#2 zfmUy~qW?JlDFyP5u+)}tKF%k1XxoeXEy7Dmn*2tLX(hxEH7_{b1L8thNt;>5G#!;m z%%7MrHk-yiWX5{-qqRwS6vlh~E@d$tMzME_NQ@>fkwGcQ_|t3zNpftPLm+|GFRLeXzhl}%b(aMRTKwe(_dl3ciee)uRKiQR4LoYZ0l z))^U}$(HANB7O$^VKK(~v!d!BfQC>|2RD_*tY3!~B=)X;R8zlJmwC}7r{}|)LH4TJ z>U-*2jyWsO3O9YNbu*rq{@Q&LCB*U7<|El#L-UuyvjMZme4{oM;~c&a^BL+Y?bd$r z7|Tgqd-EiI3s+m0!kb=E35+%^GZf;l#QDx)G{FGb)Ca$B(RNt}TS<`ZV=xC%+@0Vy zUulH_x-Nl~uRUt%1no%yDObsM*}EN^GQ zbDwh0V4osc8S^FfTUXvw0A;^8BTCE`&CjVwT@h#hID=7qYt(K2%#fiohqV2Qvd(P- zx)&__ZK2O?=xX9NqZ%Jlovt!$GxgnGP$dxfS?{m9_{o$tyy2xxU*8bZB99i=YJ2aK z@|`E;Ze%9khl<}9*h=4yyHXnHDn%0vGrsn}`H(&HF{kp-l==9_kS|0m+9bO=53@Q`BKItpNpLLs z5mq1C3Lou#QV_#bU}B%d+i7>Nq`R~FjS&yC{AN@)cd{B*E7|42U#M?|!|Tr^4BY!C zFP-jx)XI&6lH;x+MQp^H3(w#2x<6@Bvc~MZW>@3N|AmXGQJGJaiygN#A}j=`TN102 z+XPPa5$oEvot^J|q`k*Ae7Cd5y|25Q4)9XMfsxf~5|5DaQ8eWl4bj`t=D)Y9NZ7R4 z$FKbnIDlDEgq!Yr4X!Jt?$sTp^XF`B=Y8|WS(Y6?$wvq!uY2)%CF&K-J29g4X5O@N z^1*U*L4q?E;MHJ*ee8NbCgk*a1&2H0@pQJk>ut#!rd}H`q8ts@M0K7{mkX+UJRdkw zE+nS`Ce@V0*|@0?fStGZ<}T+uYVA(8L71>dF2+*L|jfa ztt5GC9SgnrDXCFLSp3sG2h{h4-ip0oGTEGb>4ZDHysfAp$CY&JUoDC6E~g|Xi{%Zz z*QX1JBOg^QdF!;0Y5fPaQ?uBwd)1F*9?muG*=RTpdPV-$#(JZz@n z2`&s^kqH$6yaHNBf*xPPDqO^$x7hb_VM4?E^*{H{?0?Z`k#1khU_02$F&r)O)7SEi z9p9R9_6D{{soKtHoM(F(XnjvTslg!I{YxP(>EprosqJPJB@0ST57bPhmD%c_C<@Et zDW+Rc>{rpmaGQq)z@Ca2jY#Nony=dTo4<51WR*!JOv9`!3>(HAy5?Z-7^#*_I);eR zoxr>J!tJI+{>KWlD{5sKUEo-{AT|NcHYysGdJp3PLxwIw#`l86hq!dXxq%eA)E`A} z67~L&>8QOE#c_%yTv$sqQGb5L-WYBieJYU#{HjYA$QsKI9Ub1|e;S;zVXM98GFT6+ z5kZ)td?|#*Ax1s2`ElNc;+&jNnvA3AgK&-VzNAUHaDyyqoB0-hVp)ayDWllMIYXzf zeH%^JlZ|3>9rx<06C+JLaSbob%CN;u?pLL>b~(N02qgEf7%dX9Yz=LAFsP&)=xWco z@Km4cYLqLTx#At|_@|>4%x^ebS?q7jHIB+r^;UiUdfTARL}$ad5I^{P$NXyC`0kk4 z`^8DIA^lb_c$3adXPuyZd>EFn2c2 z+tMb$GSc+;a+j~)768dTO?%RHq51=X;Lk4~g-(NASv?P7u3vsByX-iG_NxfpXub-+d4PK(!vj>-Pp;WeNBH{(DdE_-8EukwXp<{oZ$z&Oc7JS zthR0je^R(a@u)}-#iS_s)&5nd-a5IqU{YlCMiR{+5uh`V5?`X;?^jZntB?e za&&O>%S3UQRr&LMV=^lg2eyxm1Q&Z4D7msR!aDlVJ(2*$Xld&=+v_EJhOat}HGa&c zn!(sK+4v%MK0mSS7212GiLtSIh)fajm1pf&mGtV3>c{^K?tI!`?~f-c{D$q<B36CAc|^gjaA3|(sg`p( zHS7lOry1>ZV20pA%&+<8c=6kHJmr6y%<>b)PD1#L7{B?kE|E2nup_@CZiQv0EWDH^1xZ{7w6;aGV$!c^ zU+>TC9ip-}ACZtyNn_1W8`Q>D4acroJ5v)E>+y*GNDc%3#EtPFNQI&Khvqno-_Vfx zh2Sh#h%+!TkyVajxbFj6HI5MnxIi1m%muCapM-?A9SW8yvU1r`GYYDz+{C|SiF7&!DRqFQa-+c30qh_t;*Sum!OQF2rLq`t>9z|pq?yMb-rwqPrITxYPUe#kk zC3_sCpA%(i#LnxPX=N5Qnt@!}0gB_!N=~C^XtPtiKgqSik?-a`78?6|<^AcaHn+ta zFc|a3bIvt72vA}T6xW041lQSVE1=)#N?7aiQ{c<0OL&&wY<1fITm+l{epCki8x80F z5ynh{L_KM80_kIUOYDDGXDOD(^DY#wJW_I1sI$c|RbifxUGYV@ zghX>`*{w}lPJf$bsx%m`o!tZzHpXh9#;BvTeC30XHHgUqj7xOQ+0?sOt@O3makW1? zd%9L`f7*3^)*ea6?eu=>+Y-->RssLO@0<1}{xhcWyXzn43CSp8C|P5!jB`qIdYavP z=Cs-LsfS}I(_}i;JuYro0>%+Td1s~S^;>HHeg2__6!kaODu0s8p3hW;sTydm3iSNh z^5!5PsTX>!!%-T$Yc#`enrb}Tt{ZAg+R)q;Ci^>j`~2J82q$8@=*^rd%Ed3l&&pgb z2AUE2I(mK@y``8gt!2K`!oTo)+x?eaQ;Fm|6V(loLrcYDep`mqm44XipKezEWgB=w z*EU*Gaf>fS(T60z3(c~~04lN|#SG^Hpe0yikdL+)2^Q`fPWoOjSUWS<&E4gEX8E)~a%Sj3V-kFP1enjf!4pDq8zE1$+u`+=tWkP0(5s&sL|%@5nY?Z~3OE z*dIbuYWQxoEAy8I_q{2ZyT}r}X1BvEN8n28 zxZcLo$nW;<`X2J4>&qsF*KSQXeHQR}t=8YkuetS2{bU&;htd-D+_3Jd*3%mq{Q3Ou ziE0LcRDmcUAyzkYuKd*kbR=$e&1@RNc+3k&bJUpx67|A0{NB?|uz~BmDrqI9%4-EG z?NjvNIC9HB66F}l;^Mj4Et0NXdtI@*p_vqnEa8w(d+YrTkV1OM_O6?ZQN;$VmZv1> z+1K%&Zd74w8SzSmkrgy4=-zgfixbi}G>CJ0+d`diYulEH_Okd+!P(L-r}A+7TMZPw zyMdQE6nTc-KS#f(blgjM9rN{bgi5BuTysZy+)Rl1b&SWp+mWWB_j!{dc0KRkoD8nq zXt25&JM?w(eVL%6X1Ua}%nm!^h?c!F_^(SQ!>WI3UNq2GR)2f+nLfmk*26;{W9IkW zX^tXsNe-9ozEUaY2h>R|D=mMTabGEnxI79s6B+Dbf&dqB{HHUo;rGo774p`wlxEh+ zglyDs9wp1ElKbZ<+bJvUHEXL?-9;L-#D4JPdH?5ai_qzG1d!kCE)t*`olo~y3XYw5 zP`8A;)PrEZ%qYbWx!ad=Hj|LyL+r@6Ad@p(x!K$Xi1Z$Dy=jwH2c&YP>U8Pr?|Wf| z?IcFmSRW{nxPH{PbFqn@oRj2mqmYwujc{Ykc*372V#JB;1xSX&-t?<Yvrb)*-lgZ7tG4~y*polaJr#^^HTpUUX*cCu6DpJvcdK~nXF~cu*?{2ST@fi8O--r5ZGtk zf2#tK!BoB3+Ubhdx(W+tq`j5RuBzqr6#o)U=mW{Tm}J@kOn5Wypj61I!n(WYrfY?Y5G^C!e|gxy)B0Z^!9+0ql(ZUA78mnTZcT(=~^-a^H5&Tj$OwZB9zj;$2TglVqfDC-4lqp`T?%TjSY=__p+ z!;uX?-hYgwyyGO={`SMfO!ifW2mNpxibV3}E!;<4YXfXl9cAK*@NC<<%pN6aeIw0z z+OQI9vU^(PVJ2zkcXM@JVyhPFS$`!n2dtYdSk~M!(;sBQR?!_qC0W@70xGI5M2?!T zaV_!k@AFwI=RDb=VXQCZhl1W3Jz~ELbIV?O<#`lk#t*if&x+`MFXm0k^*H4Ae^!pzG=F~k^#p!a+=SW8j*M&IA(}M0R0}H&_96i1>Idz$bi~zb)tYSwZ z3T$6un(?%jUUd)js0M?HjLh|)r|4ndzYcN)VuU@|PW>c#g|dfnxTWVQclXCuBE2+0 zcKW5{&irca{#|&Fk94sQt=>0S7_h0P>O1XNlANI6JIi{ zCyPY#7zwM?@H2R4R3#Jj)?TH-O9hyAXc6vEo{$l%qjHWEEZWQcOh%9q3-MF?M4Q_zc1k9FOBj}BFFEO!Q%qc zoa2Ap5~_TIV2`Kr(Ku=xHd#Bn>AuMFY-&rIMqD_CgZRjU6&}kb*!W$icza6?U;9lTRrAxXtSEvgOMo=St>>~N8jH4 zuSHYr$2kJwILzkpHZSJ9@Q)z|j#<3+=HXx)3a5B)UdnRCV5FkOX`nP;7s%PhTsCPbe}+w8iC1Yx*9zPC$>Z#4`J?>Y22h zM%8Qu&0{tW!G6A7Jd*Pp{-pfnP0FUZfgu&BXKUvJqDT?VryF7kbOZqb((`k{(cZ{k zRF`+z)l0OHSN)Qo6s*u)N*Ommce33GtA@)GIELlBjLv(&30M1P%CoH%#p?Q0Tsh6{ zhDg7RaGkn%Ogc>i!!X?P(Ay%%R;gxzr6yvP69AfDoI|l`4JWcS&rU0yK!88V{noyL zh1XCZISb2DsNOWw>hq?@mmk^I$LyiPPV=f0b;g;Av+Gk!KSp&jG*(hvOK z_?kJ4YF@!e@2kuycH1d)yXSO{cd(uJPglRxL_I(%TF!76-hRt}4pa+X#g$`rO942Jy5=}Zcmhks&TNl`O6LF9Qs%BEu-t0(Tu_j1NU9qM+wl; zI=_~fYtiEyjbKM1I=_k(`CPIlI%aYgQualxvo|V-ew!+M;KV-C7Wbe+L$AhQgkiA* z-%2HJC?>imffLP}Zr?nwoSjmj=XsBm{<$b8sXey<0~baF@sW?sYhyjW=MnghrI^H^ zn8?_aq0FgTPT4vr7^%YAAb0G&QNpz>zjA#UEowxTmq}W9yv?k%E_l|ufR|sz{`DJ+ z^S<7nMt$tI6}G~vq?qJwH@x&b!m`INF zmF#;%vrQC^hZ3-bj!Wcow!afBn9u?T23IW4R={Z*<~1=`DL}R^ zR#W_GK*0rf(MW%r?>4rbvi`{Vn5hZMsyxcOlt&z5;X{0Sq6zQ7d-|`>Ji*eEpsAow zekLpf$l}|#lH57t&%aT8DUqoAj-iem?~MI!?Pk-D&1G!Nc@;+ji1I2ikDzkicyn_q zF&QCgiRtjksV7uv$_7Ig50+mg@zE&0dpYRHX7e8WXiH?bX;Ixb!ypX1EVj~o#OhHLOU+mY}{ z!O*c6N5=?+Co!3HcX2)8r6Z`aRhw&o{2{>UrY4Yz^)UQFbeW&6Ze^N?#6DEduJpxl za;6yr4hjJ(gO82vEzD@P+H{?s7!M4T=0x1+?$K zk2-~6;EBk$Yx`nh^+kh`Mg1i%MjIh`_u@17Ktxl(>tC<#O8P<)Pj0U=VOi1D@GU7u zIg~C-=cRxUx6OV(ab*w)CtG!59(;R_(bwbKM*~0KXCB4 zL57`_jH$^zo-t1oQQa4?Gj?IG3-&TSX-kUmy7d&_#q=-(({m9sXo_7WZq~gQ?I3-Xj+EN4-LhINfJmkCI z`357m=2=mwbAWlK)(GZnW$Z*DtVT(&WhUt)<5R+pr95FE@!!6yYqegiFsFuC=CF3b zoB?{mx8pBZ(ccx#HgPb+6e1Jr(G13*K~#gjY$12xR`RjhCm+Bdx0Q+t=baATo# z0UlrhCCv)}(EYRD&ZECsq82D#=fi4f)9_QT(*|7y#{aMOWc2t-n^iuS-_2GY9K=4( zUCxknPWLAXceZvCK5loh|Dx`TqV>l_FE%h&$*IEx7r6ST$NAAgNP?8xN-nQ$4aFUp%VL2TgBcE#sX(Og}m z@_!Pwc@3z{BiLnf#np3>4JJ zN>bp215p9UeX^>L6v#o^snvyg0B~4y_xmMOt0wSp%b4(2%9tAmXgPDAx4JUM#OLEG z-(9!xVCNa5XMJ>V6u?&D7Z|Br?@oP#k;9Jfvne1nFoFDA+G^df?`K{xvu`FOxWv23 z3x~E&xEk}VXkDDnJjKHlz3L&KNjd~Rcw?swn^q<4k-|!$5uuS3gw=PF;EfB|fr5-S z`p+pYW-gGy&;IuzG%Xlm2==m>X+8t@;j4kC49g8eM=8+Q;x~jXs^`xsVL}^U4%*g6 zsk+cowl89OX<)Ef{n7dK;=Gt;|Gb!{Ryw}FmXA3mPR(3@jQiS?gFPI9m9f+Y2d;}O#P`T53^I#$c13FA{ZiCxQw$6sZ;YU&9 zs(gd^Y@B%awa3SClpz+TYR*OViV#BNn*SP0Q@&-UJgrXvRSB^z-F+nHu;J4!ZoG-z*&tj~D z<>kb)N}~IPj40qaZ4A6%)liFYm*asH>FGs8flrUG&*UQ_!Bv7}Ol|TI*8`OUx`O0%#X#3X@v-$D zI>C=%jvO4uy#C0_3}ZtgArUku6wPf-(X>__KlZHl3%*1nizyj1E(VH;toj-})Dl?~K>C)c-|Dd$S!^x4RYyn$Wb z_LR!J%MjTgAazV9XiA3|v8$GnF_R7WB0`Xnjjq-6Vvs^R&-_yz+IrWZu)K^1^95M$ z$8+Iu@JfX!jnH0cFfDoIAA79ANyQ7Jr%fR>HV^194WVNvy6BL3EDX}q8UMS45Z8!~ zcqKkqH@ju&r6rJ<- zDH9-+=Vj4>;ZF#PJy`8c|Ig|K#~u#qTHj+?5!;?5u?RxcKL4K=jROolzG;Oqh$Ak+ zlM^?RxxbH_Q72i^SHjG$5b-QJ#_xR?Koj#g=*N?tK>3doVj1bcka?_N4YmyHCd6S{ z{pCdzQ1y8iciEZp;t^uY@D(nwNQU!~_D^+POvG~G!Pf7j%fEPgd#EwXmhITb z-@1{|l6}v5y(OjKiT%u?D9i@H-N?eT>Cnj_VQz4eR6s z0cpmd#^;DKnbHr4_Rl(?2M;*Hn`K!J-~rrBLA{2nIev^g+-e|C*G;^=00ncc1e6rJA^EpCYVe%r47Qbc z?;Yp%5gN~;=SZ7hInO1jufv}pDs7=Mc`!NiT*8e!UtrLK$LDS=v%xHew*rBz58UbX z(7Mk8m*N;OhLfF!fa1A3PuqOJcxUI+?kCW|^gT|QFr;EE6P5%MkoF3M{`|xTA{@iy zVTAP2;|+1=$S1tpuM*{q4lIROxnVAWIQ%{`fF|KUCILW$2k1_Ua&MDi6oaId<4xBf zRqU}YRW}Swq5|sLB%-rQ6b~jQTBr2;B98A7jA8Tq#?}9_s3bib5qj3s6iox?G2U*B zM)uw+q=Jm+5%V9-8*;OZ>$Ed{CjvwP-t^4lHUcRz24g@-&?3LqQNIZNw*T#z5b_i_ zMpRTRZ9Tb8KpUhDs`*k0)m2Cac$lHmvam8h^&PEs_T;=zZ5m{sknr5sZW|#gvb=LV zpsYv%=SMQH)+nCMe^t^r9O6^`OfEo;9GZ^@ol6z=0a04|L)29O7+@`dF!SRGMjt)Q z?0wn{+0|3{HAZAz1{6fNLQE{3c^F1rrx$hgvYtYWg zK|zyeK5WnsxBK`!?>w_o4?cKxw<7xDNHH2bdf2DAEyLXx0x3Pd0mL}nhq5}fQ$)%n zSbgEc4$nJ%ofk-YO)m3poNhltmBQ_%_yn19YR-ao_=<=WjfZQd*ll1Pn%+^Xp`M& zZo~CtfmU9=&cF|?oC0j&2q)J?fNFvSgYZ4=0QxTxbiDg9LT=_voW`+G)}uvKZCo2= zo*-1g<$rn)x^g3!km8xjP}>K_b+z- z{CuBO1C+<-tht{(*DeTwfZH{eG=&6Q4xlrhb3CIcfXN1sS&EFq4LvHHu{3&^rnV%G zMPD!yH)-~5a(Zk>Y?nPOK7iWgNA7@G#{iYomChk1PdTdQis6^2f!p7~3z%5aHls63 z0;GcjRay+|u^dSKwzA+31st_Q;yJI!*P?4)jK7(fCM>DTGgVCJh41xS3hX9|?~htf z4@-=$^W=$`s@nA4-hQsxRO?NZkQ1%WLt)RpJnFj*ZLj}d=^50D`z6>ti+^EXMF+e457 zxIwDw1p&~6DCmZNty`X_OzOIGujs;m9|HJ?i=FwOVR*7QF_y3PB1kdDAiCJ8`t}_# zx*J}?DN0ApxU5N!0t+~MIMM7E@U>caLA34@zTa!@E5vIxvkxEyd04}?FmYN` zqzVjkE$UO}T~z+K9@Q;Of<|B}y}hBg*?rf&<;qzk517Eu&#o2T^5r9`N zpYu>UIzTEAqn4s?pS#@^uZLR!5kMVkH6;!b+VA_P{xg9K&KwPc ztGB|)rVV3J$tBWEzR<@JTR4HndB{9)-@g=`;4+{@;Aex`b;j(PN|@-wU@~ zGsa`Rh9I(L9-XreI9GOo+pySH2olO%PriP z;>AFAr{s1T%W@f<7rRJD+1tC<8geb7O4Rk%s;&Emg^9TdVRb;|l=4;`ipppwsy@g} zmn~5cCa_NMwGkK4w;4i}Yo86X2i*+ig!ap?iFIt1#8&6@E?YJ$=8ELD_hLmzSKp3s z70OX|R_&QBbYR;KcO5sK+IdsMwX?h_QR10Dn`GHl8sg$B{oefSjtXti$8EDU=dwKJ z+mkz%V|gkW`TbDa*8Ywk;&JkK&W1s4o5B?^2e9Y~hUTP6eJKop(-vm9{ee*PvDU=< z9^VB#EL%Sv%X_UE`uBWs#vFfBb&vHeDD8ao$)%&(##}?O=q(|i%e%DAmo2?Uhw*=3 zg8rAz0apd(FiHuD(r5y+4VvDNHlt-%Wl)PWsM1-}&!8RCezqK5qVXIFZrzb{^x#J! z5OJGE0=Sk!elw3r{|hy!a?wygPcXhN{StiMlos%^St^f(Sve0Sx@WR+A8>RnwmZwO zv`W=g0>aOXfdR}y^(4SUy(cH>0!J;A8vbydeJS`3?|7p+(X)x?; zvl~|2bb&bI!ckl0MM$6qpuTBr_VN#F2)dP&tGAKhgxBA_yeplwQg#t}tU*M_1vwie z&LRK($t#C(;OEA-=g`yTAc%h%9A}yvTd=H{K}DL<1GaUnz{C`R3N(5K}Klkk_-;ghIJxWjs zfL3ZiVmp?mZ2!%(&<0JQ%R&EZNHVlm?TiqDOv-xvHYZl|d%Of05&+qgUoB}W5*`v2 z;SgqbS)foTbKvgDga31;S?>aXVio70JS%+ms8??k=2yIn$pm`!dE7DF10w24VVYhn z0KM~K@qa2Bzu1lqqZ{#qG>YEaQYfg*otPlH@bSIF6K5=3Tn6GaL;x|+1H>StU{zXF zTwK2OWPr&#pxvYat8Ms4)bgv>Z*BOwouT4(>~&LAj|kW3F`v}O;Qu^yL6to`Af2Hr zfE?O{V2LxXqR>4}1_p3J!l&_m#Lp|aUMHSJGm#ByUOuZ#HMF_;Amvt@$}xG>R)H0- z61@}YgDLR1X80g&7Rayz1%mB0nomqsuxPA!LCRtWL?1AG$|E$n%n32S;3}JXP9h_b z1RwAuuFq45d3XUeqgpx_tWBy;(f4kEK$IN2^oi~O>>{*ei$+4Uqb;yOA{+BzHvWyJ z>yI*=nXNG}O|REdlspZmWK6{{!G(!&DE$0m66`fDoq6fY$&;7_RwOiVyK7UY&{kU~ z1(RTBE^rfP-F7LFk#NFOu&Cm~DJjN_1^BRMGMbt(nz`Ih!bBx!*B(U%BS|^oF5qk- zUc^b~_k^SGemJ=0Npa*o9J)#Ar}SYR&)>!fYw`spKyZk+zj&lHTj)-~vvhK$@lhGR zx665zi=;Tso8s8i`?Ff5xM5J=^S90bj0aY`R^gaQ3AwW0-~I}?a_S94pbM5#e8|)% zFAXP#Luv@zg#-*KE@avuAr4T=lDX0e4xNAjTIa!-f@T-Z|0Uc!z+eo@sGm01+_9a1RGkg=rHO zCT3=~tAho~I8?DcfrQ>jK82qz^NDaO=HK%ik06>L9dxNZP_8;rgoi*Yc7xhR=%PNm z8)RO(+Q=aXHh>XU&!#!Cfsr2v92F%N?dwJVVZbQ#`H4iVGy~|At#m#VT*cPNI4Eh zvjGCH;ZIz$ttBv*03wC%gQJIhpPoBbl+)#helTf#%L}?MM|2Y!zDYrx-wQu~bk&ch zKbj@kMh6tq>0JeH1=zaxR}THDEgJc3E*hC@p&V-tvAhfo)Db_Y^h+lTPa4fbm=CO> zXOJxv%G1Jn(a;zvmmaoriBT$0ltvM}Zj>n-ju|~jX9aR*I4Vqu$(WyvsJlhHJm(%K zaVtNfKIZhm{XL7&MDamH^$g{NLcaG?76PkX2rHnBaa|-vHCO_N`7j(YlqqZ~Ru}vR z5W22I$5?H&lS+c`q1FuJgSK%Dz-*`f6eTQAUa;JGnlaoIn{9+Len&i^<95vd@4OIpc1WRMJBnOga3g6Q15b(xDs?@J%^x& z&0j>1a3j%mP74(9pghpFREX8N_aS~J{Wcdq5lp8%M}W;{@|rT)LA(cvL$F^4I#t{H zFk5lv4&X0l%GYfbexuNzcBjc!ml8E{FNI0Kq}YKh<1W@Bnsr`R=d>) z4wyu^L3giQd*qvQIE4bme}bwaO)p#1epXEp5y1-QT{921y-^2O2QGyME=)`uR7$C)g?AwBsOaxtcv# zfbhXlx@H4Cl+-L}{BwJJ$v1y`8;Qp`f8OCvK%Q_k;U9pWtwTuSTma4Zvt4f-2(QRO zqj$i@-^;BxAuKq&itRPl0BGlyqmfDUFd3r&nXirbx9INOMCYlaa+n3oofG{E?;w3$ zKZ>C1kBoIztqs90{PdB%Uw=WJSn4}^Z0gNHC-2T-mJ&(|WrL&IswW8An62lV=t-3) z9DOea5S5GIDqw<3Si$84s}C2?M0vIaXam{!M`y^Sj_MCX28JfU6G;zcT`LLlS2!vB$ThqSq#GUJSr5dK%E=s)nkhMC0-*Zg8(I{jmO2Bk^w+o_j_#1P#Q0s6OTx6PdWHkmsSa0*vY1)3Y_I%D>2Eu1Qsyy z<}gzU+QSw?h`~<2<+O{-F1J*5chFmwyPEM|rUF;F%}DTctR-4AIDGIyKKei3?AS=M zH!>8RQdN&=k@eDN2o7pkmi#@J90B`gZ(&n#p{X!}G$`WJI58P-lwV0g$VsQS0B>g7 zgHnP6muq}~FhpkI5isb0ZlRE)5R~tg1Jaeu1aMs?6K$eiT*VdpV^rlS&pXfo!R?=O z&@g(nQ#=E@)Gg@jLBax3TL1=po~E3~QUW2UmJ1&?P@ySKOqlVUxfti5@%hiEe_;eZ{h2R)WKbhjra3e;G-6t%pAF~Zo4q4p{IOQ@Lr!ACaOTOQfS?N& zKQezOy!eVZWd16WV>-UY3!>9i5U-qfFS9fCKVF$y6?87-s8Rc8k3>Zj$3g<&ETPhz zm!ZS}GTz}Aj~gIY)f8P>hjQ*w7sG)G;;2@PCK)3$UQp>%^G`xhc^o9X8M*)aN%S*n zTlv{we=nGk+0WV@zA<^&w+NsiCc1B#;HF{(WTw9fLpxH~A2VxTMI)Km23#G)swd<+ zM+K&R*_zhb;8xtXG%njQbh900v3~zkeChT06@n1#0_IZC0N#@lDh1$VCOEftfe%}G z4H{r)&!pTc#C}W*#zKF>;q9?$r~j!-E`TXpOTC&2(E=020P^>@$xIVO(t;Y94r=5s zpqHfTjHpQ*fAKC4Bad;DkhRJonoU+w@d5BhpiMcL(HWM{Gdjxw*S8(|>6o=~sG%%w z?tS)K;Zif8kNW1thDS28Vg=XACB=1aFFa-2IGHdBqyhnxdU%65y8s^G2fNrj0DzrxSdS@8hDssE2<9TL20>9mZ{U}2&ZO6aMH6HrsL zR_Tl2|BE^}#At{UC%g%<mCNwRBbRane^`EeT@(Ue3K{t;(irMOoU!W?ADS-Fq6~mwO%sD)c9*WBLfr+&1ZQ$n4{PhinhG5#!sK>%TOCTP<&- zK4l8>Mj)ht7Uk&&DXBN;!gv%$|GXUNjx{5C|LtHLyp%tDl%yCcqHSE}x89wWoH zip!K>8z#6NzW)=$$!jLr0qg~G7|1DT&OlE3SFz@EzKBEoZUS8`MR?5wSd^$p7lJ)n z(9Q+5v+*w+WP>VWS1X$RZ>;dpWEjX!1oI`sYJ9|=3rLtV+10k{nmdRC$}7qoO?hnv zCZ56kluk`h&VFmZ{PJisYo36te1zq{>?g& zW(gdcxCd?MB1qQimLko8!nZ&LeXR2&R>YI#K6RGNr3Hq%Ss;?Q?e!7J5>5n*o)2({ z*kcX>kbq%=H(0>miv54HFRRp_au^+cin0lwv>1k*ilV zMj}!W%2}CQnJqbodR{1Jl?5ZgB`l<`Q+=0-W2HjF|6z3+D?lLkX$Gx8?NvEijRXz_ zQ`3W3lg~&I0;}39y2@4l8VYlXJjP4D$glLeKz&?v^<>o*?mKq6Pu4`mV$2HXFtb3rmoxT? zm4hiLY+g*PS}*iEC!A6s{(;GHjWPrQ*pJ1_+7-z2{{PSzMO9kDiubt>S8ev}_-Mh! zw10638chhV0~7RWzC*vRaL);`hOC)@+-qSQFq3F%8=!xL5rqZwH_6y{pR1&s)oF}m z|8g9fg9tb%>S%`rk@sH)ONauFPYgcB?(8ybNvv+PyRUC%rVtIoviW_mVSzwIv7%=` zT=?(WoQ~Oi-ds)E2P}E>;2f!I2E=ttiGmJ^wC(M(^bfSYzEY7eYxzeiduZhk3o8cW z==lLfg>FQ_cF0VndFIh*9D4JhznA=?b5Z2q%Q{|w!*bWb(P80@pwzyk92E%9f|90J zZuoUD;%;jN(p%U)N$earm5nyv-!G39kCb(VgL9!!!fcE?NMTD{x39KW12_Cp>9K!m z5C^6U_ztRl3UBh0#8nL_u-juFQTX6ze~LnsEm}cUJ$F`#P7;`p*L0~$g-a$e;k8Z> zAZVwHGc!)c;zS^TS3>6ZWT6lY1WqPkp_S!R%L17mcNz9$aFqH7bqTmF`&W;zoDb4) z0WlUg_Dt?%Y21URO2Z{6wER@+kf#rH!ccDVJC!M>qrum(Ui24BPoepLqxFVP7IrYB zS|~M=IgtlXdD@p9VvLEc$MVy5>G%aU$!c9+M zsDtomb;4C}gOV~Sc%^bob^7E7#YpjPXaGI7w9v=PfwGm&FmCUpF9vvl>J3518REpY4OCslyV2V9%< z&Uaoc8)-<7sQ}GyLwpi0trIsYFc^o!Lwh>>C|xt$Xej@w(FuFNht_#!4h~+lgTJ&t zr#$6(AEIlr${BL}g=a+TR@22VxV5BZE&VeA3?czopr{CQ8lCJS#SX({o8&kc{tKx_ zK}xzx_5NA^XeCgkpqu~dFKdZ5)^|UqU$)}E@h?fqc`&I&lavD^^^<7ZyZx>654Su2 ztdW>5cnPmFzQiw1y-*Hs?3Sv_@T_kD%{%k(D*$veB@R6@i&C0ANXSTx^LH3XR7OAg+f{jo~z&&pr29&fw1zxwC= z=aAHWUgzZw%YCEzS$=0ruWP~{r%q#FViC{?Cs1I3X*#Nl0sN)Y+EXDhAq+_cjtBRP zpUxB`%{IM%gTPpm;r1QXpJN@_bca85@Y6-=3C0YOsbR=M6)f6N@)mIfD7U9i(hFi+G=L9h?I%Wg}?UD&2MS^)SV6&x&>raE^lSeEcO=5wTL zcG<5DZE#TLH(96GujROyri~>Ao3x1%yR?aB8_^a4MfPIu*BHNbDQ;d0H5=|lzsTP= zLc{~oL(rL(7<@);BZh%!oqY*D)!-m5Hm5jvWT^C9!)MI@$JcuYQrW-pvg@)!({p})#wiUY!5+6`bxUusiew1h6=I<_?=r%cmYl*b*kCV`jfkbYC=*o ze3C^tHeS=VOW)|u!;{+vCt`taDniCMF;L=1ZJ>EC8Qw!DKrUKGnbPtMVj95l)w zBrT*!+k2m{Ce0-gw)UgB)pJchCT!DtOee72&cBA;=HyYsFGybw- zP@eQuE&>PWhwR2F!@&fGX?W-`N%?)9zug+y_A0r4PmCj*sHR|RbQ9XA4 zTS23t&@}uXGb`y+a*(Ioa(Mh0o)S*O!-TO`i;faQ%ZTmW{f-IV#rS!4ySG5Wd0U~_ zxVVZxiF)i>2|B`~Y}YA%3?-;=u;tp^X}BX!`ovvFRY;_L8xzkB(uVhV1&e3Ck3U_{ z)l6v?`_h-g1s|-h{J3|J%+V^md}bu?=<~2k9$=$z!drnYbV7{IUGu z^tx3LWogAgjmb#AwQv?}&X{}`+Ev@y`*6ym=VXkymzcC0i})*H6W{LBX(;b6aMwG2 zO|{}JqVNqB_QhhMQB>tenx(yYMcnI zMLc$VSSd4RSV>3gQ;f5D^=&R9pi155OQHt0Tnj=&u-GvE&lynjw9^10tf^qC37=w1yzg{gwLw z{r<=p85#?3csQkYZP|I06$N^-_?ovE&0;dYxHS{vBI|MBF7`2KZQr;!2xlAWEe3Jp zMtS=S*OEE$%wVi$XQDZu(f&?%;A+mDthHbK5x01Nb;xO+;r8`KeE+Rh{gIhybAyT+ zhRX9iQZK@dbqXsSer-Lahy?CUbjN{k-mKDBUS0sE7+iZR}sYY#o#>i7}KBYiYVMm`XZh7w_XOK_Vw7nz}&qD5l zbK=hwKlu6OEVTo;_nkJnM!Cr+3j) zqEpk(+x|LJ?D8;H8y+~N5v9hHCE?>0Dx7*g#WVHm{bsQHo42Q@+z;Vqe7(TWmTn$r z-*^P_1704)wRj`84F1s!inw1c^@BwlUvwMdw{=Hjt5HKW94IqLyK<5+sJU zH0GV_U=0d)zOk44V8E`46Q=lbdHSw>!!o!$%)a!xb%vCK- zRZ*o%#n~Yd5kfn&ueqxw>Kpa3HTL`5_il)@%s)%9E$2Sz6CFszo0w|fgk-Tu#D_so zO>yy;KeEz1k+6UF#CLoGm77t0#ns6;=cBFFldE>~4AZ_|b_*A-?6kR{Pbz3?i?`sj zkG1Q}5gSy85R-Mu>}Hd7jOi%X<87Hp!Wo$8U*bXK_FnreC-V>jLeO(mF5?9YK zmBQhb91hoALSE_Inp;%U4|RPM?U8^-G#kpfv!9Mik2aN770I1#3i)3B=%~6d2Z{Fn zhuZ;Bm*v84ql55UTrjBOH4E9oVX!3KeAi=5zpU9`XFMvOF?ptgiDmGXCyBkFZX+-f z$9h#8a&R#%+>z)G>1Mwf`(MnCp6XCe7IzVNJJ1yo*w?fEBy613@sTO2KvIxC?r#&{aW4A6@#0s>pi>*y)!8 zcww-w!hzO`AB_L1@KLpBJJ{1LBcAs%YEO>rWLnp@IGkp zpbwrB`K|L|+^y)2QeOHNPBW3xU1_I)j;35%TYq`orownHPM#^2rFZLGxnIUEAYrSE zgzF8%$GU?$7KYN*kY909An5{56#9{Ve`6DrTF2q|_xSosP7uqHS+(L*24Ame$nCeg zNjTx&61MResI%~K656UJ6y#}= z^lBw?<5#ZujS3vKX4?8zTa(x>w91PKX;dpU`25>|lj9gvVw=4EpDSOY-3L@R&jK%D zMaQ!b6KiDVSgFtZJLA@%FuYe2pC%uDn!ANTMN+#QBQ<6wYtDVI%lHeg=}2B?b9H6M zv9ATsze|y-49^NGcDix>5TdCRL{r1cOl3V4GvAn{WfgWOxXM-mh|n?p^VjJxY_3vqn$8%`fTJf;`yA<8P+K4s+1dJ9 zUHI*k4#=gsmc>~EjwvVT7U`SsYR%Q0`u5u^uW4)cg_bkLej^X1R_f(nR9@Wj79Q{x zi?C2N2@uaI}Ft{G=k}jQsrZH5{1B- zIb7#PzD3-T4Hxe7-r_I%oJ4FJVD)-XYRu}Vkjfw*qVi1A-yJQtx9wG`;l{H2 zwl@tc)i83qP6XXITU^xSGuzUcI3dAvtut}r@(Mz1pm8m^=VrO6bR33`E>^jh7zpOo zieog#zK8|MIVWgCoe;mJPKbm5Gn_B37B9phZ$`1#`wha_yXF6OHU zeV!mCZ#xz)sUSJZt~5o^*25$Hhv2shLYiFkhUPJ*?QwzQnVRq){(I98Unm7F(#@h* zUh|q7!Y3TZPDXc3d>`3TtG?GIX+`o&>!gu~aY8s~NfDK>Dm?!cAK8ET9V_*i?=Y5z z^3Mx&4h^O)s&cCvbAk3lKg0kPnYu3#%qcTQax4NVv-IcWDRZZr{k}eAZkf!skBu5u zT0Cm=_{FA{aW5%0YtfgwCbM8x_hGKsOFi?+Sc779+ee>Ek)7#J}eg3&Brc+XPg`> znhpxrqbAo;a8Dzt=l+Mg4CZ^;nwUj#XTT|5+_HRx9fn`7R_%Q!c$~);?$=Q~i@oJZ z`tj7v!LaXP_;dtnkZmYBdZhVGb?+nN@A^f?1+NzNC?Qwk)S64EY6YH*9Pt+LuSgD2 zZT3?SW+|7-pgNoDdyUHN;N_LZTkdvS`^O91Bz}>jc>Mu<#xf&Go!c(*})RkMN^ij~eYx-wyKHL;r)?ST70& z#%4P?3l=o@z0dqO4>-z(MdNgK0XA}uD;#_d+YX|3kKFdPU2+?_QafK;$@s`W*vREB zX|1uwVUd`mSM)>_K!po}xEfu8k5gUbMI;*LD2p)y|0jGOwaOW^i2#%bqschz~jGM7x zf2}MK_Gk!S#kaLtv!a27eeHTo2c!ur-c%20ouh_V!%jy2(n7luJekVBE%P9g3GZ(J zCMMssE@n?r*)$eZnRFfAEM%f$Kn*V$)iV(f6GqC)CV!!Ts^H=AqR%E;Uo8xTIw+eb zPy;LTX#K+Two+f>zm1eD{oC?k;M4fOzk7zbdhTY%o;`MDX_yu)DZ$vq0E=WlVpoCh zJQnTScUZ`ES%kSHzr|~d#<+w?3Zu^HAH@H-o7e(M+(fCo zu&^c`h>&?aiAd4JQjt_cQZ%hYA!hr^W}@}7Q&KZ$Li}oZ zGtwZ1Gcqv$oG&AMc6pzB4pr@5k6;tg;0&s8A;}0)EB4n;9Il78aP8XMp#{@HJYuYp~63!s7(M+!xOMEbDw^C_=6uKOTXvkFNOgI5&?$_laR zc>M+aQ&AMrruux$jpcEiYKDi_HD9f1hCkt%@2*GC za7hWBp1uAN3l%!$F)iEE62k{yx4ND+3wL<5#qg_<(6Og>CfeX8`wduh#@>Y^uXTHl z&3-ysyouDzfuLyFfRS2L+=!3Y^?Fn1K?&#Y{rgDmq}DUzY^h47F zob*Rsk@t;K1e5dm4VU6UTr1?a!kRnaur#<|Hta6dQK_!UXJsDjc_@-;#hWctniP;WPfI8bdn2nx1h~P z^>KFWH4^G@-Mf(f%-G)UX2H$CN0*Lu7^_BIgYxh-Mbvybg*`Vtw3bvY)OOb{O<3q} zN*nppTPVfiTOLWo2z`d^yN?$O5t%%LiJ?K6ff)pl*IK>i*Oa9X^Y8EPzqQ?9wSIL9 zyq(0hKTkAPJ#t_3a?2LLgpBJD#5HKQ?_oMK5KWGqC&KhB5?^D7VVBJx8w!P>)rXe_ zjGKVtFaq%+kVzE^<@)FAa;%mB^Rh5wdDL@NWpg786)4j_p) zRPneuCgASSVX}SD&D_)!wZD1<6^=o(dy0HcZV{#rtGr-`bRHY8^+*G(TVB-(!7XqP zAmVeM9Q;bQj~D*91=Ty2H`}@k{H0j6223%6+Ys^kX^-`4vN~H@X63?{Kh1TK&VvDz^^Z4Siu!;EISHcs zjOT$X5x{OhY<3mV?LQs^y}L51Ek%&;WfCJDf-r4YDqf13-`;>h`=3Q`0TrU8K~fIC z^oghZ4;1*Hz0e{28TciCMQmLK4G$Z}8sK+bp}6>D&*3axOiy&j3Oy#4kTrFD%aJJ= zH;V(xq>oA9<560~h5}H~s$f0d-|^&^M8cV#2-p{V+3_3ZIZq1I;$C=Z>BXjyNF6GI zEAZjZ65iS%zqQqgGURc#!=PusF;{Y-1R;J|o%>{;9#XVsSmqcBn;6q~A|e&K802(2 zww{g;o~2#eM8v*miF$yD%*BsZ?aO@*gb&5yfvWV2pAg@!lF<^WMHM4x>gVI74__k| zxS>(pRq{ztrF|J@Bx3^rx-<#>M3JQ12;gGA^FiGSG>_Mam zSh$2|g%Kd*5hohtB?Szi8iaAkRoC3R*j6}J4u910gCk4)q3c`#1m*qxMGReM=S9`B zPn1ykrS&N33Adq;p7HRQA+aXcCXN)>gIDy2%h&yin91@kmEG-QtYYlbflU-O_Ez@s z^tV+f8)QhmW@>eYXu1U2v+&t0%N{BY9)jv0xWLhq8&Gd=>MDjZ!q#gX4p5fL=;`Q= zPvfn1;iMLiHC;lo<8i>>{D+mwOsJiZW*8StyV}aUKdl_)07w4yLd`Fje-)1Gjp_f4 zOiL;{C-`48V`7EtG-9;9%4%=?TSOXyecZNuYmV63SlGst@yzkM2M`fYYMgF5%IALA zHUP1Zv$9$u?ystK$=ULCACuN)*r;-n^j#iPkIY5vPa`UcF%6FO`ZRR{+Tdr3vv)$m zDbP&nC->)M*BlmiB$eAy6Zl`2_Vph`)OiAd8xiotf|kYt=@g8nYnxH1Rt%c1sDJ+3 zNN)Vyd#YPR6mPZanu_t(Xe{Utf7C zx<=e!oz3T~$DBnstQ`5_0>Bac|9$fe#0T# zHO$rF`?l2L{`;4B{((>S@sqTPpB(B%5do>KcQ76?kD|?P|7V*c2zCGP!agHfBxX&* zjgJ+V`Ep${ubnp}%9?d9^>=70eH{S*5Pg`hz*6$1dR0dvjI`cb^k z9W;`dH-v_Zh4wU5fA2C;^tX|8%@n6;8~CXB5eJ?F5fGY4O)xx0r%Gxu}bsv!pC*&=&Zah0-jsM!OW z@nGTStsmDP+(1^6Dpp4b-6M7*_2wY_?ZuZwqzonctYqa)i5Yoa{zV}Ww#>ZjS>WBM zL*5~h1J99^(XxHoZD)frV|v2%DEud7C>I_w4*4wPYgL2${|xJVLA)&b%&n^$gk$w= z$9X`)U(_Bo4#;>G-BE7N;o6aLp(ZBAJ6|9X8H8;ZKvXt3ThFhPHHgGIj;+l|UY{n@ zhiHD&sNCK;dwl}+T8IVOmd^r0g_nh3jFI2cV?4KD2j%I^NMrmn8o!wrgP~jceyr&& zV&Ie3vh^23bL%oY5lh0`Xhf4p;iem~f@c7=q*FMT{4z$dhNNM+bukgf_lF8t>Japn zTh6m3lGHYQh{z!ZZSLdcQ)zSpIYtEn*MPCzv|*xtZvZyogicei!wLC%HJVa4u2}jx zwtbODip5Blzj)`z(Nj_P?#f1!MW{9(#FuJ{Tvom^ z>*nbECQ8yyrYG8%q+-U4ffLtYtg}FO7I9z&;SP0{C}s3ta^-HrhJCo!+hUCotjf^1 zy{x7;)UytwlhzUmM5Qh_oOt(t&8l#qh#ic|!9+!ruGL)P(Yw;r!D4fs_K)2{8asr7 zGIcA|_0J$TGiJ}8STVFljREh)Bt>Gmy|KH0V4zq}^~-iIhpp_9!AaYB#`WAH};6kaG6%g9{dRYD5I^#@@6NMLrqYhKZabXqu6pT@4H_xp6s zR+vR(FKK7O`!JW-nfMcW( zd!FC`6y=%mPnucAgy9D2-2+=x6Lviz{FOTTn3R)uh?tyJA<3BmW zlcTqh#8NC2!JAdGfvycJBnzzSMy>!J%JqJS+&G995sU>IB_mgOLNfNSdhBmzf2EnC zQP)U1Mzin-s}g)ss{tl9waT?)aifA4loN1i_iZU3R`QGPxNyZpHGyoh-s_*CryfZ$ ztXKLI$;|e;tNqD{`fkp_kMQi&81agwuzn%qX-h!2|Gs2{jB>l~lp$B(X4P-hJs zS`mIkSQ#N5%WOk+6Ej7cdmm%7-^&sw;&|i{AM&o52!BL~et&(_;4YHk{CfOK7llFZ z6+J@_WpAb8!=HZE47FKu4fOVG*cbAHCX`zj|5tUG_;Wf4?uOkk&3j!Wg0*?v2!|GQ zEk{D`i{za%dSppb+;|F}qWa%Kb|U**qp>ojIcmxEK+G*M~p4c|6EIsE8RX&FqVP z!ZnP&%OXC_%EGb3_r4f~KY272NpOeY=L-_q>wqUlLKt1F5>#FrA;p)n1!?iMj@(QjPo+c`Q*s&Z0GTri-y-K1kx-{>V0W@ZG ze5}KZ@KaviLwakwiC285(@8__HdHTIa)ib=V)n*vhl-Vw$4iL%JxoV09?Xax*g#oc z4%##DqXS!5$1A(K7y55(IW2SYX7t)`Bie${K*@~NiO~x(Co<%!5+cQkC!v}4rqN*I zz0$?8rFkR{_vOo#3s z69u{(>mEiwyy-3{Jjs)%1xFwWG-*P3!l;Xojf3oU%Mur`@BqI3mR16&{&1g3j zkre!64yi)cGc8_-B>4~XWwe1wMdcIGVW7&ucxy(-q-K%FG{%%Yp)FO^NuFMoh>mG# z=ZCvWq*DfOnmLXO%7jouR(B$PNQ4`3*g~>*yOuvV39B^E4=eQssyGq^If{*|t-VS5 zIQZh0O#q&>K?P7HplU}+KSJoF(jJ*-_J`p>*()!*9)#PE$zBI=oW<8L;3)m8TS(Ogp2j}a9*wfMkgPqu&Aga5zLYGVxW|B6;p?e%&K zwfTgc`vN}ylDYPhL49irh(*2hUJK?3wqTHS*gcesTneM5<)y*h_Y$okl{{*|$LI=-q`tP+$dG zj9FRd#~$U7`rBQs7D=(C_5D4<@9fK2WtJvsP<0JPfdagh#osYura0(joz1?y(mJzs zCUX|%#}YBL3q)Kpc@y+~ZA{h#!Rn@N{#3?YEW2WH@gEtpfiKU{_J)eC}07)_7o10sv z(bzBaU)MeoV}+ji9=s9lhY=!e+YBgI0egQA?>Y)YpWkDse&ahhsdqg7lRUcQ|~! zOv3I*hLTn>cd^?b2W>k_1TC=jn^l#j!;dtTsC#!MZ<5OfXDCGt@}oHww8o|szqm_g zyglGTN;}8NL%Ltoyo#`9fGCCVLZQYu3)>MMdzc{}-18#F0|P*IT&wBBq*JLIk4Kvd zb7zsZ_INdtuv8`R!5HaDTuH*xNEL>2;4>VpqFy{B8rz^$3_0N24j_aI5gvcoYTb13 znP=a7$rF9#4*Vl_7YW3$*z5;ikbUeEB?)@~ca4OOa*auM6hx0_U4>0@#b_SAlLRAc zd!AFcT@V=m25K6~0z20zX#l6@N(=6(jMX{OvN-?e;lIt+|3JdqA4X9iIn7pntp%}m zjP01ezbuD43B3i2_MY%p_YhyX9}k0NHYgA5X>Wfc&NJ3sCgmpdwx7!liLO%*PLd$m zz=4y7Y~V0pnM;eS_VeoB4}?u&I;s|0QO`VDt;eKJa<^zz44a7qC~;c~-lDZOB-SoK zzIEsI($;R>O5pa#Rm@+2a?3WRLxkS#nqHTHq}0}7YEcD|9lYuzM^h1#jY4=l9mqz* z;)}Nm_KDX{=^w;)FhBu$Hn5t)-ZRFO?^1zPUkQQpvpL(Sn;hkq(kT(a(_+I-9V;=w z3o#?|LUyjUB95jzm=#y|XPl|ZngcaOy1l5{Sw(lFCvT(k(_N+NDM>m~92dwo^a7>( zY8gsg1UVbs(Npn}{%AJDO6)Cs?2UfQgE(XOW=Q(EdOuEAdqSfW-XIr$#f}K{uS@VN z1hoCZ?-q&nLbk$4zslo0@#-5}R=T0* zKZO3S)j{toFM}{%sR)iNgtxv6K#X-d^&)<9@1iSQ?*y?re&50o8eALP6$#(*OX#`M zXC)W(;O`b<=EVSrPRI0(iIs{tNYB!%K>+uf?A=cBV#^F^T)|ED*Wr5ip?P#jATP2ne`TYfiO$O#Hu3U@3i9#D(cE4Yz3Mkm;Q?8n0Vl_qRFcPjSjyS#N?b3+vFxqm;;#Ul?B|R%KqmD??;u`1d+K0AbiqGgDN`en20co2MQJK0x0cxnE) zQ1Nq7y3rkfnmN_o5+7W}bFZ5OqSq;eB%bWTA_)J`hyVZP^*{EZ*y9ipk4puot3*jg zoARA@9KwEiMwJ;SO4|a006&4ys{^K#-$fm{`6aJ;}-PNP<5c3R#Fe1k5@O;l5V71dRjQNK1 zB!@~KM`%rqzFr#gwBvm%Tq%RZ@_XIl7GOtZ$Z7d80y+vJG6%NMQ@%m2)k<9nSfPGi z&5#dYbh~{p<_(GDcAm@lX>K!o%jY(+dtHCd86=FZ?dCjP5F#QlG;1O!vQkvu%^X2J zriPgFX1BEHY23;^uYT3JrSbba3q($<&ytka;63NSh~Dxb#~|DFQ$SOQJ`Zk(alNuz zyg_r4>?LOhW$u2#WUCmGmg8oO=?C=;5q7)wvxy&{A&}#G>Om&UipAP*4S@Y-vA zpQD35v#uY+LRO)qXh958ZT=^Qt`T^rIp+I(&xb7wdAok{5hqea0({!9rt1hjUXB)o zwZ5REQdg=e10CtmD%o^_4ilSsdm*rTD5B;yEvb7S&;)`~$_U1S2(+I>h(UM%9ww89 zHeg6ol(IVp?UL$lq0br;L+E?tntZx&Z^)jle;>Em*L_@DW??6*Zne1Sap|D^n7Jq0 z_3YyNO7M-#!%8ZDCyt;fk>L5BIp@e;1VL$biY3y4iXkcXYdtHr-@;;`WdNkRNPZ@sr7OCu;7H4zn|z)bQnh85 zouLCF0>vGtt{9()I*58(P{C4b)OsMr4cEEK!WJ$pzMXt=oyc-7S>5CtC*e*6jLW2^ zhu-Vn*|G?^OHFZ;E8KVJOlJfLwC@?#L&vlr;o_Oa>XjU+1#|VVM{*7A`yva6E9?fQ z`h(1hn3}>{<6g{EI2qlozq zYGc#lj+AewUM7yf*8OAG`m!5wDl@rDwvfhxjY_>Vm|cq2bG|>cbL>-DP4*E&CYUcLW%I%Vi)L%R({i6qomLQ1nJ ztf4A>c+UbywRlmKZHby}S8%;0pOm+fk+l-w+WBRv{E}3N=U>A9cZ5V9S?OrgOVYqe z&;yL&_O_!Y*CG|yxc~}xaGlM58N&3Hx|nN$txV(Eug@Br(r23ZrS_zOC7ZQes;o8f%DjJv!F<+qYtPL*o?C;RVqB5T`4EXJ!sZF6t@@h zCeXA^s$3;IA-%_cE-^z#p5D1#VJW7qzVR+8?uqAt(EIj#v>2kn&)AhyWBpy+UCB0i zobpc1!JR+&EM7G3-%uvSqN zshl64d-a-m(hYW5QBDOIJsbnehFU+O|s!i8QhlZpA+1D!DcVo>j9+ zizd=)))r*aKzSOvqDMJkh&XEoENfmpR>=oUAW>843nKmuG_xK_UXkQ{DqUOfDtmoo za#d~7gcxpIuWvC#i4Iv*&GLIs7Z(MELh8tc|Cs!G(GjN#P0rOR-Yu2CYFCWr@0wj% z5*sgE84LWzSa}5{NI&+~>e3JUJ9kj|nk*$rccXW)m0>FmX#$HNbHeYx~RV^#o`I!>C5duCq7;7{yt~mIV(6WLufFmpuZ7+_aylv zl_D1BRsP||;PGbrnc|ouyJt+8M5WBqO}%?#5MtB1li=;Zc*`hmI)m}@2&JSASUaOk z3nq0JUI%&ZSGdEMR4`vXHyAo{->1%;kLrIla+$W*?c1lmj^5AAAD!(g6Pnl7QyhPq z`xI+NmKTKJ)32T*Fu$OT*4X}{p_@EXyjrs)#A!&QlgPsC+G44AA#%{Gxa0d;I=$zY zc%qn-FiRS`G1|EPh9$S6rBOcl!(-WP??R5~e9RMBnF(!U8=b2Pytz0tx=?V|D9Ps& zO&pRG(RD=96U7~QVA1H3_K5uF8>UM7$ci*D=lwVH*8m5 zApCVHzO>g_)ttO1xiXX5=-jxxY4Y+f@lWHC1na!+-ga(Di|=Vas8D8%V?AtQ@0-On zq5_-!PGZohb(8VTZJkx2K`tbd6|69V1ocPFAq1zH%K^-=RgzDAareT6xxIO9<6WjN z#eRWbO$;53WSxh`dskxj+>fb$sKsPRZRt4`*CkgtX``_8RlI%jhxEdmvj_+O3G)T> z#F*E_6_n9eUX4M*%CeIuXiXO8-@G0ZC$<)#Kt!#$0&wv~{X1O{(u*j_CaSO+f&yRK zSZo3{T5suwg(Y?7fa@|5Bl> zhm6N9`EUkjbGIXj7{gQiWPX<}VJH)f>6}MaE+xw{2JEK6wONNssYIXdT zSB?B$fa4r&Er~@N;lc&V>)IVQ9)}V!OWip+T2x*-UM4TdjN#vo2S?@z?U9?9tF?14;U93J&Fu7|=o(#` zlj(X&!d^-vkt4!B@uYPvtB6|3xf*FQ;BpjZGF-n4{P~$`U1yvxgP+Ne5(*Z{@_pyjXXpSb)G-x^>g-f)EV0!VJBUfX|VVHDe>%(@el~ zjx$B(9o)n2DzNOjA~`K9Z?Ygt$XiZlTDCWwFd!_fh_`2sc=8^RZ-6M%VTf~)Pl(?J z1S%J3c3(BY#jh|i;#-GCH3-yO=UFoxl71eqhBTcFU{e{k3u;5zE5GKZ5>3wZ z?ugKTw5v`*=V#hB-L|0t-Fz;O9$kX+(v&bEpm$bVjm(O=FX*lYpB$f~iJv~;o&GiS zYNgdPCfxKxgYP7*N$hF>YT;id+hMvBHH#7s9*lW5-`SxQ_!ZLUK{nZ$zRrRu29LZ8 zxA}##L_9j!mrh9YkJV(jFFLum$6|8d@}kIGke27%r$y0ghRFvdO(`c#2O6SgmVXwW4cd^1~w>SM)8yCgeK8$@T(xsyAv@`;$U+k@O9kPMB;UpV- z)8y2!+H)Bnocx~w&E(|dxa8uCAiskk7tv1*GgL>oy18!5Vl zX3XrW>}*Tp8xvM=S85@AGb>3v?q_GX5Ef>0P`{$==fgjGxWXyd=9Lag%Ys=d%YN^Z z5U^}vEg=tNF z%DGP(#*&5%Ql~sKrcz`QDGX=w{f(cL;rxS4Z+MoX$Gr(-?4_wLb-@4Y+z~6<19&%_?3|3p z#09s`uQIjYi*h@sIx17@N}@!lc2AmLo-fpudY+fBn?Lf{u6*YTkH=82N8cLANB@6*yaL`@#gDJd*y*_FpCcudF?nzvfs7CAe>Deu-d}-w}1&$3e8nKIg0Ex|JW^!j}yN~i{>b#rR!&%mSDDupk*T{6wO-1p4^aYucY>0WlHLZnqjh>G+Q|!df`;pjCpAUQr z(^ZL6uvkUDyJ4A<-Rx}XgEU&(8i&lU=GM6~J$0DkDV365eeGn7p}v1e;1Ek;KjnC8 z;finfoXgpQ)uF4TE}wtDHZ>j)!te6%B%n1TX8f$0kCBI zWOeWDVM5F?uzG=%ti$FjJT6bX3K{H{{+7>$vW(uZar@&B^5$+?sc2o94?msiJUv)& zxNT*{lfh=CY&0=JMx58;C2U5K&yh96-I%ri=uU~AtYYXaHsDm3Z>{^zB0(D9Z$NGP z>wfZe&?ncEQL`5c_X~Q9RXPb*vJ}RjuQ#;_CfgDrc;7s(qlNNBN{X;x+GHgD&$WQMkp|!%s7Lq9? z?#Nt&`&A}?iaMgK7@a-3TPNR2+1)q@{j{!O`e=aED-VK=tM${i)Y?U#9S_d~LU-18#-LqV=SUJO-YTedzr(16C!f#pPyzvDhP zURka+ULHE~NMk5htUBzNm|=7#$Ffbeky8!|L0;O$a~Du9-UvCyFP@DKJ@Xa>({7_j5XKPx-M?Y z%6=!(csfV&t4!PM;&@M_r-@wnd$W!vsB4Rkkh$G5-0?CvLn|s6E`t-)b{v44NJdV9$roOY{8#OFeT2a-=4H>%JW4 zoa_3bH`H*ug5HlH@j||RWh}IfQDHV(p>bxoecC^NnzyU|i*@^ZzTO5xO{nyf_`?Z;uDPR!iB zY&8*Kn@DUV?4Pps?cbSHQ>bcb@@I;8q1k%;v;tm0Mz+g>I+TVb+^2b`a(l;q{9Xp2 z7ckDcx|rh&C8cHMcP@kw3<@N*U$7Hv#6A@dJ_#$rXuX7C_W^_ug(Jtz{XKTvFw+`% zTbew-AH90dM3UyG;NHUD3Ab1Ta1s;(D?E2rLYzf=TzkHh|8`v-9&c7DH7&aIVnC~;?X+blSc-s&)MxVFl@=Z_CM33i6r-9U&bJ84ot_%kOQ z*~;X{cIT+FwKs@rF=@!g|6xGFVRt?IF%1qBZfr zZw`-gIl1XnSV?GsTR$e8qp|o@ben&4qJ4KH#@w#+XaC%n$4+13Y_j>6J)%3SuuP&R zZhcjfc|8u})w6_4(7v>dHahtCh9*JtthO!kVyGTd{=T;x7q1y=yiPekR^U!U!TtSl z3DVqe7B(pe;d-qv&XT>E%!P#u!FqSt=rtW2Y}?8HpfxgEludSFu2D5uf+lgq&aN#` zz&)wbAS|cDYwizwzLfkD`-*`Bs}%d|LgcE2ooKhG!=~pb`+ZRPRA{Q!{dRm*Xp^Pe zy4NtInPHb2ES*S+>PvEAAsxIJ`&eC`Hu0{qc&zpmJpEqYljzAJydE6S5%i%hc z@WNBeoOIg&8`S{*W*pq!LH?6>Y$?zu?uB!|$sW+*O6RkNGVe0Bgz0&_h?|<+MbUJQ zUsk`FM^}awmd98c+-g(?(`u0%w}9M)Xi(}Z)dpRMjBTuG0i_ZK-PIU(z8g}{pDD>J zB!%k$EeX7$+nA;bw#7+ooLvj0f$i(FXti~JP1zU~oL<0R}T5cda^Xac*V;jST4Lwc`91bL^3An#R& zT56b*zjKeSo^cufF%s|NGdJ4Mx-T+!dPK@@;KIVQrJF^vd>?0i*t8|bNDz7(3gp{X z+S&uzJ!^J;7(PKU7+(Poe}BG+yPGdPUE3eQLRpV#js0za{hOJoXL{*lmRnYxmZ8#^ zNgX+PHVTFNv#&U9-ze@a5%85Ck+~&MYUkfOEttd-cE-R5uB|Xlr}B=4=Jl6RnyCEJ zD8VwFQr9#Is?J^Z%0=9LNf&CRjCG=BqdS(wXl6YRwkH=0kgfy#5BC8^nA)c;{jhQ9 zh~}r0Lp&N0`u8{Z+*dU7wzCt^OjhVL;}vMDCZm(|Y_*>LNf>o?3{o#K>%2=I|5ffnG-_t{%AX1s9Dyn;(Td5aHE z0VV%;dlSns+|^xqbJwdncSQLc;37g47<60h&E0x3a=Tv9ao0IU)w_qWNXJHM-;YoA z92;nGSIwK;?#Zk$bGuMt!8>ChXZ2nbsldA$ZLz0%(T+7$S6m(G$zVPO_Y(9U7*`PhbCvDRejhac%5Cw<0}72Z%|PdW1ff~hbtZRcGvd$c5(M~ zrJ7{P$bUjA~qy4CAR zQ{i4NqAe$Nt@9Yq^$h%RdI9U!%aST#(#AdNNu;0*azO%8O0KfB4ELlr&{{k#x?Gf* z)!&=VzkO0c=D7}fWM%5HUB}puQ;{5el-o`A%kI(Ti&g*FJSH|CD7icy>Dlb$P7szX zKWBnS&-4f!sXQyk(woR$U(pm%@R#;{W=`C9R`dSwhIj?jI!@D<1-(=kT0#~ulqZzz zUv_h5{-IEhkYGmIg0M#`e0H(Dn^;B1xT+^IS{z)(<2qKC1cwV_4E*9CEb>Y^W zZisB##$vm?dD+MI_jh7C##job0*gyb9>$v&oVOPEX9eg7QbqEf`wfG!jy}Bc=_oza zd}@e*kJqfi#6`EE0hZ1J6*f5*T6uQ*UlUlz(uWrbv6-d0l7w=F#UAnYMfT8`SV<%b zYren=ns|TM7v{L@FUoxnI9HlznHWpGeRak1m`Ow?-O*cpGn#OcwF9&OT8ct8_Qda(`93iOsSx5`ZB|GL>1*`@ap=EW8} z@g*uup45v&Dle$?BB^+^l52ZkvoHPd?+W&qZI|Xx>6w3X2NF@*@u=^~x>jTOvOSn7 z*G2r2`PbUahjG1}u=4F)FMfzL_x`)bT(5+ay=x%LKNj%kLlM+fZa76&D&0vd)xtmG z$^NPygPh|%PRl1*jruQt;LvdsQ~ z&hl=N6nbJzP<6Dqi(CDxd4a8y+vWCQyIUTAhK_knFF$c;OV)L-W9jUbpR&1JB16db zlkO78aYZIReyD;cQz?D!EVtIKZ>+Fey&4;Cf(l8h9?8DOO!d#Y5QYTv)6qP5c1rU= zg_G7kdCG8UmYHrsgvS%<fWjqci-`C|{xGV<#fKG8uJ2zm^@ zWuINjc!;tCgYlGhUu61SeaM z$_D`bjyBC5h{+76a~|Ku$IYZ(#$ETYC}F0RVKQ!DF}lC>1{|rLTNgS`HTDr9K`*7jFouPLW9V>_$ z$3DaNW4ziQ&a{?&PpvMlb-S(4ea+N#%~hyQ$WD)ijPyus2~%SaNg7*N80w`vRc0gP zaizwFK8Fx(2E)n%-tfI4kziNnrb}vyQ>sem>~0W&^p3JF@UOD*a6&VcZtIIlngv%R zBK1Yz6+TJa3^W7=ytR+l_|H$@0@~^_Cs>d>T{px&0Q(icx{~VKb_pos%IfCt>bBat z66?je^7+)R8sCJSx<8|WW(T$ZPg_?V7G?LerI95Jx)l|aRJuV*L_)ely1RQ(5DAf% zTuP7z=|-fxOG3K4*@f>}%GclZ@yA}Pa6QjCXJ+o1xo6HfdG12cfjp=KbdUekyj#;W z1L&NF%WNLSP3HwS7o+xRPvbp9X|f;=7t6&}bFaVe0GgvNHhI!}UZf;cCK>mG?mBtU zYp=+<#C*jndN{ww7Gzhr|GSK1K(n@)bk1JUT|^ZRHf{2q`SV1N$|4NLc2w)>mJ}dr zso7gC*mE4D2k|&Q*5-P^#2G&kxd)V-PtOlan_Laf)~_QcL>cM}>C~YEqrMwbl{x|6 zyX~<0rv4B6@S$e^#=Dh&THeMU{-&vXuNUV8)y^w{t%T1R< z$wPv!c+6x=h$fZuk>bRUpJ;OoN?n>~tvFq1veF3GkRBfIXSKm>mU}J(AOtwuXM6I* zB_BArH_Y5eb6|qYs7P+mECiEn1c+}Q@!h?a54oQ zRq(#Q`73}}d98DXtI=(6CQEbo#Od_(OrdHYs4wsKX9gtk!i^w0+KbWTev19A+6Q&Siy&B81H*sPN?LK0+Da9SV5SNchx&nF=qeqvAS z{eA26-sS{u;ruSY2sr?zC{Dh3;%-87KJy&MPgQQPzP{Y4TJc0?ad5?a4IlZOI#88@a|lyghPYdY1_ zQo|rS$C`2DDM0XOKXs3PceR#)|11ILO$A7jG5!or(+V`BxFxMRd1EoYq&b2fP65Zw zJVZ5obFowN2JM0KD*hg9DIV1fqh{Rt`HBfnSX`8yfr>iROg&o6Z;&qrI3sg6M?y)R zDZUE>>hHAZcUG+69hQi#3V)inFS`6`MCk*cp&*aj*BLGG9{l{Wl6>HVfO3FZwd2f2 z1x^X{Y>wx(GyJtp-5%8XFDGUNKf3QYs4DpfqJ;PK51?S{PqOi`d(y#?i`|M32C;Er z3p?{9Y@?s$?Bqz&gq>IhB%Vb~`6oitDTrZ$y&T-rnioI>5k=5~n*18JV?|WNNU)a@ zG<2AgfS;I%Ri$_XhH!l}{7b@(EPn4VDOg09-lg5b_k47EZn@dzGnbKv{JC}|(j^+j z*8fzw5xK;dHSz;^WV=J#%%_o;n9dp#-PK|Ad9;xB)`LK?ckinYd~pVT7Myl7A)Y_i z^>M@egN2NEo2NjRjI<<#k}Xo=1-gb860)6=f}_%gYi&n%+eYpNgT8{kfr5uEs-wN5 z!I{VLaazTT-9gt{0<9@}e$Sn!qXn*;OV5)1$>Tnd!(M#*kf3?IM7_`&p#_@^{+ga} zM(yw5(*(b03%KYjR2*;F;=bAq>mfA#$UGPuEw3QF_6@$=s); zX&DW%@R&t5>Ib&fiXtb5Wa-VflD5 zW&vN6vE#|OKMmhZo$o16)c$gHQi$V3QCf)u_s6ERjm3dCYv~ImBt8~iPVHiT@Q)%T zFNn6Q`>1O&VzEr(In6fAJ2~6)0L2-)yqGFaj(zg(7%a|jviAcwXAp17YEg|uz1Uj~_C`vmkY@}r4oqe8^U8HQRAsE-7g(spaz82g-+LcbDJ^93 zlWj2=bfxOQd#g~1BY-dz_iB|`XtxZd%_5cTbL+@qlP_&_zRIvWYJmj>hi#IS3_N$- z%6Cj1^LYHT>mEtp9(xIw=#mTq7)-`xWmjnpeDRKmz#(G@sH*sG%`@~r_X~cc7LZ{| zAW=(WxDz?QXS*eg`dX;)Y}tHgL~fjgRwj`)wMbc}FM?t4obz`fqGg#}*8^Inv|fnH z#kGA>c$73F->JlEN$??VMgnQ}u7FYO%b}5$mYl{zapjT}&$utu zgVGPtxH@VvBt}R|g3{xgwqxhhrG=A&JzIOmb60cGts>M94*%S8=50X$404_7cYU)G zI@oO%CrO?>RE*91i@h{I<9t%m+eX20_qyJfsl_EcoOVstHmy;SZB-%x&cUM_g4*X7 zcav!_*2NkR<2*-u^-bFfTlpKL+HINL!z$!|Ro5M^x`youvH0i`?<-Ug_MPk7xewcr zR@qusU8khzX_@G7Ox#z#4pH0k+ZU+2?3Q}E_lfa2IP{}+U|$(Q-R(QLbHYn5-bY`- zu)g8p;kfP&=2WYm`p)$f1vNA!=%hsC(^oS23fXID|5#22?HzU+<=&m7b{dK{l|epl zCdwm^f=8z8ywuV>r&X9(rizfrTzlIClw)skewHGSPL6{|<F468BTI+?Bml3|pcRnG zH}#7|0-?}Q5WiZA_X+@6c&h3dh1^H}=T!obc(@M5W#isqfLt_(Afc7g7i0Legfu)m_W#eA%i~&_YXtk&j!~!nh^7`Wu@Lne4ZS@j@E+QkeTHQmn zo&IJIs&U6tTa@4~$~TeCyxvRe5uAxtGWhi6r$e&_T@}=$SdkE*=eMFpG z<(ZuF%~J=?v8@6{7B7cQ7)+I~DDRK?N^W%8PLd!Rt))fOPYO-Tjj|Eqe?_fr<6S0L z|EcR~Ss*70XLS=u*vIXUWkAgBqhCK5TT)_6UKPkoeV~sk?IA9GDB{=6p@~1~lpg2a zxF5v-Q9Nyt<!&p<&EQu%kYMXot1qD?7;;^5fUBA?0F)56n$5k-c z_r1{NJ))2l6`u! zIDQoP4S{@9%~5>~bi{S1F_H8zo*O6CyxvksW#L&XL>xBD&#vpsP(cifdCoKzT+L_K zR1kw#rrvc-Qi!r;Drgh=wp~RSlX|qCA58Q3LH*?9vdxL% zLi^9ys4%?fIm#aVOKH;sFB(A6R3Dwi(-(0+Eo-b(EHu02a+S88#o z+&#+xpm4h*%Po5n;?hO>=}*Xw&)o&y`HC5to^tV}jf($K+|=7dL{_UmLX zHrq&?6QbKj1ye4kzyg4=)2{E@gIUCFW|T@>DZ%ec^i2}y8x}OlyBI^~T^3v}zXMTb z@oOW+ozz}1>@t1tdrZU+Tl(i7`#FURcRMc>^_GtXCtY%1irWSWb~0Hym&i(MRcV0o zt#}~emJ7r|U$+-(mo>=T4R0nXfx~R>sgD`Q*DO{-Z zVc|*DJwRi{u&0iMv%v7vWe^sc3*J*qJX3D}n%uJ@4|FEzQ-q(G=SWGW{}oFQIq;x$ z>-FSn)tbbmIBy{;Je5l4ECW=F2%JwMQ7F+1?nTA!N6)ESpp26b78z7Kel##}Epp&q zs*{uMBI%L~LYrSO#XCpa=MD~A&pokLCcOe-I{LpN=(h=ACR5|@v;sCy`HNvDbp?=B zXMAruQ?K41ebg0!OG*T8n2v9$sR~xRWw7u3*B&cmfwhvcOje|SESIm=&h(Mp?0TZgm`1EUplRZpe4a)ArO#D11C^9DB;#wKg~BO_ zt!(Ov!d4h*JMqVXoeT@>G)dO>UU%Kv!^1^S{(VCRYAxNBbvgTQ*8erFS6VmbgGm9eZrM0 zU!6K8b@nRzolQM;(V3++u}avElEb;FzDxse6kkswa*h#YuSL)A7uoE3id?KCQm9k* zYL(KazJlUv-H3sM($)qoQMv#11p*F0xNKlZC%fW5VO&uMVW^#geS@0844kdgJMosz zn>KiGRoV!M08{70?in|urL&h+?HOn`8kZ0DFsXmbMYxZ zYuAmrTc){)K^NIPdHC4={m>6`eva>l`F>=!$?6qH496X5T63aI-ycB8E*Jg9qdF7; zUsRvmBC+XuJc%mSLw7C5$)jb>UeLVjCN<4S!rkSJl5_$!Rf9uyj$h4$vvT>kGj#Ad?~Sp^6^h!q?&^RhJPab7=Yu__Ws zRw@e3thd~EOwlwg(Jf9jK}33CpP+{r54rsx&5yzRNP;_1e)qy+Rn8pD_zxm!T{dM& zi6f~!Pr*Ee)&ZFK0fRUiQtI<*_PlXR%Mj<_&CmExGifn_@@&m&@r#@{NC)}=NlO1ZlDdQhR9`5r`@Toqdq3dRT`!zw- zz=*VRJ!7*$Abr()UP_8Er}I5q{NF@7g9->1Qlta&*9?!uMJt;;%{Rw)!iq`sPIGy` zlc^PHRrdp#C-d%nUu^CE?0sp@^_T%Jk%nuP2F^u5;Wo%vGE(|CL#HgFoRubi z*;a>(yP_@}|Rh6CTRGv3L-<)SbTMfkz)f>|RQW zR~q1UzjebFbH9XwWVc`Tdt|{9{^`WW^N{)+wyj)OeRf!~EnCGgkvUOs9#wr@P-J6< zzP!p`hT{cXNql@>R7l)cI=j<}`kR{H+018cq>}MSCb8Dx9>oNSCnzQC`QBbzb9con zhT8SY4!r1N<^b%=>()aw04o_KBXJpe=zSzu9})AEqqohnWxYt?X8p&%^DzMBB{<8vFONt1>Af*S3)&Ei}Vl ziOxUL4gH05PwECqAiBsis3^tY#>_N5j1t$l3481PnbBG{@*$jQ-U{O^p0hngBAPM# z?Tq9H>l>k-lH^6kTI)z)F;e@u4xp9BW@9kG**B^My$Ai$H%!pip@=wsW)w>Y)Q1!6 z4sd-H@`?hXy&yN%%-~9BFyEXBzV6m^Lk@+3aD{3{{fVxD&;Uf6)$|1><`_;9OD4fu z!|Rj^XX1(bm{<=@6jSh2ZKhOxQ(~i@J5}AqV(>+1&m|_sM!k++KBC{j?butMMw@`* z)UJ;dE0L?0s%Q?b)omH-6r8hQCp(_leT8SHnA5m~9$rae{mH8Bsee9 zwQIU?gYglN?-BH1ibyY7)5%j?4Uo$})Q{U!J4Xn{lfqz7d1%Y33f6s~Iy#`KR3x8? za$93iZlWtf2;MpTC>6F-UYqJBrYD(QyE&thG$}11Ar};N{ zE{d2Xsn&Bl4yxX1r)F=L;69YkW6K(j$uYBQb3az#a&d8;-;?f+QuEx)<4K9_3&gv! z1&9g)14j&=-f0I25EArGuOL80{-_&K9v|7sFu3pG{m(eh&~<6>O2i+ znO;igel7Tecp`nAKBe%;gO#_>;ZG=C!;(=5%IJ|?+H>1i1`?r@S4q(^oYy#+tby|y zXfB9lrkN&bF4ew$6jjN#C}(CcQCLOydhYgWDw4VT%zi@~!Mj_`TeofzeH0fKlpk_Q z>Y*}pbMOY7VQn7Ia=4tOsRr%Z?Q0V-dP5nsn$+adqzas32QX%owiqQw=p$Ib`h?(k zn`mVAK9*_lljD0y_%X}97)_WVlH(wgF3z?flR%iXVZUe~vzEZK)?%`8OMkoCq*WoW zNDC?WERgjDi!yD5YVV7z$Mh+gSe3kfO+18Hn@(9p;jr>m zNM8+w(#zuBmm2p6-E(|jYA7`|%B@1P@r2iqE>_1I=^iDGlYlx}q0N?c`U-cA`}rxa zWjoSm%Mc~UWp(dfabz65X31@&D1F6`JLPUb!PQz{YTQJOCMoL~=a0Gy5YTsLH zUOc@CtjYTS>jB~P&nxk|Zpxx2AG4ReX1|PH>+X50rRpicHc%02l9Jm^>|!f83HJFl zs=nM^?!|1j+D4tcZD5SKV4FRJ)L)pDi@Ca#rg;~Z)qcVR825_wlD3rCgfN}z$c(P-xSyPan)sa@XZ&qi8m@kB2cK5Uam95=jqY8k z#}k5S#1G7=t0?5^1;5m6rw-SHv;XMk82L6-AKu3`BMij5m}P}p9q&9wTXHaL&YjBG zrMEBh&#ARtrT;y&bWE-l42FQ`Bcu5d=s&!4KX=t0++ABXC2RSRuVLw_oTx5`FDr8l%_Rs z;-P;=L8`@u2R9LUkt*e}X__Jh!l{rp#x*+M2GEa^n&8svHK?ael1&y;+=)n*_E;Jq zTU3nZw!Lmn0VejKvsKkHw?GTpnF5cnkpZpV|87tnwPuOe0C{s+b3c zUjrIMN)16gE{bfdzl(4?MvY(vvRPF4R)HJrBVrtAdZx}JB=A)MwjHBmGz}G1oo`K8 zp60p(tR7oiaCHnGp<7wAdoK0CrxujX z-YmIEq5Q8^JBk6jRL9{*`+Q-p0*C0rNZt(7gz9Zkll_LNXTM*g(EFK;29)5Mk+Dms zd|=&wz5uBvCrh=n6&`b;$A01aXW-;Wr$+b4zU}tYN<&P}djR}L0T1R{E{VBY-onT~*P7lI6jS;X+!1#l0FI2x?WJo`o%sO5jo&sj7I$_ij5^){?{ryx%PvrS`x zeC@A3DUn-I^(VbMnZ4@`=E;v$%r$5|iM#rZ9?P4bH8M>f)pL6!C&M5ayDY)TUn%im zD{VO|?*v~fy^MfYE|vtYNme=vTZ}QaMuG2ipLvTFhWM)`U&lOHirUCsC`p%nvL_@) zN}pJ{O>x1A{LV%?U+&ev(uinfuK<#+;9P=_T72OU?cqdHQp!skMAws}422PPAuW^R znBu?NSBl9|#^O-Tf6Giz4er{^5PW61H8K6AkUYVF!&f?-S0hh*JV-71vE+J`y+v52 zwc`2P{iTHOSce4eKhYEm(*h8E-9IK(%(kL;aS2cKv^Af<{U1Emtq8@k^v zL}34^`Fef9l+u-WUupbzt9J*C~ z!_&TfIPIxqa@@1rc`Uyf5=R*Ut(64 ziqK4Xv}BU4dVA2se0Zfs3`Jzzgqdyi3tdZz&5zv;+!h^~o^uI8+*|e(Jw2OywPdc7 zp=jh&l-v&Mpr4+tIL<80`8~{%Qm4Dlg-ffnN(p;k*o!U;t^g3E0!bwknWL(t zjMtlb3bF8 z^|T_YBirvR^&a}d%d|iMEmW5c$NNj1meGQoKr2-j?Vv6U&j`c0gA@gWB1H#3CW7vb zxrEW@P8x?KDNoc$aSo1k1m=>O*!v21%I{H(nNk*H=jGUC^8P#&WtmoPw+jD4Nn=bK zY;=3bsP2m`0s^uLJmkZpr>MwgZuc9T3S6(83Qx=)%&y~gjTbper>}-+3-X;r?asC3 zxk(!&a78U@LrJdTOdVwPJbd*}cXR!H+>T}r+pBmBKIV12Eu{Cl;~x#qj0|SBWXwNM zrt~&GvriEHt}HGe^kA$iQ0Kcm=#%R50F&JvJwDXqus_nU^`D{dvB(W_-Y1#IY5L0g zOz0O|;4bw+v>zXBd9}aCE$xCFJktBPoiDRO~G6RL_XSw^us6?<1aV$hkqq^tnbR){W zYa*uIHDibMRR(XpnMzu*tOL404su#>uKL_OTQz3lO+97e2+Y;ZepvH3s+eSc-`!I5 zo5KF^mXB{M{Xu~bIcwrYRZ{7!`I6kvwO73)y?}^~ONermwy29KDN5tX9ez2hw7q>v zODWyIgz1%zT%bo!l|Z~Rp2nHBI5UA57*hmZRKC z!70M#bo1>vpCPmP;|Y7#T^>q~IVN;fR1Cg1{qB2;Z$MWQP>vuJ3o^fUHh}51_}7hO zi0v^r58wvr3b}v5@_|4o^acdpZP6+{W9?8MI3@rI*7YuY44*mE?h>770Tq(0r*-|| zsCZ*qwD(EI0u9{>O@2p|-zH-FFayh0>wAc8!YwPO~ z{by^WDtkd^6p2o4#=~}9{({n10rD;HJ>&-sP9({J<+ahr^B7yjdJ0A7ZV`sa5MV0e4 zwx_FA-nv4w#ys*|YZQwFtvAXu!?sB`x z9!+ZynA*i+*Q7H-y;8f5O#JmOi zhVAR9LdtG^1^b8fUwh??-={u;{Nd&2SX|*&4KbYAiW33zXc*d+%Ld#M=_9j0eY+~} znRYq|d3T3?K)Eku{IjW6`?rcUkySA2*D66Q4qw_xfOsaTo_wr0hEL?5I7HB?I? zHVELHX(lq$TJJm!2FNq4mBw*b{C*nQU8*e%X;)I&9I%T5=z zTWe)n*h%f2QS{*&bsy2xi70?aSR#T2Vg&2K1{f}$c2>prWVjG7tN0fN2mjDhuLA?( zPO)dD3o^+=E0#A2=~{?DGkN@$KES$cjw0Gzjre1DY2bh_nL?Poji0J>M=SU{mZ||A zjWVNHeLnE};x*8%4 zP;bYihw5bZnS%9UiyxuAo-GmVXx9b7OGGG=r_8ooPSAco`dP5C-RMj;WM?V#kw%H$ zNC2g6UryH7fV4wc6?^-;f#E@b9Y0!XOH-XLz>{bKjO*2dR)_&&uB%HdPvJ5r5qU{D zVi@CHVj{A`ojaWv>iJIPU3gB+-I=P^X9YMnt~K};fodGS24jAOr~lzrCWkFX?f@rB zx??pC+Kp$vkh@)IojgMJ+geM=BV%*EUrSV>-&KtT=yU}IL6J2Tu8GjOZLFOb4=hmW zHwDUp+xRYXx`{km`0ndy{CwNt{kg^h5ek3dB?eynMJA7R@D+f*srSIbIIwRL?7PVo zuJFn1HoO#MCsnV%y?|>c9#JB{7`msI&+^FBKB2BTVeFYu1J%Z`I6vl&A$<{4vb{IE zMMsQ`F-qMt9Y~veQ!7JrY~NooC4kg#gRHhAm^eBgGXjwYP>%bzpUH+Xa%@ z7F@N{M1C9vBspExrw{paI%A^ej*j#tKra^M2wH&xzF~WZitWOaQ9kpl^Z`(*BRDO2 zze3Y%CrN|<*G(vUX;dM+0Hz2^9;y}Ft-KLz$FLiGn`KM=2{S0L<$iY+r77E)6ly@4 z{F|Q}?<3T3IL&-JYByp5#6HI8hR71#CBAasaObZcV$Eh(4J@1B0`A&Lm=Dsw(-?c) zvjKsumL?t_o+OmcdE1k)a9iccv%HR8Xdnk+902+8=S1fkb@$VW_RsOh>5jz#(Xg91 z5uG$zAZFMfZAflNl=2&3{?Gr6VBQ2`7h<8T5s38x`^@X8oOdXyR2s)(Mw+U4Gtdy! z4ojLlFTHJUgVvt9a&CgycdNcX6=%EYRU4zK6H#?lA2q#*mkuPfw6uJK-~Ust1eVe6 zl9g}wW2n>=mhi3!ul?kEY^QZL(|Ryr*}g)}*4obPI9h5Ue)31EvDlc%|HPA**Jcdf zpICanb=g?a9Ed}9vtl+hA$#_^*#4YzML-t&jTf=#GVQ#^j5!$yo?t!Yj1nDA>q&aT za7P`1-ubk^BXpy;f}qaFmC9Luq}G9SRXSfg)QUKk7s7azRj(W<0&>MGFHk81@f+;4 znp^WioXmeU{Nmd^0;7jCN7C&zk3RhQWPq{}rgb*Xyfb5J`7zxV=n{}uW7sPzN369H z;|Ko9N_f*AfX?y&$X9Oju&ral>)aRZMqM1QTrPScZ$OMPgx)(EXmuH;0(Bq1@4`D$ zBO)9qM`R^b&WOa3Jh($E=-=bRZ&yaA45jDXG+DrSBIkJxtF!M+b(#mCD0xQD}g z;-pgMR37I(YR|*``rRF)OQsDN?<*NEP!*68JR`d*7#+HsS8exKCm#wQPS%1U+FU}S zS^tfxyadERPKpk;>N5G;u6>ViCUG$F^}19D+Vo4^9seKOeMBA7N!vFUoET|Cc?Za~ z(CA1XUL*JAatm}JLvKN9N05>(V^*E7ait&25p5lwS(RPAIYbVCcuuk-9x^t;dY&M* z=Ktw`W%}ZUg5t{Jvpt(w@hbPI4M#D-uI+ni(vA0`455HK38K~C<6N2vHZfX2fYVL_->VI?%7|xq#(}SOU zDzfW6wf5Y3XY57nn~B#UfUNF1*Xfz{_#g+ekIBfDuiweS>AJx!APJQB*o`A3zr$A^=VAXuGduy8esHePwPJDbK8$P zenZ|U*Y`eLyN{y~kY}}HXyUYl`R@?b5I`sg?^*g&*JN($P=3=`u9$W3Am>Q!r!&t< zOu*q(e%17nseJBwQzgsJrfufxfg)^TX3S#7H9bResCyQ_iW)UNP5}efvTWEUGVB&% o$gI1Oc?^`;u51ayi+E09q>r<{m-PG3E#OC7L`pdKr8fBg0AMv5<^TWy literal 0 HcmV?d00001 diff --git a/lib/components/Album/AlbumView.dart b/lib/components/Album/AlbumView.dart index 95cea0d1..a6f927db 100644 --- a/lib/components/Album/AlbumView.dart +++ b/lib/components/Album/AlbumView.dart @@ -1,10 +1,10 @@ import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:spotify/spotify.dart'; -import 'package:spotube/components/LoaderShimmers/ShimmerTrackTile.dart'; import 'package:spotube/components/Shared/HeartButton.dart'; -import 'package:spotube/components/Shared/PageWindowTitleBar.dart'; -import 'package:spotube/components/Shared/TracksTableView.dart'; +import 'package:spotube/components/Shared/TrackCollectionView.dart'; import 'package:spotube/helpers/image-to-url-string.dart'; import 'package:spotube/helpers/simple-track-to-track.dart'; import 'package:spotube/models/CurrentPlaylist.dart'; @@ -41,7 +41,6 @@ class AlbumView extends HookConsumerWidget { Widget build(BuildContext context, ref) { Playback playback = ref.watch(playbackProvider); - final isPlaylistPlaying = playback.currentPlaylist?.id == album.id; final SpotifyApi spotify = ref.watch(spotifyProvider); final Auth auth = ref.watch(authProvider); @@ -49,85 +48,60 @@ class AlbumView extends HookConsumerWidget { final albumSavedSnapshot = ref.watch(albumIsSavedForCurrentUserQuery(album.id!)); - return SafeArea( - child: Scaffold( - body: Column( - children: [ - PageWindowTitleBar( - leading: Row( - children: [ - // nav back - const BackButton(), - // heart playlist - if (auth.isLoggedIn) - albumSavedSnapshot.when( - data: (isSaved) { - return HeartButton( - isLiked: isSaved, - onPressed: () { - (isSaved - ? spotify.me.removeAlbums( - [album.id!], - ) - : spotify.me.saveAlbums( - [album.id!], - )) - .whenComplete(() { - ref.refresh( - albumIsSavedForCurrentUserQuery( - album.id!, - ), - ); - ref.refresh(currentUserAlbumsQuery); - }); - }, - ); - }, - error: (error, _) => Text("Error $error"), - loading: () => const CircularProgressIndicator()), - // play playlist - IconButton( - icon: Icon( - isPlaylistPlaying - ? Icons.stop_rounded - : Icons.play_arrow_rounded, - ), - onPressed: tracksSnapshot.asData?.value != null - ? () => playPlaylist( - playback, - tracksSnapshot.asData!.value.map((trackSmp) { - return simpleTrackToTrack(trackSmp, album); - }).toList(), - ) - : null, - ) - ], - ), - ), - Center( - child: Text(album.name!, - style: Theme.of(context).textTheme.headline4), - ), - tracksSnapshot.when( - data: (data) { - List tracks = data.map((trackSmp) { - return simpleTrackToTrack(trackSmp, album); - }).toList(); - return TracksTableView( - tracks, - onTrackPlayButtonPressed: (currentTrack) => playPlaylist( - playback, - tracks, - currentTrack: currentTrack, - ), + final albumArt = + useMemoized(() => imageToUrlString(album.images), [album.images]); + + return TrackCollectionView( + id: album.id!, + isPlaying: playback.currentPlaylist?.id != null && + playback.currentPlaylist?.id == album.id, + title: album.name!, + titleImage: albumArt, + tracksSnapshot: tracksSnapshot, + album: album, + onPlay: ([track]) { + if (tracksSnapshot.asData?.value != null) { + playPlaylist( + playback, + tracksSnapshot.asData!.value + .map((track) => simpleTrackToTrack(track, album)) + .toList(), + currentTrack: track, + ); + } + }, + onShare: () { + Clipboard.setData( + ClipboardData(text: "https://open.spotify.com/album/${album.id}"), + ); + }, + heartBtn: auth.isLoggedIn + ? albumSavedSnapshot.when( + data: (isSaved) { + return HeartButton( + isLiked: isSaved, + onPressed: () { + (isSaved + ? spotify.me.removeAlbums( + [album.id!], + ) + : spotify.me.saveAlbums( + [album.id!], + )) + .whenComplete(() { + ref.refresh( + albumIsSavedForCurrentUserQuery( + album.id!, + ), + ); + ref.refresh(currentUserAlbumsQuery); + }); + }, ); }, error: (error, _) => Text("Error $error"), - loading: () => const ShimmerTrackTile(), - ), - ], - ), - ), + loading: () => const CircularProgressIndicator()) + : null, ); } } diff --git a/lib/components/Category/CategoryCard.dart b/lib/components/Category/CategoryCard.dart index a92e98ee..88f833b3 100644 --- a/lib/components/Category/CategoryCard.dart +++ b/lib/components/Category/CategoryCard.dart @@ -5,6 +5,7 @@ import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; import 'package:spotify/spotify.dart'; import 'package:spotube/components/LoaderShimmers/ShimmerPlaybuttonCard.dart'; import 'package:spotube/components/Playlist/PlaylistCard.dart'; +import 'package:spotube/components/Shared/NotFound.dart'; import 'package:spotube/hooks/usePaginatedFutureProvider.dart'; import 'package:spotube/models/Logger.dart'; import 'package:spotube/provider/SpotifyRequests.dart'; @@ -72,6 +73,9 @@ class CategoryCard extends HookConsumerWidget { scrollController: scrollController, scrollDirection: Axis.horizontal, builderDelegate: PagedChildBuilderDelegate( + noItemsFoundIndicatorBuilder: (context) { + return const NotFound(); + }, firstPageProgressIndicatorBuilder: (context) { return const ShimmerPlaybuttonCard(); }, diff --git a/lib/components/Home/Sidebar.dart b/lib/components/Home/Sidebar.dart index ae67b877..e0593dce 100644 --- a/lib/components/Home/Sidebar.dart +++ b/lib/components/Home/Sidebar.dart @@ -3,11 +3,10 @@ import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:flutter/material.dart'; -import 'package:spotify/spotify.dart' hide Image; import 'package:spotube/helpers/image-to-url-string.dart'; import 'package:spotube/hooks/useBreakpoints.dart'; import 'package:spotube/models/sideBarTiles.dart'; -import 'package:spotube/provider/SpotifyDI.dart'; +import 'package:spotube/provider/SpotifyRequests.dart'; class Sidebar extends HookConsumerWidget { final int selectedIndex; @@ -36,7 +35,7 @@ class Sidebar extends HookConsumerWidget { final breakpoints = useBreakpoints(); if (breakpoints.isSm) return Container(); final extended = useState(false); - final SpotifyApi spotify = ref.watch(spotifyProvider); + final meSnapshot = ref.watch(currentUserQuery); useEffect(() { if (breakpoints.isMd && extended.value) { @@ -78,11 +77,10 @@ class Sidebar extends HookConsumerWidget { ]), ) : _buildSmallLogo(), - trailing: FutureBuilder( - future: spotify.me.get(), - builder: (context, snapshot) { - final avatarImg = imageToUrlString(snapshot.data?.images, - index: (snapshot.data?.images?.length ?? 1) - 1); + trailing: meSnapshot.when( + data: (data) { + final avatarImg = imageToUrlString(data.images, + index: (data.images?.length ?? 1) - 1); return extended.value ? Padding( padding: const EdgeInsets.all(16), @@ -97,7 +95,7 @@ class Sidebar extends HookConsumerWidget { ), const SizedBox(width: 10), Text( - snapshot.data?.displayName ?? "Guest", + data.displayName ?? "Guest", style: const TextStyle( fontWeight: FontWeight.bold, ), @@ -116,6 +114,8 @@ class Sidebar extends HookConsumerWidget { ), ); }, + error: (e, _) => Text("Error $e"), + loading: () => const CircularProgressIndicator(), ), ); } diff --git a/lib/components/Library/UserAlbums.dart b/lib/components/Library/UserAlbums.dart index 7c89c2d5..87bd3413 100644 --- a/lib/components/Library/UserAlbums.dart +++ b/lib/components/Library/UserAlbums.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart' hide Image; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:spotube/components/Album/AlbumCard.dart'; +import 'package:spotube/components/LoaderShimmers/ShimmerPlaybuttonCard.dart'; import 'package:spotube/helpers/simple-album-to-album.dart'; import 'package:spotube/provider/SpotifyRequests.dart'; @@ -25,7 +26,7 @@ class UserAlbums extends ConsumerWidget { ), ), ), - loading: () => const Center(child: CircularProgressIndicator.adaptive()), + loading: () => const Center(child: ShimmerPlaybuttonCard(count: 7)), error: (_, __) => const Text("Failure is the pillar of success"), ); } diff --git a/lib/components/Library/UserPlaylists.dart b/lib/components/Library/UserPlaylists.dart index a3ca21d4..49b1dca1 100644 --- a/lib/components/Library/UserPlaylists.dart +++ b/lib/components/Library/UserPlaylists.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart' hide Image; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:spotify/spotify.dart'; +import 'package:spotube/components/LoaderShimmers/ShimmerPlaybuttonCard.dart'; import 'package:spotube/components/Playlist/PlaylistCard.dart'; import 'package:spotube/components/Playlist/PlaylistCreateDialog.dart'; import 'package:spotube/provider/SpotifyRequests.dart'; @@ -13,8 +14,7 @@ class UserPlaylists extends ConsumerWidget { final playlists = ref.watch(currentUserPlaylistsQuery); return playlists.when( - loading: () => - const Center(child: CircularProgressIndicator.adaptive()), + loading: () => const Center(child: ShimmerPlaybuttonCard(count: 7)), data: (data) { Image image = Image(); image.height = 300; diff --git a/lib/components/Player/PlayerOverlay.dart b/lib/components/Player/PlayerOverlay.dart index 776b9966..6526b602 100644 --- a/lib/components/Player/PlayerOverlay.dart +++ b/lib/components/Player/PlayerOverlay.dart @@ -37,56 +37,65 @@ class PlayerOverlay extends HookConsumerWidget { right: (breakpoint.isMd ? 10 : 5), left: (breakpoint.isSm ? 5 : 80), bottom: (breakpoint.isSm ? 63 : 10), - child: AnimatedContainer( - duration: const Duration(milliseconds: 500), - width: MediaQuery.of(context).size.width, - height: 50, - decoration: BoxDecoration( - color: paletteColor.color, - borderRadius: BorderRadius.circular(5), - ), - child: Material( - type: MaterialType.transparency, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: MouseRegion( - cursor: SystemMouseCursors.click, - child: GestureDetector( - onTap: () => GoRouter.of(context).push("/player"), - child: PlayerTrackDetails( - albumArt: albumArt, - color: paletteColor.bodyTextColor, + child: GestureDetector( + onVerticalDragEnd: (details) { + int sensitivity = 8; + if (details.primaryVelocity != null && + details.primaryVelocity! < -sensitivity) { + GoRouter.of(context).push("/player"); + } + }, + child: AnimatedContainer( + duration: const Duration(milliseconds: 500), + width: MediaQuery.of(context).size.width, + height: 50, + decoration: BoxDecoration( + color: paletteColor.color, + borderRadius: BorderRadius.circular(5), + ), + child: Material( + type: MaterialType.transparency, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: MouseRegion( + cursor: SystemMouseCursors.click, + child: GestureDetector( + onTap: () => GoRouter.of(context).push("/player"), + child: PlayerTrackDetails( + albumArt: albumArt, + color: paletteColor.bodyTextColor, + ), ), ), ), - ), - Row( - children: [ - IconButton( - icon: const Icon(Icons.skip_previous_rounded), + Row( + children: [ + IconButton( + icon: const Icon(Icons.skip_previous_rounded), + color: paletteColor.bodyTextColor, + onPressed: () { + onPrevious(); + }), + IconButton( + icon: Icon( + playback.isPlaying + ? Icons.pause_rounded + : Icons.play_arrow_rounded, + ), color: paletteColor.bodyTextColor, - onPressed: () { - onPrevious(); - }), - IconButton( - icon: Icon( - playback.isPlaying - ? Icons.pause_rounded - : Icons.play_arrow_rounded, + onPressed: _playOrPause, ), - color: paletteColor.bodyTextColor, - onPressed: _playOrPause, - ), - IconButton( - icon: const Icon(Icons.skip_next_rounded), - onPressed: () => onNext(), - color: paletteColor.bodyTextColor, - ), - ], - ), - ], + IconButton( + icon: const Icon(Icons.skip_next_rounded), + onPressed: () => onNext(), + color: paletteColor.bodyTextColor, + ), + ], + ), + ], + ), ), ), ), diff --git a/lib/components/Player/PlayerView.dart b/lib/components/Player/PlayerView.dart index d69c07ee..f4d35317 100644 --- a/lib/components/Player/PlayerView.dart +++ b/lib/components/Player/PlayerView.dart @@ -74,7 +74,7 @@ class PlayerView extends HookConsumerWidget { child: Scaffold( appBar: const PageWindowTitleBar( leading: BackButton(), - transparent: true, + backgroundColor: Colors.transparent, ), backgroundColor: paletteColor.color, body: Column( diff --git a/lib/components/Playlist/PlaylistView.dart b/lib/components/Playlist/PlaylistView.dart index 43730971..25e4f744 100644 --- a/lib/components/Playlist/PlaylistView.dart +++ b/lib/components/Playlist/PlaylistView.dart @@ -1,12 +1,12 @@ import 'dart:convert'; import 'package:flutter/services.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:spotube/components/LoaderShimmers/ShimmerTrackTile.dart'; import 'package:spotube/components/Shared/HeartButton.dart'; -import 'package:spotube/components/Shared/PageWindowTitleBar.dart'; -import 'package:spotube/components/Shared/TracksTableView.dart'; +import 'package:spotube/components/Shared/TrackCollectionView.dart'; import 'package:spotube/helpers/image-to-url-string.dart'; +import 'package:spotube/hooks/usePaletteColor.dart'; import 'package:spotube/models/CurrentPlaylist.dart'; import 'package:spotube/models/Logger.dart'; import 'package:spotube/provider/Auth.dart'; @@ -53,118 +53,90 @@ class PlaylistView extends HookConsumerWidget { final meSnapshot = ref.watch(currentUserQuery); final tracksSnapshot = ref.watch(playlistTracksQuery(playlist.id!)); - return SafeArea( - child: Scaffold( - body: Column( - children: [ - PageWindowTitleBar( - leading: Row( - children: [ - // nav back - const BackButton(), - // heart playlist - if (auth.isLoggedIn && playlist.id != "user-liked-tracks") - meSnapshot.when( - data: (me) { - final query = playlistIsFollowedQuery(jsonEncode( - {"playlistId": playlist.id, "userId": me.id!})); - final followingSnapshot = ref.watch(query); + final titleImage = + useMemoized(() => imageToUrlString(playlist.images), [playlist.images]); - return followingSnapshot.when( - data: (isFollowing) { - return HeartButton( - isLiked: isFollowing, - icon: playlist.owner?.id != null && - me.id == playlist.owner?.id - ? Icons.delete_outline_rounded - : null, - onPressed: () async { - try { - isFollowing - ? spotify.playlists - .unfollowPlaylist(playlist.id!) - : spotify.playlists - .followPlaylist(playlist.id!); - } catch (e, stack) { - logger.e("FollowButton.onPressed", e, stack); - } finally { - ref.refresh(query); - ref.refresh(currentUserPlaylistsQuery); - } - }, - ); - }, - error: (error, _) => Text("Error $error"), - loading: () => const CircularProgressIndicator(), - ); - }, - error: (error, _) => Text("Error $error"), - loading: () => const CircularProgressIndicator(), - ), + final color = usePaletteGenerator( + context, + titleImage, + ).dominantColor; - if (playlist.id != "user-liked-tracks") - IconButton( - icon: const Icon(Icons.share_rounded), - onPressed: () { - final data = - "https://open.spotify.com/playlist/${playlist.id}"; - Clipboard.setData( - ClipboardData(text: data), - ).then((_) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - width: 300, - behavior: SnackBarBehavior.floating, - content: Text( - "Copied $data to clipboard", - textAlign: TextAlign.center, - ), - ), - ); - }); - }, - ), - // play playlist - IconButton( - icon: Icon( - isPlaylistPlaying - ? Icons.stop_rounded - : Icons.play_arrow_rounded, - ), - onPressed: tracksSnapshot.asData?.value != null - ? () => playPlaylist( - playback, - tracksSnapshot.asData!.value, - ) - : null, - ) - ], + return TrackCollectionView( + id: playlist.id!, + isPlaying: isPlaylistPlaying, + title: playlist.name!, + titleImage: titleImage, + tracksSnapshot: tracksSnapshot, + description: playlist.description, + isOwned: playlist.owner?.id != null && + playlist.owner!.id == meSnapshot.asData?.value.id, + onPlay: ([track]) { + if (tracksSnapshot.asData?.value != null) { + playPlaylist( + playback, + tracksSnapshot.asData!.value, + currentTrack: track, + ); + } + }, + showShare: playlist.id != "user-liked-tracks", + onShare: () { + final data = "https://open.spotify.com/playlist/${playlist.id}"; + Clipboard.setData( + ClipboardData(text: data), + ).then((_) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + width: 300, + behavior: SnackBarBehavior.floating, + content: Text( + "Copied $data to clipboard", + textAlign: TextAlign.center, ), ), - Center( - child: Text(playlist.name!, - style: Theme.of(context).textTheme.headline4), - ), - tracksSnapshot.when( - data: (tracks) { - return TracksTableView( - tracks, - onTrackPlayButtonPressed: (currentTrack) => playPlaylist( - playback, - tracks, - currentTrack: currentTrack, - ), - playlistId: playlist.id, - userPlaylist: playlist.owner?.id != null && - playlist.owner!.id == meSnapshot.asData?.value.id, + ); + }); + }, + heartBtn: (auth.isLoggedIn && playlist.id != "user-liked-tracks" + ? meSnapshot.when( + data: (me) { + final query = playlistIsFollowedQuery( + jsonEncode({"playlistId": playlist.id, "userId": me.id!})); + final followingSnapshot = ref.watch(query); + + return followingSnapshot.when( + data: (isFollowing) { + return HeartButton( + isLiked: isFollowing, + color: color?.titleTextColor, + icon: playlist.owner?.id != null && + me.id == playlist.owner?.id + ? Icons.delete_outline_rounded + : null, + onPressed: () async { + try { + isFollowing + ? await spotify.playlists + .unfollowPlaylist(playlist.id!) + : await spotify.playlists + .followPlaylist(playlist.id!); + } catch (e, stack) { + logger.e("FollowButton.onPressed", e, stack); + } finally { + ref.refresh(query); + ref.refresh(currentUserPlaylistsQuery); + } + }, + ); + }, + error: (error, _) => Text("Error $error"), + loading: () => const CircularProgressIndicator(), ); }, error: (error, _) => Text("Error $error"), - loading: () => const ShimmerTrackTile(), - ), - ], - ), - ), + loading: () => const CircularProgressIndicator(), + ) + : null), ); } } diff --git a/lib/components/Shared/HeartButton.dart b/lib/components/Shared/HeartButton.dart index 1d177040..10ea3204 100644 --- a/lib/components/Shared/HeartButton.dart +++ b/lib/components/Shared/HeartButton.dart @@ -4,9 +4,11 @@ class HeartButton extends StatelessWidget { final bool isLiked; final void Function() onPressed; final IconData? icon; + final Color? color; const HeartButton({ required this.isLiked, required this.onPressed, + this.color, this.icon, Key? key, }) : super(key: key); @@ -19,7 +21,7 @@ class HeartButton extends StatelessWidget { (!isLiked ? Icons.favorite_outline_rounded : Icons.favorite_rounded), - color: isLiked ? Theme.of(context).primaryColor : null, + color: isLiked ? Theme.of(context).primaryColor : color, ), onPressed: onPressed, ); diff --git a/lib/components/Shared/NotFound.dart b/lib/components/Shared/NotFound.dart new file mode 100644 index 00000000..05b143d1 --- /dev/null +++ b/lib/components/Shared/NotFound.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; + +class NotFound extends StatelessWidget { + const NotFound({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Row( + children: [ + SizedBox( + height: 150, + width: 150, + child: Image.asset("assets/empty_box.png"), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Nothing found", style: Theme.of(context).textTheme.headline6), + Text( + "The box is empty", + style: Theme.of(context).textTheme.subtitle1, + ), + ], + ), + ], + ); + } +} diff --git a/lib/components/Shared/PageWindowTitleBar.dart b/lib/components/Shared/PageWindowTitleBar.dart index aaf1bf86..10a3225d 100644 --- a/lib/components/Shared/PageWindowTitleBar.dart +++ b/lib/components/Shared/PageWindowTitleBar.dart @@ -4,7 +4,11 @@ import 'package:bitsdojo_window/bitsdojo_window.dart'; import 'package:flutter/material.dart'; class TitleBarActionButtons extends StatelessWidget { - const TitleBarActionButtons({Key? key}) : super(key: key); + final Color? color; + const TitleBarActionButtons({ + Key? key, + this.color, + }) : super(key: key); @override Widget build(BuildContext context) { @@ -18,7 +22,10 @@ class TitleBarActionButtons extends StatelessWidget { foregroundColor: MaterialStateProperty.all(Theme.of(context).iconTheme.color), ), - child: const Icon(Icons.minimize_rounded)), + child: Icon( + Icons.minimize_rounded, + color: color, + )), TextButton( onPressed: () async { appWindow.maximizeOrRestore(); @@ -27,14 +34,14 @@ class TitleBarActionButtons extends StatelessWidget { foregroundColor: MaterialStateProperty.all(Theme.of(context).iconTheme.color), ), - child: const Icon(Icons.crop_square_rounded)), + child: Icon(Icons.crop_square_rounded, color: color)), TextButton( onPressed: () { appWindow.close(); }, style: ButtonStyle( - foregroundColor: - MaterialStateProperty.all(Theme.of(context).iconTheme.color), + foregroundColor: MaterialStateProperty.all( + color ?? Theme.of(context).iconTheme.color), overlayColor: MaterialStateProperty.all(Colors.redAccent), ), child: const Icon( @@ -49,12 +56,14 @@ class PageWindowTitleBar extends StatelessWidget implements PreferredSizeWidget { final Widget? leading; final Widget? center; - final bool transparent; + final Color? backgroundColor; + final Color? foregroundColor; const PageWindowTitleBar({ Key? key, this.leading, this.center, - this.transparent = false, + this.backgroundColor, + this.foregroundColor, }) : super(key: key); @override Size get preferredSize => Size.fromHeight( @@ -76,7 +85,7 @@ class PageWindowTitleBar extends StatelessWidget } return WindowTitleBarBox( child: Container( - color: !transparent ? Theme.of(context).scaffoldBackgroundColor : null, + color: backgroundColor, child: Row( children: [ if (Platform.isMacOS) @@ -86,7 +95,7 @@ class PageWindowTitleBar extends StatelessWidget if (leading != null) leading!, Expanded(child: MoveWindow(child: Center(child: center))), if (!Platform.isMacOS && !Platform.isIOS && !Platform.isAndroid) - const TitleBarActionButtons() + TitleBarActionButtons(color: foregroundColor) ], ), ), diff --git a/lib/components/Shared/TrackCollectionView.dart b/lib/components/Shared/TrackCollectionView.dart new file mode 100644 index 00000000..9b125450 --- /dev/null +++ b/lib/components/Shared/TrackCollectionView.dart @@ -0,0 +1,240 @@ +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:spotube/components/LoaderShimmers/ShimmerTrackTile.dart'; +import 'package:spotube/components/Shared/PageWindowTitleBar.dart'; +import 'package:spotube/components/Shared/TracksTableView.dart'; +import 'package:spotube/helpers/simple-track-to-track.dart'; +import 'package:spotube/hooks/usePaletteColor.dart'; +import 'package:spotube/models/Logger.dart'; +import 'package:flutter/material.dart'; +import 'package:spotify/spotify.dart'; + +class TrackCollectionView extends HookConsumerWidget { + final logger = getLogger(TrackCollectionView); + final String id; + final String title; + final String? description; + final AsyncValue> tracksSnapshot; + final String titleImage; + final bool isPlaying; + final void Function([Track? currentTrack]) onPlay; + final void Function() onShare; + final Widget? heartBtn; + final AlbumSimple? album; + + final bool showShare; + final bool isOwned; + TrackCollectionView({ + required this.title, + required this.id, + required this.tracksSnapshot, + required this.titleImage, + required this.isPlaying, + required this.onPlay, + required this.onShare, + this.heartBtn, + this.album, + this.description, + this.showShare = true, + this.isOwned = false, + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context, ref) { + final color = usePaletteGenerator( + context, + titleImage, + ).dominantColor; + + final List buttons = [ + if (showShare) + IconButton( + icon: Icon( + Icons.share_rounded, + color: color?.titleTextColor, + ), + onPressed: onShare, + ), + if (heartBtn != null) heartBtn!, + + // play playlist + Container( + margin: const EdgeInsets.symmetric(vertical: 10), + child: ElevatedButton( + style: ButtonStyle( + backgroundColor: + MaterialStateProperty.all(Theme.of(context).primaryColor), + shape: MaterialStateProperty.all( + const CircleBorder(), + ), + ), + child: Icon( + isPlaying ? Icons.stop_rounded : Icons.play_arrow_rounded, + color: Theme.of(context).backgroundColor, + ), + onPressed: tracksSnapshot.asData?.value != null ? onPlay : null, + ), + ), + ]; + + final controller = useScrollController(); + + final collapsed = useState(false); + + useEffect(() { + listener() { + if (controller.position.pixels >= 400 && !collapsed.value) { + collapsed.value = true; + } else if (controller.position.pixels < 400 && collapsed.value) { + collapsed.value = false; + } + } + + controller.addListener(listener); + + return () => controller.removeListener(listener); + }, [collapsed.value]); + + return SafeArea( + child: Scaffold( + appBar: PageWindowTitleBar( + backgroundColor: + tracksSnapshot.asData?.value != null ? color?.color : null, + foregroundColor: tracksSnapshot.asData?.value != null + ? color?.titleTextColor + : null, + leading: Row( + children: [ + BackButton( + color: tracksSnapshot.asData?.value != null + ? color?.titleTextColor + : null, + ) + ], + ), + ), + body: tracksSnapshot.when( + data: (tracks) { + return CustomScrollView( + controller: controller, + slivers: [ + SliverAppBar( + actions: collapsed.value ? buttons : null, + floating: false, + pinned: true, + expandedHeight: 400, + automaticallyImplyLeading: false, + primary: true, + title: collapsed.value + ? Text( + title, + style: + Theme.of(context).textTheme.headline4?.copyWith( + color: color?.titleTextColor, + fontWeight: FontWeight.w600, + ), + ) + : null, + backgroundColor: color?.color.withOpacity(0.8), + flexibleSpace: LayoutBuilder(builder: (context, constrains) { + return FlexibleSpaceBar( + background: Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + color?.color ?? Colors.transparent, + Theme.of(context).canvasColor, + ], + begin: const FractionalOffset(0, 0), + end: const FractionalOffset(0, 1), + tileMode: TileMode.clamp, + ), + ), + child: Material( + type: MaterialType.transparency, + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 20, + ), + child: Wrap( + spacing: 20, + runSpacing: 20, + crossAxisAlignment: WrapCrossAlignment.center, + alignment: WrapAlignment.center, + runAlignment: WrapAlignment.center, + children: [ + Container( + constraints: + const BoxConstraints(maxHeight: 200), + child: ClipRRect( + borderRadius: BorderRadius.circular(10), + child: CachedNetworkImage( + imageUrl: titleImage, + ), + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + title, + style: Theme.of(context) + .textTheme + .headline4 + ?.copyWith( + color: color?.titleTextColor, + fontWeight: FontWeight.w600, + ), + ), + if (description != null) + Text( + description!, + style: Theme.of(context) + .textTheme + .bodyLarge + ?.copyWith( + color: color?.bodyTextColor, + ), + maxLines: 2, + overflow: TextOverflow.fade, + ), + const SizedBox(height: 10), + Row( + mainAxisSize: MainAxisSize.min, + children: buttons, + ), + ], + ) + ], + ), + ), + ), + ), + ); + }), + ), + TracksTableView( + tracks is! List + ? tracks + .map((track) => simpleTrackToTrack(track, album!)) + .toList() + : tracks, + onTrackPlayButtonPressed: onPlay, + playlistId: id, + userPlaylist: isOwned, + ), + ], + ); + }, + error: (error, _) => Text("Error $error"), + loading: () => const ShimmerTrackTile(), + ), + ), + ); + } +} diff --git a/lib/components/Shared/TracksTableView.dart b/lib/components/Shared/TracksTableView.dart index ca2e72e8..9b6f4869 100644 --- a/lib/components/Shared/TracksTableView.dart +++ b/lib/components/Shared/TracksTableView.dart @@ -12,12 +12,15 @@ class TracksTableView extends HookConsumerWidget { final List tracks; final bool userPlaylist; final String? playlistId; + + final Widget? heading; const TracksTableView( this.tracks, { Key? key, this.onTrackPlayButtonPressed, this.userPlaylist = false, this.playlistId, + this.heading, }) : super(key: key); @override @@ -28,10 +31,79 @@ class TracksTableView extends HookConsumerWidget { final breakpoint = useBreakpoints(); - return Expanded( + return SliverList( + delegate: SliverChildListDelegate([ + if (heading != null) heading!, + Row( + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + "#", + textAlign: TextAlign.center, + style: tableHeadStyle, + ), + ), + Expanded( + child: Row( + children: [ + Text( + "Title", + style: tableHeadStyle, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + // used alignment of this table-head + if (breakpoint.isMoreThan(Breakpoints.md)) ...[ + const SizedBox(width: 100), + Expanded( + child: Row( + children: [ + Text( + "Album", + overflow: TextOverflow.ellipsis, + style: tableHeadStyle, + ), + ], + ), + ) + ], + if (!breakpoint.isSm) ...[ + const SizedBox(width: 10), + Text("Time", style: tableHeadStyle), + const SizedBox(width: 10), + ], + const SizedBox(width: 40), + ], + ), + ...tracks.asMap().entries.map((track) { + String? thumbnailUrl = imageToUrlString( + track.value.album?.images, + index: (track.value.album?.images?.length ?? 1) - 1, + ); + String duration = + "${track.value.duration?.inMinutes.remainder(60)}:${zeroPadNumStr(track.value.duration?.inSeconds.remainder(60) ?? 0)}"; + return TrackTile( + playback, + playlistId: playlistId, + track: track, + duration: duration, + thumbnailUrl: thumbnailUrl, + userPlaylist: userPlaylist, + onTrackPlayButtonPressed: onTrackPlayButtonPressed, + ); + }).toList() + ]), + ); + + return Container( + color: Theme.of(context).backgroundColor, child: Scrollbar( child: ListView( children: [ + if (heading != null) heading!, Row( children: [ Padding( diff --git a/lib/hooks/usePaletteColor.dart b/lib/hooks/usePaletteColor.dart index 77a417d4..c1577bc1 100644 --- a/lib/hooks/usePaletteColor.dart +++ b/lib/hooks/usePaletteColor.dart @@ -38,3 +38,30 @@ PaletteColor usePaletteColor( return paletteColor; } + +PaletteGenerator usePaletteGenerator( + BuildContext context, + String imageUrl, +) { + final palette = useState(PaletteGenerator.fromColors([])); + final mounted = useIsMounted(); + + useEffect(() { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) async { + final newPalette = await PaletteGenerator.fromImageProvider( + CachedNetworkImageProvider( + imageUrl, + cacheKey: imageUrl, + maxHeight: 50, + maxWidth: 50, + ), + ); + if (!mounted()) return; + + palette.value = newPalette; + }); + return null; + }, [imageUrl]); + + return palette.value; +} diff --git a/lib/provider/Auth.dart b/lib/provider/Auth.dart index 36598335..260b794d 100644 --- a/lib/provider/Auth.dart +++ b/lib/provider/Auth.dart @@ -58,7 +58,7 @@ class Auth extends PersistedChangeNotifier { _refreshToken = null; _expiration = null; notifyListeners(); - updatePersistence(); + updatePersistence(clearNullEntries: true); } @override diff --git a/lib/provider/SpotifyRequests.dart b/lib/provider/SpotifyRequests.dart index 12af9a80..ea9d9097 100644 --- a/lib/provider/SpotifyRequests.dart +++ b/lib/provider/SpotifyRequests.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:spotube/helpers/getLyrics.dart'; +import 'package:spotube/helpers/image-to-url-string.dart'; import 'package:spotube/helpers/timed-lyrics.dart'; import 'package:spotube/models/SpotubeTrack.dart'; import 'package:spotube/provider/Playback.dart'; @@ -118,9 +119,18 @@ final albumTracksQuery = FutureProvider.family, String>( ); final currentUserQuery = FutureProvider( - (ref) { + (ref) async { final spotify = ref.watch(spotifyProvider); - return spotify.me.get(); + final me = await spotify.me.get(); + if (me.images == null || me.images?.isEmpty == true) { + me.images = [ + Image() + ..height = 50 + ..width = 50 + ..url = imageToUrlString(me.images), + ]; + } + return me; }, );