From e27b696c614bd1a19d2c6cb6a99337edf737c556 Mon Sep 17 00:00:00 2001 From: zone117x Date: Tue, 14 Apr 2015 22:32:52 -0600 Subject: [PATCH] Web UI working --- src/Jackett/ApiKey.cs | 28 ++ src/Jackett/Indexers/BitMeTV.cs | 7 +- src/Jackett/Jackett.csproj | 12 +- src/Jackett/WebApi.cs | 40 +- src/Jackett/WebContent/congruent_outline.png | Bin 0 -> 8425 bytes .../glyphicons-halflings-regular.woff | Bin src/Jackett/WebContent/index.html | 349 +++++++++++++++++- src/Jackett/WebContent/logos/freshon.png | Bin 39049 -> 28288 bytes 8 files changed, 408 insertions(+), 28 deletions(-) create mode 100644 src/Jackett/ApiKey.cs create mode 100644 src/Jackett/WebContent/congruent_outline.png rename src/Jackett/WebContent/{bootstrap => fonts}/glyphicons-halflings-regular.woff (100%) diff --git a/src/Jackett/ApiKey.cs b/src/Jackett/ApiKey.cs new file mode 100644 index 000000000..9cd8419d9 --- /dev/null +++ b/src/Jackett/ApiKey.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using System.Threading.Tasks; + +namespace Jackett +{ + public class ApiKey + { + const string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + + public static string Generate() + { + var randBytes = new byte[32]; + var rngCsp = new RNGCryptoServiceProvider(); + rngCsp.GetBytes(randBytes); + var key = ""; + foreach (var b in randBytes) + { + key += chars[b % chars.Length]; + } + return key; + + } + } +} diff --git a/src/Jackett/Indexers/BitMeTV.cs b/src/Jackett/Indexers/BitMeTV.cs index 243307c4f..611eab408 100644 --- a/src/Jackett/Indexers/BitMeTV.cs +++ b/src/Jackett/Indexers/BitMeTV.cs @@ -58,7 +58,7 @@ namespace Jackett client = new HttpClient(handler); } - public string DisplayName { get { return "BitMeTV.org"; } } + public string DisplayName { get { return "BitMeTV"; } } public string DisplayDescription { get { return "TV Episode specialty tracker"; } } public Uri SiteLink { get { return new Uri("https://bitmetv.org"); } } @@ -102,6 +102,7 @@ namespace Jackett var errorMessage = messageEl.Text(); var captchaImage = await client.GetByteArrayAsync(CaptchaUrl); config.CaptchaImage.Value = captchaImage; + config.CaptchaText.Value = ""; throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else @@ -114,6 +115,8 @@ namespace Jackett if (OnSaveConfigurationRequested != null) OnSaveConfigurationRequested(configSaveData); + + IsConfigured = true; } }); } @@ -123,6 +126,8 @@ namespace Jackett return Task.Run(async () => { var result = await client.GetStringAsync(new Uri(SearchUrl)); + if (result.Contains("

Not logged in!

")) + throw new Exception("Detected as not logged in"); }); } diff --git a/src/Jackett/Jackett.csproj b/src/Jackett/Jackett.csproj index 83c86cc5d..366507780 100644 --- a/src/Jackett/Jackett.csproj +++ b/src/Jackett/Jackett.csproj @@ -67,6 +67,7 @@ + @@ -91,7 +92,7 @@ - + PreserveNewest @@ -105,15 +106,15 @@ + + PreserveNewest + PreserveNewest PreserveNewest - - PreserveNewest - PreserveNewest @@ -129,6 +130,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/src/Jackett/WebApi.cs b/src/Jackett/WebApi.cs index 3ff1bb8a8..85a71b59a 100644 --- a/src/Jackett/WebApi.cs +++ b/src/Jackett/WebApi.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; +using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; using System.Web; @@ -19,13 +20,15 @@ namespace Jackett { GetConfigForm, ConfigureIndexer, - GetIndexers + GetIndexers, + TestIndexer } static Dictionary WebApiMethods = new Dictionary { { "get_config_form", WebApiMethod.GetConfigForm }, { "configure_indexer", WebApiMethod.ConfigureIndexer }, - { "get_indexers", WebApiMethod.GetIndexers } + { "get_indexers", WebApiMethod.GetIndexers }, + { "test_indexer", WebApiMethod.TestIndexer} }; IndexerManager indexerManager; @@ -63,8 +66,12 @@ namespace Jackett var contentFile = File.ReadAllBytes(Path.Combine(WebContentFolder, file)); context.Response.ContentType = MimeMapping.GetMimeMapping(file); context.Response.StatusCode = (int)HttpStatusCode.OK; - await context.Response.OutputStream.WriteAsync(contentFile, 0, contentFile.Length); - context.Response.OutputStream.Close(); + try + { + await context.Response.OutputStream.WriteAsync(contentFile, 0, contentFile.Length); + context.Response.OutputStream.Close(); + } + catch (HttpListenerException) { } } async Task ReadPostDataJson(Stream stream) @@ -92,6 +99,7 @@ namespace Jackett var indexer = indexerManager.GetIndexer(indexerString); var config = await indexer.GetConfigurationForSetup(); jsonReply["config"] = config.ToJson(); + jsonReply["name"] = indexer.DisplayName; jsonReply["result"] = "success"; } catch (Exception ex) @@ -106,6 +114,7 @@ namespace Jackett var postData = await ReadPostDataJson(context.Request.InputStream); string indexerString = (string)postData["indexer"]; var indexer = indexerManager.GetIndexer(indexerString); + jsonReply["name"] = indexer.DisplayName; await indexer.ApplyConfiguration(postData["config"]); await indexer.VerifyConnection(); jsonReply["result"] = "success"; @@ -124,15 +133,16 @@ namespace Jackett try { jsonReply["result"] = "success"; + jsonReply["api_key"] = ApiKey.Generate(); JArray items = new JArray(); foreach (var i in indexerManager.Indexers) { var indexer = i.Value; var item = new JObject(); item["id"] = i.Key; - item["display_name"] = indexer.DisplayName; - item["display_description"] = indexer.DisplayDescription; - item["is_configured"] = indexer.IsConfigured; + item["name"] = indexer.DisplayName; + item["description"] = indexer.DisplayDescription; + item["configured"] = indexer.IsConfigured; item["site_link"] = indexer.SiteLink; items.Add(item); } @@ -144,6 +154,22 @@ namespace Jackett jsonReply["error"] = ex.Message; } break; + case WebApiMethod.TestIndexer: + try + { + var postData = await ReadPostDataJson(context.Request.InputStream); + string indexerString = (string)postData["indexer"]; + var indexer = indexerManager.GetIndexer(indexerString); + jsonReply["name"] = indexer.DisplayName; + await indexer.VerifyConnection(); + jsonReply["result"] = "success"; + } + catch (Exception ex) + { + jsonReply["result"] = "error"; + jsonReply["error"] = ex.Message; + } + break; default: jsonReply["result"] = "error"; jsonReply["error"] = "Invalid API method"; diff --git a/src/Jackett/WebContent/congruent_outline.png b/src/Jackett/WebContent/congruent_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..441ce0ac8ba3d39b070025782ee9061649d88dbb GIT binary patch literal 8425 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 LNkvXXu0mjfP4P)M literal 0 HcmV?d00001 diff --git a/src/Jackett/WebContent/bootstrap/glyphicons-halflings-regular.woff b/src/Jackett/WebContent/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from src/Jackett/WebContent/bootstrap/glyphicons-halflings-regular.woff rename to src/Jackett/WebContent/fonts/glyphicons-halflings-regular.woff diff --git a/src/Jackett/WebContent/index.html b/src/Jackett/WebContent/index.html index 2e82dd0aa..29a9c1cf6 100644 --- a/src/Jackett/WebContent/index.html +++ b/src/Jackett/WebContent/index.html @@ -9,36 +9,353 @@ Jackett -
-
+
+ +
+ API Key: + + (Same key works for all indexers) +
+
+ +
+ +

Configured Indexers

+ +
-
-
-
{{name}}
-
{{description}}
- -
- {{#if configured}} - Configred - {{else}} - Not configured - {{/if}} + + + +
+ +
+ +

{{name}}

+ +
+ Torznab Host: + +
+
+ +
+ +

{{name}}

+
+ Visit + +
+
+ + +
+
{{name}}
+
{{{value_element}}}
+
+ +

{{name}}

+ +
+ {{#if value}} + + {{else}} + + {{/if}} +
+ + {{{value}}} + +
+ + \ No newline at end of file diff --git a/src/Jackett/WebContent/logos/freshon.png b/src/Jackett/WebContent/logos/freshon.png index 0b0c771ddf0abc321e70d43e29da88fab5fc7081..5d2bd74e33f1bccb52819d9af424b20d6c3b86e9 100644 GIT binary patch delta 11048 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 n=Ey=er_95<`39^-GgvyEU7zgyP8cUx6Ch8X zUIFm!mHi0w8B+QU8tgXL*8|yoRJx!-GX%K%Lv=k|T|IE_Q-zTBp$Y=Ra{~CEK&NgiMQ3{+p~A?H26Hr-rILvz|(CqN{4I06)K9O|Av^ z71l1N?2w7dZ#=0GCk;okxRt`^R;V)K7chAF{HCUEfn`F zeFmT>*$R0fmolX9&75@4G^CtHap+EXDx2r4FE`4GOr_lx{Ur)2QW19z4(_gekITgt zH^cRsB6`-FHkvp7mX@zhH8~j>+jt3mHBA!17u3~V7uWQkJ7@@S4?{LbLQ*E_;uR!_ z;cI_isQLcz)G|}d0De^Z98XLX|L?bI`1t5|MwWSAxNKJ6T^EKp6)V8BTMWT0QZ)6R zpNXutOc<^=6nvWNk9uLD=)V`Jn%n1ENt|w(?{T6ug|zx;aZ!g<_=Ec3wCv0S|7*?Y zBO2N=F2U%zYpu3j6(+^r`FY`Sm6DQH$i_|Zn%*O6Og9neO=xIn$aiU1HYJZDYdr1D zDoQ@F^;Pz}ir$yJdVxBmcf9lIQ$x6}p0f7I_w*Orl8UD30qci(PuDd9&o2tWP19M? z(C+4a0Z$eFEIG#~bDKRysJhkZfaUL-N$Ff=^PadLYr%eg=jCTdehp^y9s*45XABqJ z-O3)dvv)TF!!*a0J>*`s=BD#kiEZjW3(K0fl zSM5VdF;Q&-&TrzXhgn+X6f|{%!3Aa||A4FQ$)jP@uL{O0thIu7{+@K4tlRG`1cVM2 z8i-c-&rcjI%F4IY{~~SZWj@NY5{s5>%rv5Zh~NZxK2Cb3Bq!TsW?kj!!=V`ewPBsX zq0~|zDtr1PgJ>ZfE9-WHLzF^oCCcNwSA%!A{{xZwF}`W!Uxk~1=r-Iv&U&1S@-G|NsHLF6mGp$P} z$JKzp9jrq&_T=8)?R!~r{R1YZPWh{{yUuJl6xp(Q`pM$bjk>i74c!)%L{Zqn>@01N zogMsaP~wp@0U_?ND#g0^&vz%|)9M{VHs`*NnCtC+E&;^Y7>F4wji;v!{=7HL{&3-8 zSY#oIlw=fRiK=UcUK1zooC+^C&Mdvw0iH^v_u3T`(>&dR7aOS04%!%mmey9BWP8hF z+bWzfCc^lRT57W2q^?R3Y1Gptnhr!u*y~?Ht6HK8?3&Ap!guTeznsNPvetSFwdGf; z1+1&(v@Tya^yBFJ#sq`@%@y=|Bxo^BEq7plszxtoP z9VWF~#NWtIKbW|f<5hj89mqC5eff>y371i& zWBFlQ%#`3~D@x~KZqz~A;{vXLlTdfOA`))MXMwOA7&}Y|$W?pMBbtsR(mY!YW?%OF zm)_~w%(GuZ_echcIc?B;(R7jaZh+Iq$!cJ;br2Ubkw9|+CUhY2onc}U%|^U3DXvD4 z0)zX;*7((upRUys=t0$nnLcmcsIx{^qq1KP%+JfW?$BeP)n>Du5Lyb|?^q~V(R;QEFp*x)P z6O-PT=&p|}O%I-qa#fc4c$C9U9fdi>Mli>fI;g8USj3okHXIEaWcI9wkDby9!2 z*LD_@;?ugd#i|v&>Ohh)cgzm|b?7d1_Pe}|pVOJI5h}ti2^M2l&mHiafETB>JjNn> z!sr;3fQi*reArU#bjz6lB}DgxbUQ^r2jwVLa&O5%l$Vm#whzO2Jy8yO5G*MWSKy;@ zt5XbV+|9<84Ph&FcF~VlSk&Cx$)KfcrX!4zwA@%2mwAhyKT7& z3K^C+*upT6S0sH%OM{qz>DZu=3a^YyX!*a>@p4wgOzUY%)7)?*0Rc`OSV-&=Rl?I0 zf`Gv_$>Gb#v&~v@Pki9fI@0U9 z-P{~uC;bIVYo9jfJ5fX4np31cK0k|T*_a8XPKEsRw<(>P(|#;q;}x+q7fbAl%}39**tU|G0t2Var>40!?yGjgc=2 zNKS-I4|9xg2J*RuzN9!oI9Z0m%TM{;m_Tz_NnOKVzs7SHSVnug@MVtu@P82Pg+RJx z8z31UK74rHkb{<~g9{J^&@9OeYm|}5lWW;sUsyqGBQE`)7g)d|BXH)fXC;{XZc;Rl z_mTSM_}8DfAz-4Gzmt(j$n;4vV$jDk{iuj=m&#-A6b2(0Ki8Td;N97%%s#AF%~6%P zUPH)vd;M>8jiAyhhD*=b0q{J$$FXpx$)xBvIG%9xVW4q+{nJ28cq`aCU zTSOqFu1v(C-@~YqiOajiYZBfRDR>>QfV~fp@YPr zTYvumFnh-F!WVi>gQtV97lo>Qp3e3AcY`r(AXbr&W;fUlYxC+L9qLp&l37W>zRvzB zu$Fc9qxOAF-IRj=o@>d}2XB7N`sLweY`6*`ud$+!(KsYAW$nhmQO{Jo_MEWtNn z1-QXMGYdRdnOMd=ou+ALbR+YLb=;)TJbqjo*}>?0kx>|zaN z_2E4`B^$Y>vWz}A_D);r{?7516YBViJGk)e{4v?>4j7$XyfTrp!iP@{vWg&aQ!Sbn zg2J7o5)^0&vZCpTvO+f!Hd0BPMSW4R@^9w!7sR2PMwbuhx+iMaa4UATfUyD{o0pLT zIn@&Nh%+vA;~0UY*~V82i|V!5`*?-u3To)~Lf3QMy`(MSBugnav7zlbsV3~Jl==FyP8Zw*ldG^; z$m?x5UY+XjsQm&)CdcGQZP#>sSK+u93Dg$n0YP47RxA4#g9j8G9(agFDyZh5T?5^& zM10I#x@pTm6`?nfyy=%w;f|+g8d2VQ@LD;=Kf~YgJwJyhPQQoVH9Iahum42Z2a?=9mM)j+ zN)v>UH}|{~$PLJLcB{mHd3Z(4QKdVZH*N-|{E8h`h|sOG%{P|Fi;9}QlkUEKSdHf9 zEsXq-lDBAOa@mpSajgnvDBwa#AzJaoCu5|XMV2fVXMLIs)$lrJ6KXYSMoV_s-UezMXPS*qvfxUwtQ6udF; zioX7g+fSiz49wM$T~LIwql?69Kw~Voj^YYg_YYNpc*q5~LPqr#_Ox_$Pq>VoO`|8wiBQk9~Y*C;J zv$p->y9E1+Le56@f}xlA6?z=!Lq-$}@q04mh6;T*l&SyL3=JS*?FZd?Si)sWB`#i) z$upa=6`KxzNN%=Psx_pgQV6#)hmYDp?G-+1sc<$1jBSauN|@S|E@H+Q;5{jF0B)0m zZ-6@xy2o56)?Q>n8x+)K26|V)oDzihtWHf4=6)rz>r=x*9AIWxVZ2r?(eI(-SpV?o8X8Q; zL~4{&l{46ag z;dzKm+SEK9BV9M+)LXx`sbIYh`<)&J#DF1%qcc#E)4!~G(cvx<_p;dIy-z}b2vM1x z3Hsc^fVlt%Cc)$2za!g&WcrjdP$)2&lgNmfb?9ylYyO8@AIa-)2EY~Ax*MGFkLBP@ z_zFmx#bvcSw8{m`R7i3A+@J(mrCoh48g==0n)YS9h2h`gWHE4i7fE_Dkmt*RQYH2r z-_0(sM{h}1DJkn$G&Jq}ZuHdgB4l}EBTru556X)_TnNp}94A?OVfYO-TgLZJtV=bt zmG73S>6CNb$=)~yj`vo#G@mt1!Q|yq{C>Qx_O1Q6j12Pj{#5(EJ}a;R#g1tC=rF0M zJLah-Ej?-?(Oiida6>`Ui3=IYg|{5y-AYGiY+mI&_{!%&J~~G3hLx_>+#~&-o7*a` zuozK(S7TjcS0x+ZJ^w)n$3?xt?VMVRwe)lpKSc-H_fYO?tMGCVP^PyYSpy|~?AIn3Vi z$n_!o%@Akw(>ppTKD!x-HzBn@1l#YHk0-@yGZ}z;7Zh7I{3tE4khDH5FL8StJLKgj zFykO~#dG(^9(n$v-_%8;uA8$1bRe~zWx7`bsv@pi!P3Z})?x@!J(BHCYP`2P_B z$;ep&l{tYG*>CJ^ceKmv>ON^WIXG;^MAB5Xb<>n*jrO>IU(y}itb?4rqYQ(-ZkFs- z8W}Dibfp>nYP4ZiSYqv6MlJJwIN5VIFDBt{@b#B+G_sO+nTX11*4ukTMhM# zW1HF{Sn~?ntCDwoEyc}p6Oyl~gucHR_l=WQ^X3eFZ)bo1on^JPLbxrArYST906jbc z3B%wmet4@sP3(#~n>LZy{qn1juOLsWZq!SKQp?r}?r7WA^6jufq2wImVRBl6EA+xt@ZdVTXuKlRzZyJHt`Ycul9!|T z<6uNfq$hhVhINo=8Hau-t3gEqVumpK>*`KT+@G8!cwQ^iviO!*a4UAY5?I=$GcuCy z+4#1u{d?I#3U;MZ=ALo8m>DkvXi%)P8ssr}0gIpY1(=D-x+Jy3Q_cDFU;IvCD|mZ0 z28PJd^><#nTqTy@mpi>$?arB+*L~Hi*G1dZGn1T#Bc9YOiV+{yYR_;0UlxdDO1Bcp z6&klW3iAqyXC5RtmA1;wzd7bh1B*T%TUrit~yuo6|w8bncFF4>Z=1 z&;GIxIpcNYHJ|z_rkkz(s1eI~6w~IkzoqswqHZkf{7B=#9g02|Gd>Av*b%?qmUW%&%=iPA3`ljc%jkzYdhvo--#ZpZ`8-?R~#5L92HJ`b7r@HqXnG zTYC@p-vxxEZ_|n%2R0pDPE19ATJEa#Jas#np#!BENEqFhs1K%fTVMDDj`T+#6VF}MwbYiA_CH(w1A3$ zI3^+~f|M|%o8R^R{q_0tdk%4S&NaBMJ>zkI+;8`1^b}2E4J|y;!p!g@6Au#v0=an8 zNFM|K-UPojp|s#n^3pw(8hGVJMg=Q*q`H#4x?INCMXmqyitp0@eTBQEDTGv0k&{EZ z;-nQ-6;-5FR2AiwWqr zV@O{HxD|3!U(YJ^=ifGWg2<;}el8W0pV`A5Hq$mX;Z#!p&VGytGnNr1bc3x-+_=&x zQF3j4T;N^!t_P9wgujzb@E0_CgEyxubcU=zZm)PZkT0{h@-Rc@%jriOiW{?=V02mY z$BdU1#qYRt?+ef6QKM*_PrF~{C%2N8mnwPD0D?#$u-#0A>Orv(2p*=pot)eOJTiQj zjuMQAbwS~@(Wga9n=b=jVwm8W9Bc?ktS)Pkoaoz!acD*aD++RF;!=qebW#wS)2IJY zZISDDM@5z~u`CS|jf6Zo)q_TLYctW#q^J=d!6A6;M%L&Jba~k|0)w6)UJ!p50^n&7 zmk}!PF)eb3aA6h(T@Dq&&Kj2>;q-B_uhJn9F5Le4l5rGt=sIe=bJpm7WSfsrOpCuJ2!WtJ+CO82 zXfh)(Oo*M8;h&#t{+$>4PY;07Jc$y@M2kElVK1;MuOx@Hy`cZ5XnIqGXn}#u7Ow?0 zkDwbyzUK3k6Rgn0TMv^x9Uj|N{`C1y6KyG4W`#jqgJcxj**ooU`5!Z&prZzKK!6$) zhGOy~lyYEHh=#}0zo%sCBc4En7UIUj@na|B5sZ*LQcL9( z7ByF?`4|E?I-ma74;nPs={<(T7a#I&v?k+M`Tz92<3f^e*NrpVMl=3`XQMC%0epp& zfR=GD!T5j41Hj}}6`QvE;nN=myOW)7RX-eQk`c2DE8`F=0?_2(r2Aa==$~6M&>M!W zHae7F6Lr~I-1zS9xkJ)e*g0DI3D88d#mZG#OSYC=fS=1Q2<%Z*Se{&2!6+_t+bi9G zEd2?z^un=OkNqJeXZb)4jo@Wv&(Ii?$*`$CEz~P&IKYMMZl3noKz_Y=iwRDQsF3`a z%6EcB;0YKb^uz1I@UY-WVIqbJ`|}l{2l;{Ps6AEAt$=bh*#g>AAKRIY#x^S-E3cm% z8onJl8I!#Pr9okCmZv?FKg?}4yD>}Qd8=lFjc!zZyly0Mx$@&0!|}e1)pH1z9*Q*~ zJPC6ISW%CfeA-%7J6c=OP%O>UUZ2-Fm?uanEf!^7!E@364r!M$MsVHdFESzU;L>(K z?Sxg%f<{G3)Sa=P0#oUjdnYG8+pIoe+8Ciu364PnZbTW3DMA1#idWhe6~)V636)7` zdUJz=?hZu6bz)5ygXYk3E7OfZG0_N?znB10*7?hK@qof~6uP|8OrK>f&kLYK zvB8sI2_BpD%%MHaHbOkHXb0KF!(wMKF?n8O>_s^tjP;x66tC8*{NZ45WrtIN{^P%2 z64{6Q?mm#ox53Z~CVlE#qDvAUObIfTsKN@GnXJ|&a zFeMA!aNekFkqaJAn0(Jkgb=KNd_Fwv8Cs&8Cpls90Lw)y_<3n*$$IF(uEC83^4&?Cc$H+u2z&xw*Sx%3az^Z{56>o(66nM1tmg(c)3N7=aD- z7+FTh%ks<<#qsp%Lg9D_3WY{wPI$>k%O154w|MNyh?nUi9-h3YP)@!8F(sSyJnsK( zrfG)gg<_edhwX3M0h@l$;&eYrOco9RDqpaHo-6ZZ@~7DWG%1vTk3 z{xek{%F0l(_8~0nP;v0%!q%+}_6s)Ix=+S)my4#S^@ZSNg8P-K5Of!(_MTY#B7^33 z+}FKhFJhjF+h$=Q`X>5z-H6BN>avNo(5IfaYuox4m@$d^n;Ypk`@Y8St2-4oi_W2^ zEt1*&=g%{o0G+{YBwxE$k|ioiV(2kJo|$fj#c{ZLY<1j6J7e&|CvI1Y9mTt4+(enf z0a~;CT$~7d<)aMz{o&gdNw*NNyfW8KHrKkpvvT}()}qd7k8Ze@86p+Gas2$PlZWC; zlIMdjB{_X_W`>6Db>p_Tog}i+d4079Z#-?2EKzScfX_R2(MDCJ6MK>U_f zida9pS1;6BDP9bEZ`<4dH0HH9D6fBT944BqF0bu5=v)cG!ziDX)Ku*0eB+?+D&4pk zR#&|%-GuW8auX66NmkBwPU;c+S^7e9a%$<+C0@Sq%@4nITEl`_IlA$8ne+NWKZ29t zT7lpOaDAwP^7`2`&sMD6vquS73sO8*mvJkubIUPV9$ZMdk2Ug0w+s+{P`HdM7rtoq zoF+5fuXEZg*AaTJEzokB^}UJxtf=Vw_ah7M6qt}SXP%NaKWgitX+$C;PeP{e+k8os zm6aVH9Mn846}W@nov#rP6EnDr!+!0Hl($* zPI7%39V8^;G3DFc-Mpw;;LbitplQ;&0aNro;5NM8eQ(-DT^PSXH!Q!_aj-k)9J*ef zl2YLN6Mq^sns?z>i(iWa|9C5oIvsa%5@)9Az0w#@)%#o&d*#S}&G!ioHhTlTkaYlrWSJ{{IMZ*;Q^ ze0tf)W1IXzgHp>eMXgMjbb&iEo*Gug&s!garoT>v)=WNu;p`rp6kYZ#S5>tut-U{_DKu-6su zLMC<#ljNExqrr7n5>cnJ+K$y(8tR*QeMnJ%yGo@eFxqnck5`kkO7g>Z`E{X6JUg9x z_Ei%eqiml>=ej3}|F&9Eh5!@w)s{-J;t0*+VHTED<<*N*NG@E}s`fEOHaIva*>{SE zL2vfF9v8U%KBND2_Taa=UFtc`oiJfm^YzJw^9ZYI>u%&5Ywtlft-?=IUxrok2P3qL zjY!^<&kE)`YMSyt$44k$4b0@E-U2l7xX>R6^cncx^$XsoIJToT3{+UZrg-(-y^l;?XOQ*v=XFw!-;OtvJu)s$R8~*o>ssZe7<5G|Bg}IR`DkR+|{3`yd z{Ev2KEa+rDk(2qlz}1PNhvLLEOqX{8E8zvfwXVgXJ#cS2a-xyCKQJ8i=QB}KPV905 z9QT*VS)4kWxAm6qI}mwMjR_%`>f0Y&QN!Gm z#+Em*=+A}`e-pKsZw&o)w_HAUxw2`7yRG`FTaB%QogMOGopts4kCvBBP3HHsk&2oc z3Oha2$o^U>wo-ayX8oJJ=c*|y<38<8P1P@7?uFSr*?MbN3EUgXu96YGRqi6Mq@YxY zepx$Sz!&&uku+SS9Xb0Ii}v6O(D?HsEBN4BFZrdDcEI*`ALZ4DRn&(lJQ`i*mlRU2 z0{tSW`&c6BngJ6myPG8v(YqhNmEg&o>XVzFUznTwvo7T9AkbZF=E$&P^QyV#>Bj-t zwr2O4Q@6TwBY<=_MFHK|m^Ua^w4d&J+rDW{Jo{-x8|*O*Y8efqIp;sG^jd|JCh^#o z=GleygLaO&FU#3=2Ps8G?d6{&Gj3f7-~Fp`f9_x?Wk?z~(SA}{Jv=2SkPr^@^9Qq9CAUiIUhj?>SnQ5zOEHjfq`6;UNc z@UzsjUKU7SrS&Z)RyCJuUoAlnJPlJiAy#f}wxkrSKF-Ix{#oc7kZbXw)T62lI`IH= z=if1cB5{DAz7hHpmqzIRV^{mL)4em(5OaSH+-$)G_>1M_N52fD1Q0}MALb^1!Y8Z4 z?)bVXt+sg7uNBG-w2^XlDM52*zBKc*x?mEAhe-v&_5V1yhZYhU$gwVZkwhH1xu{OlkD-dN;aWe6%-! z_4+yqua_Z(1VX9r=oj@mukM5?=g%~qJ+Hb-@!I*Ec^^Oe^{dh3O+}ua_V&}Es`Y?! z)u{VG#KVJ?Up-A_7{tupYYMv3dN3r2Up=VI%0Y#>4!E;1cM#|;X`J$ViGZCnvu#R7 zZD*M?M{_*GBnkTh_KQ^RFJOq6;JL(i>n$vh zS0uU5L8g*#DjPLb@&_zGi)(P+Mn?01!K%Syu2)m3)( zY(`>RWaPh4A!rZy7y_xi%#QszfOxs)n7t&&u7LWtF%?*X9>)X?{zc~qr8mB%W!y)3 zY+~#@Bz9{md>7aG^upFl^Wp$raOuVoo>^DimdPx$nrNc(a`8Cj6i?Nm07`$U)dIjHki{7*V+^0(PFO)&;^q9+fuBvk0vhu?(SS1(ynAv0T@Vc5#%_6J9N zAs17VP8ZyD>QuqMJ7Eq$rL)H#B^U}%8n@Z)ILKz2N#axZ-mSG!&vd^usx8X4@4xpP zZ<-DZFSX=E{e1AZC|uzE;`Dh|6n3^a;@`umuZ$vo6*t5WW*-6N3yr6T-p=cPB8_NJ zf~tECO|}lhe*y?^@7`}K?BryFa|H6DUzJ?N+?)xdd5d9!lyN|TlB0ECA`CmVrP-s1 zhZQYe8M`pP zEYHHXRzCCh8^=Ihq*kOb&fdRmEhW(1e9*-FM-5lED)aT3z05T9>%q)xOh(?V=|l5i z*Uoj1gZlDwXXU7?x!1C(V(EVRjiWfy+h?`!o?zRB;)Dsv}&sz)Ir()0K zCK_?di~Nvh7)UfV+yQDzW+Yga*g(jvW-ZgTp!r~0h<$N??>L)cxQ?U0B7G+ zh}?+N6;8MuAcIE+v4h*Ea1w#dNFtub@Rn-VwQpvjjvDwo-QvmP589j@3yK4^WM|=m zuL$310Ng-IFJJ%G`v~pfp6Bo0Efycw0o)9F<;|x*a5^Zo63^gHHxJy3{A2RCg&J|R z`pMEVo4R`adpqOw4Xm=^e@06+F`7C>1 zjX%oyYcwgk8(-zu_%t4142UqUw|zot*RKY=CV4h4l*yA^Lqb9XS{8DAHT+id3Xt0x z0S6IPzqgmOQ+eBzGSQ2H4=3)YVZfyXR$ULNKhQ46>P*u`FUo87R3fIlJI`4HsMJ1K zVj(X_v^2Lj*1mVL{f+%f(OPM#3}~5rrJ_jcIGUoa{$2KK;7MTzX1hX8M+8n^QYe{2 zLuTZZUi@~XKN$)k!caNi7Al@Dc;#aHdcdbzYGr*op5S@VE)ZCN++Y#VQbr&VD~M#t7WM@Owe z1HNtxl^~5PN7L75PJip{4`;c$e_J*v?cyTx(9xry1B&F_H`Id#44_nG@*~T0DFKE; za3oB!#0qZ2!?=({yqsH(D3S>}4KYlh@wPH2VzT>({~O3m+ZxF34|Ys_OD`!YY2V~~ zmJR;L<)FrqR~g8l0@c3x3&6j{;-kMW>&8u_u6Q@(<&o(6+7~OUIf0X=Q%{*0?t~av z0b66>q6`X3t}h45KV`^j0-N&}#vO)s94>#JNS)b93276{Uxm`?Fw;)d!cZut%L}V8 z!Ll+KA?@V+rFgyB*7ec(`EQi?^>rCC5^~4Q3nkQ<^FC;^cV>SO$U_ssexW{;5kX_& z9>UpYDg4FKw7#x<@gjsI3RDZ?8HuuOL30@$2g4cVRu$tO z?vkvbMJmdTO6ll)l9H+_FZZemd6Dx^$L4~pdP?E&qG`{yByl+N)JKQ=l99U3DUv?A34U)Jo|w?%atdgrnVlbprxkTOmsk0RaNF@ z{ce?(oo7Ps^TU;C4-CFT1yM+{Qvdzf=OXwoWf=sEa+lfjJR${Koh)A&YUQA`Ko2sg zXGws|>Zn_t2<$p))QdM(0%;3^XnadXP|Bz!kmBm0UR$tKQ*Og zn8F`<%3TdSpHbZYCLU`2&ypR``v5*@9t*zlH z{93y{vlp4S^IA(_Y@q70t+E0ONB7r_ES9LHQvBDC&sYoSI>AwA9$<@gm*?(^ryiM* z!^6T14Gb?j8jH^5I%wybR8>mRKyb{$N!+5NwFGG*G-75)Q!Lj3aCA&GcuIZL@7ER> z8oK{&zc+_{ctHa)>)5f;Zk#P+HvDCDWhZ<+97f~UV7CSv?8DlM(jXPHlKPPb&`$x3 z=h_A6yF_6z7uH+-gmQU#dA_*GpPbOi_1|{3SCTd+*L$pQMb03<+`T`wb3%>STGcOo z?6Eg_raZh;9C~aCh`9v^2h&DdJ+piwrw@fZfgt;mV$xLkQy*br0n_8-@dPWQ_^73$ z7*eifW1fD^b=}x4M~%IR5KI2Gm;hitnQ()hM2O9_H4tZFv z$Aa?%?Q{Vy(SWuIQDKnM`-jwrj*|wtuJZ6}?QA~9TbPb9!V4a8rBx|R$d6s9z|OLx z@EojP2zQvd&bL3}c%qMEhQb}ka{HL#X=zt`zUoX>~K_a&`o%3~~wdM8YwuK+Qw=y!ad}U;$ws$Yh2OczL z*R!6aV?@|Kxd;^vxXLl~AR~3Ya@|79lOE|opoz$O>7&^$;ai{%PU!0Daxfel?<6Y% zrcA7YlviV_obMh8Jnpp_{j%-bB;c=PFW29)y04WjlPq>?x%=m9!t1&^ay>Jg9@5JN zgPc3}92_Yc`X_8;AK`oHY_zbY)+@Q~?bJuuSDtw=TI6@;LN;CnU()j8a1rRn3u{LG zJD%EWm*zL04Bl(Q-0MMBWNz-q2igOTej`ezxWnV)0)b6j(-de}eD@d~F4VfnL~}<( zL=bXL@YltFlgG4~Ik`b}U5v38%F0N~tlblPj&OPreF<JlPz5S(1k|&dl^1YWvOpH)(6T`=Es;U@e5F$_*CmYNF>b1jw z#j`#ke7i{gnnWRH+G=Xo279+zM=trd4=Vchr|>0yh%snuZ)|;LM4aAD2?18~ooCwI z{p+00c2!Qp7ONbumNY6y(7;Wg256zr6oXk~Xb#I(G4-d?W|7R*rQRKt%hOos` zGQ%p-jQ=9d@2!V}1;^cRFXp=8h4}8Ul6%MNM^Ly?xmUwC52aJe*#^~(B-*hvSUos6 zxU;j{$9ok*cgI5aviLbB*d6-EoqwLNK%UHV&3v>+QgDE!- z%E(3Ehrv5vmVs;yb#-x~cdt-avcAyer~Np&e#NA)wiJYt^u(6q`QDc#QU37lM~R`` zfvfk$5+Dc*e;C`i&ozfQw^$Tgs76XTOoG!m%NJ*Qt3Vi!VwJc?gG01T_!yPM3JT_2 zy2N}p7KE);tF4~Xfz*=$W8>n(Q2|zqMo+?kp1X}XP+=J|Me^j1-9i(eeR6XczJcy7 z2zB|&juI-fsG#UW)e`aCcF>Zr%CPmno`s&t25n7E)Vcl83d)-?FNHb7}}c2BH)Tv-sTI*%9P<{BguSeG!2u2%S_k#amQbYlZCc5}QX}?dkIdZ^(%z zCBp9dMJ33I(gW+cV(#vwnAyGeXL05_J0BFxwf?KJ3T!#P4s2ECE+_82-=k}%4i1_w zwpD?C5h$XIGy=UmJbv8#pf#Mz+jkKv2%wDa3fG5xo%sk0q%Guc{{r%9P z>v#?r@1|~xeC?3EG$-=m*?ApMA|JQtoYn2Ur^eCIUB9pu75nxe0B=>1)DWl{Vs}OYO~y!yX2^66;DU-ZqLpgr)YE zy8N}5*7B;BWJ2~qg=2537Z&B_{#{-x#rtLHLIh2qu2%655{Zl{Vi>5NP$mY=ismK{ z6>7Ap>L@6xdf1WJQzsfr2}yt$TVu0N%Ue5Qd)z_Pd^|mENtfNl%-Jf0416~UE@7N>AgYXHUl&luE{q|1`K@N zSW4t9V$|$-*qdbEvbsd$!dROl#oS zI=igq5pYaBlVpgXMglBO&RsPlYSBNrY#vKE<7egie>q6W$ZYTIR3xj{zbb{6;4$SK zg0H^62JsPfJp5k3rsS~J(e{vIcpx92`*4w0BTxI{9t$(SW@uUS{|Z!#L%&$mLPqhy zs6f^eV%53~o}*8y8qJ&vqoC%UfHvyZMAg7`5 zUpZl`r2xD1$z^k+t29;XIF3SbeNqEe>uY}Z(#GiEIB=Nx;za?~&`{6&DV9%!%jWIz zsrnZf1qHbj43r#&2}n}IeKVsNlr3DBOE{^d@VGQ*6Y1d8`uZv;3?X`TBeo6>k2M&@ zu8_HL_>~+&c1V ztc-);l(99E3d~I(QC|{nXHk3<D_Kmmm2M9eK zAfkV7eG^8<&Bdz+b!-joYAnQfo@^4IX0WsCSh1YLeg&ufP)J*Kwg2pi70)EieGl--IhJ*4U6Quxd# z_T8h(Nfi(c**oFN5M-{jmCC&-D?J1SK2puvzCHVKQ zl_~rMLiCEJID(l&OVGw_ddV-#;lPQ+?@$p2sL@f$tv)+xV0ncyv@U}#$2@_(xf(W^ zxXM$SgiK~!AM=uCZf@omv>>oS%9ibf(!T~*)>VW*Jn$mgHA-K-N%TD2-v{E6&`bR4 zbB%Uf>{DMeF_Cn1&=^9uuacYy$T)s;4*5^C3l|x^sjN))8-KBUh)dNz20M;QTZ!!* z7K=VNx0gMFnxPwSR~wL`301~rhll5dAnp~EySm@MXUV2G|7Z+06iOF=1HPS`thl?6 zV*wVPI!je?^7glIUn;W#2wXqv*OhC|mh2{PTB3;rC;`SQZ#^BgSeSrC5X(5W0_$pW z8X6mGYv0pHM{S%?wNE}|P(#Pw?eVGJTljo#sAo(fef;Zf-N%Bc8f>oKtYdq`{nhV$ zpIkt$Q=h(SiKS!cgyOErK|d)K5*2bg_pT=Y+*tA`o%T@lA_f5elLhaOzdbG3az2{( zAA9|u=@<+JqRWhIS-gDx+eCTy$k)NNi;#U;1<_&*6OpbaF{M} z(JGht#coE$2f-}vC8i%b>mxHpq5OVW z1?xsK51qpp;gaq!=t7|IvWxNO-{@MtMwDOqM+xF+CrVgtu9VICkT~6*k5~QVs09Zs36nO#JPU}p5&Ru2XdN|3fV}k*X9%UR2*~c zR{N>mux~szn&!d~_>o*6L*SU;u{9*m1&k$nd`u45)XKoI&YwEau8Szvzd+wh9}7 zvvyq5dO!7Sqhs={b3%LbSL%7a{qC*dLXGgB@@qNlVg!BS<)u7sMkozNl~&i{b#6jK zGg2q&7YbVm3oLMaw+rPrP`(B+fD*cmu*5P_uI4MNicG=z2D{(;|9Zd{0^>glc4MRS zE_LJjx-!n~+rUZjS^n(Ye%l_O4iL5XVZj*swrbgk29x7QkZ)HG5D>nBpeQ9I**7L57~W$k?}Oh82-2fHleiOPE`z$X-L9H)HU;bh&WA^jehRZx zT~@-Li{^lTsFf}w%ulAMxevE*e*2UGvJbZ}e&zzIuV2Lu-jIjVn&L`J?Y$dbSFQfj zueGaacB-&LoX6&Ta=AXk64&|m?*g$RRp)eLYESbknanwun1B_@xQT*7b|Z)P;!Kn| z8KRW4PuhSZYRB=yu+Aayu?LNS-%!uIB=z)B3HJ8Dz(A_bVJV0+nwpw)P_oOU%w{Ju zSXtdT5(-*^)RWY+Uy{y;$HF>cp}wv=hbsz10+uVj`zL#<&d*n1TUVBbztdMQ2t}r# zze4Di)UQKdQvyT_6Zs_<9VA?r`##L)qKPiKt?UX)21;mU-B0a62?H;%f8zWu?V)^a53Vr7DyMM8M%c@wfV zn&bO-8AqO(25%M7`ZdS72Si?Yjzob`-vF_Dbe>o_(Fn!^QefRVT%>rKM&F5%u?aDJ zPEPZ2_l4o)Vx5qcg$z)nn@J^Inghr9P07(;8!Bu9$5W03LXSp2EQGab zYu5HEnm}~9{J*s5j07b^;9tZ+4hS+gRk?{2Qxh{@&4^Lt;6=^q{pU}6OfgLKZ`0~+kAD0!{cpF`%;o@`nfAwIM~uUq=pm&Fo^z1hy{iE^OX zkzY{oqdju0Fl3sKUYn%_hOGqK{FRADU-Ol|V&KrcuV41VZ^nt*c#fh~%fji%y%UhA zP3|4X_a5lW6A7D+O?4GVMMwOafh(>vdu1+zZgtZ?(lX4>4%~rLpNQj#$wd1s5#qL1 zs>k;FyY-H>l;2LX(o$c<*uWSnwFN|$AyeUJpV)`b>v=34?uh(Cm*?;)1i9r~oBPjX zN!vg1mYi~QG}9d7>fyq6Mkf+pI91TizOuSn;_(T!8jn&hTwYlQ!)9Q|ICD1Lgb)Ff z4g5SjY7bWVfK=_x9^lx!SThu?$xcMVl;*9b3mr5_WoEMCpj+Gbbn2_om0RrW;B5au z55MgCRVWPRVWWZTR=gN(RYA#iioo_)X&prLgMvJiOB@kAD44{r8MHmy)uW(522OKz zq^}r1_>zT2By!L)J%>1PrX(W;(GfG16bVQz1@MZ;ew`w}V~u}o{jdRnXOj|75#t^6 zzKPiTJCTic<4Hb@p?lOP>$J4IYE1kFB1zCeJ2n<`&MC|fxO+)h|KOre074*MNMBgn7(x9TRF~p{!ug#5{xIGBtnc35=pzwlFY^DK6g7`63i zn*F8oK}E-*P?xRI{rQj5H91;Z;WzM3vvZyP;_-NniaKx5cq;!-lI8sx-_b6=#nl^K z&=L^xMf!z(Mh=2Oj)S>Hou_hFPynx5*q6r2<>djPdvsKFHS+)eMv4SW`&yx|+UtwY zHKN9*C|+tCT8?ANcfEbR7|HU`rE;shKI6mZ--g_6U0GBHN2^JlAN-(n_c;N#7QTz2;}*0-)pf_eX=u z%*Y6toMA+I)fX|GiIGpfcri6<&IUM-)SnMy2nbWX3 zN>V?2k{sTubY#|HGJIx&t=vi?^XJ5bKtfmfEm{AW_5tMo;!-|mCBh2<2gfZ6AnsZY z+MG{x_tjATIwr8M4XVS~G&anGkR5P?i~7ClJkb*F51iep8;`ztB%3|ZKlcx`%bdgu zG=Ro;K%GV=x=8b%$(NL!y`A`yVR2zym|&HDh|Tcm=qRbcx{h`5HTt!_X6|FLs_N)b zCE>h0Bn*PU!yG`9gGr{;=OMw%fC*_3`!t}z?zI&M3i=lH@oVy}>i3FT3JoFD)0Cki zFmh=+utF8k+yQ%M&7%)mdzx>(_xO8|5gkCXidQwu+9yV3HV;)=4=5NT^=Oz3Qg8Cr z2wy1|+g;a5`{Ys@@JD?2IgAa>7(;7bui3Hi4$cW$iA7Yc)BT=k!CWK0_J!|9>*0bk zBg^4c)FaGmY5T@CjeFaf8M2{Kx=I(}CfeIEd-}GyW6F9+eFxi0>k2E0w%?9aIsoPL zaDn)4y?xBL!K`Bw18ZLXpG{!tUR_3jgnB+4M}DC@e<`8BJ8#-cIS$#pH+__!oIqLy zwFQVCIhZ6HeQ%R8hyLJaHJL3mROtOhgvo9bFwCe|gBv;W?2)#e_#4n7H>p=L9$T@v17n_~)2%Mf*XoN`CV) z?SGOT)8kVo`?%Dcgq_U+u|I#@HV;x9WX`@Qm`71ds9#J>-D+D{qBcrXaAU6*KzC-y zg-e9w>ZMK&CM~NI6*uwdg#hgtIdyf>%%pDZbmxDcC1rJXf27v70DsTx92=W`DgTa6 z)Yr@(kVl*Ldg*FCSk9YZ?sRXWQnKUsyQN8k}F{iGre+=jLLc zeG9bz{hQOfL86ZXJ2_6#kXHwpI1DCMlr(-{;|~`pb1>vV@LocRPGj)V#>T5zxa%7W z+wi$W!_rrmh-G$w#6iqr>tJtuFZeOPRNyYh6IMu%m2f^$e!HI+o@ROW-Bl)XAdN(b z92MT)W|{{@d%#jJ`>KSaeR8ShSiz5ytfXJ_kq2vzlmbIBkZDW_xRGM6hSgy9%+5lTgiv12q$Q zm49qHj^m4_PfHC`+cv)?mXxqI-9C@^T6n=xJNQWKa?}7N^*Kx&9x+y_lBea^CUE+( zf2bf#Eg%OV5Sj;rV;BW*7=24r`JHUzq$=u8->Tmj^CjW_pxkS$PP2zCBly|V}L6*JW zM98cK5fgSWf1$;vv7)qY{FNmd9-v8ct?xO(mj__%&&@CVrw+vsni+Z6-K5lXmi{_bRwPVqvS(oUu=wfKC#oh7}Z6l)GK5yA2)q-kY5J69@ zFBMLe%fhVWP5UT!9QSsB8(8p|7Cjxx!)NsYm@d74Tx6vlC|%!ymAjL4k$gPDBG3&) z)6Vqcn=8K;X&q^Abfrd|mH5Za$6b#jRRzLZ-@S7uxdYo9*98tg%F@viuSH${?=p%> zSpP+k34PapX#AwF;zLp1s}s8=EPxdAN#nU{4sm@e4JDpKZPn%u;FYc2OcPaCC|BZ5 zrHr%VrRzEwgPX|r_tw$a;GK`Z>=jx72d;f1p`WZ6 zQgYr(QwJ^MLlNii%xcm@OjR+6Zz6=e?u3zn&CykqZYHv-@Y{FCP@ zmOfY5QJ2#tX2#{f=reH`*lju;r@GXs&G>SkFqG6UG$ggB@mwYmP-ZLI1Jf=$}kIC=!N7 z2=9ay2C|-9`&`e8;@JrU3GvrpIyhkW2TKy4 zz^ouS7NEbs^S91CH6`UfJj*)El>E(<{nm?R2GnB=8fmT47s!gjV?-{a(Bz~#PV>q) zQf*s>)bSeJqQGhP*^kX*FfdmoCA&Q6)^!^=SjgC$JZkij0s8HeZEjhXC)c;cig%yG z=nd>$FRyJe!+)KQJfi1>B3krHiAWTLEzNVH7xQoa)8g3o?~0_hlfsUB;L7VkhHn3Q zbagPS(rNYYO3U7aqIh@<$GS9Y|*S$f$Shpxvm-qA(h zrKNAul4oWG{$rv|f_63fo@;+sTb~5$roYhTtI-%ZR+K&>oq&z{ccIu`@(nY~McPEt z&sU-4gUoonITc?loj$Le5HxaZhlTH_7ncDSLr&UbI!1^xP8!M~nj;rWP)2^$QIp#- z1U8Db4{HEL<;Frh4P^A{jzOtR{B!(D!mn#=n$Q$rI>5NWx(5PU%A=FVle>KH+7EU* zBr>g!4iB?zvJD%PQc`?xK!f+TgB}Efo(NM~y;O$2i&C^z+56`ZI(Uvn5=8kvI}@Vw z&NvvhXiW9xdpaMqvt6LG#Uu`fgdC1q_1R*CIB*6K-`G$+_ziJW(Oc1a2oZX7Vx7Rz zK2Xi88T6y^udP%&u7Aix)H_F1kmJDqSH-QRyeo$^IA$7g5%zKySZM4c6cph)+k)E6 z!CmNjr>^0)$l1R4wMhr8PG-nRrJrSdbv>5)a0z{mWH&x`dHGrqiAOynR*zw#Tu6PA zYWl}Uli@vq)2@)cziOjeKNK_+GEGFOK=W3Sed<(8ZEgMg+P?>{h^vn%$_s+*KloH8Z zA$Pz=W*XBhoj(YVzUvu@#a4kiE9=Tj%$Fj!ON(=wBjC)aWVs|LY|=+jcy<(ENM6hr zi=YJ$@14h#uW5wHnff>I(6i&CVI~MqF%)acliOUBG}-~Ap`l^FY%=g?_;kPcY+z<> zmCA{6kso(ZrnX8GIasbw)TepgB)({7as_MGpH=6BZ!HS4?ilW&gDyHlDzH)L=s4B8 zgW^iy%J302m%Hp>WWphA3(!6xdAV^Vbmv$P{5N#HbIk+~1B=jvU&q$R5!}>NTkl*L z7d_WK^^9ITlgu?D6YfV^>8j`=ldyy2f6cITwo<5s=}nsuf2*F=qbPUq79;-(!0}i9 zENbtUq$VZ%DwvY@B2Dh$f3}t1xk`AVI$DM?Ld@)d+t1m0mah>`2&b@mct3Mv#)3D>MoiD`! zumO!`d>ZuNM^;Tq2^OE``7;kIh!2`VGRI+_cq$6$0))a6!jgI&?hgpZml}6r7i+|EY{qrg`wXOTlX?{kJ=II|tX_lXK{%f_1T1e$%Fb_%TY-ShQ*mX`jU5gu zdpD9;>P&E|E4Kr*M{&X>#>gXqHT5M7lYn)p%N4u_o>f(q@Rbh&Lu*#@YmIj3a_b5; zEkG$4^mBX$uAua<6&f)T%lx>^gyISECg52f`j`v%OjAh9H96#oG52vfQ?m4cTYBUR zD`)4km^j0`W(5|c*mC7c+5bp z@P*GvW=FEPh%WL@CkMO1MMtW@5}4{gEr+_?mz*G;7_Q@sZ3)-vBlPnJG9tBObD2J ze2=D5uWRV(3qzwDQ+!KJwj%xSW20PM5gT#V6|UT*XF)ixXICKz6LB2$En{Sx)_|mB zpu4+uR#nuV{R}7)0gyB}qK$Mm?4)hRcF-+~T1qv|&7Dwwett#M>tw}}Yb7pz58SX( zen%;e3+MxHa9tbfoF;~J?8P;B9egS0JjeO`hGJmJBBJX?=Q;Qf<-z!a+wP0&S*r%) zPjdJqGtq%tbw`(YUlY*42}L$?{&&am1?rJ*i-UH^%8emF?VA$)W7(XM0Fsvqfj@SyGO+qt=UN&Ua4w6vmY7F+YG6wsGZtKQz=>q=|yfI0a^S|qZM z%N6t4<6&8nw4>vf#doj416>a2L`cw-M?)S7%bj3`5Wx%5CrOlhgKqXg?kCVR@uRlK z?HEL|1Lyp6tzn^Ao*qel0jEr#)^gf{eJWtx!S;0u!RVTjBb|r&78hL! zn68h|1}o+M!Eofyo7VzcE|ptJts}c1P^TxxbnY$B#bZTXcX3lDv6vMhG%ee%T8DI~|o{EtS7&>v-Eo*bx!ArCrMLjpf*_?sDLqu5G!k zgQMdW3{R`uQkX>UPoH_ylw=J0Ue`HJ3`3Mf6=7h(OK}e><4{esnzw_OrTHx_TLC{4 z$MLXERcPE!cNp<|=!6ESJNQCCQ|)ZlkOep!`W-SA@OKwYlvh%#Qh2=@mak@ppob+) zZnat0#Yb~xtsUucB|O^_WIjPQuU3Vxx9oM9pL`O~+$?PblQ;4Y7haGQu9JnYh1EBo z(+qN~rUcMD#@ae@>8o+XGWK}@ZEu~Vs)UJiiFm7fOCLu9%In|P=TMhkS$j84J?LjQ z*L?72RI+LM!AoEJ>h}Q{vZ5)t7`c$N`Uo09)~QznT6VA7|I4qI+$MeEBIhLB)1T;$ z197#N^jHR}#qX(c42=TXl&r`+RnJUDg2^9)_}Qw}gD5U@QmmkZEKmg=h~X|Vc`2un z^;k@?P!5eC`aUkSa)1uq;KFBmwOChvf_@atB%sL5B+uAKmQm7~XprKdUu@F$)vI*l z>-BU9AMQ4;DnE_SM9w#Qdi`s5^WY%|nc|WRjLCz!Iw;-i^uh&3d3pS3nHMnrXiqQ_ zYnc2vHjFlH7TX3`kIy>O>#hu59m~=E(D2n~^u^yq_By3LMMtud=~!^`H;> z-)%NZ#lq0gpxbOb^TZ>%&MeDfksN~CIXHwUrIu+j!fK6LvAD{47?pSd#t0)yU|_Ic zW7>M507|8kiQ?MwdSO*cap=%3%|>%^ex|p#`=cNGWzNIZ<;5`cp3-S4cXJQ>m0orGjCa zJw4sId`Gdgc6EL}k#u6QPD%;EB+BnbWTt2%v;itY)scTF22U{AB)7+u0LDNe$&!g= zLbbWX6mEBJo533}jsU&{5rtGd8F%7Nq`J7xmwjy?A9cM75x@i!g(LQNWk{ruR8hXK z9pZ}gA4j3Nc8pRfgx+|zj^}PQ;F-BG*ktDCag?Iz;;t08&b|8dZNvux(qMhviCT`}Q45sqyi%$y93l zj-3SKXC8l8NS;i_sm2K4sKEIKO44?hsm+}THhcEkrV9ixVTd9Xafe;oy$7ya8zW@^ zg#i<$RAgoVzHZYscnv~EwaE{IFxp7AynYxOUCVYv0X_`s$K)BWW&5uWXJ41%d*fQe z*WG_#L~U~YZ$Ke8z|lVejPH#b898TCN{p{d&dYWm$S4Z6ncjqJZMmU2vVA2iF+qee z&9ZIZcT4MqR3fc2gHeqViqz|lc(}Qpz<}$TVaFWbbJy1ksd!pv27OC%aI~$NLKq0a zQb>su02N$#q36UBx7>R7zI_LSkT?JG)2)AIU4+~Z0*x}J+k{YzFeL=HCqVRCd%URE ze`jPibCE7(KuYX=^6Cm~D zzWfuM8~lJbU+XOjdHqI8MF`O}E!ue|imhS-T2y`_MU)79v)78CiwHFvjl%j`saSt7 zG)>br$_Tj@dH?b4+*m$Pvr%6!7E0@DhOX(l#u&wKO^#AZGF?k$a)IAcQb>h_6hexg z-hosy*=)6XdiyyKt}f0YB$&nw!yuFr8s*lY?P*}#-lpVdc3x}q&+HPUJte3&6G!{m z9_l9k<~O^8)SGH#1o|a}GEI|GNiKg8k_rGR&@~eQ;$ax=4)JE}pN%aYv2DkE&!3*S zZ0Lq%nm`B!jMNS0`y012vN3GS_C0^{%D8EmmT6*&;VsH(BM3rXEf={E3Sj_=0UX<@ z*D9ATp5#kPemXAC8kE>Wvlk08r)XL{w)G?O3Nk0+_a~X?msNgn@r`an>?S!?Fp(gisv$ zvYS{^Xm2(4ceS1FPw@Z%+OB^Fc=MGgn-$CI28;bQ&HmT2gI?$5bw+Z_b%hj`VPL#5 zW2x7d_Qsdn_&?xi2OkB{X57XKMLQt@AdDifTD^wwo1|@gL@`zvh*D8B31gs9Rd2N6 z)ti2zksPJ47C9;HUA)v=o7Oh={ZbfV0ELu9hyr$-wMJFgmI1b*R1|-{!*I%GFb`5WceQfmDO)ocQ!5|FJk59zou^rpC z2qDx40sVCqpX&84bb~aw`O6AnOxiT|5tASgf^Q_aP_J_r05@OvdSEyP5L_&+7wh## zCY{V=Qky#gyeX6Bn(Kdc9heT@qF$qj^J)VngE3N)03n2;C|TSNPPE-&rPQnTO2C`J zyZ^2a1@NYg5T!82eh^ga&2%zO2wby7;o7Fm>ea>Ta6^;}ZP4g%IN0r%3Ml}Llp+`p z^mQi^3C0-b95%POypHt(UT?CF(iPA)8CA5O_Qtg~E_6d1+Ae=gdvmT=!zDXAEv0Ei1oDd8bkN=3T>bIx(J#k|_soELynB7}-E zqC5=aG5g?wU7h)ksoDA2*@b*&j{@;`JM(Sq{cznwlInlQuBrb34p53lJYGM>Ljq{D z+#uwoO0`<4CK66ZE>o-4rBa-WQmH&R&|9y!N|kDVUsuFd+J3AG)f&y!wW3n8x2MyI z*^Q=KuGEB(sboBvaO(AD%kyKlxw5uiZ+dYj7CAjV-5nTX*Y!)~svr1H%uc5g7=!1B zh4oUkTI+x8$mKFAeqH%KW3*DKH<~UNqSb6}*)jweN~M~RBA?6D>dkVwVw*-bn=V&s z^+qd|bQ1AcqtPl?YRRONh&%O0b9JoJ>-0CZCxp)=|(67`ul&jpu<0GeZJ0?-7I5xqZ2{M<>J-V ztBXqtsaDIInps#`D=LN0o*Q>PKjt_>sZzPhLq!NxvR!_&x?ZZ)T}tW7asesq2V!RS zs>bw%#ia`uFBePIO079RzjX4YGfT^bdaYI{6wjQyP^&lNiDawgEiSF0rWQ<*1T3cLNRS3>sxD;}Mfi5ntt(U43le3qvOjoOo z@kO0809+sjse;4Z|8ApO}ANST;=?V^Xa)pF8pL6!UVCY4Col}aU@O2wTR#_ICr%R-1_w;VpWe{U|A4#R&i zpU+ZCmsZv&qv>S4S}AvR<{ihW*XpZUi5*Voe- z)ovh!oS4;W)@PhPhx z{k>gMgi|wfj4|6XXJ@8Y*48>Ya!7v(-}ke*j8tlAX|<~}$0+t(x2L;H)3uqo#mAp| zZf0h7-`+ig1O2}5qjmxx{rvpfKi`yE69QovRI9Z_+(8PJ%cWgAx2Ds{E0dFbz1?vq z76ksv@`_>TiMS&KkD_Umka*0#GBI)K@4^8m2#zAt}HJtKmO!1yLN8hwQGB;)l8?8l}hFL6DKL7 zmTCBbi;$!g2cduI@?=Lxc5twNc5Yr{G?9p>Qt?bCxwcjq8Xmay*x^E9T{rYhI+;ww zQ>l1=Zxf7-BT`68v8HQ+^WmWZ&ck}6ap&#FhKC0Wh4pkg zm59fR#nNh_aO(7#iZMDUyE=34d(XQLAKcq)HiE#5s*iqt{+*mr zBn1ChAd%+>z901W_h~vS6v~ccSE~)*4|;pLO~W{I=1LHX{rk6toGX77u~Gm67#!$b zSh#xT+{J+8j>W1}O(L-DxNa$8dHSj^hKZOiF1=PzBF932^qB6f_ig~eql(cnOT7zX7^)rmW~ zT*mj@!g@L6eD|&$oQr?Cg~h(!-paT3s#l^mO<2_RP;ONU3)2+ztp|U0Rkx^p6aVjgByl)*JOkvoSU{vUm3`Oh~C* z5+Q#xPxa@=&(2rIZ}NMsmM5i3B;uDYUAc65LQ1J=%(g5g(WQUOSH>?-Y}+=L&LrJd zGumpcTB|QD7m~@uf&F`2*Iim(EtjiKEOz9`0YC7cdiuFWy)L9EmdeRgf?x;(KL|pF zkjCiZ;??Qt8P56My}KzTCtrGbX=!O`c})m;VE^v8oQ;*8OW ziJ4lhVVdU5%v^t?(P*}sfFNeum1-sQL&u3NEiG3nl?XVR%Vx@z%KYMDE|W$|He1aw z3@yu?n4FP9ZrL*8y53r0J(EtwV)p84fiY$p`t;0fxm3yLvIh_BFBI0Fd+tTg^%!Fb zC+>M}rCjD=h~OVWnC!pngT9G?wZa&$7mHKV)2`c0r_z7hwv8Evg|R0%f8oWGy**uf zcJCS*8i-iO0WhVcR%@I-cd_1R@G#7zQ@y?2h2r{^iOH{gwIPHU9PH2M^RK*edUbU* zdB?3m5D-FYwc^ao>>MGnn62yjTA}dGZ+(}Ce0X>u5l=k+)N>1q$=>cxjj`e30RU+4 zhX4?S{<(j1yzq};n_=Yf0906CpPrpHEn~31 zPbqcg-1+t5dKmIOyLXzF_1KfodanD9x8JWZ8is%J=Q{oOK&{_IIz~#BOgNFXuy5ZU zjnPJ*WhjQ6W5CljeN?C7r*TCSwo;|zQR@cHX48w5O!Tm#n{XyVw8yi_# zUMYVR%e(jN9O&<#roq;-1Az04>30Xf3!lr|D7*~ zVfbSwY(j`>T9mRN@I5c8EmcCwWFm<%ZZsM~@at)nF~){rU`!%VV@yK;O3EMzI1e|kMJazZ zO^Z+x_yGc>X}a(GzUS(?PAPL;my6IcZC%qn-}gL^F)XEe^6BSNsnqe~cT`G6&Uy4@ zOo&p_bv+*X7!%8~q*9*iVvH@zLI_;91ptO&5=uD_TdkH5!q9Z4Yk?mGLGZVOQTzGv z1_xsdzW?37;y+HU(FSM8t6j+moBw}CNRsPd1~P)@fc<_OHF~*I0Eh;IAvX8HKJ2yT7*vz>9{P=rkfiU(K zfTW}0{X zr?39z&$apQm0H82Km4ZWwkS1Y|KRUdN(mTiR5uKr^U(F&H!x;?e*AZO@Gvw?>;D@7 Xt20l~YM9@Z00000NkvXXu0mjf2{<5`