From 9d83c89415eade34d3366971e28e768903d23b90 Mon Sep 17 00:00:00 2001 From: Eric Matte Date: Wed, 6 May 2020 08:13:21 -0400 Subject: [PATCH] Upgrade web server for OAuth connection process [add-on: google_assistant] (#1267) * Update pages styling and better error handling * Fix css * Offload static folder to /usr/share/public * Remove unnecessary os import * Add a changelog and update the version * Update google_assistant/config.json * Update google_assistant/CHANGELOG.md Co-authored-by: Pascal Vizeli --- google_assistant/CHANGELOG.md | 5 + google_assistant/config.json | 2 +- .../etc/services.d/google-assistant/run | 3 +- .../rootfs/usr/bin/hassio_oauth.py | 71 +++++++++++-- .../rootfs/usr/share/public/css/style.css | 97 ++++++++++++++++++ .../rootfs/usr/share/public/favicon.ico | Bin 0 -> 17957 bytes .../rootfs/usr/share/public/logo.png | Bin 0 -> 40104 bytes 7 files changed, 164 insertions(+), 14 deletions(-) create mode 100644 google_assistant/rootfs/usr/share/public/css/style.css create mode 100644 google_assistant/rootfs/usr/share/public/favicon.ico create mode 100644 google_assistant/rootfs/usr/share/public/logo.png diff --git a/google_assistant/CHANGELOG.md b/google_assistant/CHANGELOG.md index e834933..88be0b8 100644 --- a/google_assistant/CHANGELOG.md +++ b/google_assistant/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 2.4.0 + +- Improve OAuth connection process UI +- Fix error 500 after submitting the OAuth token + ## 2.3.2 - Update Google Assistant SDK back to 0.5.1 diff --git a/google_assistant/config.json b/google_assistant/config.json index b9e9d7f..bd0e24d 100644 --- a/google_assistant/config.json +++ b/google_assistant/config.json @@ -1,6 +1,6 @@ { "name": "Google Assistant SDK", - "version": "2.3.2", + "version": "2.4.0", "slug": "google_assistant", "description": "A virtual personal assistant developed by Google", "url": "https://github.com/home-assistant/hassio-addons/tree/master/google_assistant", diff --git a/google_assistant/rootfs/etc/services.d/google-assistant/run b/google_assistant/rootfs/etc/services.d/google-assistant/run index 8e265de..36ae246 100644 --- a/google_assistant/rootfs/etc/services.d/google-assistant/run +++ b/google_assistant/rootfs/etc/services.d/google-assistant/run @@ -15,8 +15,7 @@ if bashio::fs.file_exists "/share/${CLIENT_SECRETS}"; then cp -f "/share/${CLIENT_SECRETS}" "${CLIENT_JSON}" fi -if ! bashio::fs.file_exists "${CRED_JSON}" && bashio::fs.file_exists "${CLIENT_JSON}"; -then +if ! bashio::fs.file_exists "${CRED_JSON}" && bashio::fs.file_exists "${CLIENT_JSON}"; then bashio::log.info "Starting WebUI for handling OAuth2..." python3 /usr/bin/hassio_oauth.py "${CLIENT_JSON}" "${CRED_JSON}" elif ! bashio::fs.file_exists "${CRED_JSON}"; then diff --git a/google_assistant/rootfs/usr/bin/hassio_oauth.py b/google_assistant/rootfs/usr/bin/hassio_oauth.py index 39c8108..e2c3730 100644 --- a/google_assistant/rootfs/usr/bin/hassio_oauth.py +++ b/google_assistant/rootfs/usr/bin/hassio_oauth.py @@ -2,11 +2,18 @@ import json import sys from pathlib import Path +import threading +import time import cherrypy from requests_oauthlib import OAuth2Session from google.oauth2.credentials import Credentials +HEADERS = str(""" + + + +""") class oauth2Site(object): """Website for handling oauth2.""" @@ -26,24 +33,38 @@ class oauth2Site(object): @cherrypy.expose def index(self): - """Landingpage.""" + """Landing page.""" return str(""" - + {headers} -

- Get token from google: Authentication -

- - +
+
+ Google Assistant Logo +

Google Assistant SDK

+

Initial setup

+
    +
  1. Get a code from Google here
  2. +
  3. +
+
+
+ +
+
- """).format(url=self.auth_url) + """).format(url=self.auth_url, headers=HEADERS) @cherrypy.expose def token(self, token): """Read access token and process it.""" - self.oauth2.fetch_token(self.user_data['token_uri'], client_secret=self.user_data['client_secret'], code=token) + try: + self.oauth2.fetch_token(self.user_data['token_uri'], client_secret=self.user_data['client_secret'], code=token) + except Exception as e: + cherrypy.log("Error with the given token: {error}".format(error=str(e))) + cherrypy.log("Restarting authentication process.") + raise cherrypy.HTTPRedirect('/') # create credentials credentials = Credentials( @@ -65,8 +86,30 @@ class oauth2Site(object): 'scopes': credentials.scopes, })) - sys.exit(0) + threading.Thread(target=self.exit_app).start() + return str(""" + {headers} + +
+
+ Google Assistant Logo +

Google Assistant SDK

+

Setup completed.

+

You can now close this window.

