From 976b5caf62353abd5cf726396c52673c5ab92002 Mon Sep 17 00:00:00 2001
From: doevent <61069711+doevent@users.noreply.github.com>
Date: Wed, 20 Jul 2022 21:30:08 +0300
Subject: [PATCH] Add file
---
README.md | 8 +--
app.py | 155 +++++++++++++++++++++++++++++++++++++++++++++++
requirements.txt | 8 +++
robot.png | Bin 0 -> 817993 bytes
ship.png | Bin 0 -> 834377 bytes
5 files changed, 167 insertions(+), 4 deletions(-)
create mode 100644 app.py
create mode 100644 requirements.txt
create mode 100644 robot.png
create mode 100644 ship.png
diff --git a/README.md b/README.md
index 61c1ec3..b20aa84 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
---
-title: Dis Background Removal
-emoji: 🦀
-colorFrom: gray
-colorTo: red
+title: DIS Background Removal
+emoji: 🔥 🌠 🏰
+colorFrom: yellow
+colorTo: blue
sdk: gradio
sdk_version: 3.1.0
app_file: app.py
diff --git a/app.py b/app.py
new file mode 100644
index 0000000..f87d211
--- /dev/null
+++ b/app.py
@@ -0,0 +1,155 @@
+import cv2
+import gradio as gr
+import os
+from PIL import Image
+import numpy as np
+import torch
+from torch.autograd import Variable
+from torchvision import transforms
+import torch.nn.functional as F
+import gdown
+import matplotlib.pyplot as plt
+import warnings
+warnings.filterwarnings("ignore")
+
+os.system("git clone https://github.com/xuebinqin/DIS")
+os.system("mv DIS/IS-Net/* .")
+
+# project imports
+from data_loader_cache import normalize, im_reader, im_preprocess
+from models import *
+
+#Helpers
+device = 'cuda' if torch.cuda.is_available() else 'cpu'
+
+# Download official weights
+if not os.path.exists("saved_models"):
+ os.mkdir("saved_models")
+ MODEL_PATH_URL = "https://drive.google.com/uc?id=1KyMpRjewZdyYfxHPYcd-ZbanIXtin0Sn"
+ gdown.download(MODEL_PATH_URL, "saved_models/isnet.pth", use_cookies=False)
+
+class GOSNormalize(object):
+ '''
+ Normalize the Image using torch.transforms
+ '''
+ def __init__(self, mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225]):
+ self.mean = mean
+ self.std = std
+
+ def __call__(self,image):
+ image = normalize(image,self.mean,self.std)
+ return image
+
+
+transform = transforms.Compose([GOSNormalize([0.5,0.5,0.5],[1.0,1.0,1.0])])
+
+def load_image(im_path, hypar):
+ im = im_reader(im_path)
+ im, im_shp = im_preprocess(im, hypar["cache_size"])
+ im = torch.divide(im,255.0)
+ shape = torch.from_numpy(np.array(im_shp))
+ return transform(im).unsqueeze(0), shape.unsqueeze(0) # make a batch of image, shape
+
+
+def build_model(hypar,device):
+ net = hypar["model"]#GOSNETINC(3,1)
+
+ # convert to half precision
+ if(hypar["model_digit"]=="half"):
+ net.half()
+ for layer in net.modules():
+ if isinstance(layer, nn.BatchNorm2d):
+ layer.float()
+
+ net.to(device)
+
+ if(hypar["restore_model"]!=""):
+ net.load_state_dict(torch.load(hypar["model_path"]+"/"+hypar["restore_model"], map_location=device))
+ net.to(device)
+ net.eval()
+ return net
+
+
+def predict(net, inputs_val, shapes_val, hypar, device):
+ '''
+ Given an Image, predict the mask
+ '''
+ net.eval()
+
+ if(hypar["model_digit"]=="full"):
+ inputs_val = inputs_val.type(torch.FloatTensor)
+ else:
+ inputs_val = inputs_val.type(torch.HalfTensor)
+
+
+ inputs_val_v = Variable(inputs_val, requires_grad=False).to(device) # wrap inputs in Variable
+
+ ds_val = net(inputs_val_v)[0] # list of 6 results
+
+ pred_val = ds_val[0][0,:,:,:] # B x 1 x H x W # we want the first one which is the most accurate prediction
+
+ ## recover the prediction spatial size to the orignal image size
+ pred_val = torch.squeeze(F.upsample(torch.unsqueeze(pred_val,0),(shapes_val[0][0],shapes_val[0][1]),mode='bilinear'))
+
+ ma = torch.max(pred_val)
+ mi = torch.min(pred_val)
+ pred_val = (pred_val-mi)/(ma-mi) # max = 1
+
+ if device == 'cuda': torch.cuda.empty_cache()
+ return (pred_val.detach().cpu().numpy()*255).astype(np.uint8) # it is the mask we need
+
+# Set Parameters
+hypar = {} # paramters for inferencing
+
+
+hypar["model_path"] ="./saved_models" ## load trained weights from this path
+hypar["restore_model"] = "isnet.pth" ## name of the to-be-loaded weights
+hypar["interm_sup"] = False ## indicate if activate intermediate feature supervision
+
+## choose floating point accuracy --
+hypar["model_digit"] = "full" ## indicates "half" or "full" accuracy of float number
+hypar["seed"] = 0
+
+hypar["cache_size"] = [1024, 1024] ## cached input spatial resolution, can be configured into different size
+
+## data augmentation parameters ---
+hypar["input_size"] = [1024, 1024] ## mdoel input spatial size, usually use the same value hypar["cache_size"], which means we don't further resize the images
+hypar["crop_size"] = [1024, 1024] ## random crop size from the input, it is usually set as smaller than hypar["cache_size"], e.g., [920,920] for data augmentation
+
+hypar["model"] = ISNetDIS()
+
+ # Build Model
+net = build_model(hypar, device)
+
+
+def inference(image: Image):
+ image_path = image
+
+ image_tensor, orig_size = load_image(image_path, hypar)
+ mask = predict(net, image_tensor, orig_size, hypar, device)
+
+ pil_mask = Image.fromarray(mask).convert('L')
+ im_rgb = Image.open(image).convert("RGB")
+
+ im_rgba = im_rgb.copy()
+ im_rgba.putalpha(pil_mask)
+
+ return [im_rgba, pil_mask]
+
+
+title = "Highly Accurate Dichotomous Image Segmentation"
+description = "This is an unofficial demo for DIS, a model that can remove the background from a given image. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below.
GitHub: https://github.com/xuebinqin/DIS
[![](https://img.shields.io/twitter/follow/DoEvent?label=@DoEvent&style=social)](https://twitter.com/DoEvent)
Telegram bot: https://t.me/restoration_photo_bot"
+article = "
RL znk^-hQ#NqAVLK|;KpZ*0n2&N)z1k>P7q&j4gjb@V1r1^+r-7p5>JeIm6n{P|jm3B` zaMQj85TCg~UbPl&;u7YMF0#V6c+SFC(T z4KY4tIj)oNK$9p=Y-eL54LVZALu>9=L)JFX{9D;W+ifQ$*3nrg<=YsMjYf9amxL98{c5;id;)}n2`V)T+#7zWL>bUzFuBKa3y$OZ8MFni_nm> zrJcK}`!9Ww%$d@vDF&zQCOAB&+=^7<7K-23+ZE?9cLOa7vGvy8udId5vd|8Ro3qa@ z1aAS1l@s?Uch5RjX)`&^n h!O96z2g|54>;&=vV%sRvY zQ!mLitXfCtDi?+QId_l2Yn0<4c5ev{Lx((ZQ1!=2^|2wARyKZEcJ5p>rIYjT(B8Ez zJArkE_M(Czq@k}cxW~o;*2s*DSd-+fTCJc qQW(ke6^4bu1=vjy7Cygf7elTECBA z!^lW6nP4S%RS#Wx%2M6yQHCv9!jl3;15YqA`Kz}t6l+8P9De$ZnN07s@tF>ke- r59#+pJk!QH6cS8Q*G861SJ{nK{Z0; zZZg-Zi)cd#JDyuo6FX)LttDT@H^!ru z&ml2}_Xmxq0Z 1>o&}I zD`$?ZD`+YrslIK6WsEw_Bo+}2-o8?$1Xauq)ED|VEA#I &-1_Y=btXIb2Pw*~=DR4+vrc1~H2*pG00WhuN$ zT`nNRwJMoufC7{~lsW7t9ZgnJ%vcnK(y?DtaTkclOtKcXRLK0*o5AJy1C+Hb^{uIV zVl6rg`gtkcP`oZJsjW+#itk9uzWV^PIKQQoKYL;roX2!-;&!Yg6_RdzNiFMn(V-mg zP>Cl5S$yq}mBfp5+ayp1Tg0p-2`fS^I9`dMDWLYvbi+%gZW-GZBs4gm!-1smZ=h=# z-&`oms$On0j(GRXb8wPDZ9k)J3Xn@2V^Jx2aUUcQNECwxa8%-BHi(0a^@DQD&6<4u zMe%1+%TUZfWOulb=_p; sK2R%Hun-d+jsbxj+3Xrft;6eiCthY=eL^bA!uC~#J zm@JIuHq#krCN_#A&lChuF%LfN8p#YuqHgnu*@5*CLcyE@@oCD-P#|ZHPu)zIAeq01 zouAa+N;Jeh6+2E;XEU3WC7dY+QA_mqu`ylr3rr%8ngjyfJ3L~Mz8TKdT*o8GhReE` zT**ejzRdH=4x8`=4QkTEekPZxLK-r4$+ `ODq@seqb%`0%reAXkpmH~X0^lT)oU>d*e zon;!4V~DIc7P*snGF7#bdZ9BW$vbSulNgVYgiqoq40Q@k$DJ42oSVz3mi~aCXG$qX zKA>=>%2SlQH!(hb;}U>w3lwa1G}(R6xx>Yx{Q;TxHTEPsQG7`zip!G$5PK{SR10x20QUI29LO(v%Qh%ToK3z-!je3b zHp}<)by*a3EIE$Qw(eVe5kQPbR^n5g13~%Bg9SqBo-EJZJLUva?T!*|t~dBReRr%@ zh#0U!Yvkf<56)`j 7P`6W95Q!zw%?O*dez=$^wu^RB#4!)}Bup8xL-8kO#j98LoLDY_Djoz?x zove@&$20W85zCJW+>E@N=aTPIaNKAm!ah;8(XsQZn1iFV;#d?xcZmwQUY^W8 =!R;U5%M5CDo5#N{jKtEfT0{jd-f z3Zq^!V}-7Kn%%2`rTi{BdQ4o#LF@m1N~tGf0GgS75sp#jG2p2RPVvC_*tDg<(gVqy zmeX*7Vne$DMW$8Rf%MnYQ?_upu9VV`U1)bU4yB9)oO%75YpOWvsYwI?B6N_!4(+rC z>dFd&tpufuY c0hGXx4X9XYMGx>52a#q>J(_Vq(@B% zkE_U&`0GNZR&I!ahO>fm0x)0X6Jax~Jk*x31%qpJ!&8`@?=`VBStY_~6x<2uafh8i zm~?qZR-)52CTGtz9$f+`{B(59CQpCJj!_y9PghQThs@Ox1JF}*{1qt++8Dk03IqPi z)v}5CCj|+%e+Z^hJXN0F{W6=NggApT-+P3Lbty9;=$y4Tz(OWqk~*Di7h71QL#utd z>dL)r1q14((KkqEPp+E-4(%qFWojWt!0e1(k4l`{ET;WOpuA7 }!E)p(~9PqQ`EEeo|W}3Y6fJkefZBpi*3_7ZTb PcMwXgeKO8-yrzut|+8x} jPhoyblmLL{cVNX@h40W;!+F@vm9`B{b?!;Ir`#!|#RU|4 z8Pq4gzbxsVfo{ @5`kO!^s?|c zb|c+z4Y gaV$B3C-uywEfcOw7dq`>0sA;dR(V4vw&d65~%ICsyJ4N|ST;loF7; z=|*|lOV<}h95!}vf;$f>YFon+%)u*VZzd5Su+e~w&qYROhky>u9vU3WV&V==eOJD_ zbC99lGea 8Re33USRp`+@wL<6vuV#Yvxm-)KgiG K(~er6FX1K)Gay2XxE$PRic)q z>nvL)be5*LlkaZPP1n9+*9ws }fDKWd5MudR^@g0o zw4lK(bI4zqT$6-SFp@X{&5RUGZ1_o~aHJNxeVxXoQFHkt#^ vtl)2^ z=-?R5BV~Qj@gZ0Fo`J|eQLis2qnT3mQsgIO0S706Q~j3{n1qg9qqY7NYf<{I#J(n< z07S~|0Trts$QBcI8Q8pzTfG{Ms$`(Y%pD~I$t&MbE2hOH)iOgR<9gMhc>ZwZ?K~MX zGengc^;$YFem6lh<_=Al2_QthRVjzB_F}7k6wbo~FOtZdRq;>dj@p@LYd0bgm-6+9 z#+nL&UOZ}yN&JhSkrI_;_2wm<0I@Kz7&zyflmn^%tQ_&F)*jF(?bjU= ^jo6{5+p!JjLwP%FJQ2jv5)#%D%QkUo zw;VLAYb1H&9#O8$D-k|iMfZ<4HU@4u4(bsbNm~b&=S5c_%$I;;vbm?e=%yi3|0Qd# zmo3Y0(tEsIlk}myw7{@^p 2Rg*A21$3!9anakFT~{l; zUBoGwr+|CKRnRrzYVI?@t7z)PI)-P~2b!n6wtQ-8)j(U-BmGyL-7y{hNseg>oJCa! zI?;|0r`%F6DCo+rMlV}MD#frE4`GMjxaK&UAkb| a)AfB`r^ zwz b5jIW^k~T%yTJSh0Q`$GeJ*lf zvUjQy^!V>!`^xqnh8iB$B~BQ5l2+CYqYE77J!itMmeIyp#gKvN{FyD%XjC`-Ul@8~ zZ3oXSG9w07I<+%sr~{DqY({rGW!ac??vY9RAvDcLD<#hJ+yb%dL#czcr<`&_vhvNq zO;{N;GNwFa1YQ)x#uIQf`6H4EO1UIUB!4FTnSdvx!ZdmPD&+Q3=5g&bY=uf2$;6aA z>c)s5n{n$(F@Y(`Fn7w@wdEa;%vU*uDFKL2Qcp%EcuRX0u@73s7W9z~C zKw$MiuEQ(8%i3uEdhUwZt)VPO%0~l9)00e`I}jUNMdaCmM8ZriP>_pKRZC}UpE$m) z^Q*Z*6)_ldRCv}J`y~<$jD<-EaL$3D3)&88xtY$4V- daR4sNS4YnG(bCJdjm$z%vJuX1WFJ-P z8d;ke`mQVCg@3imNVR`jydof!%)N127HQ`jq_gQ>EXTRd +J*=Xp6+)bc)H&k;>(8@t+fuF=Kr8$N5DSk`5K3V-3j0&K4St<7;Gkk z9A#n$QeLSDrGSfM^sxwPU1l9FwO(q%O&Hqn=0^emo)tGZ>Lm_6pnLXn># z3yY(W^&SigP2Nx)^wjtYQtd5TUT3GbAgJze{FF(CjDDD=TR;c=JEp17YxJgh(b#{{ z21}_Zsvi+q4MuDvMv`(}RWVyR( Z&-xR3k8!W^%l>yR?$8 zRE(I&jV4coKJA*yltDNm9nBnY#KcbUdf$S=e4Fea^i}Q671C+uiHsoCC-aYsx4fB( za4l_ah7==_D8HE%9N+8a2E|aUCPsfwi@EGec8q$PP8JMLO6|QbK;!W-P~>_k#!KPG zz!o4KYRs!__6EBIHkd)yD0S$#bK=0P5v~V-0_lr!& ?Dbhij}zH zVCjrGq7@7F^(3lPXyz;5=AngkQ8v}ZO809u3Ol&W)jVxe1BeKes~o@ cpUwI~na@xqWfo>&os8&eeS*pzPBKU`$cw ziy H%h#`8fA`&Yj~_lfym--C1H`AN$NPuJ zeeb<@Y>3zfcEm9Yz+tqv+xBp~y?pud#mkou+xGC{#lyqHtB*d~_kC;lCx81-{^$?? z@ZqDE4=-N4c=6));s!9c4v45zCxDq Hu&_ic3YN1jOE=cN-|+dfvjlT+E~FM^d{anm?ku+E_v0>{&+{`QGajkX4UHLx-& z6_rPEL%0>3NmbBKHH~(!bPK_*RF~nNX_{9<$lXUk`4VuzVv9FAmknuzQR`IP;W-Ae zo^zCiPqPi!VJtEnFZY dgpVt*=wAu3t41ZgZwa3g1%$M zb18CT*RzW1RrL4Ly4;epZ4`rBY4K-e$Udlr#2zr_i#3yt{*vuEx#s|qj|9g<1}QH0 z?6%e~k0-ZVbc_eentGF=1>r&=9!Q>R7Ku9DFGG!lVofU_uJon z{q@)1fA{_O-+lk)haa9EA7P(61KYN>#!K_!B8U*NwT(LU0chWQ-{-0gV&l`kW9wl2 zZrBiD!}j9Ei`z#pUcP$y(MKPB{PD*>`}xm)@rz&l@|PdKeD&(Z&tARy=%be}UcP$u zYHM33+P20U0tg8EzTf*!0KIqf$rl7OBLE2@qDt0+8SkNyD>E(xX1d9EC~O=ooZ_Ms zLPr38ImAhZmBPxtSm`KiBI8U72OdwzPW7P!TE3RuTN!*`M{3mou9Rt&vbxa)Ds5TR zq40~0upqNCFLOLEiaAGI-sar7JSGr?z{qL>7kuzRS+miq+Oq2sl2t}KczR0{mJLGV zqrzH 2^9bi(|)QZe(43*?DdGox+td;EJ8$o%VeN2 zk-@s8&SZEeYJq P*F< W)|J`?=e)iehH*fpiiD)GKw|3iZ z8v?eii2!!$bAi9jh f-zdiCnn&wuu_kAC*E+qMzW{eH*RKKkgRKlzvb IC(@0V 8U3ZE?HQU z{-Iwu7GJ^`J%>DQ6{vc7JG-j%Fc9wia%}D@=#Ky>OL-)KY*$^A+UQrm&jSbnsZ_e- z+Z;~_#OEy44p(a||BO#eU!#m_Cpkc~^o#E%@GvZb>jew;*M3T(+0r_J40I*)Lrjxz z_GV$0CNDLza(&i|GWY3bYq;vpyZiL!vD(B-D=|90K+3Et$s8vQg{PwAvxJLacw7w! z4@E$UqmvU7e3}k _&I>FJk<5ZlAU0|Nf={p&A3{q&PhKKc6VZ@&Hd+qZAt zy?yic-P?D4??4@Ix2 LFIY}@z+>MUns4gj>)0H6;N9v)u2cmWMzzqj5I z#spvk0(g4dTKmPvzvu*S-@duu_x--pzEkhm``92D`w0Lvw-R>x;rlnQzkU5#-$ynO zj12^61hn0@pZ)yjzxd@Z{`hbGt-ts8{@$Pdy+8fKKmMbSUcMxR$NSUX_YNHp5L;8X zhDKSLZ;N*fnJCF5xyRTm 5^rcgU#o{-$UVA9SWTBui`gs3ZMBDsGc|B7MJ^NUrT zlFG|q#m_p@BG26dJ*6Idh> {KCHd?H|M7`67+wI}u{&@eZU;owr^gsR2 zfAyDt_5Sq_eeZ}30Qye76XI>V0U{tD+8yV1w{2_NMq5K(>7O6!n~Fh*2n}&-v^BVG z53gRnc=-~xcI#c&%7~txp5SR~t-bt%U;XM2|KQ&HyZ7(kzkC1m_}KTp?K=?k{l4Gt z`_r9z-}gHLGy)nqMMUFbOcID_yj kopZ%SG`Ct0k$G^bVp7#6G(-TqGm@b< qy{GZ$~EPzzj + zOD8Yobiop(KfLVd{jUsR0_}QhNsHlFG=mrzF }ig#+xl~Ps; z){-i*n e;7~v KU8e+R`c-!E%-9CEx;uk;LK6(LL1H!%cnTtmR zL@)09{qbr4@c8}PHy?oh;E(?35C6`e?7hEx_wL=>clQq;sQ0$-4+MSRY2WwzeZSxP z{Z74OC)#)DJ9cWVZLJ}}zW4q9)c3vbJN15ldivpqH{XBv&7c3%fBN4%JpADw|Iy$5 zyMOw3|MXA)?9cw}PyWuI?6>~(^aM1I7pD?p#rVJ&bONZ>G|3JQy4n^rTCu1Kw`Qp& zPu#pGuiIiPK3_Znr9~6CRcv $-;}#t-X}U3ize zI))o$f=^HjY<;33Lvw+h_jf}J@yC_o@w)rynQFb7F@weGlyAaM$w>DBEz2m;l9Qmg zDCsCvm=4bXQ2$l~T*-H~!)TvTzC38{3A9yA +S6joCKH=MNKL~kJvpGe)Hvk-5OvOfPBRgNRpcwgi#-v``>>1-Cz9r zFaGi`{_4vwzWng^19fQ7h-mNFI}s3WZM)rYYq#4?USlfBJ*~Cd?Y3>V+sy56fI#;d zbC0^%8s4_{>c!9g=$9Y;!7u4y>j< DmcA3nT$_xRz%AP%S45D|^Z!2R*@{^5~2VZ(>EZLQJX`@YkCr+we| zeSdm_`{Taf_xrxz@6ZX`_VLFb|7-vHzy5FiyZ^ht|7U-ndf)qw4VN+)0-t&SviZSS z74`BAk)*mIflJj73Sdc71Ep0a*c?Dv8xcYyC!MUup(mx}WqqzJO{h}XBaNDkeWi@T zp~V2)qDi+UTs(_<)&VLgzNFT!{VJfdK&N3cvC%P6X+V}w6}uf-Q(IC`O?)fTQIJ95 zUsH8(b-r*+meb~QD-ShS$X*pJr{an0s$KKUXPK>ToDI9jn*FKt)YV(~!F50VjlgX* zV!EPi_1J`G`o+ctjEh27uK$VL{<^W>%xc5fcC+@&o{)bUMFTEtu(nZS&9{1#ycX zK_(7j=)$SyUo6M&ZR*jQIvTjnbYvIK0k7yw`NcJ$OTa1+McigBZLGUm!mfeG2Sr~_ z2#?4LdvX*}2H!j}BRWws8kW5-7=%pzOs^iW2H+v#deY>y_)aB}PY!$0*xD@ecaQjT zRDxSsJON|!0-xQOEqpSGyxG{w Z1U{_MQSH{Rkfrb$Idc(TDd>|M-9S$N%h~{`2p@|GxLWJv<;_-*+OSPDl-J zjkb3C=;f=Ae)jUCS4i;mbni$A@bvi9pYBKiL?a7me`vUE+t%>j@$rcspJ==lsP`QK zKYID|KmLP{e)VyCxM6Ga)Dr- 32h0KVn zfWa`pj+g3PqaXwa%i9H6dZ%EW3coo$7{L?R(A3cz3JQJd9nGeY`2f }7neNv_*7y%@>)BuE1ld7j-hw;eNm(9T*Fg M{C@RvfOKYesQckgWy#h zn0YkMc6dgh@fPVQlleEw0RY$u-kb|uXHz|BM;-)>`pxA- P++5>#^dl6n>S-&XW>7Y?=4fPa*0QBS| z$oLZwJUqPk^2@LO%m2rJ^~vu)omu?b4O$~2Yz>Io)@~0kUjFRW?bXYlef*1dyWQ{i z#}AK$fSnNW_V54?5AC)=Yujymc<};nTYI=6!2Qj;$M0U#zQ1^Q(Y9@We0=KrN5A;_ zAO6uF!He66`<(#Vptm)lkATJ}!2sF~v2EM!;r8@&e|mg+{lgEhe|Yoa ranQPmhm}k017@`+QT-ey6>|hPSr8eEAXn0{Z>_^z?LpdfM+hAU1sX f->fEGbreViT4}3w*+rmm z$tMttl%dC2bE~qM^@gaD{9>dsfn-C&3Sxw3%~}~&F%q6ux|pXf(Lv>fC#r6qm7H>Z zFkbO8*8|{$eSUd>BY8m{C9rzqN5u^lS^jb k9-c2KBao$PAA?>_PM5|^gO6<1 ziM1~9IzLNbo-YCkE2_#jd*GD 4GeJb|M;_zRqxQ&u7tP>g(pSv zq-F7m`ek9S41uZPMgft`$zxH2bXF)gbSCDY$P&J*hzWPq*GS9NQu$haInuf;2X2AJ zHe$?R!?;;P)i8Sv`vTe{OcHa2x~93E;OBA9@!zvdHCdgY6M8dls3gVQiO`H99gulS z1M?%s1W+&}6J19Yu^*U^tXP<8>`m(>3D0vnn6JZubc@2Wv*foW H586Vc=2BT(Ow8s2E6 z63soa1_1lMcc85`1Rw-LY`5EsZM(gA=$#%PAK$%s`|i!#S0BCl#V>yG>Z4Z=uU=Av z?crg3Sm1Uaulw))e!uTK0>Zu `yCO3S#qXNlLJd1ab_lE zY RR(mF?^e`K5K-SKmLsY=2x1-&_)eAIF)U z)PEn@aY&+J(!oBcp_u)LuSjw)OR_=cD5|?cI%&<&E=h!hK#bi`e+uKUj&(8e$qve$ zTLY)aJ1j3V-ugF1vCQZ+j-kBy?fsct4p}n?l$ U!82$&4Gx8v zRnmK?EZR)`w {_=2`~c`bGD=NA>U$+Af~3s7A}+M-k%@A2G}QT zUy)#-4C^*KxR_h19vff6&H+>q54>?{oJd3h{Nuq6iM8x5cQF)(<$+5>6pn&~OlBfF zj6&6oHDGcgv_e=SIv1sNIj}4937N%^Q&%R0xa2#&PzdTT3_$Cd&0WRDvV;bOphI?C z$Dh6nmI=+?oj=k9Vy!rinKs6bkOW1x`{Kiwvw#Vl;NjuL|M)-tcb|Rw`NQ_2@0}3E zs*G=PZP=h80TIx TM`|BTmc>DhSi WA;XfBNvDJ-qk`;04_FegD~;U;O5; zfA@d;&;IlO;6MELTibfyLu#fA%Z((Hlj;!{gB%R$U8Wv8G)t>ZrMeh=<>iW Ar#qLrmptrj1?A xFG#vLQkCh+_GHzxpf}r4H{~{$gO44+GXN8S0wFExSvM54 z=6th)VCtGiATeOEgqTM^A_d66!ZcbwtSJb$Qp7R%r8i@7vt#k7`a |O`U|dHnp4?g1AAW-a7#_06-i^1ppBc8Uexv zh%W#Lpi>8cPS7@#d?EzE-dfwX+wI}SZc>2mK!AWBy?FJa-QK+Z{ 1bEg)K0{irG8REip!##oq2On zX3OR-Aq6UeZI;7ARXkI4AZ zNtf5QOSZp|d5P%ES5%D!5L>x)vvUE$Tjx*{?Ra8k%45fT_q` J)y<+UsF1?aoYD4#JqCIFr5xGIdMmQfppk%VPfs3*1sZhh}2U!~_Mx^2}$Bkadhx z)C)!j%Miq^>hYOWi8@PN0%^(fOdrLT0P$?#{L|ABR^zd*>Q_}) 2?~x2&UCR3%4MQ0W&L^1$B_7zi{CYHQo?e)s#gZ{Kb0 zfe3iB1p#3M+&C_Xkf7i9+qOMCJhZj}&bR+RA?-l0@0~gUV5g5BUc9)ypaw+n`1rKH z|3HsVaK9r0!bYtj5$&DsJ8XL=>f4=eH{9A_j LZMZQK6v(D%LH_x^OhKizS={qZk<_4MjzZ{EE9_Vce_w{Ks)dinC@ z!v?tT_x aMy-LiE)zMYRRGQZu*to1VH2{ CwXHKEO EeAgLolsvsi1gX}Fv9|)DI&@78LZQn7u=o(g z!hU=BM$%QPuP(b+;aS9rD{DrsjTOeCJ;y!rkGU5^gotODuFMTTw)Q!tN+}LX-2eb0 z`u_XZ++F!90mp)f*l^pnQM0vnyFIjR!`5(XxNWqxHkjYwVSDk^_wBZ|7cXdQ8^FEa z?~jlB;}hNQNQAAmtr1`cfW7aJcf>|7ZsQwWupweYMCje;)!^t2B4TUUkcQ3SV@Z5~ z8=(z-k-Qljmk=PpZJXaK8y_sYZT-IY#}Dn{_KS}{e)aOz)8pfZcW+;R^Yv|Otu-QO zfDIY~-rB=I`mg_+kAL~g|INSgufBW#Zt%nn{5%VVGd)q$vF$JzgD$ElFMKe{>300f zlC0&*d>X|jf{`s=R`URSD4(?i`JCp0J{M`&=*-%x)1vhcRK~sI1K8|ajOHcHKfM^v zP$mY3{#!p=q>1rm@!E*1#oB5O#|x%TTM>q{fG0_eY2Qgep;ShwC#Nd{3UsSx7#Ul$ z89>5LM6k0~Hj@^y@#j=>qN4I7B$*0j+AeAvKMN{A!yB+u3m&+jFhM-nZ>VF}VW1?^ z_HHIw9IwGg-nnu^t72TDby|ajw16;o0F2)*-!dH8HXW_&ign0gzt9WHtmr>_d$C(b zB5=SQC#LZ&Mmo?`1qJhw3?By@Nwy7%s62hXNtAR_6x(ZoI0KLV)+CU$Le }0?SiJJa1JuShxxGjc$-t!y_fvbbdYNmm5FtduL$+k2QfO%QYu`;HJu^>Df&|`~; zo^3%S$-63uz)z>#6gVs+5 s4I~xFf&__W2RUez)w1O8azk$ zn0!x6T;s82%@%7 EkF(>;Xb8qDgpK9_7+Z?nhMj4p|<7O-6ut78g zL+tA%QXF MJ3;+=# zO@8;;+wmIEt?zw&-m3!vVIyn}0kKnWlLQ*M$m25u$diH5&)$3Q)L?v9V5CbBbf7+F z8PwX=HX^!@tlVvT`Kq<{;X{9V+V{QhJM<3JvC~J}i}&BW{V)Hs|LXtrfBug*Xm_|n zgK;<-Nyrxw2Z@SQG|Xl<%|z6*g;^Uofwy26l-)x_0PA8CavUNn>*wC|SSWQ&Gx)DD zrD{MKhgpkoKsf@lt5Qfz^%D@U0k{ZLNS`0X5MZKu `R^ zvK3QKd AX_xxM&|#)8$?Y zcx;cID%nz5FrxX+PLpU`iAP0c^}t3=Kcb78(_%dwzT ?qFiryW z-ihSv#Pc8EO4!=0JZg@VAZ)GOwr#sTynOlc)kiO0y?XiT)vH&pUc7j5yFIkl0N~}z zm%sk=fAQb{cmMsv?Z&1F(;A1dF(l)rl1aL=XE)=Q9^e0Rj?BC8GmQd@7g1P)ovgJf zI8Z06Wg2*?d)}mzC+?sdV?Du8cy67zGK%G=66>{+hFc>DU1iiK5w7tv*IyP;bC7LL zMY^MetY5YMI@p;p;)qMjaZpJ9oL6HCi?}WRoGdh12TP}B{h<8++@+(Cl5Mj_A62RZ zZ)h7oC;b~6s8|85C`eHc 1+gIf5644T^D6cuVw|K%Ba)3ohgud5od;nTWfJ zIE{vrdc*d* BFV(bsGyOXi zgfMwL7!5KkS+YX^ptiBfSHgD|UWqBq)`Bt$zay+;x4Z@{09>z~;Z&5*$555EMf-6L zgOeDr*xeIqw`N?#9jU-kl7ozj{C{g&QMUrhE%mxT(xkQa`t|Gk)1AY8V7uE|!+C{> z09!*GujGemml0s^`@Y{h_51yP-* qJWaC;bg0zlNMb8tY!3mYWB0ovBa++`;Ix2=t`ZP1Vi_P*bH z-@B$WAmVo0ZVwOJZNt{anTM$&2rpl}`bYohzxn*LFJ3&n7}aTnaykaAsN!jYi8bpH zYdP>k=DdYAwbCJ0tCAh#b}enrMApI ~o0*Rob;HV1*KduAjp0Jn4MK=RDZX&^fC9rY{!RE3~*hgjb5CW(p zt`f+k+TIP)xNPq1C1r6H8PLo!Gtewlb=(nvuZR#7n3!loka0CO_u^oQDsxC7!IgPl z{s<2cAjdI>GJPKOIfX69f=s_CIA$lkRK_)ChGEdgU}YkbOED&*Z!=31C}amqHyYR0 zC8~1dFU>}(A{%MI2{O^x9yA=}b9f2Ia_`}(%vjko;3F{}ul@*A7x2-CCnq2XE-M9n z2TSbnT_)&9E?9Xm(s5w*jA%I19u)h6!Kd&`eIqRRttQsdcy6Q5=m?hbP(I@LtVoSG zK<%P6qhxGc9^%+FT}LjSqiyfwfn`~1r6p|n7yxOej2{;S!#c|`U6<1*k)xI9SJX&& z1Hoxpd|qRGwq=I;jQh^7h%2-!DCEXj%>EJnzV~mx{g&j&!(4Kal?cS~9vy5ATLVoC z2ZWu*S>2JoPsDz_@B9Ar)SvFKckDEF0Enm)-Fv_9{b}FtV= B>rkOic7U!~3XPUjZ-SLAe8}Qg%m*F4A^<`f|1o|>gD#TLn=qrAqHiHy zmF5_sQS8^!WSsaEy%hS{*t6iDS(#~#vpv@ubH0;~gs>?CpW`qIIYt|-lWVH{R)ZZV z3(g>u98eY8S#>EnV3>Fs@a8*;8pV^L|9ODhL-X~@fYCiLc+fqaqKJe*&539Q?|_)& zQjDvIUG;gn-$(YL*`uzc98*h+%y o$Kl19W5HE3 zeg=-~$0F4$#;xEqD&aV|iOg%+moJIbm_$25iAA Z0VLnzr zIKgcU{sk3a5k*5LiIoo8c}@5n)#&dg+}3E*qTY`z6oq6}3Q3d;PrsiRW?@@Wo-MC` ztZ%;=|45=@A&;I-0aP^E-jSaQgqoZcskxN 9j*LtLucx=C`~K}W-%5%n!p!^`uiG4V8n$g~+qP}nCN6pg+cVC_K9_J1 z0jU%19Y*NCciLwP5CQbw?|t9LYP)%tC+%Yeo)7>V4rFb #x3k zdVE5Fae4s8g}7^g@#dnfZLJ|9j3g!i=zHJq^GHD-(}p>QD1$`+oq8W%AV9>n&F>Eg zI|*LCeD%-&=|BI=U;pLHhnItKgwV$+g<-~c+Dfy93L>dRw8pG<@Mg&JO0&vB72~cH z-A6~p^Gq}l1dpS6uG yh-&5fs9h1GIS*0AT9nFf$`W8&P{h z9Fa2;AW`dtz4!Y*&*t(%IJDNbZM$vb1vAu%dLQrZCxSlC08B=Xv?JK}`@Y|Sqq)b& z#}Dt{kKG9%pw3 QO?@AtXFPrwUG*k+fR597>%Z0xqy+D2kg zI&HY!AMgL #sEYStB)7PE7%HhZVG$6U8GXeG zCPTY-4UEDugpYiS>&r$!cK>8A*uIa50J@wP*EozcCYv^wrpA)hMnsT9+skeaI-Ck) z3a`vljfvgPoL%pf bzVT#?fd>YUW8>gG{e1F44VnT12#^COYcLLxMq z)H43@N6q|SajF^M3UM{A=tL_%0`>sWrX7h0lOZyp!H6YL`fv;<;=KNz(^CR}%rKX+ zm%To*s31Po{yacZFZfvdTK9s|-@*_mzUVq+CXhV&aUZkBN-v#(B}QRr$T9F$>$t9e zw9KH04?HY~uT$Bo{mKCAd5<(@Hq_P}e$TnI8Zg1M*1rAr+qZAuHf+;4n3Dh|Gk2Qn zk;#K5Xx?tOF BpJ)Rj)GT~udTrLLt (da^Co@F zXi`QHTZO4O#%YOD%Hj!Ee1=fM*8`pvTGB3>lOf6K;1RlP_YMh?PWh #OmjEGGXV-xg}#jT9aQOEbd&(Q;IElP)r=b1AjcU(}b>H zyMO59B-ceSO>EXV&;c6?R91kZ0$y^tE66io=l3UY4_HfA;nc#DA_s#fK}WQirUy5r zL7OB&Q75 CE93G<@ZdT^#mw1)h&uf#I=a?DrF}+)RwP- zCUU493LS#%8nVQpu*}P^Z(H-pRd!?Kb`s!61>mJ`Df){CF7UE%Jn3I1XbBec543Ne zfyiYc@`%#&jud#8RhFR6;+jA|*7uPmz@GZ&Gq>Y8;bE5jNhxerb>C1WRz{M|od+ez zvRd`OR80_@Qc`hRtjU_^lBwGEB!cns9>n(f=U;sI@Q7`L&hdY1h&W>>A|l%N-dgXy z0dn*YfDPO223rH5K1Qfhr?Hkl*V^}|`+mR6^8bvnTf>I8+rzfqND^;moZdUpMuV^F zJBT?>KyzNOH6Ymc9T8z`6NtF2@m3#z&TIH%@?t}d`3j=ewr$&YLL$TljprXkyd1%~ zP7T}E_B#?lBS6HhZEt>f^DqAVU;N3x{3pHl@fl+sI1!q~vJT2)GuSN4WUEnVmP18? zAEN^z%j%QN2cWJ=Up_4qQV1$f8bU|z5~^F2ok*o67`sK6aDEBGQ9*7D5S)J%qLmD_ zHO96$Vya^NmRg7rIEAp$BxkStQXnIa!vfoVCH4}t*NB1Nrk@tVvHX|{j #Cpeor}d;9ygWpX!S?yoAVC#)9%Wh nCw3tF65 z1a~(d+1HRsr`g5Ba?QfBaYZr;R3l+mRufh>65Xg@S{6Cg(h50W@fTRIYIp(Ex=x}7 zZO@#iI6$(rr)AZW1iqqJ6Cu2Jn68c8dEveb={Dx@ M zu{1wJ @gKxmU0*l=q=9SNyR1`u>! zVUwgM99b)!I&=VN&^Frs;-CHc-}!g{om<;_uqk#_QepS7RFP6iE1j|xS2}m#qch@b z)#|oWfUN@|n6H(`6?KMhx+-k!O|A_KR!IILxlgmYk18VqSL3eE5jU#jSuekOMg5ui zNs&PL^$=4@LkVeGIhes7XNqKb$f-Pu;Ru4FJU(|DCY-W8f#pv#sK()nfuc}<#ga2= zM2q08rRfCbyJM NRqkqgO~V=4&*Axb9N!kK)6! zM$On|ykvklQv`B8g-4UOQYz{Ss)q=X<%;R=5HvlBj8lUMV0;JA9{D=&Ug}L*vvg+s z|6*Wsjx|lbT#ENr11+%x@;;nDF0q6it5 z33htmE{r!OSO9RqDBU@bph$)>rVfFf!5<{yKffT41X!m!6)DnfJ%;LN8Tqm6ou(O0 zVua6pb-(;5!*m|wj@=NXRC%s=>$XIY0sTTCZrk?y^$*{E^UctI&bUDsug0f7km(zB zfEUvN2%*m<`@PF+{-@dk672WA-^cf}<^h3mj&{6}=i$YR+rt9@0yf}n3IrIh;i2C9 zNE~AIK~75=3N@2=S_6QQJT&r-z>qlS5ChsE4-sG ?tW96g$4w#8avQx>k(c&V*XXBJhL@j?ZKZ(?zD!$64f1KNH7 zAeu7(TJu;yo@>P-^fh3YtyqW_|K}s243bj2Xo@ci(}LPV4qP(YN%9x!HYp7qIxSUz zR}dy%X-3MNpq&5n!2jlA!@5NHOasdB^8u%V8RRaLiZ4Ke_bKF}&Zw4j$b&Gp6kvqh z-aNYcxC~BKh;i{q@sHqgUZ)V>DTPelEZOTWmrs G2?~ZX25YqeUkT2VF(H*te%lNwbs7=@~byLylvy{I()!)tfK>OwCQnL zY%#<#45v ennVn=M8FM7%vbY^_b^s2I6?;c<8Yg;M}q+djPi@X!C*KWqHb zB**-^WK|6XMXwI+f@@+Tmn@1BoE28f8;~n+-1UI1cfdLhRV7=5J*oh_@>3cf3a#`x zn!bnVNRI$Bd}&e@F+TndEC+S$aCjeyX5B}QdyMNVss9-V0RU;*xXoi%GSU6YnB VScOO6@g+xvUZmXcfDO z1>pc-3F?dz!@|-q&TL!bZ;oi6NO^JF-0;oV4(fk)Afq7zw1C3QlCyymk}FQ@Skp`o z3<_d Nz0z`RAYC@Aol@LNIxa 6b5=L7(^ZEQJ^jcA6k?=%h&BLL2f|M^bO+rz`{;dZ;-Znuqq?)Sa#bC-a+ zylj;11I=9p; {9tp^Z(vAZMh+W&!Nq;6>TOKF4yEYHh9x^WvM@2pL%2N(+*H*@}S< z>y*4_JIohYm5?Qa76l^tKCkD0$Y%R;nHVP766!1vB=hTSJ(_D^zzG`h#&{7u80i#& z@g-y{gfRizh#Vt5Q%WIJpBp9`=>EyAmd_H1Xml$A!;(+r7B`qpQGpuQ>SdBN?Zv|g z`15d7Jt(ReNI#;)!C)8hEO;2gFXEgiabqZ`G%sbi7>*z)LR42Iw_wSj*oA!WJc1>- zuD(uDPRQ|=SZ-3)cHKP=fhff?OA6HJBMT|3Sr901b~*NRvf)PPoJ}h0^13&^hKb_> zAXX(5mkmi7qvN|;Fot!G_=SBibdmYblX?i1FVH_3!@G!?-9P@$%A61kVP-H0@a? z+4~mt2UOvt)CzoOtGXE#6i!ECGI5hvN=cs#xAz8!Ah9Y8!Ax>-DQZFn b^*7Di8F15tb6 zKtcqk1+|AXL B>nRn8AmPWE!=A<=XlrOFV?(kH z z-SlugjIsTCH(9Wk7bl6-djWFnR~XJx^XxFO=nIaV|Ol)_Igwqdlstkdkade|PG+ z^l3U_&^fmEj{#L}cQ3|m_MdPW;Mm<}Pw){8JI>@UA`Uc7meFEKqq& iH5oa #?#hk6k~YuoqVzkdDt^_Y*07v_&e^3HGJ%ps4i)*t}DNRFpYecx%{q0>AW z@N}p99eVet5%{(1<23Ks+H9@OPYfdfK!@?+u>I-&^!W7j;qm@7Um`>Rz02!_ux%S6 z!Z>U&LVO~&BywVah{hX8q45l6^l)wq@H>TO?`F$3H#^3T2ah*$>_~DXYcgT$z5n?? z`*R>{t?4UhtouAD=oN*7n8|hH2^E;LN2Ov~dqd{>ga9EqCa_#7 nMOSOg zL)Cy7b6lR?BY@ixwU7J`d2ORsK*{}QOi&da89OmT5(JR%#9b+-11F;p%~53>*DG0p z{1m5w&$B!)D_3FSh5D%wL;h(b)QD>$oepH3=V76-9oE@8#xB }wEK!2(*q7H;!Sh gTW5F{b1BNn3OcA4gQHkht7pVRTsVvaaN0hOvFqQ;B{|MK&rRl%#@CUBk;(iA zOA_T5Mp2!CGJf*OCvV@pMQlhkmb}M@amT6Oror!c5&qu5pM`A==G#KY`*H|}+u8em zzti4f@6`1~GPe2sueLSbU>GRuU!w7Le}p^GeZOzF+pCwa@P+`;i5h=H3g?S}pwA-< z<1B&cs00-JkuUBX5fBm*P#e5u(LtE`OvGFQ;PpB&=@T~391wu$w%va7o8Nr@-S;m) ze!2JEj!qnyFs@$9WyH|FC?*SZ4ERDpe-V`4>z#9-#O{k=6+oATmTO|xQRur=a_6hw zWOYhwO`+vF&|v2r8j|wZ@RaOGtKN}s>ww8yYXia606in_FqYrB+z3^SUy!_K70ovw zG9iEhl-{6!bk-ZGa&90;RcFO9Jq}W%P!V`Dl~U_rHoR8WgpW{Uz(SCeCL2Ojy)bit zk~mw_jOH4S{Pbgr7DEyQt`yjC)a|oTaSs)3l*v_VazrpgRhew6RDPq;s3&It;_jhK z^$;mT1wku2Y<|d^z{SN5b3&55qm4rchCe7Z3|Y*aGcG!i;RgQ~pItFBc0P{sNBYF8 z93@(_ltN1pT64!@m9Kc3dG93~`HV`ELTN|i*~JT}yI;%X6;z8zAvbiOndu{ViV(w) zxU`Y%Evs62@!`P9Lm2AxbH#!)jXPkS=Y%XJ&hLeJBOK-F$BsWZ_02#qUBD%O9M==G zIkNlidP0}=N)4n%h^DQalo-MDG5&jcVez+u8NR| z+$WfMK<<1K(M&RuQ^8=?f)K|EVPG|y^MhH}zV%V&4uky@&H%J+x7Xi&|C_)1>uuY> zJG>wUK~Wc)Z%V5F9EHhsS8+ga1kce8 q`(UA~+2%T67mW_ypeqJ2Yk-)0$3PM11qtFNIp${gNHQ0(A z0G>S&%mwx1uEZ#9X7?GBWyril8)%ZWHX9z2&2Rh+gQsY=o)g5yey<~iLcUYoYZIWF z)>vF!D!5hwa%^3|mG&;Yb5)MoQ{*BqSfOcGTQ @>x7!mJ3&$ zH)M*Y@QEN4xiTR_VeZ6;1Wyxip19?jm+PUO(X_E(AhEr*2}i1oCS}K03ug@x?Y5Wf z-%a;I%4%Ih;$yq*-4E}-{PJrYr(T=H`kgv8P}2-Bm;I4|I#B~oj-B=br~^^!gn$iz z_8lMZcpqQ%>TZ3cVcWL$ut7t_jbN;zoBoW{IRw~udcwBh10dZyJ>A>G4fqs>)JK5v zrqYJ6wQZ13(4lks4-p_XL?Rfoml^-_c?KH00yxGDLH7vcSot(+b3 @{3rVAA>f hh$~c)K_J_=3#_pZ-CM5x-$vB$ {Jk|4I`Z2Zih zVsaKd^*H#h5C PHI?u{?|E9hJBylYVoB7e{sc^1oAj<-E$6slYqK$UlyD=@!V%b4(GGIAsS+z085q z8MIMy0+r)&)9Yhv TN!$v4ybpv#<zp9}qMyKSv) g@9jni}U60qQb?5i^-=rw>j5oQhKr zhoXHn8sqly9(*!%7mDS&i+99yK2Jq*&xQ==MQ2gt14!l#oE68*P|Mv$(Y|7|Ds3`b zxT|u?3Fp8qE=p9C`&So(MINCwJqZ_{M0< ^kOj90n6m8nVB!Lu zwx}8im+Ei?B-9GSftRCX5kA|8IJD)KXClUhDdg?wGJLgB7;vO(<=e`M25T3J1RVz2 zx%*lALR-s_OSZ?3$^_wpEMRJ5Ny;|;0E%80idvP*a2J5p;hI*l`qGeRJ 4ciaj|M2wTakd&kt-RovmA^G?+XeugXhig*yCa_Ndmk^?*ROze>i53i z_c2xI8ebx|Ho%P-Th0Xo!TfTtIa|v?0W`$hIPBZ|^tdDV?gRj>&6WO6G(Pwx@A@2H zIcRO{N%Vam$9^Y|fMtg#KWunr=)ds+;5O2rcqSm{d#6|oo{Z+V+wIK{Km7i;zuVg8 z&5I7u#S~LloD7r&D_r3Mt4CgEtdS7!awP&03>4vHrCS2DOya+uB5$tA_sIe&3`wvJ zSUj`H)?t#f5FF(wkt|2SPQ*@^j;&a{(6LiLTk!OPx9~?$A&zrZ4u>AYzo*4&1owib zMu~?~h{tdp{|GW;>KJOlKt6vcZ{bqcaqbXL3j+#c9^6Bmeuu`knbyRbTZJ#Lh(@6c zYStJQpG0EOHDPtzBaZjXO^V`$0L?o(WU6c kLPM8&T+_N zRVaSBvjJ?=R9p*vH0xjxDg~OeD=vFd(cwX(kp}06vBb{M@|>ESDlW=GoZ=npS2+M% z+2b`TZQ%PEcel|!*ZbAAP~%uThn5tpv{P5?Ag#5A3fS&xY7kZq3L^sOf7-&Ki95w< zqkkl50N;J{?f!H}#BFQa*7)@`1gtOf4Lvx5?9R*QlJVdBzSDh&PS|OFyLaD-1MwMg z&(I%n+qT=SZ4CiXcNJzH5VMAW*YL-e1Yqxy!4Ko6WZ4mE1V(byVE$nq&eVTlEOB-} z$b}|A5mPj#F8cj4K*VhxUvBej2s}&-ytPIIzxk`*^xb?BmWT7XVM8&f%W@36RDvbA z7?&JVRoVv|-i=yVJXI7pb0!uPiape3wL#7HEvg;)>kt;4^~>Wl2nZK!uzzEOd!dj? za3wJdEOJAV5f(jO!c-Dy{=xV-4g4`!lM`rMO{%2%WIUdtzrrQ<5GOneCOOMEcMa?) zul$WDzx9>_t|5$f{b0!sepo%m@NXnz#bFEs9BP+Ovx*nFKeE^(5R+?CDLL8=3TmhR zqprJ{>G&Wrd+OT)V${@<(1MAHLNfh5mcEfJ3cC4wQjAJP Pws(=ptcaB!=v`1%bM*EoCpR`@ld? z36 Bnz{}Igb01i0lG}B`IVXtwual* z38?o5fNcZ*2H1e!=kh-RAvB=g`wmEi9btpk`(QN@;no^p=g5A%#FMCx#CZgO*2V_J z_-L PKpfY`et0Nl3iliz*v=KCK$`o%|2{V8lf zksY{&G!(_w3H33GsSdE#2zN}>7bGlN2)3sO6k@s%ROo&=7@oQce5vc?QmZc%?WKta z2i|EONP8VKaBMG NrA_8so+?h-5H@^p?8DgGyE$Q&tr&rcjR7;YEbXBOylf zmjN8r*JnYK-PCth$SJ*t3Xlz2(JrW40!Z;M9tvMTvfR3wG`T#dnpKtes&+*zQix-^ zBBB7}CcX&9vR&rArY{7#gKtY7)l@XsbS6dQhe;4%sFc8+@WeN%El8jsK0CsIp2*W~ zo)fF~oqP~u96YhAk-r&9bC+lrAe=>E*q-#F|9L0O6Hh@va_ +qNNKA89-@;ibuoIhlh#%bJt*L0`Gk8xib%rs8l?5a388nqS`S z{4ychO*%fW%+Id@4uHG~(D%JRJ@xyJop78nxX<@&5_RBD1 zmr8omucP2Wo?qgUbw%~#)KyA6z$_Po+i1inftFl*NAS4>IdL8q)Oo+k>Lov|krV*{ zG_`xE32`>cs*k%_y2_H{ny^uos|y~jP+3hwZOkE&J>fXNKcciEg#=vegi+;#z@&ot zJbfu`1phPL<^_PtN_D)?#=O334e1iJ#t3=r)f0 Ieh7Qy1Fj_9QGlhzqN6U(tv4&OQMyB35^XrPG z+v&4W6h#&+0yx?(50RAg9k=$wn>XKm|6Oa_JUa_~WR?k-lEZKRqzG)#MKHeH*T ># z8iitz)+4BJJl1@BQ4Yl~n8u2vOYz5b8IKMzkYa n#zFx`0AmG(Q8uHLJPE^q9 zZi-OOd0v+)tVlHsar&>`FTavpn=#8C0eF3&q}vqTK(NA6FfxXiyamDY&(UXm4k9g% zaP+}4F~glQ`bou%4cfa)Pf#@Xv**l2bHD6QkRvi$1K|1XXbf+Jo6&B80x^#zh(jty z-CU-A5kri-aj`%7gf9XB+;IAn+$C$b<_2<6qW@YJEUrAHAj;&Jgs9>;u2BL2flK@~ z(J(VO&3!8f!`L6zqxlvn5|WVzd$#$>YT(gY(|zDcQoH=yc4=w;(f-oAR`MKknJ^Ud z>AX(x3xO&M_-rshwak<{wUEMsUDgGb_aU>+v@s(Mfa4{G<54MM2t t STS7Xkov+KKwU4;-4D!_C^(w(Zuo z)^Kd+A`x^NX+* a};}#28Jga@Hbuyb(>LvL) zR^`FOMscZW3V(hf51R^@Nu&@-zCN-Ft01NXW IB*Vh2q pGPF7B)Q}unVyD!SFcP-6iE9p%XhTB^1rU}M;x0pKytdS(ovzn-*F4^DJ zs~z&`g@fRNnEe?3zn~yJ5;|%N9*WT}wufkWq?RrNDh7%m51d02C@t={bk`{6$~+Sr z(K&gijMjAl8NJB2!DQWW UW&rYNr341H|u;sxy)O5s3Wp+X%q!ja-EXg{pAj3OMN{w7MoxP1S* z@>5ve7g)71vCNd~>9F`W4xyTEf~nEizbGL_N{fdQm4o6v*R(F9ZInUW~o9^YG$i(=xAE4#pSFBr@fKSEDmaA z;tE$N+;;2+9*=>H0OZiAfll^PwKU=KEYINyGumu}W6>v`U}o$Vnw*o1R*Ky1q7d>4 zpUSn7KLcRMPjFVFTizcibu&FWcH6!NE3cHPtC3_WtphIv@Ia1~s Us}*c zu?5;+7-_DsUN6V&QHe>wG1Y?+$EevnhFaW+{j&eTGW6gal1V_aa2faV9vxMRb&f!W zA+z^PU%W1s5yFC6RDB+86NfHHg7+ZeD5A5lka(@zBo; 8Epg!tdY* zPWx$mY!_if`TFkvDNTK5&B!}IsdHvd=b8xEc*D2hcDs!?4PirQ=G~g(3tcqRffx(o z+$Df9(HPhJ{XSn9+GkH2o3X~P7Uj(@;nEzA;XOw+V0$;@7!gJuRPVj_eIyczF_844 zxn4FBr8vPZ3@H({*6vSFzyIy;=Fwz73Z$au<>J{!BDD%);_2f54$$cFIg&Wa{NGyl zA3^LvNmj>}x<^98`t?fAvE)DaYM6jb-+G4ejL zzso82w8&u_rNO1aO37zTdXCQ`>(9uqkS!>(14>6wEv)6-r69$|W(Q_RVi{xHQz$zr z4vr~_Nli4)MQPG4B~x6#ttBZqF9e}k*;&{^kHU0CH4}|hxm0Y2GZze>tf`zbB=J>D z6RAwz3bh@8eC<2vNOln`0_3;^g*u h4e=76tR!w#_Xhc!B;a9{o mC41B3G$T$8(mh>gZc1J1@7F9`)O%N7K29F+w`edhkm ;s &o z;&6NiKy-19qEaAE`NVLSU*9Ws;8b;kiWKVVJ8F7Z7xF1-0bms@lzoS#J;Z6yZ8It* zi|=a>!q1BQfp)URS|byfxaPv{_1uZXEpgCQSPu-870{mJR023;^)RYcHXZGV`9;b% zetg9p*g?$1fO$$z$1o3iobi}I$Qenpy8^Za->DhuE88d|p+xT=N#)5x@Th4i$ImME zFsb~p Z|_a`>+tBcgF)cjwjmz7zEkk@voj*Z#nm2~1Oh&>HX?^brxahOL3w zx*NFK*4ozQ=YbjbV5}4rqeL`!5D3~JmEYdO-}&V!;G}xKuxMP*4UIW#;kc{w)&p-5 z$fS^F3;w8?E`UuMk*&oH!icuEeg4_!Uw-lBt=))7(n77=#EEeZgq~HRrNo6Mr5I6L zIf{@OfMN{<#idN9mADt}o~iFekg=*q{^zo+!Kq>g9bW76^Ty6md9+&PJnU= h7Y zK~;)wDY$f(AZ1Vis1{@Tac(}3jG*PjsXaLCl>HEes!>tc3mL*n3f-c(wHUcFmUjc~ zhHK~^m>!sC$2>8l%Z^~cXM;&kUkt+5_Jh&|__4L(8ObP&boRESB3G4qWI|)s(^WOO z_G(O!yB=6Go2}luK&Hvs0&5>qBqMQyozT*Jo4n+a@HO&JYYfk{2FuIb4NyCm<-=3w zE>hoX7@h_h4x_8GIizHYLt0Sp?0gt* 3%TpD$K{;vid+j>g+O0b#t- z$8dn7|K5S4{i(MEQ^q;QH|ZAq!Xlc|O4Rq>VSZLgwyGstVgTUJ4BIK1AJ>sAg^2Io zzWe=ee&2wPY$6$E=aDT+*7Kv1q!NR)j9$3kLW!5C((ric4ed>ptG#o?)^*hkin*}Q z4*c)22Mh!(G`#})H(1oh4)YLQawf=+osBRgUCSA W zL}M<{TwUNWqedO{l@m;8=eiRAG5?wn;1H6jeq$~n#3mxXD7&pb6^nQu*Smj-m!_Xk za0iCN_K~V&+bm32)NpquZQ^ctRB_dU?^^qfTv3&lZG)Ld6}> tXN@vAeu-#;m`5uZ6+b!2wE?Bk;2@-X$mH6eN);Td-rCB}#HwG&FCm&vm cr&x@}s08}Zp;LnG|Lt>T1dE5KmWNM;mHcDgqRJM)jhd%kFkX1c@NSU=b< &46Y!tVi~lVFum;GF~_==_NT zH?sCL }T1N!(lZeG+Cy`z$v&>-|}X5O{S`q^uLK>?3t?8 z6h`x&HWR=^6MYQ%fZnybn$E5*@sBT_>ukWSuPI7p@6dLFL7v$nONNJL-H-Jp{C*QP z)h63Dn>9A$)|Ht-3pX;4{qyH>oWKvf;-In?3tD)1p_B$2rr%lArdVIbzQAmJ4sd|r z+2w}c#sjWT-e)C(7A9pmEJ)Az44>As(G!}B5Fs1_BY@lR5G(Q+>3mZHXR}B+F<&x) za!4LL3t4hzoPqV~sO8;rc~P;O${0#WvTeK`#n{HyiHJg9sW7F)tTW+C3@fH`o6lZ) z%90})$-6fH>U4Q>%_&<&+y+yLgFZ^lYlgUo8Kq+{9=@Hp@ak4a3xJAF0w*!J>=g2l z>SbiU{w!Q~fTd%cL1uUcuoZ-=gx=ZNWE3 u_s3z_aZF(Eh gNVRC|JkJiXzidMg pB;0+wIFQzIgNc&Cmbf=VKD`BMK!ciH{-LnM#?dSg1M#EDcLa{-%mE<9v_P zrBDM+PcBzeg(?a2ftCbOCq?X6d?E7X1isRPky%8`y~a6k%jn9c=8Cy6u3SfoJ^6w% z>+#maFCL|b!L+XgguEz;q8zM0FX>o1gj!PBY}tU1a-$1T2XF*r`Y~V6V aN+P$wLfC;5}uUX9j@GKKJYpW+7J8>~^M28DZvW+ByqOY(NM3e9z#*iduS z%&p|}BMOZ=FBi#qa5Nrp)5l?MWO&nW6?|kcDF0PN+qHHVPNqbh*cOE{wLvmOBGj^x zz9uunbs3NGTKZ!R 1+uGJfw$QjaCv0M`4d)1 }K1+r;Ej_(cI53hgt?9 UjzcS44BvdXqR)|(hOaDU#4bj$ zcu7hRk-;S)SM$Yt#Xtab 6e$E99`&KIGBzR++3E=ul3U^Baf*AV6myYqUuz6?W;y*2TS;8 8J50b$614|7Jx=4MQ=N&%@;?!qOR>asnB)_ESXAoUK@kBbY#7Ec&w z%O>4ifVs9grIE95wY!ypGsSkwE+ ^zr`e0-5FAu`5@F&4KC1TrB;wlIMw(}tj}kp1|gT$TKFW09Ns zV^Dtdtg^z57rjaLa~J+JewxY=zd&qS8$vwyz&$b5pOGa#l8~OqN68UU+T8FdVTD-F zD#HQ04J@!jZ){8z=L8{K5b0bY0`TX&P-7t(zN4a%PsE)tIw@JH7K15Z_(#^hc)hXq zjyp(_C+uRj1YU6%YppfdP5&6(@)IE2l?YGJuGl%iMMD~XRTOe$k#-kTQ9j4api8;~ z$JG|XACXga6TIvyBpdad(-;(WTt$YUl`HQ16#0ZgmdtYMo$0SLltnRBiQtppf4cAc zcJp6WneV!sFW~I@N`6B!@PVNLl?bTwIz3I>Mg)l4wr$&O8inzi9^e%J-f`R5%X84u z5U80I`H`iAICcnb8v#(CnVG|k6Cc<`8j1cyy>+FTJ1#ST`JQExdBO}AiF)r1n_J!* zU;iD+MEedzFwPQmqJ1ZRArKI&w0w%#FlTG+H^2GK+c$4-A8j4@D8f&1p{ufnOJcqV zD(N^;nt&lx43 QjM+h^XNapUNx9O$Kr)C zG~1q{EBiK`2xmxChFaJbUS3&i5E+;Oi)T|&ymT=rGLY>Mk^VcFj>eYY0>yDbOGIjK z(`%u{`uBgfXVg@5$2}>H2OCX=Dz(5h^b534~Ja@ YXu`x55=|M9ANWT%rxaLQEIT?uiAZLkr^=L%yIA0>lpMx|`jtKhv zy4k+>eeZq0-|zSP`1--1-O5KWH3-n!_U$*{e)+|hx9!0$#U786hw&2&``(=SI-iE0 zVZ`~)LblLUa(*X gYi`wMf1 Vo#(bQ?`mV<0Z+aik!yEL9lm4W|Nj==07SUZZ>=W|G*yj2^h+ z0qTpq({QHfEk-dkmDa3@!hEuyUlk&_ZMRQ8`SknmU(fICh5(Ft)aS>xW;;Zgri{pY zpKtmf2{gLuPIDKaHQXA^w{vo6EuMLwZ_(j101ZZ5zm3n2ZSA&U8y_QX*cu`3d~|E* z^#Bc>V7}C!+6?wPaSVg=3+3|l0HZO+<29Tw{zsmPNN6#Px=+_$jfkG_nBfu6HTL`d zo4@|e);3J9PFNKq9ZPX5^s%lhV19(srBWF_RcT{z7fMzV2NDcVk&>N&k_3%z o%IY-LwG3`q>bDGJ|9fp=^*KI7?YFZG zu`UA0djRcc;Ov%&H?X3_Nu+Up5XCVi$WP@mEtE62997hOxQ_Iv6+^#0YxbzFoQL}H z#YX=oUn&{7)$-jjZ2ddn|CmlpdtnTU{;L5O0z#5bqokEvjWttPval$Zijln_SkHjR z>uU&rpMUoGe!ok`g&0|EfB>xxf$scaEkbemFuLFOeH_7+?*fyx?bxv0Zf)C)p(g6R z@0~ieA=2YZUUTVvP}s0-ZM$s`58LgwjXA*9aBK6REi+S>j!5?-R8?ub$deEO$C~cs z(wH7}i87`pwfTMD`86?^89}|1oNIQgR{+4Lr0oh8f>AN15&;p~U;g?pKfHTvu*qO~ zV^aGgiMC`ZZv=YMqe76a>53BI|EsYVkF}6icg`U0BGs)02E}v!;u98fY~bVEL}piL zn2$bzt|a78Q4kcgXCguIYJ%q$@}^@N?_)DY@~3{RBO>;pZgPwU0XSS;S9D>Glat_o z+;a<$CB|qU+a%zqF8M %A$J>CHK_*pjfR4Da-?KhDFm5{9UmI zX!t4AGN1i0)G?9JcHOU@8H&}dxenrNhOgn0{H*D1fv*Q;*ztT%g6KMug(TRv4u; NU}wCUSAAPF#zg{F;-0q>MI;uBeGmr`w;UY4)?%rGU*GmbEK7MAShx+ zWO9e7n2Z9Yjd)yGcTgQR0_l#U>J)D#l)XQq5{)xjx!$TIgKC5HY}tIS)_lH9mPLQT z@JkX;XuDD~n;AQARlL_Nj4dw0bO!dB@Cq%n?03&9ZXNbP?3Oe7d70vH3UTbFqTO_0 z*Pw>rBewVN-hcY(r|!|LI@M|B_H?^($9c~qke{CcCeqM aeVd=3DJztL+J_>HgZV*&$htnRx^5Gid) zYMYrsGx3QNj7S#qxIS>c68gyj8zdBmfB LZ z#4?0Yi@7o@$*7CS>R|(`X)<2E1#y?j)Guu&+iX!}VgnB*2?XX(P=K+G`ovW1grT-h z^__Kz{^!RO45SHUSQ3KDvL$7fv^t=%_^%gh2@fa`b9jM8R(R}xW~f6Fi@$b)is`W{ zbVL$zl^9fjqbj!(@4O7%EoDb6If%AWGZdcrRtq|VY90jq1?IytOmDRs6@e_fE^GFl zt}yoQl>pPO69D=nYil}x#3SbgS2c@1i9usSOy<86WCc}aBV$#?UaW;QM@izKS6KZm z40psXSJ{*4x4Dtj%g`` gh8PoFB&&HhzHW#xC$J+d<8p{z*Y%tT-9l21TWuaF9o zkuiQY*bg$5m7V~{f<9Ex=Xio6L36kdu-Mj>S{!qcrrpP?(;myo47LJo7(XY6#tz6u z7U>nu)}12&Y7iaxSoP)kAqIxatS9Ck0nu%{ee=yX-+c4!w%wF0H}OH3Z^@jKYP)1f z^F5hel7A%Vmu0;116wouk3d9Y`CrZz5Mz;48C~N?oe7N8AZQ3oBgvP%Xy*U)-uH17 zfI!aXY6=qp&jDbp@Q-=^v@5)fAg>>7*g#$fO2Qq@fC9kz=`qV&;W>ISBtXE&$H(9N z^>1!%^U-uL=4iyi44oYt2EMXG(RAl)^-U5^Wl=N+YY|*7W%ZiZqhj&9RPRHDra+H; z-wm!9xkGicy?vHZNno-S2S@fI?b9?rD8aVon;z22oU7TJf7Gm&W_Or2)2KA|X9UMb z0Z0%|$Hc&u1)p+vPt5mmah6oww0THX?fQ3}0+Ax7crE#jRRgV!j=baG3Vh6Z!kZKW zmR2V4om^Ih3ThB8bOYuYHh$F;fV>{Tjz>VDjF2J3f%b8x^7~qejC2UHv=)tV{T!}5 zFCL?bZ81KSAI|eos&p8?6%K?rV>WUjSUtTd|0`5tI=sliIhL-4 NI zU;O(0yZ4RHUEq;GqlwnQ@TaV7ZITagthiYxP&(MCbbK%POJo(X&Lacz2(pkXUs?QM zkz(UAQ|1b!j0MTERKi(@GlAHXIlxa>PA>=5V>IL8xG5)3SmdwaI;&WQcqVV8Y9h1! zNzK$H&&*O363PSeBw!FP=Ry;(@C(;+F@U`iKP4zWKn~iaP<0Kd2$Wp++>?lBNwn<4 zLcx+%2?}ifu|%B%TE#R=7w97y_Ib9NsdQi~rcnm~fLlQ(8$cHv0m0ZWn09I;o}$z* zUUfc2&O5Vn{!0CmK+8PfD0|v@0+82|Et``>PAH8_;HI*(2q7XtS25X+@qhp@#%ma` z=WrKTQpZNWy<@9bSwO5ij&^a;H5S1^WesxOWF9hrIn?Z7`HfU5LNL{5cU*E48R1?c z^MvR~!pwO@BMlD7Tw5KF5CEXLGh-+qo&IoJT(R}}g@@DP4qVO=4Ue$l*jQ6`xw@oA zF@H@Xj7MTq66NDA0LWgBA=fFpZokN&3J$4=EIhH(sJ%7~&}xJ@kx}0q19ZTOS1x1= zBbgJC5Z83XYX}I?_x|Z8pYlOj*;-};U}KH(x?Ug{tLB3Mf)V`_=q|v}!TAZ`5dd!+ zVC&t)XG6mXp%Zq(HUpea&`3i#{+9qZ9Bcn3)`s4vwIb@gdDv8yr@0y=F++$w1R^4T z2>^5_8UPVmYXC^pHQ|W4(-ArXG;F;QcH-!M@8d;4GQ;U+ZGMnWGRU{v?Tb&p`0}$a z|Mc(wOYiTG)Bp*ZvRKAU*2T^6`?2&A!2AhC#MLO8+DK=Mt%#N-`WEx@CR4{!k%Fhn z3O&m*G0M5{YD`9fa&$%BNf6y?^o-Fl3(;AZ5ABPztH}2eyhUtru6Q^EIPIC3jEV50 zEcJcXocW8ngDhyCs_Bl&_;m(-$e)7>6zeTQ%Cf5TfT>faE{Va#h~oUF_o|)Mq&Xsq zsInD1H(D>!2-SzT(2mH;_s)lfl#BdK)rk0_rk_!F8t538H~fAa-a=?6(Fyh#tcxi? zk?sOoCZ6nni)mf~J6^@7Vs;Y=-jXl5snNOf^CxmQRUpR Tje6(mK{=(5*+G<4bl=AXnJR1@f)i!^Ya0}|OsYaK{lFlnt299%f@hKN>h zgatVIs%=sLaIBukWzmu{^<~W pc{asJ>(6f_a3>_M=oPOke;$B2!Oa4I^TNp+fWt>|u6ejrAK_q>?E zB|*bb@aEjIlC95Q+FLPw?WWUn6aLs%;%*}ZwW1Z7)(NLjRm8l4yCmFt40Q@YnaqDC z!!UxkdYyag5r$&;F)wBFuVOaaiBfe;$i8YQzZkC#(ma7US4J&|ctdHi@tpkWacoog z>{Jaw4YOU~UJrFuOzsBUj_^Sll3CN2SGq$*&*^GJf_}vn;e%03Bq7LGvI40J#YQ{^ zHd=pxPB=V~s|XF_W7jWh0LeC}dzWvG);t9~6q9KeNmR&Ddi=?-NY1h*E(dc>7qf_F z^SSzuXc=D<1<#o3i;<&M9ZYu;tpg+KWrA`t3KeRqL@Ti|TlDx;rH9CcI0kxJ-}1I~ zt}=T|Vx{te)-7q&0duzEWE7)FW&cOh_mrY%?&bW&HO_3^j{0p86T!A^-+ue;4?q0S z+QzBxOe1iZOEX?EE2ZP<1jy+CK5@@b(OPS5vym~F-Bui+I$@(moFjy?@Tgzr;_We% z?+gspqfYzYf#)AMKWzliJGFrcIeCeIU}p5VB@JS>BQuA9V4hLn4 3}GGc{NmVT5)w9Szx&Pao*thN8;P`7qN?$(EU1-I%Q66&Yp;a@D@k49Pfb&U zOuSQS)2uW=#(kcbV9R(|(AJ1ST&W?b<~HzhKEzl#`PHJJ-AuPMp+&;rcqh=|_GmL~ z?PKZ{O)ELcA1My3vxXRjUH3$}D(WG7y)?hUpsN{y{|2gHBF{q0h|+Z^U;#0lh`d8L zBlV$6)hhy*VV3=xYkcA?)3ZW^^DX`?mz@EKk;)j<^v2u7qcdAuCOd#?;7B3VT(D~( z=LNMlMKQLG$+1a$?%UddmeO+AitTa`qYRv^T3OghEc+`X0|-2;CjBo&1wQ(RV#JC< zo_}QiW4!Ll_5_^$O18>fM=d#W4#7;gk DMyZkbp}0K zDg0HoC%`V_C0gf1>LQ=jGPV*)hkLRPIZ-y##AL@+Cw-`1W?IxMxugb+6$5!wiO4NQ zi;=ZJN7tL} 3}O!hKkLpfdmn8yKUQTyzf#rQ_vX7`SwgCPPbtK zI=_C0A&t*Ia-I #EfL_Yg#|SDK}HX;Th?cXCPsd}M@}$kk>(IJr#k6buH-L62-iJwx*;!j`o) z4Hf|6Yok`1=fS_D0+hF77uAgibm58uvL&I-+uROV#AYq0MMNgDGe&kfKHgcKlqz^r z@2}O^YLV7FfbE7TMrq`LuRjVQ_S|@27n&vVEm~`7ebL wAp*-ADFs`SY>pd;yF0WZ`H<3H)DBANu; zne~Z@DF<*X2~4I3>+2YA< ;3j*-Z?Kfj=7hgy9lAlVc&71d6eglqSYK~nEa#=bCcVk)d3d0saWIHj1o zlbytYrqpx1rJ5{Dg7VDvH4r($V5Mo_`=_6L0%X4GW$ tEBq)&`f$^UH@fk1dI)r1Lzsp=>ZUYbkG(;ftabh?A)>Vw}6X9&E`wk -J7>xeevbUzoKcgNQX)o zAH}frB2L9LPD#rJMR4`JGT59Ab0+B-4=*E6L5;{tfv@(H$>fl$L;9Z?F|-v;^mUn7 zn>7|<-{RitmLtH#Mjn$Ypk4Bz!k}f0LJd!r)EyePiU2-$1^q?ssl-2I=O{qeeU;$> zjsay9oW{)IDjkug{bkB$A$w_Xl7t?tTNSNBaHPR1v|5J@1kJZ?gZn3UVFrS~Sw5%| zuBcoyqEj8@@I1S{mE_EAp!8H+snfWkyY4P(+Y7#vcn4rvuf!aOg7i`vU9gK;&J2$$ zFIv!QyD8&0WwhR_RHP+;s(~x&GN2`#gEHmoWXm$#jixgasN^KF<1STd7qFnYz?uhT zm%~jrrB|#ni0d_{HQu_iMh*ikuYsCM2=baWlZP<-TwBuuQSo%$i#TFO-@PH4aU3LJ zD1?3?7z=ujN?|3RE6te_HosI+?X^3|Z;e~a{Jdv>{6GkUSF?&%G%}=U`|B%uNh|u@_)8BtW-8rN* zex=MfPf(R3z4Eh!8pnyG)=TL=l14`M<8?9><*{IzUKithhBQqkTJl6q=7_Jo+;BZB zw&9d^jV5Obn|G!a7O||(_L~&6bb)3Nz&tyVtzqYNsywH&W)ENL+5IY~YW$Pq8CPaU zRU%kV&^9%lc0V*+k>s`_?sW1P>~0}H;A_-88GV`hyU?v7V5?kR7)(o7_PGwQS65*M znyAq~KA>V;E_;%cdTmcqn4~Rbk2pTa2vb%=X*4kQtK~Wgg;@DiBXlzIt!`(5GV?QL z(qEZ7%e|G0o?qBdjE&=XX8&_z3!RT-)?_0SsZ4am3a$fLw@U6ou`i(e?^ScltYWMd z#o7Iu5_9u#B*O?e^P?%l=hIKhW{ z-}m0TSc36Aun}jYZ3x62Ay$Klc_ `vJiwZOFg_35r13B?TidqnW)fQi zPbS1|+Xgr0NMQTjZ-4jx-TQ$>v95}<5anZBKP|x6U@a?7Nr)^W&ryQ~&a5QQbv+TW zB{PT}PcMrm0Fak1D(jpqR)B{3@5Rh$2Ad$$RIAH{TcwEq)V3T^x-$P`vn~TR=FrV% zMGtfpOJy;1-Y4FMjKN55@~JxVg@Im-el8-lt56>-$I;x7P0Im?BDpdsaokCa*OAxt zR4TB7KkAOEzPbLa{phu 8(uIb3+AV5cHy8#BpdPlBIzBE}SQQNqtRU=5r+@ z>UWZ|R%PY=%j%|MM7_7xKKuOh`~BWHzeNU^2;@aNAd4J!imkbvoIYPk#>}s2oL5f( zz-J27iSk0x_ *x`qJQhm=AV8cMfkAY}LsOSLW*4T} z?iOgs|2$}cHO<_4EaMJze@^sp{TRzS1W0g;H9{M*L?{GyNS2XVw?wRiROl@dyC<(D z$%T(Bghkj`X-ds-eIj*;Xvka+5$0R2mJnUET97sPhT6MCZMahtur85XMX;5qMfX@i zQM4kFRv9lh&_OJ;A_n0w0&E jI z$w>rA69AAbja*YSfDqGHB3v~CTp1qAWp}-J1Hj7YFT FoSBSJPrIE=3Hdw0YplE?pthvy zxsrCy4#aV=MNR#DV^%TxtdeVJ2an9RSuoWlt-%X~L$AenI&(;_p&dM8(?+JUF*uf> z@s#1#PP6Ki;Bd8UBUK*cj=4_gcY4Iu4;oSaCTVa)a+jk5FGH3|lVu`$o+`VnyI4p; z!Lj4i;Ut;%nsT)<2cX(;0k}zu+_sw{4BZIGQb)PB1kfZI@mO`D6(S}X_`j 3{lx%G}V_-s=G^LuvR7wKkCQkPP|F-XF-=W%9v}pj`Q z+3NJj-lL!yr+QhGLXr~3XuMYGXdG|ywMmskw%qQn>x`f?;J|dsD!tq>(C2@Jm|LT6 z*EG>S_)%ru&MFCQt-XKu;p?xzY2y3X3d)Oa%p?=#U*$B}Q80cdQ9yIqzURkiIzK)t z-1px5J|&Lkaz87y`Z#GgHWWr=KBAG%pDqw~5b%lPxn;o`G9e+S v){(qLH_3yJNHvewha9At-8(>VF6!@>XObVD%sXmg?kxhGIKgJn*n8H+)ch zlvfbJ0o}Tsu>-*Le1RS=*v>`6+DnByMpDQ=H}*?&gU&5~Fx0`eF6gzgd{8YpALp3B z*bqxjw%DFbhcq~BI<0jaa62r{@aisqU74?r68eMoDe$8r@x%%x_zJX)bu8KgV23Si zSYe*uIIt$mxQr)sByU)(8SMC{N)V_qHO9QAjH$=}>Bu1P*xQAFq2*c$FjXj$Jiw|w=Q9w}tA;fq;f{sioV`1hv`Sc+7oUcrmlM6jHpGAd*{r6~H^%1$8 zAtB#YgN7y>?BGe|*^%PIv7;%nX)M!Qa<^PRLbcdR`|I4XACiU06+l+c3$!&zMHOT? z;!vt_s2%zBOy}_yBzhT+_fHC@u~_inAmCdv*7gJdi0F2E_~MJNUVs03yjyc*>I~hP zN$}%^nBt01K7s~qENu4)N|Vs6HgSADG4|f&L)7j8dt%<|q `FzU5s<$engWzFePQ9aQjgtE z98ZPfF9^cdT_`F?)=k+wy6*iQg~LV2C&W2gPf^=Zf8(=d-5d)Z8-c2wxntN -M3dhk&KpPoyTx?3KM~Bv;7(~3hi295J5X !``-7x^T`C78w4N&GGEtkGxO!zv1AN3ZxZm4Uz)-GsEYtNk1x0J(jNxZv~2P( zj?ACd+O}=C4O@sXjOEqo2X7VN_WgI?fAiHh58G|7_$*gXV^ w|cERz%1xY-QgeiZ`B9riau}3BAl!hBE!Iv{uwCj7^Bd(nInUtLBDO4A0JoXJXF% zB7U0vHLOg%yMw7w_#yU)+yhMg`tc<}=Ik<7ii6KEnshT~IjvD5-}wVQb3>fenC!Fs zEq2o#Qlw $J$C-BQZLNR`- 2wBC-T?(9 z@n%RF3iBSmCgWah8mTr{xs?X?*x9v_vP7@m#fl?Md=iTY@Wtm}(7odepz&ILK+v=v z6x_T#&&&7Y0Yx{00|}CR{dA<|$V)SIH*xrL{r=;~b?x(6r`~rO8TtU7IuH>uJ9m@dYggyPzJl|^!uu*-@-?eWn)jnfG> Hd&21wMXv+yBe+gfYA z??5_~Ota0Fo>DN*8T|ftzyDYM*MC2cGsO>|qqjjcMrmzZR2Y$$>MfsgAyDgKT$n{4 zq1#`aw=BN&q#W4oC4FnxQh|pYp`wrq%Qeu2(WZ29LP~J$_DPL7+`>RQORigPFTD`0 zxVttdmbun;4NfhIHLg
zDa6#?qgW}KX>pT)XKvl6s3%7AYW97d6lFy?B^{;-M-zxN4L8;8E`oR5IWXB7$OVp` z0IMb(B?;BdBgMDRQoU6tR}7Gy{Xpx2C{^gXU-mD_pHMV7yA+rysc4RY)HJ&N) {;X8XxmNSS|u^Mg9ImQ&agI~jhxa}o- z% o?1wjAkNI7S?0Or-a77sZ++~i;3Q*?7&d@?I2$yc znv2n)nX!nU{Qi^24 VtF^*VSTx z0p7K7iz6b-L|%1I%VOdZ_DA;H1P}=`EoH*z++mjGXs7G-tmI21D9{zKq`Qeg&!Y3d z$=wjcmjdhaVnZjSdJZsw>XStst2Q`H6lR_BmCE)*w9y7xu9lCtM@8L+UiE+qkwCrX z%fp-;NB(i)s9y$C9VMFWoMSBIqY5?p|BAw{3__jb5R5&hbYay39c2c?B7!Dg?_6Ya zP)w;=AuId<{q3=k2sPshVzB&A#*sqJnU1g;6_-&F2pvDgD;*CHFcE{x 54XTsFt>Z$;`r zQ|ep-XC>~WNH!V~ZQJ(!_uqZ{%{RAgv+hcc+ya2a>$7X}!>pIPohV}k>}*i8akLkl zIjN5j#+P@Ah-lyUr>DpJ{oePzcg|WGCaIak9>g)(AOM%b1=HIH`vqzR(E#8HvnAF4 z%l+V7AOHj$dnTQF?=&)l5c#d8w{6fVgvn%*O);~KhzM@m_QjW9yng+ $LLXbV?k61SAVGn&gNC#Km4Yv!R)%HCmzt?4yK8W*i>~b3b$*& zw1c^|b#;`6kOIikVamzcd1uZ07|2GRP&Ia`1d@Y&iB_&A`>gQH-|S=*X{!W4qWvUy zTyWvi;;s@RT?$^jhOw3q(o1GpB?m?!FlPc)Lqe`uxW7_=*Q X43xh7d-Fe eDbKc0y!2bS0Rx;;o|PV#fuH(mbG1@+0?9xu|NCvF_df|H^Xh9Yz1AJ+(Cw zixSa8O~{NW8FLA&XSPA5X*J13!OZ`no=aarQD$G05^gg8Y}@wLmtVbq{{hF5Ry9w= z7R$)L8ZLyfdpr~9Clb!+*Vxi7_Pe*?3@eQa4on~p0K_l<>3io>JtOpPBcX^774XaA zB(hb%YWH|0b|46NQ^$<4kXZ@(j?5{5@EtY9X*OyoM*}t^PfM{I8w3s8+aKP1{pDBV z@Br@{%-XuYAtPjsP~o3* Y2UD7TMk9fYd9S38|7bfS#S(t|BVTSKRHZ{+4C gzn*XXTydX*1CC=NG1rdfv3mbAEcubM5nB?ut zTs HV z)7y^LjAZU`*