+
+
+ + """).format(url=self.auth_url, headers=HEADERS) + def exit_app(self): + time.sleep(2) + cherrypy.engine.exit() + +def hide_access_logs(): + """Hide file access logging for cleaner logs""" + access_log = cherrypy.log.access_log + for handler in tuple(access_log.handlers): + access_log.removeHandler(handler) if __name__ == '__main__': oauth_json = Path(sys.argv[1]) @@ -75,5 +118,11 @@ if __name__ == '__main__': with oauth_json.open('r') as data: user_data = json.load(data)['installed'] + hide_access_logs() cherrypy.config.update({'server.socket_port': 9324, 'server.socket_host': '0.0.0.0'}) - cherrypy.quickstart(oauth2Site(user_data, cred_json)) + cherrypy.quickstart(oauth2Site(user_data, cred_json), config={ + '/static': { + 'tools.staticdir.on': True, + 'tools.staticdir.dir': '/usr/share/public' + } + }) diff --git a/google_assistant/rootfs/usr/share/public/css/style.css b/google_assistant/rootfs/usr/share/public/css/style.css new file mode 100644 index 0000000..46c3517 --- /dev/null +++ b/google_assistant/rootfs/usr/share/public/css/style.css @@ -0,0 +1,97 @@ +body { + font-family: 'Roboto', sans-serif; + background-color: #fafafa; + display: flex; + align-items: center; + justify-content: center; +} + +.card { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); + background-color: #ffffff; + color: #212121; + border-radius: 2px; + margin: 15px; + display: flex; + flex-direction: column; + justify-content: space-between; + width: 400px; + max-width: 90vw; +} + +.card .card-content { + padding: 15px 25px; + border-bottom: 1px solid #bdbdbd; +} + +.card .card-actions { + padding: 15px 25px; +} + +h1 { + font-size: 24px; +} + +img { + max-height: 60px; +} + +ol { + margin: 28px 0 0 0; + padding: 0; + list-style-type: none; +} + +ol li { + counter-increment: step-counter; + margin-bottom: 20px; + display: flex; + align-items: center; +} + +ol li::before { + content: counter(step-counter); + margin-right: 5px; + padding: 3px 8px; + border-radius: 9999px; + border: 1px solid #bdbdbd; +} + +input { + border: none; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + border-bottom: 1px solid black; + font-size: 14px; + flex-grow: 1; + height: 30px; + width: 100%; + background: transparent; + outline: none; + transition: border-bottom 0.225s ease; +} + +input:focus { + border-bottom: 2px solid black; +} + +button { + font-size: 16px; + padding: 8px 10px; + background-color: transparent; + border: none; + color: #03a9f4; + cursor: pointer; + border-radius: 4px; + outline: none; + transition: background-color 0.225s ease; +} + +button:hover { + background-color: #03a8f425; +} + +button:active { + background-color: #03a8f44f; +} diff --git a/google_assistant/rootfs/usr/share/public/favicon.ico b/google_assistant/rootfs/usr/share/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6d12158c18b17464323bea3d769003e6dd915af3 GIT binary patch literal 17957 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 literal 0 HcmV?d00001 diff --git a/google_assistant/rootfs/usr/share/public/logo.png b/google_assistant/rootfs/usr/share/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..78bad829866f93e5b61964f7bc5880d7350030a5 GIT binary patch literal 40104 zcmeEt1yfv26YdfMK|+8K0>Ld1oZzk-B)Gc;*A4C#+}&Y$aR~12?(P;`7I)_!zPeTS zPh6^~qLw*5-96n;KizXSSWZR^4FwMc1OlN+h=UbCAb1ksmlz2V_=G{L3Iha6gGhjd zl$_xXJA8o8K;Hj772*`WdHwVM|Gav@_=KT7r+(5uvQ0dU0%kMo!J+O{ce2`aEU6qx zX5d5OL()-cV?Yj*P#&uP&hq}V_;`Ec$FIk4q%v-lZg80j%fvdn5s=AW)-E11j&ZwX zGfK(-pJSP-{q$Ay+)vyL*wqOt_mR|1vP6)Rjjug&4^Ez&7v0rF4EVRg*5{=GT*GY z8Xo#Gbc*_P?P4R;E9g0COs6LF=efw=$zI=Ct_Q9)cwS2OpD$ta()+i+F()Oz9M&ooM&3rI^Ujks-Om>NkY8a%%m2!c2@ zwjK}05$qO5TntO@T2L015?9x^9zAb5iZTmC;Lr52oYWb4t~4HJP%&m+-Q{XTxqW+$;JN&qVW;&n)-YTpMWoJEbv;Baim~L@F5jqM zH`ZxyJE^F&P-W^|`b6MxTzQFHh37l=DUQmEmp>Ere500fXznT^KeC|}u@u71e3F5; zd&Q?8#Qz}iqq~j|%^z7jhw-LC*06cC_il%}kAo0%El+EVABsH_?qZ{up237lWtiYF zqJ`(~Xf1M@0OP13^w`}r?%p{vdp(MP73RNdE9HvMZW)9Q>*tp?yX^Bf@k)y)TRkJq z&GjlqcaGVc3shvSRwK>F`??>E+;koUl2W12rs=|yIT|2Z5A1y$D{kt{u`&N~a}cFzD(JWJlu=*#TqG=QzPNaqPftlM0(*Ot8qEke4p`k( zhiOdb^o?0p=i|gJ5%2b0b*3d*ML4@Q!II-(OMIL6t@|e#_RVUPiZ5UTQxjcF+sT`y z;n0_7kG7FB*JtSQ{*sBUnDsDSM$~v{V@Axd8542(oT-k}CVffvhUU~O5WeT8g?z7k zvSHbHj34;EODEk@RzP;E@7bA_K{$mS0jX$AN4m2wK#HHip2+6ArGC3Z6v{O${ z9S@~co+lo&97orxZ#Ej<#4}E?bU+4VGLa-Irz^LL;JxH!@3J96k~Og0=>;-(x4I7} zgCHlrJz^bsS008TI}eFi6YHLp8-@oDyHhFq5oz`8TYX1|18g00yX*^Cs*kjsf3`IM ziJZlqr-iFe1gV;lX#i}fYh|vD$M%$%}Z-K>`>DdQK4)vxYb*R1xTVTbWzQ%C22 zUn4VdWt!$$S5wU7c$>4NT+1tpm_t?U@gMu#oMRu0M{I=Qo@n6iJ6mXq;X!iP{Ppky z&-urlIfU(w$Wg253NNiW=KIc_Ey(+m@MF_teoHvYVBByyx!n_CD70o%me;?HaccE}%_&PZ9UmTBDP_g{zJw zs`v$Db$RXmTgrWBV@Nmbju@^4=LFe9NE7E5&J0;MnV&p+z+h+ma`K$r7D1j z+A*dk3O@!=-#ztieV>B;8QV%c_z_+3yl}?0?MfNu{3Nz>o&P{6pOgPDSytr!`h9Xf z!J56H=Ze+c*}siKw)+K(x#aKqxP$cQCzyan?|(_ZEYi!?1Xh|F-8;n6#;)}TFRh8X zx72w-0!Iw*`3Z;~g9z4|r#)j@l8=WXVJ9fGhfbe4mN){|i3*?HUXy_-NUMfDO8Lc% zxWYLZDko>{8I4_a6#*gs-Le|o*B;#OST}bz4gR&rTR18DnURBvzKNW`rl)a**&DFv zUt?;?BP?^e|8D58(0@B65vU1-YifP4rmC(vAAFnPG7}cFC~OuBsF zS4{9qZU8I>A%&)R%RQgZ(96wz2*|jUu4>FXd_yc-T`Bt7)3rv zoAeAf1{-NGHSs$yh1cbaX*($X1Z4ci)vl4*F1ty_+-1${1!@oia4ILaDMZU|+(E;w zH=FL#Mn4>;a+v9L#^dnZcCpgQTj)#9@m@nBmsWZ9(IIhI*H{*+wCWL8s(#{3nQmt4 zN%HlaHGLb_7`!di@yF=8+KYdYf8zj+`t=A&mCkM)k-OwRvn_E*(@cr0OqV+FNjDHl z{xvNyVM%VKBD?OD*rs&SiG^YuAH~5q5Nt7k=k#_<1v^jm8{DPu>m{)7TZ#+Vo1hvu z>Nif`CNM?=qFd)$-F_%oPnV{sS$q8+_&aR_9COAA>?2?!!GA-lMURdxT;}HSp5LjA zU-oYA%Qu&H*EpqFb6EJUbZt#V>YT_Q$X#q6`UaFcR2ei02^^l!1%YSFi4%&I7aIAv zY(=e3S09~!2g6`3r6x_cBtI`7-N0J9Cu0(OF)T$#Uq-x6a2*B){}-pUr>PD!`nUCT z=I>=v~ zpW&XCJ#D`7s>Kz+fie}dS+jf$@QMaXAQol3Ste}hg}e3GLG9NMd%Y`JaHH1RGIxcN zRxr^^`EL6DIw2*8pywlRXA<9EH z25((Si4zTn<}+xG<2JLs7ioCxb^LM(D9WIlnlL{*OD;)sq-vL?0drpbuE+0(Y2zgB z<~UuctPRoSfy4Jy#jVaAX10t{qpOv^Xh?A|TP7I*jS82WfR`lzo z8MKUmIMi#ueG;YhYNcXpteR5wfK^ zyWIK^v}S1;+w}o>bZ3%1d2Zg*Qo?`0!J}p6>`+h3_D6T#rBt-Z%1}0+WF=Yas=Au> zg~{xqLB6Uc*K0}s`?5$wHd0wGAv+YFEJ@bt((Q8JS(WLKNrLHe9o<~tVk=bT(bVq% z#94K-G4McMeEtvN=z;j_%d{jFZs^f(=nL9GR7enyh^3g!@T^Sfv@GAfA?L>VObKxE zzx%aqVxtGWQphC-k8a3XR}Sy3N5)>38a&02jS)skIpv9|4i5e&Kwid&nR z!++6N6S3y}U<)7k-7zZ&if*p$r=qb~u&2y@(f!xoZKVZ#1`>N7f>WZfP}LXq?OR>O zK!myPX6ooOIx(2lon*;rI4b-$fDubUp(a7&n+RTr5Mx)2bw?rAz!T_#I|T7P;#~MihTkqPR?k zMoAxzDlVY2vyeXSPa*Z6I~;jyNmx}l02UqG2c(V!?_nn#uHkH?Dygv6+uBrl3{l&K z`RTt_r0WIz09(U>F571mzORhNUPrEr$D$cc)xyC+Ius9Ys0_`-te2mkv#>kV?(SMD zx1lY7r6j2*i=+zms-NkrAY;KrC(eW4o51#Rw$1;MGv-zJ4;?mbQJED!B@QwH$_g;9};Ip3iEvl{ugpZ9UV&)XLoS) zVD~HU??YEd#}Z5kY?$GoZ`M7uWnpsTpBGDe_5RLGV-)gQFS^<{@~XuL_-u{C`N(;U z546|pi4FiK1*NrWPE}?ID|{o{cwo6XzUz(qyh!sd zpwIP|ecMU8AFE6$(r8o_BsvtI#}El{&qO#4^U7eHIUgUbF@95qJLi*_F;QnwkW}7( zFD>~^Rav!X!!&LIkF0U12`4e6003yUEre_x$0bW%!8gd4IC!ia-Lvz$%L)VqJ&`&( z-9V$Ll?SG_P10>W?LyxJCj5)^Qi!&xH93#QI)S>+kNTVo`2}$j(gN0umQJA$vSNE> z1Nnj5UCWmihhJsbh0e*y!;!#t!}B2VeW_LxsgR`j>kG_AkauY z1*D&!g@&cokvVHx(|vQ`TdCV6-yrPWbPNv4!V|qu@D^p}f*y}XEDib(U8O^k8zceN zSpOv*;d4jY!{JJ@w)^#X48J;)()B_b+X@0s3GJccZ52ov-ImC|v5`YQ5 z-CGC$J;Zcy81@~pm6j30KlvhI%I7$7sfg)xK6|dCxOFa|(EtF4k)+ci`I-F~Hx_?N zm%G(!H;$GJkKjSba__p;(NOHDhvh)A@3Sf*;CRGxe`%jbYwd$QWTQN1t!dta4}V*T zz~DSa4}15*boU8!w_z?xpagis?S<6%Shh4dD9QVe*k-wUy+9*7%5Q)}y=;rTUdFcd zlK0;!X`tua7_3nN90RiL!HZ`)jOs+WII?M7WlIw9!@&IEK6TS0@!Lt_$7$D!6?#Pd zV*oHX@P_+0$R^vbX&k7aM&v$tHR5#-`9f5TiMaqxTfM3K6ram~^Q_)vxE`Xy6$Xgr zldT@&**%GCK)dEs|E_rA+BoNNZ(AmWj~VUJ8$(ycL2I5mS~`QC#%U2)ytc{^2-LkK z9TTJH%Ht+})}6~0+tET*Fsssmz?Y%J(csicgz!Q|lj*m%YJl*qu6{<g0TIgF?coLe=)AF?Yq)V-$=YUaRyO+zz^o7&Je)^oh1{UK02Z)$< zS<&Q=pc`sfovw?sHcYr&-`#=1BCJafZ*yME`bSJuU}CGRb=u}HjUs@Oq|7ZUMxL?I zG^{CwI>;0k=0y3>)aY`O$}r@8?`Xj*S^D6!5H4{yBTe78MR_UQX8G1}GSvU^ud&r7>8mQZ8yW>AqW?Cvto*XVchDJc#)Sl6 zjJurzzq>w(;@`_EOkIdWk~;?Gm9E-eG7n`!@>mXcv zL*B)6J~0@)b-Nf($mU>|P}^)}?hr}<_=YL}dsNZvJF(p!-%u@}P1DWr+G4=OblB+` z#!f7m{$2$Gh*-Pl?TiMk{yfU9%RMtG|eY52&C?R%hJ)b2+L6`jl;Kz)MpW zQGN)(W{8(Top#o zb8Jk^WT{#cm%mfm)0T{d%({2|xuT`oCR;xM<&zz#xyra4Y-OZq33Z!v7TP7j;0Opa z-;>VGPItAdyuo?(mzh@_VEp$7+lTH&)%@~SfoJ55%|p=lJ0>PpOhj`%gT~WXEjfd! z%m51@vA69oAyT(NiFeVOLIUp4|dDLu8O?eFnpS}`$&GuJG@^un&immdQQQ(mbqL*1(F zv_jIce{snX6{s$=VH)v2M(zXB>O~0!7O?lVxqr(=u6!jUn~Eo#tL&kjge1!o0}=Cyg(p&9T443>ci={Hb2?@f$GtFB_auKkG{prDkTuSlWL->SO|uzHPtU)}S3=L_5Y^T|`=k4~mf0OJq$A5z?Sq4rSnT-MnE z_*Xd50bEj0P_N5ka$>n;>C&|4@Wu{M4)xRu9whVK&qD|mw9ML$MMs_j9S4A;CFBJ%mI?j>;xoXzB8xul;)srHtit z91fhB=c=oq3l+65zy%0Wm&)DqNtjegMTTv*Ya$FG&}{C7901g1_GO~}T?SRI zszFb-jeQSHhA$Lkc;b9&N|=vpfs9gv=Uz2~|GfjX7w6L8l+^a^c3*M#RcS9j2!UCd zLcmsIgrp1Kmz)O%|Ap^PtACjWxWx5IwfM0N_1|g%+}))>H^vTTDM4UwrQXk~8e&^S zg^zAU?}0(baB-FGddNTNh3{65_fU6Ex(+fjyx&HB_E#>nhrv@YCB&})jejmCTeD8= zoSYuhmZgX1#hhp_z8NA#Lm9G?!424eR50%WxKtu)WK#vj2wse5kmUom`pq8ZjA#7g zC>%9)Dqp5Zdf>k|Ai?dmH<dc2M4Qs!~q@YL8jibUc8OSRR+dKceH;LO=dN}0FhU4FQ#F5>A_sMY}f!rb7gG$ zq2ay_j9<#B?fe_;CQ^8V4-ZE}H) z1|AOtDtfNc+$t8!Ef@AWxHl)4Wo-HNQ5ejs7s`7>U6U^)G_Y2V%~{6C8NIA$?akfNCwQx3FB*#YqI@ypk2O5 z;B>7(4i6A4{etsQm?Cox_mvBk`H2AtFmyOsik$#w<{hQ#JKekM6NQhC{M7IO4c;xO z{P+^cM<$@p=)`wqi`yO?glH8Fog=Y#pNh{IxA1JaE6maZp4aKe~>s~ZjfMCku@+gbW*UfG;@>D#Xt@>L+ z0PvjU)3xd}-m)JkLnDk@y6_x>xxRoS1umA|gcK0AQ|Q+gNNHcN`t{*K?aRG!j|X|P z26hG-Bi?-W(=wJOTF=jN-B&7`xr_iN zlz+xWj# zRVOcJl*($QT<1sHl^X&oIzTNMwvZZ925voKvF3ixO^t^$3!)zZ^n4G)IzuOY(jn85A_K*Xp=Kbr{A}OrYuE7jo}okhs$a(Ou;eJTy)G&;GAc!t z>0-XJ1t?RC=<6cSo4#8GS`(FpGM?6z9z9+=IY1V=%2X$e%6%nr?AF{d`Uxg`YGdFO98~U%UhDz~J6ECB(I-XGqC%%T&J* z0B@dZ;YG0SuPrysi3+O2Im=?3b9!JqbBYWTQX9k;*Q%LDZ+ z$hyL|9k5d~BZgKrFLES!L8Fi3Awtg(gYxw_9fwOf%NClgMN0;OMEL8yD~!wT+q}N%_3Hw&0a>|A-AmRF90>VMQ~*kxEH0QsY4XgZtesC>A}i2 zKK@Sn+Aj#g!Q9_!3I?YIVb7%Eup{I{m5qQ1dtxtK9-PK|Q0}X1!qo$sd@}ZIDyq5p z7mfYl4AX|iiVj{!P5bo$VIOXA@f{(G_Dj6pMGScF9VPn81a2vvWy%J zU1APg8Ve5E`+7h`1>8)!4y5P}KZ?@6u8F0MVQ%Y4BRCrw`QS?n2-?DmI=;D1;F454 zp(zvx+L(um7ZD?1Dmrx~9Xf=p1_ocABgE4Bz5sXA+sXhnxvQ-X;w8cQS<`07+2_qS0DjA~an;J*y26!Bc{P(&DX0T<7}g%&zP{LnM+YP02Rkp0w*Lf!8Qrj4^H!0A z9Hpe@&%{2xtK8NB(oaWaW6bJfzQK7Z@*ej1pbtoG^w zo0f6Qo}{frxq7YBHbh~7ygN~7r!0;*v~+83mgpkZ0qUa~i#A$Zy9QOW-u?;)DnIgx zb3YC-yg~3=C>=w*d@vXMNr3=Lc1?hN1 zm~@@xUPn3|Aw}GFji~4VS+Yxqw)KczXkfRwxWyE7Yyt$CUp!XT(3ll-pLCJ3i#!PQ zNg0nTUr6?#bs#~={)L=ux7NA*SU2EakvMqR$t zG-Z=E1udffP=FQ+7ygvU^&Gom?ICdmVPbwqHUm01;@#fj|BbDjq0&oB;1EX%nc>fz zP)BC(W7*e4T?tx^$FH*kI}V`L<-G-Y@1E7=QOvCJbGJ=DubzF_S_L|WUvIL28{XdM zE5W|#wv{MgyaqKf&K}&D*_mHXVlV*ljRytIzl*`2+O|75v{8H=pF2bUpv0Rw-0u_@ zSR0@6mIEz<@ni{$xdN3m4chBA)P?0hB;AU4b3|UD5j@~vV%oefgNOju8FS?DYb#+R zfk0!5YGy{FEl+uyMa<4bzro-`_%msy+{MSWoJwG7aLU_|tJ14Fp8-rbjQ;N)%vN`~ z_jY|8=lv0a*RN3Fl)E*3CovF`{ARAMNn56a8<-BO{mEVDl+757NanJggs*(AWnTaY z%-^=$ukV{gBV_k#O7ltG1V69>KIX;W=^Jrya|+Bh&|ESietl6WJ!UUsvTuvZGJMl) zPxQv=jWAFl9wIi_^mRJvv@2_^h9C3d4uNt%y(qZDo)<9`v4GtoEBJu|0H~>p6zmx` zpp$jL8Y%|X2-^4$4s&}bQvAi&mK6!?xbP+iy#1>ysH`qcJKq3xs38o)nQQ&U1bFdg zQSE{+;w4hkYGq}`1G%uNj+OIMprgbeMMj4kgSSp4O=X6ZA?Y*@bIHh=o;*$gmd7Km z)??$6|86{>V~qq}cYF{^@(}Pv(6tV8OU!a*p)7c_QkIIn?9R+`^QS|-$H2F6K9dbK zSaDSFY(t9N!-kDK+E8F0N6Djy`_KU-U?IWX-os)$wT@`Tvtq*L55~EVllOA&u*NZu zP{X4UK?(?j(m8jwI$XNz6{9pdArOF}VOtsV-o&XTX1w`XQ4v3}P%Np^ATYIZjqumt z{8EN=#VyMsj7D_mj-`>EE!#r1s_|XSgSqHQ9H&z6Ruhfr9CwriANO*aGRJgWgtn&4K?SEU;k6U(P*QaQ`Yo*TUAHrxbp30UaM`egD(C@!jK1ROl+& zl;pDY$Iw{OkiAk3W2CAnepohKYCh{4PPRa-qz+?cJ{BjstI&||>9;3*T=8OjvM|3p z;VZyx34P4q7_^st`qIKGr!b1fo_m6;KPnYo&iFKPxQWoRji1oAeD95M@UbTWC8y*w zA_5-4n-4MwK#RQ7#V44PhgQ}2ct zt-0&cpLIn{%}Hf#zCLp9xBuSwrv%Vtq{{1pU)H~z;l#3>(=ZN#jflJg6RJN;bQwgi z{k{m3rcv?I>7fviZwL^{SH!O=73$nOLDQRhW}W3WaCN^3VVu?Cz7?LWaN2JO9LIjf zG+W)J?k0JQ_@(}VlL-zaNR0>o!pa#r<>_`TU8(IVg>;qkIqe(ePze@ez!HuZq=3t! zCPktlhuJ*i`DsKn|Cc?qj?(K%E%Dmt(tRLR(JVJl5wa1goNz24h=EeWn71&3h+?I7PQFii`Y~R<@97DcE!cTK9`!Zz zLbRW6)~}yMR~o)2B;OZ?Tikn`=@nQAl1?XMKlezW6Z5-sRYrLUFsU}I15=d$qQRff z5YS4{bvz!TVjJy{MtF6=0d@~M_>fc{^~S660^Aj>Z887KW%SyI?~87esxO}@SWBN1 zcm+R0OUeAWOSaw8luTM~T){qad1sH;ueZYph~i*UT{F(fXVKAX_JdN=PYdO7A5&*9 z@eH7aiWQATlW4xMz=zV2O>%Wt7eC%FdOufqR#|sdRXbHDbJ~UhvAOD+i>4#b*Bo6a zw~N#b#}In?9ZG)~}6-znBjW%HuoKDM80v?XTcE z8wEb(9g(ap7JO;(_+vF%5L-9e%K739M@=MLSo0yJuBAlP6s~Q?1O5-(8_<8B-bY38 z>Z{srx2z%?$sAad=2S3b6$H!><9Fs+MFsSEU~jrK{fFbRNv`(sM$J|Lr*m&irgrD; zykA1%=bF#4S){Bb!v9s{WjcxTw^ePn_xJb!%x4gJ6zjS-p6daOT_^8^k||M(@M*F< z>qJj+QNzrg*B0#qabNuaImNb?x7D-S-B3tn#CFUt(od=f{|PA7ULlX-I68HXyaR%) zWKS%Xwm!1wlijqo@V87e?CrE~&UQJ}v`ZNitIAEQ6%%NPL8F_rZZ%mc5?uVFykbAD zbaO7z&&8uLLg*c%YA4V3|KrVsg9khq*9N!Fm^X8-EB$S=fX8n<41G0UK-Ko+;Il>95Q7&DtVM2vJZZQYN~#QnYVge4WP+JQCF{ zxUBC;|I0Qmm&dDN*JB>!Z6{<>UB+GK?-Q+SQ{bgTpXadWw81A|H;x9lXlH)(jcZ+z zg|LvV1nG=0Q#DZ(KPJJqKTAKhW)5tZHGV*S4-Bj2WTJeUqP54o1S;^Cy-7a((gmMM z7qzknNi31CeYou}ko#xhT5}_oY+^i{E^zzP^#ZUYkbs0>zo_BlZS$D!4JX}i(>I`R zi0~9etw-;Ijoy%M4SnS($#>G^XyYG_Yf$Jh&A4r!JEXD2-|%exF=EPSYRTp6N=zW8 zIZ90C2W==2j<{4l2VrWxI!#bW(e_R=xh5i`FA>Ers_goD;b_|81u4Zem18nvLOV8y z&(K?3OLvY|AdY`LuJLPw%SwLdVJK3j2}5NNl~p{+nzvRgI*R*yRFI%PE=e7WxxcQy zH;FF8aBEylDu<^lMrx~ck11b9{2r-&)*zekab(>vl+ugsBt{Y2Z=3~t-4(Ih!235Y z36Qh6(hO8+7&>?)1f*M`R-A4AVEG)I1TJKn?A52r4ru>Xj4=Dm$C>(bO}JVDVI=q* zRG_$n)`3%@TW$@i9)Y!S21!3vJ;FQ75|Nx=ka&h2PkfVfOc)<+Md-gM%x^$*LQvxhye4k@4(0CE8CEC z7Ve)5G1Zcy?qm1-6-9mI{lG`emkc}FBrIEI_ee9^ zM4y2;5c`*h7sxBoiH?L=BUiScdiQ~KhZePgk-QUuF z81ueWGwrp3pV8qzKVVYq6}@|B{T>6Ed`f~Fim;yZZXz(EdYA+VFTiK8{%wfS%!PpT zX$40nIcpDlyp!K6LOlB_HS=QaG zp3A~NgO~StKXpu~XAdIAPNyneKK!)|sGrfkABPBa<3#)XWjO5tpyeQ$o3tQY``IqC z$Nvc^47p~~`1b>Ap4*aIRe|8p|^EeB-j2YB#2?Mn4c@O3oYpQyW8iTh4c zG&G|rETyn#WNZHCE;k{ymBPJVWnFwox}=W3oNI|7sw3wr%Fu4DsqGm(a0~VyK{y3P z~Q^iP;a;(+GKoLet-HOl&ftee5 zvtYsO)<*f;S1ZKT;M!c)Rh~=2%%Se2emfa7S$~HDS8??R{&s@yZl+5yCy5MoSv}Jn zJ^-GuK5pe|br9rxi@MLHl#zp^S0ih(Z@Bvpa!}6_%5EBWKskAi$`@ zAB2zb)Pd`g=4{+z~dP>m{hBRi2S)X!kUW_1F?UajQ?f6=Ao?lp^yFC z9|HxVB`iU2@$dm4bgKH^k8WWqt)#BJQPSZ=?Rhb(q}BO765tbgXVNx0IU%<%H@rs_*CR?4$>bPtUX*CX5QdusAzMTtBBjo%!@q@pOKRpWXUZ?|gPZPnvmJoO zZ6tKx3qpN^HO#&FZAU=e$$8sv3V0;G^VK3cXc)Zk=gv&2pV>}dm<2IXH0b&vBE;F> zPi2C?p#l#(Q>Jx4DQJqh*-I?l1_{5r`-#-U%8);u5bhCB`NfS%@EKl|@h=aexa*}L zWq9+4%v%Mhg1O)Gq)&&wJILPRWn@)duqNKh!@X;~Y}0ydWd$4f0>oE2;os)-aiAX9 z5v`(=htGxsL=1*VT0h<5PthLb#;D=*keIdU=qoE|+`wK(_3ZXGWVFEG`W>9_}O;px1qBj}RWH`6l2LA+qlcZFq{ z<1rLARf}V|4hgjtOkpHa2r|i)4Ntw7zs3ZHFepK5S=1$ffJgaz6Klot?7f7v-sIrX_*(oD8-RTBeZuDz_^!iE+C_>1% zcKb#gnQl0la$z`~NUUh)N;7X08SjeRCZrBnK~lfqC~V)oRLatLRquW#MI!Y>B3~XD z(7c=LHL@|J2a&8|2d5u^M;HA-j=mmC5{(11OgtY*3cO9TQ2XK;9}}8Q5#h$olz2FQ zE|2lS5_^vn#f>f)7}+s|kusx|1>R20P{q56)ij(nL|OV2BZGQBjgY-e`irQ8)<|TB@6Jwo)3jffyU)MA70g$69~XZ|6aEB0)j;Q;A_DTk5T2KIk?$zA)Luxl zX*?TnIbn@rgYyo%VhN+wzJ$+TF0lK6jznDGUC_P0==bAS>TUPp&;zo!OjT2TbPjcm zr`h8#Mm9uDM{U5spAti#F72(uzpZ+ZX-B`Wz5hGVkKtptl5S$pv>YH_4mF+r@4=ue)sE85C5|;5-N$vg#o%0SJm^K zjZtWUBRvt=*n?!F=BYJ%d9gnR1YTzj<# zZwV(E?@`7mL{V=Y2%ag67 zQFD60P1evXYq<7XDQG7LY8N(jnm58HVI+MHnGSQL(H${yv1Uyk&|$$~?i_kJ=~z|+ z1D*XI;RRhhXvSdvrQ$+`ioI8K zWPOy@P`!Tx@~aYsA>i0Szd(uWe3XS2hq0sjtZzvajiPWy>^<&%_2V2bNZ`idu`wbj zAv-!MdB4S)YWD;I!zMr3Zz9i79@m_CY`vuef#oS4w6Li|cb~1jDI2GGakjpr5;sKO zq+M*P(ziD6@1G8CzZHyRvh%_!;aRKwMT{*`$?II zdlb+xf1+sJ0c4@_IS}Ks;6biuP^%8IO?}(ZAe4)VkrE<25R)-f%_8OV-kV5YRUS1s z%M>fhIIZ`Mcw(6>5$c?PQl|ZuZ~fzPJ|*#+V?!0D04|{*BOH6FehJOtXW|PIy4i+VUN{ z451-Tn)*p8&}B`Dn#j2Ub%ABa*gLadAF8Y*jucoLV~s>b*Lbh~_Nb>aSslfvKT)X` zlYm^)qAba!7pxy~GzHC*HbnlHzjuuV^v#<&bkKV;&@gY}&+0j!E&nRQblZHb>N&7@ z)%PTi->9Eq4|+4uO9>-M-7{*a81UL0R+SoPp`)cxYF$<$+;31eLJ5d|q&6+KMEt6j zbxkZ5go7dw(^XnZDTi*217p(B01Yt*-Gvarum*SROxOORa@3mu`8Wjdfe$6fnXIp8H$Ul<-(k z(WYQ;6$DRmd79HEsMDs~m&ykh|FwezQC_#_oaeS>m6VNN|K&Yk1I?>Xo0@~srFQdw zhVK=lOfLApdrdHLH$g-Wu}>~b!?6Tc4j^&vrf7DZm;VG%NjKH8?&%c;g6s`TdR^Uw z=XZZYzTvauYBl=#M{=0LuCk|#K>w9t1<{jzN*f6`oD($)sfZOj1BCkZ?$~@0MPImg z<#sFb2RRdnw^j#7%p_dKVvnBN4u-Z;_+wm5|BlDLb}u;oFcP_fr%}7L8z&rRcY);b z19a)bDtCDuAV4$SEOYQ8$6Jo_1~~L{sq7s6LC5Eljs*g^Q%+1LYjVQ7y|kmGKMU~h z%(Ef^6m#1_L7L)~6gh{X<0eFQ*v1dDyzor**J_t2C>KAoAKeqJu-jh7!?ovF`jFKj zGrH!Vzxy5r9Gbq#n;_x8N%`kuvDd84c(v;P^`U__Xl9e}YWm_C9%tmFr9KyVv$D{0 z+$QWCm#IqP#_%(sDWVWH$IO>M=+18N~D0(I;f@~gAB zOrqAv>#r3BhdvewVRO$jO+dm{HIKFF?IQjrG_{o65VUmv7gsWV=lZC60?SNbbskdP zkIPQnUtZZ!9ni|U;%6p)0_&gqYz*Alhf`rG5`6QgsIILi?yS&=?nCH?WhC$h@ zx|!oH1I7m}D;)cLVuaI8P3aQ@TCgPEDhVn(Go#h1a2re>rR(HfE7$9D*M|Ko=c%PL zT$==hL|;VW8~VJPO;}-ZI1-T(&X@c26f@*8B#zPrJXwOTr{3oMyjlG$FlZvq=qW*Q z@LiO@wrW~kU2^GIZ}_WqZFhibwrk0irLHf$GpAsZ6mq zpiW!opUYpH57Ijc^-14`!d_mB0i=;eu>lLY$)7`n9eLVA@S%d7;^41kn4K}7b~eg` z*$DV$!j(8OnLF3APUbkTB%!JNzxByZVG;bM5MymOExyH(%n2t1|pi zTRtI5t^a4hgY=Pb?5N!D!;l@-ke%cy6Qm)AhA1(;=8U!_H1>t-$)w9bN@s$nxp|DZi=bh~*=leg~eK>vFh}dSw!QRR~;%RYi4DZ96b^z{l?X~5%-#JF#Uz4X|HP!wKu^9CdBA&%SuPbuJXIo zOPWVVP&F)OPd%$&!$n#Z*TMHkTyOdHoo4huo>b2ljFx%|$+MdD|F&8VflDd)_4xx{ zE>kC~RkUqCjMI|SUT%enBStdiW$mNs;Rpl<&8Dn$EjJ!~M~;#wiV#nCf7Cq0^@8JO z4bK+?igL>Ie@@e)y7IZL?8)_~el?4*Q2cu>Vvdc_CpF2yF}9C;yzY+NY!+B5`_v=L7uAxvap670(&}cE*dBB(BYqxPaqjAa`5E z-;}yPUb=1iE3uQio{7l(cj~t@?>5bbt_+?i6X-pI@A~BZr{YKN&Ze|cK2`(}&S3cRdQSQ>?Rsk1+h>j|;#NuN zEb#y?8^-&|8s*f-BaM+w84N$^0RG!hqLLFK86%uYp?Nxo^~A-6Q1F zie##spKSde_VJg_48k`)2WYlarIn;Icd}io64yA3Lqbt8r0}KQb)(nbYHDERuRS#T z`T)Mg!#t0wb;A93{>V#}6VX5EJ*M(fNcN+Cnz$jly8+}H>hHfT*5*VbRr^wP%L1o&a zAa7jb4Q`oG$Ft`zGtD}>RYCF1K-`Sc+NbD@q#9dYq7|rRe#AVLD#_Vdn0grMs`8>$ zCn~^}7NxGQyq>hM&E%TS%T)z~*L{qRm#YOhWHWf>28X(NMT+0F*K)vvlfx=Au8mOH zR~hV;g#h*|+|j#OWiicre=VVLV@un^3>{GJcC@qY^YKibMoZhsp!0qzA=9Os#G&~JGroxI)3Zd@*@=f*vI$Xw*U|*Ok+QrI`xqwpXbgTb+MepPtI2hi(9(L7@w+C9zw18SAmXf z%sncuPUna|Var{!I>|DNTE;P*mcUWy;eyn){U1qaa3m`IMY~F^VJ~XsRphft9_v7WR6Eje za@SNPWKmvmbeVJYd^`;P(E+MAS}tg!=wQ`l#W(cGj-{=5s8!P!rQqy7Nub-I;x+i$ zdS9Ox&FS$G4wRKvnM==VV|78lKV#|J^SR2x8Q>a=!t`o|AB=Xp9S&o2C9y-Wo3Hz* zPgk2fwmQRf`v=Zo+LT??d}l~?7^HCfJET{f9_)sZtaMkAJ~+AuFzse<5J+C?Nbu_dcqfMajr+CJp_8 zik-7^D3x%lajIhrz55h&z{&QDw4AqSEU*CDN8*g(MOgk|h#gX)HAv%ra7u`~NwfAr zRo>{Jq!jZ{PSkEXfHU-=9H(LYOlcf|jctEEBh|+olQP8T4R@d+%N-Ct7}Mg#>r@+SzL)=Fb4H*`?UI>nV%&6&u(8``WM zIZ)7IU5D~Mfx@3)0^IJ!@0q|jyzuF0DF2t;X7dyOyWa4{Nc8rZT9$j=(GRp1F)S}7 zOmx-5p8Z_T)%TkV2#>;(8NWcz7{cSpcVb@|9KVNHm{PL3MO-yUqNTCNURnf|TV*h9pk%x|6;TaqTZm)0Rdw zf!39Ph%h__u@HOPHA~kA4cZV&6eUO?q54;Lwpoa9O9P!yb{wpi?pVeH@|7G{KKL!{wd)Re(A zggHBY;sPGtP`#5SR~u*Q5<-p5*DReM*l27MX)+*RD*gR^P=&|SERu#SpIG${1#AGS zXwBAfur~zF$WRhb?Thrs@SQcLOz}nLUsrxFj26nMw^}N)@>ZfJffW@o7 zI~>EtBHi6iogP4K5=q9qDg%rr6-j2xExOU? z_e%9dvUoz*7zoed=0k=eb=@1z2RpfmRg7^7PHmb8`T8UVhp2%8!CDl`$k&*A7$Bnm zhN^a04N{+x!ZXh)XGcbxH|NZYxWqUd?rGKRdIDqJdV5mY;gZgylwdErUasi7W%qb=u&!zf%pcVM%oM9>*ZM`kvy|so(mK^a)<>#wphHH zp*p6jZY7N|=?z63pkUnUZ<|q{=F?sttH4SWNloECzx(rhnRyPM(>eSYf>T&J;Z*T$ zr%+(fOkB*SSr+5I;rTQVKpd(Qy**()WvZ^E0xhdBIXkLiKLOZZm{gE^@2^~0GWEep zZ=?dTQOrJBx?o4-d-A zZ?4;g_{kU8aE$BmTsiW+L7&B4WiEwmtn6k-kJELTYitqK!*9jhtGh{U0cq$xadGrW zm{q7HezdM@4U475OaR#6D}F`3x#q>GrYgl^bsR@6z}e)Fm{zA&CP>*H>NY1gm#Ty! zT<2&#Lo6-V*h6ufsCO+W@l2v+gl0qNV?KP8MZFyErKL8m$=GNhB0=i%16Bvl57kng zrD(QxG=>0F|AXhN?k2JC#vAnI#+XNL2fTPz9dUJvEW+_WvB&)H+)#Z8{>3c-fw=d04VSOU#a67#{2Mst(O`@D z?)R~mv=pP)bObSILrt}6@aemjIxH!g@s^9;s`EUhG{8uL)wWF0DpPz?{6GPO4Uz6< zEL{NV4dHR@biuLQPWEMNp*wY)c?qse>Dkn~jnp=e7XrGU9T}0qp=Rql52fa)k9F3~ zq|CYf9>8`2g_T!IW0j5XII@kXDlvnAO{a8vY84dE+h|whqrZonNP^>hv2nDE(j|TV zdb`nv9(f@F`){i+4Jj@mKFKa3MDrLQfWxS%$$dBx-mbjd>;0>NR_u}_S{yK_7cWKc zIJz|d9ggjQg&FN$qdUl@dZs5_3*;ftt9^kVYt_k)-)S0(@Am@Aq5;7Sso26UaFcCK zm~x~{h;a&EN`yuhfO@>VHX;32tc-nWNJCpPCWoM3 zlRmhji$zwUdH#o~KoyCLnwJ-Lp~Yrc%X}Gw&NdSTzwQ#Io!?}q zrY(@xTPUZ?5(DUGxR4I^{Dc=6hWltshwL(I(G!j@2>bhXo;E$VNv|Vauc+V4i=-$h z*$Z>1c_dirCZSYLiWeR8@UkadD6sT* z3i(w>_PW%&j22)H{Bm2Ka8muLS!_k!wPB%#yd{D{d>Tsv#;Lu0`0`}CU*dFW zaM${5nv)IG&vQ5K;|H&AlvOI!)AlHJaYb|&+;N=ef4$vMv0_HBk9}A|`wbn;x84+G zxd7fsIMtL5M0(W?&+I~5=7r_X6Gi1w!}FG*q2XWqyv2 zV>IENdx;&;h)nVxzdOM4N_4$B#@sn5`?2)kMvWU&S3&mW z;9ZmzM-x@JhnB7WCq0$xfhiIoJ$l(9fi3>dm=ufRt$1U}w2A_b&aHFISII7RAl<5O z`nw0>V?6wQHm_j@je0or@5T;|Br<84Xq zCeFI*`B_?Pf?6}?nt6z~@YOQceejQsxBw9kMKskDaTK~J7$`!0*nC>^E{YY#vU+h* z0}^%(&=_Jc_*PPTG#93lY3-Qw8B?;cMq#9`vaJ%V15lOsXDG1b@i{uf;zK<47s(P{ zPZyZoAW)j_T^i}A{#&P{U2RLM5ODPsnQBSVg0KG;n)hn z*A#`k(WXW9V5o&DKqC%29nKl8$8PP0n_4N_;?~6})lb>)Qib;O$63ipe;Mm{QFA3D zL`}OR>$TIAX2Uw8B>8Y`qXKqlrpb+@F=~Fwd^ZBbV95W11KT6iu)G{0lTg54ZamX!-}!Np!mwlM1NIsj{##VpQZV^w#_S3<>~r)-M~AZ zAp_G3cozbX&|_Uu5lDcX%hdb|>H~CX^HY{XEHomd*Fs8zN+)XJu;kZGMl8=+mb{Hl8R>JT2o-osl*j&&V+o8ATT-V0!(YJXFnpE91P7b>_i6zl*2efm_R|_ zaI!;MwdR|ZCYxpb;vx>@S5(2rpEPNG{S*1z341%LHw;PaOkq$)mgqw`^O!?cR*tD{ z=718|x5LU8!bWE%tBVC6h?d6$2ibLQ7TU^K7R8Brcg>Bj3;O~!gUPC}*6^$R?dvZ$ z7qSmiZ?wZ;~~V zITK!`eA~59g_f4i#Ty$774{b$t@fp~Gt~;MDo|f<{zotk`>*;>jRq1oC>=>TZ)s^p zC#_4koLTc`@VMC1TYR@Ry%D8og#-vtN(Y<3M%wr3OX$4=kL)^M5Tsy8w_^vc=iln2 zkMl|z(K_~0OsUHtE?%%B(gMo&1}zL!*q$%BV2sxA^MwfSxe&zu*I?dO6>Cdy|5X+ zYVt;ORM0=E3%8^3&@)zt)Q=O@w(D~J2Mg?Pe(12jSjz&k8aF2$vSP1=T`7oATfe7(p|Qke+k7nWKi3R= zQ9uL-NEkR(`PMGy&ASjh9lZmjAQ?5W1Ur+p1{_@4(VBmavlI4lSC!iDLh0{Nmzsid`z^ApVs4dgGTGBo4#=QL4M!D8a0HDm$(!H5R-0 z80sg-;+Km(Q=cQ1Vf08Bmr|(!b0MJlqo%F;&)Ujw*1V!DW5{(NTAH{@-Xc0>bsLC* zLPk`bj*dEHWR~cth_P2s1`o7Ft5||NO&A4UA4BlhEG}7o8ULeB%76w0Et(uHmo5%< z31u`#4*9_pb+LyGM|?<9Bk09>^dBgQL}esHcCzBOd~S`36o9EelN>!}np#!=LEB)S zz6u010-{;r>4);--?VpU>65p~eV0~Nfl*X(8v55-voLNnL{#pM+h2Tc+qqe(s^#jw`JpS`GcC5au(zyK8Jli|Z{Dz(X>ufZF~yUfRK z88wEU%ue+29(VZdLNr^;#pR;p7NwcCNC%bi1t90pcK>Zr9CI;#KzQT1A;=kl2Kka1 zsYeQ;RPHsIDxXNeT6STJ0S=!$EWf*$D4VOa?galwL-1;TLsmgF@}&jtkkE&479z0( z>o?6RZ*cIOt%QWE6jv+M*yrhRp!}AQ8jjk=fYm(HLrfIuHzo@)>VKBW0hjj?7VnD* zcdw4wRYv)l`%ZfxS8r^#Xngmo6tf>>sg({0*u7Xz@ij|2nvV#a+>w<)1AvL3H(T=5 z?%lIAtd?1g>rNOD=5%6|scJ6de#%3sd|0z-D9bnJ16PA_7iMaqlxr73M`xFSQ)2-8 zBR?&J+d9CKdm4Y9LDy;kOqU2ST418l7`KseycC1{cH=6x2^biDkxd2MPybz6E}k99 z@;?0#-8}Bjm;<7249Vp7wIfD9g8$*@vSA<|^xo!ko;Il2UVa8WKz1sFWe-Y6)Bh@P z<~$?%`lGZ?hv(WpEp&Dl<_=AFvr$R!^!0bRRv2oQz}^4K`NQ{rKsgd!h9NSrFdoaz zWv2g%dwF5 zw*ca3Uw=<19v#|JvGj?lVBX&FralxP?%ID5GTycP8yKiql<*MrM7ma8=wR=5d+^wBQ2Plo^QcVg)5X`te^Ib#sO>j6z*pr) zxp&fI#`%M~J@_}$Ie&R+`L$>+o50ZGB5=YEd;xneG_c!RUD0Fu>lCIdjW!gMmm6_{ zpby7Eetoal;(FJ^9S?IjK&v!Hb3+6)b5@JMhZ7uGUCKp`Hhnd~xQ1nj^`*i;n)5Wb z$LLaGRU~`F`QIr5{>*TyqlsISFpd%}6^K|4OAH z%|3+bdVXyxK*Vb1Ao;3!Q4eE#6+uM-`sWPhAK9g~SrDeu8ErgQt$^L;Flw-~7z6bS z(W2v!dNDB`XU=Nb-|{W{@j4%5j!S9hrSS2@!1Yvj5u1@tz>tRY+5=dvfDTKaae^>t zjCsRGb5~=a1Qu%}t=@CQkpAS`&Xr|SLu(7;kE)Z74gts>`R3|toaa|rZ{CTN+J1ih zRd~WXJYQ|T3?3!QweJ)IwnDy0A4MiQ{`<_|+JYv6c`i!IAN{lwK2Ot{yMrq&e)9PJ zP}R-*{IUK-{-OrV{H@^Ex1i{FE=*oD^QPseb3bSkx2;HljRBYEVpA}l$VjJ*kX<^d zC^L3QRHF|DCa3QdLD49U5~=@%0Cx60U8)qIjD?V~p{aftwPyIxj}2w`>6l~01PFYc zgFjfQ^t&M_Z_J;17(1x9RUE1{IZg$+DiFBS40!5F;ord&b%3M-W^07t3BFEbk!it4L;umVY=ruhL%EWD29>8Vj+{8&cg zAFm`c%8K;`QQj|;ue0$viS4O^v1ZKm+l*T<@MFX}6hdVQ<~VtswXJeD8KJYJfKHXL z{5rN?e#=m-Mz6~KTdA7XR0u30j0pKZGbXnP<+W_J2^NZS1(+y}qr5?oo8)y#fyL^V z-d%YtNLqIW@`Q0hLTS8bj){=Cs^**8Vlkj4C;GxB&oIle1L51^oB5noi~i0T>@rb= zle_pgTe&h5S_It3iF<-wFG8;*rCm_-Td4j>c>?)vIE9daFx0N%f0aupoGk9M<^>H+ zuJ?My1OEeQAbg81qdssx>Qu|=m)Q{vLjF(Owp&rQkb9|p*txTf?F?~jc|UIuqB%TR z!EtYpyLUHdMINf9e)4bV(ADo%EYkD1@E`?Yz~{(Qv&U_ULZT}_z%CPV7pksf+49}@ zli_MjBA^M7=PYYd-e0J>RT!E3*%wLY$3P5Ws|0~hNzZPLCKse!J>|p6*+sqMJ||4PN;Wm9_zv z3{Q_a&AYl;iMMrR@Tot#-CS4cgz?&}r+iFPkN1H?!2ytD6d0(yaL$1=#KF7&W$1Oj z_&mhePMCzb0g{Iy{q1(Kvhmx^x5Z6mn2kz8#yWi!TR9ApE3+o9N0y$Gx#p*d>u*K2 zig3b&^fN{Bn}k(&Ni0gkWJ=m)M$E@>urx$WML*mAB2~#q$`DLgSlC=DN0EX+A-E=1 zheR?n#TIN`v^_(n8mFggl}XXEoXfRD?a-QM$!34*kA`4;7-mXFahl>b@;>-88`%Yj zJnWOd#2$3RWydL^Cjp@>Q*su~Y6C@}ia7)*S>WbXF+6uj-UrMlVREJUXY>1hfsg+@ z_*lofU5__fHLbKUWj2nCW=$5wDw}NsY|qBN z{&g&Qus_vpNR&_1Ig*2+h?MC-f8=w44otMdUK(~7zQE0FXugg1hT5<=wQDL8*i-<# zc=-`?U&C;T1lE{k(u1R1rZ{jP2I-esm9(0lXZ-EsrqYhp)_#! zC^65wRP*dbP!%cNs-dn2D6+snPU34tHCQJt&n3i~{m{do;?R!N89H}5^+@lpx<(B- zt56@fc%cA7O^ zo5Gpea`7uqN7_Q+V(Nqe0*q{0Ul4W$3S~eTh4$r=#f(-Z(3Hql#$dDC<>^V;b+t8? z0h%<=V)36xjZI1CQf3~&$MCn*h*bEUj|wMl2fZ7RkZyA{S+7ffW1=VxoU(LXgqT8e z)?b;=R~cOFqk!;+S`o1-4)Sy(R{n0*vVB(Ka_=ddna1JH+odxDuH2QpJ7YlWVGYd{Q2~jbQRnz(KAOd=1iHUE`^E7}Z#D zWPj1yvReG0*F?8E4~r#CmbyOt>?lv^91^>6eYT~u0V0mIDN5B$DsCGb?bg(_tYeUYzfj_gHW!kItI z=JXx@%93YCbk)n@@WOu$8km#;^6etr%{Naso94P}Z1=E{aI8M_leyFT>Uq@D2#y~6 z6;;#v%iHUFZ;x$-3HQyh+j9b2XY|RLs+Qgz8i)}4<7(%2ec(murddHRDd4f;d)=0k zof!@bFc()5zk2#b3p-GF;V-xZ{={3Ec9Pmj#$QkyRVtf7*wqJ=Kb)0f9@IYqO z9jFew`zQ4etmi8>JiAN3h2e`swn?8#*&G9pqwo=%Wx60C6lmFc?iL=+J?OwoOd7XU zqbuP%30UYRP;on!_`|4*o8>O}0#)IrR{}5vHS;^i6^m%wr? zt!?Sxel2Xgb)VwyG3?2lejE8XI%Bb{ORmHO$?~a-fRO+h<_lMH96ju@AjcHAP#&SV zGGbear4k>hc8;HTdb3!Cwf6&aE z`zHHak>O|tm@_>UBrsl%wylpNH?m2bR~V^5(;*~rq2lAH-m@BTOF0t(0r4ox!XAf{ zEyM|)WVjn~j?>$ZIsP5IH>NWxz;p`VLTA*evijZBr1w3USISg2Z8>4&JT_V`;XQv> zirH7Q!gyZQ+5C5l@y13l<;_ltP#93wHn^sgutVVWIAyB&lKkB;GZa=!zot$In~a1J9P6~ZYlT!pwz1fW z`r~Lj^H@M;<`58LI#QrZ)umx+;4kne&bH1Y6uX=JLXA0Y*vz`LhcIHj@hWlpgT$wFHvxCfd4i$f1sT! z!&*077jZ300Z(ZzDc)y7t*CdsE+-MhyMgSUFBLreLo_LrJym7h^|MB-?Ak`Zj1%;B zpU+w$@(UeXt36+M*_9bdRCB0Bbp)fu{$7$i20jl;d5e&w)qS}8RC}pPW&4F(kJ#av zOdY(m84>?1X-WxmdV35EdFFDgCQ4M`2g-LJetc}5y(FLM9+!ZKzU;_kaXj0R{|83{9gTX!r-8{mlk{_?o>v*Y*n7hseS$U@Jm$e(iJF0FmtRm_Gre8Q;~ z$jf{88mKW+g16~xc}`EUZN%6|(sS3??gd7hMWa(xsjY%T{k^la^3W%(7UsJbnNl1Ilofq{MuITpSXO-hLZ@ zUC>9Lg(-vP?R|OpMTqvbX(d1L>!i;Y9cxv-vdpuw;;lMSR(Bs}Qv||%^Y70uU<@L- zpb(Ls!wadxm^P||m0Z*e1UPL6RWPhLT8SV3ovHqk2~t&HtcbZ`@tO57@~PU#!Jz&R z_%fqoyrkUO)m?>pfj3iClyN@iBRmi`#j<)G?c31R!jrDst{jAc!Gh;H5gldR?I_i3UVZd{r2lrbG9mbd}~|Y-sdK-^pIg zja%n(cuZ>?D<{GNULNpa>p#+gcF||;ftJdps4sOHuQ}5c_cKRjbLo1Vxpx-JWoV$O zAk%wRi^_&O$Ah8|QAwOuQNjp5!XG;}gJMd|CqX{0){4_Hrh9m03Yt7sT|A%lpFnXT zwiUu;X|m>v^rO%HIC#6YQRog$lbXlq#p5{>3kz9aFIgRgOeN|*9t#Ukh=Ik|kyWt* z!_H}@r8s=CHs*i|j@nF`H_uV?{RgiPTQyCQ>Vnkq@p0%Qgr_m5z%`+Bzrg_}J3;8~ ze-V^OGHAl`#aH5Dc&xB*dF&iln3a^v%j<*587~GbRU2r=sJqI+l@DZbe|m4!wy0%`}rMOL(8*I@(NqVFcTR9Y$x@DamYzyB|slko#3SR8Ft# zP6O7C&z0=~sRl%_enczLQH%^CyXFh$VOgqkB3+pW#GLo}EDjMWnX$?WJ<8i2GiN^0x>Z6El%&6Q&BN23_T9{WihOxHztb9e9ZVTL<-|2D#`H8b~FM2nl^(iy;;6sk8`oWgagz>lw=V$9wyS!W7T`0>cO41>^p$ zj`o9uMpEix_wQ6{WIrO<>AQelyzAhiwdUXq)g_ruC{eS@Ihpi-j9&1F^TkYw|7_A; zr_dri?Y7-W+!66&N!eX}q_UFtRb8hpwA*-FH{l3V8@HH-iD2VoFZ)k$wls!s=hQqE z?5ZuH&aVA8JrVOGY$m6vzrAfLJuz8`JdJ{Nxg0?ZUpI6f*Rlv{wH88EwTDPR`~*lv z;F-ltN{a5dKwxhplkBFei!rsxyG<`jxi-K)jcNvYBSMj^E^B@Sdn-gixn%k5k%M>v_?>Q1of zcDZc)@KXL1-G<`3_@@(4~^Kix}g9a|IF4Y3>kSDL1Gw+~-A z9RjS$(E5mf$vKFdX?|qFix|h}atv>YrymFhK#)cKv&VcEv;JNSmaBPZxpGLzuq@8M z;LydYl{D~GgFt_s6V@+g#m4x*6_-)i#4nkB2VcWqgRnjzgm}P3o6`_tJ1`;7LaBzR z<4$5Tv9Cg(?naQ|*>zgvTld>zRybMQ=Ez6ez(28s%sVr2N%rIH8DCkW)Yx1`5_;@cw@I}A zZ8g{a)fg^4B+=_|(lUB??A|hOi~iel&r~hq>B`Rtb?Qz^>xb)Ip{Gl&!UkRavJ)pG6@!V)_-e{Ta{XOI z3Edb%Y=>^t(!qP^S6RAE{qMe!U+-$Ft~0i}^*=QqM@M>CzV1&6L!S79{fwEcJVT5% zrf@TUBk|Vhu5u4Q*UYwA^4bg$534z!F)EIYk*F_Al#A7D!CM}MoxO7VXFI=&N9Xif zS=DH9HF+~39j}?5f`SPNpm*uFTZ+5t*L3eC3a+lk#6h{%#X}b<08mWep{Y2OH%KB^s z!~+KKD#=+mtvB-;IV1dnp?d&-!jg>m6Qv%x$BdUAhtYM~K|DP#tETeZ1g{8 zg&5ce_vvF2Evu|c{)+GRbIaIq8Y`q;9p!mG_7jFROT+EM4jE5o{=nfFfeSqEbabh1 zeUv6f$v_J~H|gSwWk84Q@m|bMObwxXWUW$>Gvo>0y~BfSP)Q^hlE0|X{dj(m5jGFX z*?_rl|7Sb3Mzfpd{O8*FVCMIETArsICTqzjhg=fwd=Ny9m!5>uQJuhN>rRPycUtgj znA=ZF1}C@D*}zLR59ZN{K}?28+W6P zCqBkUcU_2BXr$dJvapAek!-gZAMFxPM8XiYi4w^+Ro;7YO%=~1hwKQ2uItrPM6jfY zv*3rTYwWROfh(x4Ka!W(NDWPt9|YjU0BHxQ{pk>h2JLl6`9sHHt(j}ve?^4b;V1vWE|{K0 zBsVJ+4HD>{Dc+*Yv=_X)ox`&_VLGceJ-s)RP(lWh~*wzAo7Xp`WM zxLejSil38c5+XB9Zc$ihQ1Qdq^Ny#KNm+-E#BXWMabIb|abCT?4tFj+mdw(vq z330Oie1wM(4SqxWegDhk$MZF-z2iWJzRq24=d^PXOlg?+XfmeJb9wns{koes)ir0o zxl7meTt|P1DR5-rFSf(Ssef&{^UeP-F=*eocIUSJF;&CC#|8$< zI4S&$uOHke&t~QBV-QN%Mhwx+u(6M2DW_i2-o4e1ew5g2eWftBH#fD~DoBUMUTtP! z-tZDnYdVv-_PIaBrN$-#{oQQcct<#oiQV=9*EU?mpVzVRbye%I`|s-U$~ouV67Bg= z3Q9kc77Jl(pr>Q8XIpyPq?p5b<)&%AOVsskt>j?osCQ@IgD!b2=$oZMMHLW=`G5NP zN)}8XmM9{3CDGO_tjz769J%f9S&_UsuqTLp% zxVm8Q+!#x^d@KG&`|2}sQ$^c)klON)kiO3mJ>O7Qn9^D&$BJ~K*2Y$(m*1mg%hJ6? z$gu^dHy=yAu@HO2KNDNZe|Q<;b2u0QBxs_QOS|}w#OD}PnlGvlWL|5LRlP?;Wj(8u z+AgO%eb#Z6noK$|vbo31J>CwpD1FpwT;*J+vW(I{@kS+3c_Sxr%bJuT^CeOdi8h)I z>12GN#;|H3MBKDSq^zi^*D(s>@)DSX2%demB%bUb*AQZgC9ouG4--}w46 zyIF+MxT}_$lkb#WOUtEV_TL+q_8n7`O&@3BQG=n!+?&YnMsFQmkxyv%=lIQurEftw zHfz^?6b_@oPG+xf!BULJHqj_AKcM?iXo+1V}Dm_Yi z1Z@xaF={}j5Cn2PG3{e>O->1FP@!Odfyd9fm9tKEz4xK|B1h=mN#YFMbI`hF=7#HAfW$4ZXl{_-df!`W92Dc@n+E)e3Kjqk(_QG!bf5>-NiZR zH0>hdS3cLmN0}+Q9O)Vpy3GG4>3qnEQ1r2IgmV3qyeEaCF!7E#AoBua@(y1SP(T9AO*eS}lN-lGTf1&lkR7A8Rmy?;P;w#4DGi4X zit5aIl7=y^L>*r(oU0HtyimAuzhJJoz|F)JzAsJreBH}!uJnzPBy>JJIQ{XJqik}K zJMrv7VeSZJHu!wO?HME(?89k19+uyU*JF60a^?P|nf{Biw~Fxn`OR)I5F-So>^Fs& zx7BFR(Wx5>V!Y?j`zWe>;q^)ma#p`5RxknKv?m)~%4oh5VBxt2hh|;}37?1vq089D zo(wQJQVKNlb4tXKIC{NFlOq1#f4^Eq8X!DsvRwq(v7>dTku-%c=WO3r(UHB@3i7%9SmjB z>m~UCL<2R`UnKP=p(Ld*Qdgpeur%d69YxTh>+Zn0%nRJm( zdF;dp&#Zi&puyim71>`VZhEcN9W%nD-x>{JoJ`rfO5jy-h{b6EnlWP*! z?{`O?*x?>GJ<8Ll5R+v*}6JX?buicR6Eo5da+ z>@VOQdqP-+cO;*CyYA0|$g+9~3R!V`C&MUtuB{z$euiJe(TR_9QuWOxnYcft$JwVD)7shNVr1(hiR_tIFx?Ye!>{oFMFsirjM z&Q@vVJOu!pdHEqnKE)d*o}YYxv=V6KY#R(f_T{m&Ofx+ z#Ygrd_w9o|3a%TSVS?#cTpsA6Q}A$JV*j9+>r5{8m*w5@uBSDbg~77Vt&7*|lCN>U ztD5B2RVt|drM=5Z0L!1`KE*X2sgiNp|BZpKS8AvAJx=YDvKNI{%VGMLQYrut2SSg&VJy7njFspvUIFmTk7Oyw2Oik&+IEsKn#Vc_+hMmMYg- z{&43J?mdyur8v#t+S{TrmGBa}JgKUj?Zj~6OPjj*59TcW$>ef*<>uyF^x)7Rt>tu~`T_$VuTx{bOG2a$wzw76k{T9JW+%#C~c*sQ3PPtoEgn{^NxHHJM? zZ4reWS(B*J%hqojUE;RZ?!fXg?U$G(IexbtCUdpRfLAI`(L@*o-^Od&9MiB#z{ zuJoF8G90aHoHlCzkCs1Q+OiYQn!-~aw-bj6TFKcw^Bukl92O8tUg)WssabJcDb4d; zxyI_?>wRXa1f<6d?7ykX%-tWtWN`tG4m9d^+Pc$nC1TrMnMv!F(&yg9IM-gG?VG%a z|B@;JOWt08e|SLIxVSVRy>{nv^e!Hp$qD6`YFzsp;TcW(>fEZ(dBP4pr;cY75PeT8g*UL=#YsTI=on?Pdse zlg$tb20t*d9{{Exb0WwP9;XxCCrTXh}~NK zr*N@L5O;YOZhfcCHFVr4Ef)~f@^|HA^qnk|f3}L%Y1A5!Z7w~_BMEK%ADP9#RDP!w z_dCxx*(EslPI#h1iOse-A51V^iF~dQ{Gd^r0&YhARMf;%a;Xm{>JTKD(1}IMbH`oy zR>-{8ED3y3{-3l}VM-d5R0FS*<+1-}EP+4>^7q#IVSJ42E=hj6+JT!-j)E#KvWYyk zY-te;qhMq! zc_89R#aFBFtV%~)z0!N2GwU2JKG8_{DIMTLO8B)_lMrZB%ua#O?Jnsz;BKCBb2J9n46{hKGyS7sAQ!oxH*<9!Rs!dp|&|6L=+3xK7-Yu=VtOtX*+w{d~ zl3a3nq%Ck|251)zUyrEJ`;G@t_pZ}~mjJjH_2(56nzn5Tr8X=3<0D|qF6de~_k@4? z?h6_|_c^<9;w@Jyit9F~=Vn31$ir+^g@K${)KmR|duLX~29SIP?SjoUD=MF)iCI^(EeY*p#SX&yUy=cdC_vK* zJnZNt&7RP5F`tDG(~LK<5DFjl9P+Pjtm!UyJc$nd0=~h>7T!Bsg)TNy>_=ZWaG4m22#f%YPZ_5(oNALB8uwB`K6$Iyofq9|^d8 z(@Y_|hCE;r1!dtpSXpk#OHNO)fHZLUG{T)cD-WNsW|Zw7Df&Q)uvhS^G~CrPa}3#M zy-~?{0G>hk+!E4jEoJq49AVx5*PNDDAg8r|)D}RLQ zd;j$Qlu#*4-pXXnUe?eMvV_QBW^B_?))Zsk##)h3lU=e!vM(81h-o1^X+ndsYbIk7 zW63u2y|>TzhwmTpo!@5Wb)V;)=REs8_gqMh1m<8zT6U6vR*m7eeD^5h`XoDDy-I7c zQ_utl0B*4 zKPTVlyXZ`=T}jCw(vk$W8nPv?{Ha*ke8&sP-!(we8KH-)eMde#q!O9wEBgjUMfB6X zpiRCV^vN{bdnys+y4>E!dnEbeldjl8KV`D-m>s&!4%`pPCKpvzHqpX|^bM`AaA%YK zVrTwuRp`ypf~YD!U7NoMDHVgMiSza8$gNm>ME)m^u?J7i*6rgwv2+!5z21KzO_scy zXNTZ6Emk)7^V!9YoRt5vFqU`V&ZlMn7Xa0Po70QTGUzj?WDmW^RS36sAbY~{sQ3+j*wd0vG&cg zpk*qUU=DCAKR5djfx9rG?eBH2(*i%(#Pe~81DA0=T@k?i+yRDqrzIzKrP^A5)mo;w zFav$r>bN&JkNO>L2a5WhbdIzfMUf>;L^Z%vlzVE7CP`YO--cRmu0G@l;`ZY?nsUkV zPQ-V$8b~EA6LePi_uegbyeJ)=kA@Y$%y~rPcK-wT@4!1=Q`Ncwxu|**aP)^uJRiQT z7PMXdogOc2#>F@Zwc7Q9`yyVIqm@2%dVn*;>y6i*BsWAo;kt2D_Q*-O-_oMx?1tk* z1uup4@BkyF7_VDwVn>n>0aJa?cT)Ta=&XQ~tcy_7$`0|;y1;>TagoP;oIa#HE!j%v zl+ppy6oB!PzVfrk&{$4ea)wSBD(0V~R=cOG&NO34n(%tPzmV2V>k&x7xf*fe>g*Xu zx&14meBvdZn|5dd@H!iSL_!mf*)~o~9uazruXTwwocS@KXML0KKp=nJ(x2Fskx+8{ zzv2&$un(rIM+ubgy6tkB6do5f{AtS_Yg&YyVce__n4CqfZ zc(+)5Zfeuxt*U;1s&M>^;<@hus}NK7@QxlG;+^(m<>!}JT9nH! zS;`{;zalA-&I_z&h&Pr%3A;Zv=hFw?AlJKCARw)R&b4DCWgr)1&E7sRl2c%gew2ev zra9I!MN{FK0P0pQ^$)LdwS2+r>e<TISqkmGkM zb!fhatWyeO`13a-OX#_K=JRSoz}8nbrM1(_<^4kl8+xJsj<1Yp#%UD?y#@^7mvzQX z=>^bwp~_Byc(!bV?yw(d3NN8ir;O#cxK0j<^&6)I z@|aR?NWa5Lh(&RINZw{g3PhBnLkb}BuZLWRA;N!&n1R&LV;2(;tQ;e*84cUc^?oH+ zg40|uZ?54dMvdCzAS*>N$=4sd2E!?D@1RKqV3v}HJ}Y_w}Q0|20B7+sEq9BF8-(Zt3Lb42q{_(wVI1j$ua}&OK+=3 z!)=vji16B?ind-T*4Jm}43&d!|C3KaE^S5YUkArxzM`gFO_?gJ-aY4*K;b99k}lro zdQ2deV7^FNMB;D*Deowz2>>w0B3Dc*(msg`HnBGzLgkcwWq04D?qMD@vR8_XtpE@& zW2rb=m-g;Txg2yaE5lmvC?LHvpGaF~XUI*Ppa%1%>h1@T!U&IX>V%QH3K`Mj0dA8y z`=!fkheZ?yq8GQL>;O8J&RpXN^W`a8I%FW@9=n(!D$Zk;s`~w&gYAq<5x1c#3s7`R z?9}2JKULcS_*~k=!PP({26!Gbn(d0V=QC6ETXSg(;Bh*(^p{hw6w^8)Y^xK84vM!{ zN3w3Si{1S2Rbo%~M-=MHRwn0N8u+617~aLOd@A)Opq;BW!RT6iUywZX_L1UXlkO~? zGNw!_jU)z;ld+O&ahTc~ObQI`3wBE=?XQYGIsar|L(8)^r*$Qe&q)>p-6qj_Okm>$ zw7|e$9_h#~0R`(Qp_Zsidu=V~+I(v8)I|{GC)H#UND~UVBme!=B?W8Dhz&W$v_TuC zEB=*!4y-fNHKkjwA$HeE7NHLJNCGGIKc+ReWy@!suHgfNBJcp5Pu4ri;XtnsKzC~p zAmR8AbtGG)pXU3N#0-=LHj@6e7H^M&(v@9{%u}hUBG728_{5ipyev_V5hVyE(5|g<=M}l=tsnN)HtnngfH?vU$@jyUD9B zBN{vylV-=9s+mcAYuq8_1~wcp{?)F)dVHJv*~E8-oH(R?RJM1J635c{1h+0(n23Wm zI`)B{7t0f2(?mcSO512Vp)Nh_<9*iboZ+s?UcMFRHF8#an0qm#-Kr1F)DZp;say9> zSN?7|CM{Ylsp`M0>=~jSxt5KgWm|s+057-NElz|x>UC$eJH%DQKW7&^FIYJdFwZ?R zS<6DCO)?R(0RZev`Eh4x4Z7wdd=mNip51G{Y3wDexJFoQ4m7$tN7Dd+ShC~89VMoz zvOV(Y$WO98Z{rWm|AAFb!0U`whgx+jl(q6D0a)3|61uQo^HhUfJnZfT{*$_W=SokW z=6Q4oDBAD_rHWS!8f(DCLnN72rDwUR_l~d`iVG?`7vQ6)p8Xa-2FgGbJs!3V^4HY zThns=LX%*u(m&3lo8_H}9`u7Elc-@7Sl0?%FV#pQtrc;~snC+-5Jv1m1-^&np|oyN zHB7hnh7+iGWxi5T70(w-j`!s^phz$;cCk)Qm}c>Wy5rQ2amu-2P;U^LjSH9kI~f(` zUO)RAkgApu0<=(mUVUK}LB3Kcw1euMm*-SvHTf%*@2?BF+y4B5t$Ml1LT$z+tU!NV zCsB;+=+4YF6f%EnCPE+^)0RER{jav}2Y~kCE{7q@x>Iu8sfwP!f%7h@nKxkg9W|iD zIiqULotK^(M=5-5Up4T50LmwLk64U4D7gkMuzlk{ug+FnX1{#y_NwvV8=PV&Yv z)J>}oC8lB$r6SO;e@Y|vg1G&?J^DF; zJxy$p`O?d$PNhLT((t7#mSStUBZYzLuhUrW#ITXkO3u9-{+s8Ah7JAm2pN1}4(qQ~ zAOW^enzhMw5A6w|`x=L1l^BHv#xCQVFFMx+7hAUxEt3Tb0QCLQ5L$KW3~LJuLH$1G zHhS!-W8NIsSoEn!L)E}h*&krpdBZQNRI|W%^;;0%n~^$rQ_0NuZ1nP<@jEi2iv?YB zi7cr`eQ{})quWKNvWYP;%~2ZbxunqjLP{#~=XHpVY`H%F$@O8lOl4F$fgzzCgi;S; zUPcr6e+KaM&Vb9ZLB}?(>{dKZsQq5G^5_6W&l5WAQ9#68d1L`WN8MxAi&q@n-H8Xl zF%f$g=H2SqA*d}ix5Jl2@T{;<+9>r)SQfg#HUVBxaAm#mZap2dlLdg;u#@f1C!$Km zBpn=UR$4LLCqm<7rW1{--p_>5F>jo@vfA6D$8)3ueOllk?dYVRZ;htNiUnmZW-~Qa zt;`gjY_S?wWyYMe(mKNURrQ3JKpvy+=8uwc%)0Q-Gmr&nXOliJDqanWSlN)-RK+?K zAxyaa=qHQCMa8l);#s6u9f)IPc+sG}B^R@6ByJQ~*$gU)d<>(F))Ak*xD7O}FGvTC z2$u#m?t>eB*;+T%M#_)hfT}E*_0k3z5?TkGloJxl=>b=CJ zXs{EZR9%{A>ixXD=thC94SkjqUzTjwH92Suml2Wsx&cYMOdvJn$+qW9vp_EslXLSt z21^Wtcrtx&E0OEuJ7SW%lj2!H^kke`q;gKjEu3jh`T|J!OE1Ilb?pmxXR~Q^sFBZ7 z^ihu=20L{RBcUpL3z+$VYka7SFi<<*d$rh4LAGII37NKXZ9{)1-(;Y*H*Uu8I z^eM)pBT=%LJvVExvl0_EoHpc>;7ZI=r&0HxL4%cQ4ek>n9`gDO$o>2{7kvdAS5sqb zvQ#A`m<+5^oM!xEN#b4~lZ z?cZ4y^{CZUJa~yKhc+po_VINmXn%qtwi3Ub$4kz&sFEA5qdiR=+IugRS zXdMjV+v!5i=k`o2&)cF)#h;3yHIK_qE8Z6LkMJ-wSvwsNrafd*@dz1;{U$l|?tC+4 z^f<{I*!Bii%m|9D8-bGGNx+Ri6#-w>{~-QuOMGJaFE^`nG5sbA}M zRs$wA6xXz2{_)fDz@>U!Umzg~q`edea?=lef$YtPA9FGTWoDmVR5~Wy-4!q)=j|^j7l-rV(5hl1Y38m<)`is>W~*MufjX#T7MdgoEM@E&=bI5iV_(mf6 z#Z`fPJiP1lyMAviAN1<9#`sb*S%L-n)tHqI!Rtc@4nY?K26_3MwvrRo4yNm90TO16 zefeumPe?viy@w6%%7jp~&@yyGhH`uQg{>%~Au>4pgN`i<=&4lr21CzMlWHQesJ z=Y9(b$@5CR=ksmk$MDbJ#pu2Yh^CFsJ_2&qrg=Y|k|9@`Ttp}x>8UG4tCrCd_K*!b z{Ut%<3#|t)N-ziUdRukPeJp??Tg=o}xMVY>>#9b8eG=|MxSp~5feGn&d^%D~tt94; zEai~38sZnv?D#SHwn8}Y=S?84esR4BC9Ytv9i*7FhvrLngR2z7#K5kphxkPMrkbMP zeD2KZFfsnI-(z>2BOR$RYj+>7!|u0VxNiBLhQG&we9KJ64eiDyT!@OZK!-N9(Ocj^ z7Pk>hTK^B|j=torrt1uIyEe}NIS4xRk!dbdK_G8WR$Ap!^$K*s?verXUF^k+5-t=O zrj=FQzQ?VBZ5QWfdB(EG2A@UIzrPaNo7~?NsdTqPUA3JgHkI9B2nN1e3X=+&Tb=@n zxnn%x_jRrtdx8=GZe)7U;O9er_cvPXu8=Uxsb=P0YYb%7PQ67S)|#{#-#GfEvTC{8 zLm{{Byf{J|E*?#x5%wbw(C2~ErypJ1oqh&?SNe%-%d@S6XjoDj*szlXZKWDvmcPoI z?-u>|b+F3)*->=Kza8}BFO#Rl#Yr_j<3WuDTpXfQb$UxB;8;NB5JSuWP{$?a|y&VRKEQfvIwR{_)0>GOO$kGLsfmN3 zd6>!2f?lub*^=RWQY00Ab(kR|oB^s|da6EFi*Rbdr)ABx+56y-M!>QgY zXVRc5T2(HL=vU53gt^Wi5q5EV*wsbW(MQ7$ryj5yjYE5J0&2XQ<=5Gie zkKy|ln11fD6XD3PP1=!=;iOVGEsW0P9G%);Nm!mYZxV(2?XwXy@&i{|>#ex!PG5>9 z)D>)cy8@7Sx2Euo=6*~|oidBcDBV1_<7UA6;v1yKEM)l%<3QVBJF