From 243fc995dd909c182c32e357dac71dbe37fa7073 Mon Sep 17 00:00:00 2001 From: Brian Cantoni Date: Mon, 28 Sep 2020 19:15:28 -0700 Subject: [PATCH] Add troubleshooting guide, rewrite sign in page, general improvements - Add troubleshooting guide for capturing REST API traffic - Add docs for site_switch() added in #655 - Rewrite sign in/out page to be more clear - Add docs for PersonalAccessTokenAuth added in #465 - Some general edits and wordsmithing --- _includes/docs_menu.html | 3 + assets/fiddler.png | Bin 0 -> 293071 bytes docs/api-ref.md | 1600 +++++++++++++++++++------------------- docs/dev-guide.md | 17 +- docs/index.md | 17 +- docs/samples.md | 2 +- docs/sign-in-out.md | 113 ++- docs/troubleshooting.md | 54 ++ docs/versions.md | 9 +- 9 files changed, 996 insertions(+), 819 deletions(-) create mode 100644 assets/fiddler.png create mode 100644 docs/troubleshooting.md diff --git a/_includes/docs_menu.html b/_includes/docs_menu.html index 5693ee67e..e627e8f44 100644 --- a/_includes/docs_menu.html +++ b/_includes/docs_menu.html @@ -22,6 +22,9 @@
  • Samples
  • +
  • + Troubleshooting +
  • Developer Guide
  • diff --git a/assets/fiddler.png b/assets/fiddler.png new file mode 100644 index 0000000000000000000000000000000000000000..cb5fde8e67a6c50617dc57f119e66e1b101a6621 GIT binary patch literal 293071 zcma&NcUV(hvpyV}fCWNFT0jt#Dn*bQngWUxktR*)N>@4|p$RBmsvw}CBB*o$DGAa- zM-ZeFAoLa>KoZhEp7*@Z`JF$%JNruZwX(Cr4z<6_y1?q?H?2d2oyoqZ9c1&!-W4f5pn}3c-#0jkDhWW*ul*!tkX~nyp@T^$OJyd2} z8~IrTBJyOIWtipU48uZa$3L$V{ypO42g*9gH~$9CJ)tG{&3K#p+5oY>(XW1PVOsBv z$;sXq1|8n>oz?2wRO*`S70!5iFM~3zj-=AimRAj|h|h=&L42(NLhc?wTQ}HH)=Z7+ z4+?&BOoI}46fM+|Ow#Y=A-B&QSZrQQ0n|3$sEVVxuF!1UyPyWh#4 zcXtqPVu|NIaF$B##F@t|mo&{BMp-{bi!3M=?in(2xzSBUt9D|3t;3RU16*0BqepTz z0f91aR@C)5b@v=dy(pLOu-^rI-I@NH|Lt&5KKbSnWEwM6%{aoOx|F?p(#xYYGqF#X z#DPWTg8q9|`brc_m1v93xkBN2q34bpQ%myMyB`LZnm%iR8nIeniaiBQ-t>WnB6dee z1LW&VrmA3YaM6Y-i43nPK4U>yE@*LMoQ|f-pI`~KdRNqK8becIZo$`9)+r{*5gQYi zmqj)ww(s0dyZ#FzkMbaluAWW7nZD%~oGDWAKRN)>LQVa-cCzwXxQZbYe`}T!3hF3OqUlN>C3@!PmpxOuqSr| z!;)VOr@1%3H?4C5I3Ioc?gBF4!rFPD%Ng%x`ao?cqNT@+=yLnxX&n-~p zbrLFVvWx6R3Wb*z^s%wFs?Vlr_pGv{^8YM=V<&UG6o*OhL^)(T`B z6lI;HnREhb>*8`{xv25 z;5}_lQ}w4Z&z}ln9!%_d9<)H_TOGd)NT1i17DYvNuF+<3Ah-D1Ut27ik{9knNE7=n zKOGWU&%F+<^B#s(=a?BqWN-|&b`wBX znSfPfcsO1JaSOJ{#-at;EMN`NyZ56vNN1sRnr}k*AL{9Bdzz5{;Ovgbe^3^Z$HBJL zeBOxm>z&Utref~56W^76KQ}t5G|#LZcRaN(dIi7lV{c)2>DzeX1%-z3FoD?y+W#F~ zyF!UaPYhTrAWf5#kGhrq+uHRiROWAfTJ{{P*dI7(`?dD|htUtn(b3WPfu*GU2*eS3R*4H43w!NI``vwUfId1JLRnm;3VrN?->8223h!!?{WoH3m7 ze|U!{1U_(Yu1Os%xT#Rg?V2iMJlryGi$6H1kziupVHbA zu=TiH^Wr*br^9a@yVH*J+s!=^nkK(lh+Pm_!R~ZZQ#^RI+8Enn&EPkSe=@vC8XSQu zbXb20tNmOy>f~~Dg2TS|9l5YDyG0~%Mq0B;B{AKLE3wr>l`j2eWTg?MUyAy94b1U< zG(gpU4SR6*xIWz6+?+Yw-{0R{A`t$d(Jm;V*>D&PrP2dwKsG#zuZpah&}^KWpH|a? z6BPofc{vpo6aklb((@r+yVW37oW0#gxxoG^XOd)r9B+Bu!Am2Q{;8!es{VKt)w9lz z@QZHfAg{=$(IY41eHo%w8j6Btfd2IeF3 ze&U4uK84&k64D@UYHkQVI<=Ho=kA!@)f_YqPka5dyW?#BorV(VniM@6^ChrhiTSp( zwhaSyir5BTmr5r`$I4xA(#pyT`dZ#*iu?Msb!^uT;}y$|_9Bqcl7Xq&5;9?OauPwI zoa}DnFjUg4(okA+r9p3vn;9#V1ep&rElurCI@u0}YDzifm7`Wj1a4I%4j<%&_zQ2k z4i9dHio$`I?c&|z?aRamolr$<*djhi3UPpc4t@r^v5yZDLcBWI7DN3FhFUZp6?7AR z9HNUNW2sZ>RNnFmsZ@#2<;RT5@_f{7P)`>xN2d6F4j88r?cE19HdEa{-jk*n2;Y?- zWQfP*fQ)X||LAGHVy45vrFT`wrrm*u`vljqS4(tX8=8CD*nUU2#K){FZ*P;l5QesG z3kxGIXau`Y-8&qLc!43$y}%SkM=Yq$UGB_n!1#Z72w}8O!Ivqj(lIyK5-A z$t%a2viiu}FBr2>RO!P=MpzLFj8>1s3idpoqs58)K7lZ<{e+x-(Tiuf&E41ppgh6~ zex${ljP2b%-Kl$#YoTyQ)@8Ly*gbWMFkWuqC(y_G>4m-4Yq3PcYk8XI^BZDdl4+!N zD0;5Br8%M*{1ZY@Cva> z3m@#)1yii0XRW_U9Y3mbQi6yBK;9ISA~bT_e6g@K6sH9uMu)Do?z(6#XxM;=iy|P$ zI*jKDb|ox%q18gTh#O}HCtU<*G%USSQxraoARC>~a)!MEZTXt5?rt?&?S z8p1x7bws^%u|@mkfo3btH(|Zbh^`c(FAghSjPqJ_feL{6J-N42%|qPg8MvTTku zzUsTEy^JZ`y5QP-dlJ7cA*%I?GIVcFRrgzKOW8U{*D#x2h|6ZtD_}9m5JYE`ZfFYC zZuO^uA8y6J6E`h_WJZ81KYVyH@abOewL%k^XdGU)aJW}xuJ>Pj=~~HZij)9xOKwaJ zt&jX~^Gf#c#{{6L!8g*^drsz&(rd6|ac z$RSjtGEyiaf3;i6st(kSWA420A%(g%%_9=2BF~PZdEFoK_?7PNdaRdH_` z2n*M<5n6p~{HVL1afF54c^xfb(#jYRqVk!g{8q~(YZc=yhUX6H^oFApA;T!+p+xxU z`AGmc7}|Mbo@qV+DX20ZfoW5Tjoke)*)!V^*&Vq^EQYuk8Gg!&Yh9o0=rfZn6lp=E zvA4Ck-n;6;{YfApPTJbIvW<5*$-B@W^Kuq8^WmdmrXVIWvY#Sdu77d$!PEMKW!vjH zqNQo`yZoW@Y6K#tzze*Pid%GxJM!5$XL$^f=_EY9U zoDgDo`-J>grwD)w?D=3t$?KJpE?pivo<$!jkw-00ZE zoVE0AxKn(l87Ji8!S9H*K3ohUb|fX_t)Hl|rgXtoSaT+C&{ts!DUiGCr3Zo<_>D*e z?J0{nUaJEy^l3?5+Z`jwAS79IPZdLUj-=f~Pr~YY1%%|W@`8aFXcT-zA zg{%#q(m*n|nzc%{5+`S^jofeC= zy4$d+VYrUFU*e}l=8BAHO@{l(j%-c21aAJ8+wd;jslw1-9aWB|ya@+0+hvz!#;^qK zmR0DbJqR11uh{$cF~3qGYc1ILQ=h@!hvQ3M%gd-@uO9NT1}>%~{}*=+4aMpk8~;=~ zv}7%WdGPE)h(0qlk?KDhe~d15CT#XqNIv^gB|-8Rp(Pl;j_TGMU3bZ95u!^vuiWw$o2nL*ZY_J#!Niw=oE+Rv$GqPX1n- z-fV+UDVc~Xy(Dz%?*^N^_X@B|Gy6oQTAWNK*Be!i?#;JkeCZqNEOWw6D=GXJ&EhxX z@>C(G-|Z}ESHi`#fp)n#71p%IG+p*CiAFO%=JX9y=tduFt33KSGq8Tvs>P?)IBM~i zdoPzxfW3$ay2p=-d^n!We(LOd`4t$hEkDq&sUJO= z&B>`AW-ksF{}VEV_%twNIy!0KF*a$?U-vBkzV)M`k5Va!&(X~ju5KXZs{`aqpyG70 zpn5=7QF>n*gF~IC+d6H<)5zrr%|FTsIYFBD74tzQDaT&dqXQ1`|B5~NwZj2DM1?CI z)e<6S1j<<(DK_|ORax@#0?*jo&lgWo@W}DGIpYFlzY-T@s<~P$y}?Pn!6T-i<>l{< z3nlsad|SJkFCT;7@NH$qrsKX;eUHrKwzB>ziU|q|Qi|*ee5UqSzl_mjpeyRr%o?1p z-=r3-y2JU(_4e?jKK0okBdgFyMxoI3&)M0d6_#H;H{X1EXltueg`lWG9)*0{DVXtf z`Z-xH1{xYUovwi3ub&@}{>A$Q<%XW?vD!6bvD*uspPW|sMgvFLRQ}SPfk&#dgY&Aq zlY%Qo-u>pOV(7^->l2$=|FNjrtKitul?EZ=ZKx3b%l`$}*LdO0&Smh8`*)McP$9dj+`pY&3nP;iswm>4h(KPlLE;9c`wSTkN^@@X6^i=O>)_n=n zqK|7i?pZ&5njf;SZj6>b8?3~n-qbE^{yRB2a4I^!FdFT8|0H_Ih*pAaLKa45}C+1#WQpdew z{ReC4BO|iJH09+EqK(NLoQH7QsG(D8Oy@G=6Xc1K8PzyEp?A=1H}G5tf{C;c2w_6vs4qk)8qKlqBTt62X-y?fAWG6e=aZtN@0LmXnt-%GXnq8mTD zBFs*L<~~!3Skz$e-@tu}QuP@nzS=L@1foA_PiOFBY1=5%jdYzfn4Ys z51*2v-LHq*8Z%AKMFW=ntP5j1dO{~Mro=(1oG=*i6fZ(OXgRL{?LD+b+<***PzDu| z8kN54RD$Bbb{ST_>bOyfSk&rOY)i4|o!AsF9+8PXfn(?U0DXo2m|g(VkSPLWPB6+&a*@P#a2VJ-c=$Gugb&CL z4J~c3Dr#*i7J@-uYlPLjDY9+Nv#N4T(T_hrHQ9ek#8@9IY*3{q#-&SmoFL|!I|8@- zqa-CIEytG56uBN(+V)Vj*HC<4)j>%b%YY!@|A-s?7zD62?%@~Dp2_|^TW%M7CpkR{AFbXI|4R6i-Sv;IfQzw zLq$Hs1X(z7DFQLHv$XGG4^N@m`#A#&_x@3-;YzHNL zKTM|)_O${o_+T#ZHdf#9M4f+(%4J31^vv-rOQBN2PB8&VHoQUy&#%umY*Kd|ywWW# zgDdkMN@kAjn`N;lb&M(GyiG1mb$$>X&DK(2jrG*o*rSO)Czdtz*vnG@LjR6$v-h4h z(CeK0#T&0VFY;+K=rq6GBWkSAK>-0bhHqq--@UkE@GO}yDz$AFDf=~PsQgb^+R$$N z{R!)J!uKCIcy0^M(W$D9P0v7DQ2v;P?%a`H@;vhRJeM|{g-uL2?27%1YpsA1hO`{= zhh;`S=@Pt1M?xBuoN$Z*drwtULWk9-a^FS&9{u}wVdi{2dz2hh%GC7{JF}Wfh?>Kf zB8j&`l8`}K2u)nHG>}_c3+-0@ToBCpjL~39GbsL%0-{8Yg=^G0CGAO{6c?DY2}#@g z@D#=2vN6Z#UA3w-tM`*P{G+0Gm57C@Vk-A&hq3CA-@8$f@OSh=bSvQtRiUQoD;FjG zBtPVW9d*j4i)Nk<6ibmns;d2M%F(AIdQA>1jeNg}I*@w1_LeR1BK$C$zl-%cjPn}E zjGED3Me@yY+6HcceF>rvs80Z?@y-(67FY|EIOsRoK~2E@KVIlCAEhoD>tZ1|efJ>A3T&|_U4gF%xMeZaTi|a$QU9U_{%n(qrCw6V}s;CQs|-H^NIE9g2(+d)rH!^DzF5FjQzKEyK53Uzk0|COn$O>IfJQVV-FI!fI?ye=$6tuqYWyJeYLjy%HHqK_U+_OIN6+11`8EESmM~G z-fS~-h(89i?i6;=4snK`asD`Xuh{YRr!F&PTlh1PB)wLZ_e^T0at@Nms?S#v?d9wm zlHGH1(Jz1jPgfGzY~UAyGB0LCzzNnzEW{{brI0;)Zd1wWy(jpLoq{*Z?8~ai?uJnO zQo_^q;leMOQ{GSNFGu=KO?^coSr`@*;QTK~5@$nfp>pV1c*|sp;Azj4Xe-9=5*Abl zLSR(L3D{DcV9heOJYlh0P`w*lrL4Pf={l^nDe16f64#v+aSfD+22-Xw4K6~ZsWI?T z9F27cq9=KlKn^C+a5!%yeiHqh3QMe$O7>0%r`3QATidjw;0RoT9h-?Lxx1c^C-uLEa&ToR)eyc2P6O z@6BTPw2RwRlK@Sy7A(2;?ZsLVFx2;b4;lA+2c#t1|EzztcA;L7zJ1lXKdaB8 z>+h2W^*4%q4SpzDTLDbXVr}SwbNI=$huh`y)gJ@5+wntwFgkUDf*w#i-KqcP+wO$R zitfK3aPx2<2nnw$4#@c`!J+fv75QM+>jdC4;YaPV#nd;7H+mj#${s{Sk*$WRVw}o5 z)z&mEEMkoWlJpQc&k?6vUyoKYP4DLPIdUh7*UCsgVTfj0rte~Bx-Mn)P5aKd%G-%= zHHpM(In2<~#nee#Uft=DfSjSTfTnunyn-DbqT&HF)+b*1LoYD3)ZlRG;M{8Lt(VCH zt_Z`NAtlPU;N6)N+yNm#eK5;A`^@3O$3AvNrg5K15p^hoN^O&tmJS!4vAb+Dc1b?4 zYnIJ|5$NJ^WI?0vADK+nc0Mos+7W>>IEn;!;7A+NPylJtpDq-68XZQ{MZNGN7!=5+ zQFAzU{glLbVY4F>RVG*Q)n=c`hW5gM%TVDRYI8VOn0M9HTo-=rx{^;R&!_3h#9wz$ zw^l+OX}#1=NKGVmn@bjiTlvFKyuwczjSNn^XL3kSmx%js?>q{uf4BB=!1GCo?g{xu zZhOASy~jh|(w{FOx5VhWwyWKq{1>B)i%HCH4&=iQU72SFw0PeRc3=H|vNwOP&V8f< z&e`kU{@e_B>(KUtz&K1W09d71-l1@*n3>q2a% z+=EV0rPA1Xw*f0x{m11JiM-e7`eUNB`jdB9=3)&2zs_Bj0%~+kZd#Nbr0yUOw21jb zt6G70VE@&Uo-*kZZEyT=h)^6j>q1BT_*3lKkhi+QwoPC(?=q2|k(N&3hW-uP7GIeO z*{YWy*AahlBf+-AeyMu*A-?cJMVE!C)A)COGff#q?!{9f^sx50<_~02q>27c-c2v= z6UhuLBPg87?ag5J?bekEZ|KQiJ23L_(SzYeD22O=7ozp%iDLMXr}U+G+@~QPX&Y@n z-w2LXZjkCo%Nhd3{V&?scL6!whYac4Y!(>lD8MgUVab>ydv3#}v!-xiVyDfiqzy?M z{T09D((cnZue`t4f`PMv20z~~=s6I(nAsl;65H2M4VQVBLs{cK9jV2P67p{!F?6xC zkC4(|46~??Op73@q_2jc9QzMkCDw0sV7ysNUKV(L{sU^e1G{yad*tSF)g#)!fl-+M zy`sM(IECTOtH7mLgI@KT;^*HzuB}&Swhufh8P^?hOjU-p=JXV{rWN%McAwiwM%L_P zyFwox5IS5LG&AybvysR@2ql5{f4oNyx)vtS$#J8S_6ABG@0UP>9rZzuN0?NeXw1v~ zOI^p9+e>r-1kD+!rW17Juu2}vBn^&(O?0%-p0wss+JwH9de}z*Inrrj$P!|TrEqw3 z75FL=^kVt)38PLh4ehZXb=ikc^*Q~`@kzZv?P|fdd;;&QI-H*OJ$QIKja$SsZN2st zp?1dY9nFKQIs`gtu`CnGmoj~eyz}`-|$KO4}=CxJqZZkCGJk4CF3TuYm!njyR_?3 zLUL;%s5)%0dT>)Xo?Q<4=6iv%H*dl%b>}TTU*4FeQvitEc{_c>RyaUE-SIjUkfEZ* zio&7g26tEqX6INgE3Djs*o5}L+?0hf1xK(mG(4HglWw83xe}fx7NUg?&55#u*Gs9V zzaY{fpW4rD-m)@&|L3cdxI`|U6TmKN>Hsg)IrJmFK+Omd0aGSBk*}Q|t^{&x*c{!G z|3P=jtyM>@Rww>XSprPo7Q*}syBntEpBf=^=5U3@aKmhj6fLgSU$Zo_e1&`pb&eO{ z5esuUI#QDK;x*z=9XC%xUP+#!gG4+Jy!>c5RpG+X+&-qbMH>i)?QJP$rV(!ikDi%Z zzjaGTn*hoiJhBh6f{sWdaxVA)KagpM^#(9^&@B%87{`8G^BASyTs8{pJAtyKx)TDx z)ugDe5PQbM<2oy79_+a6UDPQ*MB7J7q6_hBvbF#+`2|4`42n)aMDw;=QyrFDXh`WN z7I3eevxLd+CyETh`pgH=%t5W=eeqKwT`*TT{~D?-jy3Ltyyh3ei`r>%Ifx!c98Wd+ zP7W8=G7}Ea$QoBpdM5ha)oFFi&WGhU&aQ5TYdv(V8rnB+-hA_`=II~zov>fFoJot; z_|62@GLPc0J4JqTP0S-T_1OrIUM;?x&y+B@17>k>?VJ^1@NKBIf+A(j4|J#DoPuHc z+vrba!oh~Nhb|@3#d=IpfCmpBie2e!iCB24-F^ib%yb3ls83JusN^Au#?ns90EM>r zw`v5k@mit#=}c^$pz!p8X7ioOM?YTUlx%5>fpTWtOc!kwE;Lk&sLs%i(5Ku_0V?cY zBt|4MVM*8#G@qNU^6Nx_Y_9A#m+0)iaO`B8=6=*&8`>$e&n3POqWMFr@#u3npKmr|uGK=r7MA1@w`lJySAGm~#>xQ&&TG79CQn z;ITbIYH+4?linv&Q!(Z%Sb$3(zgIEFG($&zUcqJVWmLoy^BXp(^)I=4VdkUl)Wr zB%SRr&NHo^xzwG(G)NX-CTjj}#4Jtnr+>nh|Kz!tYl6C_ECDouV4!fv1DnxW?W5DQ zj^F$^3O=(k2_zX6=N-O)d2kRLfIds~h5soGSx{vf`CH`#rpeSm2F$QUWibxkv%I4sR^ z6>cb`c^Tz7;JF&&ynhUbqZr^Whx7LcCiRC2M4nVF#Vt^D6{W=*id>W`y9fC(`u!BG zk&KBuENw*acd!yEw+}G-XZBVAK^~&_J5P(4Ad`nK2Zcgw32A~^9G@^LTET2xyDjK6 z&8S4g{AVBf@r>1Iw{IrnlLJBGnK>S1GbXQoSAPs=?z%+3=l1j4>;AjL^aR(^55Db!>8~=zYfNsDx znpNZ+^tQ$|S=rAu=$^ZO4X%ue!T)}@OYp+~Y5_`g{jG69HkpW)r|z!Tsfl@xXba{} z{B=gKjNgmP3&U2Vuf`~663;Sv2Jshb@1|>Zbd1f~JiFi%9a624C+%kWKq03m4V2bq z*#&*moq6?Mj$uo`N9K^Tkqnb&t*cev6gwXhgC)hjvHxrTBDL0}z4h0tQ53$w4XhAT^?=+;ON3(en$G@6JnH3zi&LeGLp^@CNAPHZ#PZSf@ zF3sg0!R5i(=%#=KDP9$TF*F*@ohleXPdaI&%=OZa8Uu%DX_BRZ z!jS9IY~Uk}Q%B)Qe+;Vyi3xQy#|h?Dxg?|!3Zw^WbSC5utlkKCHlmj7opaGuA!{{c z>=pe_b*OGJ+~%GK^$ByKLqps!X@jAEFRVZzZ{?>ivV{^S$4g2bIC*e?oV28TN;11d z-dnt)hP)Nw$)JinF;m;F7DPGztzYjo$E;5|TGVDhpSxbrgnf)JA|$GOb|v9Uc|55S z5eFcH^n+by1hE=2Ag6&yuRd->X%5HjTi)kSov^0Eh$wA3kKve;3_r{=a z&2p1}-JV@~k&erVj;Yn=JV1?1)g%Z;*ig8Z)Pr}P5OVwoql5-(tqbFT$E{sRid*#| zts$&yoXyVQ-8@qJ#dYalmz-uF*hD%3bQn0gzCTxU3NTIR)Pexm z?#vGka-UrbYqRv&)3>~CHV1dz>#|lNw9j+gfae~g`dlyh0v;#;@3wf$6@JoJ(0lbT z-lruiU_wazzC%r}Ntx@LnTx*psz&gU6Z?jQh(nXL63q+$Mbg)cw$zO@T)IOB&oz8r z&SDF^xCh&s-aeurI8yh^<-P{4JC<}4A5Wb!3^^=#^L(9wNw)4UT@-AbE{2x=%|uX; z&DiU-uWmcrYL%@Z`vxW8ClXMzUPd5`d2*4l(c#WE0FL^5qVDy-QAR|@F?!X;oaro1 z8uLStPwaqp2Fde4oemrw;T$lBVT`Dv$I7jFG^ZbWlJFCk;11231~ngLyF&r^$G$xY zN@ppfU!e`|L-}K=Mo!K1jMpDzjd>YciCqvwn>s6mo2K?F62#*M%pwHa+gza!p6(yd zK;n&@*zN5-0Ii}p|05LhV%cCV-Dm18QdS>NWqYVKa0_JLiFhuW1?K8uTt0Nk0rSe^ z%O6U^q15wMl-}LkEnTw36G$CJ96X-3U>ej1lYCDRM@c(9F3>*!C9vAJkj8HgS;x&> zS}&{gh3>!`G1xz6;UbY@ydA75QiT=b}BqleWrK`?q?S#&}Tf2-D|Olxm&BKe`AxEpZ|C) z;!%iC-95-t;!|7m&mRSjg_>q4i$Stq|LR~~9v?gsN82W&7Jk?0dHy`@n4Cx+LINS=W&%c3o!=-FcAuH3SmPvh?C0FCgimWC@k_FL;6@fWMT&u+g%N zXHB!4YSR0F6k2Q91yDAiyWm#<1)zM86M*JiIpE3$%835wha_8J*i5%{`ZleZKg~)r zfMz94R0j4b<-kK^8f2DBn+rcY(`v>`d`i3^?mg^GXQrCCL3uEU^J3w(p7@z98Zq?g z-Y#S@Uls=WNK`}o*1BL$(QPbVwS(HjyKkm>MedllpWF+{El%xZti0&NZ~<0c>HaQB zJHv#h0h8!#L)1h@F`>u|=8Cei9(k1@w}S`%mm~6sW~O=Sb6f78V92^Sf+bxyO@q5uqynk>PpKBkppyr3as#x;Auf z9zm}hT{rtHSD^(y?%yt}Vx>;ww*OcjKTQ|X-?G?}de53xIIf5@>viZjo>c`W=7Du# zX*F`)iNmZrKgP$ZNb~*O zZO3OpN&8d3=G?d1NI_`1?C}TfR^!T*%uh&HU(b;py)w zqsT}XKc@&v#imXi-0xU#)L@n6H_?Ulc+eqFU88kQ4;;d)5b}6F=4WT*8q0H`Z1o$s zrqMdzrO`=Y+?PjtfX`<`B9>+f+zj*z4)pP9bEx*pkOhXwr6buQqPv2lH~57=%!6|7 zOfP_(p||EijYDag@6wP+P#TJyodyLDiT|nd*3cZF$?M&?aW3SY1@*=e#}-!pc-#Ur zYUKnjkAgm6&~%YF9@OMj|58@;lkNrM8q2t1$RdI~Zb3DBk!J02M&V0g8q!Z|`t-Eu z`}f9ZtfaJuUZA|T@)Sd@XzBYOR0Gm>Rn$!|Z8Nx+$PswMgBvDl|PuFA{616)s40%cBodE^eq0cq8SwUlH$q=`a|7J*NGj@$b=7r&S| zCc(c%I=+8po;c5ysG0vW3A$JM*3?R(XA7BCfrPHHY)>ejX^DA;$J1pOiS!pxOxLPV z1=a5r5->!_o}3wP@O=*kr(Lr*WJ_zpX~iwt-)WC%O`xPn1;4rS#L6w>n{tFqE1};9&0gy=58}sEvND(_}ncy zZp;Pl0N9bTqLTLiyWiQ_xBwlUYoJRMq~^!5&Y87pH*0IZD8I16%!InA2>}6d_GUM< zqvis;*4ERa^FYo~p^lLgZH~h7+Rdnoz~HF=OOHupKv0;mbP_f@a|*cSAl%L;tbGw^ zw!lCuK&Q_%!{ji$8p^M(O`1Pb8jZsps>nR3_8^S-_iI&na7O$sL|UY3vdt!!=K4^EuoP}*EA2(yN78P zAnVb6q%}4{WAjmi?ws8C9O?BcQ87E!g}P}K(i79yx_uFFRolb24f z&Y8$ZV_9HVqj&v*T?OTtrHG-WxtR`w$U`nRX6AHHnqzCb@~b=v^yfc);z$2WGgtL#&@Yt6emFaZKs`a zpy92wD5lL|jfu9mG`;Vf8M(Q{#^^Sfcz`~4g{3VnYB|liq9@d6z0&8-BC`f~fy z3DvWP;Pd$u4Pg{k&G3n9+`od-{FYqw#PyI%ifMC)Pq(sqYX@mItux~CKyiFW<2o(8 z+Xg$)QiH?!Jvscr`mH}DGJ&$ir0F`Vs5$J&4BiV}b=ZL&(R*DqqMgE=a{L%A34*@3xZx@4-XdlIv)zdcvjgCYLrAlSyQtmxc^Ri5NsCS9rz$K%$pxQ%GT~U5z<@%h< zYwqx`^h!=Yfl(=Lv_|Nw)icw`PnNuDyOswP@({wO>pQSrrzva;*lS8;0)%m1#z*kk zC*s~s2#X5@c&p>uV%yl`Hsk||TNt4zQjD*XI)1PNKW-rg zCxox?Zojl|uo2IBJ@V?R%}iEJ$Lj_|^Hhsbud(+fd|IAvh8h;NCzu({=ql8)Oua$U z1p3+gj0yQo8m~xPkdc*1RSKnlA|?AC0*8q*Zk`6Yq>h3_R+xTYc+xIR^MY)-aUw z&?Z@<^FAyk_<8}I z6RtE<8utG9%vYU7>ZgUw(|=cc{7^~a-)S!|B*q~DViOK`yv@PQm4Y=LX=6ol!du&o z73}Oa?Chh|7Xc!Zmk*AeCqgPas(%M<&!83k;d$xlH^gyG^%0tX1$l2Tolg7>t|&`( zbzh)b{AWQZIr|r#&~M8uFCLaH%#WlPb0*DIF^Tn$Du1Nt*=a>+o_?U$e;t_qyCrHY zqUN#Q(Uou?u%!9EGr?!k!I500#3lWhq2|dnZXUxo(rzoD_uDYe@9&J)8gZ>aDDTIb zDsleKogYL!_4SFImYhxoO1kom@$G^UCw+|&=%3oI6I*KIGuI=2fS4JlZdmrOXOhn# z$ro1mssz%*Cwghh2l(_jiRV6`eAe+{;}cvwyg>_{^^J6?j$ z%ZERFt-Rg(Y}$qEUDiVG#RP;Opd(l8Hm|(Pnt=c5YOa(2N-vv$W;iF9e8i!A9=~|n z-@jh%he}{#GS;nDWImwPs`Tb%{&~s1>Z}Hd2TnOnlr`x2D5`axCx~BP+c(o=@T?5V zAHP3oMZBURO$0w*;pfcFdiwNR{UB}RuRc`mhW+Tv{gzuUaAf&vpautQn7}HPGp==Ao9l+!dG8rXrm_a&*yYH(i>YpVXoy zOd2sVjg-wi!IAJq%AWyY7u1ClLDa&Ffw@7x=3SSiTaL1{i@h>5zY2D{5h+bnyi2q5 zAC2EvJxt^k#2a1;DfTpJ|8IfqKPS(s@Pcul1_68((*yRI{Wc#PG@!rmV4~)Gl@0+*o@HwK-YJGm?7t*6a^bf z$tir`@id^T<>KFII&Fx$wk(b-YA>5QI`u$N4zLV-`3Uea;#l{$4}R%+*@s=-m!NAA zcj~9l@mqck2XsAubS*hgZP(qu`Ngj045e7ALzRbNbD;j)I>5M4%iy`rGVuEBxF6@$ zSr6x>l2x0CNi`Xl9}zg;3sLrQ8%@Sa%&&9F9#2M>xfIs4jPn&N0KJY=fE8Ui0DIz8 zoPg$9-fN>K82Q|{N0AaUoWU_pg}|$8M&*P&@%2&IZ>Hqtry4>qXO7Rt1q@;O%Xj*& z`v2a45q8T{GeA}{7;4mbj^^bhZEjTTn9+qBJFA7ft;aGKVL`0TgKdJ>p)6V7A%IxP zkoTyb@1B1mZk_sm(eL|6*tq4xe23Zi`r8{klS7WL4v$Sg1m#B4>Ns{ZX*%6w={0D^ z)GUi_5~q}vGSDsP7rcqkLtEj~WNCmxB|s)OFbeJ0cSvFiYN8D0I(j58(7BHI8U(zJ zw6}Iau4o3oD@dLT>+XGLr9YW+Y&?9L`zGW6!2CP$cjbPpaO`94uYvkV4^eR~#)jH9 zR~&Zs!Y|!w3&Hb0dYC)BmVO*CHqJ*Jb;>l#c3h&1UwVBmV`p9E+atX64*Rao2cuJ$ z#b}k(t~et_Gx^}!VaAIB!x5DuQVQ{wCdRhXqIBBQjD|QDKw{?r&6x4HjT_?!C$tn( z;o%ZM6%FVOYcP?d#*Q6YKjZ>@{LmjlNzmi$S#_aFOaiQkEhX6HByls7rk+K!R@64D z-2^B^_IUd@`_0pNZznyJ<$~tMZ$h@Qa*Jmh_6bh&h5@d(y2{NHRTidbOq?Qv5*PL6 zMbE0W^-J5ure!(bPT!t_qn#FyR;``Fdd{jOfzMmsfBHc=xCJMy*<}T9eVP_M=0`3T zMNIyQEJ3GH@S-QXRG>o(ZZ(wV>ihwPNaV~HPz$s{YStf^S7xHQbOnXaYY*#Crlygq zN;W;OKdib9U<}-yy*Q8fWzt=E`!P@fO)EdMYYK!+r*XEifK&E*eznW74Dr>jR--8# zzdh!~IkVEt$_%LnjRCgvV(1g-cNPu?VOsls&;l)kF!RqtZ)R)-z$SziIxR@f_iN{d@@hvE(c#&9S$V2m*~+?@?~m%g(2H;8}6>d-5Idq zHe~p4|M}$J``!EJIc?9=)23SeNo^J?DE6Vt3urK9S1anE8UPFi!)?)9Km{mS@i7jkIooW^6RYjth% zvboM`PYCt&w>C?ke_iE(Z8D*PURCTE}3p9vH3A#ZS#sdl(#C+SVKu$DSI>b}v?vksSK7 z({IyxQNtFyL6g6e1Ph=re%)*Ka{||>fCs%O-*vESY9+D!2i6yo{VcdI=uS^<{$LFp z@&guc2#aS8VzY1CSozF%zhmlPXbaEsYo}?IDaa;)l&i;fe^A4i1NQNcrvu`&aN!I# z@N+(H^e_={c|EC-K0&&QH1nzhmmjrT z%$bvT3{>(_r4|JG5~V^U>_+ir$Q3-XL=9)L*Lzi&<;Go7zZ<-i2R4^ONYO_GMI_g-z(-!7p(aughpR zIWZQk@WKvZr^>#`9aS_i4FF0f>IZBrd~!j&cE92r)B;2`H10#m089}yL~wB9+Tbe= zaBwY1HjzBXG0Wj{qL^PJ!9CSm^V_XGuvXVuwLxm~H-Td1v{Dq?`Tl_A#}2iIKd~>^lOHvxG&63_UV4lr6Nu5T4x0&c=DI9Nq zA!l4y7^q`33ZRp%Yx(Fd%OXG}cLERj-h$0&xM%}H#!6)7O>a|R!LzF(R$TLbFagJ{ zJWZq4ne$$eu(N^Z8MX<*`*#P5@ojPtk+y)V_bT7B1 zFFWFoX)9H>)t9W0F;x6}EI4$0qxopCV#I2g?$=g{SBD3 zK2K(2BDoSE`h2xIbv5DU!qp^B6h1m8r|n#=I>Y?n#9Z-h3?*NI&gadX{po=i22D>Q zL2^RA4owPY{m+%P7ULkCM+cykf<7>Y2~&DmMLWx^>^)(0tIu+mRwxFX$6|#@w)iuM z;pW&J;Rz@T025 zNS?Pb`W6I#ZmViOfa7%hyParCiA$Je04@rWEw)J80SNmKyB;@Tq&I9~2LpohlD7XC zW0qV;XImH)S>~gKiRHRUE8x%=1|AdTzwfoKuiC}Lewx$Cd=gpaoMrTorQKvJ=#2#w zx-h_`aT1`u5mCp81kO1e;onSF6lG81v5MS_Hw4)Q4jAZ!v!J&c5Hj zD0!HFCTasx40}`q=LEqAT_Dpf#3hEz_lmE0(CM8~KqQ|M=oSOgnhLOh>?=A$Jm}H_ zzza-viam6J;hpQ=>X>i_Vbz}6MSV7%U74}1cnWWSna>lolhHhhcwa)_R_)1M43eWD zDTjb?)#2wfPEPuN4kvMtBPkixh|urbrUQ^)A%{KOgc+$0B9fiQOE+{YyNp;$a-hrn z2H|a{@TjrrHt%TDqmH&aO?GZENE(nU`yPM4`6k_M<*Co8c%6jlN}@Q!#&3^y$zOd` zq|kw3_R}VwAyfupiCk&ng^4fQjL0A!=to#KL3wLv90PXPYZURNoS%J8SkfH1<}*hR z^B+xk+mtUmB%2g#%xA^}+8A#t`-uE2(j<(dHUs4H$e=+#JTbYnY(>E>cJ0O>jPu6q zU*+?25ywl(`O8TtAi8-uujn&4>TUz(4hHrMd3Afz`0GtZejy?gl{cP}eTSTX@KIpF z+*ySfHmNe?uAMe6qHe9I5jX(ff29ci<5d(4D5m4WzkX!mSCyexh&8-B`*1U;;bEND zz@j;jT85QGz7?yFiMK7f(swb11K-YtdJ=t1x?<+?%42RdB|6dOh{#%XeZK8w@aK>; zS&{$S%d|XXR<0SozWTEK>|n+p6nfiLzAp-Iw10fTqfW;kOLP2ik;dHIVB3LAOsyXA zFPr_{c#;H7s8CNz^8TJ}0?A&lHh!X_?V=g~&?h{=dt>y>;;(7#AVL-_GLctk2;r_Nf-gx?B_`1m z{%*lQq`4^E7NPcqt1R{%j<+P8YCr|Zf%<32ES`9*5T1QkN=92SuGnm5m%u$+z_VSC zg!U>>|8U9{VyZX#VccEqW>oRjkQP<;0-kvNZ!h1QeUEhC*c7V~)O;F3XaDt;I7-XW zofF=+cCWJ>x8YPhvI=G69z2{Tr{E@KVZZZVThNehzP-0dXM<#CyNew$#q(okyvUmm zb<%A(&m?czhD>&@JF|C>j{DG$X7n6v#Kh_qrANaL_-M$b$(}06%-fSUcr}X(_F_~R zlVZq|n}VR7xQWxOuh)r!a8YSV#J)3auZUXuZ9Ai0Fz+@D-^DCc;>%Bwd+{_O)Z* z(>DmiC*>_V%yw6jaZ&&}Pp?3)tbL*$DB~TFx&Mvbk@Xv69TWON0?xLZ9M%7}e6E`S zG^yECr{uImX85awQ7WNFm5~9=tWPx$TbjOqB}-^k28151+nwePtW^zGO+`=EFB^+8 z{6PI%@4bqHmCqRD_`!@gx z)pF3II{cGm|3$UeUQP^^l>|}J*yNqgjnwW#Tl6SDKuCMR31D7~f{qD-msTLs+gj?Y zKvs*gabc0#W1$>SzsNLC;O|GxBnI4>E%uEO&~}V97@FK3 z`or8D&pu*p{uKoNM(x`5$@5n2h%N;w^nCo-y`BySsqU@ifFSN0TG`bp6rA*tJFv|7 zu5o8~;o8h4o<~{hg>c3AQ?~S9G*}$xhYuKJ`XnEpkC-{COljMCZWB-^KJKx_3CTE| zt3?;{IC!ot7jnDBy{^l|)^a&P>2kD^|FhO7*7D;IJ94nsOKp#bWs-OA(E6`%wDCJs zNIsD#@XX)kUaxMe*?LyNuKxW3cF~UMs<>ciJ|cYlHT^dq6R}ckNvVjm40?BohqE&=@N^7s;ywYg=#Q%eD4W}{?ff8xS&l7aP zM>DroF&9ozg`d4l@Mq8VF_Fjm@vBkD;ANT(#K>)J)0x zJA1BXzx$9y*VMYRd&f2SiK^_}do1Z|eCjeFHyIcHO8JU2smb&l{X|jJV?PHjmqtTS zw;S{d=?#iwgUK~x2U*(`L4_B1Sz*9gqxtXQu&%b>^GWDguf7ue1TYE zX86{aj|zHNNj*JAea?s6k}ceYjM@M&JZiLzP&;e2Qo;{F!g$dY&D3NEu@OI{zCkn% zs1UE)WXJ6^_JJ(litwon(AwiWnn2S&(6}%US_31V7BK)4sYA5Dnj|K`F9-Bf8UajD zMk6+Y6(``(w+-yC8UbFTklMhyWLsQN>`TyKNn-#ie>*ZW(l_Rr`zJ6;G-Cv2)x7$4 zBK1CQ1}RtelOR&r=jgZGyUzWR*MAvs=tM|Cfl9g@#WgMtZH^)#^STyAb7r5%y&k?{ z2D7L0#T=OroNj0KMMn(HtaoGoPS(S7`=BqSZ8RrR`r_v%wyF`*Zr($7w{us!`HcbB z(s$Y;o=}oFrZEO#JQXjVyXRTE`}kSQM7*oLb`EAobsk0KWcPGn&ib6KyOh_$ZuF@r z;a_hIvPbcEKc~)$1C3nrQrBDDdzteM@sn<}i#$|UoG;>jDwH+*V@>we%U?It^{4+b zycT0HGu1;Sh~fM+%^fdj02|DHvoUgrNK#gg6RiR&^F$PB3}ASlp7p29f^??lI(|LH zRhq4r8T!clt~Qsrv7VH%&WuN9H?QC=lf^r#4c^0ozJV`2W|+WEVkqevM)+<*r0qF3 zr~K&Nc^LbsbU^@?{&BE;J|5iDZ*~b8n~mO-eL2D32^ASr4}L}fon%m1;FD+bFTt@p zJPhjot2u7gO9_~s8l8_qL&M{hbVA zVHj+b?sD$T4X<}Axw11~+xE0hGJ2O_&uQkJEiIWAmuh4g^Rh)^uart&TuE)YEQw6v z1UeqJ;~u7-NG-Q4-}oiGye8XqB@9uR8kk%fuiAVFHM~+*8l*)y6FLYL6n0yfU8gf$ zc?2w3^P5wHlT>bnP_3jjE*Toh8{Ku zQUjPg(J*pX`aS|kWO93u=qj*-d6oPf3j&j-hJnE}Fe?zuG70tYxbH0<5*ro9xbyQ1 z<7qw7;Y5O#LCs}!;nRmRC)dRxlBehL=r1hXXc26Vup@d=9wO{-@GvgJ%RLch4Dw_? zK1}xr@`UH4X2%_m`L5D}xKVYWS5JofnHB8W&vr66wvOngq&N(EbAcLRWnVL#P|R7o zrzdCAotvY@xwf=@0eB(@MS-NleX~-CF(IaBpG^8hLJaa6doWGiwD=3Q72WG(!I(GaJWKqvm?&|#vJ`2YzZ^Q9}Y(E2SS5LRPT zSNjAYS9yhonyyzg(CkMHjuv$aO(-eN{~G$0y|_&d)>mO*#%5)Ts&j(X-<07gr!+XMo z3*(Bvr6@s1^e3gp(4a~6c>FcsaqS403eM?}rznf84>?H$(xBq_zPuAxZ-`p$<1J(6 z9pm&-r|2E<6d5ggTn_#RXwCw#59@mg9AhR}tLaE9@mC(G2z1)IoEGBV0q{jZ7LLN& zKA9k7(KhiGUz{l3N_I$Vfd|N)n`Z;MX#u#Ssw2V^tEk7Vvd&K80KY=vI;xVMAl(Qw z4)8ag6u+DP^UOB}@$#>ZYT7ewB&J2PqeBB3B&`cI$Ulk*TIKtjh6%y66jLdDXz}2n zxBC|>g~_94aRO_H044wfe-MV3VF9q#TiNj}IDq1Y0nZ!h*+)IK&h$WVo7TB{?0maJYZ|kx4g-w;W`No;jcv35N7xl9Jy~sl|(E z^%nd89#pi#Fy$;kg@PKOI{bG`H|E9HS?&JmLezA1D7<1=5$Y>mY#>ECG}sUX(a-nZ zAINoP1S6GxBbYpS%VKRh_lT)B;p}Yesupf!Z+6mf*M>3htKZBV5u&lG;IKz9=jT}3 z2pFTwrgOarcUFEDCaf}f0^-KGNvSJ4%FL!w4cYa$ZWsBykMFcyxe#XwNUn0~uoYEVlbnaWAt3 z;5GjVO-L{VU|RfO#qRkn$V%*QyWiAi>6@hY9oZHMyM?*$mK>_doYS9Q_qZX#igOfG z*+dSUgEL&7T(%}?Y0KW_*nWJIo7N`z>5p7;W0y3bOZ>u(BawI zaUeXT|7!r)DPBlz4-4Lu77B*^!7T(%PX>YTGcar*WVl3~4sbGjhsgyX znQ|aAtfyDAtnVIcr|y(?`RoXV8fG{93&m2NcRONu(?^R@0TiD0cu2_GGJ==1R&1Jc zAIb*0*X9hNM2Da58dSmWHnO65J;B;+qA~tvbTP6bocd&k^Afz~+SpE98`TtpBGDf~ zc5M7CZ~y3*ng2D^)*o8wrO)gpylgZpV_WZ;t>>$$obw7C+h{bFY*869t%x(&o44F> zJW6U+yq0UB>-*K9n#x0pDk*~p_YMaK5B}5%OpSh;tcEgF3}En!zfKwy$PbD4X<#B_ zytsbBBR{RU)AMoTtA@Owqu207c1>bJKmQ5e7q*<*4#znCop={L3Dh;h!lebsHi}0W z9G`P5FrjYx?SwU+*;YwhLZE$c=FssM#)vCw92Qy{6%G7nYST$9MN2bWd3Aei86-;- z=wb1}X*bf)tz0Z8-=}-D=-VilL3fkoE1_sG-Twpw90YkLtYaf#i(SBSsq?WCAjVn} zU7mk=Ic5wP#6%!#OC|xKkqVP1RZ=miZjiFq^B3z$arTo+k{@tcZzM{mAGnk6vvLV9 z)a#MvvmQ1djaO+RU)^up?;a3XQ6%U$PiSAe(f+WdcG+U_Qu~m&L1X1|Qbo*cxXO7Xb#AhdbpCn69~uv4?VoVxBbOpQQ#~=B7Sc4 z{b;rB$((j3AZA{fh#D~;@sqO;onK*v3nbj(bH-ebPosp3`MrW!x{}>^gU9D{7 z?@No7WXal@U3L_h(_Z0wj)-a}7gTLgC{;{N*$V%tevKOQnaeSgxLJiqwa&lf zh%*K5P^CbO8!R=|yx-IJeB=|iW>3Vy-#Wz#|iQ z0*6OzU3Uhl-0u zm}WXD?=pbUKjjbSR@f`?vrMEahqEx(9E-D+XkiJ~zJ#;0BWT3M;_2GwqO1h6FzowC z@ltezM!Q--0=^xay8*7>YsjkBEw%5+oeFUr$dx0LOWOT+gnF~1*Fi;&lIypWLGRrB zbnd4?rf=||UK!mlPF)b)Vc2pYq+$R-_;@#>Zy7X605sMp8>5EOWy6>&62OlajhQRZ zu0cq)s|pez93OxcF5gw&*8>n=+6txql&`~!j(cv>v0)Xt;(VzhbXZKCocIjlJ&*iF&(5|yt_{oC~8 zj}$qtC;FP==XXN5`RE>$+WjcD_Ie}QWrBCHD@@QVsc-x=12CP1P?lxU;IQCO)(cnq z68*o=UL2N$o`B2ng?RxMUyBUnG)M^2%g_uq&Nkn7jKCe*B-9dgZuvB%U{RkC2g$#1 z<|Aj{T&DyPL5gzanm}+!iFqu?M<4JZ=*^|5eL{T@qZ~E!4)aG0B?S=Y;YcR@&c+3E>aB%>s= z0_~5nv;a=Kg;Qv#>#{tF2IK2z)Lz8=Wk%{ybj59IVsR@ml?{ZulM0uf>@%OrW9mZ1 z7d0s*UN07&w<+m6<5dMiXbS*WNR?`<{j*d~$pRBwdf&1T z&J9W1iSx6o*uLXW-xgq3EHgMX!DVj0MBy(>Y7RL#E936~MXuZz#)UXY03alQARwY} zZ&y+TJUR8zkYz$N%O4d~aMnEtFb^|AQ?x~ZnSS9Taw}i57k(k)5eIjxsPKN?>1}nZ zd6@D$y9-`}3#-1x)rns|k+|=kDhTYyEBdAhvcl)tEYa?lxImx6iLc^vK{sh(Gch9x-UpyNE=)_O) zbpI+R?2$$b`udwe@tL~C50#R@-^X1fPW%1MJ&k|6KaKruOrA_!CA~$FAw8*(WZ^1u z9-bN#@2e#Xc)7Fi97bYo@~rk{w@mkiXbRcXNR7`0tzncU*50L1+Zg7jGOPRnp6g#@ zbonWpT<|YXa^yb4k*`6}<+g<4MU2a&NsZ~$VzrUiDE3jO*)mRMKZ_y(T0pLXL{Y8N zKK3aZs&1lLka!qsz?;zySi%&1zHW+4kiZ7*lSA~yg&y}Z-J4PRp7*%#-1A-HOc19<10Ai$?>2?m(xTd^D!Ge(rmpZ8LlhyiPHn{%T)A zDVGhE>+qbhGi%)(hmiy2h{t2qj#TNc?ocDA{CSGeh&+ld_?uusJtkTbC`H*7mCl2dN zs>jM^Ut{Q`=;z0z9)dbXS|{t>7bQ-AS@n56JXWoUTwm>Mbc;+!oD~e2e&+Hn!JHQ_-sXvjR9hhQ^l9FFv#w4Ul!1$0N5|``m{(SH zF{O@uDcrPtb-a>F7-S!jyvv3j`f9qoV5{hyO!jD8{qEkT(G2&x8(uV(@}~dr>SAluZo_1k7JQD&Jcj z8rUed3j$t5tw|egl}2>CvT`!qDgGj+gZJDit@;N~jh`0EuFuOKS_Fm)vHpXIRln=) z958_0f>D}`ep|lpCu=P2q$4qh^5W>L%L&T+hx3v8Jc$yMk{TnweYf|j8GPt=4eYso zEA7%nW}5&|NZP-^1YV2&}3YW!cG`|MS)k>Rp9w2Rf))N_~t88cz_ri_?g``b(1Jd zic$-W%j(!VtUb)BOk33P=W#9E@b^) zwj>`N&0!nV<6YZB$w$X~d=~1pfhW>Q({Zhh2@66RjAF8L?28nJ<^ygTKRv&-TG;| z=I#YkFrQslRhrkE4J!?HP80SbJXzg6k~r`;lmxdVE!Dl~P0$jAAvhn`?4CQUAVN(< zgs+oQL<#tPzZRWsF3=1%6S18dmW$h7&Y|ArNy4QY(| z8mp3Pj8leR*w${w*ZULyJ&^rB0nEoUH~TkuSP8~5n0XntKZB}XuwkNttc@cHl_d-B ztZ~k}!Vxd1AJ_PN06V4yCJR{C6L=!WPD-}Gj)GdYPPq5DMKVydS6n|q`!O)p%P_w>aJ`JC%VGdB|)_DE;4YM^daS`EfSdltjVh;BXMIL5p zk>;(2S~f?`_Wn%^<+)yT%hF<5blRoCPQHVcyXDq=$DrKF@QJv*c)lrV?w>B2Nmi=& ze^z~z$JTB;DT36p=RVN;8paU#aRp7^WKC!dGVw^0fx0as+nt{z4x4@x&w{iL&w%(j zH6Td_K;=aMc{~=(i%11%WR%Ce{y|Iwd(6{EGU!2)Fkt5xTq(fXGZe)T0`1UNeO+3X zoqJ&l2C<7YTjP+cJsOJWlMg-k=-shMgIh&06zoL`?PnVrY9@slyuo};!!byF;U+BR zb?9TrEYME#=&yw`4q|@o&vXEvmQKZ`nBSPQruf6HT1?J0{{Gb;e?uO4Hz_tXZFsAw z$32P|=lwwACp|fH;edOFa{`;qDqC?#km76+n64Kc}#C2|UF4P=icHmn4)vO;}6HgI#{FEl^zZM~u0 zS`UcQ=5CNYO8ZI1Lm{kYoC$t9$7}O-QZjlJw03)) z!d&x>aNnLkZVbXJXt$okj@~VZ7lO{8@|@l2(eGC__u2H@2M886Hz0QzH1| z4SwXGm#E0LLm#Gl>ydC+saKAq#4BT*Dln7c2L-BvZ-Os0PULPgtqG*~N#J-;L*BO2 zDlQ>8QFf~cFqwMg`tdT(S`O?V!%7Dl_ z2-F3y_s?ez1Y1P*zmE(adUHuJY3ILbYb&4MY=0|!7NUnPX|$2mvcq$#-Ti$?uuKM} zH*6tCSDhr`hSO%&&VsC82wEB=%yp}Y!CaO0%i-3ELLn?n3F@{|)X^g3;1~AH&i^&T zV9D6@aTePEDpY8R3e>#>GNpzE5x_0YNdqn9kS`f3+T|kJQ5X>Bw1F0)@aK+*pNtjM zy+xm-AxXt?zR~p7ehpEg=iIsJ4w|noK%2&MN0O0+ei@;+BLqbp7Qe;qj=SWHJM3A7 z?zz$X%L7hm^-063O!+oQyluz)n{qNK$)1l2F2L!kw_y@gTtUX)72gUSzyFr(e;ZLE z)g?g_mMOC_t>^GvS+yLtPWAV!4}VhCP=W<7 zv2N7A>FyP)m3mzchMzhFnh;kXP@lo!Oj$u|zQd&yG)q0t6^p)p_?Xye@1u(f{jWJm z{Cg_!w>TmNcoqC|<<9)+XzVe1C!kNmKukPxma_|Cq#gYz%%AlUOy=@-;j_+KPAaeP zc4V~#dEWK{p%Tm8a!EFm6T*`S0`0@VL&h`VK?$Va$Qi3thSR|c!R8Dehz$#N1aU4q zf~y7_MxkJ=QGE%;d+QqciGhlS*l?&sIivrY18Z@MslGlvH8FalPyyt=sfrDdj=a0b zG5XL2Y6k_<;<3X5&T41nF)%{r8XFeE`CS{hkVb5~^I|veEDJN7|1O?hA7@m`ZV-is zH#x0`oVwXA)X3KP#N3G9cc{J9WEbTpkoR@+>eTd|9_r@BVAs6pg)Sx?W-sj6U-uLW z@aNwp2|#3qGlWsFnKzV^E8%g?JNSke!|vl<7Vq~#5#p1aLkGaU%4uirf6vR8FZJ6~N^eX}>0cqg zvMfZ#6%>C(L=i0sn#e)Jd$Qpb+)k;d0mTufaCF5tpl%UO6pVgN;7b94_H%&X;d6#78fJeZq*>WSY6j+9L#Ip-y!-n?bwngXRuW(MRGIPnwQP7v= zR8+Um*llk&>vA0g)BWML$-|AMIT_x`rJX)ry6t^O$Kuf)#yploCL9M*8#-sETQ-YXE2~XLd14;yeZrG^Eg^7sv7n7j) zjBH4&@C3*d0@cH8dYnneZG##&7R>-Z%O!WqFQeBm*n&u;3(Tr%+ui-e24B63%Xo`C zXoIZxu?`cdWs+wFk3W59bU+yONU5@?&(5u}b0zMKnGpddmSuC{APphCsfh)WVWhPt zGL5yIM(mYmnyBCN^Jus8Rk3wG1L4h*M#+NhsBU+sb2G$?&DoW3z&3K9iPiaeC2M+P z*xk_JZb3yiRR(KJw3nt2qcG{p@)AOrXZY=CSCj~??jH2`!z@J{243v9B*QvhO`V&h zRV9e6P!n0TZu)M}lPfdsAJ^t|XVkRW2Lt{12dMR%+EUc?b^wGr7mK!{5Hw|Df96ALcJ3K$|cter!Z zBrvfMyiq+4VlbyiiQ-kt{2cC82-RHOCm-HPr(Sk3zdzIu$_wP!DlX#2PLjTKo_@@^U6$q*;rt*bS#-sNU_yA+Hc%-B$9fKhzaV-sPNvKCN;8NDMX{A6Fb_p>QictK zChHxUpfhn|`MKprLORty3BK=Jy4!z>8)^dBGkwMxhni9IU=hkKX7H@bMSo56rdfKB zsHqdvIr(Tb7ekQws2nCg(AZh|UHJ1pc4_kt+^+ozP+Yu2{CLidi&UUN zQ15XAN;cXf#D?=?tw-OfFm`%Uyw^bmcWNwcL@j9 zJ`kM#1iYH#mVhhbXK+)nIS=s9W`~HMz>Z*$e{e&h>L8F&74J>1m4q0t3HMI?&BhbgO+R`5&a9H98mQV0@KO@ zO**4+5+KBD(G(Lf;Ix?_LNJtZ`=8h<2%f=Zz~*1A5y8NQZ75p*J4MFrP`xxTa_UJC ztq|N4n0%yj2SWPKPY2^7c|iTs?hpxE#KJme2~tA52-t9ZEWw-w;@{y9q6H%lzuzZS z|2||eDvj*1Huz_kyLOkv<&wx>e^u35#qe1xM1|l>7ry{Zs|xpDfQaWC)(UTXL^oQ0 z=%BpvBcst^XR%+FANL7F`u-OC$FCx?24sQ1W>kn_j-e!i(~}rnOWAEN9~4;$)6Rq_Q%{;dweffF>s>p>%h%|m7rP~41_!h2}=tIe|?U=jgj-J zrs>yedIP$T`t~OocEyed=`eo%XH|>$Bb*w@Ib`Eq4_{%4D$rtmIze2E(M|#GEY4cz?x_uIuirZ7^(F{kvNtT+TJEa3`tS$j@xlEx?Ay_oCI+)prvWb|7)a$m0WKUu^8Fj9;`#1Cyr# zcBz;8(Sks*kdAq!ws$eu^sK$)~vP#o$K2-53fA+PKxMWy5PXa!;F` zTF0|NeCMmb8fly!{_^$$gO1nU}iWzV&DPp@NKfezf-b)nl zwQ_>bWoxEj;ri}8K!EVt>RgcVtfkFv>F0&jL;Aj8S4QzsIoWwN+mMSyU?2WNGiBkS zA6mv3;(~5XFu@Rew)}xf%CNc2WlYfHerP0xUqpnRh=}N4gaX;JAMlm(r}!l#?5ck4 z6@&U$XCW|jqiR&m;aPC*BYCZQ3aI^Mc1tM5$13A~BrrQ^3Ai;#(Z*&s-w;*N!J%b^ z*uv7fH@t?-&EzwDZK{%cv+J>(zN+5(8UHer z8NHZ%6iKZWzWs~=_ZVB-zG^9<%hX_zLyi^SVs(Dzt}aIYr%$;GZ`j9>dKCPk*P+Cb z@=ny~|Dqb+y>a5z`e0>gWu=n$CN3}#6aY9Ev|%AvxGU73dLy2;VP4-q0fpUHxt8r{ zc)7odxKd!r;QXvV6SvouYA#R~+CHCuUVpgp*ZFX%VSz?D%*U?bFaI-l)i*mz69K-D z9UlM99tKMj6KPU1GL>3g!QI_m=i@bbUI6na%5J+R(dh~na?_gwp8W%yTPRHeLq|bD zc2Od@Mzze#PLtUs*f}2`;Td-~MYcLb_I~S$+(vrA4>)3Qk%hVI*oh+-3PUfkjQrW) zmnx%*q7r#7s-l9-B7Jeu(YO-<{x&u?*BJkz0;U_~gFi0rb8gECg!h=%0UPUcq}pvP z+ok32gO;eFh~PrtSFOwAjv_4NHz*109$?zM?tcSv-k!!n-nZR*)>bhke$4O1l}P{! z6x}L0ew8qOd8xUTKK!9X-2Yb2u*H-9v9aZUNyLD7!2QCuUwcPKM*tZ5@F=UaFuOCm zK#OwV*AA#(3>OFf6^w$!Zw0yyLC&6>kCDl+a<0qpjgq zdWl#DcVZ6>WzfH|hq2_yE;#K>G6w*r%P5?}!26g#q}r<~ndn-GJ&ihASQ4-?UaT@M z2!hNH|%DLR*5FS^TrjJ!j6f};B%8r9vUCr`r<87mZ z1zTppkWK-wL~y6tc=j%sF;Ie2k^b)JAF^&gmBeWNixHniwv-V1b%ZcX?us>BUtwoHFl(|$m9WRCSe+kW` z0&mdZK!e}Zw)2DI65N~3LUP_VpnL|MU)a0VvgJ&GE6dACBj&#Ga0p+ZgM(8iCf+fL zE!roT|GU{Nt0Es{ksm%P1eQC~#?v*<`wB8;g(tBD>`f8DA|oS*$YI+I)&UprbMKp` zS0liV>$7Qq?}i)(2nfLMCpGl2dMIHZWt8y5r7n8hHi1wui2Hx?TTrIRM8W zK;t(w#ZKsH{^(~wr{5SY?B-E3)qzY$9uy_O-Q=*x;zc$Bwt;!5)_VBsw+mD#UIJ35 zC)C$|1|v&dstDI-Im8&iFy*IHwt;PFeH12sc+Jn$n`|*>h_5ztp{+T2W89ev}2n?@hpDQJ-68o{nGY)`Ea+fQ3#bM+xEjyNg!E7 z{h_i)bN1o&)pE;+X>c5ZJR%CCv7GO z;HAm^^AIajM5ZqV%;4WtA+X0$IN3o}NF?A?hdPt<{&57qfa3W<&eOwy$S)MmQV^l1 zN$TjSzF+J92u-8kjjY$|HK+4kp4RW4WTQ`F9+J~Gx+OCjQ&eWSr*-UxDSnBhb+s7& z`nR;N&QEnus~4Ki0$c8TQzr3qP#PpP%fIZhj{P_dKltME$xz?|Eg0Lb?9{J7O=H)E5%e)LADmXw?np~A`C=Wa1lglU6A8F?bH0{Z}s6xv}EaKOjNK8 zldT{A$%w>7>PezY*(lBC-Qt#?0;T`E6%s0<(1A~^X4j`X{fa|!nwE98^CqLIA{F)Z zp=paxTf`0wir(HnuY3i5AUm}s?KWN zReZy(idXy<6wq}cT-qt6uScv;=9)A1kNf85=QDKB72moD%)h?*Ri{RGDKzrG^5AnE zUgIJUakJ3+k&&6zekzYo5_gm^)h>_>IegsdW=7&_g*U>c3zv-7@a?=wmfD;S9~6i? z;a%+-a2fx#gj&>`LsdGX>BwEO?6^2hq@3g*m{=^-HPuCRR+WM5T>nO!i)#$i_hI$_r$M*ZpX z&%DUd%g_KX5byWD@$J>XhQy%Oky+;r(UX9CUl7dQQG6u~9Wz`pfs}@#wD;Y6dp}Je zjCTEfC-ynbz{+j^n1pKuzw@k^+~sjefd)!_B4GnJ4}&p}`JYBs+bduHGarf^K>j0X zLSj-@W8>8qFbqe%zOG(^?{>vT&qpk>`l7}?M(_{#;Ty&O%Gf#;bVK|^K_1Q%OFwM& z3B%LrBETCd>fjAM)dA4oI}p&1v_?DuXebCi%=W$P?aSb5|9SDvWb}3{F7Ya?Fqb^n z-!=dR*^OT4dHh?-tZ(!~Sgf+#d#6VC0JfE*J}DJx{XOvIC8X$tp@%&_J{7Go8UqJ| zWLA-5VbOt6K!S=@)v%pz=~~+k9sT2K(v|_LZk^q7s8sZwHcXk7hIR5n{&E3ZPFs;l z@+&_bp56rkqCjNB(0GfdmNZplJu2XKVz+;=U)tA}VS^F25GR=5K0Wi;vNx)BW1eFtDtQ=k=Wk{i(Z$hY(f$4aIl)Xbmmi ziyWo&vFD9eZq5O@ZmzC>_^zp{w>0+O9?DPFy-w(*aBxMp~+mx!%&_CDK=!y0YA9?*EUg zw~lHn>ejt?2ofAxTtkuKT8cw(TC9}fZl!2(m*7w=Kyim+EneKExKpgS7I!Ot^PcaX z``vT%PsZ3I$yj@4&$ZW@`7d*M5hR>jX(Is4h7sN*^P4f0`w*4DJ%g6 ziW`Iuo$rwZV9CEObcQOeM?Rvl&FhJvuYDQstdc`hBjM1AG{Rbi`t*-+dA`L zV6%lMM7OPGH0anB<$qVfgY{8HwrAbn$V;_gA@2*8BDd!rN-!3)XG&T?cDtbFA_Hh0 zy=0yLyG;epiJ1(gggUyu*>T?sPNpn-8e!jmH$#?N((>W(Snj!spMAEDA>-uL4r?zi zo2<83L3)@jfhW#XZa^33L6HVMJhyWEMHxg^mINj25vtIB=i>uja~x_GC|>^a2a^@b zjT(lRJqa?VnRUh&th4{{!G*ofULvR0$wfFo`b_E2U9?w=xR^4k=@tlAUng4lc?_{% zX$*Uzh{-9`YhNx96dn@7$O*Z|pmq+Fi8| z*zC)5GK)Wz{z~|=8fd+5E$?a8gP^7!q1G(LoePu-fJ$p<8#2VmWy|SVE>sE|T!=>F zo<(hLo_ZUB4_*eP^1BvS5Na7`5+|KWiL$?yv^L?TdCSH;7F3&y7G0~X;Z4DcNlY}sy8(*?XcW)+he|_LtG#4iM1)q1|yKI z<$NdmE6VTAH6h$4Cx=rdk^k1lR=TECN$Fm&>z4JYq10wqEW*Ekp(w1#;|rGjT-%#b zs(*i*czpsDeICL*6A)32 z)<}U1otu3AXap8-_v}vKz7-K?M}@ z*HkZf5VC)n&dkg#4@llXm4W+X9@4_JTWV_FIStL`?C}gW8b(eZdt47 z-^73MdU`%LgXOG^`i4K`Q(P6xRYBT(nwnkN#742!QhRkH*2v*VWu4yi{Jh8l&mS|A zymPZqHhz){jVJ1fo6cjS!$MPUQvuR7c^|)52lSSv8Bfk03)ezX*WP%MQY%SgLwZ@Q zOu{lLFCxc&RiY4}-;!@u{P>Izk3Nv@3l%LQ#pHqP3zCejH5!S@c~kQ8{`}?IKv{3^ zO)s)d=yZOD#@*X*L$d}7TG>lwVXJ^@PXK}Ej(#!ufg98O{Gz?J%ouMhH2CZJQ*!ho zAI$BhMU60K?gFWNm5gXXm`2n5NlA%AKXoF|Q?;(+cs$yMHKzIGj`cH=ZPuF_XVma{ z{-4AkW~uZOeuq_xyl0=&C!_5D;R>|h2RsAHRB;jh6f#()**Hy*+YW-Davbz<%$HgH z#JQOahbWTFBy9d0stIuknPELBqGVIGuWNZni0Cj(u6H#6gu3evUJw3`VIC7(6xmP`M_<;GxAsB^ z!gdZ6j*g1^?31YL-)Ab>u5ub0$W~Dlu`UM*Cc_a=-Iz?mj=qleqgh&@(eb>lfm#3Z z)DTMevg4)b3yM?Bh=$$Wg4MvJY<~iu2b2kpjc-^{In8Dj4ZJ&DJJ<$uw_o5)baa@y zyoJO5@|Vu>JflV}gI_gy-SeCx4kR3u%8#FY|6v2+`S3){Ch*;Cc1hIXDuZvPbSaSQ zpuWULmDqupjHnQXl}HDKU7O6(yrdFxOJZrgMU$$t$}7%~D{|mGdXL{yxjwz`FDGM9 zbgM3{N3Z{EsY>JkI)h;wq*pCpk>9nyCbp<@*?ZG4v^UqNZHdNBv5;nbd<;i(*ECif z=lqsvnUnLKU^c-%kMz6GpAc+EE#ndn^d849C;I96m}OE7WoJfF_11TmW%7!aZ2Ad{ z(|5mlNGmxzK(jOrxo`gFA}K0@FCOZG4|4b$Vb5^REYHBx%YTUn*dtf!Du`#G zDdMffZgg19LXhM`I!*oV_xGIPFBEy|>=)?Atf{)X=-1Z0f}rqiakmz}Gxml?@0@&f zNggSI*G(K#y7BSqj$3=KTLg~nYY|;}FGgQhka&*T4>*$`o1lfWQocs@7vBl`ukmsk zHhrHlC1&n)_3&6GtfXLwVRd(1>=S_bw%63uVrg4RT|8*V&{LXI>#twEeDAo%^ON@TDCK4jzxbFozBOLr#&O- zhNX>k#&jQqUb!8)eAsAg@>ngH6^D6f6TOe8Va1Reen3rJ-#fDqn7K8UAYr$xa@nQj zMB)>z-fQnk z!-esh-%BXqKJ#xkP7K|jWF$4W6q8bN5&i8raN~z6fIJC^BmqfI(Sq6K_i4dR7i}tu zI0uKhFFc=HBV3J2yD?~e;OPRQ1nh`S_x301gTjT*k!j^=403@-gD6UY7~fDaG!nWH zH-7yF7v<^J@xj4S!tLMhm58%^M6YJ8IOg>v0{<8&I(8SSmRoQFC--&u5z* z&pBmemN8@-xK*=i=NeF5Z7+2(?Af&X(zvL;(uYi*JJ`o8&CJBm%a1`{y^@k9xr{va z#MU%LYTrBQ)~b(C9>3^!CeO{GZqfXy+km6WFA}Mzw3{s61|3v%Tq%5VNLiU~F$GhqG z(X>W)VD@Q}8rS*_yZQm`&DLi^iH-ebgWa(eEujecwVc=Jwqa(!)Lup0bqkEpwzr9s zkQ3|VoP9sz*_zS+@LB`+2l!iQO$PLo%PT2;FU^tJ{->aLR$t3%J*EU|U_T$_KVFj1 zsP3>wiSF+wv1&R75%a8Q`v0y4ZSe?Z_8Yv%Vn=bMq){+E4cDt2f8%Y64i*GSXQ(yr z>_G`uQyzpB1_y_#Z0hONjU90Uv6@8ZAWT!*3w6h`pR`fiu~EM_Z2XJh+w*7>P2WGD zMpe?^;0YucRfS4wVXg(2nh3P}d$dt(=lteDdlR3aj%F`R=*8baj>&cPlP$WyEcD9VMIfW!-*Z#Zx;soyo&mm4w<{32=d0Cda zuTgp_`p5qX-MWZIZbp9d!$L*SNEVnK;G$bEcBI|mJ6AGR6|aD`y2v4ArIc5SXuc9@ z!n83leLCP^tB4O@N+L-s)*kRJ757T4P^d{J=<@a)m2S-G3RU!?PLIdlu~ZJeWu4MC z>s9G77kce{lyrTXEE3ZXNz~v&F@IwNy3NY9qjD*brVCW&2nb4FOEJ zpDH_0InZxXuk7-_C3s(piP$E33Fx|5GB6eRFanK7a)6VDbc7+`)Hj5o5~gyZk7>Ky zGoVfio9L|aEuse(RIgC#)gM~2(iEP>!FEk-pE37$Z4>>r-fc|r`%=Dgao8Dj(y8Zh4BQTf{5a_RA) z5z7*A|F*%Ld^;)0sQ12d{&W8K>)gKa9N1@f1tS_uy^WuQohU5Dt(_QzU!P-f1R_%1 zNrGN52vPfjbgg>GT}+E#>3R)EKQ5qs7e%QZ@W(icu#x^z(ux_0mhyF0E62ciz^7u2 z=zd(7$`yrk9V@q?u>bxp#|h0tsre_tCC6pX4nyj?5GkW;0hvnGk&1@rC4vfC`jA^M zAkWz;50dCD3TW@F=~#KIUSW$BI!wfD%2J<`TZehmh;~o;^aD(Q%ZY-P=hx;W20}5( zIk2&y5DW+?`X^9MMMamprrl^Qc69U4pAj(er42+WY@6JzzNNWt+oxXv+gpo1+#f8u z!V!TiB@iAWNNx&~&B~*6|L`FC^b`ZZ?g?hwc1ni4kW>vsECY{voBwxbF7Sn9i4m2; zr8XF{$Uv}m4Vsm$8Y2v#E&Zbookhf@j@Tq$yQgw0&bTTF!CY>Iew2Vr{|8TOV#gJJ z|4syko{aLtA2@S$hgTw>8igJKH=_xHur@`Ea1`hus7tD*6)+d10LfZ-^3$QJr*nsp zT=PIjV0`|W6)*)uPUm4H*HF0#6TG_E=S4lpG07f%hbeVNL;T%~mcxlN$mzg{^-d_8 z$SavgPg~T0Sm^T}AMKh##KG~#J35>-zpU<8`WXp#|FX_gZ)wLA=q_UFR5srNzTLOD zDJPGpEG}&XZf><2UUM0bXoqfF7Dt{A*(_Cp3D7B1Ct0}K zVcl3Il6+{9Nu>o~nMRgk`Peh04>qQS#g-8+>=($%Fek$fiyfU=AmTj8lml@|>Hf@# zdCo~XgE7;I2HdFhrdGZqEC`OEZpQ2C{{7?gJje7!9SW3iV*Gn)X}pW8&5g}z8`@Ih zhS}0BwV>Zwi=a{+fjL3pIANYOy2Zzj``*12&^@g!qD*F&D1r`x1LWp*+AvfStrZEo zG&$2*Ry?hI)jCVZGhoK_W&iDM2s61wsy1yUF(pdjNz+dgY}bej;Ps? zF&%Z8MTViT&*|Tf3K6=JM3+V9yyvi*qo~oFeum_>Yu?zxG(AFUVPBm_|CIQ!2MAOUl`7qvhxJS6?4hQ{U9-emu`X}Tcu~?-*F+<`HB=0OU@d86PzlH@ewXs z0joKFl6UltcIU=kqob(DSDOurfBMfI2+E6v>W}B-Q;OA{Si+rl`Z2fWguRcRnVPP9 zL=k*-^$?7`7|}4h`*-`?njm<*EU#C5)k6mQgKs};oUV&V2Q|0!j*j!^gU_ReZpD1l ztr|Y}|Fi3%#zTN2bMVE`X6pG-ZJh;aM0!)H|4D4fn z{WAYVn8W@sY#2cBrJZW!pi*8$&fJ^J3H9Jz>28(7DFrc6A=yE}U4e37(<7)8#hhw- z9)qp0b`l1!Ts4UW2j_GgT}d@CEyMhEcP@p>MIF!zmPi8r(B;%&9Cco9rjKKdVD?EJ zk4aXY{0kWGrf3NVGf+FXChZex@3{tk8y?(sgxit;T`oGlHnHQ%Qo!U47>4y7JGV!e zZWNO+2dM+8q+?)2#sxt_(y3S>>nveS2GotxbeT zyhX%d%ybxw5p-clRrkfXudNe18aGsyqyILpnoyG>lf;0i>k@u)P$6M?*}wX8@R-=s z9{+cMBq!RPTks)T|P4-|JqVTY$gF2xlXKTwYwP zJ6GNPeI8h#ah!eEUsv_sz<->9EAt-N0L%oWLC+tw*)rB@{z2--H3LSJ{OY+zjJ)zuC23-VI6&45Vu~q|X^& zzSB_<-nd5d+P+|FocPU-KsJMwdMM}7t07A+wP&%DVq_%KOJZJ;C9q&NMc$;BkNvg)E^rv3Ey;*8RV2b&BaXxh?c|P5z zB7BzLo3?v9?(alyaiCI%$oj$qM(+%q>DHbWYbouquu;9}2{+x5B6Mf}#>|-y6r9){ z=%^VR&G?q+tEf~o=+!RW$^mxRjI62}-F6^>a1=5$s37e^1I;Sv4?UTdp0SR*!mg$K zX$J7x!K33(fOFgf=u?0X0q`6~Y7RF(>c8*!jFR=doxcA82$zgxiwdaXCKaqb8Lm^F z{mUW3O#;LAb59cMfC9PyE%P>oG-1Q42LLrlHIA;aMJfo%;?W7h_ZG+K-<$rCeGY~W z`O;<9PQ3-qRT{DM^H#X&Rj`l&6Qa1Sc=q_HvHASOi_bqPy6(O&`}Y3%sMtN-TWM+f zjAssRbDHYM_O}Z5%Pkfp9F&0kupmpo?X78b^S3E>cwP8g1JZtwWF&hBVtyVy>KGfw zI&#llheb|%hfg)pBRqlwI|{Rkz64Rx_vXG2>CxAZHTyJcp?3q5mhOIU3Xd}MzqSu^ z{TUS#gE=+tg)xo>L$fD8$C>Cr^Rv?kfuEI;KH4wRCgfS~A0y)DgQ~k5gzIJw5NG>F z^Eqd2RmDC|jWVyZme`AqGZMe+O*?(gQO^m|8r-Z5AOK$K4fAW1P0y(1ne44B2_Z@1 zq{5t77iODD2Q3#RxEvBIerl|`-@i!^k`^~z*0^|6(XjB1YAOHqOvrbmF%r<~@A#Kf zY(1O;2<)cT+z$y#J~}!kA5=Uk#pvHj&1Cv4#o!;7h(Rs1IG6|6fYg+fuMV?dJL>S+ zgL9wI=jg#Wik?IEo|pH}&*DLJTxq&m&*PJo4{hg|<2)+9J$rs-7*Qo-2!gz&rqs?@ zu5X{Z&n%y^0ZBTr(_e$jF{Wf@Fm#ouSvllwSO9#0=*~b?-*31h(&=XJA7%$SfbV0Z zq}TZQ^e)ibB!EhX2F^Pt_pUkX^WV5vz$RSiiLwLt{DGY>Cf3;@qQk&+`$pQ1`sg#= zo2`-~3?fe@!7zqAvg|4*_ zfT#taAi5pZk2`=4F#=S5p=WH>2>cp&>SqF**VdyYp&$T^{&_J}D7&UOC>%`cQ{YJx z5c%hKU9<`XcB?jy>=3hl*n`{Y`-(n)$5B<9oV8T!c?YY}&?D!UQB|$mIXyA0^|L&A zT^?Tei&_#tYPNl-vNJLkdguQB`zj&;dvW~}i74wXA>8k6aB4Ty7mFVTbzWf?;_8&z z8P*Sskw+(sd~KMYW~O|6NOFxRzM7)`%0(HgxNV#qK)25?D)xC&V&8*3MxWY_1A`#G z7Tes1frY-e$KiCDTxh;UHRjb};@RI;r>4W;Ul?~5FL+pdTh(?CBUamP(4kn8@A{ho zj}EC?cmLiEz-3h==pJYD^IR0-g29kOrm~SLD9G);WS8Zj?;nZr+?~?5O8kYti(ww< zOTBEyXjH7|hKpT1?1dZdu%Ov0)m+R)>SZ&JSSoz|AkS6N5$;a!C|vD8-=E|1+dQKu z&L{-`r?W~J=0gRg2+WekF74y93kYG=1@g)&Nyy>%ub%@_7?4N}ZeU#s@9V59PxJAF zDVOFC{je}^_GBInGOk%63(W99Jre_LqvWAXt-rllk5+QAyJCw%8-mr;qGdI8EHY{x zfzB6Rq`}Pa3CE>77IaKoJ9HBoiuJa}kIfmpqhHhGG=&!YB$r=%(p`r&ZF#Bw#I?O1 zrK3IbbBoJ@K*NPg0ZCp?b2t>=+~*?qTVE0Gfr8#@94~)rN_e@o@1)HmVjSs}U0L#;mc^8Wvt`*cZ=BD!4ZR20NZQV2|w1Og{&L(}929QBOR zEa3$3O6?FdC?cjHF@%W7L$S{>lgMirUl(X<=rh-sS~M3lceQ> z0$*Wkt#3_2y*cKUT=69w9$O4n*N6Xr=+8Sa-SOI-Lz=?6UK6xlST|DH2-{Q9W`Z`h zNds|yVSIbJXp>1%)%M8F#_1bZEc3$mS@f@((hYhlKjWA_a|$T~yUf*Hpz~ zc!%|@#^-wf20!!sf@-Pve6>;K!-rfB;#JhT%NC{M{4Mv9gY%b5p6uQZl7Q5I_muRI zXk)=hSWq8MP3;0|U(}OmH(J6Q0EQ0GS=2|khn_JZ@{A)fV8!ckQZbBNX!NpI8Jsn5 zR0}O!%scBB-BF957d21{5m6 z=CT2NFcO+T8l)PD8#NP&=OzL5SA4)iC)pcj`PW{<7yGd#hGKzcf7{0-w##2mSRAC_ zP{l|Lg8ZN60gVnE0s&O9WD@OSTcCduM-tyYpq3Q_qyM+df5wXqlYzh>?~*2b0wonp z`kX=i7fvp4hCfNxEMNra|4)Wu#!bKx)UR$2xfR7jXm~;-jnsz8p=_i`?Zj7Fzyuu< zDT@J-<*?g20?4Tq$5}dAbukqBT2&7H?68eG!3Zu!43YXILIt%v9G!$upBth8*E7YKD1`rfM76aXZxhxcKj&vuQqSxQ`;C3y|$N2+GS& zES`w}A@}tj+BL`4C72C&V_2+je1;Z0Xq?Kk3`#swe3!DF9>~MN}8P`TSb?SX@ zaU#+idBB3AtUMB80xpeX)~79SxkS z8D-h^`iFG+|{~_g}srF{Z{M^%GG%vtN$W1yP|}DyHPgBh^B~sJy7Xe zn$6)x-Ta?%efZiy$Zz%_R;Kww2cv&Lv8dxcD;4OyAK}FYSIm=Qz@^~hH~)j^zNZ%e zcbw`*`?qP^Aq_b!_W!odL|RFXix+mB(ZlYEwEy5C3}OK_9}I<42%=tx5Ne2v&^;`2 zU$R#%7ZEshZT_LK9bwZi+h?`!akn=~{kv$RX1gH4l}2`3&x6X}cBPQy>EF_RmcIUd z*0)xQqR5QWZ;yE!G}gKolw;wS&tj@BjLda;AuoZ0R0!k09w zHbR|$hNngf(fTi&;5m9_8w-dO{^^s*I#kT|$S_22*4F#u85Y7SmR;&tJ+S9&dk|}~ zZG2cT*M?d(mbf_E@?d+{U47uqaVPlbXO(eEeY0&9tJmwfy);v+n6aUK`q9lR?mRa0 zVNv`^chm->+5hNRc|r4sMl}w5GMk;=^}@qY{oQM}qzAQ@Ewf&I{5!YS+p)jvW{F~L zPf>NpnB)t#S3WC^+0&1A!A~kX70LeM1+C6#2Tl3BE7Yxru9=qRu6}I`$4&1DT?EjQ zXhBZz3SR7FqeX!?VW;%4XZh52e}R%#n|hHnH#$RlU_4&)2Z!Y`7sHoHJVfE*h5aE{ z=YRgwcaEArv`Hch+MdMXY8dy2ww#Xb!2da}_QCT7tj&=MDxWS0BkBXapMJ6P8ZF5P z_2J~?#QUN8Lh&~jmteia+ZPO0jIv+%lW|j{ULggVa&T0P{x+mC0{Oa%=`oEHgss)9WbR-jX_^AYn@Rk?V#mVOV6J~fkX#*aksR(VTgOjuFH3oxYl}H0J!g7 zZhUC4(>I~wewX8SE*(%9K)YD<0`qKzSW*va7xbzmJx3Y)qP8-<5R^uy68A42-Ekdt zq^FAV*YZKnk3=_WwdVM%7i!noCF*`ZGYmozvX1Uaif>nV{GiG)G9wo9Q#XR!1X5&3 zFbo@PG%Ow|j|QD}lhIYetkDQ;{f)H&Pu@`Aj9uDz;!}cM3-JC~%6?NY!Yn8A&4{L+ zwVU)FZmiH;UU~G#p;&SW1CiX)C0p5=--|W0y-KByp+!IUqd$huc^*0W@Yua|QMcWE{Vf8o3${$EMVH`rf~9Do!XY#keF$;SqVld-{I zq9Ai0NGWzKAuI(PESC>R^_Q%9Kpz)X$~Y-!3cn6c-{ij6a4kPNQr^O$@%-TCW|3c0 zVyMTebt3K@sZm~hwNN%Ki;6e!DQrvARgWgI&irR}^z4SOg6W5;1`hi~4cb?_9H%%B zyw~T@fkI$%*Ufd^*|p{Ot}$_c!>mI_QMvy3UlPF#>~N(3R z^Sewr#bzN+S)?1Ukck|W2!)Lue$TE3VtB+t@VyD^;LS!A^MjNYk)uS)@j>B&KhLM4 zyIW#h>Y%cG^PXe67C86)ekD* zS@1`JbZx>w1M$YUyw|>>XZ2-ndgx#yz)|0-c7Af#g;C$|{>0n6Htj=wy@j`T*th6R zYR34;C>l0nx|To7hRVnyIOZGTS}$s694(D!QVLxt;Wq@@rwKVl;uztb1lrpTD8X`y zx`5T7ZaGx;$G6X~EYatprrwB5>Lf=2eSQ_Q*+ngY@Jr+xvm>IAn!{`Y1u}?79d`3v zRHkfi$K*iCR^+fU7^pT$oO3I}!SRH#Gs25KqY+9-W%gOxNK#sISWqrj=dA6kf~BLK z8;Av7&wjLg^_hdlS;(dD83RX-gp&=Lj-gJXTz+t6 z@lQmsS1G^P5?Qm}{qp;}U)|Wq7%d0BOLec&*2K)^uTi&PVj0c{)*YGQIKQIFFnl@S zI5#e|WIY5heMYzoGyK~d;LrE)C}ud~01F!ZQC)}%qYap>Oz%9l)<6%v>#6k#$gO;D zueXII!+N1tiGP~87RlgQisZ(5OTCxU@_J~Siw>n|?lFBMip&!T-AiN&S)n1aV+dh> zKB%BgTO81)Qc^-rc61!77&|x%7*rzJk;5Tx{j18fX>*)31;4V zNbk6y!;zqgGHiYAFM1e?LU8v;Kt8TT&}b^dKA9U}{SqoD3;MQ?4IRBeQK-({>N*r~ zrn~8K&RV8@66S!hC06KCKm~C@z*9+WRuw!V<++`?M5b?ctSXpW5_v$tte6=s^ zi?l18oF$8#o#Iqp>^{v5t_!`sSTY1slc+KT!L!}^-NzbIkT-^a=j#`!B&djULX_|c zh8-Qe0N2+aA*Cl+1P~}`0}6vjKK8Scyr*w0{ySvWirnWY;cf@A8x*9t_P#E9G@{xa zwUE%Xh^g^U(c!j6oDe;pILueoVWsQgYF zJ1@3}ZqB~*YKWqVMv_N6lA`m*!W4oRmD<|Gp_z&T8DJ7FC8k<`Sk49BS1dpxUA1T0 zpE@7tM>~ssznx#BJ(@H()a0QdRz4*A%a$m=|#j7~@tC!esbaFkk4r)My37mMN zI#LL<$7Dh}z7W7h0~q3Sf=U@B@hgBELI`qsJU~QOnT5q9DZecXfxZ!{y{sw~+`M@; zyBOM0U9&L;m3Jy72f6Lf*fsk5cWSrRB;dy!nohhAl*z4Z8@mnNbh3doTeRSs92+zT z?30&Z|0;B9TyHg6TRq?Iv%BVgz=ltC2tMS(F?Bnx|AG%AuDVnbHtlkR* zf?9AA z4RPl4VV~KiGHW{I4XGRVz@K5PHq;LIsa0{u2GggaXHah_e-^Svpp{E`*9N@*F&!uU zg1e6yBqPMQZ>Xc&q>KrT9O_5HnWQiHHA8dSPc!+hN8RGZ9iDJNs3w*A$typQu?~a* zAOcuS8tOv?@=gX1VAz2Y|JQ6N2{NB2(8k1unkc?k;P%Umi(=9bTkjt(2Uv84BdS=c zfZ7kocLPOFiDTk-QsPhdinX|B$cB@F!-Z_AV%U2*AN2cw;xn#QA-*2_W;cHy!3Px2 zC5#n#Zw7z($8GyR#JAkvNeo7|d&_b@uJPY&RTv@^lUHB|^Kj{DC4*((V`0=JvspA1 zOS1XL?J+T~cHgzU79YoUJS0npwL|=5@1LdT5ovpzMC+B-pQWYWDx+qzTSlJ^h<|(# zb~C8yetHZ-YxKG_Xmoq!0=?E6$nvO z0!vT{TBUkv|21(uh;o#R(LbKt5qn^Mb+bYR53faO3b?PRoJoj9ba8}{h(2kTC#Ext+9PtkA4Fq-P z;34B7bL;e8{U$dX#c4T&@3=_IUg)^(`bcc$PRz2|+`^)2Y#HBAjIPkz?=JS{t}szU zOZ@R1kyeh$wrFzBrqfi+)3~(_?I!rGbU^ zH&gHBYM&Ymf+UQR<#nPj>9)4E72gh8vvAE;r$CV|kKNT`u9umlS7|540qq9-NxNh9 z;yKbBvv-$d;`ky*vsFd{AA`F(+Gofg-4EyO`Zx&yCmeKzDG-5kgp_XWo``2bPxIu} zZl>9&J+hRPqyx1O zi~jREaX>>4ZS=yY;gvECjg9krz!=)$d7kNLj2}gjRfMpK_yj<)aexRcME9NP#Cidi zAC8k9ISHR`C=Ruxo{NajFETXGP+VH&M*Sd}tv02|7l2ge4p&Ku6_%gR`3P^{z0Ogc zO46Bk2)pY-$kANDFndX%lI49F!yKC&C~L_2N<)?s=&U4|(HM_NcgS>{PQls-VadzI-~wskhQ@Xct@n1zKa&RXkDd6_b|v2v!chJEX$rsrNs z(dJqhZBj}KSyY{g*5Lx5^^vNQE$xkGJo$h%>k5!?jt1MaO{dsj^1sU~qIsMAaU*Sj z0fT~C#IV=TMbAdOCg6CsSS^23)&Dj@^n94_Y&8h~t-gK+LN1nugF~;bG>&{-F{$FI z*%A$oJm&Pd3=ikb=@0<1&DciTc|#Y(@m`Gswci=vrxR!9AF!fZwKgWm%;N8 z<`X2Kad63fg@e}bU#{rg!B5^#6yl5xQdw};@ zk$LN;77bYdP$JyZg(1L+4Ir3W##sRvO2mI;U0k+Vet`LZKK`G}`&IP^`W72{3;5I_ z3Y!lOf@uVh>;gg6%;EZkF(4-%6sQtS{Kw&>EqnfE0S=wpvf)&|_O=7uyXNI>%a0#_ zKBGSAiDD<@li`N+^r$A-Ex7G8e*DA_4k^eSHC}0zr)54R+%($uoEY7gs|!(ow&eQ&I%+{giQLZgkJ)}}45~_goh|c`>wWV-)kJ?<7^l0D{e=pEf<}<` z^M)YZTI*=>4SM ze794>E7hb!OfHO&aLs6rsyen9pWBViB69+5uTq2{saP_9-|=3-!v#$ccGf z8WyR|WgVb9vC2F*HH9KZs?7UE7c`s|s}kyX5?|SwBv) zw5*Az4s*xEto-zMrg74?^oj@EYF(PWi=Wx@Z#~jppD)Z!nA^W>(eLh%*Yp?UxS8Z5 z8EQAvOyOiz(*csr*>+?}x)C_t6pm*SsCaepik zHN?aYKE^%AT6RAA*BB}3h6X68qrzGoD^iZhfoD}b%?BAPpikp2KtxkP-kIR4^s5kY z5?mnI@6P?H4UYiDu6s5plyA55U5BNU*Y%RS87pr67 zOb>E~-hQYYaHE&bfxovk&2d?dm3TZYu&qmeBOmkW?g4XF0phBhk%sEr=i=UJU~CZv z5bV*)uF=R+9_<3GWnL zL>AYCy>c&a>iF_j&%+SMHg6@bXxXi&&pRJ*Lj?j zSBs~`H6gF(nvKu@e$Z+7R07UQ9(X@nE_+npqcWgZujv*Y9w*Jh_HB;*6?T1rqE|g< zJdbZ$1}Z8ylMJ{AAYgJV6saHs;?)o=PiYPnwqhxqYm@(QtIibGozGMgJ}22Vig24d zw;DAh|808{-PqI9^LSlG5q5XEkECtYX@p8YJw8l-6186x)a*=O)2{HnUUCP$A)?xy z{*ml+f7*B8Z2adv-`5c0`9T3iN!)!d*PpU;X<1!ZM46%(9>YrMY!8|^Np6wC17XIeZAsuWN~%yhktei_WkTqxg z5AeJ1V_m_R&y8#5JUUyYU;oDVR5Y^|Cr>kRXJv77S$42u3Lr!S@0>*uu(YpaJK6x0 z1_kzACCik`%sAg&DNHX78w5Y`!LawB$AG0IJL0z*UwML|>~D?BLpx}`yF3&g+~eH! zuMjD43u$Wh)|E5_-ln5b%a1FoIbu4mI2Ys~>=?T4g2hA2t@@B(EDAcd{;wsP*;_$i zvlktJCi6o8$rl)~G(Q3tTJYv9A*y6M6o3RNvEg;QowbDIPJiPwM}oz+xtUFi7zV#K zl*Ff`nE&{}Kfe0wjUx$}w!z<01sz5eOA*zX|6`Z$nMm2eV07Hs&E580a)x4761XW7Gh**VSS zYSUEjtBY(L4{J!wKJVAtpf1(Lvj*)DMqoBYpLCATV z4>}7BC73;Dm>Cc)66ipeU_+@4AwEf9>ifa2dyh-xTi(|iZKK6|Q*xK9^D{oNH#;#= znX+Lf3O>48rAg9EytW)1YZmpb#xkmz=HY}lhh{4Mj^EFx)OM~C6O3t#Zo#Q-8Yn1c z^%@6DEK5mjsa470hUXN*sE^+8aC(718o&=Ic3ed2e*%7K-pDHtPeVdGGRr^P&NW1& zP?b(eXuWrhJWbQ6uX}dmGZZBZn4^BMdni5J z84jE|Z=%uNqprigIBx}c9)A1tZGTG(Z|7earvKNE8x@H*FIO02mA%!{RQ)w{hkf+Y zqOF-8H1SO6K(n{576&N4eJvN0iU4tpZ=KQ~4)jn4M#c%1>nJXHE$hnmt9hGfs~{R6 zY>In1PZoQ3skt7pm=d(V=*%Sc(8U`SQvyI&CmjH-x z&eBDFUbQKCrBm_Z^QVUU?WvcWGygEQQg=BlCSnTq9>4E>t4^>+gEd_597hW*JFHZh z-$viPwuir2OELKU%Vnq6Y)9h{cm1MM1Zc2DzIXli47xyg-^hVZa`mMd z4C54o5(5xIHZXSyrZm#{!qJ?=&d=yy+owz3%S;cn6C(&vY*kX%Ey{;W1JHxBOU2&tlVe@*s@r>)5j%kQ4&FJB6@gU2=S zG}pNIojdhW7&nYO-#ip7)fCiV4?^!NrrUmZWWt0^Htyn7@A&&;-M>M`*C-b1 zS}>@dYZU0PL9d+Qb<=7dAs12NnjfEiTh|w{P;zg;S*eZi@!yl5LnX=f>Yt7!oQZ|mnC{6hR$Swi5Cja>uE2={SQciaYtyZuyLP9+U){_Bh=w0HXtbRR|sy^t1$<}+c zK|S#04ui%6M&o_J6V>>)KGPll$aiY#H*zhpeLJP!I@W%-bUYPJ7?F6+_i?xb7E4Fo z3+^?#Zd)2$A**jK6{r~3tZ&Z(6cR~+5}Y3|QBJG<$M@FoP8#G4-+HMZsrtMn$2lIc zqd#V-Pbx~#?N9h^nDoQ!`0J>mw=iH;L4Ia4MeLRLgiHAvXI7bPbsCo>;;QXzkj*sW zJPH?vV*Y{#bsHSxb1@+=^&%8f9?uSfH=IJE(4+2-TI=2%wO$*VT95(HH2wPqkyQMR4`uR<{;ls-2pyzz5WMG)spnuJ-!%Etu6T8#=McuNcUplgsP$MrA7+X z1$GL>RD@e6Z{R}!HtTJ4HT!&xRkt9Unj^D|{aBsy{F>)~330m73Vkp^2>dli4y;w>KQ5v6P$SoM-AQtSK zaphQyBauLiCtu;bYz$;tBE1e!ubgCW99@Gn3Wj%3dV9rz%^DDN!rXo;jAJ;E@h>>Z z(vAoJp>NMM`bn@P)NI+4d`zs*W}y2@>rRr^-@EDk{0O(Dd|q>?*8U| z-|sxn{J1~nnRD-%yZ1Wl?7h|tX@JB8cA9xtXkg5=48UCc$xZO%jlPXRso|4vkw9?p z(GRy-LK^OA5`H3Mst*{&rX}47JRl%ILQt?jx_J;<4z&pMFhzlM^l&)2biDN*p`cXr z{A0y3$?qmxg#)e-*p^ETLOgG|P2xA|MC|73rt5!(U*PX@>XX7TDnL|qpJiI#W8t1U;vfp?JX`H=kcTq7m)1I&F4H3WO(eD__4B2Q0x;UJz&Ze3fibM z;)@3&D7X!F-$mdoQQ5La-=1QWTA@j?pyOP%O%5Jk+5v8W2*vjVkj00YbL15`Y)Bv^ zUA;5~5Vu(%uMM%wMqiy3inMR3;!ml84%B1qM>Ig&vsHYj7&cYlRO4_}UZH-Mf#2YG zqHM$AEkT|4oGxeoP@Dju6-&J6fYg?AIV-X@_m{NrC^0lfP}&?qHX^{=^$_IEmNQI5r3Ltc??Nw|N8bLQ!DYWWPjrt|9UaI;T# z5yEC2{wopeRnlGE-K#Tw(N~)w3J{#v=@H-3Dj3fgqrHK8c|1mIWAIC_9D!?neZBK~ zl1`tFk#Am>(#8I~)8Dn0zXyBu#UOw)iVi5kz67-dj9977_|%J3)Zd1gk0nO>`-hVpi7P4x5j>+#u({#x}IVLehM-K*s`Qs;20^Q zrM9#m>wCbda*G~wPGR-a*|vRwX)@FR*Bs@3T$gPH{G49gwS}D0cf2oj{oPru2V|H0 zTHJoHipT%5oiW@7-15!1TWHciPHavI^KBy#ZuI0e?@(a&3IO2b_M&$iwvV3_FMZiv z;CkKA&^(2KnmRE9khw?4JwbIL&)j!S=gKPNad9KJ>6ILuOVWo*^d>p%E8C1-zU8{f zJ>ArF)#eIs&oeO6Pm37>IBQd%Z{VR0e_P-W++v&T_EW$x+(Xu1mNklIipdNdR%{Ma zL2W@V(FPPEH*Oj3d?G0!)*s}JGx?v3hH5CCUlD8#=%qObN`>u}4cwdezZ`qybanJ| z@0r`1lZwV4KC|k-dDI7M&30>T2F)`z-8Se}#XDlXXLsy~RHmX=Mv?e1L_Crj-h6~9gEq42kycy+E|nR0cpC8ms9dR9>ef6o%lFbbp`9j)swx=IScM-SFr# z;j4gPsg7TMkhVm1F@Sbk!U>n!m(s-B>V|z(%50j9l<%1){xJPe*LEi?p*p2^&kmHb z<0Il|@8g}3*XN%gnPZs13AH1+0vPBA`&s+}On`n{fwr(<+i_y|oi2YljdAS<5DaT6 z7N>Fr+zp8R1L7-Tz(=#L>-V@99fH(1GCIz7S2ZC#&oIPDS4lex&5 zUBs^f?RH>lLjlbcol1{Nvz)y-rUHCtWn8+0r?2o4o#b1X6 zdba}t?Zr9(V(`_MfFD_CU5MvpHgus*HtbQpKR*7Y6kWZ~qz6V{*hl&!CM@mS!vCC^ zbZXb?&ry@uqxgJl7f2AKqZk^dUi;w)i$lpS~@1Tl^GrFZ#l5 zY`HFwCaL;@wm-~8&h{hYKkN^$z<|JwWWD6RNm^2}$}XAtP`sAQXx?;(e{#f50n*B| z=+!e+VM%s|%}yS>a>u8vA7glOQutU=5rKpU%@2OsGF&L9-bX3nk4*Ji_~5D;qQtAe z0=%eB_$O$8wUT&FXp2w?jB%BA7d?2SxD8Ksw{4GX<*9tsvLtZ?iptOXr?HlT4Xp>d!5b$k#LXCN_`P$5t(R~R{2Q%5_z?9LgGx5r$Pdkj)G-MT z$EKoL+06)nXeW6vRe(Z}z459hVHPPoH0cNGRjvK}t@uTy^rdz?Rlr`mFL(__j_DYf zE{fT}+kET%1TeK5uZT8UWS0Ywgh0;&H8loK?(+yq7J$LLyU!`8)4TobLE(sjcEG+Gf{WW6z zCmKEdKJoW~WT}95I|7bw;LAxEr&2Y&+J-4sKM`H0Adp{{2VIMeJDyzY$n{ZORxekR|M; zuE_P`RJ>=3HwcQOE%!jP8VBWBP&_euLwE&^P6)h}O@(jHoN7J+)?OXHCHODPs{#UK zbQ`s$fsP>{f)2Q%MymynvQop59RTtJrLK;GG#2udU;w{{YV8ep(^$hKg6Lt`ghdZ0 zFX-f)zQKg7YCM)|*h#^x%ZnC4DkmFs`-WK!dkKtz+d_clCfs8|PHBrX1>L2k5u8b? z{d@dw{P({N)e?IVpmp#>0AZ|Yj4u#`iNeRQWy9Q)+R5%Bj`AGIu{1JsF^+yE+*P&p zlMKcOyqh{45x- z(){_&tRnMQoIPdbMKu+Qz)!R9u&}Ug3C$AU8^q`4PGf!N3x^zzyndY=-3m^X^>3*& z_sXGb$;ayl#4PY(bJ^cg-m8DtcTgU*Brk3BZc4(^!|InlO;JDO4Uk>3CM_0 zbrg!+L0WPifG^PFTPNwXff0ufgjSUH1|^aNw#wB5I3RdeY{bV@5b7HIZ#f&kT=?DQ zaDx&-#vumWk_HDb(dxemy;w8R#v9#u3!L7)Bt@U52rOZ%5Va6h7g+M7K1p-g*nDyQ zokO(>Kzv}&gqk6F%Q$p^cS`%bmc}W+hkhPj z?e@>nZrR0`Zd!h&2{Q(PFboik<*jQ$^J`7HblZ#m#(e+lExD4)!zYfRmAQCpM`9o;jzoJ1}|IbP}3$u)G~u3c#1BV zf~9pUxUS*peCJ%o@_~D(S@yr|i~M*sgKkt4BkZB>W)Z<4gl+;27_kjZqcKWBj30gF z!K-o3UWt{K^5;4cm=a~~2&2{!@RhZvKc+&1?`*n{sydqM0w{?jPvb$9jT^=zSxVPf zwk$I--kh%Z!w7tIyFq#6sVKUHV$=3$rBl|_02Chl6%`ip6TE0RL?Fh*rl&-M|{bP3ZF zL|DiF2V4t({91tUUA{+eyq?CQgJ&ecbq~b(T6V zT((O`a0j(O*Z5C|hi{e4=5DJ1+*}$!Fq@$Gl1*$o=E9wLSKk^){zS!IQD#9_d7HM- zD0Z#g7gaPw7vE`O5N5o|p3e;6oXP(CV+7F+YDyybhPP}$*H@D9AA;$-C#%|*Z-$U# zpDuqtjPKD5f-)dH<+Y$<>&ahpLRY03Ap@jt#ItX@x6ANBfhUyQrUQMABo{+t5g{7( zYT}c9Z0P<>uHogTUpMELjxmX8pBEd>XbZ8uTqn81&eVR@#fpCAvjGGP83)MzjdN$^ z*lx!dW-O4QvcIgwXb@fpKkuXq2niUF8Fu(R|8c$UNYQVf7!#pgcD-=6Rn~zhWn!vP zk2CZ&FHhgto&9Mv#Pyg1Yfh9gKoyJ#D&59G?GiQ>|F`}jhN}y}*#UEX=11J($1|4U zmGqdQ4Botio#w+Zf`gq7l)E?iu)?W(_&*C6w@vjJW2Ojp%khdCiyE(4o?(SvoYVjM z89D7x81@b5S;i`x{T44M+U84(W)*~yP(qY>xHW?cO=b)DjjpIX4&;E0zjBJzi}l_42Fd` z>E*n(4)JO`3bwt^ac09mxKtAb;&cl+3m{H)uHzjSv>jWaue0ZtMu3zKPgwpX9rO{)=xz(>h zHkyZ=#3;@a>wXW(md{v)F$_TEBXRWJ5F2oO{k~Gk7la7)0$|!N_@BRN_G7t7?&TTM z8w29!(Z|kNHY69By@TvOW;4xE8P=ZxC>JPVubq_|o$U&Z7*qFJCTkZzwb^ZHEwkNs zJG-oBxitUu9z$}v4Eet%10ety`s7sf92e->N-QvUxR<7OLp=Phj<6*K$AeBqg+=H-fbBt=b9Q3~=;nxKAkb|cj??@s;S?4kGj$zfBs)1q3W#li5RQ1n0uwhO z!Vc1PFa2n|6S?Or@I{O_)#F|tNl8DdvlloFx~s-r#GHAN4m*9P0-Of7er=hufUW&P zc|TfEEhii%&ce2(3H*?wgcgAiL4?&03V0aP9ZXfQT(>7t9UGxV=j zYg_&rA<7yFw2Lx7igf_wT^FqiW^YGXNPaPC)>ss@1K;+m|C#UNU5C^cWd8sZI)?cs z-BFI^g3xSr10sV05Cbb4+jl}F)?=rEDRLBP9gd*KOFT;6+#zszmhxXxagBUM6@0~^ zrx>DBWpHE)?_1-P7A&TJ;VGW0T`(@rlo}28;GOqGSp@tDVR22coVuCpw`09! z4l_fztN*_zDGs8@ZukiL~Y zVUNj#ZFC)TF6h$SA63vQsej5FM5%zeKkW8S8qhUW5BPqH8L4@z!<1KYJ6NIT&G*Cv zlvv6<={#?+Tx7ZEd=Rdhy(ohHwd$skcJHr)&Q1-@-@t}v<;>GDdx|(Xt2fw;)!neT zfGlX^P`)kJtyf7J9)O-47U|!AzM~Pp$+U z1cV`YQ^w~nb^dt+kT7SLEA0lS^NZ-;5fMe69bIfKB>b!5ZfF70BtgZ1D71T0%|H@} z&{3{aH$lAKS((c6FYj^A6PODrydwbC2e3O(kP8$ni*{2TkYdC)foOv;UF`4gWA1-H z5{kK{gVx2_fF|e)`RES8`Pirs-rQ$7z}v?qc&3h8QUERhsX(MU2xeL~y_f|#IPQeR zZl;Wd)jt&vPS9d+4_sXf+Tk*FqZ|B_LcDJX_&KVlPNo(MMmeSKB9t)^(U{H*A5+rf z`g!*8F4)nfHaKVm%G>yg#gI~$k_NECMOTht%f!uLPPkDf;&HS6DOuqATt%=z{q(07 zhGILN$dZ6#3s(0L&O<-CrD5vzxYKPf_QD4^F#*x#WAwr71B4NI+S$?ZK9J_ADVPT5 zaZjffBEXa%tI)U}nZ<(>0SQPR9hJrV#4MAb_1Jz9S797%rm+(>v0bW4-`eG+k(cOd_X zW{AnlE=>IEc+$@qhex3{9L+H*;CDUjEw%eaF(u`#XsaANMGO3PEhE@$AUVHJ#`4PZ zd#5z~^3MtZ&3ArgFomMFu+p=Q7_*9mRIqd=6_ya&gm^DA2lt=&xoAJc z;6||5Jx1CBi+D?4`H1DoSFK8Z+F$zyu$jOjLTQp=y<9sY470 z-?hfK%M)YtFi&nqseTV7V(5vLzI)||p{;Y=U9NTk;6_IM7NN^({pk6(II6gn$ z&3{W9cj{DAxz9*B6YrY_V;p#MGd}epTi7l)7`j8^9c38J`O)( zY2gnhUJXsB?V|j|ARU9Vw?x-79yMB#5b7PB)}?WE8Y^HSo+7JcmU}VupvoTCCF&y` zu$`|aX+vLprwqnrY3cR>i8_ou z;W3a$Z93qxqI|iUvpiAtxbqpl2RD=NXoVLNeeY-&+X#{kWTx9He&uDvk-$0lbmv-X zEQkE`%THDEW84=G(+Oarh5Q=US&bepG)r@)30+*xdoi;FT9lx8$ z_lx?pwbK$d9u)RNQzAUU(KR=!nw7IiI=d)EVWW%w^h-9@tVSN6hED3^>OJ2xq4Z3N zXi$2UTQ`;_KJ0#Ci#m+A{Cfvr0?PC~S-^W9;FM8M9_sv0s8Co#nk*^c*JFw!{s(yi z`;IHQc=kGmnya0xKWKZ?aE)Jc8CUVX=`X689yRrlLa|iOIn&P(NM%fBFeDoif}IO~ zK~f|Dr*JfjD&8bzS2uO+{>^hhSeiex{ouhw4(Ehhi&}o&h@IxZb`Hfv#q)nsqWigi zE=?g=3B*3waL8`{no-dk5Ujt5+xR+pqbl`@2?jgGHpLS81ydRe@I@(v)-46{E$a;% zRSFE|%^4l>uH55JYTvPASE`;H=s`QFLQx&l7AKAddcD=;H;+;8scEfb8#b@BnGhcw zyzei>nV6Wq{e|?*{A!6Lg;ScsPNP~evjL{kfapgfaeCB>ZQk};3{-{3fjA$fBqoGu z$3U05Cx3aWV+dOFd&9w5H+y(DkJ{rHOAHu~4Rn0_h)m70$LmL$9zU_F+G-ap%rx_# zgCYhW`-W4^6ZLPj(;f%fX!`HX1fCa_O#O_IG^1WITmK;j8l7ZAG@=@pD_{?>vog;u z-8Agy9l4);AtfzItz6nErJY$%O%_@(Cn{5fo9D_M?%jUpaAd)6;CAQJtkj(o_jhG4 z86)98?IqHq<4vm@-_gcH48OYzqKZ4?0pwAi zv{6~NC@R#uc-rCvpNs9?FzF`Vo8F;P5g~cT6ixrE{H$1V92gmCBnZqD@Ir2Jq>xW| z!HH4vrP@`O&}wz3&@ZQ)Ig2#BoD@2Po8-4Qwnu#y;SBm2Zd3Rt7ppVjbqpLh8qs{} z0;^Xn7BGMP#l7!|qHOtE-qR~-_2+5JH%xs;8#EL7s@y$}YomMa0|yZzlx^{LUF*%M z{5K4XA@=i-@UInq>cucPGYMZ$`ilo6s%ty`8GHOyZmsIt zG`opodI}eYE9uUK&16ar(T89SeLZIS&@+^c*zTeQ3<+O7Db3f-#inle5RW=TDoIbt z&#K zjWC%~A&oq03`oEm;!`Rjz9Vh z#Mm+O(Sw^gx7=_XRK$-5`e^AWC<@MXKuOfEu3bOfo2zs*z%CRNR?B1>Wf*E%C^~9~ z%NWE78O_R4>hq71{S6Yr{1 z-z7j2;qSsoA(vg%B`zYJq0Aq><9XwWsjl+A#&hvV5DYUQGWnKH_7r@jK!LQT=eF33 zANt2nBC5llt{q9>Xrz#_e)R|-(nPLOP=kApAM~slW@2_Y41UOHXC=4XB~h@*o)4>a z5sil3|2&NKhQaFwLr&qs(EZPv{*H{R(snuXg;MVYegD#BNbGwyTJE)0Yr}%_;(>46 zfgk0p@d@yA?ok=03j=jG_T?FUcY5B<1wn|-*EsPb2^F@egXDU76f1g^uz(?-9wC}Y zm=I06NdPA;bEg0_qE8VW;sxJ$^kwkRc3mS8P)TBoIqlvts8)%*(m8N-~xC zWUV^3WjVJUpFk5e=3AP|jUEdw@SZUtY0I9tFAfz8<8Ylnchc4U5ePE)9`(WKbqt)cY#Tq9{OQ+A^Jb3JL21_W6!aJ_fpNA$E_g(`7IKzW z(cMnmFizu_f}xH9Ql+haz|U5pHs{U#16 z{jne&VDs1jL#A@cy}#)1;#2bO*U}Axui(#|JZ!q=c@)1(qC^5Lo3@?g|q7YLz z=Zpid&dYf6p?3fDZ4ZjeT+%B4*iAA{pVSh`Vv=CVcKez=^dd9a|6o$lntAR$vDcEG z)<{Z?yaY;HH*I~!pNsRV-+N;BaKbrw!TH7nZq*{wu@ zYHy&pU1=^eL`;E^fx?Jz4Z>}_PZZ~d`|V#StO;k9Oc&_HZwdPdd!SI*oI3FaMr}Wb zfa84L(HdRK#Gce{b>#zYQBEpbJi}@C7e=2G9wd`#0s_437j>TX-6UGm5RuVeDU-XL(T8mBkR&Q%)jn_5ezsXW#?qMqzBLmR@00xm-*V*gBgAH11M zevKs)_TGw$U({RiTOu?*7(J@H1)$LQGV;2XK%jnr9ias~bzwrtQtG1nMIk-wN#t;= zohv&}vENvk?1=nT-1z;l+y4F-y}R}9hJIk9*pk0H>jH=h#9*-$9!XdzNG{7yP-*1sgA zb5MK71C5{H-Y*Kb>N$uRZSc4ahsIm?d1&{o#`fV4J&TAkemwt{YUQq~e(?ZC1u3;? z=ezz&?UxjGZd{TdQ@1};b2q)~5ckHXxjWODUuMd1<|^_>jsNGV01lynkcpGny5Ue| z4l?@O0O&UVn}aU?EF zp|266#!3D3bQkQHOMeK@)6v3=EcQ z+$+C)^$Jgat~VB7!)f{n_AB0IE(m6#NhgmZk0l>6O4E;>L4D8W@wq;FLjRkS~K2TnJu}A%6T5Oy2THGPsT|kRp%D-Q!kJoQZ_O z$ly^;OpDSKx84e**7Q0c&$g4tR*}RG{=0^nv~AAcYocz7_k!XC>^S~fe6zjI@GY4S z@fDqvyCyX#`vRn`TwT8~?*xjz1N@^V5mXcqS$4lr{OP=2 zQc5mX5+g`pkjuW@_uyx&^Qo;$peK)`ClCvDRr$<_s6;<8e+!Ld{iQ@bA%X;Jt zkIyoxdK5!x^A@Oy;dSNuNPitt5)u;e2q;KP40@esP7cpXhHqxwki(rQb)`UB6PVh} zhzTBQ(4eL7^D9mCrI9r0tlhHyEq1}NVfeCjr;?aJ`8_Y@z31QBC`WZxJB z4pe>QdemjMGG+zM)mr1^dLMU2kadq-t?lA1SF|O!dpJZ2jIp|M(t%dA$K$9$0+J!$ z2cX-l?97lJS#z*_B7djP$=fMj9yBS9l^we(kNoh(LEoK23hKzvkavcp`m%HH9G%r` z6*Q{QPxLqR!nMf|2S$v|K}F_c5W4%=T)qsHz%77MpBDPU^<{s{Ad;wsfAYmx@ku!y z^@fZtqt&J~Z>^(#NI!1^so%44Lg~f6z2WMWdq;c6_3sPibFlTGZ?w~5Q_>JC5b+A% zEZ7CnI;0T%39AD;U7R536y*{`LGmQtlX$Le+h+8T-@`{h{ISP|n)i0Hbz!zHA7JmqoD2vr_$j2;>Qphp7==+!}y{c7op0*zMV!eA^2 z>sKfPnwKb6a4tr=HW$v((!UCFWhw0!L)+TX`#v8w#>wZnN(Ad`U*Mt>k6VbRT>lST z2O8p0zUXr(4b^hmT(a|)BF!kFP}fs6Ndg0om}sH-#l9=8gEW_*@srgWhOe}1-MhBe zd&--JbyKfvDw{{j7Z0BcYN%Bk%tfKM!UIuL?Npp#)=rSYVmcJ|Dmn63^&2qcGBV6C z7@CEbFRfKvcljt^Hl&1#jxG=eqT4aJ0gi6kD^Jfw9!zV_4Q02 z2d{&aL~H^1%6ixSM()LekvBsGQ%twV(4P;{dud0z^5^15&wbfn&Zya}WN*?O3|!J} zy?m{sqvNLIG4$$Ua#0M7fsY&Q9Hz7!Sf3`id0x`3LJI%3MSXX}0)s*VSF&KB<6;2P zqaFl44w3FIv_ehEv?>-N=AtgjP^_s@`}KDsiplR+($(;Xx_F+#Ic*r#07geopAggHdEp=WFjQ zS%HG|NRYxs{lo5v5OBx9IcanJcNvj!25Mc1QnLWK=;6|{=JFny$XWqC?SO%SfjwnZ zcv6!pE{GY5*cY`|hr$97a1O~`&^{FA0y}--7_g46Z8E{^al)_RKt!5dIy)IJQP102 z6!5k^$NhTcScry(#sX~Sco;I% z6hlLkUZe^79_K2q%Jbt3v?lqY^O;h^A9RPodmo>V#?!XRUi*FuwGI~=N*i_!29t=l zwfh`;`)o(QJx7jY;ea^TnhyxrG>1Or&@9yEcj$Nv`pnvv(iXSQgrBvJ@n6joB|tfl8lrBxZrX zZFtXaEAQ1`VY=)8Od1rxAt4;na<(IQ0+&1s1~@5a`$^$j5}=R$SLl}l1`qrQA%)w( z5p9=$5-eY$pO~m9c&+0ZMCKta0N}@zDf`Y%sf#cH2hSVnbpc|bGS#n888C3i!ru6) zYwG=FL9-S&MfapET=GL@V^fn%fm&uxMFoy_fUB$fOPxu2HkDGtUxRB9d#Xl69J{t? za!0rSrJxVC&3M=gmlBezGY7x28U2m)y)|~r!m=D8ELHm_q%%uUSylx4~%_Ar0pxCOinX zL(Y%9>L3P5uK`x2`Ef-WFEQB}1|o^P!9ja>4>z46xzfe=Abzlpe)c_79`&x7D3Bqh z=%gYlg3Szj*z=)Mji=m><0M5;#a!H>kcjGHR%4OPT(_#(uF#UIpv~O}0{|R*YR*JIyvT5^K_%k~@M0+amZ{ep49$lko;(}?gtl$fr zrr3HBGUf(`roMl1DIG8FSwtj$F&Wp#4q@_93y4v#9NWDv4fMi;TS+dM*m_x;F3us`@$K4Djabtg&0pL`z5FIsq)?F8C5Iak>_P$=9^h@oKV^`oAHM& z!Hs28ypBj197G1E4(SXrml$SVz#Sy*;mP%*ng9vU*4tsPqddeaD#7cTI6-|knKu;!AS=qOLiu8U`;h-bYF^rN!3NBx~ zp@HL{dIK(mN3F9x#gkQ4beikB6wnuVb%x6y9b8>iyn_(+?3h0N7MDAe_J3dB+&dfj z<44(<<=@pTDqYNOpOwx$38={qb+ICH@gBjDaM-_bk1OnVhlF&Q5w%EEHZ**GYfLZc zHMRuqhhea$g4epkLV&9lB@`KcATK{6QYrAmI2oKg>$;^KW@_(qyk*IqXkn&hI!Wu3 zQM;$v7mp{DV%7b!>9b1P7xEQXII=-2Hp9ZL_v7d2hxIj1`dd1AJW`IJ7rw{y`@9=Q zF|k`UGF^@(#ASQ?_fa#?>?>$X{fqA=-8vV(03$^8%2C8#lEMK3gkEB#+Nqq+F3)|x zva!iN6%vYRoUhr}G+d>@`hZWIj%^gc94CO?{p8Z$Oi)<(`SO+?HC_PAzzN>KQN{B$ zWygoL3vD>m=Z9&jpj6&Jag#e~0^JMA;u?BiNwp(UXnZsqLe$XcDNW8glI(>^qe_^K z!PRD=ij+NuW{3;6yo43^R}HKCMqG$AEct>fuItd0@M=ZwLjPa*r^5;bSL^R)^-^G} zWP%%wiAm&|@eN-l#>L&|i}pMIX`|xO?FK0Zm$%01f3VNT8WE)MW^@=01e_=#^IrjC zO5N5m#uL0K*N2@jAC_o!mC-z99nG#ac~#XfxG(%tC@7NOzkBy7lpL<=dwfbu<0;fP zdwRa0Bms-$yY>7@CX9VFIw=jfLDi$}=l5mGU7do+H9(bo%^i>99crC*Eo_rGPwy=S z7quilXN@PZ9)Df^F8}UJ9FtbGzANVohs2#8|7NwNU5TR)`9CvwxtIm26DImYYEpJ| z4hLJ@s*c%bGuJ)vPEP`hf=7TG6&d{X4KWx6> zUJ%>53H5$Y2<>9q-rqNu#Rv`iq2wDU)AU{o<0epQnE}s9X_$R=;WzfC`WRztU{(+y z19z1;T*0(efd5YWw&@(Lz2XqBl-A;hf0gHR{O5D@GRRnSK5WN^Hq4I>vcJDry{7+0 zYt7yIWtSYhaO{STbt64#9P#isjja3jkOW?mrCK0(RWI7xt!QrMT-x!!u?s~@g}+fn z?G^x6J?M`kBW4eFCt+ahZ2$=z6#~xPmL!9B2LoanK`R)zF@cGe^uUOjuA*mvd!t)g z7UI{;+oW36hj;X6jlo#SzwNeA?*&>ta)BdKc=`?}6M~RmSVT(}MR%Ku2V!=_gTaeE z!SY6yVZJJmK-|{+OyIdLDg5iz*EAr(swVY+L$}kH!$cW%JExACdW-;~;G0PQH7(G} zR{-P)guFF=tp}00Acc1`)wX8Q24-c#z^sQlvbtDLJx#us?T}kzuZQ#v%`8BEOZ zxp8m0_(Ak_LvrJNdJ;7LJuWo~h`HvkukM9WZdnk(e5a$r-E~vv1nGITMht(_4uzkb zu%dzPe{#~45NCN4J`~=(C<|N-AOQXfEaV3e5C7jh$`ip*w9F>oivV*t>XwF0VYn8C zsNo2_pN%KeRV0QR6&}(PBOu_Pm@qRE#=p9hh(mmMN6=o7#H20M%D#cf;$QF1QNrwc ztDvzM7{qGI=r;f%ibQbMu0hgj8_50QO`~?Ox4H>0cmx!tYJq}nZB=V}E3u2wsa-Om=d#i$Jr$;VU)Za`7QlQc)KffI%24U* zE(Z;0&Spb#^KdUS1Rg}pmiwDnO(sTFs70^T)~lWwrT<_w4ZXL!8wNwqm43B7tuktN z{Y7+o^g8vk(ZmJiC57WJGGciZ+b9R@rZVmE=GhsZr&9ajZy?apxTff42hmZL>HZ#O zM4N)WGLs|ve}TT$z$r3>R2&>LnOb4kOd8yg!MwTr()c+f908LAy>nM2y@1=(uep1s zHPX{otTKA3`gFzv**G|K8*J%rsD@v*sVj6U96KkQnu*dO^1{Zy4Y7?jH;7{3BeOCR zjqmLXy1FO~4KwtE7nx&ITdEIvofhXMwXMxf&6%x<;Zu`R!ZH&Je&@?eEih~1max`) zD2a@KO3ZJ5!{0~^2dkC!gW;EOVCBRScx$lI`{_1Z@-^gIMky|?dmvxudhr=9K zYy}DsV$#`_+2s?pqIOwjern!(&~@Y_i*b>!O5 zK=^P@`qi{f%4E2b-0I~Ly0UWQ^C1xf4#8j9?wLOEd9C{fAF&iAb@dxR@VD?gCx(|u zxs70b;$*@`yhLV1v~M^^R$!Yzew7=lVEaM1nF0N^#nglMtNKp)#VJJJYM* zz1(5*5lGsB^i*(vow5DsmGaoaM5h!U#e~-1Qp_mI>uG)hKchpUvdP)gUt8O|oe~rO zT`m<$en#4#EHQ7#(8Af-2T3H-gI|?{%0mypv6ft1#rd@o-ezye#St`x{{LFG zlrV30ah9u)A^eDoiQ(QgOemkqB!F3A7&Gt-IRf!MU`qB>$s(V*HmtkoM|I-yabyL- zJMNyzR8j<@hmvwJzhB3h+{9tyGhuywEytsE+yb#TIPu+66PC0cNK05x1B!FP?CDd* z#h`%}F=9QyNiH#5<*}E6A%({G$2NsoS3sc1&IxKs2I2r-{lo|6Q`an z=M^yGYH#!ehdcSAtt3eiiZ)K+vyLy#qP+6)!ml-k1~0Jq@rPm)u4jxs7|Qn}jN636 zMGqxs%1A)!iPZ%}e#ykQ&vfai?>w9a8LOE$>lXS0m>T`()g2{f|D->9QS~G1PqnJo zbrsGXmhZqzj-8P&l|Xj1u8G1Bac$^?v@u+f=z#c+B%- zW#rz8J+W~AISbNKUflR06^3wq@g&|YFS4$zv_XBRcn4xk<}w!{Ps2cCHnOoC#QrHE zK{Z97RE|yt0#Y3KDP3y5K0^NJYlgTBD7f;t-DW*Uc6)E1#XpO;>$f*iQNy)VxOH@X z=)vV2XORwB8hzPd0ueta0;Q;}jyZJTtcac*oAzNetdoYuaQNRf8|cH=;Gdk4&@bP* z$vd#kskN}>kM zeu=z~o%%*ca(eaUd6(|sl~}Wg{hz}}x;QFU+o{}c_`&(HvG($TheELo(oq-T!Z%IC za3lt{pa{5Q>XW}#;m;gwyOf)gu9^JfTFj=-t0|)=hE*?VZlW^j?UHVeJ{<_nz-wo# zPPzMf214N-cFqq0ESrl+qI{NccS${JyP!oT1642Iktje90qNnp5Q|fL5NQWPqdu>% zd(_297W)tSYMG4+Di|?};vNORG@_4FW~Hw`d&7+A=vc5ajEl=q6S?*tV@4dlt$XR4 z>3=fxDBp|^FZ<7-_fI>Jd`@9uI2#)ql0``9^%pY~ARpxF?mqg{a;Rs|JrOGyM?UJQ zh{&q08=dFCEWX zZ@Qtb;nH(#L_RL~Mc)u(&YynPu}R(4^s&RH)rhNhr&0TVa+39V%Ejqzf;`N-4P_n!w{lEE8CS& zxT&e4!mz$7+Qj?zOBXy?NqXX?mlp*@b&M`>GvcH%1wgN28#tJPrLwXT8AbT|_3N?W zVZ`s>zg<_m2#!BUKqNjK0wc`avFKQWHY5pq@8*_7M~F>MMphmUijI!fP*WpRib2!3 zh2G82wTsC&H}A|mSi%E zHgFUbxy<6pLoyhTLJBk434(l25Wm<`G#d?E8K5!fQhR>OXi?_=oF{^aae{y3i}xyp z9++k1OnRDM2cx4o`|Fle;_B6l!pr+ZEAcY<*rN&@w!6s4$D3c_0K>i>ZK+KQlEb}geKyjMiGoFcM}rc^MWvzgxfv(`{J?)T#A&`wv!!VGe>}Zq zTvTD#J$z;uhK8Y}VF(2T36ZWLq(eYbIs_#ZkcOc_YG{$}l2QTbl$0*%?r!OK?)$m_ z@A;iC^XbgF&J}C#z4ltfq$t~dTcJ?>m&1%tWmSQ;yUmS90RU!OJF`lKVO{o2O5mif zpdJqgC#MBCWP!vx)J2%>>mPe88^_(w<3@E089eg&r&Bk%&DhbQ+#e*$Nk6XXfzMqo zHPn;I-+92^1&Ck@L2rs~*nT$z4iQfW_7K5tZ7Sd%R|cyFKzJ3?7Ce2~BFu4peZobz zy7&yC3Kf$?yFMQM7VEJQdkBt5CMNFK=i}Wb=@k5F-9!|`2wSoVbZ2eI_%>I}w8cEa z9T0twCxy}C48sZ>J8@!o%3dtJXbw7AyzyIVc3rU~xhB;t%x*IMj7@@Vx8)oMR#y3w zh3&~fAyu2I2bp)T#0ql8$8BAt|5B@0|E^C^)$#4-0tcp!hlem8EGjB$M>KOt3(%kp z4-XGJFg0V5kjSVV7#u7yu+{C|JdKUsL06}<*4M3~Ns5b#hS`5QapG~dqQ%AZ@I6j9 z2vk*7N1AW1rwx zlsFSwGR0Ctww|LifJqYfQ*k_@2nPfffPkUsBm2OD#-t75-O*X~!EW_$m!UV-o)FUQ z(s4pLB^pZ9jj`#pQk_?p^5f8JfIf5ee7{3Li<%s=mc#t!|(6mV?__LAOgrS=nPjGFCB{zU=A~Y&gQV zyg_QDb`j)3Ju+9g3_`FkH9d9h`kq!wq2MzdFfXanxBt9YjJAE8+f|>c`aMZR0`KzxkO4BOkt<%0$HygYY=MNw z3P4tt#M+V5>tQUv0Y;N9Tabl>$nUM|ZfoO!T7<$-=1u?N96GRDeeUSeZwQoI61q8* z_0ivr{ouw}TLv*Lr2}veL;$@S;LsP9BLe;F@1D_kQ0^RrA0OXU+uZcKA-tQw)qS%# z#yV(Vu(J_vvH&Md~!6T@myahT$}OhEY@fGpr{{z-m7-%8jR0Ej>m>}+@8 zFhCn+wa;)*+%p8yqNGtHMz8VzUhxpdN)jhzkT@dl19D9gII+P7!davQ z31Ou1a~N>S2_45Wr3RyhON*jzcU5e9{9?-2z5Swq$?fp`7+Ur=1-7oXlM@474dcKmjI~*(=ceO;O03iK0o8pHu07ork4f@> zynyiM=mZi0WifUW{n>i% zU-dFd94Wm8r6W!XA6w&YZX~}WX;wNrxs9l38))zSxPcKXxbU2E_jnj21ct>*NM2kb zU#Gp2Gh2z?JZ}-k&ldj8#-~+#B8wTK{_RrSR z_{ZCCe+Y1{-IElC`8i|8fAip05FfJK@=E8lSafqWeqT#3Qx~i>M;)U-&czPwZwaY)o zLc|aN=hFJCR{@o}^Yintl+`MKbdMtrJ>!uxn;e zdHY@f^@mejfRWt~la`+H_=PO#luJF1DaNVNyN||K|B**LCld0Hq=JV>ufhA&I4pFQ@A}!U4uSlcufmg+cu*Q~-Nxi zj+7U<2WFGFh;X&f5n8Y;i_VQcYnS!~tHaV`JZTqca~u@EkNu=H<@%B%rC+kB8Xk@a zV4@?0a8c)|9LQKsXK7^cqREQ#L|P9F?C(+RXI{o%{ykjP*L^d#^f@N~uL;*!lW@ct-J7XOk zXeGF(-5q#>Dqg)~gyVvVy`Clpz~&W(RsUDDAOXR9WlZfK5uu*#g5WHtKsayorUSh| zS0G*Li8qs!ZZ1F6QZ3|^=*2D0`@en4fb3L$cH|k~K5y0!Q_fK=JpS8Be9LqoxDwrYnN`{=b+zw=h$%;CGS#4f$1 zdP#;O*Mebxi(2zXv8)QymY)`j)c;~-NL&C^#=WAU1wE3s4?tjv~*&A#hc5&A03CqQ}FNm)qEAB9NHPpl}=tyR)HFotk^{t43aKhiY zmsj}6EfEE`n?LW|`HgMro`?yM{TmkWRF{}CrJ5QRKku|%X^t&5rlmV|R+A0LPzgP@ zDxo;**3%G?_7frEZ!b|h|Bs&pof zhF*RT$jhWK5P}2=H=w_6syJWTMao0C<6LKV4_BN_mhS^C{(t1c0!8@JLlNd;2nAxG zrztkeIf_|oNF0zh2ca#KYAh83%7L)BEJ^=S3x#37ShQZr)Mb8YNxAd(HEDT4&BDYa z|F6OFgI^4na}~PuT8|#6+RhF8pFXvn`}a@w*MQvhfaSuqx+04LDI?XkwS&U~IfJ^# z$M#)ZpfimGZ}WGIu&C(fVA@rCg&BK%we7=keZ*E^)%*9O4sYLf73xn-Ops1LI?636 ziMCx!TceibE=#2YSR~dZfjAHw$-ADZMkim`-Y=RkmJsV=w?%~n3XE2%NdOhrnAh5? za>my~Yr`m+bAONuV4#^z~pZsx8pKY(Xh>{OrtV9oLMq?&DT({iNH8G0{NRZ`MSSeAkVJ*}--XZ(Va zhv0xI+`E6@6MKY9uzKg_(me68d7RF7_{B_JGTfhR-C8;HtgPf<1@APqd53+9luC*2 zkbF8*=;${)Z)kAhGbBRZ^@V64`F!k9a51tWw_Ay9D?5|FX)cHEO61Xn3vx({l3#nF=2p&sQt{3oB;X%&s)2vgs8$5 zY17{TJSI*6j5dEKIg_7clzMoF24$y!2kvFMiZG(S!Rs-UJ7-DO**UfJ+c(!l?P|}@ zCIn-YH^DrW`S}AA`80FF>YAU^Bo_~NXw-fcZ0M*X<|3+$TJaLw+8C#1K51S{j*Rcj z*524gGzf^(y>RlAV}VCvucqZZgYqmi zRQ~vj1`$;&=C%wdbM-O1n9Xnml2W{B)3E9C+q;YU;Va|jkC>I=!dJGztk1cKNjl+6 z!;_zsCiQnWkyZ5mhF=8!T(11)4L!TK=$#qcmfLuYKv-J~)|=BuZr@zU#?V=_lfrWA z>(w%>>r9wilP@}~GxRk^K1}2F935d>^il5b7m~^1gko9jBW1q@AFo5+XlZc(q3-@? z?o973$A=m?wYQ~WKDwE0*&<;ZT)PZ3H&D9%AJ_+NV-ojXC5?UB*WzcvQ~nap5`1z` zwbx5*M*$g;S^^9>-Ui6L7eM9p0x)Hw{u{h1UZAI7D)_OoN5%>W)!W|-Lfxlfz;8qN z)d~I|tTGI4?Ms8)v8Kdj#S38Ih`dv##Zvf-!2&^w5qE>y@0u{+iw&}wCkUBbEV|c& ze$$7zxI|`YNyAzVmt>!p^{hrVA6Dmycrvu)-J-tQ6JFGI23N4v|22Qbnu1^7zLdm)F~ ze8nh79=GLIFmf>dZYSFNtUP zo)*Ju$jsw#MQIBSqE#`Ua9tH!TT##WE5A=iJP2ZEd2TS9_t9YtK&yuVk36()r#sul z`o~D7bA0?f#YERFhC{?N%@b_y^WC=M>_hos*^R$agvXblcY{bqC{@BRp@@gPO?rZDRW zzMJIQd^+R@QmZ=r%X-$p2w09to9aIYI?-SF!Rm0&c<);|4`Hx$(ImF+*s_NAEc$}4|z;xsDnFkVHC+SQpn1bYxn>B=-|Oe-yDcIbbLmp$1Et7 z>4&M%jN_RBw*3YUg1^8;_b6h~fN>u<+dO^e7ae9oHIb$gek?Z54!-L{KG@{ovD;%{ z+W#7ihHBXFgVx8apC~Ikp5SXsYs0aXyktFDqOcf2z3|_lDafn|r__h*`ziTNRzI%0 z^sDH!R}Ev1En2-1k96_a1I>f4IJvkITfMZERH7OD$_AyRP6Q)PfP6e$NWQ7`F$jbK zhhi_~x+Bw&VZ>h^MmA$qb#%BAmhKlTDPCf3LXPq+kv+wEv8`!&_pou{OpoFFK*?pA=c%OoKKeq zTW?<3KKXD}8NB;kqT4R$ z&h6*4(>IrIbuXgdn!L4=-?OE|d2K86@v85))uFBTB_1}v!XMwJJ3T8uiOjem)ckQK zw};>L9*v{p$zD=Mb@!6-UlUzPD!!@+i&24x2i{{1hoK{phI!uVvdqoOsvjS=nNQx` zI`ElvFS`D#!jgQwWO#Xa)l?+0_@I*p?*H$E>3}FSWA!jwTmZtAxG*JYWTZAyjFKJU ziw|C7c$^hEgMjxC=x38@BP=1QMYi!LlDEgxUoUJdPBk^2HX=V~L+eeR;u2}T&PD<# z%sd{Zbz-kb#OI&>wgC^UYMf915=vtX9bJAatbFyUUrSS7EYqE&F7_uXF zIfr*^mJ5g}1(XEo=?RsP8K5L1HE{fOae3RtK<}|$QvjMl9#WR3W22)c$SH}Zu4RP8(rLYPIV+$v$UzsMp{BscX=-7skZYGyCrAmu4SG^sT;;u%=arh zo>$s;a^j9RyZxWMD{9}|sh`R?x{1kIdM(Hwa!laeO-;pYK9baG`DefXBLed34a0@~ zgo#+ePWPwZQ!>gYgfgO}ep_E^)+r|kc6+Bp%8m7yQNb031CK9t#oii!Kaaig{^!-R zDX`+PbvTzXS17V^`q_sse{ncdqsda`?q)rC*_MLqWBE#6|_zpI)3?iCSFxp2uA3%^UBv(t!u+sxmtFC4zh)sQ~)mk%~GK7?-CviW6R8HD@r z4BY?y6n(X+Yc8`{Ya`yd2s)8?ea%1NH|3AmG+fR1J=|ZqVOXrLtu6lo@cw7d>Nt9` z#SY3L)05-@ox}&00CkQ4=pzd&qRTO0fdms$m!I(p_3v-hDkMZPT^2C(_r&Z{td><` z@=Y0PeuSdWd!J)ZF!ykPmg|BG!H*vPRb+hgcWUJ>Gk#;p1ejc6PIFo!Y{#Nf1-BzS zAp_Igx#MrhL7KgotwMVk{&Ypp{&GXuaGP~{2*yco%>tjATda<*=_!`VQgdmVh-)bj zUF5=1594DkZA6hW_4&^)6LFA+a5^$eLJLkYuY?4}#8xz&`yuGsA0a8Ls4R^-h?Rsy12P$5JqvaLOkY`#xBMJMG&+vs{eN(N@f#p8%b0db+y$0=nu}# zn$~CruV5Hs81XnK@)*r%A9XiD8N#gp#N3&`!jdY-e&9MJ3C4#IJS8K0iQ@Q^;=DkG z;FXy!1w+iEc4>mqq;b!(B-`H?_qSimQ*Wxroyo-`4)=>>&u2bp=XkwmkeuS*%}z6k z+5C}fA*4G^7Q-+#;ksAb9Mh9LwlNw_dQMz(xc7chdrkDf&Awchp=MlBpKgrY@5T8suD1Mkrt}ndy zH%cgKIpX8e(_QA@yrWDI_g&b7SOh;V8Jj_sG0)Qs`>ib&K@MG&wx^WtJ+efm1n&43HIHa`s7A8$as67LvkZ=NB;yvu2CR zk#JCvU|+ndt@-x9iCYP_R7X3d^Fpv6Ga)v7NY9wl!E4!!saf3+1;T(0NYfjV0Na4o zJX0pr!o7%z*M~|s44OpJPAKHNh9U}TTL#0sRWkWZm;s7vW1xYoYzH ztCA{#?EGy|J0Nq}_hbq%O(Wt?R-y6>u#W}lb^;uX-OR^zA#-FZ%F@sAxai(&JHk{% zDNrsdfCL22KJ(J0i6T8>bt0tl7m;?hnT`GanV{D;wITl*F1e;ac2KrB1Y{Z4>Px|< zQklFtj+L7F=Ipl^BV4KETZKn-eeU(c+p0{}KE_MVCjreV@VktgB z{C79vA>;;~{1vwgxVMo;TBc?#3R<&QvVFk)CJQ3j2b}1!@}?UDUliu`2Jv3bOomN+(Uz-;E12z2vVdsV@J)KIS1$lsCE zg^S@B7(;?@xyOw!VVOF3HjZD&${Q_i`=2+Z48i#yoU>>lhZA+DW^JOGlD;hLm4tmy zwrINxTXVtysxN4(EM_veFfWND4RNH}?(XzoUrkZR#X6bmLQ^%yW8TSfshW$+QxAg6 zm!WolewLSPiTSB}v{(?6!cEkkf|NGq7tnko5I?(sZN*E~|?G5e! zkPP0fh8cpMX8>)2n!Q=@?{WWoASCR+ui0e^^S!wc2WHRCZM$ioWf6tOpSaD$AcruyVjn2d&1*L{?V0}_72wxF&^U;Hr zY1G4GZ}CSWn*SKQtVz-)66cRg_WqtTMX=!MI(n|}_z39dYi_Fwg!iWyt}pyjtWGb< z<2B_Al==ggW7JnrAyEJaQFg*v7{fiFyy%88ySIS^*g*t>n{LVvee3J`L%4@BnZu&m z70t`4ml>kzHxHT4hiLaeBR4mIc^GB7 z9n85Fs#Q017i6N1km}IJM|CuU4kt!8UO_{nmo{HlMj4*PFT7}RaywjDy%KpCB!*}E zw%ijO!i7#u>yOQh`caO0LO>2z|eZ?KO?d6GwcndJ_N55UTTC zoSLtfC7$saw6Km<-K36nUeZsj=5)wwl$ELVAczr7RhUET!gr>Nxz3~uedtRUcaxaY z5^_CRy*}r1J6U5FRck2K740}S&B8%lE}#G^f!9okkjF4MZJ-2L7C4P%?lzR~)?Va6 zk?MHZPEOVDi&D=Wld{H3f4QEcrCq*9%l_4!ZgL+H+M7rHYZ4=*6U_LB{lX5L z6jIq-P*9VpL5mWdKlpbXf3Whq|KMz!@3!WrkxMd{TjM7muN(cTX^(vh8fUY@c1yed z$^G)|>|XoD=KhJ<4}TWe6-U=Q?c?-YyZwG_D4_b&ey0<zGp%xupOMsnqa7cp4OaK4$yGa>Fvh`?*Qbx4N4kRm=NhWi~PCO6_-JDwy0b)WX@OAX&x;4f<+J`n|Q>uav~Z*pvyxz^uB zk{%x|wPD<|#z|=~Et~E==vuZnd0o!ipOz=@In1pR(u?gG7+jF_W`$tbILdZDR+om0 zVZf-JeM_9*l6h=`dUhMh1l$)?ypXcTo2 zzMeZWTI=}GHU*t3FQ-BAe~ud#W@2$KpwtaJWz$z|1pW$iz)^x zV)Whi`ZGTLQyFXu0f-6lNRE~h|zDP@ABzH#Y;J^tU8Lh=}#^UckbS} zcq{sT+JMA6q&!YP9P-0J1Z;cW^=xRR;5V;V3>sebY9H=>prQ6Ow6}*?A%@RD z?waychZ$v{Ux7B7`@dDB2lf0=YG_`2K=4a0k;*x=F!TPx{GMXmfAW|jv^>&*VGsx+ zBa9evHaNKJ5bEP-KfBqH1qW5o4_R#yRE0+0b>20wp&@rDrusEO;Jw4YS(8rKM zWc&+ief4#3Vbx)9F1Ty>An2#m6ijjJ>ur`FHVfsOitergaoIqWiRucJ14NP(zHOWQ zrqWdEg=8~Erl?!_Y^|e-ySg!#H3=67y1cMX$WTC+ap{2#IT_kHU@UFWHI)5Eu<+B< zZFpuliqT$0+LzaqWgf*fA;x)B049d*^DNF>zu+(EmMPs&p{utE2D0Z z=`K4ZJC?N>Jk-PFaY6xU2}nrf%0XE`-hm znAZ%uPRP)#I`nddzv+5@Eg}9x9i=xU-R>n_NOJvA$wIihWM^Z9Z^ z#rPu!*Ww3{1Lf{(Zf`j|1L-EiCQt1wy)JYEg$3TvJ%+2hUGopSsenX6@I zl-wyBxpU{KtG4H~VfAN~%gu0Elu-BWtf8p{BVA`y6R$@!L#h^;Z~?C)e&3$(L$D=u z^Gf|N=8XYWA>W2hg4W94Xg<1YGkUM>Q7cKo1k$hE42ebzKCfBor9;nX?xU+jZ|l-( zp3!dT2``Ore{x%Y&uY)udmlbg7PPLz^;eA6L-kN#VMGV>-*Kb+EZ60yDGo2JejBZV zglDcHH4O0rbU3c!g{RU^6r(ivIw>QcWKbHeY0g`sGgJQJ$ZXl<4zmMkBLyEjj4znh zxaW|N5!Y3yYgC}8{A^S+jXBMp>=g!9n?E0oA78IlXjE;3HMTwCli1+AX()^cM%OO8 zJ^P58oj0wjH__Wjt>vgofO9oYhoI!!xBKb3(a+@MrYUVVAHPE;9pkZKl~*XBcmK)O zF$6m^@DmX%ft1TX5#4gX>umy7)}VYr`;;%UfhKjnPdgDf1rz)V@uzr8?6iP!Lor~3 zJeT1iG`pg-jQFfnyhk6FX~5G>^!=-0&_ayC&bvB(O?;KG*y6Fbr}#v}6?*z@NJ?rm z;537681i-`#|l_OUc%7!3le2``+i|`&;em*iYr?bENlt245o4#FDC*8rOP?c3VWti zpXv=N$CA*n zCM=PanZ@nR&qUmN8}!js^``oLVydK{L}&B?rdZ{tA7N~igCH0o zI}a;MEt@0ITbTiT&Q|aHnVs#QKYH}sNvlA`tny{yBRbadprP8Vf(&=lm)BJ%UAt;@{4s~U^(IgsmpkKz|2p@;;g zR6)mriUY^jCbaL0u;s5SIz5%d3mHmFOCtuDw^N0kpR6kSi3zzLsQQLp?G{GIXA<8- z6&NJEfAul_R34zW`uc-Tk8>Zdx9Sr8`4d29sw_&cZjn{(*V2cK9U5D-u5(kLjgI=|f&yp+Gu z=@CdfINS3Nd%Y?Al{C&oEMJlP7uI@d%~v~CmKgiu3xA=A07>}x<;T>9K!Rc4sq!*V zW^B5@b8dBFqR@*Ky`9Yqu=vE3YMR*m^}y7=Q5r8zs(~iW>=`~%Z-@L#7=+u^Wsn~x z^l)Ct%Xv&!#z#++Vq&Uqh3;`mp6TcYPt+7lGAha%-q zi6o3~`B!YIIATHF0Lu8V*_qtwLEcfTRmgklhB{i-%Z7i7(^JAo+u%+u+V+Zf-KQN>$O|7Jh+r= z;ai9;6*6J)bbv8rMg}nBghk1)C`;@2HH5le0Wb1I`|!9$Cij>L++R?^wYV$f7tC7M z--^A=i*Hjw0=}Tz)wbe?4s``^4np?&afstCDPTMI>jO~2=n;3iMZ`o1OsrR-)3PR> z+%|dWSR7UB7U13+MJM`bbz~~@-B^JK0;>&={)m3qc$;1cf^CXxs$2BN#o*N|Bx{1g zn~L3Ht-`0zgKDIGR?@IeZEbDCPmUg#$;ru)_l6yQ0>b)u!tG5mqc-wblrpmZDrrKo z*K(q(lGiL}WEcAGR{f|I+H<;jQdOChAPs-9z}@g)$5xNX!xU$L!&r2;gN)|O+2?C) z2$5Lr`xKJV{?jY&c>iSBQK%)l>T_XP&h&Y_R`u(P@Q;P|?<-iNM*cn>XT4VOwT&Aj zo_vWs7-kluR+M+qqFnx6U2=#bJ{w?~E^a_>$%btEo@CYkaaA!cvK3>d&hGr-{$zWi z?x=B^(+mD6{HaC)_+73#b9$r9D%OoD@w&gS4TDH10-RHUmO7+6#=k3c%i+E!I_+gW z+|;^^XISU|wDPi^rH~B@zML&?X+C*%6j_J&{!S6fxnkN_L#1vLk7&S)EAlmCT z8C}1hqGQsV8s*h2P7>RG`}_K{AKR-KIa>vCIC^&onIkqlE;^$ zwIPO_7mi>m$WY689$3d>AE8ab_9jY_n&N|8W# z7Pn;1mFuTUpa}$?D)YWeK0*%99}0YV7Y((lqO12N9$qcL@XW5hs~7Y|-wbP0*0l=d zExwC0y4xL5B$OQ7k@jOKYE=`g7J+}_eF~j z?RO4)T9?atg$KFC^9Lq{|I{zrItvdnStVUtxVJt%m~O_T-SOIRY@;H7dURzZqP;Pg zLed@)7Ym%p?Nj4db#(ngFbTM_?u(=m<<&uSYH&Q?r)IHo`=6IeB(>tAlNWIUQkyre zB=C`_@5X-OA=Hdo_^)0&0nYePCY&|@z*wBhX4hT9NDrvl1YLN9a4z749(@-ql+$+Mi_v!*^ zHEh`7jlP}l;~w>ZA~B$crMeX<6f;kuAMg?PcruDNOo*^=sH!$mIMr5V*e}K%8Dk43 z8NE$PA|jC&kx!H6+fBP^IuSR4Rm#s_rs%lz7wqgH(YPawO}$Y@fx>g8K`eDJO&qJL zL)`Pilm#*TmK~b7L%kAn zW~15PdNg#x^8ky3DKHjmXle$O7iXTl?oMS;_w&X3R^9B%8Y_s3*-E=00G`reVEz`yFVDVz+SjvJP*xvvcETy)!9~pRlfwU>VQEu|yKzF1JQi#bxcN!m^`r|^fnl_} z?T!ftt>nTdG(_1Y?0*YO6v9IpZ~F@<`fZkiRZ#YH zMs2lxP)d5NhK)2T_ov?s?bU>+tQ|rjp58^JURa&_-PmnG+Jvu<*WFHOg~AV)Ugx?b zv=&XMEbCqPv{zKx>0vl=UwES>r031dW#9=5HDAKue`wlvtjJ$o1v(Uc1Ps9vLpyy& zp{9;phObv1adB1kpfG)-vqc)}b7oXC>srZYoHqvF1gMs;$NkCmu1@E0d7NK5rxL-I z^1`YnN6YTsJeD)~WjfON@6&)qlFD1P;{0B~lu_$T z%STCN9Qoad*0)JA(YRIyZyKoPd34*~y<&lCoKMy|u+Fqy-zsfr3w`DFd#e`4b>$H4 z#_G|G6_%8YRzi7#{JQxu`ldttsTK>R2?>?yCz5@*vEBe^K8y8CAw{X^^j255cHnya z{7<~L+8-?+OPr6xfJc%Qh^Q5VibUC}Pb{gv^ZIxTbsfA{?HPK?gmt)SRL@!_{MzmC zRuFDkgpm*kyzC3Rl}ggjpoTxR!oAaFoKP%2zzNgx2fZNEv43fD1{0574!)x2=dZ3B zl;a?OM@)S1m>c|fMA#i-#cCE#dy=#vCeSJOw=khb!DwWMQf>cd&R1WIZcQWgaoqY% z`n2a>_Q{-JmiXIfpw9I$U)1$je#*Bux?hq6$2?QAPI>BfnOVATC!@jdx%ApWU@|)~ zJSOa|1^!BwW3A2PO?y~S;`4G!s;jOV$YEk2aKne?WqY^wlbYb;-!4!W21_k5eEG>% zud-==9nLi>3{YHvh1(QU}K^(3>^$VXR>^4p0`Ty+n9MSqE@?N`J-MG zzGjFwk7*pV=gVI!=CfWO*&m2K)1?m#YY=5qM%l*O%djd++mp%mzv~A0I8RKf(CyBT zC}~N`yR#;|c)@TVo>m^YEd|+)EU%a5Jat(Z9mr0n0u_KlDJp0=W$R^D)&hfX_YF3) zbA@WN>CID|uv=WGh!|p0JXsS)+~oLp zBLP^Jgpdch54bf_yuwA`!Jb04L7ob%i|^t`agcK;11JXz0%!*g09{}U7y%C64nZrA zNPRp2j5!RHqT{Ie6sbLFTnT{MO2HwE6$El_yRR7E{mkX?AC?_`^)Q@`4Q*Ay5uuUv z6(be)Tind_i=Gl|0XbgnPpweEgw5K~gb911bT61*#vD4w@o3u&=f;Tm;mM1Dzh6Z{NtiyHOBn+Uy{bgutib-j7qo^1+Ci(ir!O zv_8+|E;9OzOI|;IrhysTExg0B$%qF(&WVj2w;fe~GZOa&c)?39A_-m=7*YW=pw zHq9{mwFViT#aG9c`pw)JiGVBwtAr|p-!1P$y!DB+K8JL$gxm$yyCu)jXhOZ~=PUxl zjGJ&zctGBp9gqftK}h%uD`nI5zs(x6Z~tV`zu%kq-e5HK@IVZQ;mN)ocXZ@=gHDc^ zQJKD4Zl>fTx8@?si=i6ePWOq5CnoCtbAg|q6C6}LY%mbO?b?}Vxg&1cT5dt@5F?(c z?;kcZl;0?XrsX}N8etB=Xd5YYl8Ob)H=w@0g+2b$&J^IiHw}iRJ)bu0I17U?sPB|! z?!=Klh}9x0hraNEbyj25WhJ8B8mE}_lSUVW;lgW`@^n>VT&wy5lKUUg%2U0DNiLr4 zmIiHxjTT(qY3=@^Wc*wO4;VufaR`v8>SXzVQ7#8h%eOP@dz_*fC@2 z#afE#Bt8Ni^Gpse7+ThMy`YD*1Ddi~0Om(w|kpP35J5n(Q;|JdYYX*pZ=r5E$* z5}R)0bR*Ck^clwpV^50I$s>eNIji(3_j9l2*<2Xc&F~x+a^|aV+$DrAwsLY%NW!>Waf!-2m1`cT;Oq{_c4A@lVNzt=-;GI5DM3n z%fzH|*@uz*5xr^*q>d$tE7&gdg-4t$;Gn#_@CQ0%`RV|4(rL=ndy^^tVN-N1E1eJo zUg#C-{nvhp2#P6CLLx4>IE)8xR+&_u(P=YXJbp(4FLn&LAAIKjn^+#1M+rKi2q%VL zsUuCdzIzC-VF7iGm{e!_#<(O9B5HyI%9oVx*UvNqRe$q_g})zerH$elS;B9PY73MK za|@$pk)s-la!`9WBnIXodKW-JWS1-OKGa1c>}ePHCdG8F$Ne)iLUwH_-&|!~gK$AL z@b}gTLgn9+5Ch6lWm()qxVQ#b7Rr(#w(OX%(FI^gTz4sKrq8S?Pnn73QcxA309@ji zZn70ezN3Gw={@MpdMOnsEA0U6w%ij-CP)f8&RHO*RQ_t$Jnjr729a#g9YJ}v4uxcAovu zO@Ou%$#GUBedAFm3kb|6?}J3-;DZD}L$XMPBm7K$TOAh<+E}^;8Zp=ob-&FALY~BW zP?7LjlLx5kNJQ79So|FuRw9lkmUq5n?t|1JxJLVJLSi#sE13pn5l01@Z0U{EY#mfb zd;M%46~%bw{-7m{g)lNQeUt--<5p()XL`s6AQXx-f^Pg?T`+>cii}ItPV`6`C)y>3 zIOQxD3#Re`P_!$){2guW{4%*{@WgjiO0-aN((6~u7Ur{RSy_w`Dr_H&L+uw|FA7I9 zUe6SU+$f4pkxV0Q;G>N7ZJe81i!zMjjj7JExd>#~EqNQ$9ZVbym-dqv%}O7ggd=`2 ztb`l~SnXLlIz1bbkAXe<`5_HFoUQOAqod)>Au68fHJmxOm6jzYN9e_%)cYgO{SW!x zT53O)h2dEyCnfg=0rzn3Ghde?w=6G(N8#08*QAMzhuw0fc2>eNJL=HZHFPmuCwML| zBiM(_^bC!Cp`#TptE_{_%1Rv1sKp}hk+=$boNv8=v#)-pdPoe)$RG*iNm*Br-{uofhVdj95;vY{A$1+{}qaS?muHr7t z7&!Vc$u$2}x#|+>mDq5f;e!XtzJ$^rf40OzhKeEdYKl#}3^&R+3sqzT5)UDb<|(WC zXk)w`5-^72L{WNJAVah{3eMSL!SY`Gj^X+Q_!V@>$^67xyp=5+8#TO}ZuON>oCUZS zYS{KgxTbB9X~*G#Av^{Ug>k9SJIY~KHrR{XA==c&&j=a46Wn0}My7yU?q?_c*}^!) z+(Jw5Qg%H~DSq@pl%1Ae_cUjmtqMHZL%z;i2qykgJjvWeLVM?w7xXumORF&F3-*ou zD0CR}JoN(i3RuF@mnOqsSCS}pmfeH1bNjy}gN;09g!*R`r^*hY7}A~>C4caWlRg6E zo`QqCe(Dy_NN8A}sS7hBiuzG;d+W?Jim`Gi>cyEf2F-ZqpR7BrM*XboGDc2J2!olk zIXnD8mP00lh{OFFHKD%C=`w{w=(EuCqfp%q&f~skr5*>(h8KVKMXh2#+h#T_svmwL zqR*!W7RS*`m1pvQI}OzVRdap0ipU0Xupz^Ni*3VIeojnT6WE>)TcK7`z*4 z7eH?W=IDm>WD-nbqs-8ME)GqN@Y{X}F-cQCt-G84!byiLBbkw^?$Lt${9miyFWjpV9JJm;r^bKvH$Kqd56=*8bv~zcDOvX14nJ&_p+G&o zgeWA8*F&?uS$RPAKnw0NdQ1SJqa{)*HZG4M3kT^Q76vu-j~$8n1=0Y~ywp<|LNQ&( z+{l1gATs3kz&41or?tW}ju>7*6qbzw{8h4im2BK(XKipe5&8(8M5>HCm;m1y0Qa{d4;3)W4Z=MDO8}R{q1`J?ayoD%a*axZAMF82i@aNmf z#QX6OHnsGe!KGgHEASDY1Q1;+Fm~`~I$P{W0g- z=Q?}#KC#x0wbp$vORk5SLep(`7?k8;tPnJt@hAWL>@I#BW}RL+0d+N4DT0J+;>#IlsDdjh_=Imd{|2TvAl zBC!d<>x6&5V!M*TxvU-3m7z#qgfoCFg)9M$zOVH1YWI9?P1n(wB*ELjR_MDL_UMlG zj_^@Wnr%J>kw|Sc?6u-y2sscY$4-ay`#>S;1tGXL-@E|Q(cR71L6>xx_YIPlt$I0K zzNC`FXF_6=l_fawb7admV{69m-5Hh!xYfQa9ql9YtZfajDr#n#q>ET#ec#o%-4Bl} zf&70p8_E*<-4=1#8}9O^i4SrWTFB35xVr1=OAQ15tF>dup2 zqzeKZcapBDh?RxmBk@q_832_T!Ua$o=F{?S|B{f& zKtS6h{isj&1%w@OPe3W(NKqiW@wA%-k`wxTluTtYX0Y;%UI~Rz9Sj>LzZ^E24zO1` zlf|(=+|^|U(HY2^0p@aU z=i7ektf&7ZTYrr19eNn6v^FWfg!`wuJc+9S;IBkOQGovn_o5f)-+)=8q4#HOxDh27 zWwLbL$7ZkLF5!AwD>6X-YGL36On{I9{YzfTO+fH)j|9&Ft~dm-5h90p$iXwFyd1#O z?SW>Q(`CmGx1>ue>nu9~u#6W{k2lF9?^F9*lF!!0pxwH+naBdb=p=}Vc3*5o@D&Gk ziisZ&fl8j?TOl%^$b%GELVY!X-OaHE*|5KT0T|mKVK&G^-E_3~3z#=V@G3+k&P^Gy z<=udC3waKwGd-#;IW?HIWlmy8J~a<`=ymjP|zDl(fqKVD=C!SqG zhknYpaesDBjNo;2LyCmBDLUu+NvejTv$3eD1OOT(G=2e){L7lz^4s`E4olgkFlDMq z^=G6Be3tvM&o)zy{jg|kdH11YYOX$uGTRgjvFJYR>|0~$RKm6Qvc*9^NogeEzNX#M z!$3u>>g;Ugg3Fo5^x52zTwtcS$81I=guVUZcIS-xmCyI)iBRI?jOnxp7{y22%W>~d zhd(T*kJy}}=qJ}hzbm|MdYApMl$C_asqx|R^EVLyJ3qv9AwjV9oTC`rp%x#7@A(** zpvW;deP=z8M&99&BjT0icDH-3!@Tgm{dErG`kp@s40)~$zwH4zpA_{j>Kl8_?L;cw z-)z{)?L>zf0}#Mqy=Z`TD#E3+6cr8_tO5=IB!Qs_MedM9usDM11HLy^?ugf^6el6% zoScBMj%P)!^EmW=KsvW2Ku8p)`_CE9*aji*YKt2SbOI0fdCS3_KLw3X&SIsj!8z3` zj1BU`#us$BA}VU?Up@!A%Rk4ZQ+&C}YK046LiSx{WrvF%(SJAI!Ks`$06J~Imt>SU zV!<)RQQte@HRhrL4O|qc$+OK#hF|3J9;+XIIb>XXa7D44>%9J1)^%L)?YLavgko>R zkwc7@^6#W*cX-m_AVD9e7jg&RD(@#UWKax-mqfvfzewxOeg17YQ0WgNKW9?jOO3lv zqRV!LEQC~H^ZY3{Jxvb;=A|vkmmw>jOKk!0`#566Z5-_QSz3J*`{^H={$+#JhAKOU z=?dnlIXA4sd)EVJbawkoC%$`#DMHyR_WJ4bwj+Gs=l%Erab&p&bI}@4eQ9 zq@GTWD$$O}oUga!@b0ZbJcHfz`$;lGkdTZZl@&~J6Vf0NZk)E3&_^dofqDxp$r$CP5~0o&@_!_wqT zHn35X`$?X8R;~@xlFp>#!94hLyeQC-_Ew|aThC%|=gMS$0M6`f9SaYA*yF%@`|EZD1 z?F9Frh!$D*lczLJjm^t%8t-DuyDb&co`;6JIug(;yhO1(J}<4W>?)Tzoc03)WT4{N zZ~~5^hg?2+NZ^}U-*P^ExZjj6t0}E(s}+eY?LTT}@EK12L>mFwWH%~Lz*%i2sA%+$ zN|aG{GmDmm%caF8-ndfC=g=QC8^pOhO!|#WSm%3bx-zF_#A4&4){IPm%YoPYC61fY z8AfijsKdV=7aK3FS!a;fel=HA=_Pn;53KFP=5j<6b+ zz9L?x2T_ww%5>;*Ax5JjU7y|pGL>Ye|nO~M*#gXoqA zA9=NQd-lb?y?6;{ZM!J6!@?k@G>>%_7=dnWt@v%CCujJyLHOS@sRRdYYpJPFTlllo z%M+Gmu5WC7IgFf=-E??^m!*@35T8U@gmL%eD0X0ubz&pD%EkkZtA+&Ll@no20~D+` zfurzMS7lV_{Q%AyI}GmrS`l%Q-mI2tM+iZv1Ld4~$WPv8-`8LC{>0U9J?dUb;KJtI z_)J7t9J%%1O(1sNI;j6C_1hUd1|=gF-6)|RY+~jla00qe0FZ=)ss+aupcR8l_jw&+ z{{~KGKCK4dM`z+_8dyv%^2$vCPC(;R*V_V{v?j%tLpZOSGspDcZ<|C0iy$F{TYwud z6enz}xC-API;OCdf*K~07%FD|Baq=!d!(XB{(uLirczF{&lJ5pj0$rcW~Ke9YQryR z%#a@#x9t_6)9yY|yh%;i7Y)gEbB}&D%G~rIpY6&rMps%Ys$RSQ%+Gh3E^FA?pIp>g zCQGs0YM3xyb;^G@5M6NRJ})T%C5i{i)nD#h!EgX~RWH39*H}!jKX~JE*V9GwQNZ>w&IVf(|B7W&e>ity72Ug{;ho4dRrb08&0f*4S zVH?Ny_;5@~bt#4l>d2>kktIXJ9E5)nMg2TsIa&5X9NqWZ<=SgsF0J%H!l0)PToFQ%Z#QM$eh1jVe?s1#ES#Q79kXF<19=Ok;}dcj zd{(mA`@W_(>RrYRh!F0wNE@*$C-LHko-L~=wy#m#?#1J0l5=F<+->0{Jj3`a%M=7( z_N2Y!y+s_t`M%4z7_+_gO*&$`?}f&0B?UYfXD963ifE!wwT_litzSG#cH58_dH)iJx7CDx0<<>dh@mD@Y0=H_6seXpF|A6j;0 zhVm6ipftLT%wn5MUq9xK9hs@-wP0llSZSOW#oPoVM1*g6FkM|e?U&CmM-Dw(eJZvX zv1?RcZDLRP!Q3*iI^3<(oAShypfrv(8lo@3PT15=71mK5259_12wJlgFQbB*G!3dD z0PpmDC!ckZ({zoX-LH84iuS7F$SET5~y4^krdF^=VtUt-Z&^vzht(m-T zWAU09TZ9#MCkK+}EXi9v1%c~CR1q~&aPzZOSmm$>Ib<$@1?oXiT8FR932$;wj|C9U zWhpFk8){`6>%2Qcind)`3-;2GOP*Bx7QC0N^FEd7-LqL9q12-^n(TnV^;~3&S=n|* zXfm(d_9ine(E^p#Box)^ce!_bi!8i6w+?6v2IuP+25MpVY71B1Gd|F*G}Gw4`oH3% z1i&$F%SK5XN2!X_^1OD^1xJ79sIQ(9b-fy^O+y}BIgCr3K#85E>qYeWPp;a)s!V4H z6w^|(bM`(+UgS%=$6YmM=Elv|kJQmWTVr;_q;~Onc48{vrpU+B4rk<2;!Q@~?DsFL zC1Q0^o`!N-|Jo1Pu5R133{}0T+t4z3Iv%l>@r64n3Cpz`X!gD>99mO|AI`r((nzlUBlCD=xzGA zlti8EyGbQ$^{lx*w6v*bq$v-1f)?C;xNyL7skblWj6uNBsljuO*KOa^p!HPDT!@q= z)Y%{#V7K!RyAyqgY3-SLVabpFq?T{mzu(&>h7t|?Qv(`vSP->%EY zVW?ZVaB|vu?>L;&@&;8q+vd&b{I%Xw=0}QN}2$*?{MV1c! z`)%L`tek~VnfKx!h-H>|^ujwL`Qm_b#QV15;7np)l01|7WFN~lk^0P}$=!g|&KKdn zg)Ndlocr(G&NyM*yZ=$Tg#+NYX2@OO+&hA}ec<@Ffg~`>9tKYdFyAHrg01>rrPOCx zfd4sW$@!jCM*h#)exLvgXh%L79~Fkx+Mm9Nixv}=(bRLm7zF$EJ{$GUP!73U*2K0d z@DpEoF3kI zIAVGpE`hHs0oEgkKm3L8dKdPI#R9{S)z4DwJ|{fBg6mz01lvh1aLV?6?{G(goiEX-apWH z#wUQk3&DksW#nFip{wi@INdLSuIW!I0ohsOo(8W}>Or9Z@PCyF;Mp($eb`f?r?S{0 z0W~mTqPvIM>DJkWiv-smq9+{pcWz^lGbK<5f zEKL2Ada~oirDQVMV5p+egBvBL|NdHXqjQP@1abRtSb39L`p&tp^`<|*F;I=wZL#X3 zj`MwBpl&0Zmq=jhhO9jHdH@03HY89Fh{DYwirdQ77%eI+oCjFBxEyUed6>PA^~y5* zt^1>&;ZyZ&P?r7B&*#xwhC&V!f3OJQcxC5RZ}0INopmQJl;_GDvFd)EFto;zxcH$f zHsBkX{O&82|5|_sTK#Oi$A|h|2X`iZ!=JL=P33QNy+(OCXPGT&w^f`SNv$)s$EY-# zQbu`c8Pfb_^o9IHc((Qr4SQtW|OMhcKFMhO4&ySZ&89t z1Vr_P&#S+acWrE`G2|(p+9{8IfkS~6r9b;ZIc;}p96A<`)Yo{>7#QI4^1%9XH!uWyOFT0O^kP^L{ANA&M7Y{)vGY6qMw?2_Vpa~e~$nP z5PKgIc$5zV9H|Ej{R3F}>vO>$)l&E&2JtdLJD%y=JiwRTNvH{ z>i`B1y0fFAViV)rO--a&l@!LpGZm7w>)3evPvr7$vHo~9Mf5hhk1cIEkF6WKLg6i;s$c9&L z$Y++kb{v+v#%4WLXlQ8W0SXH`j(O+K-5Dmz_IT%3si&v4w1)$ z7LNi^!^4^o%OFc2w!1FVpg08qp35PgzIBm+TH^N-XO=V1^s>trOnmo5^mZ`f6KNKe z=TA$}85t?kcnS&%-3?pccO-2Fo}xV50FOqZz`ooseebn$$uhNgY9m4&uvw4JYmWNi&#-3dfFMe*>x6UBn$@At!`rcDe z+*=-~n-@GC7cCE^Ua%r1w0}KG&{Hb1$WT!VJwhTti$^i%!A(yWiHMrmpln1e1Vo?N zikOH= zzw+#GA>FYF36!DaiG{hj(B+&h+viV(goIw1nm%i6Y^2xX6a7EgOUFM0~CMmwVtkgt3nJV%><4=q6c!^z&4?`Qt%Eld8Uv+g=!Y4Ccxzb0SuupDf2lp zGCH-lGmO|8h21_FQ)2Dg9Q$hh=exEs>5CYqC%4zuYH+_b6f0$0Eg{Qs5kcLzWL|BFMb z`i}RsuEg9Q%pW-fU&4Q4+{i+3cJ7GZ}Vy$n#yl6^)cJ3b^iJE zL~i1`Yf~-sdhQX`9K!cU^!CocmfVjOYP>J1BxB;UD=+a{rnfWD4d`>H0q#)RkPu7h zv73K6T8;tF(}a1#g#2#zZtH4l9$5J=xlK#t&&}2{g|N7QkRSh7gNDRS0&8l?_!|2S}mtbANi{>INd;|6YEwFqGd>iUM0h>3t;hs#$2s{G#ffJALNnWYB9Rux!x(g@=vpU6 z{{P-IJ}1_B7b*%~aK%$DWDQwl2&IM}0$f0-Y{gPh15qO(T3{$o85CdU?!pqo`Gqzg zHJl~!t-M^*dnjE{sV9b+tL5V3?a74J05&X1(@?qe6H0NPi@#98Gm)xZRSvf6f4x_K zyd2Kjf3h`Uy)#+%$oL#}cXxd-)H?IiCXxkQajIWq8-L`Pj!j6(NxtZ(>wK-qx?Aac z`u zrF+rU_~@$iaLIm@3V$KadG_G~l|;HZ|3_NK zZv)L2t?wQ^n=<#qy^gzAFM-wsM)U-47*#M66lEvHi|t|`dtqtl)HPGTTI;arD#^sT zUYX%{6kNMC-{YG^Ijp+riB_7T!cgjWnKU#!aQLxwFcc|YO!wy<7F?A0)T4Aqvn|B4| z{mJO~;QK8Y&BoA1lM_(qzB@hE(tb8;Z+*1# zd%W4p*>Vn_#T)K>vI#57_WfaHZ5`iEp`$6W_q=f}L2d19&N+3m%!ukm^AE@bH!dgm z+Z$6K#g+r9P!4M1V0u4vrdtf`HTK5!9lo(4eFcDvT)#>e)l>(M4KO6qMvAII3?`?; zX)h0`Fs8UY;jDpab;55e+V7f37@jNFe`VuND_Xi%#Y`OIN#US!+>ms=rSBeP`rn%J ztyyMcCXJlm3I=2^3i{k&6>r|sPi94+=l1AE_;7CQ;8%xVI~r%5eP7z`9lm3Xw`T_s zA9Z!Q^LJHs?vtn9FXcHST>DNyw~X7vOGx;0ZxOzp8EJ~6f$7UW&YUEtg{D5;Hzwb@ zWrWFxM?(2oqd{ih^@C>?@t`RBnvXoO@fgel2BXKl--;X``#UKQyU{=-+Yt@dSimY&{ad=vuelS7JrH6urGll5eZJ=uHr;gSC9T;hXT?k0`&QBiF z6lZ#`sJLFPr}`}wFIdl>q?=~4J>hvG*iJenA_pk`UOMQ`_Ur!y#(mlcVFe znoPIJ#*&d!468co!MN=HT7d{k91X$--uohX%HtfppFq$_I-1MoUi-4!>3##Lyy2l6 zQe1PeT8PZWpsJ0s(D=I~fa{_Ux^K?8y{ubo&(Xo>@E86BEmW4`#o-#Cr(vA~eYWs4 z#dwl5z(w_%J&?jFd+eJUtc>8(S=S z!wY8HCCDqa04)lKR)Mk_GJA38)mUv>__Lw!>~Qo(CiJG0>qhwrp)N4XzcEi=fs}0} z-5UfR5q#Z)x>1nQi_G`xguA*d5kv)Coh7uT^%DS*r7WdYthLoXf&6#ms#GVTj_n z;W?EGIon@p`zK2CAxUTx#pBbTQxbo#45Y*9x>6251dL_d zY#+UA0c^!#Exi&4Cn8h^+$s$WwQs`O|J0W@h-oSKY|##l zKI9K%8Sitxev>cVbAd7nnJCWQ>c86bG9@ny15F+${v@(~MRO2o)ziY3ex^b37Efn` zrayEhOu$Vx-U^+h?DJ&n+~k0yU0+*U?}@~U&?{XEa=R(Yk#g%tIo{T_7uqI`@=pg! zkgGF1g-5rxuYeqsPxyj96CV>xTG*C|;e5esmZt&=OuWc;tj9Io4`T2osD}WGwe8>hvD&A~!k$Kdd{X*z zIE15+`RGAs3i9D}q-ayZJkkz3m}GLMwF2pX*!WheGL2CF{L8?5MX)EIJ!R|`eX=)~ zda|YwI21@M@bDH^apyrptL@N8y0?T3XJ2i=~IxB7XtIIGVlbG>1ZsB@S} z*h4Dg#7E*IDA+@csG^y~D7Bs_JnmKn;}RGi^U3|y5Lw_5S@IWLA=$%gRG*`Jbvt8| z^RS#kJe-VKb&(+Q#bDFvq|thckrTg9;Mt7L)5mF^?I+`EM=VeoWvf;t=ID-GxzWFG z%y>p*?j_Hme<+@5G!Z{*K=7-WOZy}b&HC_7tVl{T+MN;CKY)!7zp{CVc zA!}NjUne0aU*I20oUuCb`XY8EP(0K7|Nd9vgi)A|gW|p4+7T(q zYBdj%TpR(`h>Lc48fZ{Y$rCQRCaQD-lRp~==Pmp{cGnOrGZwJRO3U2tO74tp^LCI^x; z6{+DyuGa0%uIq=r$7`&n-hR9-f4`buv}3I1OXXH!lsvQNq2yrlRtp)0h!B*gLA__| zniYC{GL(vQy`@%4uS}mu=aE)2{e%sJdXBJsq2{IBWSK#%Xuc_@iZ3#h77pRGsIn+7 zD@ihGUakIG$0S2uTwD@YHp6ID|2o3Q=OBc)6FFdyE?1ptv5tQI+tNSb%Pdi%Sy`&q zbG>di@9gr?4Xws(ArN7=9%)>>hUVR-^pRvFhA2kzSQ+(LzRt{hIV{dxRjx|>OVlz_B(r8_fVVyBF_3WROb_DkO}|<9cKX3MWc*btK9nOm zfHmMmyUvr%%zW2-!DDI}2udfo4bTUY1Myr)`J=+Yrh1Tx6CVWt_3iWv63U#5*`B}yN-*s)9P&@l z^g$`xhSZ*%1byel=GWLqK|P<$0Kp%6K8AVbmu@>M&dIuC(l6nyc#j1YgjqNsGqU6m z1-up5{OAb5NAn(Hcs=-QyEYktKee7ldT%W2h)oN9rS52RC~UZndh99MUP_c-syPK*`Y$^*%nt#=+tdwqc0&AgI!S+0>GJdNX;;|tRh zI4GtiV<9^sUHmzo$&}WUCCvHa77y_LgyS6k6k5(iQ|OIOkaj6CSMhMm?*fSJR--|(=f9`j#18vabYp)l}fv5GSb{g+9hM<-7w`$CBN==vE zR{t3PNGuW*53U3;07C`jGpqXP#z~I_C%_P-qu!wW3ptS6Bo4EXPV@*JppE=Dv_UIi!}pyNw76nS_)) zMVQMFT;HBA8~ehP#RiiV*e2jw&;4+ZHap;(yB{lH>6+`z!(a`CUh zh?Cyp4%XXO!q0ys)OPMb`t&{3FG9uc@3Jn+@aLb|MWF)N4LyZ;02$p!ml*86u!1Ze zy%j_|&gTW5Y%UQ5NWVRayxvrZ4=p9{BzegyZF4&bnR6Lv=6;%gg80GaKnm37vVzO?FTR?d8xT^fa5bt*}H zFPc@FgQ>)^qxH2(#Xb&JiUO63O#e`TaEbA@f8c03f~d$sCG=*ROyE%A8m2d@G8^3H#u894 z9M?P;^nXU1B;a~70bPLRYLGXCJA<G> z-g~7lmi>h3tkvmF`1Q!-cG__>rS_}yA6KW4p-pCw`Q$cUTXushA5p6}WJ-NbW^R&-uaqwoG0EVp7->+X4rUbl*-Jf za`Wbp=QTEoCRf*gB3;ekK{IV&n46)pZHc(bG_?Ahh4p~qTj-|84DO^heh==XR$B=! z!9RY07s=B%`$a!+EpU*$1~r4jPUGWEw{5Yf{tXo-=W`N!W4+lm8jQr5;2E4>|Ey_@ zeC)z-X1=}1q%8Y~zWkP)!Va2cRxfhc?yT!@Tv}8TV-tIvagCbiv`4^Ol3ZG9Kq4C1 z@_xIk=|6Arul?Dz@lGF;PbC`}0Hz~{&{JIN@93vh}ZFo;~vWJHBhe1WDrZ2<4cQg+Js)Gu`BmE{QE@Q&`Df zp46LV1{wm^p4oZ200Q;OZZhxsXPD{F2h)VRhTH#1c32=GdP9~59d*5;4gF0Xdo-o8 zJ<-h0UzZrEO67ZeSx$$Wg|8>X>b@p?&ud{YLO76ul`C)b8*@9wZBF@m80k3wNs+KX)BT zNG@S2@+5c0D^Zir=3*5I^q~BNFi27w1E`0LCO+2{m|C;KWUlipQ(r9Bj}q~CyXO?~ z{txMB67>NDiui!2Yv^4Ggquk>U;(Z48|;DKQzF@{i0D)RZdL_|NjCUO8ksRUfQ|}! zRTa?!WOXUVnE~2imrgw{a84;JO4R6Qh$_U%V-hY=*6MsP=a3uExC&5v*>KnB00uPC!`uXZXd z)0OVGl%80D%fC0oNas31NKeSEN0s7q2Db*K2A?n~ov{@(;DxXa3UOwB04Wd#l;0Ib zZ{mm(65<)KiM{l4Pg~t&JPnonr9rDewAc9~&IbO7pEmyh@|;PDHC-OY04y0JZCtd7 zatl}lapbh?r2M9~q$1|s2s$AQQ0(0p&N#Sge`rGt84hY}ga{~1wg*FmO0tZ#wKYA@ zQ>oihF}KoZADf3&L2c9RtFP{|>PPOc>kh8d$_5p$Sj(SG@-xSlubTF&zDqVU4W666 z-L>gIA+`P{p>&IKnDW$<5UhMdpw;oPgbm+rK+Z8v2&(ArMqo` zJ6HR%LSISshac-|L3PZ1txP`~i0byWL|diuS0LpCwLZX0U3lS#ECaIl88zEp|47jIZs9 z;77><=P$$sN{vxQ8}Ig`t-p+fhYs&7=r9Bx3}*|@(HaEkm65b{9;6;uSO25AiHzQ# zbsu5j_HcUyw*tQU2;E$gq19hwB8>AjAc*6BR`~!dB>_Cv(3Bmms-CvnnJld*-4U6+ z!V>P0W?yOzdsZk%;9_X!?!~v{GER?}>hYe`U>8FM7%r!pc=jIsh(v~)+<)|moEr6) z7#exsP|K_K55Figg#Ru)EM0&ci;pC=T3n*femC&~S7wSd_dV^X;n<eD z6h)~_3ireBLC@e*N!R$e(axrXIM%uTesAxk#OYUhpi}3trOGwk5+<-vB-}wa#go4u z$o*3Y2u8i)6lD<216Be1T%5eT!v27?om6H`7^)e1$d`0H_F~&^>J*th}{a2R~<4v_4eAw{ttJG#(DM>NynvgZh5F8N7 z6dY&HvTTq^>^8;U%k+_$?W^79ODFfK1@>;=SMmz-u0UGQFY zm8J;5zrF&`Z@m0;+1%egb{n9ZL6}S5@x<*)c(3lvKD$lo!?|_2jpo#jK2M?X>?^y6 zHSGE%)~eLh)^X5qcz_@){@R1QL`kg$uic9;b*eJp*QAEKi-y#52@Zyzts1FUr{+r;W{< zJr8Jr3G$GWC@^Zo%`;fn4NIP}{R3B7$~A@`9-~1C#s7tyVvH|ViOKfZze3&?-wRHn zV{vx#_G4FuRh^=LJc4H;5giQ$iuRn;a^|+}yzA??zp`0QB=zWmqZ)39@yq;TmG*|4 zn?>XJ=7X$uzd7Jrz0fb&asFud~wO`)&A%OY~lf z=ef~=G>*ff4RLGBd0AI$`+0I!Kr31Ob?gy2a2)pX2M1iU0*j)(F!hGJ30FCBk&Iiz z9pbv=WYp$cRO><x)*lcEE!T4!mXtU=F-U*WvMHOCKmSX$udr(<-mD&uE1RR6}z z=dY84AA3oWH4G$1IsY!2Uh0$U>vz$Fka_dulmbxI*m659?#kDxWX%xcHVwBLXm|^>vm5fjd)m)1OXw`Nxe$lBVN;Z|6SU6n8%&amoF&V0-GQ>4{LZ3#v*+=IgufdWy4 z5aS0`?+txF`vbXv74-O-INsJCqU&;%wnDe(*?_!OeR`-;qd0K-cNmMnvgEy3tkWvd zXKxxrb7t2HUUjG=!f%ZS1iS=Y^|Rq1SP)FKa)|YtUSH4-9^AfBj{+zs1@*w)6>#p) z4-cp#)ElaUdx2z$-8nImJ&dP-hL4hYd#+Qs(9)})SFEF^9QYpH@4uP0`m*Uh0B6}$ zk7o;;6UvLRiBt*XOTR6b+A00{I9x2)2Io_F)&3Hb{#W?%2Xc(i=^JipgvVN+FhYDi z5}x1I@Il8RMRbv%+A70$z#?BSBuDMjphuLp)u8Arlga`ZUt3SLg&9=FShi1!Uf{I> z#7)1eILDUUxBEKU5)~ts+y+-_jJD7)9y%XxNKr2HEoOBx{J_w^gtNBRyJ_V#>oPa(5g+y8YT0H9bi-s)(Ju1_2cC zI26tI=)+%p7<&L({7l}bmo-SzY1dmb&Ig-{v&FR`bFy5CkHK6v2OZ?DZZa&DSHHI) zQ9s6&G^+OxBQBlihCd~Q)Tz{J1SW}%-SlOC6MlEY=@gcr!wl%u7m9Sq^M9j9Eo z${X_FRqo>>FO*;sD^B5i+LP z@7;+b_38v-nc1f=KV9deQ`w2{HT9iU^{1ioi*E1RubghLc<0$L&Mkrgizb{P;(w3I zx#nCX5*%aB1=phla_?Nk#ChpIKmX?!aX?S=90^D6D9CAfA0+;H^E5KEuw1;zQ?Hqs zyKTD0j$J(8)%{s9jujT$KS2IA3sa74*i7#^;A<;t&Dz_fT9DVA)V&w%6O!%?EW8^? zd6?S3vt^a4$C*&g$$6UImMMNJe}AS=F`#h%XeV11@6-OkHi%EP&-P2H4n#B5wmAX4Ur@y5sM1!MZh+YF!D_w(Qk79F zRe*JbA1*|ZJ*1^vbKA2yt-oSeFmIntUoyDyqy$!*f>FPI0>q@>0$tVj!OHv3Dp4K_ zxO(acro>9XrAs+KJbOqAkD%mcAz+N584D9OdFFLKds=o-(-teE2!~T}7?_yz7*_rn zzKG>wMrNB6qj`^1KGX==`DO(O+WLTkT%6P6s`2>;dkb*12@OLs8ye z_&(8(@=l$(4rBr0M^cm35 zPc=fj&*=mghR`xzTuEUP4$1gRON@XF6JeV^GNVfW@PLhbRv(`d=CQmEQ>NOXgC&zx zV{;g-#n*p#{nw675p?O8EgQ0x1*VSK2&zZ3yILF5NGz_^V9bEw^Lm$qShsPDY<%UV zP|2}iZZN8s4UW1IeVC%~@Snir?nHVlzuq)j6n**fp;^GtU*W*{P#jf+!$-gq4-t-o zRNQ*qSYu`s`HqW0e_)VHztf53Ig5c+aqE)d@~2zR1S2YzF*3)QWE{D^6B2L8M zi&lLL%X_`|ZjVytOae!4i<<09cQV!O(utg^H@qd|UiU{7E;P%*FRwW786Cl39NYW= ze{}%SaToC++PonQpu8GR3}pgHvsNP98U`q)Nl+xn9w9)N>m2CuAh{)gEAV;cO6uyo zS3@Z`we0WMAOi9emEb4?dJR@Nx`a+Lq-5x>vlnS0$4Wau84LZdTBWBU(XQ}C*=S5 zR>?=xskb5On_{;(9Yb{RMZgkb(6tQ2k2noQab6{eGVNkywF=wm)k=}Eb=F}3Le+&; zwDvQE;9lOa@jy`NGXQD^-#kwfaa!{cE!V)8a=EPJ2h6dfnlwf!b~GbJ`!t-g=mzG) zYw^=r1yG;rRv3su3<*h|V`LkTw}(88V@bq%r2{@@+TlYb^dOQsXVq6Zmmiz>IbqIL za#`;;P3cU6ab`Aah)%1^id1rywCZA=dfCABB&eh{P(sPW%NdzWyH4CKj`{#E~ zUmWu%A|@yk46z$&DEV!OgJ_S>Y%JOT$JANJMfJq*{_L{A;?hV-E!`kU=K|7F2Hhdu z-Af}=6T)^VOv&1pEwBv?!3!j z?=5J?YEq}%EDn_+{4cC}TjtsKS9r*eYbyjbW z+Ev?PmP4E=azg=`XA=jsyTnz!KaguI%PTY>dt3B8YraoDmvQZaEnWAN1yup=zBfH+KWQ$@flpb&x&-XvO| zDe2eeWJbVu?(yB*`>I@zlG54{^*l1Kvn-ZIaOb`!enRBhvESS;Ry|2DI8gBAKKr*b zcGL~HCHZ&of7wrL#%bDrKk`sD$KFt%;`!vLWW$+29Hpz2o6$iK&B(j|E~=aznW}58 zxcqY1pPrC6HU8b?gu>Y6-9dhZKIl=&uMrdpYkQSIjGPoB`UpYVmW4JRwG3YDTZofW0d~~MeRGj&=-%n4lf6@6yqS|O6{mc zebzX7LRe#>+HWbH&+Fr9KT`}-os`BLoCK(es*8+kB}iB<=~JBiv%-W~YQsE}!ub0h zTrd+CgYyo4U!r1>xaz*`{n<64Sj&^Q{>9goMRu6XMn$uu81I2ulv!Ol+&s{pPJlb! zWIc1gh1+;HP&2uxH6USDyEsekLZ4cFOGl^asbL7$QHW>4yWF$9Tv}cPo%h$Zc8oLF zV#jZ)dQqMrq$2Oj9qv_sXs~n6*)!gHh>qfoKEx#b^uYAgChl%LU}Tnvt@EyIzF87D zEPcaO2InFfGKwUQ)EjMDcj(wkiwq|o)SUY|GV{lcS}SO{qq%zo@WZvJq@1Eyi|=EuAz76sj<{#pH#FfbUv_7jc+B&g@5b5j;reJ&ZT^@s zz_pjY4xG#9{@H1#>)B^_UD7&1(p}}IWyl4mm{KzQuU}y zzDWEU5-9rPSSqe-if8b-A~WSD{H=6-mI`a_+N7bURN0`URWf+^)Opy(7O5Pd4}MOK zLN5-3PpXTHfOa2=dGId?(@uJcX!@d^xp3yioc^J_;}j{lgE;@eDXBh^K?1q4q!LQm zQ1I@e+*ddfWZolO+@xjf8{4}sQ_flSRhvZY%iimE&6T_1a~-Z;)VF)fb%y2!xz70_ zY^tyHnGV){=9mW)-Q2ZqSrT6f)7h8`_qZl*0pg-uY5wEoc*Ur z{#mz1VwoBN#!?%jawR#A3HS2#{T@5y8*csu_7^`Z_WDoqEV7{_^*>%45WfjC+jHEN zVY+`c{5Vctt=7Q(ZKp9>!$riORB`BW<4XK*`>mfunWhm+A7Zy#v03B&#^fp5#wa5K zvf{^QTOLEk|GP)c?PKBN#H@h*65G{}1`8nSovst-=r3c0#&G59R9Ds4!{z4VN++lQ zhsKrQGo7ils;$14$g+IEINDN#KoT23aVCk>2GQe1w5K~i+avniAW2!@nmW(eO&owLM z-f06?R(^~TS7I-6r&K4tt^`vEGaPj*wS6do5s|>8Nevc0h`fA90s34}CF+p!vffSko zVYJQ^)}Sy+;|le=bp@Xe?bZ5dPm=g!BY)ZJc=YJsb$A76FqJyeLBp-r!v(E7zD8DV zc;y>put|b1`(G+HTvG~N&6@j!JacQ~pMNggFdN%$(HlMR3doh*aqJH+^29ZyFRP2( z#_xGy9%=q6>vb)I#;(vCH3i}eZr7rb>Z9j!k>u>&mi~A=|FQxfN_Rv>6pgmA;$@go ziF{m_Qjw==IZTkg)@?$F0Yo8IYIJ{UmJF^4ekq&?<9L={2rIJDMW)k%Lt~W);le?S z50Bj`h7ol@m1LxvljMs5lO+$Ox;pFt6Ib-@@R9re-`M9ynMG{ zYC;Re}ew4S^eYxKe%F4M~_AvNK!;wA>48 zW|c(BY1%x4N=D4N(@L2-Soo%XPBfBqePWpVL<0*oQ|nY$403@c{?Zv&pstGr!GOP4 zX!~GWU#B38i6zeJe~-m|H_L{UYsm9@S_`5j7M!l0foo!cy|C95k8)p%b()rwhklir zs3pxsk68$Kd+ESsCCH5&h$1k)bxm^=KzXEmsuX718b6|ecx|Pfg2DzlnRj@>W|*R| zJCzhOCw2Cy*`Ki@%s}#E#2K3bXnWT@?I5)Rv0}IRq)($2x}dd8smiMsOJokuHoU#z zRyVxtLbhx$xqL7a$>N~!w&gJY_3@^nVP0`jK|<|9{XW5A*iEIW)T7`P0c^vZLWrbR zsyA_jiFq^sl;3lAR^;cYnGRdBN>g#ew8!1E3r|0eL`u*OF_hYt3!&aGd!R)zUd=e6 zpH@KK-=e7XV~=F!-Ist@nS*?#`49c;p9vCI_X_id^CswP61xb6TOa-X)=Ton!h0}UiMa1lMl(YVKz(y3|fxCRI9SnN?-?B3Mps zyC)*|n5wW)Zc`?}taEfPyS&tHH|Yoep$O@(m{j-f_mO#4 zrlbStVt0X?TuK#4H&|CPYMi;4a2LQ^6~K6+725VSj%;w3_0--oqz@nx*Xt&ZtO3+Y z!tP8+SK|C{*vyt)UzHfD3avtFhyCI$g`M3&rvy7{!snRD#CEnx^>cW}*jEJ}U7HnG zIE7dom}Uvl@0P@RN!{*QyFS{Dt?|;h&QFn$l#e}>?KP^TO*g4s481yxg_mB5D+N{< zpVoIc-|vQf$0T7FquDo1>a}s7+Y&jBOr)&UML9fVgY&s*pE`}@n^o{4xD6~D zjafJC>p|o4E1WYExRGc`BcwB^N1Gbbrfn~A`?r!ouh>Ry-pI}@M$w-f^L(}~2rW94 zpOK_08a;-#&5m%Tej#1JY83G7siP$Z!SB(LTOtVOe#+-G^$lW1?)4H%j}Y)j2y6R= z_NBD3h(aW_lB%}pZE7FA)D; zDsm;$qNn!Gh9eU`ibEwA&cB7Edtx676Ts_eL*1a7fxT3oln~$`F`AbUo?;Xr%r%%Q zntD`bjP~)91sN7^u&~f<>)wmF+i8aQl9R@*UP%esJ`Jo6%%L4t0KMHejE8|k!lYt^gdzHH(Diu!G%e|8*76B6bovfq?=*_t^cmL2iY%a?B%5LPUikaFjv)*Ft;|#fw_<+rNKk7n)Yk@AW1$SL;<3m!bTW z@U{T#Wf=`}k+Z;#C!yZXRpiEVS;`#^_gj&QyF9G1phnx61L^(!n~6T%QEI)^7@xiC z&WQmH4NlZr?Oaq0H>xM@^9?$;^02Nnc6Yw{g0t{?)%w|DOtnDp3u%*gb zTe#RfRh;Q~>GyFvf{UXadhcc7i4 ziS9=tP|cvtv__l3PP=9XLdtLVkq}9UsqrRQ;Is*~wIR-Qj_;9uKsbBf>xlsXf7PC{-_uT z-ya2)wCjdjVyt`)Jw&XH_5$tk=98jKZeFDyflq%SsJagHeK3#rC27;&Lj;-#w+ovO zxdvPh%F)r(4SxtBG6lapcp2MYNBmi)38DjnE?DpfzN(W-KG92UY2Rd6LIc{W70_%k zBHL5*x)?tx2ojcDcwzXjiqw(P;kppHDESn58T|zZi?+Ln+^~t83>%A?%`yUs94=36 zA(}e9H_sA@k&hA>dbD_pH2YHH7fCaZ4n@@YFWeIuBl_gsK;kJDK|K|XS`A|O!b<09 zH)zr!-ngceYgLMgJ)jM(;86V4ywsNq5${GdQj-V{1un&A^OV%^_^y+>h(B%LKDc}``Fr!Ki|tTlQ~K5B zPkL17ZE9%USJNimpKp6AeHGjpKWwa~ZYYspVPHiDbWh9n%`VH{(@MeFh~u79N8lra zyrM2-unNDPjYvu=BK!O`d6Qp@)yi0*m}8*V%vkYX^^jM>ywuvL`Ao=zaB&TK$2|kz zi3o*p{Btb_Xtzy42_IoadFTo%P<-TivnrjFwy9pg zw~tik56v9o{Ohe#s{LI)X3TPGfA~Y}pAIkZl^V@ZpCgTo$Z>4it#HZ8tdu;9>y_|0 zaG$wRF16IwIGHY6b+|agIuY%VA8Z4m-FII+C82Lo%0@pdhclrTpbEZguPu%MudCiy z5eS>U4tmIh|3B`UMJ%?xc8OkMNb~*Tfex!X0t?^8q@85G(lcfGjR{Q*Yi$mivfakY zYl;)Q0vsy!_oWw{1WKqBdDElcIP>Au5SPN~G3!}26VUMk?D8! zi>j!L2~;6N{b@rpeA&dA9BAqak&-K?W?fy2x=EM}Fhx7249ZTq0gLFr{G=+p`Bbw( zCKNvcqma5UDBJVH=V=k}Vz<9aIz(W7?n4VxCZ>yNciqA^P?2DMAVswX@xrqvN;HmV z_#DEI1s6XV`O`~Gi1iKqd8$VlSy{mSO*~cA7j2B9fs_&in=uvqOWr=Wj(*){Pycwm z5J3oMSDXeIU>*)x2*jbjBSj)OV&EV+5ONWfuuwAg(^(uI;*<_xq?Y_Is2#%$;%yhs8)jzRo9Epugvy8y*ky9)CdRsAA0ks);kre zmCar!4yAWq#ET;T;s*aTH$h&Ii>&&K$9vg0P&sq>6!F5}>Ew~m7#ud0xpau68bC$5 zla5aqVTFc6M%papBSJ)=wX>P(ioB1TtigD%W3T)ZVj`9MaLidAl~jzSKd zSSfQvQ6v!T7rHU-dYv{5hEO3_kX1;pUzB(Uj5LIy6lckM1eim3c}K$A>BZNtA(46! z)os$zD4W~S2W`yJwCr^{KmP6Rl4`D|WAH#RT}#xV3@VU1d025rVCUtz;UE#*JqjrB zC)JiL%z<&7N>bsXZk{eGdH^Y_FCp1k+Gk|&Syw_t$$NbF;ON_plbT{r7=9$i9`YkQ zILiz@_+zoN8S^#FqD*{?0pd_7;8)IroX#rMUuPOFZCq>KOQxrGI&V4bx_}=GpNQUB zJY+UDKHK2VSQYRdcPo+!=I@mV93E$6zmvJ*|4;lR&}U%#`@xM%6RP?nx(bB$XnK!% zH*3T~binTU{bjQk$q4!R5G>$8%y*_(>gFHC#*FwrO?skp{Y!&N3@OKj7hOO(#SQTs z|HI?!+EXv@b1hon=C7=gURsbISa|$KEsR#%r}Oa8)+rD5*BLMr?1*1J_c5=v+jTK) zE8@lCu2H_v1ryElNV12hu)l9zbNYWju9u@ z6!+6Ut?+OijWv;-CPK@C9+qJ|ZVGE6jK_z(HA_(N_cM`b;cQ5xCg$N{t-duBfHU)GQM@JT|p$Cr(%iHy*tuD@N3!V3$Wq;@^B;P$jQRebXY$bUiB{-Rj#tDA6uzwIKa^A(o2UNC#*z;1@3HUEj{2o z#fWf{>;yB_n}VFW88w>r$iOcV-%z%tbjHI@(>0* zaYI!J6<`P_4(94=ja)fo_-?S5Sx&pnX>>`n_I(^>H8%`~8k>E4NP$FDu=SvDn?jrM zUi64xbqIvzH-DYC5;z%<)5f#9aJOqG#KgfnjD03x$ATmoO%Zt_gfaQnm)I_q3@*lA zOpL8bfUm;?3hu@_VSZ`^e*O%ee)dER+Y3($P(;U9lI$}@PF)}?`z>=sweJ9*U;bc4 zMpCygF0+L}wF^RZ?1qDX7TNW==sRrzUO^vu1zIpKQ(p zEj_(&sBh<=j|(`bUqCoxe@j6u?4XM7=}Ldh3&7SbHF@&oaz z=kOaQc5Iw_hEIB;Muchb0Mp);3ixg93XEW=zEkK zLNmD#975Z`;j$$tFf;FVQt+Z52?KrN-9~{^{@(S#Lp5SE#sjt`FJ}p&X-kqZp*@1p z`cG1%t>_%_7wepJ+kz&IEz%YPqCW9o0PTMcab`lP2?HbB0P;2K+|tUJb!@rc3uawM zx^f#CQX*>KI65=1|60#`GhYB2ty19M;^c|qtK5$;0=B-Rf0+5|j~YioL7E=S5EolbsZOmDEAlvt@ifduM$mOIGDCRbX!-%QSR#g^2~$Y zD<0(b#N2q8CGgaFNwtJZ1ub9V>oB|Hf+febW_(-^jF_bhLj%Fx6wW6<>G?$Ghro`o z1sdJTby9fcM1yh5Exz_I(Ooi65Ii(zB6VOMtxdfM0l>gG2+M~RQ=v668!tNpj3V#25diI@_V7-yZd8hDx+T9OCFtYPh@FCm zQ%o*DhhO%^?VmTBqKQ~2AxyYM${)pYvllEnKAT(yz}N#Kl_D zl=<$698zdkjK|6}4qH|_s_2k6qXp!v@yP)c%xdWa7oR~`JM7$XD^#ZX+(b=ybzP0m z)|DW4J3D>-cBS44lx6X{w;8%#9F47Uxve9<_1pa?k0==to8uUO&kFAg4U!}xQth>6 zwH`lDb|f2-mia#o4Ji20wI|PX5SWl<=g;JOH5hLd$T)vGMe|{ZA5aHU6 zL|$wWAJcn}wpk)1+f0CVetUCf(REHPQoNE)carQ1yIEfB8hiz`8)&@LMl)!(W?O9) zUP>Isv!=zLBvoq|C`IJI6KbX2#-MoJETrXCC{Bhr&AgI3x(0Sh{k9 zNWnn#G|*$vqe=}5HLkoXh2g8;(k?RNoMosRrf=WTL36&O zdh)Ia>!$iUX6TJvAkhl;r?Lm2T|B?*4q(yv0)}EP41q0Inar4ghZT#yWxh;M16rg=$1Nb$kY7sze92G&;%jKj zrkSYWA%FhD6h<+V=g>mWN)obj`4vW&_3*(TRrTHlLGD}Tu>k_Iu~TaKz=I>jBofop zzy~um0lzCo1kTdgwSrz!uGp{7-*0z)59U)TX17P;D8{Z!wkc+p0tG9?x%nybuPqB+j<-@WFM2u`bb4Uc}J@i5E#d1-!^`=E&2v z$k!zDO^OMY>H9)yNE&xg{8$apx4|I7I(0#3MMnMqPsy8J>TI)-rPaUnfm8#ycr=yk z?RLvS^s@^|g-J3d1~meRn#RD#0PLR7fcES{s>3ad=h%)AIriAl(hkH%J8qckScY^b zfgF1nYsYi8+-I96ZQJ#NHI)>p89ih&-ZR^-=Q|qF7C!=KxXkK6AZO@$Fs*uzdRQyi z3uKp*@!pR@GU(K7lZMKXT=r^gX*tX{){}mXJ=~=Tk zPKry_;l*^h4pcsf_qqON?#YT57-E;EGciuiN%vSw3Jx;Fuo84o@ivO*rp6$fe2Q|n z{@%M$J`LATcLS%8aU;o2&8hoe1k+PfkWJL9UH`(f7?=DTHRH#qw!Q0u9!I`6&@>h6 z4{5_51y$Hz)FK(92hZ^?d7h#5jB-b3_0?HeX=Xja@1}?p+kG=9>)WLW-o{v0dvxJ6 zj^eF*fADE|_;O{oLs#%9&MY%a#`woLPav86&DZlEfv&c-ibmzsWTJT33Kpq9^)G}G z!A(w0QU-GG=Fs~>w6K=g-kbZs+06NjZUxEiPMyFV$?6dD%8oh;&I&A2w4G;6V&>+X zQ&^IVwDB+ zd=HQXYUX|&Rdl?f1?&b|k270hbmhOMP{U2Bt(wG)x!`Jsveu}6;*Z+Qlo%9o&UJk% zGx=&(a~OWzGBIM4dll@JRd2Rjf>z|cr3b(l-}PAL0MO+!Sw<;&WocuajU>=nH3FNm9{)|kQGkQYuM}4T?nx2OOLSnpC$>0uZx3`eTY%RfwTDbM4@B; zZi@c9=C2pYCMqt8+g62y^WtyFSiAeU*+S0Iy#*%to)j=-Vm0r}JS~4gDU;zFTSJxg z&4cAAK|)O?`1{D%x#2`@c~Ri#d4qihtSd#H{GdcHNr&%YyhB)rq1%6+W1l%oz}v8K z=$pi`*&he4{CoaEBK)gou9`iEByF$D0W19QzLXrXIVgr7@{M=86US|M|CNyib>7A5 z*D@2NQb6o&ZlI_^;K7#D*kz}!Zc2r_%HwxyzomEM-}md_{+0P7<2RbuX}L|mKI;hM zElymjz<0$I+@;)KofTF-C`@qKhqmou0(lE)8|_c1;g@gG5F*S{+!zSAzX8yqO)6*P zXJ2H|0g7_3=B%pU=`4>EQ_e1^v z`$nw-Sy~@`Z~!S7wo~uY(DP$5K0TN+Ozzy_qr%9n4kaOB#Z@pf)RrTUCQs*9 zXZu=Eboh<#U6D}6uuKCtH6-I}gEli3g~$>vGMYOTZ36^?!_EP677#-791RoNU`Ozex-MxK+)+ho~to>i2BnEgbq(6~no&q~l|l=~*b8 z*YIQgVqf#%t+&mauQf%jQ`Ex~Ex8Nd%9VRTs@T%b#7Ud`d;93eCOz%N$3Z*7y}=K! zX}0C3p|)ZB6+Gvth%{ypr` zQi>X$Vjp|oB!YGGRaIeh3@(L9%Z55`HgI9xj1c0*2MGE^gx7!(Lh|x4L-$1o05;bD zv|Y*7+SM;wjR4Y32a9yfickFv@+s5EE$kAvvum|8BBpjl?N~e&*IEDRV);5b)PB`t zrRjI0jQc=X7MPR8H6oMq6E5ew7OIU!c6+KlX@iL5GF2J(LC&w0H4hK^wJ}Ak>m66@ zw%D=p&o(Q3TSUu&NI-kM*uu-6tJF67Gb&%0x4 z7rjIg8Nb4kCUOKF-eMv~qZoF;h(pd3fR$d#s9c+2ryDVeeq;fGes8T0H`53{`^r9=0rSErAP)9Kks@$_<#L*W$KrdUmQarTQrBN{yRdd;c3Jrb=>>?re z!?2*RX$V5|zmaaF2rYUIY>amo{MQv*0RDe}o7SJP85ikAcZ6=k_S-N{V;Rl94(sTN z?gy4z0g_L;q{!D*XU`6>*S!@`t&h+JnFq$~8;{TaNn4go26)S>`5>Wp`Td~NhhLO% z0x&z@`7{{bMbZ>-?;~36xz-!--*c!ZA7@4J;Kfm#aasqz_6v)PefC_Xo)zka z=GbzSW?~+`D?@eYS9^5ece^CE7#He`dhmW7i^#Ks&qbu^i1sy^h3 zXc!ix`t}nQ5`!?6V1w%lBCmAAHd5EzsukZpT%5??2&BKE-PZ0sn4K%IC1h6BKS}+` z=e(9N;Ny9WyIf}C&w54xygnp>-^!A}1N&)!{$+HMrox6cu*$Dbj@a>BSb$=B9VIBf zX~CQkpF!i>%MXN%N}pLka8Z2(exll-WZc?mbkHY#sn4&xljPIZZ-{?NJ=@kWT>m8B z&?y^nEofvfF*t*7C$#R5BE!l;-%2l;v|QJ|xb?E2+3x6w0o1x{5^IVL?-Q@hAHN`a z7`HO&4Fk_plNg|?;I*y~M9d{?KwpqW6>$BA1Q!1b6KU=gR2}#vI8*3k7!v_VLhSJE zc9~(>s_{SKg3FT{4$sjM@=(2m|B}1O=Q#=!Pb<1d z7l(DYtntNY-HB>B(NQPr?-6CqEGwExIHTU>V2~#r@LCi**ia7G82JuDuo>XHc||m| zMR6i38ryzla3Bboxo7~$s0^|P1+ZJF9Ff>Z0WVD`ifb28qZ8}4)hO`ZeddP>#eDX~ zg;Y9Rz%YsRxz&R;EAoy;!5W**D6lM`jW~yzF{mQ%yZ2jM*HS|9(xD*p=G1&PvD_qF zU^S}^xzyQPPqKK^7-Ys&AL}1c_hPQ~@JVvHG4etE&f8=!l*Lt&rH?R`cU z18xr-&bCy9Yh{AZkrhF_-n|E-;z$`J&R^oMf{rDVLPqmuZrdW8Y1N!gTQ}zKp}+=; zzSz#j_{;JATvfs7<#oDn<;M&()Tf(^?6<$a@-J*>;jO-fezqV_EV4d1(nn@;cyH5a zOJcDRF{`F~$)Bp00p;gh*E-0*rSP5WhBm^hPyOhcjIiKgoFR$N(CE)BB5Pv9qTCInmft>R--Z`SBp9l*AAR&*SmbLy(4>W46sz}kAH{R zQ4AU}cop>p>xCLtX@Fk~#d;H>c!g}eY&5qor4Ow*7~g6dZFZjcNAYxeZ+L&br zXc(D)P0Z7JDwWnlq`IPo&M02_ogv2A`Rp}iN%fa4mhCnEdNE|R6X%DK?S|9y%pl3pJwWuY3`0{Wo&GFx+v{LIqO%Js?GXI4I3WleR zX)?xZ-e+kjRiIVsxe!G>m;r^QqHs{cV<@o9LYaxo;`ET2(if!{uo%UbdzpxU!y|(G zt93Um_2(o0DC+Qe*1+*)6b3Hk3W|zF+DLmg6L7Q3JRN5SQOIBBX#L?}jrHGDaw>DIw+VoSojyh8 zjE(t+e&!IXIGVsscAM$HhJr2|k@&!;Zi0)v7PdIPNR%Xd&f|wkD^*NZ|AC+SMW2p3ea( z7OE9s#dIO(H6?7M_Os}rk}9sUUrCj)qQC-t)KyPL96B_;6kXvjm|X|SpsLRl3&O8^ z3qT!8Z_ankXiytr_Np&8Jpx2VqR{7%vb?e~b&8|$ApA}4<3TOpdlf@8&fFd5Wynn{ zTP$cqQSQ=BJssod)m()Itf{gWT3GeUmejvjx4R*+szX^&t~-cYB+IehNpZvvyXYYQ z-wVl9=I;hG3TjBhZ%P(ls-4D6iAK3gKl322a2C&OXl5KYu9|@OSgI^n6vj7>beh|! z1zSo$+KC$)?!@SRwHncgV(BeqICWqF_+Y6f{F@HgexqfkcaJ#AiN5t@R{}Bv%_q?H z&ABY^rM9(jb5j$)V9*5fjDlVLRsBhIt;CMo&{`bm_FfuJey}}i*yjpJbGkRc#G#QG z;8*ATB{Qzw^@HeHx~rc=kjoKuEw4S4Gs`usEY3$5v;&JKAAt8Ai>k8a_OVh zRK;YZIDRo~;4!-_o_cb3HqywX;&67^mCR}r0erYz+Fz&k-XQQqf#vil=3e}e;D*}5 z_1)bM=B8#Yf228_Ba_=AQ6%EYsY0!|dh@eY>6wy6`tzWHwj|PvY96wZQz1ZF$4Icl zv=_*$UF4t9KLGJW3apFlXL$PfAhzagOHU9)p?cL$vEZgLysz>nb=^FQR@>;L`o_MM zTEOo+vVm&d`-|`vHE0{IWbJ>l0nd|eQa!3t=j{wnuFEgguMA4Bew@6L z9{k^HF$7SUMfvpJ%8_axXEsK|ia1c)h5=fPJ_$yMlw?^R8T|Hf`#}N&x--R{7T}yF z;IQNXUOMn_GyJn3*S<{Q9@_l;&(DwUSwam)y9Dg5`ROcp2F$UCVe2lz^pwkmuFgxV z7aEPc+wJ1B1LMo&XTdKnr9KBvMkr0x53QH6cBY2fLjy?#f1G$bFK`bqn@%w|FuUHn zMbA@TdM^AJx`^9;@5ixWbvO8f)8XXXcOqRhewA*_J{r>IJ9PH*~SFKhliof{QWbN1EIn(g_{SotxzEm>8k-2^Y| zBvXltG;viI3AZ6-W+xj|h397CcK&d=wH1pzd_3-l|GzKx44BS*F^y`AD97;Mmb+8s zE&Ns$*Hg3!2R&PgmM}Z&`f0uyId6QfJQS~d4&$HrJV#4N5B#h|>AY6pu28EKcbFdg zIws(pYY)ZbB9`o>-EUbdvf+J_-Jj(adq;v*^;V?Ft;cJnEeO~2FS-1be4C}4nm)Du zw`ysxn7y3b)0Y&)m;N?pso^WPIT6&n?Ojp$@xQIypSt{&V6CApeD$(y8jFbOPsC;T zH)M6|FK%f>?w|5ElK=K+MnVmgJNTC&4zPu2@)vcn&SjU<+?mcLgH|7c!e~b>pXW80mG_AnqsZ%fAHDuwQ0M7y;cb5tj{0{N7a&f= zDxRJK9_xH~6EHei@MdwPJ)~1?vWCskJ~jXRDCYWX`wVx>-$oP1=p^=nt1Q_U7T=)+ zLb8zb3FxI|^SpWA&=BY5%syT8yWc%Av@1ijHR?HeTif)5CeuQTVm1W){-Niqw6yi3 zURyf~u69(?bgJab6`1s#a<#@1T6||S^(%Lirnl|*MA)IJJg4#YuyHehojV8PX(JxRKB3|40>BIW%Om^Kw7(pI@VZ7K;y%a1RTK%8tR}A5TLT4MJ6E?_w zQ-OBqxL#2;1djV=I7$Z0H(X_e0Ac^();ah9kiz=B2n12am!0W+tJs?m>??+#|7Mu( z`*?qe{`q)*dY2Q4duQL)_tDSuv}Lu{ktomkCsh?Qt^+Q-9M!wkhUl|rS|z;$!5+pj z(vP|{2i%DEl(9-nJj|2g0Y`v8ssFxq$p;313+*DaIu91z%g<#=5jJgmsppC6{XkS? z`L|biZB;f?1N;ttg&}1_(8VfHG%6B;K3XsLB#Og`Qj;<#EO9HOjb*$prG+oPSlIZ( z{R7QRc6+y-$USrQfW5#AX>4gTNE|Y4y&`InH8$P7@w4seH5Ef5qU_6Cu zVEn~6*IBAvdZLQ;k6{-VYMY79#E^OPLnUjKgj0X*$>0hYX2K3&(zJ>$*0FYLE+VK^IWT0UuXLRtdnRrx5At^?7 zn#Zb(z`_r#>!;7&2josQxZ75t%@*Z4ZwrS0Csm%aPN&bf-n#vVviQ9>+vg`j?Z1s2 zts%7e7Kw`}h5IE6OG(>jyxuqnEBDIWd2vHv%=*fAGf4~Du)An5S*%BD%taG(f2@D! zxs)uV)M+HVP9OhSNSYw28w|87soHkO)5_?h233@D$9J0h56I{9x=Gi5Tgyr4Z)L7V z&ceG@m)1D}h?CjaH(Aw}hIo>9W%XFs5SSE1Jb-YP;@W0{k28`p?Qb(bO1Q&k zZuIZc@INfD(7Oz0#SYi_?*?DCKTqRN`!t7q6|jFoW@y^zt(MK0_5tA5J{pj&GiZ;h zfGEKgzBMgRG^wGA%dqQa^&)q}jmVK`X>fgu)F{C z8{9P=`?FjXQJ7ixltuj*7hcD23=V{0BUtQ6z`fqIyrIui&wHtTCtI{ImC%fU$e?CP zUCE<}=b|N~@{qsYu-JO)hO=Q&jRsm85Sw4Fsdb0oQ+v=Pa?=KDpBT;laGfH`=hpZr z9>NI@H2YkS0ty8{{4Z+A{fHAe2*1AV#&&x+gQC=^wY}J&*5P)pI@4gS>)n?? zE|F7x4(&30QtgT-vpGN{M7h=Bb_$lwtdhC$#4eGyr>b_Y#&-V+$y2PlKUXguO7pC5 zQR{rpEC$f=9y>^6?qQQ@2a7+noDPwut=ns7Q+9*=lMlEdpnD2>4Q{M+9d_DHHR7S8 z(eS9ecd`J)gz4)t9TpD?@cO&y#8oz#PM+GE;eO~ox|uW&0VN(QLo=2>qcoi;@ZwFE z-R?RUqWe0#P&O(xk#T= zdYzg{r8kvLP6>;>z%CQsB9rKiW;P22sN!X8A&}=={QIV_vZphR?d7R8-Jyj&WHNkL z>o-N4G6ZpQi@Jt@Kl`Spg9%)`JQsBkPIUyM7htY`zuT<&)DRBfm`UpZ#C0{h^R?X9 zJiS(;_NG*p4^D>eN$)7QG&c4=H32K5KW4u6@SjUr6?9Pc*n|rArgyQ$?i&wlBri!- z@X|W|roV}Ct%~Exk-&l|e!le89l&t8kh=?NxtDNy)V9|>eDB{hR)l!3d-fHQohE*Mkz5ZXi4 zEq>NpSw4FOIkt33r9ybxa-Vw+NTmaGs8~wSg1z^++5ko<2p`!{R9Um6k`tr3tQ@H# zoe=uSa_rO^I`@lPep;P_xTr<1AYy4y|EL)H61rE;5sZR%_g`k8cC4YJL$Ex~4UBE? z)>WTk`2SS7J<#f0s$7=_x)#LmN$-c%ikycSr(54(K1_Q89X@N7>XwINUN1-hN^O^} z`>1Zbl~1PCP&-otW}`hR^64Kfbxms$AozJ$PmpH_IMWs93}YV$FZBZ;%mN#f>p?3d z2Pi`g04o;!$pTj~`|MZq6z(2^3r-;jnt9L3*M3BSzfl}1nfb|Dz_5<*>`W++%fRrA zt09{2lCSo_PZWK6Tg+LSg$RIj(+!w7l*z9zK~M)G)H+rIAng{Pf#8e{Z6ZP_3kf|K z@sQ96E2_{#9$%{B1mkWKK<*`Z>)O6e{QFG{^(n>&W>JYnvG2>s_=w8*a9h455N*Ev zAf}jI(L+3>2fx%6#RvLdiG{gZ4mr;Y*xv_U($AZ5I%MHVvxBG&y=qXkoc<}>h!BQz zrb|SaqA=Jnw9U>6VuP?_82cqJLz+X`p&2Bk{}Er+TZ^&%$@`m6(=Wim-hjeaZkMo5 zVaXnz)rz2NMnV=kK^O=cRz}4s$+wX&pLCjo*Vg`GB2SUXk)PP+fZuUREPW8EBBphY z75u))X-DwRfZkZvIOd1=$X5Ve;0pSFy~W%PzsMLTOs=Jk`P5ius50mR_j;X83W4nq zE#`#IBabg60|kz`e~W8hspHk(n;4ofBL6X1Yw0_q2OE9wN6)(CH>`ZG;uo-Ps&W!> zd@$_)gUVaro^GFL3pbb>VBl!L7qI%>o+Y>+U!=rB6eJ`M86nK}HIa(IrMg=XLz(r_ zcbp_3d1Mql`5hz5d*3gp_VF%2B=(b8Ez*rCyAdFagz znaWJ+jxzXCNgX5doA=<{uj;p8!L3v%0NWQOXcNvBwuNSgb7VOYcZxw5$P@5vMb2dZ z7gKK)7FGBD56=t(GjuD>5CTerbPWwEjevx-bW7LJpmZZGNK1E%NOyO4H`4#{`TpMP zdiTMc&B0#lUVGi~i79jFwwq$|*M(uPAGV0oY-Rxj`>uzAqnG;Tz;2#hOJgm3`gDj^omy)1`PDet2v;iY9UhpA;reuRj$=~M> z*zd1SBJ-E${xJPc4;dB=|2oJi9Cq6^Ro?^_4$P8IW!iWV zX$N(VLWv-GA6v#R#-}!(wjSDB!qasfEp%^wYEgk=?91{Djx8D69z0cZ9q1xv{>gTJ zrd=ZMT#T+k%3Hd8m>yHAeEq$}YuO&#Gv0n_^r_MkW6@K5fYE3wwA{MG2x=c#&v=13 z407_jvu$gU2O-;y$llp=9Df|MFrX^kTfEQpBmnw4*bYS%D!dE|fHuqKk-*#=+lvy7 zvGDw}Fad?>fM}%o+mbO)aUVA#4(Wek2%~>7P8MwD2_FX=8&cjbE97U2fj7N*K z8DZ1{5VUM3u^HE3w!yHerfGrO@BnqjkqChrS|{UA6p-cwA}I>+C*^A55W`P9dyg+f zcl(CC%rZrm)13Zpm0X)_&fm>@mi0HW-3bj>EnVA;<+6X0aOn^o^XtB5km=!Mg#R^( zy#L#-)OY3G)c@S~Wb$k?gg3$F&Lu(iN=$oM=sD9)rV{Y_?-zZn6=k7ZM004k76%8Z zk|#O`Hos*)IR{4Q^AnutPuC}oz%?r)47@?g1QN`4Q3Fc*5my)XCU$t<;>zqO_44&> z%r12!Svhc~pL_=+6x_TQa8OcvP7n$m0KZ}@hSwsEpM0?E>F5vEpiHlT?y--lxeSiqM3FNIW4wkl6XeN(J5`n8lZ zhj6dC-z?-ed^*@5bCvhzWH=C>ysmfzcF@s>36>u~&DoT)s(DGiR_vUW7_SecxlnK* zmEZHzVo!reA|fMB0WkQ_`fH5PL6F&}F2b+R_HDrpm>c0o0I?L;3&Jrh!?kZUQA@-8 z>){=Zw8vOdYEbm`05J!v7t}kUI9Bjw5O~)pzv})1*B>w%>kwft4l+5EHn_!@mKvmdGs#aOk{*s?u-T&v$=&xkAXt`jT(m|6?@cnKEuS z4O@-Clv-DnUhSO1u%q=cBF#dCGmOqzRG|0{wmJWwc{uY`!l#du)6B+;FrNu{kEzRJhP+VTR3x`v-vE zokK@cTA8!>vKaR~e6xLcI>ri4=wAFCdEgh|O+97*baZfsO14Q-x?24$s~5XGokuvM8j*=3UKey_%^2$}nl;~u z5WK~C#^%3CxBCaZSLka$>-ATa^~Kd0q1TDz3t_V}qbVdTK8MJz_}(}elU6d{ z@U2w-NYu8p*kXleh~Z*Jk8jH&-cf_S34m)(&-}A+y8)!N00Cov%#u&QvD{t+3kQ%u zBH+|xwz94&yna7tvqNZEWy-dxx%pG~`_1o%$FGiOF7GyLA#JKS6h2(TV5xyp{a>+F zaS8%oSNEH7bg|m^Q8L4%RS01&m~`;9H?-{;z8VL&9}~gQeGu%$Sf5xFKpD~O%f$T= zlP@`pZn8d-OeJ^Zw2ZcTEc^o z&O`A`Bzizo&so^(af^(xNQS#a;rTwIx&964D`luVgm@In@s1K&fQq|kur23X5=8n8 z41J_OU6O@El{(AMeP=;X9I{0&o&kfu;?)0u4KxpzhpPZ$!DJC6+)$Wcf|$M7#@C8G z%66h{i%g|P4R(XTt3RMzhA0Y@!+pe2!&W_x?y(0YiO(oH-fcBq$`Y*{=$XJ=7&wdh zman^U#wsX-4$iTGI3*|!D=F;ycCUs50u4V%<0weal$mGXrP1ipF;OO$TtqWyuB z6XDu-IcmSO~{fef*=-2uJza)5aoxh!EL`$c{a8?8t{JyMy?aK>| zu9^y4ECQ#?PC_MhMcr|GHBFtG9_H>sKD|Os5vBOzr3iop*Iv3|hIW6m(!tDb;r86e}y*`zwkhwOQzf6Bmg>H z8c=GDAKHJ!!{@do3)(~%yzawRmui~0_A*LrR2 zlPVy4I{ZCB_if+^kg=x!MQKz0{vLE?u}_+;C$+d#%L@#j-ok_JL7))C_4>Q|F7G&3 zk2)Fe>^r?HtwSo78xM(;g?F3oFQovk{ulJ6XlIB`j3l+b3)}K%9?wqwqm`qo`$e4F zV6ykE`1(?rKPaWBD~7W2TO%d43qzdeL})zYM_bmP5?j5?SkZCV*@CYT*PpJ*clF<1 zQ0+%ic$z_X*vdlrsmS?!YDx5OSu`j=ukckLKV)cpvI&xVZdC8adua$H92uz3V?5lQ z4m#TTqs8G9F&bJS<+_m5OSchx|KYwzNoYfMc=YEvns)7k>RVPyK2G>l`wYYw@s0tm zfzt_yiTq6h8`nXUJkv7GMeX@^6yi+>|MoiNIgl$Iv*bWn#A}Bm1oUE~`=@8C`p4$Y z*t6Kdr1<5A^DmC8wRK2;hP}wTma6-!+PZ`)-j>FN&&RB$Ppga){$NDa_;Y?#FHkPf z?eDt2GA&IOT=yx>WzGUv33?4&vV5)uM|q0pV28}0tV^x{9(8pR*~*dazCNRANBYOp zLv_qqd{E$gme+LMRXH~+K|g`e7-0Ofh&&>HJHwN0%ybq{*(EvH9@C;6IW?8wVmKs{ zCLmpQVWJg0xHp|uCxpS%z5#XvP7wAmYrymX>M~)I%qBSyN}mXRE{CWCj9qe0OFIvc zti0w-JeXK$@#F(^Hdj*R9zZ$LC;cCzctD!kXEGf$jDTwzc>SH+ozX9#HHSuZ<|XM{ zl2YDkNZ6`iF@9EqmRP%MqXyrKR~O6T^aF54T$S>2LHk{{&W767i`d^}CAj#%ZfD)9 z6vs#V5}5Y|!nJZRryF?Q9uOl$2@GgsA^>oIq*dNq1a&4t#0to1d#PhH=?8F*5)~IM zzlW}TtuCGZ{LH*WDB29^JgCU|$>^6M_S)8~b=?fP8SrR+Ts7UWmJ^;8jb8ZkBL#`6 z@?fJu{}Je_xDwp_oXx0&Mn}Sff2e-)s*kMS*2u~TxxeA=N_0OSY)?}ej)a;xZy%1l zaL(a6aHDop$v`f-zQdKJIHUqn8_(CTmnIH-~yL+5pHa{-%6ZL!W8 z)pvK?SnG8$&lf*^IHUZr?LlO-l2S7%?np~h%U_CMq>{0Oxn8ZP_X}#($MSwGbI8tD zaBgLjFzo%k1PZ2KHhdXj+CyFeMOgH|gf_;Lz&MW~Y>*K&tSj{BXj*T31_Q?zC8D># zCUf)yHOfBf?O>oQLt>^NE&~v_=x%NthN_bN zP_!G|$hg%-o|sR$y=qQ-@1Sa!jR#13j2M{;kEVj6d&jRM)=AmhjlScY;a0>rGhKp4 z7z-NjjKUJ?aqw?Y8c;ZEje){?4 z4SmOkTxqQrPLfFLko?10q747;)}v`2_wBh{2gb{O^7$@NKTeDLiRs&0+fLcHtThv3r&d6uFdPd!*gva` zUqgH(6|+PJ@!F!2o~;~*;=W<{AwZ1P_wQgE3;R-YYqLZ5U0;7~b9UOvG5f2wruD_m z$IPRb`tEL4H-CiKSdyG`d+cl;S{!etMU|;;XO{?oV9+QnaN-Z977QenS{cA68riU` zlDAl+`-oIt><0CqZB#XBd83fcRp4m3C_xbut{;HRCHjaI9$+j9Ca@SKcX}BWj{z`) z*usbFyBKskD+A;JwElt2l`eQTAg7Db%jiCL z$u<-w*#A}(SfN>>r6Qq9t1tm!Vv9O*6<3LD#>Yd>2S0{c(cX~rb%ob51(=svwV%{) z8{r3+h`RxBj8RuwtJy_Ij89{nY>1w(BfZ&57x!r*0f&*m*{%v>PA;P$|IS`v?f8n$ z7vtY}tU&i6TB^Rc*}j6GK8!bnxHkvFjDp0Y)=bJvMxW0ygo^fK+iV@NeLp-~C-~yi zAS6}P`GcrmY(r*=r-yzY$oKvT_e1)r{267E?(IF&gW-8MLm==i(e?c0(5oH_JTbac z!OmIx^aT8`Jo{k+#1C{P5o(>a`~Vut0rcxpzsIvyE}0$mk1UYIV5}H1tC!9v@^u-q z_Z#UkGc-#gq-Hd^&0ihUoD=?F*6IJtLAFF9I=Rczw&&gvz~mqIhIhwf{Ps=(K4bJ8 zbFQ+|h>cl!=WoTOIdZ|PymARRc??yz+oE@-*ZriE?2?!7Qc!FTCe3^Tr$$J~{`#=R z8fT@iUyS!eAXD1HA2J9mEyO!~6cY_S19>|1XksTVgdEb}geM8J_L!@a?1nmT^J^?`4bZuzg)&0mpBrl-Xix{b`Xx{Bs%IvKXv z*6hCvt*)A3!j;!Cj)Rk$=h?#v7$YO49}LF*W6*mEv&_smT?Kk@P5}o+5JedZlu%&c z>?Jv3plSgFnWhb36_mfDw;{&T@!f0!WVAOP*k=CKJA#N_yDmC?Ak1RF&U-?X!0m1! zQ{I`x*t4;<2vCsPh>wC!ByN#S?fk@-o>>+1e*d~*bSk*+2mgJ`igBH&AOXaO%7eU$TO@YH2 zI%=kjn{WU|whVjdOf|ZjLKMLKu-`jFk}2hGu697a!OzRI0k2%y{p?zPKE>*w_Ys$4&Bhic6nVot(^~e_-f=sxz4P1f z=$)VFkPa$VSRM}S{!$I-?WJOOR(`E;DSQ3A1*A78o;yuJ^{?|?SF7MgCe39}oL_PG z3HecjAro}phofPAKOooiY!QMx`e2-np{g!C0^AhClKyFL`gOI3Ex{o&vLtH@-#CVI zH>K35t%ZtOfQ5MUe|O=(fJltIhV6_uwQF-SKyOR55hWz$fE1+jjuY~$ncKUD4?~a$ zIiO4(`WpGt=v@2!Z1%V#-b77hdzD##oY|M1|0u@aNOW_M!JdRHek*;P&-eSbnfbJo zDBM8&U~@15s0dWRN}ml|u9yyC5f-iz{*`dLyeZtRkTkx#y#3mEEIGrcdAsSfJLc3T zB?BwH7HfE5Z-#UpX9`cZ0Js+QKC{8hT5PkyV(L1m`5BTn#2fhbCpf4qGv#=}erc+Q zq1&>Q50v|_U_-tP^5+909OL4?KkJ=TFi{~?b?g3ev>T7Wb%UtvMSOL zkG&HLa=o{A6}P_EmbG4RTV~xn{e4Fok%Xco@&U)iL~er{cR^!l`D*HnJayU?+;f=n z^DQl|p(Mrx~!=V(M`CLVBd{St! zKGkFVjdOXyxdxe7M*u!(fi@cGj1Uw*QG31sF{3w;C9J)lv&X+|8o2=Ut!sa9@q`em zDNpq+PKJ)h*L`|-t?!r4E^*^EZCgv4y{AL^sD1a1H@`JC0d|%fvYq@c#ex>Rp4t*> zbe2_@${$)bH+7b@j*vi&d$rbT0~cyA)!W$Da7zm)%MITHZg}_0uEM*dH_MWU>w3?w zeWUu4(_3o6kHU+Qj4$>9OS&8tMkH3^ar6WT(-XSU>)O6I+e}0HAEJ(5>fip#bNuuitcSSJbQT}+ekzCUJiB=kS!h3C zQ26%RB5><8uQ;!p0l7(t^j%q^=}5LH^z8tl@ubDYY`fw8}d>(ty;dEZisoLSQK#!J|Ym^5Gh8Yr3N{LX|HPKUt&ju($kYw}~* zrudfT6r7ie*2w^60%4=YDm;_gKe!=&m}p&E8#=VwcUf+kXHh3<&;;((@8gPvnUeOl3o~4aGyORhD-!=M{q-4oG_^RwUbJ|F zrW^(z(j>U3mNW>vm!kv~-!qDDA4jPp($b}Xv1~xq3M^unqh(S|PLsOGzYWA0rvX%Is=1U)L_P z`iy+Se|$4+;B`cceAb?R`^d{tF>preNzuc7a(A077ZVSs%+_@Gxh#uJBQk8Qc!PT{M79x(5z$3h}(5@QwXCt2mH`N zav6m?SCS6UOsS^(T>IXqFj@?Uofpo1cUt!G93b|l9zTvNGkNrQ9^HVK1@%t#RUEgyQLgh9FyM)Z>stzWcMXVRARwVBJO z6N2-f)6PAAPePd%NzSP$&dlO{QRQxj(aq$nKN?y%({*=$ExmFRZSxa})#-+bDf`@8 zjy}l5Uf8t?X}|O7G<)@LlV}NK@bO~+FG<}w?KZXhNko3j3=h}v{$`kuh-jSa)~U-^ z_wRX$g~YlUBYpe=Df!En+xI4mBNk-%qvL3G#WTH7J?5CF)Y;sS;E4#Afn?4_@NGKy z<$PRo>+!q#(=PJEaV0VIVaT)Zxj3KRPG!U&qWv>ZE*{j>32pJbCRwj^-cO9Z&|gpV z5G8oRC``aAB*G~?iZfzdz#Yz?R5HBSu`bp;rbO9g68Job^9fm{x8Z%tEv(wnLO1y5_H%$Jj< zT$Ks#6UPOC1|$lj-)8n%;oz+amFYiKh~?g~-1jWDct&l@%>XQ59iU1OW*EU?l9a&O zw2vLFaIM|4p=3yeYRfAj3(BxOUL?Bknf~Hw(5`kQa$4%FlZ{QDVIzHa6^1AO4xFy# zI@Vfv)akOzMI%2?*#9PH=~yj+a*16{jBxu!MMj{f4+&=4DF}}mi7cpCX!c4M+Jr{i z6YpRDA`v&)sdCyp0$EiujN9s8`Rlb^ylmpx7HArD@@c*_#MC+Y!$puI8=@@re-Ax; ztk(GPM>Mx3Zcm>et%ABa4d;A5VuActrISG?6FGi>a zC7hLbu`~Vcadb?a%a(*F%+xysI3Ip9MeRLo9Ivx}BO?MY_I6to^i5Yoo1 zu`!Q?DMVbowixR?$BwK(#oS7TM$g-|4cfOxk?{~n1984b*Jm9LK(6I`QIzBBD?cS< z-}Vj+nCP4*d=`CuCFJU3ihMoJy$~#e``UN+ zDt_L1mGY8xcQoWEfcBF7s6HhNWDmYl1H)aenD%EXP!3m9US44m-QGu3KiBsfeWhMt zfK(56BDac1eVs%~O8HZ#&bHR1*9dcx4m1p2_x*b!9>?{@X*jvse6$0GBYtMDjW#Oo zTXWnR>nzi-5vA^#+_pDKT{myrH2C;<9n44vkFCWehMsr241OEF6=~$#LJ51us*T*! z7jOb%m}xY)r8%Vi_J$a?DFS{rq!UB1&iJkZpRQZ0AQ_RC%lzVAkMN;}39BB0S04+Eoo+>Q6H=`L5H>;k5sbDu(_vQ%6Q?uGF131_tVR;|ge7t`uWiGiK zw_JyU9c0~Q*R_e*qcN-{p$H_3hphM(*`LO+nka}7T9_v_fsAO0-R{sWpk&85T63N} z-bK`Rr*94_%v%oYKdMebc^C##xI@nQ2fSZA3EL^XZQ3g;K1g?6$}Xe&V&NY~^!GgT z$y!O|{co5+Y3r?Jj)(~Qzdz+Y zPsZo7{L#DSnX^ORwr{k^`M`Lv;93CgH@NnVQ5_xH)^MiT0z~EXte?G#mFsur&&Mky zcBB}?ZW%CvPpg~O>Go@WZcZkg#5PJqV=zxC^An;H{pEY)IG^r0-SCet2r4d35e)v1 zpV9?A3o2LJgRJj$3y~X#zX7Yt4)MlVhqE85Bv*h>goVVfwT+mH)!hZt!1LDOz(e&= z7M}pTS9qSd!Y7Ein1Vcv{v0JT=1}Rri{;;OU3TI&k%|-MNT?eqcYy%b_P8zQpOFR- zfH0#1{Xw}BA6~%$7+-L|)mE_T)Df4_YMZg@xR#fF{c;g|6uT&)AEee^^UE^BxYkC8 zrqjRl{CTEcYmwn~Z(66%qM@(2ew5{J{RL6K=9A~CEsf7qJ2j)dOoD>ue+wctrI_Ps z`P)QFw=I3c?i>G_T2$3oF2?ZQ^xqTs%J*}XinkE7m)#9`TpWZDbZXjKSJ&)Mog3zQ zJOmvST-&9#>He%7e5AQdzg{27{!MZIJm&ZvzuQi<&3SD$nesz5V*$HL!|KEQI{TuP z_hcWLooh@yb9h`^y|+!ce(Q9<=*l-rAyM4^)7DIW8Fw0zZDMAzT(75|8H==T7zRl< zkJU735%$Ms5}hvPEPWxbh0oSygeuG}EVr3j!=EzCqWG*|cagpryhr`omjlYZIFzRx zdllUBCG>v}(_OiBK0VN}c}Bjm@C37X(kAzz|2OtepE7G9#{;b}ii=yc7?6~rBR-6l za^`3xy9K=wN7g$C<0*)6cDcBXBixGS4LGgeEZsRz=%KF1eb`%ff7yKAe#)pM`r7Wt z&sNya9{Ay04R$_Xfp$$1k_^)iz`)ppi9y?GsA73sm)!Hk8_Sg_@yG^K`M9HFVpb!M znIm{de4jqmavIB|c47SJG);P7EQ)9+E#=h>DF)?bfusN`Nk>HW43|3R&fQh9BP#OKiCa~u=u zqz*US11Z+(BtuypL)1%kXWK0JQbLLGC<~E?;44@T1BATWpm=Ho7eqAWk0_a5a70=X z9C1$*fv5FD15vJ*CqGj0IyNga$LS@_~V1_ORm|*>z)0|aS9av6P>zV1QS#1m5x3t=VC4eI^}LO7zKjOy_dYQ z`T1~a9`-^CV<5F{~`B`6G>CvwPE@IBky>$Io;Q;-7}aFb6Jqu7c&U$x9d)E{IJ2QZ>U%4L9o=jPi7#{ ze}*OD-@0b6sjr+IPQf#^!#H1UweVMds%{zP>u}SyU!a)_a>l0SoHL(B_(@`)p-m1l zm1XjdQw?!H!;=gO5;Fhl+wNsb_Jr(ukv{Y1q~0^;H0}GmcM|1?9_$#B{3Bh^mG9DN zEZ5?(qhVQ0Vr%a2X`F)n+Mn(QvCc1T=Drrz`&1dI5!C0glQl^SCl%tv6W>iebrPF& zw=1|9;H}k}B-&3-vFrDQ3DijU?EfAWU~FqIFzVJgr_Qr??@}Wt-Pe=IT22<|FFAuA zGHw5gS)FJ|4;pBce*tK^7<;RXRUhE;ZPgqneRhMU0BK9hV>LA~BMXFu9AmOKuULlr zFfi4DvVXpM-?)SXXxldJmkR0WofbH-4>?iXSg!-RPfst#mENwxx~tO8HhvjoPCnrA zYNIN7+H*;Y*6(e6P%9FGpYcXOwkqt*-4MVzoq;hsN3O1W8FD#lXgg1!@r} zx4ujI|M{vUr+#H?3>8q}ud+Wt+3d596q-F}TR+Ox6uElPaiB0k zoez9ZI14Yuz~>4)KHJXELmv>ppg=UPbzrh{ZBeOWUMlm;Ovv6TUu8*k7zU$n%on`h zCnl8W5P$QGh@bX0Sw{rI#H>8BuOf~m3WE~1U@B_y7haYPBy1576Aouj zXi?oB0)6Nj`7BDGZ4q?j82-M-;)+;C5XsQOzZ3HOS3teAA^6OK+%q`@y^?=q5K5p+Q*DGd$w0E2dPw)fp=xYUzH3bOM@W9Dgh z8<>696RDko=g^R# z?;z{B4Xzm+JuF5sjOZzK@i!c4l_-C8`{ybLLj%bc%eG{aKA|AS@JP_T|`Q=G6X6&&ny*ovj zreD@&@f~4G2pN2Ec0I1MF z$fcui)s{`l`I_4=>Z)V*OLx<^2%>ZtT=bz+%%kpj#Wca^DbPiCo+|%_q{{`FuKsH_ zAZsQ^qh=JlGgP^tpnMISXsL_T%677Pj13a76d4$b^XY|YS4AXULK;Q~(gAv~jrFi` zzw|u%o%7eSyFjE3XViGYJsC@e#39U#YsluMK!FlH2*<;bX63%S=K*lqf#H6}t;{y0 z*YQdK{lreYLa7zHEQ$@ONPD7%Z`?C}ChnAT@Ki21<{2sZ!2Nrcz4>D7YwM0x_*S@! zC&9%lCIiJpxo@Yd-(EX1lk}0r;L>6Wvy4BPJGX{7SeoK-Zww;jK#kOAE6B|0T9loy zUBvO5zGLs7u4G`>*>&3!r7>I-TFCJFiK=Mty&A1uhd+%uT^N2Y6w=RJ@;)-LMwoN%b+7$&3$9wjcgv%rpN+$M5 zU`eXZ5=d#R=nyFWy}&M-i^)^B!70U8=lV4zq(Bi$omVmLu$fHCV;L_#vgon@6NB7& z49_0p1uDM`fzuo-$Fs)L@{>SI2F_m%6Rgv^PBmw(fncgvB#cEFd{Chn?t%PJE+72~ z1u-y`q*VIX=E!mIvN)C>@qa~bJR4Z!4*?T=h@A$gdP~34iyl4RXGU;w;e@yczRd#| zj`SN7T#Wdp?=#=+Pg$7+wi7^I!4&|aR*RG9Rhb!vp75 zvLq&GEBvdO%0gKaa6h1fcu&a{rQmstG_?SZio^^vlvoZrx8}}yOHR}2ax`a3Mppw& zz_9#A%5A12^GQ>u+O5!m;u7tF5N0;P*r6$23+T$rFP7}!l2+&VRKN>8MSVTBA!WFv z?ECpbaJIW}`8P3Z;2;0$o%OwhD2yo*@8gjQOmL*H7Yj!`{V}igo9|B4=a<2asQzdt z6+J#Ap#CRTH4ykkze6T<#-Gf&NFS&8w(!E*od3l>@(?7TtUq|I=P4-)fHsOnj_|H( zF`b*Ds<%)W@%;ISfwT}_cZh$qCV#bAWm)d%E#|$a0qwTE+)A>+{N&$t)_2N^OfUN& z8-@l6V#=PXej}nxQoJ^Eq3cPxGZ=jIkTxQ4DHjQK(R*e4dMA%^bpF+Zg>+@Dl5Y^l za%ONMMOVD^5C#p2m}3+ifFE4kNmGt&Vjf)I*Y!Fmv|^sA0b+0_!d~{euPATVpIHM2 zLkMx6r$F)MoR-|TNsWKEU_=oYNy{Z;LzRLhWbHwnQJ1yq%Ct`SuvJ|yS=CBtxPWol z#=`9EEE*9TChc1cydKOT^ojwMB%8r7+yMo?#rU0{ zc-eFyR%=|FV3^U8#3dy4UR3wRImddpvnY-iH&x!dng~3L4YSo*>`9t|khAVk=o-HX z&K^l*PPHFiK(t}zvZ|b%2UR*B>p_)7gt!+1NqZW1I+;)wLk8ymiiytx@K>P#`9u_Y zRG_0`5&cfv00r!aCL-;vQNn9t7_rCI!3P-(yq_h13C!vp-2m~xR*VAvsl97Pqv5sB z-QqYgBh??sB~@s;#j?LCEB1U~?-mF|iS+jKgb`gG&YMN!2Ihkr?TX?s1Aleggwq01 z1NRVaFl%*^Ez909Q~pyWCfd)!FgR0A&pv2_mz3X)#1a?!%ykc!R~>JIktRt_h*3mY zX5}yAYof!C&HUZU76??#XM~k|ou@AZ6c0ACW8s4_@V*VgEexZu#(Ps|MD_t5u%qQo ztHKQH9JuEzXcTb6x!6m;1^3?kXn36=5?Jg=TPTDMbNeJVPw2nCrgKRyibND<`*$8j*znBU(3-cvE+%SNH{5SWqHu|6Z=imElg zI33BjM$4vM8Nhb(FF3r%R``NX(Gf4pb%=*-7qJc*{yf+wI}?gdUYNv7lKZ))xcWZL z$?Qa@8e$pedG^!Mf9&McWyNiCs=C zqCI*K`~wyIwHWb{cD6MXb>elkIDOLXD~TYd1xZ_SU!SAzdf%91oM=XY@#GM?w4^v9 zB{IV@*oDN-tPBlZ0ri6CYS448Yns`euo;?nwx=V;mtQgmC-WM@asIEy-VlJ}#G&MF z$d5d=yhauh$zaN0CUX+FG538wXr3JH$* zR`F9=HPBf?o`zP^7yUTbUX_+bSW_Ce!`wj(0|SZ?v`!m^T7(P5=-?Me6tMU;#sISpS41>k=G$}K-R5`W&U~`&;d&BsTp44C+UW z9&JAQnAGAFfi#s^qvyEXA7lOO;g~ z)e=DLUMTkmVky3nEi9w#j@^TWf)(El9Y6@j*MZJR(uDf3N{;kbG7r+0)>GC8oR2n- zq&0>_%raZ9k<2Wot;$E&pTzw3NTx0d1P35T00mLE=Gy{JhiofN~Mmh!Z z+gKbD%o9wZQ#F|wjL3LHGRQMSyZ7(kE7r}2k@(dx&M{w?9B@tLe4cre9<1QN?om)u z^4X;cojl5)IJd!3)PFJ0X_mebH9pK=37{jzk_`b`Rc5Zhu_^fN0dQ3r1pRYyyX9PH z^akyYjZP8N!!NJ>4V(W*q*gACrqXI}jIsK>#3*@g5ba=GF?q!pfFLxm{U+i!wE;>w zNLFkVL?;t5s0~gJ#ZB9ufM!$X-*K-q6n;dN{zaO~g!-K=IWCkCP7DFR`>ZeFV*c(r zXw}>E@Um_oN+Jt-Gh@a8OTFu;{v+kM5k0OWur5UUU>mcEox@9!I%4A!0C z$KOE&Jd{a>%wO<*A~C?~d`^#1NvNl?cMCWuXZZ0YHciSF4=B;uqpKhBpw4kW+c}ixE z)iSIen(iPI;|jeoYmnHA!XlNyVBH-CGR#|l9|!LCi~hAQWOfnlX5vyJuh9hj(Zb9c z6bpX(+Mv^bCTH^&1XE-$e-hv)20?I;%lj|90kJ5NIa^V5jFty~tG^P=kN4xFqTEZY z@sBy^60*W6A=1&Ez2tOnKd0L_Q;qLW>%Pg&7;+aAn$v`1k8-{;KkAQ#DGfA!rfN&- z6%5_3ujw9qc|!LJvj5}Rmoyy<8>RCX7jGAnLNNez2%O%Gtq*Ujg6l&Iwq|mf5Y+!W zUEF}^*Z8o(LZE8-%kq_YfZTjN6mRA$pn-t~Rby!qa9UVfJH=}^TVxIur~{${h~?y^ zz463u+ZXS6a9n7gg^mG2VQaL-0TjwWS+PsWf-;p&IQHP57`dPX+q9yh!>)ReL8t@` zhPd(3Vx2zffVX}7U|VVr8UVK~!W^e7ae<;R$WKzQ9TyOZNmxox7UYaan*EKeB!za3 zOig-_G|p$@EXzR1CdQLXrW%@sQ>n6%eh1)i(a`@Qicjg-I9pLQXRh`dn@1GDSS=b+ zyo2-I9H0_P71K;q%FJHIarNbf2`6kxnh0Cg){iGP$vF-UGYjRRiW=lO<9QXKZp71s zG}K(pY8&!Lg#!fl_S+m(0UQ#^ETGDN9lH*H6hDyaALl0q$^!A4>`9$WFgt5?Da$2z;6GiWf z!?hWI{P+=DQ+Q@FsZ<>$W_I7GR>J5bR#R%t+c_F#PGd@p|7sMp{-JC7<0n*0qpi2u zO)TEhoDbj6^JmL)J!88DYcst@o(oZLGkK-31;`NZ^Wyaa|I!2KulMEKrX;{{uou8hmrVmg^7-RH1G5JX z41`BOf%Pvu{tMHaF6?bg0zlZ*xOtd^ksnZ?Vg0U1B;Nq{oi*HMKtU863mL zrv*^w4$+>08||~@ox+^J{zRex+7r4szkTfT^^QL>cWZ7r?~iTE73RrGw#LzhZjNye z7q;sSzKe(2-j>#WcTLRp%a&u+PjeF&nPV_*9 z#`eW5{@9ll4FT?!R&2;peGL7Ud{j)rA2rQVPLDwUw@SL5069q8zlCi1cH6_gzl&$Dyr#_6mT#vX@9RAFdCHeO#CF`2yU-q6mhuMgr>>~2 zUmpo6wcVqM+k33u#|IF#HgDNAik|EYKpwJt96+y_#UY~DkPH%)Ub%En*A~3JKZ(QG+o&e zR~0c!P@Ch5fn1fpTtCt^1)&K0mFD%GWwjw!B(E$4hYB4a_gFdhxI*N2lXhI$H%eWH zGxyczNupEYzl)p=4Y0BI2>?S?2UA8W`Jq0&HpO5O18p=iyaEjU)>9Lvj!a9PJuJi9)s`c}xnp)`lf%+?jBDc7M2C!9-h4!!4pX8o;sB|MIAjcb!x(GMPx9gsqrXApmTg<-7{9I2%l>0>us7F%x) z!8e||ElmLs3?a~lQGagAD|H#4OdVs9iJBhmsP7f0!kL)qsKPbRP7>y*W^fO~x@fSU zPyeN$i1_aS0`TVY>GRvqfYC0m{4;n_6WgQeiL_8P!0E=0U^x)L5t{-9fd_Paa0S5H zK8=F_1U*j3;yVWw7=7y@;6hf?T={G6Vn8c(dGbRWgnR1YF?{hhKis+Tc&wru5q?Rz zG3Ut-%eCuzRmVFP^%$87_Ax(p%;*cL*v!&v{9K4saT`L)e3B0*(GDPZfMiZoi+gXc-^}h#3z5R+0Qc>}G>7mD?=Rf&I|) z>VR_#&u*@|H}74F5psBMqI(s&uPHp!>ChYdq86z#Ovu!YzkPUrb8d70_q5jVH(FYa zsQsGL)PxenaJoz36 zo~<-RBcb;kqmsTB>T8A|Dbj{&`HD5)zL5oh)otf%2g_xbGLg2jb-i(nBY#|3C>Z{qhAP z05I@65!c7-YSwIkxoKr*AK`q~YDCH5Sg7YBFV;(YwS9ItV@Ie=7!f!wSi{guOe+pb zeF^|){6=bgkzX~~uS#SvKL?%_QaZxBQpU|Nu>q^pL%JDFTl~rAyVExoloLKSkb2^2 zx<)+KDN0qX2gErB;9PEd)XD-#?26Sc|L*|nzXXI@1)S#O0^qbfaK}{8eo?cW-yioP zC?3Bz{)JVJ^oS%_4!|ifA-fNR5xvgO>-PH{G36Wj_5QCy`ok$Z>HZcxDswTt;)Xh{ zZk>^RP6)HDruepTABU)6x~6Vd)$F>7=!0ylc`m=;%W8sOxaR$dto#EGD=YSW@~=aE zScfS9)B$MNTog69A{WvBWUbgD=2Qagr;v{6zdyQf5+fV%cUX`VI9{Z(yL&@}E1n{1 znv$d3bA>}}XbaG2CHl7j1PJ{na)$($hmm0<;Ngq9WgRw~c$K$Cr^qY_O2vu(_Bi1D+r z^LOSyE28ku%I(5&WtXNMcQDezBLL9{95^Dr3M#6WbQzmMNA_Xo2X7MkRy&QZ>mMlpQ$`&bpV)xlMMPSkcRjnhM`fxv0KK;LGK}28WB=Dy1gDH zmiYL>GgRWGQQ{&T@CA9eb53*o@-sa81e?sfPh)Wx?v8WQ1>V~OWC850sJ?)4+V)oH<}y6gfUxH15{KREC0(Z7DqX6LE-`YpKSc`Km+bAqqpH)^2>X z9~IQM6hbZ&Ehu}~f}U65l>8?Rcb=|+H9cM5)cF^4`0?m-uQC25FwA18&qQxr2IY{K zPA-R3;)A+tx zI*Cp1oggq2q}8eD5dEDmtt}xTfq}99yQLddazBJF8aNMO+9(~ZwZkT45p-X44epDIUeVo#>MPJi0jM)>km@}n_KxQtJifDg#HH=H z++7`B40<*Zj0k&Nn6JABjL;#VcM9qOs%74nlbT&V<*tY~2yNlaofx`dky|NT5cg5@ zxuUUfsd45Q=P(}&K*|x%AtYTAz{GFmu!LczVC3_eEmc;-@3~Y# zIU`~kK=}{81~fN_3kNE9FFE3lT3#f*!@KKWW}sby(Q4I4>5m(C@2K7lrClu6SRp$z z$fSLSVi;!_<5-%6+!X65ZgD(nhx`_gID}%1(ZlTH6k?r}4g1&csU){sn1snh9a(kR&R3xnSm$KgC^i+%I|0C+HquN-b_2DE0x8P7L zNO7kWhhRmDI}|HWD8)-D4#7$&7Niu1;>BCMI0q~4?(XjT<(zx(@7rtsnyi_XS7zJ$ z>}Pv$^74+|GTVQe2OEw4#o;!oYXv^!;AeA-u_{)#!8K9&&ng01r`4mfy9RA5$mMXY zGkpW9aB%a{hs7WMG;D6fZ6m*kqb#~}og<2N)*L7?8>8u-+`h$^S3ARG6nHW;_7mk~;Cq>9G?>&zntM`qPP zUUCP)hM}OZUL;gcePg|lxcLc5oY6{?} z0lefj>o#>BcF9F9V5X=XK&5I?dV!=LH&RX|i<&tq*Zw5ceYbTt#j^0&JS{Dyo-%j? zF)`wqd$9jf!GjHfT8-1clYV05oaJZbwoAPqT&L(s6i^vtKl?>SK5AoBS^cxI_?ppvs)%sn7$S0@0N2T%hLRB*IT z{{dm#<5N;p9H8@h%AnZ*8y4?3g@u<5gUBvnH6^X+g#u013LE<~m8{&rAn@;^23&Fw zGSC$T9)k7FTZT4S^?dE8p5GS@5t!rvy^`1LhF9EOrk!l(eJ~ zQ}^lt3N5%?3V6ccn)O)nqn?Peh26F6s5yTKqw{``R;CHv(q??x=Rx=^*|Utvl>_v zOO-j?JM6vB8uik2F1Ok;KOYSiH>DfOy!+@V22^WohUG+y6=^YPu{bncOd_<_lKzBe zL)VbAZTCdzgBapGav&;JQoZD(s#K{74_$^G;Vtv~RSMy?@UMH0&OUE)(qL6~ng0-o zmnclEQ0f?<7<28t7DFLiUBxwn)xE$p$=mH5>eJ^yJD1}&OyR4r{#g{h#&}krZWC&? zsle;4B}apGJ43mXZ&gx+HrnPXvYBM{?Dw$S#w>Tubha0vR^kDQWE0;m_K1i%LP|&~ z7Lw6cIJEBQz^K^B8n?7({&c%puW4|@uq0s~?bvWoGw@KBDew-3T7@KREFAgQDiJ9H zNj6gdcoF27oJ<+MxSZ!D{3>w~uc7)!&708z3e#`48fe4rsU0#CDCinyIw+9#x6EOH zC3IkR72~kFdwJtQidDfkMX*_x z!Gf-Yg$yMueUC|Nv|0Y>;yU**{OhuyCuWM<>B;vtu4cK6>>%T)>^;4ht@0Z6dJG|* zy*Mr3WIo-?NfCMJ`y|%6e$0?wQJ{gNUY<-z7VHZ)rxX+}Z$Z$b%NFpTZ3iVFg>c>`|xZYW}7{8L^KYz01~F08C9PA7 z;#i@dJCOz%9uh;ba1Y>s-!bQ~{OSB{geccgK!Omvt*TfjDG6K*&bUm^M-K{#gR8s^ z7WzARRUZgG?$2*TU>#5nr;CbDX%Bx=8<`Ov98dr77Uh#Tcj=P4>!+ROkjDMvhv2pY z>_(0iww>M!IKQKtoXmLeXg*8NaG&Cc7wx)MOX>aKKq zec@k6vG@`Oy{1+o5qWmnMafUkaDG|_!+S@dtAEAN5z7&sI@VDYPgc)g`31h_!Eyx6 zjUk)&N+c3OnA!OVGh$6FRQ`yH>V_yU%8_ypGUbd4kEWl4TdiYgK^-37PE4(i)k8iu zMR>f=th?4Z_@x*CL752&VBFQhZ|_OdGM*ZS_>hmuzF zpN!4Lo9*SKA`h7p6s+IdPr7mq+{Om-vYT2P5nQF60E!85Yp1>szFrcc=v1blz(d)qEds{4~l@z4LpX@hN3b z%E0ZyZdW&g^sz3%*#q3jPnf83T8W^%`&*7WlK!gO{MU7ZpP<_F)H?sKM-Vzb78%E| zQ|6?vWXnMMo!5GA$iqT8)4Lx>G>)*+xOd3)6obmCkp!P)A?p9bT#2lWF!Y=O_@8t6Rce?4+2M!x~; zEE&)XeA%TH7`s+ZCONNsF{Z(wc%FBa>KpaF%CX70dAEsqz!=I`db<&?KyJ3c&-5p^ znU?2@r+mpNlVC+a#F%~+5+>4tpAMj+mVcgExX<7D&leDZbz|83u1jP9%l1q1~^Dl0xlB6ut}i? z9w%qXUFAnP{Vhx|j6{c#KML%iAOXmoe2yTwP==XFPXk(wnjAKGD*%R>uA7*o@yz4+ ztpZv4h*&^#*L|)I9B@=3i{hITd)UF;R~J7BfqiYqD8%~|$&rgY2;h!Y%DA`&0YZ#d z%IP5tvy{{6_H4=}pU?n&2ITQVL)R~Bn^5P@)k&>ivq9I?ajnz&X~V1_D6j&KTsBa6 z+77<{bAm=O%(3ndud$dAgD+i#x4s#Q^v}iuR52@IPEYEU zR-e>1N=QmODp0;1Fx1jIA1~Tb$@5;^N-+R&_(PRHI?_E$y_qah%c_+o2sZuhyJ^Y^ zF=LxVyp%4%SLWSFcuLR9%~EiHBuTc|`%1Q7jja6|T_Sus3lP<=Skc!rg)bmJ*j)wu z1^5F6hiZK0+G|jaMxT83^smQi^+c{ptUI&Oaq(Zk>Izz8-?YN}vz4$u6+Wb>Ab znoAdU*h_MHC<8lB7+I-4^8iDEM{P03b| zWart*O2d5NAvuDns~wMY+0U9;6CT}fQoQy{o&7j97ulEVz1rt@BzwY41~fJ!F@`4} z6_y|U&{F0Ik|O1go99rxXesqWX&D$?o?QG;3)% zBJk$QlwnmOHV%LxcB;T#fWumd`O71bO>^7+q>MShMjoGEbtkLdQ*d6OgewkzFcLU_ zH;FX!Pel7`8gYO8c*LfdMCqHQD*TZD@``(nhLMIcp}F+td?ETSBN_6Z@MjR*gU}ss zwe_W-7Dz9+CRysi>f%wPLA1b`IKgqY>Pmdj#JEdL`dKtXTa(A`n^m>m{FX=h!BJ{U z7LM!drkwes$KPbNn{ub{N|>Z63BwvArqr%(BQQ4C;>Dc{7kpXO6|X$t(axf$Uz z7moF;aU2o!jXuTn9+xHCN8XBNRK)$)qeF|%)zi!GHxh?nL3pkRIhxg12Vm2EPS`ED z=NhGWc!0#j)?n7{NA+dEgB=S@o{Vw?6Y<5%N!8+k24ub0hJ8DW!+__T#Zyk0$Xn$$ zm_B1;ejIMh?xSq=ar+0OfRy*-`DJ~d)Dq3p{d_UVlWf@2QT!~2p0gm_fPDJ$@8yc% zAV&oj+jwvEam!TLXk+xx@VVLkGakcw?HWMbYiSRKhUNB%xwO~3&h(k0Z={MHrpy+2 z9@lMWH}n$EY)o~RcLpxr-kBeC#A`Sow(LfjzY0=nD7(A*LMrNU>(xV5OPF6Vi3*vb zLF=)K2357+bwQz|{m1!kdOi7PX)wSG3de^dyUReF#PeXkSreVsIkr-c(s;F#BpG)Tgp zk#$=5tk+P6sO%!#g{5&E6Gn@a1PDT;FGxz$6tnE6AW%5j!RAe^7}*a@W=vIk=Ulqh zH;X6T*@L>+g9Q#{Bbzl1gPRHrZq8*xHMgZhzc{7c-|}!5fex}tC1M7X&#IW*qx`2G zDhDL~Vd#VVAuzV0`jFsF*N4oPM=h06MmM=?A%#A^F`9c&PQbSWN`_mckTPyv==NHe zoDtA=)AmAOGP?+pRsf5C$=K}~F(Wt>F3Ohg5-GHXiA_yL{F`YbzWI{`wQ2$-?(TaD zAm193$_$dCm5YPw>H{m3UO@7}+1J}9P4LJ|%1yn+v*z0p&DZ-#Dw%gKgLOhq>!o-o zFC0;<2ltF_jE@qu>dVd#y^==UPcLI5H{g0UOJDb=&(H*C4F{-~e2(uNV`d*uNTm0G zLnNYi`R%uT@Os3^wI>8}UtRQ&1eon1%JLvJ&U0E|55d-vJ7H*-r-P<>=aQdreb~fU zQUs9&Ua2BT&+>2Db|1hY{@sdlSl?6PTh^q0ZI<2bPti1@Frr4jj!;=7XI|obX&%oe z>9YGc_MBs_shqFEO16Y)0D}@%AWp034c6JF>DYcTC;jspZgL2uj6ol?2sZSP;0T34 zl@+ILGlgH`L?rpl`koC0-t3}l7JO0@XM5{*K)ra3;iU%tUBIQ3#)vlfJAyJ!x>Ig2 z3{rgbCBVMrl(WU;Lv#1)vG`e`PnAq2;G{IZCi3HpovzHV1ECi_oepa)0>R|y>O{A9 zUIx<>1*cgy{4BoC(_6wUR`fsCYE_$t==N{-dc2q^vkT@v&%W_H$8PWNwr_`pgA4fF&!EiOd+EVaB)AzEo?ly5%YcyhoN_B+`8vTdlfv*_9_JWE9{ z+93JsgF7p+)geW*p){rcwEE33l`ccEK4-L$^duXqck_C;+NhI5^wQj-$35nQCN9)$ ziU0?BfpX6H;r&Zw2MKP8HERAI&w;WV{O_JVhBPl3Hf&t#5fHXCH>!zdrDaX=Z{6U` zSl@LX^c%h2>;43M^%Qk}-2zsEE7K1E^f`-@6}<-R&CtLgZS-X`ishy%G+pCr8l(Vc zT&dY0VOr9|udhi(K#>p6E5Ft16Wooorm0LRpXD;Z&S@=1JyB4Rw>9XRv(I5Djv^4V zb=br^ExrzZZ&kcJXMxY~pc)bY{$VB;7>h)#%gI+17_kPH%&?;9g5lyqcWHL0FJ|BIi8jkiTgSA5W(#Ib0w3^y>c^@abq;5zzm&@d(Dnrp^U3izOM zCqMP2TbKa#6;|?jgw(4)SjiFaMj*$)0rqAbTR6P+UXsCHU@^HE2bg^bP_feWLgFFn z8>u4)BCiU+RN-$di!Yu;LwLsR0J1lEk{80m0$>Dxwt830i&*+y_9ckIeP|EG2pjK? z=mxE|xnyoRccV_uIu$AOH3o=zEjot!%&GnBMxP(Wq~Yu^HWJ=JHeq#{=h(GjARLG) zNl?Ewyjx__$|{e&WrB$a$|52`vmUl|Y^`ohBmuGEMUT8}Ph_Gk<)W1y^FAj(jQv_9 z0n|j{Fm}t0m}l9YLaN048x$yJPP9|zKv5o**pTZ@?-kryYn!h|3h%fX*Yxtl?lINd zOIr)TNP*#+!2&{FjF|yb{#Zznsg=b$ zmz^wpC_5m50`De%_5QKHhv(rFvpkzq&LKCYMKJfOsoEPA#@56aTqRtk9mP5=fO8Fh z<_B;yt7Ek|-1%bz;{=`wljDy&m&^HLYBCr#BAJ1%3aXAPv|~Rb6o8rG?0v=%H|wa< zTH(92Q`QIIFwK9lQ&cZzPciE$Pyh%#o!3f7#YSE>qA~^}Bk5T!?{(3YfaYjG0b=0q zMyY#Vd$-psv2ah3liabrwQC)$uiEauHM9Zk$_Ka9&D!)$9>O1pt~SDiM%Oss{ZYBr zWmkI4$pO^gB)(x6zXx!_4pJ^3?N|*`41|hEdSfdGGe+o8K~ zc7M|K2^uqAaz)L9KlsyG8_(@q02GR@=uK(f+ZluIve@ekb2>aI+qZc{zdp?P`yLdb zjZu*;E$0C2K*IqE-F4rBvEU;g_ILm|N?@1SnD8u-)_mBp)nbvpAB)Nrl{1LbYFcFw z&~}oOMOYFYxdU#sS2b}x?0-RsoDj7rn^>zsOTti9aOtppHES}f|M$0}lR{qeS8UcP zpg$VcP>N8om(41|n7$JeK|c#Re)G&L5wu_QIxR~Fw==NH59qljb|FMi@+F4J1I!$6 zx63A=CR?9nqQBIAAMx2GX5!Z=#;Q0)_d!O$U0LNV@p4ufgMD@2r9OpE~Nb-!w&5fc?dYa%(v)k`{f_QzpBf z%0+4&{nv0Px@^@k>zYRdJW2bAfNEnq1dQ+iSTY0}W4EH&$$k-=aR&+PQVtSxs9kXWLKA0xI|@PrTXHYfHE6N2$9Utx zHvi4OFgRUH!N|{mzq{0j8*q>)#St;Y$GW|`tv=k%0IL}<%;A7xfUIADz*!eFucgA$ zdVby>d)1Lr(c39~nRCiqaw=)T?RCby2=m*8Wa+?&b1^^4!xH-&E^iZE`lg&6v52Qk zy(YfTM#f|gVPdrhdvWOu$nCl?3V>pt6!V=WyCHv;rM?mFxkszvu`sk;i4{+XcD_tJ6CJ&XpvE`?9plo<$ulQd$xr1k1YVKN?oM#7| zXcltfpciTJuV!151f4xMCGWJPMDw|Npj)di%uEA~Z)GydWd8Ih(w)TTWb__2)krDn zz7xbOvd{QSGo`=#({w`NPMo4reRsP)CyCFje??bpcFIt5t4xFLVubE?kn&^srwJjJ z;lfzUNoD#xNr9n!H9<^U_2ENZ;;!E{~p7 zv#GP=jPg!tPo*^yQn=k3Oi<}l5(eBV1rxwt0|y3k4rLZ?5AOWI?EoSZA0S+*`SNvO zwTD%g5>_E?5EDzqs&x1)FbiKoBT3+0cUNFFWY{;zLVaaQ#;ny_y)>SsdjfDo0Q~65 zO@6J5TTv>}4}bnXhDY=tE#Kz8gV(8lT5Fs)kk9!$6E0&`J^npXONTA!J3hszVFBAw zO%l2EPBkfdsX~bO*mfAx#x(3LKz&OeGFwKLT)hwdrCwzFXKn9rL>b^dhg$woiGV;! zpBbr=DJTV9jo73*_J*lqA+Xgf_$L&ENVU;rx}`H4{4(b9S_zL*9bERH_3KR=2_lWBDAkXaJ9N z0&(ufRIh;jn1oPq2g!LL!01j2#?y5ERol^IjF^oR2{Gpm+s6L2{}@u4OvAk5!q%h0kvHvHj}TM2#Wdg{U7@x$HJt(?32PvI*_rn0^h z@YHUYi7k!C*iW*C*UtVC&-l%J>364D3)t4VJoKd! z5O+V!XSbeb$>kdL;F+>%nc{ueYMeV<`2D$WjFx19Ki!JqY2PFBXXL`;w5r$G(}IK> zcMz6H$n@W|Zc_X)eXLrV*WL@CRcEvh{h!W<@&+1)6f?rwz>|=>qiF*6-zN}gcEE$n zmgH5nx%6%SWqc<|aM@ru=pAqOMmo$C14^K2R{ZFZMb1XH${xi?;6-{&Eh?*JQ!SAP zKGO%0Xz}{Y^d*si_EXWW6J2mdEa(e|?CKpmUSswYkl)Mx6f$oe5z4gDGLrv>d@p^a zne^QB1JEXC^(-j41U?5kGg4KsF`%yd4${cbt@V|7&%0Tfw3s97rq=y}M5vvsn@zRf zu13_HkZ7YvJRXSMvM%?w6B?y!g-O!D&{2~OxQu*NJC5M}J&PJlFVQ|*zd6P^47-PJNg z20AKjry8`K=-);prZh3t4fXk1N;0k*w~WB~NAnutR2%3Yx$U%HYIAowzb1taUXej9 z5v5h=j6)2#0yJy;P51UqOhw8C+J{L0+X(3rJv(0e9-(e__ltpO@xwwql$rY9FdiGp z_V33eRRprm5ej@Btpu0wkw8}(!oJ;<9s*A;qgfwt!gx4z3}{k3Vgf3a!gMsmC{S?H}^kxpKSg#`@@c>|YxJ z`6!s`+eQ74#dlg!MM?u)`L zmWMlA1WBQ=FeAE>^yXZqbK8-`@k343?(h5!#0-=CtA0S}IRJ*nkbS!hO>4ngmIBOP zoREO9JPyB5m&J(5SKKasxG^3V!fYeT!`j+}ee4Bvp#9FZ&tS6<1k4DLlEIPKdwKn7 zK})XPzP(srdD#19kvv5MhE}fc1G#&~;OIirgy*{eg4$xb@7mb;=^!UT&QRE}($d3CD)|)kJsq-l(`FXK19f$qo$yKj?O!Ki9_A33^3w;P}9TjeULYmKh zv14^CT{y3NsYF}-^LH`kDJ*>gC~C<7xQKWxe{4><&7b?;h4Hb~4_G}}Ski;*Z&4*F zXxp2fg&(^+E}$C1ue@m(^ilMS$X>O^>`22KNt5s1ySyy3kxW)Bj>tQR)GVSrA+mHl zd`HlVx~;%@U6Kv<1?2=1xc(y?Se>sv%nqx;2L7f~vv_FlDgt<2f>8`?G1w&sC>L;j z*p$JDURrgK%Rw}w;y4hK`pm$<+|ALiZegaYSJVqmkY6Ff`ZQ^}gi4IpzdBwE4nDWv zG&P`)T;g)^V;IwK-50?x^*M5pY+=xkDSN^D=}NK(c^m6$<)`ac%l`d%&HH_e@sw5$ zmoW-E_9;CRN!`0XiKf?#6HJf1P=X^E_-A$co)v7KQH&R5y-utqk^WQlF!uNLtgWV5S5DZ}enoyavat~0siK-&h!hR`LbZ!i>G*S-wWMsTUVONc%-r*?T^|}lgL^w7?a!M48vU&bM3Zt!J!()=VfnJ%Ax;R5VPBLMqDo3oU;V2`+ zs^S#+ij*o#cE|WCG4=XEdY|JBKH;PEm$nVF#rmVgofq{_qFcvLWUAi* zt2&r7SV5_HHOlsWH*SmltZCnB;vF4)%RoDSSjN;nIWy-XMKc>F7b*phBC0usrRnCZ z4RQm)*x>|;8GRwK{f*z6rK?& z$TKr3>DUX7nutiu6EuLuDHF`hg9z$&f`#TLS>^MWw1~i7+O1 znQoSh5X>R@nsPWLELO5#=J-4=Wc$;WUamI{;WCTaYS9!i{AeHPOi=g7J2VM#NtIc1 zcjG&zTlm!wv(lxhdXk%<{WV1gtl(PKepU1`kzD1%Oy9sD{&sN@1@p4?+$Xmi+4)3T zy1Lbx&7s?%jJ`i0-RpfViV1+-fsweK&!AL5>%WTd4tw~z zj)mGc)GZ_DTgSjn7Aumg*~cv>0Sr{0sw}UfVoE`cBS4pC3#X2p^V#SZKQ^k_0OP| z*nH5uJPDlqA2(Z5=(+1S1d>GMQHj!><`(iwq#}KSemuFf8c5 z@56#RlETh&25iMS8Zw-B1S$TzH=%9O^i4UiTEr5kJcC}1eC$SMRK12Ngfqfx@eLz)Dy~8O$-^R?_qw>ejoXrG6zRe-Cx2_W{FE0XK{WagZ-ZMWsl}hzFItkFZXbLzz%1OL$CJ9J)s!ct- zZye(Q%1ht;`QpluXYqVW!EcD^;NJ6-MD)1!x6SsrTnm%%pS7Cy{@RepJO|@n1qk20`yToqOeSh*Rt7u zoNZQG&9zpr5iAXMfLHv;{ao)ZHFlOQmdb=$DyE(ZtafrqQ`9;=AbHFmRo6I7QrQ+! zOUq{mQfk5I8EZrB2od0V6ot>p7A~kKC<2gNoCLD}{464?#rPR8`)|J@yipm43y)d` z;AIW!F`JdH`_6~=59+Gesa$9>H)evfy(@NbyX!tb#LUc%Di$7_nyMY^s!rWG8HqI^ zW0Lk(o;-L==P~u>y?FYf`sU4>zx`ir#0AT*zSWF*#a3FTqL9v2^|cf!ej$yg@uFsJ)<~Z4n*>V3buD zz7QGv1e9+iEdgeSiyFuPjIyzATlUlK9LToFzT{#3lz$-k`KXm!_$!5UJoHP@c%f3^ zD|F&;5V0#<1snpwXN*R^BEfG{)hQt=gyg4ZGe1P6MdNvfcQx^w|IE#xrY z7YYTZ$ ze)EQNFikYdaqbZj&-z3lrWA5_Wjc*&(;+J-9o(mfwbB;MXl?UIZBS-{>NhJ6y9&o* znwc>|Ag~H3tq=nAYu6{dt~=TiA_bbdx*={`kKrjPA0VtdP3q~lnA$oz7O&E{)-MlC zTn;Doh5KI!3o|e?gZ=!>+=Jf#C#v(LhGUL2&?R9}n3*sxl(!1&PZQv@SA;F-&;TC^ z=+gNB2Y(>?q~K*nfaD>A{ojbG35+OBiq!6As1cs`{0pbu* zQSD&i;eiS7(DSpip%s32pF27_EGCNdvY@hTpHY270rrz6ZKyh#lM%%h1#N9cB_}6> zpdkP7>1j&M63?ylOeSe*!VpK1%|!0hw)&el^K_!3Gg;FD_LE!=i!_!Z{ETX#9=@JH zv;g28GYd=7rEiavo}nE(ioH6dS&Ghu2EBW4|D5uQAp6%ZpnOOip|nYOPY)Irsm0-Z zJ$}tvgLhMtlA4-=ipuY=&}aV%NhL;447U(0O$=ss_eEitRjrC~yWBsRaa#v<3pM@u zAVhW~2fPqX{@-;c-FRm!femeDpjVPne$Gfzwkm7GQi1clTe z86STyqDqcpg~f-aMSxzpyH8jdbg`pY8ZlMXo;Thdf`~*)_VVDCxjo*5q((jOFVxt^ z_ZJ!{P&j_HspFl3Hz@jE9vab815b$qhr4N`kMt%6a&nSj96<+-k$0#XE-YN!96q@M z1kV4BJ`0r|or+-cCzqkX>=7iDu~nrz0`*i<$kdht1v-DC$)iIQw1EFJbcJL?5JG+l zCXGSYAcNs6b#HUzN~2M?Yv70H8gN{Z8TRPv>YCLT*xue2j0p|uTK~J$K9FkOhIbdy zLqtpaE}5{fxVUr9`H7TNQtD>iN=y>(?S_HjFH2FSj~@ltN)XF3wg{nv@%B*M*rcTQ zYQh_Z(0ZCIth=itw5_*%rr)8Cva&CK4PcFgO88y_Mx9Y~l%$_@?}z`Bq$~o+9pkn> zCgP0LaP^TAwSsG`=#%dihV=kir2n^z6TZI&{Fu_{{m18QaHUd6F+lc&nfu^tq@y>*aG)$vko|cdu)U^4>$mL? zox}XKc*vJ8qZ5`QvX81Bh;h-CXV(RGM{JYKf#|Ervi7K2Hxb`!zR7a)7!(C-5mxq( ze}(@oI>ZMPp$Bl?1yI$pS5Ok5BMlB{poxszz?|IHXO+*OQkjI4lyv%P8wzbr8;1n= z_-^F~v&ZzpydV7SC60~;t6#gQ?)m-SWT0jxgV=q*>66bLOrp!!=5dA3a?B}m7qH?- zgqbvGw>3yxSX%m)gOeS^b0LP;X2FCiX2Sf+5W+*G?AE!ualXFP6!u5uyCQ7FxYWh1k8zVkHbv-T?A9E3IIqM)c4ye4=s zf%+6=_*pnOa8@@hR7y~cv&IYbujbrb>P@nW-#y;n?016>zqoudMTg-3D^VwzsO%f# z_9r;_D?s22dxcrDCwoN+0c4B4!e68dwbK*w{bZUWF3= zH#~fII09h#84eclfQx7Zc2XXpMp#J%YqnPjybu%iDWQR`KE8Kwkk!!}1zrXxgD7k&6Oz$edr|Rb^=|E?mk@|M2V1Re+l&U+yXR}^y?V7T2 z=%x9UaP^Adp3h&&y=lBQr-#j77#J9^+uPgL;G42C9+w#EXVh=~3`R#r0#{dwy)f%F zO7{4Jj$W)vHk&<>OinB`HeTMh^@C|MtGYakO>EVW%xr+X2GE=mN1O~I` zb?`F?Nf=VgZ>|94KYu1qBKW#f#0F9dz#&0LzgZR}NA(gm(DqHckTX16J6sT77E)HK z3mG0BTK-7J$izguvGEQfQgHv5aVM?3swxDNp%ItrI|!GSwIef_)UNwNtB!vOMbAz> zS!UX|_4(q}_28#wrDuF(GB5rUmJGltlN&yS8o2I*(k5fiphGF3h_{n$UG)IVOprYn zIz+TkU0GSq(vl-P+sgH^{W&vBUhmsq={hoHwD}6&9|EX}+Kz6fm+a_wgm9wc;${bmTr$Y3D4RdA6)vO0x6APD%fHg~nibx-0s|yl2*FA~h!7M@Kv%7za^MARF(`I*Y=z9`#Z=qD4G=0AVD{e{JNUhUgEI?`HNt|2r0$)?KQt(uuh zDexXv6E$VIz~92%PUbXAmamvd9j6GiiK6E)%$n3GJn}e2Y5NPV9fciW@PCw^YBEM z;fTw$5yrOdG|a|uMha{OOp8}86&`X%zn0M5zz>&tfwl2NPmdkh5-1H9E;{WZAzsZ> zVn8pF#~MWpBNJf1ehtvM;L(ZynrXCL`^LW%viw>B<Se;w5E0y?l#XQtwI! z?cjVDl+lV7!bgZi$CiLCW?&OSW-0PGiq;jm@2OF{s@l+u$JCT!efyWnH#Wl1uRBW| zJDPg#ag6ok4XGirq6gnnQs1zDDK5%=g~3CJqi}iqg#}1L62rF7`PMc5M9)u~*ThFf z8Q6ox34imexw=%&`;KQvvYX+#?AB1;P~W0o=4&0Dh+}OuS53eB1U|Ym{M`urZS8O9 z3QxEcKGsix|BPmBk$MkM1s(&Dgls&Nsb0m!8ras|J1Jr-;?}tGG8!70RXZtc)8_k! z-wra#va+y9av;^iT+XU-E`*HWlh>iVt4G)}M-01HG%^`Kz#QG|~?-i$oeZC~jm{w_cCd$CF zK7Gn}H(hA241`%mm6pg zA@|>QZN>bgl#E4zt1com1Y!TIc>0k+^@mwM3Tl}AVmy@S<~seRd;D3S?mtn7CxMtb zfy5U8W$U1fM)b)v6K{Bbat4T56o~5D0OqccW!dJ{0umoPcyb|WNQc#wHH*-_%*X*8 zn8qj`RYR@o$E{0{3>5?{-=#)dkY6Li)-Oi@li;K1?u*U`>%nAJ=mHb!ekhy{eJ1Ty zcyQ}D3ffDe{s_ZPY8y@&;$R2-dJC7Bu6=St5G!Hy5Rp=l&bTigp=*v8Opw5Rsq`-b zt8Ib+GB+R@5S4uFQ_?1Q6>X#a<#Tc<2oEU|dGQ)U0}sxDcABO5jTr+$8vW~40<-%? zR1iHDGj?w93MTiYoEeO(iv4Hnvb+<{B^iv<0j~cu^DgVSz}3)m_ONv^gR=eO|HK8vY=>JS-Bs0U zEHXfD*plIdTQai>6cGM_?X3$uwc(M3!K-z$0Zs~@2(+)K8oDEIw;1HRy1M0T<_ej6 z*{wZt85G$h?C)}($#BC08_nK8XId@`V1!hyq6zrok9y1tl1-zFt_07)otK(zG(n+v z>?sDizR%H!K)G^9xZdxxWPdDc;Bq0*lt9LcGBy_d1jqaEYrwz&wGmP$Q^xBvJgADLpXBWw?@p5BX~d)c2X`)i5}d;o zVcEg7|2M%RKmqZ8BwzfG4w5*H1sEmRqbohuw)QrGtYtvxJ$OV=4YosSV7vLH-cK!H zpaplfrh(>sZT9DFGg2%F*|mxxCsP8hULiNQvvrD1;5~OJ4u}!nF6vk;K;Fk-@%ey* z=xjrY9T-HRlmL*Cu|z+sthbyDYW@=7jLTD#h?BBna*JRdQ4}Um7xivSMvoWS5KSKZu@<>pZ-@hbg;vI`@q+8uy5187XkP$6dOSy zNzPy;SwaXYG{Qz37_=Hpu7_d#V&oF16Kx9vGfWl?W|?8tn8d*$m{lDizJR>ye1iseXv6G) z6?1RqifHU{k3Zimmx*BY<%hZ+UjRHKV85%j@ApYSh^B?xm6w~F*Y+@dn5^cq;y@cE zl8$sruk%#*tIDMyg*?#*qFI;`aOq_|FOF>GB zRCx8wLX+?Zk!~D}5@v|BnzZBfKr-Z0zU4WLc~16z2YqCsP#!z;;9zV0$FuY`X>I*P z;(PNRDtlqVSnfB{LPx|2d{w_zja&(vIc&T$V!8J8FECM*>xOs3$B0tuObP?||EdF# zG{CQ*D)O9C=!1lk1v4w&{^D}x8NVStkwMRpdqk;(nc``+jd>-&;MntDX?zAoc*E}# zX21`nsQuyd;beRr4cr6za7m>)y!Fm5Q0U72g-oq{2PaI)rV+GGSpOkVLFP82=y^$x zQ|nSN1;#i*@+^ziad#EwB*W`xGRyYA1`cKCqNg$dD@O}N%*JT&djwG7@aL_y%j3ID zLAQ%KOTYd4?wEklt6UUNKbg19J70!P!dIk><6&+@a)Z$WJCp3lH|E@Lo4Wqe4dvkg2IAzbGf~zhY{;qswj@lczmXjR zb>8d;OJ4Qp&u`90Mu(k(vR9u6TS|ol4kYjS%9n2pVRtD@`JcMGagEUZ{|2HF)qlH} z(B*E?Z^m?jZ4ak!y{U=pjQBjy(Gxz!7fA`H_e*Kc4MiBr>D|VaWj#)&DBTR_xARvc2bFoF)Uzfy0fie z-;&P3xj(CV0yAVBHPIV=PYz2tck4bPm?t+Yf)$gtZPmm&dV|*eoOS*WDJ6!#WD~iJ z7*mCv{R6px>u#u!dvx@pK74~opoKQZFVSrNzuDEAP9EAST*=>M)M0W0io}pXKG>-S-}ga4tq1dXaUNGlN=KG1OCxYfWEbq#wh!8=Sg)+P1e%f0mZEjWK%j zY-a4^B=Kcvgaa79uV3tpvBvU8_A6&(inwT8ChDD7{qFkp3o~U(^7p5m(N^zv(GTwn zr}X=m)CX_e@=ZD))EoU0!%(8wOagUQ-PRNT+~w3nD4f4I(Ms-Cf_@_w&5(@qRz%-|TDey{^6T zTI)PxN#zK%?4!+Xac;27)pK>}n!_k0Gm_clFtOx<4SUJ-USPO$7=*r&AtsK2HzCXP)EWf&xiD0 z)%h`RPn19Wu$QmN&dm+e#zkZMki>JcuypV~Jyf?Z&CAPk-WX<(%ro|`sr2^tUI`)+ zK>y{Hxw*L>ausL`=CAsAbY%9V#&c_D2c^wP1`o}!@)aK#P^t1bG<}72txnX%IrF92 z-{%p%--Ua;;8yh{dD2I>zWW3;;=g{A*SD;}r@U4^KKMC`w+}_8BKKNkL=j1S^J4V}2*C_b1VC6Urj|m>t6zP19Y-*VDdi-WfH^&}pdt$s(uw!_Bo{gWM zKYL!he%;+f{_F25^pIhd)3Pij71augy3qR{^SKg@)y;I88XVACYA4rLjdZ^(@@M z=tjV?Yxl=dZ%ozx%Yk$exrsODB9#@Y{>I}a$^7SQl$*S=XkZD!jF7dki$YvnT-WQ} z^wUnJ$vam$UfWD?NG*5Fz%jmGhV z$&3aOiNnL`5q>u7DR$3o{(i6g967Tqe4{TqWRJ8C42Q3a4y_HO_H`|rW$;>5J$K(r z6L1IgkG6{M2dFQd5ou2NZJ3D8ihUOj4vrC)#Mg`&9Q6*r^P|~~)_gmqjQ%BXYSKWO z3rY^{fnsN&O+7d~lI8m>6|pMAab)lws62{Je^I7eA%W?h1uTjD&!%8QsRTf6Pd1E% zUP^fSWF1*O(cT>8zuGi1(%6jsGo?t7mtee9e%0{4LAQYYhK>|crf&T7I*4ezw@Gkv z{UO?vbZBGyCnl;dy?)UF29Ywc6Zn|iqA4dxBloiW@BItVuw|x)v@b9?3HL1UQC#+4 z+JNSQ!6XW5kIg*4z-|^a-98FiZ3>p7#(nfb z!79#mZIc`~W+g#3pl&8q83+#b7ON3C@{r53D;iqB;99Qei7sC? z6{v>*8j1hJN;$R03TmLVmhxFC<~RKejP0b}<~Qpb|J&28-(TGe5dU)ZZHa(lOMo6` zgtIQ1nHq(5sB++3g;+52FX-(FH%o={F(4eVz#QUuZ7LvyMjcwal;Ou(zp!H*qoB(GZ`5CA0_)o*Wie)Lhwp*-G?!6y~-lHx$F7l zH`y&K(Z2N}#do zb7;8J665<(#nQNVc&ms)L?QP$;KZ zY+hu*-r|Zz3&NA?7}EMsR8pc$i2XU$vANK4#P8GN9~+EMC0fA}>uK0accf$WGL(5) zNq8e)2KyD^%UbH< zYPI^O@~~Qsv8?HA?W96wztZcyZB}P2Pe|o2mz??IK@r^`EFx8|ApZAT+D;js-+ziO z&QB%2IeTTYx92Nj(oO-gsD~Fc_ERozqG`3CKD=r~W9FTr8DG5Vei1SMv$;9hNm-e3 zrh#)u_j=%B4e2KV32#8L-Z&+As?K2M=+?<^-gSiZ!kWji4O07`2UOISY=dD<| z{Dz|bx>;Wyonwrb7LRsogrx9qzlq~~Xwz|B94nvnx--?me$I0A@HuVq>l&Hkhuk%Z zql$5#{TUaY6mws2QL?_c)6>cy?A~F*M*Vk75is~^IC|#pgf04p!pM-L>qC*s)|p~6 zA&qE!2;fwOd~te;Beg@Bfn(7E&*~OC4yJHM!;SFC@~?}1Ky*#AjfQNhxl@G6BApHZg|Lbvun_Nom@KHi2;=jE%+?s6x70&8InH# zTD~-VT$CjxF6y_7E^@^X9BIA5QsI|@Kt5C92>26dem_YDhdsmyS+21@)TF&w!Yl5$ z3b2gt7r;4CefiQiK7UQf+&27W@q~5tqXVm0JTh6*s3#e@RY&!1^Iq8(9%cuxrmL;W z)unt)9DaW;mV(Rav9G7KD;e{fRVLP}?K0Vj(Id`syikXerdMyzi7OMwZ)@!Hsq1gDNpntZD0xJI>tw+GI zQC_Bjcl#+AXZn%4o8!&DPG1l#9y%{RJEeT8A$O@$XqL>XOS-bU8nOJ=e!!D_NO;}< zu*K(+_l#p^1sC-Uyz==~8t{qE_vAq|o!D~~P#_Uz)($Z)#`(s(_idGC?6WN-TPP6Z zs!!6tK>9nOIxpT!X->+Y!fg?$XfD>gD^vBDzRr_^Cue*_qVj(s?LM5-IXUiVFqfBe z;=3sidtLqpd3wEZiJZXfjg9{+Nvw@yj6K(MO|SKmAw##p@$tkDPAn9?An$tGYSnO) z%w#!-O9K9rN3x!e9J|CcMA-m7j~J27)#DQfQh0$1{@>N$n1tgWM!Ij_C+z*$ek>X9 zk*WLIDFh9&$%+-Je}W$G_>U$xKY*8NiXn)xQGDA4K+h}$D$d{z&eedN0}29?MBv~S z{OO_zLw}M#SSvxvRld2pMtvmAt;$+&qiA)xwTZY-)V{sA{Zl-FTV>W0Yhkm6N#3e| z5lUn7)Bi5;{A8}}MK5$6u1KErBd4b3Z$H=y4H|1SJ`tgH0IlMs3HdYCL?%O|OU*F^};b_%NcJf==SGrBUj!7!AxQfzW(z944 zmXt+E@%UXCRhs6VKK)4i@^jcDs*_&WSv}n!th|yP3{UTrWD(9p2G3tTkl?WN`2Yjx zDt-|Wo3s66N1lgebu_BT8Yg0w|Id^lfy0h1$K8g-OO3eq^T-h|XX{VT#S_1tzLGd} zIxtF~MzenA>7C@`leA0y&L5~5YIXtecGILEwK_^lHs3U(TM#_-xr~{ms7<5@f1vA0 z;ka_wXS&~QA!I->R3_|F@}yEzh4utZb$H!Y?>kfa+vaOJXFT@n2{drvvk+X?=|=|7 z9!BmCiT)0AF}(WVrk={9Q(O9XRLeBL@A}Lk-%|Kx{7lZ+7=hqlI4QBJ$9F6ob}sJ; zQifek99TEq`Dy_lNUD%$&xtYAS!<^{OWJrXh6pQz0?q9C$NE=;sNOQ50o3rpy6ByVo}6kaUN7>JFW>zPEQrbs>Y|k`#4}# z7PrEf=-?+im4pI}DOKRUuYV6Svg0jwVDl|z)^NdP=4KL&Drx^SjE?cr87Q2Q28L0< z*?1d4@)b80WXilhuo$QuAVcxA3PCOCK#r6tC@3H`qZRO}QP)Af%olPIJ+{;h4{nhND-@fOP zq#;X*#dHzFMhS++3`>$eks`dOlZjcMW&FP%6I&9XaQv%4V6`=j-fkoxr>BrQ@9QjJ`nD9gI$H_#OEJJ_y z5d*)R{C=L_J3LyQhpkq@Q=~w||1i^OJi&&E$Q{VxzJC<(-ZB)&>o*PBD=07`!sB|O zVpv45HZpjN{1KWjh8SMJsqQA^iR1+Hhm%lq|E=C=@ft8VK4yop6sikwm%NTr@F=|_ z-;q{E;G%1rzJuv?2pB10Jk8FR{3IcpBI+nE(H6B6Hn2v)*UncWkdR{W2ebKmQgk+{FM9|2J*J2Itbj;B?>MR*Wn-J?npm zc&a5XeHGSYuloH6nTLeyu6eJO=FYo0TBc?&gxBE%x{#`$8oIm;psDgcKgT6KTS?S^ zX#7qS0GkB#=%fnhsQO+5r$qK%jR+;%l?Mpl5$matC>gV)X4O5PB7+x*{+;yp#07z! zGz`U!*q^B@sT<&qbws5RYdBJlpb85-{8w$`P6tVaY@sg>gL|Ynz#u6bZZ-?{mesXo z6z_%8!usJ^xX+^6lCL@;p5ueg&?9ikn+DaI?E``Q)T7{#%fP_Ow&P!mp}VUtYraE> z^h|9;JfZ;TeCpB7Lo4p1hk8_?-p#a}rA)qz0h2{B6YsvjDfvIaSTxXcVhwk8{I%~w zQ(SsGcDo$j?iSY>_YBQD!ZgFSq`w*;q^#K^_G(8&Vn8maTWmezoYv~?&0M<`<%--CrfA&p`KNNTL=}EG}d|*Fp%e1Gf7@S zOG`cR<$-BDkd|J9nWJ4MxAIGyEUL-WCPO5Hi zY)kn0@hcNdH@tSIUhV9fg=UQ}c&l`@>{@e_e1_FZeLHpX1=1JvB%=^;VC9!_;35E# z6yN-+Oh5mbq<)pjFV-6=TNW4O{xY6a*@jj1s$E+ zc=u~=sz%_!3loYeSQVb$29_T(50CnW;EwU(+rRbiey0})Lfv0-1g7ded`v2t4JXT^ zZm0_PM?7U!sjThtWOx{w9oJ{``<>O1=n=}*nl(;c@Ys1UGCau(7|j?*n`EvE;v_)d zSs6Lj3>AYC;u1fr&syIa#1_2uKljQvGck~{Sh?1R=fL5iZ_l`37a8fV0)h>nj2&jv z5tV+|>?SUgEG})^b|o-*{~7#Y@tt)`RT)tTfq``1u}#y<$63Rt+f8krHN;9>g{0aW ztWAD|T(u`&@BKHfTt(08mp7`pNJn!&+gYn9U z*DKx~^SYp}&NvkenhZOa+r0?T|Ey*lZ4p9>=8{J$^8!835rnEwB#jXVo!sRiyCg2GTW$cSE~xl5kK7P#xnux(^=y^A9}Qhkoy$I|y!{Q{ZEoXtt9~ zZs>WWS)#tIL(zvG0Du5u-LT~I>Ewp2?mBVM*%C4GLTNaX1kTF~sv^}7U~vJ3yC!69 zSAOyW7@r7>AWk}JmO$anJ03XCLGlT|DDH)C)=j{{0Q8^LIH{2A2i;0T;C~lNb42G& zu{bE|dK?tjC%~MFWh45TuJNS^V$FO5-3tbe#DM`|*gqF0l>)iIEDY^?sujDW(TOV3^*JpVB_ou4>V)^7OW{EBnIqorF@c*{Z!TwX^e$Zr&tJNwk`RQSw;b#zHlxZBThnAQp|il9;8WIGg}Wa7S|U zg1`s>-L?(@)ncF=e^aadR0jwD+6j91-PuI32DkI<_dgsT1p!dBpTI$glE4p%Pdu>X z8=+0f2plg1t_nt$jY=Gp00|uUk66{`$@CTvt@c08Hs5zQ@7-f}amf5*EYLd-5T^qi znD9FslqCxr!dxF zijd}zZy%8OHFe+qQy+$f#gOVsW>x4Pp!&g#?Wg2BV*i@j?<><2jqk9C8ynr_zNa({ zJ#04r&cLwj>zRQC4BrB=9TyKI9#$^jE#JO7I14(}WmeDxY^=a5ouklhoo~RX4~EWS zet9cZ0u*&<#8u(;flTi$5&-|B6jzjpwJA{qg)l8 z?;-NKFP5WSFY_HzUD)WRGPK?1M)uT+u$2!I0_4@Gqlpyn?LP%^;Oz!%=1 z8cBK<9b*D-cWBcE6EO*VLRT5NqaT3r?^Fd0As@?pU*YceL^HvO#?TZe^sRtFcSr~L zmAu7fVhcOIVhQ&KBV*Ja=Z}JC*uPnHU@|fxJOtB?8@<#xMUjEn_>3F$;UybI(_k^H zvz_wf+o$Wk5(AOm#=cH#Li_#ST~0g~OiXASlUyo)iTbn{f#tg&xcXy!=DWfE@f#05 zsKbi5x;-0?1hsow1p%72RbaaXOmMeXOcn&a-~Xr%5csbt+3dzG8DZtBsKP;+ID*X| z#bnKoyyB{8b421lPyGwjXEJR7(0>gO90~u&W+A3=;i-){s9|b2Q*x-{SBsQk$IIbvzZYAw{6?bHKDQxI{0x?|6=Vg`S^Bn?M)|+A92i zH+e3Au0KI%(U(+!xz4e@3V+EBN49{u*0H_jpxu_N2=wsAKd*rR{;^!l$Q3M9BMwXg z2~|eMO8`$vKVqSoz(Ni>5i=s< zeDt&vOG6S0<7Xbw#d71$o5Y9OerDydMDw~wKO1z#4hFydn5PvlNY?7ozTCq5!+JlC zD+2@INEiY(qg|wOmsjXp&Lw=35gT-^BOYg-`9id7t6cbbS@Lf-?c2Lo$+_IZ%A9k3 zsf9iUxQ2v$BBfK+U$y;Q%3}{9z2fdaGPT~9-}$`i$-Y&LiLyCcjw>>}QMF{%pw-D{ zAV!SCkt=G*;F4C(K?2kPplNVe)(9-AA)kE*@j9oI>3u}>e$Jrr!R<3 zIlSx>HG8jIAS{?*8@Th5k? zV9t4;M?J)nz@62;GIFJ;S8Q&D0Y-+6%K+-ZeQM5-%uG_n7AF?K%pCd%N=gq8&*KJH z1;L3P${6akF;*3P2XHx;-WIZV$D&}`r1%8PR?%2 z-ST;9beg;0w4Uazs=IYPcz@I4UjZPY0JF!z90Xo|^JZ-!Sb0_`S)a+m5?`z4T~1D( z9PyWnr1sk;T2anWdHZz(XX`SpG#9AB<5`2(~V7hhy~Z*-hDVapU=CQt(*RS zRsIs9;g|rxT8mFEt$yg86eRO%VfFP>Yc=m(wBf8!Jf5I1o47e48LPTX1_Gf(bO6eo z2B@5P=P+53Jx#19ZOXV2RIxmN_Ro9)80&YPh+uOZNLd{hvp%|FkJ9ymcl@y=ob z=+A2Wua>($*?(_8zF7S*&aFMlTG%7gLsUH>UZpousYFUE*2ltXm7a6fy(2GNlz#Vi z;B#r)#ni$&-+7CX4t<^b>nKtGAzH;4MfT^5>@SMfI1R+5dvNwEo5N1UI_52}cpA#8 z^}Vl!wJi4*d8LVMZ$^GK(~PTT2GOCBpoq|%I{+dOYd;d`KJ)MH7ar@3izKDhVlyS? zbIFY*U*I8`cU=C|B=g$T_Uu!#uTW({gZrhcx9^iYouQXA+cU)wNv{@@!DHW2nuPPY zS`9LnprM^dg18H9{h4qVd8q;ai_*;dElPNDjfG!Y`N~GHCR?dy&1l(mn}X?V9LaoF z%FNJtZ-1p-vsbnV@|$x^pV;R=MHYSeoYy{IC1VW-Twtz5bUqUxM5ikRi4Oq^13|o5 zb^x^85bA4Xi#*w8ftU{&er}~2!vT03sUMs?1pzqZ+yMM%;4Zc_*dhEXa_AFfs(OuS zZO(fxs1n>jRPwUiQG0n=LTC945tnHhu1wv)^>yF|GZO+J|hmnR# z;B%?%H#mjIVnYe_bumLfYCkM#9kLp{S_Q%Q*ck-Q1|HnTSKGtBk=X>TbDrwj*w4<& zRq6W8p8otwFKCD+oOD^mSU)t>yQ3xtC^y&O1_CODr^WHNNBq5hJ;MH0kMBz~?Y7K2 z+5TRY8N#&$4M$?B$V%z(JB6Op^38WmOf-4F-`<{n)Ks1dnI9)?YPoi3U;8NV0R%(8 z+A9+&8>9yQ(T09ngHPT4b*H6nt zIA38ixR|=5Th2tWLz?yOsUBB9q-=4op;o8x`FMDX#F@{?dB^<8V*38_t@qb-#nk23 zAM3OZ4X;kj-tDzSis}BmJ&sbl^E@|9AH8u5+ai&Pft}vX)l}XMg4;e+NhGR(1WWn&4Uw8C1YRqe9-7Jv7W~hCF9fWV#bZz zL)#a_Ts(+SC;`g&Cm0~+o)j5CS>G%M@iNh{h&^`->Cg3zuRrnmi5uZ)@UX6h(Uw0| zm_DERbHjZLvF+4}eaKlcm0V+{t?H@ntkGhRh#((f^b*;ZNOm@}jk1X{gamOjMe!0I%rgyjC z`TD^#o4zsb>6(yC9P))vP0o*}oTAs-H;bGgluJUejo;D;Zy4LyLC`*~^p2rh)1~=r zWO;K=|F^`5ApJruaYjDh@SK+}V@v*Q9pk*l1)R&`-`wjkXTNowX56{m?6X-2vZ#xF;KO&kbxew82LMh;>AN6|3;F==!a60cR}?!^rOs(4`kU6_5tnqNtXH&Tyh#4pAC`TSF|7gItUgn26+ED>FfG)bu?c; zB%yVtFgjD^P;6j0nbS7@NMLh{wcpO`+1&+J@4Rm+Rr4tU|NSPB?U1D@Jc8Ql@SAQ( zR$X!uY+o*!O_hw?VZQXE5C4X{&8u$+#q|b zD|lRK9M_t6BL2X%bd^#K1pObC--iI*&t538dGmZ(8h^1kq^9l_AuX7PrtH%8SS!4+ z^w_kdmU!zWOE6zgG~)13Y1aL#1>|0Jx6mBFd*k&v7@mKyLLZ(!+`Ql^5-M>e^pF6b zx?xi29ko-x&Nso8m9F`W812cMv`A2${gPouWDs+^-0QCd*Y(Mh#6Z@Lc;`mx_gf2U zJF%jh&hq+;HA3q7o0YJZPGnif~b~e5^CJH-UCR|qDb94#I zbOVpW>egO*?AeHv?MGZZsXJsn%us3Z=rxw!w;!dG^htaoT07ieR%%OAR|3#%JNkU`_ETqs031*(cHD zX(Dz5;aAChPt=QNfsc-sOx<*kQs6Eta26~UZU4bduVV4inN-z1_dXGIh z07oQ)3wjV+t>CHc{{77|2X8+{+gCZ}9k0@gh@IuO=NSDdDfT&6?;Dzb>q|H6En5ev ziTGbndeUa^L{C(MU@+cl;tFz?=1%xz{p+|*d~7W2Nr(ThXt z@PvK$E&w*!@ll+)Ke6mXWd4NFiOt$<<$&DtR_4J`YtOwQ#Y{Jv?Sbb{1(D|18%()x zC;W*kIT3RBji{7NXS_%hTyqEy@Gl+WvEFK#7ltMa<#M z0_x?nTVrR^CDYF3XQ%o270W3_n0WaI-tSbPFtpU&$$&~KxQZ$yR|GIOw|U}c{SY7a zBv3pnm00iA-SdGfW&;!Bh9Bb(6C}+f24tn8^?yRM(^ybjp+GD>n@qiFjArqgI%bdK zV_h%83J5EvGVXc>2Rg(mci|lxW4526C+&&V7kJb2Q&pMvr}UMSJ?&zj_0ir^upbSe zpr6&oUGkuWAa*3Jl*nN%int$26OF4!YyTtlQm#Ads4c2Z$TP(H%l2}TC-Z=+y^CZt z%w)wNl9o-!=QQ&J`GmSbfRlcCh~y{^Fj_R$MQau+gL1d`b+Qu%j+z{~>K&!xvH3`d zZL93V`x74GI7E-hO-xs+RW9^Ttd^eUwQzQHibYTzJNNsr;o6Xx?ya_`7rNj$-wnPp zO}!VxKs?r>Sunj3ig=yjH53Lya)*JWeAlYPO|bLEX)%N(H=k{J@L7&0zPD^jM|tfc zl7mPBA1uYaCPJ!zh^%LQs+{Rx>ruCY1^N^Ep|<}h*&c;*{bf+u!@Kae+-$W%=yIZ< z1j98Ji&f7|(5PCL<1zp`G=kZ~vkXR6Z&Upr1O4w zB`n-7{AmRLo4@tOIpGS`x^Hs(Uq0j%_7hCLTsEnQhrreDd$uhqJRSMZ26yp+0EdN| zb7R3Vx-7K$DtL66S>(U2@I(ZjJC*#UWQzY=PC8Te-X-bp?3v3?Hjw0v3GEOs zvSXpMx=6L6G43|}PnuRJu6l&<@;t!d>D$x1uYBOxpTvZ`Zla2Nfl7P>VCW1}j%kKS^ zrj(u|N%ykMk*u@K5&55J@|=}=5rIj&uC~AmhesIJi2ih9%;uIkK7_X6Xm6%~vcG-w zB#-f9-~p_4-6&B;-9hhn6g)bvu5Pc$4Lr&EcGzA zx}jZ$%+{(0u>k{`+`U64==eMLzZHXYTx5xF15^i{#5NGWsd(Bi>mF`?`}A>)$g%k( zE^V*KRFc!Ga%A$s!I=%^mNLqqHr5RLEkBuoMt~pLxA%`*NXLT8VYX>zTpV-|YQ52W)x^7BixI z{T6veYCqy2kra_`Te}oh6Gnxh-urON6XQM+Fw%pmHYR`X(Hzk*My-4GM}M0qx=%V~ zUnf2{Yw~U(`5bYi+rHTTiN>DMO|~J}v!A$6v#O8Mu49pM$c`>?-a1=jRsDKtF7sZ3x*EC%$c-oFdj#OLzXB`=0EXB)aq< z!cx)sk51?*Lua2Nych%LuF>A($_=Mviyv{;)i4ZDj)!1hUHq@_c=>2j<()~#;J}z9 zb3)m(--7#_l|tVoH2ze*ueR>%7uD{W4kCM0Sc$XWmtlcu5jeb}RLGk#HhQkI$*0Qw zJ2LBr)YVtD_!H_KeO@#by$>=M9~1Yy^#~38oDI)jawUK7->2HjFL5Z6%#b&5pK{LW zzCFQQ_N|uK#1jZUQb6)%EE(YdP7&j6R9OAW^tnPnU?>)Xfcmri5Y+)l`3RPNbwV{j=^bvkn&4I#Ep&dx|X3`5lW`UgRmt->? zbfklXEy@)3lJTG;seWf9o_0g)2~|BN&PzZ;XBbX^r>(q_pYMz@)|5L#a+(q~^7)v| zV+aB^8vN2A9ZsyKdt|b8$0>T+)e8Qf48wnd0v-v~A|-z^O%S3ol(i|VaK)8b#A z-$noO%)cx?`F(-eyD>sW%c^PP7S7-4##-}^;;B<#+C%x+j{b~ung+NX=T{lkj|Z@C z>vSvAp^LCc97l{9dIuS{a`H;JMYS_^v(%>YGjU_)3KKPaP-X?fUk-yW|DY9=RnSPpcquFDe&RiTz$!&2nt0)cg5qIVtWc74S})s9@DcCp5LUw4c)dq` zGCSip*Yns+okw=a{Q^wvyn50Jze(+|rhd0iKi|nRuRp!-D zWM@0Ai@4$6>Zj6=yW1npTNHfP7fm~<&Y+F^Pkj)b($V>#$7X-Y^sf;qBnf}%Fd<)J zF@@2bg(TP18Ha)8)$`eJBTfZ$JQ`njKhM;f?nG7SM7$Z+w3|AqS?cU`w=LzefHowN zT-hh}K|n@LF+q%ZBu1qBpUod*Cr<+aL6OzXsQ>G-}PfG zlinv7#;oXoh(t@=h#y9Cr9bZkk)%_yyo~d16%v+h?-lMNJOpI-&Qe7HIE2F+j|Uc6 zU5oeTLuVHq#)8T6+{f&o$A2AaAo2h#2;oBsyc7eRGq}oaB@3)^4zCo*mA}6})qP`c zHlk$D?G-V)p22aV+N~lq362Xr(%o2LaN8p|yzCeL%Hd5=---Uar@YgbTuQ1(Bhz`{ z1qJ^#*Aw$z5DIG7j9W|SiG}5{gl}ScTsL9LZZR;Z@hYCQGpXvc=daW7Z7fzA^^lIA zti9jb7;{>Jc6`Z&9_X012H(>MV$EMt!J`GnXJA%HZA?VynJSca{`AGL`+h05mmH>i z2|7@+rGQI9R_>=nNZ`f2Tp!Po47`seF?K8}o_T-jwIu;0w}AAGf}3Z0%mU>U3xSuysnbXTe0-uqSY^Te zpI4+`Kmet8)aWvO#pSdCjUTXb9H2==AYRQn_|_)D{z8wvZ3LJVZj(v23u$ zQIdkMRV7okQGcYW^?hYC`ZKFZ@KFql*A6(sXAp3G%l7Mf4OA zpPO&vQo|>x>v!4lCYy7|&FAg?X>D}%JpIfwP=uZ|qPV8_@w06)o*+Lw3ZBipYLp*h z4&ae(xO2k=bz`7RCOSG5W+R6*WZGb({QWpCft$a-FTaTh#lXa`GMG}?)~?MSx2Ql* zHlwAp_~jLVio^#%3-W|W+`C%7BY4ld+zJDhj4?z?>&KrrlHFFQF5AoBaw+Bf@S)tx z4{KVzrVI1(@AD5r^>XZEotkPQmOL3I`&FN$7p@byFsK#yUq=Ts)Po-SYhxZSG(yLP zDBxj4z)$F`z@HY+M1Xu)`PcPn`3SR=pB5TI{i#V1d*A8%r0HtsuyA=#0DM{ zCL06YB`uoHukIg&5^z&OWMUt@S~obgw!=WkZcN{_CE=xGAwto``bmkEFfBP-F~nmk zOcyB4m&aN4Ec~w}Bq|dXT&9GR1-GF}Ool;Y=HG1AiLNebJ-pzNRINn}7$6i-6_06& zWkaB-sw z04+70WZ)s^EheuG#Ku}$z}SI4Ke(_5l&(10E05v8%5D&V%9wtD1u&*V5fqX-TyJQA zHcOF?Cn^1v{MAGJzFAkDtG7agc0Y@&cmx#B*0xXHOH&ALt3y0hAA_K<(I#`Dqr_H2b`pk(clSi6Tmr>uL=SlJevk&QD!Dd zrCFUB-|Oox#a3*Yy>F?aTBQwn%a1Amc!ebaz(C*oR|GFxx@!3wi*N>R0FLfN{lF4h`3g#aYJF6IeozS#sU`x=N zpl*kfh!x2!?3(s?PYf`u6Az~c0pgz zAqsWO82!24*^LReQzlwjrP6tG!W@+K)IKFZ@-z^PU4Uo1YQjvU;asQ(yGyvH^o(`9Hj)H z`;kyUGZ~67#YYuT0Kv!6ZE@yy)BxD7CjA`bU~H&f5^}nky-YzXc3gg=iubq`2U9|K z-ZM_mRR{^D0_Lh-R9~ylk)bNTXtNmEDBq4i+#3_y; zMFj~Dr`%O|{s-f?WeeC@*qL<&{>%IkF$Bn zgNJ~8*o9~X1AzxvM7YVBkQ+RcgpPSV9JPxt-JVtYi(84dpi9wO=m@aK6EOF{2PAR1 zTsj!j`}9%-yF*N*YSQP^B>h~f0J;Od)Wd5D+^W0^W8?aY%gpD6G82}Ja7>rJ>zssN z;I3<_fat~Uw@yu%H?Fh*2Y0{=7ktDEly;MYS+{iE#`k5}!pmz%cJ^c6apKyy3M zm{=!^*DV{ivw2d&*Q?^hh}E2x)5v_R&j-V3ypx;iIL<%ok_3GgEpO0g-T@(|0Jb3` z0JnUWdDn+C#wq#*>A8}&I7dU@qKlLm2^RPHEX=q#(`wfTEhk&EUmg}VrVCi`8wxF!#I|LuW-$#RQ^7`HJl6!#{V z5I`O7g5mNCd5J^haeYNaLf?Mlqb&I(_t70LG>S&wawssdX{|_0ZvF}YN2x|;hBoQZ zNMario?LA>BmUh0Lh$=qxnmsF?%U#VQ?Gdi!^W5vwSFEJB5sQD^( zs2}_h#;pWDdv}aRH-ltorh;lFTTN{0`HpFZNA-a{hdl2>1q3eobt>AfW`Xua7p+~v zdZVOm%Wa+JakPj7t>>!#pVJxc5~d$>->yXXsL8C*val8cmVj^~dO3U`+X*C_zxH+= zw}lIa1XcK$L_)_m+M8pq_k2x94s=jRO{RAOC!bt94$?visaHUYFIi$JRv>>;1?6Xt zhpUy4JrWIdI-Km*ji4Ei5o4>#Qi9+bbe?)^!fo>U_tJ^X#^_EZegJG$k!M`DR zxjx8>O8bCCVb;a*g@7>_^;QM_#r2bwjGI&%ew$|lLu)-c!lde$L?3R_{HzRNPB~^M)^V~Hv_o15EZg)pAR(->oS@E+86`Tf?NYzdUzu`&l&04hiL((vy!}Z9e7=z)if4DQ3Qfq01;Dq zV0H&O(p`R2{8=WY+TVD%W4I}~C2V>011*cNk6*9=%BdKva1cE2jXCmUuLw%c6sqCM z2DEMDV0ClQqB{0J@|gMh0{D4?wMeGB}k*D}Fo zls@Wa%g|Tfep%%B&!4t@ffKLi11WBIU-c>~pLF_BkWoMZ8Vr@;k&yg?mx%1cTO(>b z7JLYeU!w{m|F>MF$8GZ_r!4kJ^vC1H4q1`p(qFPpj1sG#~gytn6o}cET!$b3$H4_Da(jm$r$dVsQ1>f97b09%PYDV0F7CQNX{n1F$_>%k9FUluIij zeAZW#s?U?^$f{gF)yi;;6P=-bBpSDe5P5On6c2{iUiRBPvYace(wtuPPu1JGzhE+d zBup1&GC*r}cs}PdV~V+E-v;5Wkx9W~?*sGv^vkR_tz1LJ^>iI{hd*WL$DXAa{@Lvn zAfqMsQ&pG($mR&U83&R9cJt!kR{WWqz17TEiDj&S00BB%tbqmwBw<&`Yt3Wo^r8R9 z)prL{_5c5$J6x`Lt!$2+%w*4NgtDSCk`-xK*_%s*tQ(>zBn=@eWJ}4F?Ch11z4!Jz zs`uyne*exNMV;4p?&s@uUa!aVT&V^CNO1t{ha;Mk;ggYoL{jg&xIs5k&#L-zE5`yR z=XD-Y_zVzwY3hp@qlBELBcI`JC*SvuMYjup?cQw!7I^ZckrM_2=>0T5IadDb`U@lH z;v1C!oUM|O*9bgo|^c01BS7|(X9Zo z^H#tYCWx88W1*Bz>)lcPG&^nO_HTmpIJtMK#(DxFe6`SDL zCaCZoI4cFu%_Un zKmoG0eCkVu%hqr8T-to?tq=WWzN<85A8#A;lAd?sq{2MBy`;>}&IW)_GK^8#k+Ucq z2@ERn0bVavPakx<;`=iyB*{x?h7LM0a>h)`NSraF^?m!TpM#!@l%d|<5&y(V2>IlC z)BzQcWon96<$>WbFZ##&+P#Av>^ChPPt{|I4!Bo>K+%|QdJW&@wgN)jvP5gN6ep5E zmsjGsmtVO|@1tb!^6;YezWe;)Q}kqc)L%nd>~+4%GVCVS#A-pg&fCBt}^fhZv2EcVGG-@@vPfwT%sXEp*_j!i1Pm#&GHPz|xHrREsV z%`jbfB@T-1yPK}9_sNrC2B&bBwcc14#A#+qDN^tlx8|pxQ}N%Kp#;=N zZ3qzdg-I^b=uSPdI_NBo$%Wkk`YP4?$I~YB#h-Lf=FkK=bzWfs~E55-CC)v<~ zQpEx@R)#>x6`rk$pZ(>tZG`>H13G9SB*taVVDbZIOW8kVY!(%)ANc*i( ze%yn_<#CS}Q)&5R?t8b#o3z}lU9;^s&rdlv3a|rAtQFfb#58sd-|q0X6)*4JDqnV> zS$TF^ti&j#r2WC6+V+j%+M2f+-C;AF#EWxJX?f4g3sRg(phsX|$6|w0B;TkNi2+6N z_5Ox{p$MZ$%#dYay<#}E+(37QX(3}RQ-FDvoA(7~uVW+TAJMf_u*bG61~h3e$Qmz5 zp;Y>&B;{8SKJNS2y!KNoQ3dJ0R>61 z_UW2OFX5`QZnO$Y;`8}*IFcw|03Uy8KTD4o*wwQJZ2cpjW)oB4b*?V-XQz0^g7?om z=_rPcUawY4);;58c04s7U%e}bO|ts<-c3a+r{CXh=ooV7OV+qAF#IFPecgiN=sp3n zpV^PCNBqe+U)gLm-X+Ltd%q z)s>9Cj`7i!{9BcnbxD{lrM^31jqoc)2C+~UheBM@izaU9lxf#!w|}~seO~q z{mE5B@;aHbPqRajMofE+JHb}sTE^_CNx5`G>tYroKqtzbJz9nK<0fd=cf`(SO6RoK zUmolsZd0YspG?9Rd5S`QyS>x>CAp04MmoxQ3Y<0Yp zIE8&1*y#)Trs&Gx^g$xQt)rjlR_!vY8K)nV3Khit3vsRTymZbvc)Pa%!GNz}zi^$N z+Fjr9tG!c}N#fKGm zVC9+YsO%#q8QV||E(;YpnK8Ps*7LAtFXqoK3qGG$(mbs5WG(s*PS3vqMlMxpegN3t z52vl0TJ}86>nXZRnT?Dj z2(^A{n>!1jG`BJll2a7QJz1Mw?@s0TjHb)9b|+taEPm#;6(_?OBf!=1ggxG1OM+!B z7pAMwuWPB2BIwELugvxM(?dI*AF{&1i`YQg_u1p_u2-anta;|EtXZ9DxtijCu}%&V zzQH}S7<6qA7IDTRk9^bdQJ+7=D80!YNw2n@zp;R_aHJ{sJ+Gzbt{M`x}*4r9H>d%w7B)RvqomA03r$9LpPPs%=5==wkQAF(tn9xd^G&Bc3R=Q5t^>1>(Z7tMF;T35aE%nvxq2xX{7m4h zFrD_{e-dVq{ot$|JSr0*!uYI>e1VKquwv|Vd*+>suasY?lhs*Y+8eZ$WPO`&e6HT? zH1fkwMiDv(x;xn})nOs{aobvP6|uvqTS|@g!-Ap_Y&NwQNuHqPHUdmAF@vL@j6>RN z-m{H#*}TyRx0(E)wurr)(88;fE}Y8KQ2t=ntC`qZsHyF)QMsbjcJ*NCnjcS^jHVTN z^dkMk+^Abx38z%LrQa9(oLe~;=}4Gn_cKwljzwsDcZbYbbCT}fy`<3n;?wmGeG{`* z^bBkUKBJNhPQ!q^{-RQ&nJ=e~YHdX5Lcg=2!$oia-S)A6`{8ps(rPq+SV&MS&mF^3 z&82Mqdbwvzt)^~mz2})()`~2S?dKc)t|i75bIBR~EVUIk^zgjkP)z|8`8k4Gb}dC> zZ`Q*}-Rk=|d??Z;u5cV4M)In@;ePO9Yv=@J3`%<@j{D?CG1>3LqQlh-R6*NNx-(Dl z!m27(rw`q%!>|JTmkcuLpN66MuGl`{ka(%D0%~hrdX!y0AH+>YyPyWrJPK1s8_<-$ zFD`bwWn_FyZ#k~=)~3bONcn`r()TTe6*2jsrKjg^8Esc@%eL)D^gfKmED=WCW!%?7 z5s#5D+jiAT*#`sPInH@+6e!zev0W)xq`ek5?tNY&BPqmMSj-F6IQFh!d%wSzg}MwK zJM(jb%7?9-l`lmhLK`vd{6xB^!)ddPGDpC&sk96ygufeM@T&ao@?DPn+e05XDizKd(UXk zPICJ7<2~v6ZCi@Ik0tqyKIDO3q0{$l@7e3EP+V1Qr@j~)R_i5wPD)bdP~y2UAb(dXGZfBK8@UejaIh#Tk7V859a?=9SqWgvKh4}tVu zRinhH-~lcY-B1&(SHB*k-jjrJ?&RXYFOvZng_hPcLzI0rQHt`c3=8CRydcNTa|qpzgfSFxDn>5KhOi%d zF0^MZQuBk)bSU~74#|{RZ!JZxTQ@QYlcS_+m)Cl3oN?w)-=(m>GfY>`=w$PRaPNCZ zY19@;xpA7?GbMXewAdDOT~k1OI5>hEje=o z)CzGdp}7e)4c06o>d8mF#*ezjM~~0oDt|q(5&0Bc9V;oyrZ~FlP{d=GDq0uBnd%c3|P+<^}kN` z#nm1km`iWroAKUf`=QOb+#fdm)oXBE?eK<{w-xvLUARRvL`#g-e^( z=0=K6>DymlnLRbd>a~2u+*rwNcFdh>5Z-Or0{Z)IIljr zTCDIOo;Lq* z_FDtkQ#0@CWZ8aL{`@%CDxhD%Zat-KTb~b{hR)f$21eYNm&LyR$_8$df_WSvX~Qt_ zvkfq~^BP<$h8)jyl@(lc#hpk&g;DoP2#&0qZvJZ*bnbhZL^Y1kZ3SdMngxVe8lD*86zj= z42F`x@KS?QI&;9~g3V84!GtTNp|dLoe)W;rrVu5mdMLy>IZB3!a+5fDYBzqQ*RXRx1H)!0Cm%j+SLF1&ueMg0nM#ih9hJ|!~y z&ux3fWOEoPPyZ)V5}p38T~y(LNlwE*f+Bh3n+sGSqyCiq*e4{FcN-tc(E?($;f z>_ap z`ANnhCj>Ou*}P&M>t;*vzFz;tBTSdST;Lv5eht5hMQIJe41X~)?vrok-{;8bQJBA$ z@U`*wfuHlUU(D+|ht*9=={t;@`3cu7BB7HCbt%s~;r10&Dsi&dIVu%r2wXnY&N-Nf zzn+;1Ot8L)B5Xh;^#7xGRFoLsnJvZQ)8v*x4mI;;6(*3!#UNGS5vL#aCb__DH(h(} zKg}tPTF?B505Uyj&Ko%B!Y1E;=bV{^`nwyJA zzMLrbZAaMThGlFIyn1~}td*zz8ax6L5C~JJYdA}by&ZghXXmMGm-#ZHc&I0zczoctsTdP;Hnyah6z&n!5qk^8r16&U? z`#LG{8<>p<1Wz83kuQnwV0UPS8w&&Wt1ek?E)#fxbLM}XV&ZxHsgs`dO6>jrQ9!SH z=KgtOfm6}JIf?LT5%V9%FsO8d@C*=121>GlF0iaXVy(d)H(cFMSk?5K^o##w}zw7PBl~- z5DRc#h^NDL0^+u?wLUYPPBD?z6Jcz#`~CiZd>>37$oR)d*t7)(1;t`7}>~ZKwX=06;gHPpveOU^?w{4&hejRz-WmRb*= zRH6c{4@vf%M*t=YQ{1F9c8&}`iO%g+)VFf{3v%!m8DJ8+l@1Y0JOrSfA3%gjKU7u@ zNmC5Isu&Vz1?!Xvq5L=XZbbM!T9YOUd;$YF)(y3(+;RCzM2Lbg1O7FcKwDTR9Rujq z>xZna0m^kxfn&C}Ae2+UbkP)7)u7xAKbZpnU7Uts6-dE-XPm#gGG_< zPzj^qgW3A8YPS1vl-@&D?{jt%5!8wRQ~7^Q$8ur#(?wMSIt}Z47;`R+YX)elj-XF3 zjT9YF*!~&9>R7qT&_khu) zJNkXJ1e%ONs#+voL^ec87q0aSMd+b5`HkuDSC#_G!6n*hb#n}0b3FxqHYU9;<=_>6 z!5WcPAj0+(pEP!454ZvQkGkZ*39tQ;inTEDJT{elVtfxZtBU?9aF=?cVHVD#98xp7 z{9mL732AH%RqbX?3Xv8K)+jckQCa4I#Fqm*z&#UH54WYYjOU*D_nfkYuxs2iEpQ$m z`1}Tm?-S9JUssu(SrSKPA)NB`qUPeN~fs?kc#E7cvcmvd|$Y|cn^_QvM?5<6kM`} zJkj<4>ELgZD!P3NEOvm=*pcDyMQgSXZffo@TDTx=12>R8Yd_DJ;vfJDG}H=0%J|FG zaz?Baq)|$^DvNT!N6rhuqjL&;42YN818CwAz^A+b@G1MRowUSeOq1b#0W?RWA0mq# zTd{I`Z|yn>xIRg;H|_G*s&=fG1FzALyp$omA4MRgq1n6t1j8w?d2@K@yjky112)E| z`uimT1!77fr>vy#{iAgxxq=#{&w!Gd$_Een<2{aCX=Tt+7CbYb(U_3&Q&2LiR z3#tL1zOw&;av(ABCrBsWur)+bgb34u|20ymMO|pPp1;ap7TAk~E4ax#$dzD?K4f3^N)Egr(9)&IH zjRQCjhe|EPC5ZmA!MuMvY~}vSvd5vBr=#mZ^V8Hwv_L2?b?55MfLaZF0BxSe!5-@bUNYOk2iY;8NfJ=_HAN(@h9$?0HB{;C7nUD-7-1@@h{$Hxx(V( zGK{6L@zfh)?GfXf zTc|heAnT0!S(>RUlC|4+_56rh?2 zcB+MlAW;dRi^=dSbdc@M$K7LPFNBE?dc)^mua~+#g%s~EO3gpfi4mI?e`0$=u~mTV zXbI$Z8BT0(uN$D@V*wwN;d2lSpf!(R|ZP67$0Dzkwo06ES1|YTrkY(Jr^ugpGAZW z(5$YJTMV>w^TL*87H!zFuxEa3@w~cpZInv+>4T7v(1rmBq3Xo;wcY@>Z)i>A9dOab z$F1nxCGHspPkY=K?ipr?FeD_Yzwh-@Z$N+@8PpqV6!?lmY6)zS@i>Ywh0ih+z&^W$KIEfmEPb9vFU_FY^ z4P7AkOd{9L2{Z+{N}kvl5M^VN^*+!nB%DghE;qtTnJUcMHMew`V7C5;!n8k`pkXa45pq-Gk>i;jZuN0^&_a zzi3Tf);Qo6=q0e36!<%(5b%(m)g2sA2}$I&C`avUeGa8*u`E(7be#|YNU+G0BuAs& zj2Y}e5wdO~c;s6>(b%E@4wX0-aFt~5lO2Kwvb45oI3^>^>nc!mJ?+)6`QnY0B`!tt zDy^JuIcPFifa@fIW35AJZJI6jK!#(7RAk03D}`7PgODX5xM%9psj!ejc2y5jb&gM( zUd!tha0^`W_!lLeKqO?X6!;yaQ7JoCltZPhr(X?&+kkA>2Vu+XfJ>CX#!6ywMZo0I zbIsYNiRn8fJ^x|_aXZkzh3v7$;1Z>y+35=ds>Z?_9;;5)qB|WJ&&lZ|lYgeJjQ2Ib=^Aiom7N1(^0j z@d$)k{Uyp5GF<5JG(RAF9gQu`n}3KRXfyu~zf;l(yqyVxXB5bG#PRSKY&D<=ng^%; zJ4NaAx`A}r;1cEn7>ypv38xT!2Qhh8KKSankda|PK;Mc9imCq^4n+i3>sf8~0Z$)n zD+EhIfyJ~IrKJ?|{=c-4vz<_W45?jJA#4rOlzN{Y2$>j5DFtOtzg_b0WFF502xzn? z0F!whgB9iNfNAI(3j6}HCx!xVmk85Zy(Os8u21zy3Tu&oBD^02T%gE^gJ{PB_0C&M zZ%QJ?9@fhsuSJ|j4xA_JRE`q4JNw2XL3GTJAro_H<=m63h8SV#2f z?yK$l{j|1we)YlU@^C1x#_l2T>4z}FosU!K+?6~0kS8pmzE`&ls8DJYpc(O4Ytd);Cf0H0To4fgmU8~m6EOt|-%zd%E+ALxH~8)wS`R$7mu zw4{NK|H?~BAtcQirvr(t-sPhnKtmY-DIsnW5>F+hN7Ng$?q~kn;2Q;gt9GQhmIZtR zu?n`~q1oPi((l<2N(ZGslTkkbFxw?CgS#ZYHL!Rn$4IxOz>A@=5DA2Df zg}uuR-eLx^=D^xi_n_U@(Zn(;f)o-44*1gno(0TFtCQ1#;|EZLoiWHr_5fSM=nO9? zeAAjVoS5t-4&3$DT8U+gwiK#j{g##()c>`=gFK8w5e%qtxvp?QA!re0EP>TfbHq7x zr`Nr6#{G!RkPjyM;WCT@*LRB|sfGrfl?S$?rslgn5Rgb=5hpzDB=PM8`Ym5UxiJO) z9*%p)hb+q>2r|v9(%3CI7-7BVbI*h=V)8lwzk&qQlUs%t187AUk{top?%#Ux+wu8d zff1sXP+Izc>!p6+DWpklD6J>yb>9&9j-dZptloil6Ukm76i)&XlOjs4W(-keC%XBU z9S}L`QrL&ICWukMR2g6je?Hd?ZPwU|GN~xfqCjS_?jcM|0$Vdmh7BzAA{L}jgDQ7& zUg9jq5m9HIQh)gH$bs+BpfN?>Pl50&>;uihK*1fbIGQxvjp~16_;AAr8zKixjfI=Y zo)@et`OM({10YKuj=vWL(+Y&!-$d9dGxbp5`B}iaFa(C;#3lXV)S4$Vcp0EM{`GYn zX+(o#<%cTJ;yEd>^;;;d?PQo%*?U;LGw#E0(Y?8gm=sJS0{bpy6#SujKY zh+NnjUIJ^;jEXo}ULql~|D*;4e_&0K16LJhuV)o@6`dSfyu!fWQfV zv48Tb-|M=`Z%{gfB8U~kXtu^u0G^>e2$l|Lg8Xq31wM&-V|`cX|4emK)NguyK%MTq zHOX5#X`;%R%q!|y88gbMLF(59BIN0Rgx$zXE&ZW)*)hiPhMD07xwdjb-HH~~_NuBl zVf&M{-9XcUcY+?@vk^ax>f7!!%|y1iXpI+xZvjqZbrK1-jY1_(5SxM`;hX^&L5Lqf zyDDN5jzDsTVpLBXf9>w(ArHT=fXLFy13EZoiKynMlr=*Ri^Tr$XLSV1kGU z4++5P6`VpQ90?#!xC%^J;jUah`QbL~h!p?hl!;duY&;Jz-8(*m)q$4mMJYuE0q}{2!Ew-iI_QDl#QAriB4!s36rx2m$5v)!HqJcewJbmRzf&!D zZu&2Hxr;KNH`T&nH8&*{PDLYS*AD&j&}T_;NG7AHN}a-W_FOe4k1OL=o4 z583I#f984)F*#a1wj$)+EiwqO_=hm{!6iW3?O;-}%Kq9Rn zc+MdcH~?h7$s|ge^$dX(ol$M)kf6Z)Pn2L53%E}_mKDUj*H~LWHP!nKkcCvml<0=# zduWSuxzV6+ShT*iX0|TJHy{*4dac2~?6JSHpu%9}bVJP#&nTj2UWJ5t!LOHu?O(;I zS*NUSk(IX{tO~h~*2*@5NyT5>zDf?{ePFm5MDn;>?sfa3XSHxaPb%k(0i=ze0aF@O zM0N}+!YTN%DXi#5iXp5>0}3i9aRmUr$1W}ox6cPqr7Jl+U}&=lE6X1ZOFs;>#cB0d zln8`iR7p5Pr{2%`9Elp#^3l4NHGHdH@c*h>sV*Pcg) zglgn{v-<8JHb6vu6MxGByep|c&G|r&xLUT0>83_d(9Stg8SZtNZ$BFXECHM>F<2ew zyEkbn36w7#vw|1mtMp)6>+~kYUO4xn_3ObUA9!b0ky_V7oS+Rt9K@rH7UZAMi6kh) z2*X>npbL8M>Kripg%<4hhV#q-K5r3!Ud5i|2~8l7os`iCBOKlVTw9TZYp;;iEJWZr zJzTDkD+FH)xAn!WA_*;4@JSU9_!m;4|8t2vZ60ecX>i~Dh>S{4;cVq~`LSy^75z+} z(3|w5U|Rep!QGA++z=%nRw}pdU#WM|Drv4}jFD9XOlzCQ$SP0hA~E4^GbO%c;RAx_ zTJX)kl>C_V&(Eu% zeJ3dKP8giKoq$T4UUB$&VHHb9Sy<62cbvpipkM573M^(16eU|MZ+BK6oxLDZec1W( zW#HT<<>lp{ahvm-`*UUU+qJR^XVQE788ZrCNio<4kP~%jg3O%lYb!z$q5od8reHaS`D*e6c^tlyA|#|*A zz{-C4OIyO)==+7+VtVOHfqL>cKUS6mWp{WF}qD-dHGSEh4Op} zGXLyOg>1T?|N91b4ga{?L*Z-B)N+bRM#vh5f-G-D{jBzoRZi}!pN<|~c)qNC*?_T8 z;n?2HI=R%qykS{5?xqa2!EX1((Yf(o|50I z#;qdQ+)_~9L0T=c90$E3d`@|9%Ul#%i1B;SZu9}GyjWM-FP3n@p0`PL71X@gDn;yT zGL+UZWvLeK2~0fhe_@6}8tYlQU2iZg<4zeHGAmZ|y^Ksw=uEBd+XU^QQN`E$&c04Z zva^S?Z}(-{dtIVMv!*7L?b6nBrZJYUm-D9!$ID4+rd3tq{I>Jmc&bfF>iOvZZx@4uOl;Rs2xI>g@7_!3@v#$I6rA?{pv!Ejj?sfAbjf zz4XjE^Dlbmi2z*Ti&0UBslipp7v6_)I|69nYuwKE+N)Q*=dii?o>$-yB(&3cH2xYI zk;O%h={n5}Rv?XTz_UE{;8}W97yvpp3q6blFjvo0CqG#YQQ#ZxaNi$`W8L9ju3SY$ zG(7^IGQNh1Ke`0h-Z;?)s8~V&TVg`M;8y_lN6CP2*xFe=9P$Xke9}cU1!kW@Q6Hzy zTVQu=0M8Ne#mQ(}Jw4zp(8wUxGK6ROTEMez9Ht*nGmFT`o+ zxz2`wl&*Ock#&O^x=A>z+ulVBR-ok|^!Gn={)mGW?Q`3v4~#8FX_)wJ2Sb1m&|@qO zqhSHh#Uiyls!}rc{cu+xIvqcIn)V1Lx%z;3zKVqD>~ z7^PZWQhP%16c`pSMJ#)Vkbc@56v?15zC?FrsDbUukjp0umro(%u`Zt--+5T3`ChhQ ze6S+Ukx9Ag^{H9MZYtGzMQCWK?awj-NrFxDL?*Qk0u&fUjhj?1;&5&L2hiI87Sf17 z1g4<~#QKQIbKC`gc3u?3f!*+v%>O5SOx+$$7l}|1K;!#>+QfPMCb3pMw->IeYjpwG zO+Z1LC{Rj>OQyn#h=>TWQVy=J79KXQxkLZP;RTf&Al4%E0v$d&Kql?7cKaa(=9naR zl#2x{6oRTgEki-{_XdY|2(*!PG~%B1;>D-VuCBb?-0wAkhj-P~)I9zC?DciGsRAjE zC87D`TePDHjWfJ6HPj}`Lp1LCJJjB2Uv~tLIAD#I`!kmvGVB>aK}T!rPwK+>A3v^` znVO!R{`s@6w6t_#Z*PEAadc#)ba>cYURhbXV**-7v$3-ew6@01`eb!=UEbeX9P`pR zC~a=mhQ5p!6&Ih23WOm1w{^FbWM$7Xd>a}b?jIRRn;r3`JlP8wHw|Imr^Ms=fmKN? z&3G|voJxg;{bUoX8o^@)v6SM3Mo1I%8E`UJuU;+v@WD1V1r)(Bv9p)1t+{q}Ow+lZ zK6smxQ#>$mO;ALnw5CQWVQI-pP(Yv%icEq+LLX96nBBNbrlzNL^JgobJ!4HxOOrBa zk55j%wX`3fkl^U!(?3+Lt*xz_KYv7eDXXNU`&~|s?lx3_^h&#`JT!O#a#$HYANLmE zxrgBSNs=q=G77lxV*#3n*F)IL5tDx01-Ji^#4aiVjv_*{u(0$D4%*)hol%rj5I=WL zmjct&+FDv(E^B6KSq7CVb#tU3!Z;-+g^+8eKYjjOvP6N-_oGo{jkK_E%a4P;p&^Md z_Pg#8OQW5gH!5o1yQoCl2kGeQni?29D)*ZkXlOVO?L3HSSOt{9#*;GqJaI_2;LXeA z6!?e*&OkWkc__$T5F(8|&~8UVVmh32-lveHti z`Q>HlMPepKMltg@n$^;Ba_@NOL;#&1d6`^r6+b46` zYodhCd!{&Z+nq{MNrF^cPEKxvBf#F-xhyS>z4_ZWLqdHlH0;U%0uMmQt@7CGBx@1W zCcf;w+y#NLcX7yJ*qRa-uzPr{Tv`TO3p>%|le}mh3DVQkmsV8V&0M`|Zf?%UeEF4? zdJIJvJt^mh9JQeuOm#jg^7Pv$Po9Wr=EWBlp6%LXHhrbY9y`D`cCU}lbw;j4edulO z>(_j4F;vw`;^H@;8lA6Qu8}HU2Qy!ezT!heqX<%Bk6d99x6pgxj4a>_6HnX>(mdon z?Nfs)Ed3?V)~{s+7xLa^nr6hrLk zdzZi$pz4bUw^@yxoZioRl$`sqaH-%$02>n%(`$|JLBUL^h$Y!`=WIx^>dQH@Vsv{T0;B-#@Q9Q z3)}0xu?N3Us$AEJ!TamYJfr}QX2X@J$E_9_AO{n&g3is{XMjx>?TsH1GaYlFAt{S_|lY%7&uVi zPOQa-^LK&~?xXSM`N(RBP^k7p>Qy4pjSuSzP0Si7a;60@wyT^_m`--W!8V8|L_J5+ z##X-^-ss@Si^IEf>%K9aFrD7SoD2)Kn!W*_%%L|qvA5r>nV~ls)yS)Rhrl}p)0?E0 zxZ@OB7J&X=bZnq#93S=?darHcA^<hB*?^zJK62@;VhB;OUE&u#vwNEJ;vV|}Y9YJG6~5C)X+VUwD9XF5o8vjtT|!#GMV zwl_nS0Dvr4bOrkFa4;Z46`)DXfa+${)0?OOG*B6qR9P5JIJlTX3$Fj7#Gj!B|Ct*M zu*&6~@wyLWbt1Jk=}laAIzCY1w@9GRd{;u0e!yHCNOP^=e}#TR&b>u?lkJBz8ySeK zCDL3^4DP#xFmR_ADvO|lyCSH>XN%@<#R`9IIHHn>gGKaUDfKXd_+xqeBfb)b0Lw=dN#ctP7LUqrMB;B;? z%<5Wjh?##-(fYc(uWyQ;USO6}nU~9m?yXz5r1t`CO_O}9E#@p(4+E8nzS85aSO(MU zExpmjb<*ktEt~|HS z)Oo{+;p6$t%QFFcS{>RnFRQq{Lk2e*LCQF32_1W&Wn}j4qElMX%@YfTlo72#D=`1iO)W~ zCE)hTk0;LHduq%*JvU`4wWYjfYJ`19Z%48EXu7SLc63yN-f*t`p`ugh>5&HI9d=ua zn@p9|F+R@A6!Yc2!sVqim7^0cf;*NwHdOp(oP&;m^~cxuO?&wmmzG&^C0SCW3jy1G zN5R#{7g@Ge#?+MeOf;M98x*T1)<4U&Hpn#d@mjvo|3IJm-jh#jmO)hcv)|p99582) z@8idpzsi;;@rV8+xWl_0xBwF|t6B>MD-K)A!1M~+_9GXK+U_#)SDhsv4{te-RQWW2 z>$$?{N#~v>I~}6+(tP3Q{$pbY@C?sY*yPU_c7hf~Ll}hurhtGr@*0s^t4K*U83{eO z))t+K4YW@$(io~6EcuBWn@MNF3FiSp67Vm}VX$%rERPrtDi=ODyQPQlU0fQjgm!lI z_fXYJb~krh|Ixm07mX$^N>L64oHt!dq@Yu`jLhvKL zc%*(y&!Up?_6TW>?xCDtY4hCtw#hU9uc=!!=yY&>u3Mr_Qt&9Xw79e_G3N5CTFF`Veg#d=z#CQ#i2^y^`yK~ zYnu`_C#CU8OG{Em?b4JI+?(OEMZH7uYq3qi)TJRAno;Y-cia~FSKyZF-jhc zWvh%SgbKTTyz~9@V?o6Vef1CQioOaZiB>6ohC7MI4n?J1Yqqm1g@|#Cu zpB6J*vo{Op-EWayXE?Qc>pioK`%c8-K(%OKTp1TU)FXURm-OqlU;fDwgI4C;0VC_uTwn4rU5# z@Syfl1}<8dM?VTORf`W-}5Aei&z5jvTyOeL4YFBxPaor0#@!BtDF%@^7&ee7` zO~1@?R5mg(*^)Jn|7+0Jvt9i6j%yihQKuLpt>TbW18m2Bivt&_^(rh{u^R}a?4oVn zXpLKAMP=>HpxE0~cdGfPCnCu1`EkzE`X$d_uN`5jO|l5;?(^M8G1We!j{WdxGq%NQ zS&Y)dqcT1-5y|pgIo>a8q$jqu_`xMaMTLmT$oP%>RauMEqW(6<;&9kRrPWxk$Xzz5 zR-)fd+Ji&XBcJJ3bA+Oz@#0H?bKqr8Sr5_lvWZfAV>SQQPL}xq;)UeewAUmcgHuiw zl{Pu}QTEN0#f+e^ll^XhwMF6Ku3yk{TSOE}$|1M#6>rWcGb~g#d$hc9d#ob*$<;gG z=LItYG#p9NJQUVvl%*a^u3jVY?>FwR-mFQt9lgncnX52I!cwK2JznGl{Mf%xPZhx6 zda7f3n92K~KECm1Lb5Uk)hkcSJWH-}x-gX=0;L3Q#iQH6>P-6!yTP*jNOu#Z-swgK zRE6k%^~(tz1vu}+*F+IJ`&-ft%gN1LGZ$c!{4`ja^X>GowOfT;GYLg#@MSc#7>^Xj z*~S4rUUbwT^p57!d#T&1)EhYHXgczrr|O6VqxH>Z3HF>PKH>o$fOiaay8gKE*|F4b zd*rkuvbQdw$f;4Js%H4*$1oBqYFYIp{P6%f{1kVmZB)9bzM0`=s3e%X{t@?*K%Tn_ zgUEIF{O{|Y1J#c?>32tyZIVZm+nk1tZebG2VeCDl@@Eb0F2r-3g-#x^rapJCw_&|; z-(5DkvBj*694oGdv|PKLytg-8YCB7sGi*U65HI(r`H<6-QS*`DP&f%P(>Ma!iHu;M zdT`b#edXSi+hFNpK}yOZ>H^P-yv_G{Kjtl_!~3kr4ST;~J@s=-k7?`aLi|meE}|Jm z^1IY03)t^yP7a&R=2x?ZGiX>wKIk{9yuYQ{%Q@|5)AcFYKHoRBq@<)+ycZaM{?bWbvmIdU6P>R!#t58YZZq*;u06{y?%Lm zp}#mTf@$jUs=;v=9lb^D`lru)V#eQJ8ZJ;%*B=xF$(iFahHnk;rx2(ko%sF9^=M|f z_gyMz{W3Pwu9>w}1aQV9Fk=nZ^h5Todp&m^A=UZ!vGpRJ?~3jg8`xv(UN4OXfxCzxAuK2?%+H&IBIv=U+bpZm=|g#MTvYp?468Tl&*a~W;5WJ z(bLQPh}*dcP)*(Ze&)=X21=`K48}XQK(vT7R2>CM3{?cA+FKjbNxpW&ka;_sJhE8k zZBS~ZEs8k0;BtBE%krM`57-1==*gFq6`kHg#Qb;tuB5;?FGOeR8 z^X#VOv=%-jRXfB}YbgJH_AA};(;-SJbSBF2fH?FQD~+R@Pe7Fqp zvwfyq*dxBII?{hT#JU|chzBqMm?FFn=7KjhH#|ZDyMt3`h@#1)6~7ij#6_HSCW{s+ zHko5MF4QXez>4!~xSws(HJ@FS7E~Rp>Mf@iczg9n7;7wHakS+LqJs=g`83#AM4i`h zT|#7$tHdy0k#qdi82pA#C~1g(;3q?MCg;y=W`(XXV^66l}IBvgCU^wiYl zE|fpmg$^hj(wPJ*S3TQQ#1)z+8k6`eZC6>5G0>0qN6Y*iWf18Xip#|95S2NPo+a1? za!q|tO{WqF7pq@>*5)s+Ng^|p;Ns%EliaI`tN(mzO_<>ZoC~&yxT+_lW;-6%_QYPX z(+LRP^sq+TCznjwT%wC!qNLX{T=c}tdrxs*KXwmcIEu8jih~SJ5?jGvziY?cx@;4B{@#US*Xd*ji zCWt_HuOG{H6z7caZ)B;leYKdPhf-Mb^9RTUuc>(m;5F;nCp|IC2$qGC)8<3B(%U4r z$c=ejA4>KtmY#=S@P%tJsAtuf6+5qdw`*&r#Fz))BPc}p+v)Mr+$jFY7na!1&3>o- z{_}@l%gT38-?;q_P7*<8QJY>;7bxrV?zyX(AjYT2%AoKKx0za~=9PU!;e8T(edaF_ zq$lIsk!#a_wudZ&I4}^7-c9M^;rS?Si}cz;WxrHUT34`9m{nds(-AWuAMqG7NMd(g z&5uex#H4X(-Jxnq%D_z**<{3F)}uWCutd1BIi>GsKGY_i=j9$y!tKrH<{T;|%LTqI zD5K7VEql19F`CqIi?*PSGGU6 z<(P2n;D6(I5{lt(ZrAOh=yYYbBwYFe=fqsZ-Y5)iF!j?cxJ*AiO9Do&n-D83Cxj#| zdA*-kkP>H?+}ks>y2${g@#X>rouVP^=W(aq`LrqU98?UjOs<*t7DTZBrh2lcu%Iod zAIXec`Fx*MHKG?h1of!J)zwGVZioAjtu4NzeXx<0D*t9d7naVnM%^XO-AdE~`2`Aia394uU;MmcpNhtN3JW)mTg*pWcNWWDgdtSaD;W29 zWnk0O&%Pgw;4fJBP`ywakeCu94p6%?FV@4geMU&+RVivVi_zu_vgdUs?rjOIUoUm1 zYP<3)W)?V9RiLgZ?~4KBX;;a|$W~SDr6|AByDG#!muCT0{vTU!9o1I!Z3~A0C3u26 z!M%8K2rk9lT}pxCZo%E%DTN{h3N7x%p)FdZP+W_<%S(Uv-Z$R+-nYgX`Rn9lCs}*# zwdbC5t;av*s>;N2{zwfrB}FoC@H>$Vm^7qU&}sBZd9TzgG-6UhW167Kliq{KYR(GH zOiz9rXoLnlzy=mjcvg>AW06Ths3?v`0x~@c?XlCi-tx*hufT5ZRZP8r)K7h zf6>A8@oB%ydSqqkwQ_xpXC^w@x?dCblpv_YS5w)h9U=@To2A`P1_8&uy*v?ifQSqh ze$N5)Zt31W-T&@Z^Wu3fT)w&z@NZ`;$d_<(?;aH>L_Iis`24zqaReO&H%V2<#uaIE zfSeWnridmpB}mo3;8d?lTvk$1l%6MihXBE~g4*aB186+)V0>E!1BU&zC&~!6$-VWR zvJ6JQlMD_qM_db$*UGgd%eaLgSvcM-*D;M7-sHf7$zNQmk4QhLySSG8DXA|O=E z+KJ2d7w_wy9cMc-VD!=VCwUaochode>&9G@vBl2=Z|GoxgS2oLWeOyEMC=PDO#+ZA zLN5N3di-y^KZN_vUER~ zgAR(J0Qj~+T#{68_XHt;ev+*_T$+26Y!yvYdI*SrZaY&d;nc^BN3AT=Oe$3;z_HAk zDvtRjr5<`hcS+ofbQl3Er}pvU6(}_bYY11iPGDg`KRo!`YFn*S{$V=NSkfB)pf($c zl>7*yr==nMD`Wk_boGE!)4Ecnn({Jl7@d|b+El~rq5%9Y!Jk|20Gr8cUnuD@rdb4q zwS*=VS%aYgQcpt+fi7Q%fq0_PpWMGrc~#bQ43fY)Xr6$ zc(4tw2c`5~f4mDVUfSI6q9|DjuC-DQtZDqcaE3kaN$jf>(Ai*snCAMH&MknmzP_j* zXqQHo8wG!prt*EwHbNQJxyM!e(GSq=v2I0aKheT23~HlPz73v;c$%>W6jgSm9dObD zt@1lw2(I0W6@CFPMn39N;#|r$wIhTuM-jU*Dq7uji!mSs3AM{qx_T#v|8d%29y{jt zp&N#x%}A+xM>|ZHvTU0Nnx9QCZ*YN~bkH}vr_U2Yt$47YTn6A~XNnA5 z0pOcQ2Ycd+pxqq-B`W|(RUj8&Bs?$}B^mxdcFGcpW3Ln*W~$c)mH|u|r(9LdcgiTv zrJh%mH*_QPwrMiJ|d~&3@2JcfHkWlb2 zoR8KN1Qm?;1Yj;KCg}7T9p8o!ILQZ+R8{z@O+Kmu=}bKIFa{*7U_^-Y;un_W>e|<4 zOR5JS5#FQLNCo*}k8p$#>L+gDVkzz7p$0aYf3&hJ8Tuaa1}=mH)<&0IiY;3+@yfS= zDaI4yXv!364eXXX4D81qG=r9D$PUOM|IAq+4S1%r!Cu}do|91f1>BG#6ISSA??I-t z2!E6M3l&_G$4K0--Q)Wd3ZxSwfDu5;3SfRvLT5Rw0nETWOxJlb(57Y)-K>#=gMU7S zst&+noN;BkE5bTR^oC>-JSAe!1WpIbUiyX$$X3A;=}KVHY3rQtoV7U4MBT4|(tMWH z!I$6oWP#?vCY#Lsvl5r?AC>dAApQ|gPeL-3Ol{{Ra|!^1o!;R*jM<3US512UVnWNM z`5QSU<5p=9H$|JlY-r)h537JVpI^A2UkAv@*gQ*C;On4)h3h`&V-hGNgU6HgHth<>3p4M>4j410M|+9m>Op}H#)nhIa4|W=>+|9@R`l|Q z0c^B?JV+wTkf(AMQ0YwirMqC(`T4=OyOXzdQ?I`*Y|s##C!1A zbL`N(RBuM=1*HN*^-FOIQwdfQ@tb{&&n395U-aWw7HAT~zy$P9;1MZu)Dm;(`-%i9 z|5LZ_DR-Siohr7s{DP;NmD+~MN*8ft*p=m!p+CX|ZEFEeJ)iX92bn(Lvae^|G;%cC zVB`~XMw_u82Ity(sJ*zFWaC~_`P?|PUVm}jCCTU%#Fvbmln7<+0z?np<1mqZMAV*E zH-@LlCwA7?w+6{VZ`S>%#F(b+@qrjJB&EXrwDgS2t5wv=w9%WZcL#)n5uL!+!SVPV zFG2`!wcXyARqSeE6!3fShiZ;N3Lqtq0A8&i;66c2Mu~iu_|ZyY(pe@QpUJSXs6rO0 zQmFyg{q;TA7*B)nZw!Wvh&rw$OxtE0pCQs^;67R!ME#38Szlh{`M!CYCZ}S=j(M>S;iR69=Ggsy2A&d2Wx&5(_Jy&Cu| z5!~lfP79}>+uz)Ymb#$2zxc}O)U((_^}JN>p0G$``24-Q>v*6+qVbzD*~iMF zAFrmYLiTcn@7+w1SPG1*+ukkZbe=QL0%&XqQt(C^X=%cCBKO*%2VaxA{AE!u1E-6(BvpwPw zrX1F?V?4V<{m@3I5>hr-ClrtCuk?A^3<;8R4WXG<4)$F7AiOZ{YuI(JR&)6y8G_XN zp{e-o#2M?0nhy@qPl=Vl5a zGFc7FuREOVP`9YYY(!T~2_1xwL!iO@gP>&Zl}Os%6hMg;0dTlf269pHVpu`boPiGZ z|3xo0C++q1s^55H$W$ zuD|kN11MDCJDn7zRP-=v#~F=t#&bS!?=7Z%3-p+VbYxMr6Fa&i9m45@BZ=htX>RLp zf*unZeQeqZ@m~q5%jA99UU0gMk2-jHh!-NN2jH!Y-BZ26HTeeXHvtPn>o%B{so9x>^e7 z?PDn`Yn|Q3q1=VEbxS~5)MLmS*dmmw9v_5umK~YTIHUdRB`tY{(0Tl;j}$euM#J{|-H;(Te=6Pm|Seqk| z-z_sU{nk`GQDGN#V(zVppndm1lkHusORERzx}n~n97R2gmfZre*~=yaccR~D)T;6a zihtat!Y*l3$RtT1M`f$G!3PCDW9fCkau(oHuSOSszICp+5QCeAT01a#AfO25%4wN| zX`(Ex)ud@d)dozh;~j2zx6B&nzN(q=+^6yi`Xp(tX?9V^OK>ym=OUgb?FDW=y&H*VkYx^GwodPe{pAUbI}BRsn2WL$7((Jb-j zv7Wk-?q1+8W&_f>Sa2Lv#^tjwBlL(S=!D(uE25Wg)(&6|l(RD5T!W^-0q;np-xWer z_ypEZmjbNaZ-JoNO*(iNn@But=xxC0XvBpuK14hCXX&JRMyz2W>&f&ByI<=}rP-1QLT)kN$}IPWaR zh3RyaFRvY=s|P24UAyIP9>)JRX*-IQNz72@4-z4e zy;uuvJrJz6r;B{VkLqd3@L3AwEwvCSi~ja46~pazM3TsX87fQF|Oz73P>@ z*+FLxnj?$pyQR*ZFbt3C(-+^HZpFU#^;ISB%NYvl9Oq9P>Mc^NP^JBI;Gc^6JZyJ) z^f-4>P+1@8t(fcoHif5eJE+&~S-khKIRA5Z{*0A<4F%L$8o-iT94tPKY%Ris2C}gS zv5%rg^pvn)14e{kvGlv2F8~k?00dzvi9iJ>kUp8PRc-y3d0h&lgT)Yo%bJ9uz`f3! zhD)Pv2vsDPX~(5I>9PGGvce(sY4EN?Z0_D5MOevkA7+Q(@UFe(_TS|8zSx9H;I;~aBhNiI zvIDx$ueZkM^##ODwd}=A<6Hxtf)=>Z{SJ}7*dhi$unk!I3WmLUomTvT@ux~?E!zJ~ zm<9+;MwNh^uVG{+6iKr-QE6gy-H8UCUZ@;CO*=Fu*r4zFNF?Wz=xX}J`3TKoD^?9H zls2ECf^w#z4cqaeB&*;el?H>Vuc)8`+yC>UKv2O#A~Qyt7AMo{>~m86YjZB_v{{PJ zVEy07;a_S{lk<^FaYAOa0KStfD6>sx02V3pPDLSD*Jk_wp2^Jc;i}zB8rm;!-gyM2 zzqmjTx!leH>kF{_Ck7y}Q-DRQ1E`va3MzztH;-)14$nq0kwKFAX9Tc+ucc)O_C}8| zH`;LI6clB)kwJ2t3hIgHAqM;J8~$_mmqz!M9pT(n8Q}>r^gCh}biXa6FNdp0Zj(Z= zSLJ?i0wLIPF0#!3@#M`FQBiSr*K0 z^Zmcs;`WPQn7ehUY#Lzn)Z4e`xSqL z(Y>-gFwGFB2?c#Q<-z<>q)BQ{u%qB8`(?pN&VcWvmV}3MN~$s0#LU4$Ad+s}v3KoF{<#|)*}fy+I}6`b1jD57wK)R_cK5XfMfZ+z*9&#{-OMhM z+e8Jx9?@iFiVZ-P|L7j+aCbdo{h8sKr+YnD6iXrO_uR^QRd_WdTXu(``np4 zZPe4<+ob@W%bUpuSJLlA=^rLrZq+zZ08J|R7n08yVE#ZriI*2@bSKJe;WkDxy~;nj z+bx}V8^Xww-H(c><&f`z?zQ(P7G?_kjmUu3eXsU@g5T|*3MY~!h_FUzss_yj?cdTS_%@k3B>8vGHNNXMy`pGiY|UD@#`k}? zxaOS+D(u?13NG@NX#RYwyBzhfJpC}FcD`&q-u!r{Z+OqxF1{}bp6#n+-PqW01-Ok? zAj&!Gz*~@_ol&E6LomS4jJs9%aQb(ls;Hp<(!l~s5p1F|SziH>a!CbiMCjvP4Y00n zVSbJI{Y%S9{nlPf*}A3&)izoEBgf3lRBx)N?_C1~j)jFqqB2o{0k%TO^Z|eWV1Q>p zuqOvp5Q5c$xDe*pgr=Z4y3+N1ypg|h_HA@@Hl)u`r*|*2a>MyvNbUf<|JLcSTv=JU zg%CQFfRVfnu;!9QRWQrUExzveLxDc3;$M8Ef}#V#<-l;pU4%>hdusAK^y&<^)>AY$ za3tc9G;9`iI`8gVWe=eHlKL}XdPM*afqREUQvuH z2Af4rj(z$XAB^{JU9%l&+e1h>#8_chHx~fc%x`B$NF|GhT`0PrN#XNius;~dfe9l` zY%o;_93g!EHxd9L^j~UHk&84OBM9KmEk0J$N19qGp@J@v&r`iNuk=DyxTAu)0;K-; zPYs6u`z%WlJ@^f0NLiB;E;x`cvuE%1B!W`s=A6p78$2(PSNJNCD^agP>}DHTbCFp} zA%m6g9vQwm@kdL^XeRPkWHdd@$NsgI0Ru~&5hm}{1 z>kWqY(~`imUz=arBdYlv{J(FB)CYd=0EQ07*jO4DTY#OCS3NtDdR-u^}i zJ&))RG^PJ?f`8Pse^MsUPlmb$6ll^ydXL|md1QJ8^lIF|Y5*zO1r?MU6$=)5NeJ}= zgsMy+{o}Izvm;%=x)S<--iziSaSb3vZ$VRt$2J7Ao#hqZ8zY?w>B9djC?ReRCx`E@ z$(w+_yydUbK2G8_TxF*rErP3OuUY4-MaE z-RG#OJpP5+8iWjXN0c?mRGCm=gROtlh06rvChI5Z!sDATVRdN#Sb_fr1%L@6MZe)w zP*R-9RT+xFD=^-_jC=OK4Lo}EQZQ=2KNd6B3ATHNFK?cCcm(YE0%_2bMh;hK*E%gy^$CPu-km^ z(AuE+Y>xK5O+8KFXQfQSBmag5cR6|fm&nwdx=Zct9?$H-Ry7iHt`wuzJQo-3<>|(+ zPaa%&^(uTf?lWxs>RU%v%2(Wdh#Oe7YkUlKZ_cA;=MuRYulvu>-7kw?7mD6yc62*? z+c@qbvl6`a&}7$Y)#T3Tv&=hE0a!AJ*vunuh7{rHo74hGW8a~(y94k9(4ed~WZcz& zTRg@|eRuhk*nDL= z`JI?kQOUmR<j zzPKA?5T|yztgNhtFJGk0B!ZN!tgQHigcR}d@kdWjU2_Wyx4-D{iHLmndvyLa_wnP$ z-K7Cklc!ta&+J<69c=!3z)yVudMaD=YUX#LwVwf`w%Gpgcrsmhh04Uv_BJB0{b!j+ zIK)LIN+w&G;Uf*_CagC}H}|ItaZ#A;|f9?%?PlEXIbHRcTuHSq%q5VEBYOiNj1R2$}t%bPN@&TlS1@uXatm| z;pv!^-lNO?aoNr11i`Lln*e@j|IL@XhBzr90{LI5-|lwTF2RmcqujgDXI zc2BP$HL#+(HmY{t`-rp}Md8$! z7WOt=D@|Osk`7hjWx6_`4JlnGo3HT2sB><#J}6gaOKIKJGDb!j)MBhkA?lOd=V;R5 zQ@>S;Zz9id+ZsKxl4ip8IcD@Yvu*n*V`y&;dE#|#NQ#S@rT@sHvMD{fu7TD1d5y4W zSM;SQu})lZ$yB%mbl-5+Rv~8f4jZ}5hOyW0Ab;j#*5{o0{Iax~>T3qhS#DX(!Q!p! zvusA^Ec3Pkb({lPZFB=io@ohne6b zHlH1aFXa$)PNaFH=*+l(!eVbtW@d5j2w&swg74Qi4P6X*dvs&|nLjURPM7;%J(mj8 zcOR?m^IDFcH+LU1tTco9u|YB!&|mqFAa)bbFw$@nl> z4}SGW!EIv>k=MihmomW}wVgq=UteR!8V~J^1;)h3V_DnUTFzAIlyK2}u^hnAjRjXb zgl5pGmLqhq=_^!7XT{p^2U00>20gg?t&s-&Peuixb%}nr3D_Trod>A5=!?WAf8{t| z=Nbh9{}t^F+l*SF?oV90^?ABPS5PDkUl87*^ovvgBDo>qWQ9@YVJ{oDgf$L-m%viN zG#}V`fjC=0?e>5D-VV!R$JAt*jfRq#Bgnm}z8*vXPV#?=9!n--_q$Yjs^mBzmk!MAQYS2)+u=t*vy3b}7QlbO3YZEwFyrdAxMMFx^$Y ze*6p$l2DGAL-Tp#EEvRtYsw%8|223OCj$&G$kb*Zw~<<(N}j0@~kFRO>{GOkA*^@<#UA+vBgzSG8-f`|8_LLcBblcWIv^T+Sz7jXtv0{X1 zQE9vU{bE6*?U?$Z3}tw#>~+os^h}zF5e5wTj0c57VI5`+u&O65Lg+OkGb}Z-M@b6) zFvALKp{IczRRH@LVF>R-2mi+j|Kp7-#=w3qERgk1zT})KZ%Sqtghhfnb}#o%4sr{(X<{l=CNt(8HO zkVunMy@~!bxyQbFuAw5^ze9NGQQg0vDk+?dsX9clxs_oXz%KP3L}mX8>J$=*X2drC zC`*E(2&d;DZ;EIYYvv5al;w8Y61=ovP;WZ^=x~H9DPUL&fJ7%3B%EnxV|(gGIXPnW zR*?uaz1GGZ+NY-#4dOfU#A(X03AmwHDUZZE#=qKly7+?E;^!d~ejo?l`0YPe{(n1W@U(uh1 z-&^y%hBE2d8JTrMyhYF5MV}%=Gxl%Dy3B zu69y!T7QXM!MD@aw$+k;9^{phdEz3-tb??KH^wo?RevFv|9|q2LsC%jUp1O@g~FI)X=DzrD5_)md)&pUhZLfd$p%V(aGCxsS@o-A*=xaN z^a}H+mNC%K@tWQ|NAHKS)mG>a6SYRZWBIVqQDfdW%T?X4oF3cr>o=L4s``8KFJp{? zhN|%VG!)SDeIW)uv=p@VY^(4`AfO@9wBr(JGw?B>#(Nfq>-9?&)q!MD0%go6pYaqqKfL1p{qwP`^1E|Cc9FXp>J6Bu1#MQQLj7OYD zEL>~XyBZzb@vB(R{=veAdtAuYbHt53yMIRq3%yv@=v$>!*qG=h{?$QezDowg-08_G zd_m2^ZJhK72(gJP6Wg$;5~aQjFP}5wJ938o&O-%?ypeAAPEIfl-&w*r33`=V&^{&k zX?wfpa?0ui=Me33d##n(dhNb@u6 z_W?@g`H+A+#-GoRnV(M+sgWYI=^+4}3;_*IH{`7?8sp`WO&+KmXY=H`e!c%?{jQ4ts%EA3L@9Oi>r?Z}g~$%9Q;FSZn;j z>j-mg0UKEtxcR;bqr09uZ%o&S7v*%MD*Y?5a@%rTlvz!0emp?cqIi1mHn8*J-&ZNY#`4{3d=j|8{urHMS_440XS;_^ApC=X- zT|pdA6nbh!{h?!&T+drO+~@UZu5VX}!Rl`kY<}iMY;~>-El56c-x{$n&v#{vV1z_g zDOHp6V(?Nwv22Sz^I8nkg-rbhUjp{c*c= zp8edu!_|E0?0WcvMM2y6W&hs$u)2zAa{WJLbT27?KKkL&TNYPp7)pPI4C@2XSJGWU zPKzXq$GaW-IrpoiXEcYrysJT{Stp#zb|o58Vwq^;bx5gzn5cyFxK8^$pWOWqYaJq} z7>7x2X1u!sw;$C?18eaAbo--pMY#KlIcS@i8d{oQdMK}q5F<0sH-v33e0Xn*p1jWX zV)+U7?IecG4@)!VLQma=N7uV@zW=_DU-T|E6z7;_R~RPyIVBgwHe@j`r#yXfo<-O| z2Q1xDC*+)7_TFkk525t;ydbHt92UfWzV^oW^kX#k7$J|#E`P!W_Y!Hp;eh6-YmR7*wP zRKp3moRfhE+)E%1^K_7=rs#KHAzAiCs=(*#{wIIE*~Wv$AWmOCr>A^)v&sQP34RBp z#|zFA;C!a{qHYO|U|V{#!~ic}0YMS%Dnz~{N@@VPR8GYFaracl*j+<0m;^fE@1>)@ zv{`-6{FyD{{SsyL`*-d)6Hu>Im0Uh_guX}6bsYttKKG-WKX53Kupu50lkLh6lUBmG za2POq40^;s>Ch4nYd`isU@mXI5n|VjM)1^EYn>{}-M?Krm{0I8{Kc;(gKhzf=DI|& z->~)$L~vEH(Lhf9e^(v_>~^O}i?JPrM?oU@8+AANiXx-O!zQ}K9z-8r@qZHt)I7MY zHH|d&3roV@>m#0>xcggvdeYb3i?1dcGDICrp(cJy&~;hk{Gsjy&ywr+t#{=xROI2_ zMcYs?)=q@wCj^RqOKizdDwli)mwGkr+WA9flnz64=gsaF%_5!Y9yx7Gz`&czv#{Xi zPcxjWW{vqP%zEeUx87fXQLBHi#q-C-df#Fm_O{;mfE36PMQm*CUM7g(lLOb{>Kz*0 z?FPvA9QBT~CE(Cyg&pB77o5fM$J67=q$r4|$X4F|pKk9dK_3ZHluxt+d9Mt!nzuFF&VO#BZ4hGqvU;0Pxgy-gjB)_-X?FmtMe_XTJU|}S7(u3TxU;CVZP+##0 zDO-85b~yIzTlojp0823uD4W+t05#oUWj41Oa>#jv{_*3R>{wSV?SPZ|P!5sa7#g45 zqWH%b01DqMm-&Zrn8d1J3*xw)n9?f`@em)bp&j6+~}|v}DB&(M2@N z>D>F7T;{Yf%c6|0J%Y#>#h*X~NtoiA2__`XMjYkfZSI5oEF3Kzm%TVK5|ugKlRs&tF24-d zTSYw<}?YupCQ9>f1BYWM2@pB-1>O+%wXnmRv z7G*i!?V!8XFIQI$a?($IyZkW8Ny0EfS{{j?J9(DY@2=kK2c@iZ)k2*L2kBofG7udl z+}C=Kc3yni-zvZ*tk%CLyhKY21;%AMkZ@@d?*Gyaet3o=_9+yK6Zq)KnLB_K`e6YH zl-a`_Ks_rg=to!q0xT~6PsqWC{@XDBSLEr+L5YTcvts~3r|hM-VaQ; zF0I2i?Y$hGJ{6_uVkxTEGU*kmz?DL~I_Io%|Hb8M&C%G1!x#;k5|61rD%(h;jO6st zsB=il04Nqdh;C`18rF8>!|{I0{pOb|BX_!qQBH@tmoxE74i?@C z)}B1hLV(*j2MqrVSj?Y0wr(vC%o`_wUdin$A;cHgy0z%upimHP}qyfJVw{|G)t3f_Iv8^+#)7ESSo;5vR}@ZwGgWYt7Z? zr;_o=cUh!MvHY$brU-|B?A?C0x`J-5FCl?gCNusvl?u&sMl-@gjm*K-#X zGTXC$W2Yu1g^w~!Egt!|ffZ)#(mj{6mpHWW*0K2Znd&n`NKa-$!{7pp4)t~T;A^Ql z?O)#;&3`xVq1sp2$M{Fta3V*T^PcQ`oi_HYUEg8p3JJA^XP0YD@hj-N!#62rxDT{+ zwhyAC%18AH2a~y3k3)cF6ve*tdNz%OA=34PX1o>I9nL`AOEjOZrxVhM3@tY?l0lBk z;ox9n$gQ&D<&YUJlA8qnzrD=Lk`(H&iJ}`kAWh2LRZ$iGCkQ9m-!K_@Gw46y*MGo= z|IQ%-&Ou;@m&xP|8Orcqg6l%CBNC)k;daQi*#5Wv-=>=ceCtXEVidK)Zi&<(L->G@ zw0A2@aw*O|ZYia*3_`^1-p3&|M$J-E%n~0}3s`$C>o+zKlC~D#bH^V`Z3(6?{dG|6t;p6$yQDNwg z%P^eN(*x~zGU1Fm56v%R{Y#&j@+A~Q?99z{!3uccpSeAK?mVo3(o&plu+cEH`e}_+ zhNEj?n)FUYzU)c|p6}u>%RRS-i|-<HO=!wt(&ynglqezS7}xET@A)E7F{(`zFO}V*)omPc(VufOD01Z&;O7Ay z7xYoBnm7kx?Rwt*Fwe5N7$3hE5WO&dNihk`h%a}nNU7p!(jOErW3Q*xEW>sB;qCtZ z%&k!yYZ(up?5R|WhP$r@8$U63cxWX1I({mlZ6ao&+vC7Fn4dRr(qR4dY6aW%9T3?4 z{^@9lb;l}ZCj&~Jl!+1@@napV|6HsfUyH&tBHIPT2bx2elhUE`klx7 z$95zv5(rH93cIw-Y$(o|EIYFnQHne)fAgbyjsh@c&gkk3mSaA*N@UzRZSf1_Vbgl7 zji=Lg66sRd)mfQa(po;vqM}gAouX@MD~0<)vveJc{P3Ncyp?L!m|&L;{?%APf;3y! zM!=PLj#-!vBRP{wKhv-6ixtu6IC&gNC_N~-tJ5`L(H6A(7DPUj@GYe#?{@iiX<3T< zQ5Q*C%b@j()jMI7L_CZ7J6!4YdkrE8bkVL%vLsZS@w@oZ_-K0T;o_NhNZS3i#e)gU zut7ZmS{9-&TfD4blV=*eL-qcsq0ezDD<4x0uijABZFY}!O%#Eu-v~d>vAjRkr}2)W z1X|!G0sXIy+focttm*y8@Zl6hWxkic9_YXmpFXWV)iFigr`=|TiZu0J?(w=jnPAjJ zY{B%y@NhPiPHhVB8;Dv62no+}lhJFo3J319AU3E`JsF=~Y;|i0He)5(gd|?SsHocp z=14o3PdRd^YG>P4gB({roOh&Su>F4L7a55@&0q1Bo@%TrPz_Zl(dbY~VL-cI>I#Rf zk|%_jP?M)9Q9H|nDI;IP{F8(uqPIm<&-z)GGCY7S2DmBGEC~m_`b%w;in65pZ&UGq zuJBJ@pybpqZy8~4_w&6sNvm-VcVgV{R4?b@&;Z z4km?a+h^(_7^t%PY&fp`zGv1r?y{>bCt4qsLu#WWpVi{dcgEj;{Fn<$wl7h6{gjfH zE#%IqJpHB;7@k2@JNB8j!4p|%r!c}mi_m+X|A{#w0~nL+tbx`9M&fZo>}&9FzF!%9 zTOBvXh%6hM?q-TAPATrXHT-blCmPapeyo*U3OPxjjsOS=*@zS-El2qYq6Lv}Y^c!>JJ0`ao0f+Q3@eNl@$f`v(muF_7>PLkFG+tlw|G(C+{E&b?dQoI(R@ueGn zPP`Jgvs#zvo$SbPz)o`(D_C^H5=A+!N^lbBrdlD7+jqMw7VU>e0L`0aV1{AcZ1W(| zrmedlrK+b{4)F$nA4Fw zF8>Xdo1(HIeGnq`(no?IZ%iqA-%Md#N>`e;Z_GAJ$RSw{{@l|;+L)s zvb*sO*N&#Y%U8Y&7XM(ru8cjP=czzJ547S>A;NRxtY6c5ye+GkR;c8kD|nqH~C`fTAmnELT8GKKn!*YeM{@E8n%-7Tl;EOv*n=JykXoUq(e-<1+wj6G5c` z8y!@5wpPfMJAVD{M1N&Iw%m8caaFqD!R9uRcncrT(6{p#DlLMWGSfBC+3P0!DLltW>;diF&L3jzx=$vjVz z1ss^S$%b0n*7kJxp2JoJLj13f67KGV5yg6vs1jWCH#(qpWBHOgI%R@(u0C*W8bT6L zA1)kf@%}1E--J;*COwR%Zf}@oCr=bd7f4s#M)LK?(W%Q_#8S6@f&rQA=cbE?zf_Pu*GS$Ck|M!A>Qsy@NNd- zCfryx@g`WVlx4Oni()tA(qV%>zWucbiVaT6HhLn_@6O%W7$<)ZRbBCb>ew)O>|ehI z4=iO$c4y7NltGRwgpqKM-GX=qhV9My#jm{q#=0q@-@ML%G8tge(*D!Lr!W$cv2)0< zaj&m1D4#@}K2_~|08LFW>XyDZ=%CuuGXTA-fyMISM#a-+<;cg<6Q?YrGb_o&xdZTA z(prE2CQ+#9L2rz*cQm&=rZ4pU(mnw|78 z!SNxxN?l+$<)GsS%_hkDD8;_f-mE3bL%@N$>TOwQB`^O`lpBeQh@O?IsjrD;3O$KP zycThIN}x=Xj6o~f;c{i~XhKlB?p*KZ87SDRhtjd9j7_%1=bMtKoY1Lo#O`|O9Uie; zk~u}fUtijUs(wSvC|~9AqvZ&EZPAxZJLB08C*zQl78#X&GW_!@(cjd@hv;io{3ODqaP=qWT^apX{%9*Dl7jeZL|{ zShH`{{*^0sp^`BpsVDKbefHVrhl=-}rgaWXa~VT!o^=>D2Hnf9i_QhFQ1@BnV_;S` zsGmeeKbwYx1+DZRnJ`o69{kRL%Me0P=b{P3VRN&_?Ng#__UM&Fe>!l+ zqPm7qXd%R+oc1+b2Kz@#lzt>Boj+ z#6$?K^{QFN0B@(u7ltO;6rAF%(A0 zna_z+UUw9)s@En?xuq$B6g`X?q)xiUD_75dTIkCA=7AD_iU^@a4=44xKiqr#9Q9ng z3FN<|=uLTT@;tZv1tx4RPhZ=}~RZR{ae1$^%$G1_S)kn?Vcyz!24Q z*DgW;+^@Ap5Ht~(4x>AKo~G{q=LC^Y1;p1DkS%J(As5&N!X$F)ui(Z^&h0{fg1gDP zg@7m|f+%(r_%)VR;nR9?$r{Mr+pwd_KR!6gY%*{xviGkT3byR*WQTJ39ai0hXe80! zS9V%e)Yc9binZrV43CVg#GjWVpl-lMl&28%p2Q@=AoRUy7Q7;cZgDC>+98?&n*XP=N%if;K=30 zo8Scs9`gOQJpQo3P61-g-zO~~l$g?qmxa!n#wa=T7y?4M3*-qDL1xdE-m zfY@j_`^heXZ(a8ssrV)WaD`S~W=lTS6Jd9~Pzp6=Mo(t6^G3nbh@;cSeBlzGPIw-? zf<`{2x#mDCqUP?*=e9UD!IBVu&oP}8e&?6A8sbR?rTzLMwghkOSHPf~4t;?j_ROFYs#of% z7Y%b}vKCJo3J4yZZd7U46)Vy8k*ue0a*K>oVh2awJC@z6;{jJ%b(BAeWR4`)EVk3f z3Qp&uUa6W4=D(>;w7VHRg||I}^OT4kX>?*gwQ1r(e^yEeI-{|O3$k>Fr+UjI2P^aN zD6Uo5u4^!Ok}>hE)JG^vla8wVJCXdkgYJTRFyxS^t=BO=@)!$(JgNG>r$-iIN^IBD zYgq}-bAJTCb2v^7H?_%#+4{tnGV07!VOx0YmYo^eRtz`}l7t+_{3#>vDx%}!xa3{b4-|7Adok$3eC z<#NcoNLznWX2l7(`B?xZlO7f{s|>29HgbpmF$GmGs)ZH~Yy6o6>jxvmJi4gS8G!n< z;>CZ-_;XUH!)?k2^M)=xP8XEgjY~*B1&qeFK3aeojG&oBBZHCa6|u661y`Xo1B~-{ z=+P)FNCV09^#X(ap9KYd=I*mE{pK7*f(~l0xkY#v#XbjVUnk|N)w-TKsg?b`tiC>d ztS)N%)KxpAt&??l=Q+a!2B82$V9|d)VAB0*{@8X)J$tA;Hc?=2?MH`Q5WSxalFzbO3bP1@+75MVDYu=9st&F&7OH=87*W&*P(E($;g@nZev2$|$)b}nfN@!_(CJ&vQ&Ufm3CuAVPH^6I)hsePO zPn@U<_wrFRGmr!R=NE8zK6|U3aji@J$HVGDTF?h-P$>~?VZZvUfpEH z{Y@v4vfNny$GTXcgUKNH8*P+Jrf{*(lmbWpVH@-FvRE%G8~5vWjA|HVj$! zj&G8Pn5$x+|*k)Kuolle@4ycD;q<;Q9iXq^?ix^;WN#p1W13 z!lUl~0Z@a%J@B=yDWh{5HrRk_9w=0j&KeE%g&~;HJP1KR6t6I~JvH@FM~@s>A`vM> zAS}oLq@c+N0+pRCAq3}~Y6?1vBaoUT7dK|KHP#2zAIy(`oi^wM2nw#9j;npfc;D%k z%qZl4~H-I<7+n7 zj4gjW;ro7dd{(~bdBeQEyr{6f&`4}Xo&Xz0`dD97FtA8d?)1{qL@aPnocFYq*v3MBAssB%-d@_PA7hO zi#lm$z#xPaa`HyV!3dIOFcA_hM~}S4cp}nfFi`Dx&_|95%xLvjK0tF4N_0|1Bs-6P*KaZ8fWaKm9^D1qa2dlsfu~7^xUI$f2`11y}1SXkV|Hm$7uZ>KJY1qbcOYF$)SiRmS8! zE3f>_Uf!46oX=SRZCiViuEm`KOd>@$-SPaLTABBZeA1W5M;Q~sM@@EA0dJs|t=h34 zvEbe@HI?|Q8!CnpQEtBgH8wZ5&b(5KhwRu$og zmH&kL`)$~{D(q$+J&i8)e2ueFipLj-4{7m*nP0HvFuVe{q-}>bbjIHcIp5$pCyy?D zB8%X$<>+N@$GZ4$kVcJrKkLKm=+KbapHnkLWR0s^1Fxq!MW4>f8X@oH5!o7#tPgUp zxKry3|3TkZfpeI#k;2UCg7o#zryY;h|_8r>844LIE$#kvJl@v$KU>ka}S6XRLDJb8`XM z4mZTaHe?7?g5WEdr}-^$;666MtqmGgCG&yXEufPWA_DNQ{RhpV54n zFgvee(RWAU@-S5!Ya{AnGwjZx=lC_3MNJa(C8CIWMm^f{=8`X4-hcJ+IQ@6{yB$G5-udhe z_)Qb&{&`bwfz5Y0DAYi}KlTp_{sV}_+ntkLKw}X%dvC-Ey9(guS!{{TsKSm z?3xaBV_m3gk9878Emf#(0PApsgBG;Sd}F)xq^=C^)E>ci)ZW%Alo|W6XFajcPgSt7 z9MQFBLk3C1Ya-G$xR*SBNkbk`VPXel$Pp%Bp&QcFeS?Vfp9lZn57(Mu%2^eT(!3sG zz5VX|usBUUEtb()+Wx#`(5ra-#Pxx>b1xKvo3DnqU+*K|Ss|BPeFafuZk)c}Ah>*; z#m{hv^N49p2WP|Q?n&j4r-51eG;t04Xs*UJT|@nJ8jeQHsD$U@|JcpCzmLu0kx?BM zS#SG--Zha`0}R5;kX5+QRPFarA6%<2n%ef7pG?8C_xn9Ybwq>=dNq9R zSS!L1A00c~LtQZNbo%oqIj!SN>RgX(RC2p{!_HRx!=sils|Mf1>gx9Mdm^OOd2*_s z&YW0Ym5hv73STAI`tIyPw-aG8l37B}Ib*-eyfbS@)#>W3;{Z`ySLQNq*quoEVo_u| zG@GH0V_qhY8uw*H&Rukb3~q^qNCZw!+dM;I8sKFo;_W6MV~kFmCF}m*6nYr zb6-qt`F~v3Bvnrlx43+dvc=6-;`U~dz|DFrQS#rrWa9d1Z@%Gk84Sw?jQShe#k=Qo=&9}AJ^XOlhnw$%|NH%(CRFt^YR+26#PZz=fmHnW;U@UJwb>b% z6QA&*q#@Q4cs-DgNBA>}3g|7STI!<>g^F6yI5O_J`t zy||8SP<{B(1_gF)arjEk?Yzek$#=f%A3dqy^Bc6phOg5naKX3iuERw6U7mYK?H~RM zf6a98uZguWapHP2WSlc&cQi}bIr=!G{sZ&loM`WZA5o<>Aj$u#;PJKj((UR5z60W6`c%X2H-Ra!dUa_*C1z3F z;Y_^Ds)KT)BKT@f_XdeqdM6%N0y8epoXGH}lI4;*^eOa&r-AsXBs3^KKrk4_91p%r5r!`0PwQ#*spK0HnZjF4i2q+{k^5@U{H8D== zFWNWdlZw2bp7tx=n%#2=ELpBIn0$9C!k>`n6O#7b;hPh;d~Q7a4jbQ1dZnh^5C*>x z@vmqmcfOvRz@K|r-TGP4ol>*xNPXISs~hc75r~;qwp?JoemcN6v0>S#bG95+J8i3^ z{D~m$U8Cg0cbPSRqrK{)6)Di`$W4;Nz@$_u&o8}RG_fDrh`bBQjzO znXw@xPpSJ&9L({HUA^;RoOM&;dq}`*9m-`mHK1A#+!=@uu?GVic>kLU;CJmV7xa-` zff(p&Ar}B531E=27=ymZC1P+{K%(uE+($}$bnrnj{xY+kbbP*T9ZTF>=y35JG4Z)_ z_%InfM^HW%;k$g1ZNO!xVg=cPM`i?@#Z~2SmQx%v$Ww-I^r}oVioS`1*Q(NcSRO{y zsH^77KYO=5BKZpG&eV3|j*`ogecZQ3P4p<3pEg2heGjp$qR&Qukh2x4t_jQCLl@l# z$E_Vo9?kP6f4mdFew(@FS7Uk|d&n_b-)?@PMdziBm)0_>!&!;Fn2T(CG^7DFg?Yb& zg57SD^7|wjLkLb$AobklmxjEQ5lq7A34d(?s`<2T`oPtY)*uS+(5YxUi|8B`@Hk)usU_8 zFo8JSeD3MvafPsLFv&i3jvwl7H^|>-D|{>+>Nmswcxw!zYpyk;hC|hDojjEK%5Gh8 zwGJK6w>uN+mPD7^&vjGvf;i_QWiWkfNgXFE9+2XR`;rujFQ4kr^H$wFWzptsfUH$v zdE0m%L7q1=%Fn!51dKFOmN<$ws%>up{vy1>S#rNlRxmQV>Khw zVYn&hP4FjIFnq|3QwI{;6`$9>zb!V7+{vEh-vZRoI!8u2I(RO)eFhnhWxe*}(u-6A zf#u(}Q)wFLXR!^xQ)7&7W=~J8`u=9|F}8bYSJTVYlJ4Tn5L4> zU?8i5-fWw0zFfX6(o80mm^tLRII|e`|2C;(TbEZ@%+BhU2lic5#l3lHdbSRm_kKQu zbt33g{0|sE%z|B`a#_=ltbvilBzI!;p~&X_+*EWyxPFe4W*7|mfd7Y&Pz#M78x%nGUpF5moJ`8e)aue)n3P)D6;!wEZ5HG>N&;pa*gU9=8wEo?y zlYoHp8i$#L)>qPR222?(l9gA#OFbCRAO(7aFXH5PH?~C z$Rl23A&!ShA?M&y#E?&BEQdkPXpJ2qc9mvj*7I0a1n;%j&dIi9a?*;}8D&*f?QG6( z5?5@L@k4OzHj(9!dv0OIM~jzJFf4A)@~`-{&oe$jkLOn^K(z$8b1Dx&D(KB5ytn;< zkW?93iW1q)3q&4Z0Y@j7_}2md<9UM-a0w)=VbAbn0{E`KTR)GXv>#{7e`}e{$*eM! zH8}TAVE;0=ZaghZT>idWEMTuBncj_mzhcvPX+gHD9NHGmu%xg|bTn0R@!er*+kKv; z(;MLv}gII|oM(WIopO-|f_7ZC@M2G;Ru zH3|`b@=qn5yyr#haUm`R?dJCnFL)Hrg;C-XUl`(v1NypaTiH;Zd}R-#%1{X{{Lkyk zB2n(WM)VQxza*fb;NwNw3(2pVH^15%gtQf5*wR!7-qDo0V@jyGSPsk=#NRG4p##wz zqe*q=rA}vj zgA#KdM+Ym29e%Y~~$Y{k5!!rzFw<9;nM5JQc6@{hT6EgyjghM0QDw)A0os|!; z-92zB0>ldB!`)9cu)WoJORx=jj_9XaGdn(x*Ukk8`!C{&P|46651BnbA>j#HxXpUv zC)#MCeipIzIghU_yvQR<$k$DJsAp92!H%Qe5svkzGeQdQ9)!CQQ;(Vlmhx@=2R@J(PYr!du+a?3hDzgx`U*xdQcQ9u3HTH5=5B>S?$KqN1Lu#JU`^T-LY zfXy_x2tTD$8)^D{OK{fglj#cnt^_X8mvgDTVyIEvydXCDEH+lU1Gy)2kz*SUQ(KCwj? zq38Q%-A!MYxh*2IaQyB5Lp<>h+~_AAF!q8A}FbZ&s|zz zz#Atz#Hl;hD7Xp_6#%s3!zFcaa;^5kmY{$x`8g(dOR<{XqVe+&SFBaCpcLvr&3KDu5C<1@5dgRRM5 zgoha+zWUI3TSX0+)DxqV zsT}apEI-mBVTQ%GkQS)k@8e}%|J^74X^WJM+&c-4-G29byZd*Y>s`p{rAQfh zmg$hB5ArRxR;6OUj#JB3EDANVg%gePpoPLMUYIt^B13i@&&4;GTo)C8FG-C8KgUqq z)|^Cen@{3{o7Ojf)&!LyHN`za=WJ9Qhr*|+rVjx%+dY04gdEioBSVr65=ub%d@IEx zPA5CQz8@pHL(Ry3zI0dQ*EF2z+`t^ZC*ognXT|x+K4?&O?W8k@C}(==ctt}XT}hGc z&P>N1ZlvbdD`Ce;CcQ1s>s10UkD|LL^y%f_eYa`>Iq6M?Yf@yw?E{9J8v>&Vht_|8 zg;M8vKz#qjAL{?wl07HTL02uc>UQOJ0Ff^K7 zfjvTKP?6F{B6>$!?w-q8wWbM7RAjB!?!G5>`#dAKVjcngc^+$aGXpS2hDnPrxm9a4 z;A4PeSc+uLG>Y?krDgaLlkfOR#awsGL8pr@IzeL#nF+mImQiL~?*RAt6yvLYFh}kk zgmR{1HLIk=uz(CE4gbi39-~)JfjDL2mM%ORO`+aLBC1$EuY^;d8|Qh!tZ%}BHW};z zsH7u`wmG>h(C#f zlE%-aHEa|_XyBV&f`7L00>2DdzEI#?VrD@ZcSV6+Q~NW|W>M7SHcn}jz2s<=n2nMY z5OjT4Cw}4Eo(Z3Gtlgle77@uC>6^eo4!g`L)qVffQzIXTqaCiW)~q9V+86gr6vbHa z{RD`Y$fbm*G)3V{PDXx8u}HvnQE%U1drv^&QumplBV(F^8ouhr`$mPNLl=`{S|`^H zKC$;0KrzdTZUcwjQ?b$b)9-oo^GA>DlO5%=pl6)8H@{!fI6;_)_oqpB@H?2@MvSWC zXj>iD1BlI;%1V`E2vET?+4G3*acCI2$g?h4vL`ujr(r)X2p!$?A%&y8Pa>U2=A21* z?Le75!@(kj^Fu*j2+x2VF7C2eOYH4mv`vr_7P+G|sMIAF21a^XZ$X)wRf0*Efw4%>`uBnm z#cv!6R@CS{7cPN-RwQ5${vRBHp!oOr@GqRm1-yCi00Ok9Qpm9T&0K27?G2~`@(xFO zKIK6rp;X(&)}m%^YA~jKYoY3y?u{ourE@~uQCh|poS78_L@i@;&F3;jB?SR6`#;W+ z7Z9{qteV9otwdO2kcn%G9Rv81RoBEnM=UVA->9Sp_5DboC)8Ig=fu;qfyPIg7xSTg zW!`$GZwNqP!!1jMe7}RO`o{AQ3#^HeD3gmS_az6>uXrNV_y^Gn?HmMVZ=5{kcde+@ zltxhpOwHv!EK47G!F<2y#9kfU87{)&2RBB(AI35d2Knv*lVI97NGPAT2Iv??{K9{H z@Jt|lc?bYt;%3&OoTH$T!bk-q^a93FNsC@uLn%T7D5MmcV8lYNIcB0aHDhxmF9Yru zMWyt+VS^omTstUYuwZK%E0s>BZ38BHrUO>mx)6_(7F(&{ExHg7vuhGrfr}KnFv6^d z;~Cq+nPyg?cq|$ZPdcbO3FYUOr@lU8=T_T|$rVt;XFr5H+mon6$Z4*%>MNNUNT0bp z>>CrzsEvry9f>(vR)z7n93AN@l#8aty*g>R*H<*`5T)p_vafKCB)QGQk#>ZC*AhP} z!ds&^8Y4QkL)A*^_kSL&xKIAp;I?KE?b6@by*B%5mA zNNijFQTA|1BFfW+^DSW~J7C1Mj581b$KF z4KP4#ESIb}m`AMs;lUby(_pIw6M{8zoCDK+JscC`Y+}F_YdSdw9Pa0e-4Y{g5UQ&@ zZ*~&`DO@ru5LFO-P?s3vN4nqdpFny(IRm)m9ou;*K|O{o;c#pkHsI!9zlH~bU`x})D3MQ$@+NPQ~ zw8=y2WZf_MsY|%4`ac>CspvsdWN_GTob%IxNZCY)Bn0^3^Bftp*-bZgTyVnIrY50v zx;VY2pO1@dCx}<>)v`iyII9^>HeYK8%2{c57vbb`%#4C3x2pu_?t0KYtbUnYNZ)o` z#VZC#W%?T)OlD$H0_

    K?&98U^G&pcT~+|xCBesN^X$U4er0^mw!SA|M)x=-~%{d zcwGQIU#5a5xo{eY-NJd8huxv`;sf=I$L)*r)T2A6Pf zb4K8>ylwMgZ+5|H&^_IEHq?Cf;fm`FJD-L@`3nXvSVS_N8&aC^n><7a4?gmIX^L7c7D{1_D<4v;gbaH%=rY5+Mki8R~CG%WyPR37gHz zS`d3%f_t1bBQJ=ZK|Xte`gqf0Cj9P9`haQG$FDRzVo+*+m^B9BYcDgTht;P_cPApW z>~i|?s6}>^@WXMv;#M^_C*;o%d50(jAvry3QJqvxhSIBY3TUd5bMxZgaCs=o`6OZE zeP17TKs~RxU5*L}!yUJJ{XnSHKVeI{w>oAQ4jAfK3|kM{7D~nX#Oe~~8f9lU)FY-W9>1Hx4uCZ>H#0a!xf7JL zSST0t!mdK(&Q!Hq1MOe>9Bt8!W2YCS8|bO3^=k)3gvm|^2psq<7gdWl5wiByGa|8x zegpRfk`I)_pHcYL*P*}NVueLOOwGWRuX6NG`pp;BERG>z1lp3E4h`???}&C~?BC6w%3jM! z`{t5$7q95FYP$K;OOW_gB%Rg~;sd$IJ;6$Eb$XixG{a4!>X?8iSZqYzHg|Zx=76X@ zT&avrI<)zdJFRCtNATO}V(*+XQfTO;9-V>x*jB*j9&hk+{Dkt z_g|t&XnCQ0E^S1(zx!oTpsw2S1rlB9!lE{l-Bo1_3hh3^#UwQub|qk?hL+^hzh60R z6$DEVVPP3VC{wI-GtA{Ny)^r4h>X^4xpSA_KEb8G=hyWPC;dI6JN&Vi4qv5FdK$YM zHWtqfwZL%z*47OHpO9|~TbXZQ0$XV_1CCA!n5P5SbMXK`EO-zYK>Y&^|NB^x0rs4D z1A5o3Oei;BUAMBk>ZFjtxCx+8B=bxU(=yMyE`oTOB^<7*-*Hs!3Z&(4S++IR){V4f z?YssfR7MPHR$we{=Og$kDtBfz2KDTS_qwAu1at(UT+y0)LH|fTFWFzHTC0jFioq2b zagz<;p5`c42jN6ptt$hl@Oja1!oH4XJC>M; z{=^zT6nD&$h%#N@Yc&w#zt7S|8&%(|a$p;ii3Je8(lKu437bjaLG0D>$(Pgr;&;w_ z!bm#ohF`HQ5PHop4QopuTSU0YNEf?Y!`5Y!l8UHUqiT{i-Q)C)GmRqSf#6OXL9ZwXi4_4M#ru^AjVB(=NzpKpzlz7yNz=p%aA;qej4@ zhyeI2x}F9<4u4UY4BRR&hX{coYS8j!FS3~&v`YI18FY&1|HlS(Mm`95P^d*+60#3P zVX(C|(<;g`BPI6Ur{vc1T~#e2gy^8C+8DNlDi>4T&LzV^T;lHpYxa2pP?()AaikmQ&^c#$2rzP>e-8mUh>bY@|68|7b?2Z(j+YMIO)B)Q~QSl0}0N(w)<~wCM2B z{{DBFvOC32;ed63E_(mrSXk7fmms)`0bCmal_6rG@J;F^huQr~qqTMfK zYjH9izI!+?6q!37Ws*@)Sc_K2GwV%QqRVg)5PNyN6d|Oj{z=ia@|dE$5_+``(dWuW zz=f2+^V0=I7~k~MoZ_B#E@9&`D7C@Pr=+m>U}GECm2Y)0q5<3#HI4gDy0iknYR$Wl zAQz^11|24RXpKq?UUyMJT?h9boM97WKxcnvd8kp2ZvelK;;`Nqqojg#5(qklAmaZP ziOdgx2=Sk=cNl)!Y?$dgW@Ci%oAlw;g1q#7(~^t?(Vp zC3to08jL@};h?gnh{|3|`GAe5;wRj~#!S$mfRpJy|1-62CO`5*pzl=(>~$1;Uk({{ z94<8MOmb5CK=?{yqF5ODb`!coSLB-YNR)$i9m^AIlobU{JoxeVyo`YDJ+V*-4Q6+*t^!hiw zAeS|IPhe#{6?=h&nlFDR1>DzU?mXY6?qnMp_3AolkqD#&u(8(fPE(IgClqi)fH{i7 zRjIIv*PjW$@_ve8;h~Z?F2;0Vs*iK~GP)`mgXq7z*bQ`QYus|)`FBX73KWhFD`HRmOe$slAjJWEL;8w`gIEv?ZP-&3Xh~BZy zrZcmDA{NEEKHXzi{p1hP3M=m+U9v>4Hj`IZCsZWDqD%-L*#bdqNJTlyGcKLpJ?z+s4XWmEsRcF zV!=f-I=R`Kv4rI8pGX6tgvc8pdkfGEj-4 zT>jc5g_7PBmg{DSjL{nAhiqE4=H(Js9`f#|CCRjz%)btsYzjfHhAF|zZBm1RavQng z#e1Z)H48Eg5%Ih(@Dg{{xf0m(=C`z zfkvjVjXqCmMz~f4)=+!&eS*TC6K3^>YODtn?sus1r*!-?u)N%Q^?RX}^J+5nR#4Jnc^A1kltIpK7NOxef(h-U6Rta1Jz~@ZQ)3s zDn;JjT8fk2(Xv7HOdYfAO3Gi+#Ba&0zkc@{)q$dZlymkJhmkZUtyNeytqTb`465o| z%0qn=Z$DG=2XlOJ+4N1`C}I`Xu@+gCd7f!e!X~UYMPE<9ey7x@7#S*u!(NC%?dD$I=6{k?K7}EQKE#6bWC}!nyk4ZG|z# zOVc=|u30zT=TleLU=h5gxJ@qiG#5rafzPM=!ecO6XT`?eey>g#+{r)FBD%u%UG*^8 z+5Q?YU^B~8BhThMKKQG${f0$E7lVje3~m{S7&OfDQxyO`hG4?}i$g`TzW?Ad4;7#O zRb{lbv}ToR6YIOw4WCT^=$|&LZ22UEmkHCCbf8w4@&0qdB2I(D>S zf6=Cz0JGxeiF3B0!ns$yS85j8&=4FMj@_>uD z>WT|_qE>#M~irlO^|fl~JqNbW#CtH?&CwpKoO#ZiB{uen`S4$fT^M)PS|IssA6U$5YRlo=$|m z1{QLVhUQvi$X;Ht#_Txf_ihGtJA7lM=l{riT>-sE~@WD9omNs{wpDD zop0q1T+o$C4~Jz&2FGYsF>D2jAQmv|)pqoM34VJHzcW)-ZTrY+>Tgd>Rjp-C3TH%%eyC3seL(lU!i2rD9xa zGTVlIrGs470a62m;Mq7iN3NueUbWC4zWe)KeDD6wW&u(8v-6uK9GSI^*@TMX4}>Nd zozwyMV?2sr|u-m zil`$o5yFnJ{xe&mzpN9}9a{9jBf@R3&!fa9%VOSpnmT9k^>xOZa=EYDIdJy-e!%PQ zOyK9{@Xfd{GtuLOb;My`euvpiwFkr=d0Ov_S1e^M1;pOTUyz9Zt^Djh9_b<=?Gfx* zBvt^>jcp&)Z8m{T3BZK^$Nrrf&@8cIdX8mTaUt8g$m&qcmGiV9*GBn97`T@xF@|A(e%boV5j*sYsP3Uyk-l3HNk0h@;rq z>jOKf)_^0=CW=22TnRLZB7%GgNXx5Y1E&}FA-N4$>cQs|yFEUMJ=seS^AwMvCH?sC z5jRBlriiYqx1UK{kW8%0ch46DG=~QA@Av(wa=pwu6)j4iaaYs5-_&i_{uBwVt!uBq zNWmo_K#dMeaS8V{Um&7N4am>7Rc_&t-k@v7fcs zMkmRllmG0Hk2KHL47q+f=1gfVi%@*3Z0@Gcm<2!1_2%x9@3MX;(*#Gu!0Pxj#%-@j z%pvuIy?Wg-F=-5#6*Ht5NZwr`pmGn76g3g7?GCiwhRp-Mffp(LYyVkf5PS7WBlRq0c7~9?oUA#)!8>?|{ay)|1-Oix)3xcV{aYyk_r@V)i(;JOEN>7sM?B z1n5q|CfHCwh;a#PfUrmTzhDTwz8+e0-30Q??8Z*Rc4LCGDOEhfjI0ssf&)VkvZPZ* z>Ms^{4XVGziONE%UG;>@smf+3oy`|eAvgro=5;m(DQX~?mTPvwgskCMb^+c0H_8%n z745G!{Wh?_cR@5UnuI#rO=e2IX0*&4*jix&^BGyo-}nn*&z)Ok^v>Eo=aj4?Wv~Go zQf`#~sGJhmD1GjJjxlG?4N!x(IK-4)N6C*g$)5Asg?@RNn zs0)fY>wVACNBzXmbpy~1JCtMGHU>Uu@sk7rrBjpo)L5)vmM_Bf3m98_cm zeFOuCtJhBNweE(I^7%4~lb%$?_WyyQt^%k>XfhO;h=8inlHmD@=ppBtXo`jY%qzT~ z=;%v*lT?Gvf|4LV>0|N;NC46ol>|6#vCuWLiSm{zvZ+$f@NmoBaluGSg`5o2;`vb* zZgm~IC<+1fb#=e|!6_2XrQ<_qHj4v+UC=6BFlEQb!69&i+M=pMzobxE6zp}YH3X#{ zLA!@1);@{fe`WsM-}%xq==2Fj1n}XZsq*IISOV}F`SC8fB@>P^Y15rLyV?P~gd~Y} z03k21%nr1#2$1mFZVe;?bYbvtSsE{xXjaaabqd7u(v?@QdtP9&CT+LB#)Pkeo4$g5 zjv|6D-zI14q!4WA$MM}Ao57hdjtG6qPoUwKH=OV|*Ih~e5z?Kt=*gZ1e!zmoK8h+7YBc10+1sz0~;y24%I z?>OoFR^J}gZ`=3u+tskT$rB&rI`QzBP(iE0`B%&pvlM;OeRM*tO zy|{9u_qJ<;x)9yd2SP_;kZOLMfM)%fKgr994N$ECAy%mLkNpP`prlp>l_uqq1=tj^ zD#_S9Q^wUrh|RsCSS5M)OkT&R5RT&I%zplsS8=kOyw5BboZf}?MR=HSd=M*@r4eF= z?-=^S@&w%}s1+c%$rbX%5AJ+oAyn#9PU3qLT>Q5(`Pb%-=b}Z%%{#f;kE-$XTt4Zc zL9|KYI>tO7m;Bp0&3g`N3tjr)6ozNfPOxcs#s_iS!CV|0IC`Di#}XrrxBm?b~ZN?k?+-p6!HDZU|zI0bR*#R_U=ow{%R;QijbXqGyV|MeLXOk%P@ogG}93=;=4qTn%{9~ zXH@Ac3N2X8cT-Z&CTMiT$3?}?Z+=wEC&X?a;eR!)8^iV4F1{|12c~tA-v~&Wo$W4N zQ>zpGp@+!0sG!lh%wPKjU?}F7UhJ z4}LSk9*LMZ4QDn2hMHBO&69Le{h;1Ir0IVG5@WEIg%K)>eunKl9Lg zBii^bK>xU4v_AyT>{gQIHT)7<4@0j5xbJpz^H@mb375lpuP)!JAK}~ItFeiAgW3mi zyHNg+pqUq~-Bn8!ucDrfash?7oF>kNM1w;^`b-fb%k zL#?Rr{No3pXl2=L0rT?T971_D`82uY4XFAxeILo>DQIyMli6uuJS--EQ-p>V69_+0Obh zJbL-FB;_?{Q-l>2;eqTCy4&;Z5@z@~o{75$hPei3-TYV}{`Cjc0*Vs22*zE*71(pU zOj_^GH6#__>2Ri-4cz&GvbLHF9u*Q&GywPid?5C833<_K^j9f|81mChKdkc7_p4GZ zAKm2AylYV|(swxJ9jm%9|2}2caD!b!V;g> z{|iU<_)QBUp_j&f5%F?gs?oqb68TuNCDO*iDbib&>f1$; z#oYaNyeeMFG2xO;5g_B`l28=KAb##GfQ1c5kt88rRi}TRB{TQCiK5#m_fsElh2dgB z-xy;=O8MMcis2wqpx=YZY=X3VFMu#Z#&LN{dNhQt({o_7lUoG2!FE!$c|U7nS8=N3%LC z!~sxJd+|p(OZ6VgD%R6g2v!6Iw#D>Ak;_SVFY(H&feE!6cpsokR+=B51%T$cAvS*{&s)u4MA z6yT+&dJ!08UQGV6?98`vx-^r9jXUw6p(h0XDN@bw$kA8=^shXeN|Vb!j3}KKn|a%h z(~a2sjJR&5%BxLVhD$)HeQ3(oym@n^wDT%n&)2!RQGcMJ-cXdXJL|w#)V^_%l|5-1 zSu?gx6L%KnHDTIZ?M+&VrMHR^c&6W2gfHuys#f#vPudumrF!s{jQOlkwLn*mo!#I- z(N@t+iQ_1r?dD#`d1Ry@95J_80Wodm-W933UA$D0l*&CkV^)36oH> zwnjV6=>=d^B3_|h(Iwd^L7dzZ&+X2Q>y)HlP4vS9mnSYN+D2zW73R{x3oG8z06?X(rzqSHe((xDTnk{uDkX$@>PY= zV8Fps;q!r;{^@%F=?k$sl=Ji;9lz5dG1t)BX_gu$TH2^tp@@`5h>~$8KtKr=sc@)l zp8%JX?Mbv+vSv+Jzn{x8?cE5l>5=2-H@ebxsP`-Vo#gn=R|)}ir5Q|JceF9;2Q6JO z5m-BuGd{2DGF2HoG@`V8_|M}>*sYHHw-8a5_U4KgA{`>cquAT9r79HWx;6<*;P^rJ% z6K+`IKjmh7Fb`|?SR~@CW-YVf+ydY%2Dd34@D^|W=0L_VY1&s@G{|6(`W3k#8i&9S zbtvXX_XMYSI<+%^rQ$_|?|$O^VNu+AH!?|0AYHi}C%K6GUu1oCP+i}WHC)`??c%N> zxVyUrcY?da#XYzOcMI+WcS&%EKyY{GA|Jmu^QLCL*H!1=Q)ln$)7^V_ueIdqpP}+C zol8h%D7Z6~THq9GLd-VnhAjLX^JHX@PrNSS1IDI2XcU{fu3WR zn1b(zT1mPwv9=4}%ai4yqOszY!8Vk3--W%ze$%Z`y8`Hp`D_*dye~(E+8Vzo=DO#a z=R0-1fK0c&L>SJEf24eef+2vPBYnN}|JG;$*L|jCz;tH2jg^46v5zGpz!ncoXk%U3 zOvzlPTwty#IMezIZrH8id*Q0k@8`J^y!OW=&mfv~KOshPw#J;+&UT8U&}1H_@3c~w z4xpp1YskviHiWzuXAW}jTS@KZ^F>QwgH)4+8Er0wP74Ym7x@ru{BMJFnMAW^A!Vi9 z>NOWkdKAS*J4MnQbTuXOWz=DaLGY~RQ&EYM0J~9=ixk(S7a8D3HtwngLToh$R}~-! z6|~>XM0}H^jA~H)AdL+I>>wcoAtnUda7TjgRUyj_>BnJ5&WmH=VWpzrIW@7y}%B1vJ*8mz0RS?W>#qwN%x zYTeB08T(Y~DVNCRFtodFS84ab`8naRfh#W{(_EH$?M=&@1QRwgrX=3)4(|LU^o3F} z<%jM?Xwp%?(V4VEosKReF{|9hG`H!Kk2WmO+wh$rCTg!%sh*Wa4HA<|d&8<=9p_+@ z*7rE5m&cFF|LkPm^-sdrNhp&#+yl7pp3=ABAojExanz-~@*B9URM&cwrXHAw6Y5L)t zb1>T!X_?OANtmph;aV2y+;BBZ^03S*oF*?7Qp>5E1$E>%RhjF}V2PI{BU{t)`yf%PN@ZpvfHa1c!g$O=v3Zcr(r5?5HCH~?G(vQSp`9}Lpp^?eMimPWK z?c>&&o6Ov@FyIZ}gXS}DlK7<;P_z_*=oE^k3#w$LsXt`wwTi4sgzlNTtc?a@v*Ni< zQVemL0cG=3u`KN#?NZ1ISZLo8L8ihzt6o|}=$7~gwDD~B_yBGXNg%k%$G?S)N~F9d zcw6p4(v-S|SjpacZLHLu;nHvQ`Zy2w26uh|Knghf$t@wpi)3ct@iWTY z8SJm8pc4*b-!i^DN;sZkbmWz;Ziin<_w}h#4&=38}Bxh`3D`!lAj}I8^ z{kNe555!>#V>{&&@ZWW-U}nu>WaF1#R@8JZMCsd()IN%MrSt~5%-j)AJ4xP>I4Y5b z%zU`oHR*U6=e&dB%f+hVHgP0ObluNEN$O03VG%3RBF@1)q=nI9v@b~K9gB?4l0(vc zBug?Y{k)iP^=d6HQ9AssK0*Xc&YC(8keGD!cv5xWwA&xf#XWs&aMBVP9u1%wGR92p z*XU-pLUhEC1d|}>+pg3qwfdbtsLq0Y-w{(~m_FCIlyeZutStWS=Oy7*GyP;ZD@2v8 z9@}7nR3Orhcr}S*tDcM9Y(Ly!Ob>{9#a-+)$lh@*IpE`oh~(!hXC2qA#zpbUHWsRM zVu=i;oPq2r#-@s(F*jw6Q?76$9^{tWX2eCJNDcwtj~9r;z3%+&gA&N-G&SWudN*Bj zhx+^`2s5fEqtxFM934L=%fP1u8g~_H^(d0R3#MVY{n;@;iGr5k1WzMz)Tg==)wCVb zb6W!_+%xA$_&WcXHXdY=^4(KSv^gxmG2ZGJq?vsj;ie~0-v5Y@R896C^LjYTrI4?F z#L;)3RKk>_US=H)@ieYZq(fx@agqM0z(B^6K?B=O4-Gl1Hdeob;2#USEZp@wiNMwV zOYGp)4@p!U){9Q*DVUXxIg7lx{gnoasS@phI#qfAw8Z!;3X=%}lkps?_V<=nH&boe z#dfW?+EZTAj7c;NP77F_dwK#HSnh%BAcdJ?j0Jv`92E=>X#XCBPv@;p$oMtoeE3|t z))o+{Fv_i}8j;ZBeu?Ohdd%|Q-J7V;pvT}7h&0KdAzfB!MV8S-Bq!S{fFd+5*?bN( zXBXbHVyO9Q(D42wge{O5o=G=~&Ev_;%r!V7!IpL`@Chp|Jr|cOsET$xv*l1DUc=ql zt;>l*19rnlCLcqZ*w}K><@XqqJyJBTj|FD-l@a~W5F#+D;M{0)Q5EJblUK|1l7S|? zsGVzNkX|C=Ht|Gh4jtCQVv>-!x-T@01How4!n)$PWk$=6Ia8p>QJ;$?(9k-uA0IP}J}iKB4D}N(|ML!Dh73=CnBm8#Xuq zGZ&%MD!tlShRy~ss5JEJ+E-hTYI}C~JGlsmjudEub!$gmH#rRbI&h~GE9z}baMno-#(BZ3e+fbmlQ^AT3_uJH_h+GbCXUf9nm?|wS#23O9dd!{1 z7T_{TS#~7madntGYv9CAp=Bz9sawZ-HjZKtp*?vb#R0mL0wD{3k04bVT-=F^0pG79 zd4O7C#=I5%s}E}J7(~LDp})D(IvC2`S)-!1iD1cpYwq=Rm~!y{0C+9CB~c$;>n=$&J;)3My#z@=We*XPksy1_oY$2EN-^NUXS;K za+v`mXS6Ls2XOMtqtMu1dX174A>70J(LlMUm?4EnQYG-NO=f~f(ji? zUNdO$YNU7fM025BrSF|}p_}e>O1}5{PV*R>XjGdz#^O&eUgX`>{(ryMXoIbwaGa|F+Y7wMGxvoWo73;H!TQ$jTR<;ZO`b z6^|SvJxHwc8MSv#f6sw(k)8=8zf)gutqDH;D3# z$d_N+KGqf^)SkMxA_!@gKaYiO!QXq}J}L*VpOOG_Xd$ww=^d#NNO!!^Bwl)$QP_yh zC{nz8gjdrPIj}<~&yXc=73-|!;|rQ^5_PXr%@~`3RJ=uv2fGwGFGf2jD#cuhZjp)a z-s?}1o#*B(eL6!<$bRRES(voNp7hGuia5XSY zYd@y|f}DNcv3y$>21j0ec=^^$mgcUT6MFQa90CCgs2#32-AE_G!iz?8i05}f3S3c` zo+<$hdi`_X_kZ(jA9M~P6gv8M4TwZYs4LQ(L;-Du`Si(Lnk$2~qgPc9pA0Ld$w9te z+xw_iYCdm)dF=hX~|XWk&H5;_z~G<3MJb0g^{!VreImy|LXh=ma~Ow`45gG(}A*o&kqKjEi6 zD>Wz8&>eb$d7|Pz*aX_LF3%Oqm1t@@1NR=fL88r+ktaHbE2?B3mBPzT^Lg|rM^I+z zw#5Wqy+Lw%s8ZqFGI!;es3)NYCSF1iPFkn$>-hX!ElQAm`>itCvk!mM8{na@9@|6Sg{VT-+e;kD)+P~y((Xm(}F!^{vXaxSvrkQ`v#G=m&{OpZ7 zE=C&=yKryu5NNzI^J8C7a|wZnLJC9Kt(o?T(B4QNQ~9fu-@F|6{q$J6nJ2Hr zHT#5~Z?!>RfSn_|4+Yq~^KG$`7XbU&Z?@Tao*RO5Ua!jt0`C(%a4;>1oa zH{xbjLFrKap^Mg8$MmNVA#BDj=QsNEbpGIvyDb8I#m3mqbP{j0{Tt3d`>U2TA{$b_ zmV)da|BAN^B-v>9HN8x*&JE)FNj=8A-{Bt!Pg@F{U&vRYfFOfyC&l#Q3f~>CozZl< z;!b+IzIBNhC20l~ds%1ZK5(R^n<{^k)$u^?Ce)w|TOf-mX!yF!qAwQ}@Z3$rEof73 zzGMOtUl*owzO+}tXyS{nSCs^Knf>*?5RKl|-)WJ{CCaa3eRWQPC*+9+ab-uaD%TtM zq^tuLCUgB+`z=>k29<(K1X1I4GTEmr$>`iu83c#B=osr3FZcd#x;{Tq*QH}kO*e+ zi4Y&GK!2VI1$D0lB;oo?fu#XDD&;^&8G`b;%AA#S4SPrinx`?RNsR9V!=B3HmZHp0 zU{TQRmKOgAWCqUs`LeLv@Oj8Dzi$y8=V(gz(Q*$}u=B^+V znlbM{UIB`(O4K+$YZoRD%a36TaJ%Kxp>spL3g`bY&Q|?}_RR14BM-zxjWvvTfX>c) zn6+eLI>~#uAv(@h`q=Wj(6Ed`q86n~Q4RxbAAe^RDA7+1iIu|>SDBi``)THauHM4| zD=<{i?i@Ku=aM6cZ%+`iNgHXb-~*J8bT{003N3T*ze~;a#pwMeWy=WxK9m>9?pY67 zUVRI1hbf)YGWc2+24DOnRG?;!!}ObJ14cf=^Xnbcm-a=`BMRy{%eC&H&!{xJ+;$%3 z8)8|X-|y~fWuyl8K2teB8rY0*vp9rO-8`nB=5tW#7lz9&)hFYlb>XS)FH#{Ne{SvE zWkX18mf_Lk8u`Vm)6`#pHu86dDc4?R zRYf6$krdHGHSAxKVV4g>cCmXsM82ukV*?p=bSv@Z;csx4b;PAawCUfCN(aYBhR^R{a)@fL`1a~V(SkV~`nHCBbzZw6)+boIQnLCbW>vM(Q zgf%sxZ@{{+4ld8GL_h~oq1Np)<%Az}368R}N-^2jw+?@Z3-BFzBQlg)Que*;lMS&$ zZFnkDK57|=dfci2WwBEgeOSP#ni|SKWUBXq0^4~;Vbda@f}{t)BtH#6z8&TpgoBY6 zVdHVrgoOd=p^C1KMsf9`8IKk}9$#m6%<~J=qa$AY;u66mhMen5PcVB8Zp{N6Rz!8( zOY`}O?YYXN&qTTrNnhOSStCr09R6%2Aw$#4huq-i)Gw8KOFeP@dc#?}7mU8|SSM01 zU0dg;9HGO^MqPCKMU_RBat6IL{c*+)gOFtushKha#6XYkiGDNyv-00FKI(Lh6-=E> z93YiQ4d;J$3BgpN@YRSj@I;3E9+scZe~oTKCSjvA5yWk+9Yod9JM7=DIH1RkV{3%l z26inIp09#S^YVv<2R>-TJIH*%~{0$J6;9`Qzj_82H(ks%rxw$uKoCm6VFj zP&+r%BdvK7q9up9=GO^&94q{LuK7l?7*72CWr7OX%E6&~xn!wGmkGV_QEe)@#*jj` z5`bo)`xmion=*GMuVJkDS5_?-BNs9r2QS52pWHQnStlV5P(bSSLI&4VfwZDm&UnaX zlf%dSv1~c2D8WxA+v=^nWONet8JdbL(jsz^?lMdrO$Jo}BN3zvLcFVE@Z`>jWiY8$ z;0s=S6WpjpDqYZB`bR*xJ(@%LClJGb^g#aG!~?T`76~LOMW@p~d5Y!P{^gTN`Xv!9 zR4m|@b7tXZ2xWiWo-YkwYn=kNH$R1v9)9r3xw>h;yvZE-F`|QUOzC$BerxpO6%Y<; ziF6ZqbL~t6vAj4)VNwuFdpn(bLGN=3#3>wD`I}2gQb%T;KEx9%%UwV+yeO1BS3)z8 zDL?A&O-&X4nf{q6n``$PR_i|^G+=K|oj2)n&Y(kxNOS(&nPi(ISdi;aoSGML`6;WV zgGw~eZm0HTW3*el;a*&$`+~_fqxlchlm^Hse68l?ZoKE_&(7tPET7Pl(GjMNRb$JR zZ8!uk8nn#$%7J+1?MD&0dcv|R1{-kIdO}cK?W#_3`v10!laP` z%S?gh{qZM+LU<=6BzTI!dpljUA8hzOcAS4d^=epY^o3s+bMhbf?mB7cTidm`3f>=i zTlPhQ77L_u#*3`@rM;m@@fGRT!&Icz@jS$iL9CbV#|^T1=%0Ybo?`>nxmWfjvwC#F z?|G1Bf>lFS1Tn^;-_Fq<(m4Tx?t;5}(uv7JUB=RUeb0Y;>P0^rv*6YGqgR+#b+>2RHfN*>kmlAB&scj)?JX}Dn!NGQs z9o`enX}r(}`TanHtta*Z?RM!OfM6Uby#ByixO>&}+BTiqiK+oK)vceH_3prhc%4Fo5wXJ^$gI z1nA!b{Rae{_7BZ)=*RQlT&$236fOjan^<+g-zHz$=n6MvF)xnw7`f+XsHqo3hp*uq zw4@V~==28nAgO}6@pv+_Oc#GETac_ZJ?#c8P0%S-$7(Gl!P%b1EVsxy9wq1Qb3M0i zY;Zb!7iMZ{k>km`Q6rx0vN1dLOcbV}WhY&K|5-($^M)GxN9A6$v40G`>@_ z*E>(URM4?byQbp0e@5+hp}ajwN-mP56bQWuiFpdobVCAs^@fB0P{wY*Bmr)6oIzj! zB!KAuJpZ+4(2wA=($E z0!OJ20YT{hCPxR5i%3l3Or6ZVr<8EL@@j#uxqBG@>>Y7~E1_3^(xka`vX5&!4}_Y&1-e1b;P>f_LNbCq-XjEHr1uQW@C?*XmudO`-PomO6yQfTwL|TW^8#Xq z6ap`=v=6-DM!9(_4qBni^Z)-fB~jayNm!-BE$untD%R#w^?90QtT|`aEP;0qW;I!& z;|8Iy@D!OzukVNITs^VDF{Vxw`bzJBr-`XyOEk#{vq&j$-H8PFex&q5W@cydjWfEl zA0Lyh_M6#?4IajlIOR}E;$GoX@yOk_b6VgCgtI|F&mU=IZ>HOGBbBnHw%Mw(*{3zS z988C$Dx(0sJm!|#g}cF&hgId&m2||Zof0( z$sgOL-k5e^IbZjSm+r4szf;ioc4K7ZDFi|%ltd4-;3Emp2*nE;cf#UhyKgFEWCODg zFm!~I{}BlI-~N+C`8H%|yh;owJ+Td3X2C|aT$`Wt>r9y?0B3VD2T!@021R9CmGL}o z{AHu*+%@i98pz1P6&*xr%J@CShCw4vhHBOuh_1UP@SAMH0i(raKIxb@=$CUc_-r-X)%N~Ks1VBETL%3f64*^(7L z+*$UNx8B>&@M)##uVQh$KLA;9>RHuj7$iuCeX$%KpKj3`-{AlB$iLT7am<4)cjMar zV^5;FfrL)Uz){Pq%WV&gR0kU7^l}L8$$Viyh=8$#N1&j%rlu5;Nk=a(Dft4AK7opk z1ZlbkIZK9sp4Q7Rq7#e-OrxypX7v2v!4~@;67CPL*O;9?-BOXw#(UlTa&mnh(h=@e z3-elu<-ChG>{Q1y%rEH|Ge~37b>c%;6-n6&9FBRcag-jam?PEI6`cR@?(b$Q&eTsRC1SyEJCbl1?)`^+3vzoX#%^mzcGgn-2nAN$BlW?4 z8YJ6XUARL(S9NC=R+E-vdqE57>4}*nB8c~z#e zmH6=J>)ebTRlMrYv?^_T>V|E#LMoBycgp+(-Irx&*ds>TT7dZNtp*k1&+fTW_;(v6 z(6P5RCA_oia?cqdEzf*zEx8hVeXr3XDtA0qDU{KIgWe@C9OOmlHo`fPIj&@$ly5JW zUYa;~1(|jZzxAV=B@Qn?WJL3;Ytrm~{@D@VL~+k~mq4FqH5Ia>U?cvijG#ulSBt}d<>6)jM^8+1Ryzqr_Z$6vQuQ=F- zo~<3ab3&Y9*IEg-@290KQEVm&BKP}r;R4vhjp~&6e5-vq@qFbK;9!{#rI_$~R=&qS zP$s+BI`GI7uaFL>Ov!xw_seUH{eNYwi9KKFznxaI`yFtbP<(ykhMZM!2fe_->3K*b zidf(z;s~Sd^qQPw-APcz=AHiCa7GP}b-ql;Bj!O}v*6f$t4DPxTh1#G(06r(KjCV# zvjRJO zb$Bf}Hb9S%<^tCcX)_MNHOb6BV%jn6^qMgVl!d}SC(}~w)b6N=OGJp_U?3n#BM+qE zWXceM@HX16r0EKVP8+fXb-boj41wB6rxPQBQNhYwSDtfMa-HCQi67ZKK@;388S#gB zG0UCHxk4_`T&0~+DQf|-O(x>g8s5l=VPsZj=l+y`p;(KjNc@PnI^P&Lq&}vaHy;sE z9X1gG$rLNDmZt1OJU6W&3A`Sh4Y?r1*i@VkVF<18p?HDFq4@)V?&*|a3Sw_bJ+uP} zL4W@(JR;h#*F&t(d9(@xtqaSEKi)$;f|;~Kuu8?i53-F=rsz+JOYI>Js&D9+&sye+ z-viP1rv_F76o%|5EV+L9=D1hiHOr8FB8++CL9P&Y9Es47X1?~!wv$?%r_TsjW7he6 z#QTf%(cdorg<3_vcxZb|JPP6~^pqe4+$=rb)?C>m7(0>N*3diitaMYDn2|;xmW2Yu z7scdtFoi~b*O!>VeQjtSOBV4^DiH5+%oud%YH2nkpZxTPT#VA}MSVHD9T}RYqGgU) zHej3G{Pm2$Jn8q~l@8+FuKM%n)??%_$IZ%BhN$!Yi!bF#w5NYu%FhVnr;HJ{fa%}M zcYQt!-=dmh8_SYGY;TR6BC0BrM#gYJy(YXtbJ zu9X5B-7K@8rG1C3PZap8KUJ5>k(8*%)#LlIrrBxv#4xO5T6A3kt21M+XF* znp2XKGa<-}amn-sipc=P*aDe!J+A-kfs?F254@Y;E9WV})=aN?)y;?-{!RajpBoPw z0oOtTJ<{UhSU|#m+jod3s=A79o`3>*lIxpGLF+_>_5tu2S!mH< zkhO<5%!y=uZ_5Fz8g-xZIHNs}PHSIbWkEN4X#PwrUIa9|Ph}tP!gqGvn5B$<=sgL(;%1F2fBXIdb(c z_Kp5)TWn~92h>@e7r@qOm*a9%1li4yi-;odC-RL!5$k{_IlNanbKy|^2A~S~*Hf@) zd)g}!;i+^X9rf=)h@%s9^7bK(Gbh&Fr>YM7cNg5}gAf(0Il}1?du6Nf zY|OJ^pUT*E&dD6@O@5jcntF+k%ZWCa|AqKL%${uq@+yz5{C51JPiHqaHk|BIYwgO* zlEW|WKGvR0CZ!3*AB~uJxjfKtF@6Kc20swf#+#3KwBk~16&O{9I5IHkT6E2U-=N7_ zNdNW)EOS-3$dIuk%NzRTMx07-ti=>?D7h+9gBRzCGI$0C&E81{Z+U4dZS0@N-P~`o zc71h|Y@9EQ@NGtg^x(huO4IUP+7gucEy%fjfvrSBV&g;4=Li~1KGp6w5FTpE+mH&I zSeYv;FHHFCl!pa!t`&&zvL7XlO9K52yLDEn=fJ@NKr-kk$@C<;bV=QBivC1L!zy8_ zL`&0q;53=tgf*7H#`B)rMt^TyGe3_nZ-~;&(NEco#-W!X;0m?Lh$&n|kleW0sMbqx z+B6X132nSaEgL14-pg{DZtG65MVCZe;Dr%Oqk>;Cb63k0e@{p+5mJy}%KfAy=^63TV;zB`jWs-maY=%4ssuHm61(HtB8 zo(f%N(U|pENR$y3Roq zqwN-X*&MY{p3xiylO7e~fr~l(Y&7U11K}LR{L7{1>RpMf6{(i@Co$pue)IeL`JCjr zyS>t95i7eY14;+IITGPSRkX^z&n1pG9r~z?>JiAW3n*nuF5i-hB{;Eh@}=gXke-Eu zaae`X!m4?{=rBbiE0e(`aoHvS{Y@`&umR?)iks1uB&%5-X7@YsLk#kvDLiqH{1+mJ zHph%fpXVIm|JG&LGp0lXsH|SvbmEa2979ER4Bsw;fU9w#B*FyrMl{ZMef4an&ew;k z3Qv|0R+7I9_A~Elxp)3<2r}iRH>t!(4mHG7X3%AD*mjpw+%IT+kg0A<>Im8+)@qNL zfZEX^5G@MdM$siBL(oE*WIIk!v*QyaBdBnev!%(zbRtva#k_t!j`R$RuHY@zh!qqR z;~!zs_I7QSQOC}of&=1`3p1?KQ!J99g6I%he8$axwH2XxjPYBen=%Bv#h%<`le@uw1(;NyRCOG=7 z(j0cabqb2SC`|hnLCpN)yfh-5|6`EX?{p}*18hHK0_pmJ!-tuO(YM4gN9BOc6Nxun zQifStD#5A#V+wf_jnOuCmW^b8m z!JW$xpTgJE6}@O1`G8=B^-?+KR$3J-=w><(6?)QSU+E-cy37@@pnJ&J@Gb%$c4GG} z&%wC-v?M|3R*`^a$*h!cG_n4ETu^qeK{+;J=irnX`4N77~BY+CE`>AEPbbk3`3z z(ywfsooTCqZuaKo+!P|OL=OA?g`6)#vgncxDzYl5X zi=;|56ldG4&0+H{_YijpUnIggCp`37Z8o^TG?WdCicm{hNUbjL$)ct5nlMdB>!AV* zrWBWod*#|%^TY#H{ILS&Hn&1gd*m$KQ9Al>wZ^_>{TMC-LHv2ml&q0gXKTwJ5SodV%s{0apdgdTq`oa zo9f(3B*nH){P{8g6_nfZvjnI8r{1tq%A8+aYGjb$&PYrmM98mPcl%D#9q2LG(A5MU!RNpzZ(b`wJTSM6nn6W&g z`OJIeVG-rdMukEPF0blQUue+LYoq1TmZBZSk55AW!lVLh7YEP`sA&sn=8U5&sANT( zMb%V)AHBn?3k6lgy+zh@j9^@$L3Y+t^UGrZ$J@U5ApVr=LP$9B2TQ!lqjGTpuVx}L zqGh*2Gkm9Bo~E3_pwSB7fC&DMqOTpZUyn<65Ap`m=FLf$hNdox(G=dTP|Wvrsh&(z zvC?bYicGT^>51J?dd~<5A_}e7dMAiIg^2X(tki>^m)FywLE9 zLk9v*tXwfhF~P+GJDrHlVh&X5vZ90Myy{NWFWaQ%iue(pjUEA**F#HQh9_}u(puz{$Mrtl{InvgD80f?)BoDocxpXb_^Is>#2_eeycA z)r}Tt;}Ro}8-aQi?zA+%#E0T1vZrF<^nT1swd(5&N6gx@s8X2c9=(grp`)wMX0O=& zx^7=ole-Y%B+ehK;`+cqEK@`!HBopdUKJ~bDyW}?s;TKQN$rhAq0+YYpBIQLe~coA zHGIf~MiAZZsNA7eO3<@Ctt}N;pICP4X~z^6OPpfON}BkOa}>XrnoGDI zN5ZGragaBX+zSfX*{0^uKc|P0k@sg-XIJHg5F3rqde+p(4TxF3oBz1H)h_auCgCcn zG45%kU3K2#7<}JB+*lF+oapO_^QHV;6*7qly!yx@A?ezGrM1=P7lSTYB^5h3iP+^o4z3mvhyCo2sMK*OSm zvnxbipjcwiY>&QHzy7z=dX9uV=bHx=rp;;5qnkM6KgDsgO#v~^knQ3{h? zDyXS$6QFZYl)6=+b%6jS@xB-5er}TS--Sfj5AmV|ZMy>5c|_FcFk~<5wjc{@+;BwM zhK^pfW3=zyR_0kc8FoP5<|u{sIAzY|B{Rbs^$Jdx8^v9m3>m}m-d`)Qb0Uy-;$(5R z3RvzaTws9Bx5JK#=h0F23Z{MM11Qllr z+g!Hay%Us~rE(>mF2Pi)1?U{L@f;a^wu(_jr^)Fj=*-nb6i(V!iB=22w@k>PUg3Zdm@kU`T$W|4HAzv7nWw)iVYpnBoB z4)`9EFolsrT;x3xmVnlEo5y^-z;mXPmlL4<)pj+uG+NOqnZZivtMpqomEEsjB16Z- zyHi;cA7jO%TLBh^EU|5UEz+t68Ztu=7}n~V2~%A4C-t#Fo0ymcKK&G!Pgc|LId?V= z6mo|{AX+ucI^vkQ!cy7JcLzHRYH6)?Dr^Mj;&1Dzvqgre7s|=_e+%*nL#U#>8hDOT zeFB=;?QumLtmDz8CnAt>O>Gd4qnF@S)u6&Cx54!XEn%;wetC==#1^J4Af5hoJn31@-pY2@i?mz!A13oad{w2RBQ??8*ca5>0S% zfL!GvxTaS-;C=DAV=OTPTiRq!1X*W^M12#dNX6;yE|;-ogFiKuLVVqR-J%wBUjI72 zAx&#|a)kJEI3ZsdSy1<{GU05IB#4*vqZgxKA!fx{qTZ@Eb6u7@*ELcvM7Lq)wS;j> zq=)*Yro$nx>#khg*4>}7+qI$ExBB$pC+Vd_s1em;rLTVsPh&oIY8)Qwpr_QtFO|+<}0xs(M|R-(Txv{qTk_k0YU;Py@*c|U}6et zH>MK8>A~4D&UrGM_bKF% zI9c}BU=#u`-%JMn4kot>BoswV{%OogK&p#Ghfk4x8J`KmcNiim*pYG9nQk<;xelho;54o)n$k{;(2ptQD zXg@;}ZKV@AkKIRi`&X_1f0oNl@yGb^y({cf)6VH4m8hR#ycXHv$7}fha6rqPM&xf! zlGm9ELk)hwC6oV}+x|zH=7N>X_cN#xJvCp5xuTEeDi30RFCqcyzPr|X4bdx#LbaQHP+O`gD%Y(8<*m3va^PKxa z*DFH8uqtuzo4Ou=>REjHqN7^On0*Bch#cS^YZbUYAltNY!9Ahfvzx+X3m{F% zi$svzxVmaQ`+zgtM|E|e{>!k_ng8lMlFk9GN79hbB=l5!9Z#j^hHmNg;z34hQ^|9i zR76R$a)kM&)v3~4R;gUfg5}RoYNz{mmb?*;2Ts~X%i#zN6-N$aH`?Grq3Igz?YYi@ZOFCLUCika-5H=>3@aj z>Ho5iL*Mz}(+DxFzq`;Oglksd66Kekx!S-lq}3=v;iI-OW@`Waub)b@3S)yl08bfe#xGsD($TN1~ykqT)dZ#vvy7W{VrId=UEM0YZ=X5YQP!h{cTm zlui9d@^NsY5XA_s1)|+mrR5h)4s|X(MF!@1^EZS}Aqq%07RQzZPEA+^U+!mzGCFhE z(0)t19$0L*;IHg%x8?uk{}Wip!wRLnr|1b~$$b0Q3)Q~&#e$Sr=oqQhyM8p@z_)9; zUjWK)WSWmWt4bEXu%K^M7Cz} z4LtWH?~GXR9E%8Q=3A=S*tn%pUHCIY?e6z--ZmQ$s*ErgRp!g|J}23k`kqh#)JUtr zu=oCY>XY-B?xewSUxj`gQq0n*Pt2d}wYrXxjTJ3T&9GPSgUMP;^>UXl9*Yr6tP=;| z?#_Mrrzfk&sm#!aWO+Y$VaJ)0AB=xeQfw#gaDL>J*}u|gRrkSjNX(l=ZMzjDa(cXU|K(I2G4zbB~CE%xss45MwxOb4e4Er;i<_S#?_kf` z0-e}p#(!V?Wk@KvoUSAE<+SJ$|4!vH19p;RGPJ4z0Lb!Sw!ugPGx;ulY2QOzNltD- z^VO~nTr!iYDf^vm*fq&PN<^J$;V(8-#h%UMEbw@~<-6Y-#F@dNM1hET`SRp??I5=W zu4rn4mf-Y--m(Ry6Z36jaZotLMD#|#BBNIUc0G`SaKHq>Y)-KF^c}%}{OrHwP{`qu zG85yXrJTPy5iJ_cz5VIzI1oyMS-SP=JqQX`CXU`e*GL%}Dsb52(4^OA#r(V@UBm|x zJB+GRr^|i;@g)o*%m%i#`S>ND!k~B749xC1z#q09-PA-$>k)cgsAD<5TNvL;aOYgO zm8Zj9>ia^~-m_iVa6?h{I1Ol$8Lu3>lMV_R8;{ChG4m04l~)A4^fOM@;26n2u_7bm zn{0bBBNGdpBJp-Zc{TP#wR9=E5g5<5giQ#l=6GK{X>gx|R(tD|6$Bm&gC=L=C?Nd0 zVHFhIcJgxBrZ4=l6!}8Wws>+t1->sSXwGN^hfi@)!mXd{j0w)jzp!7LaqEsh@}nlq z=iQtB;+!PQ(e;nW^xD>h`U9JJD6}l08R;amaXb_-n(da(wTVx6N6NJvfiA738TUDn z=a@Iczo4p#$hzuV`a`a@S$^{JywUJ6VsktF!UW%+hzzfaXvt*%kF0l$ zjx74teq(jV>7b*EZQHhOcWm3}q++LHb;q{VVaMv&wko*!pZC6Z+;h$zV}GeHdyHLc z?KS5!=X`!&v|yHsiQYDLUjfPDxM7_)4I7emD|FLC{|pkG3CxyP>`BC+l(n1fD&~I< zz!S&yilGXGEmr9jl^>~Qyy6P@u#fvbUW7lKuNCCy2U%ohMtb!qfdr3cOW0~W&sPye z%z4HQ{jMeGjfmcTonFIVU+zzJE^|F2t{S{=58TXYM+)a^y0{$VEpzh(eDiJQO377I z$eKv_1HfGs585Tar(J8ZwI5R98#&=hVo&Dan*V%nQAv2>tV-+-sB$GnH;K=A0eh@s zT12-u>TrpEBwSp@@%hNUch}}|fsvicts@+dI7WQxI-A_}eJuAN zw2y8))c&Jsmn(p2c?9Owib_GB)!eSYROY7G>y>WPaywurz&^daKP^X4+vfp4n$E?E zCow`vAQ_bD(#y-Z4fK$zs+R_t|21MNq6f;E6~Zf>PK}+{`@ZUR&caf zMYq~)PuAUN8q~`B)w~#4HNQK-%j!dfc;|gZcx)fd#Pv&9Z@Ui6D8nb8@?C7kj6~QC zf&PE$p&jzbB#}AbQ4{t1bEwTW{kExMQt^Vm!{855NHHCjOXmTc3A&MjwIHn={f*?6 zE1UzmLy`qTB#t7 zua+uy@(T)uC8biM(8xP+1{+r#Ueys`jg*_5`>8A#&(_Cz@?&=O^FS8WFL1B#7SKhM z^#=O1CZOe}gz25scsL?QlJl?t3O)UuvLb<~e>Q>--gV15c-!d#v*Q1h^-m(T=|E@D zr%3|&1Fr~cea}#V%0vD22_qTt_Ozsh?pn~GpBy5Q@840^Xb@;qxtcmpj!){qbRjXm_M_)T9v$HUUOq^NS-udJ0ac+zn4a!7n=2&`P%EAJ+hDtG~ zxBm6D6EG$+(y?ZL^PcOuG1h7G-RowIipBeeT#(Q8;OnBs4;11Ll=Fdb4fPZ@*lm}E zou(z--M7ch4pH;vWGa!_2!FdzHpa7Imk$e*qWVD>5fiBj)oB(LO!kOx6LPjWO5lAC z$^Jx9b0Jb{I%B^6!B#PM0G+6r@-%)E2fgP~8!+7;s|_CYiYN*~*4!cCa^>f2=dH4` zd+c=XkhjW+KDR%ToZvfxlqigdh75YLPjh=CE=S=+w79)Do(sy^$R~1z!d8qzSprWn zI?HOkL23IJOOXmGQjQ!+7Cx|a!nd&@ey(Q8JV{oS$CC&tII?5Bsb^JD z$*92s)Gz&DId~Q#vmfB4{+-K;XM{o|zMlYChF{~OJV~to0;}1ta7MS6m+FmrVS7Op zzH@8EGrS(>)>_%x(l485x}xTN^QJ=y=5gubCer#DM<(_TH`^8{n$KF=-Wuim)R# z3l5_&!kO4lxx`V4l0Z3^&e<{YzQB?Mz0ZD>0+QMsMBv&r+8r@mvgUs(D*r9Z+Vq9m zTSia$xDHV7SwrO@?hcJfCyM0Tg&2q0*{k%s)p$a>&3rVX7q(bS-^Mv49^ao!Wrj?3 zbeBAzu#trn9Z5xU)DS2}J?YjV?4I^X-7o*ni>C2!6-nfV*vC@E|$N4tlc(I%*0^O*Hux3w}Bs~>sDL2OAMgp`Q}yuT^Ib^ntGGkZs5 zqr8XlIApi?M*Vg8`Z2M0A1^=-7h*v!v-55YsCE`Ws_`ghD~V;@Ga}+3KtxN$n!k4x zhpp!o=cdQj7?&eNHoTNE`>uG>&5YrDw8+!bB9X zg0MvRQWt%V=#a)>uy4}UN1V0Drdhrk1#a=lnYfQ6(2pnaJkm!s4MoFeYUEPK%WZ}h z?_zN!0*lX*K13^xuq6DXVZGoxP4w@V(vT~54ah|^R$@PV1w8%+-RIfZz~p+6+g@N4 z%83>v&iq)JG%sg|lquUp@=k4B4lP;{(O(I`S%1`9IXL3+6T1zE-mICMIhl0-;CmxduQMWiYI%-TD zp^|WNLTe~=)m!6qFo73zb<=}mf%;`kq-pwS%mG6sv0!lH$kudBmJ3S}$@yvt{N3bv z6g^|396nsGL{njH#=kDM;g6dO=0s=famzU0J1*&y8@Qcp4vFDX zbLyO=p6fc)jRaVKpRI97|ErbHTD+LJJto!j>XVF#DF;sgDJR8bcz;`wjQ`_Faw)V}%TEU2amQ~IAxka-yQ zHV$$C{+E}oaE&6tAuAD8Q%O-Tl%$u3{uuPndc72molF*{$DR>(zuEQGBXftV)I?I7 z5%nKDiSK86%`gqTjYBvJppn<$x7u1OErOL!7I|&+KRHaPZ3>AG2gpQGg=pK_w0qO^ zD{Rp+hp7wPgIAh@%d5@5KcK%Uv{!;Qs(Re=>jshYncVu5m@{m$9ENd|6U-Yk=(1DcRRS|I z0GG`qS7G)jP6?yFX_xPjMl7|dn|QK3FtpD*?{feh;&+sG_iunl9W1~j?FqO1;w5Ror z6=n=v`M7>D>4^Jof$SnJ_)(wLG35r+=hY-S0xq z+2!L1@v|sGdogl9%DuDejS+ZkX}Ye?_41Xif-#8ORX+LNiL*EkcuSF?w6WLMa9&JU z1UcQp#cUhQ9hLQclwUF_IR4q2uFHC9oV=o*bH%p_iBz~_Z|-|uShJyo%hhkxzGW{i z!dVInNcJR_!Rh<0YfH%|{di$xGs!W-j}4?5Y(duGR7?59XBML$p%m4n4vY>>O^K^qh7(^iB& zwbTyfWhk9H|IaXoo55eu)Yz{OK6i76ZJA|ye5G%39L#V~0p(}6 z_Uc#`LiCLr9rVhl71S$5)3^i$+M_h=X<{77HJNz=Pz;Vz!Shx>`6lKn6Mg%ZXLb%1 z$gPYr%wpEvyIf}$dKki-GcjNB*(#|)Ct(*Bn8^?ZJzzDN%NO~aOr^ACB?QJxrI1T! z6d6xrxE`Y-HhVbJ`6D9DDi(#7%_b5Q67pIbQY4d%gWF@YfJsGlTER&=VB~&sXIWdl zEC5Hy=doAQ`xu*?8~=}hOS9^p)lb`ZrNtF{X8ZdJ(>Em{pIKnrwHOH<2W(9YA=SgV z#Z$Qj$Uh`3{=EM(X-+5dujC(!LG)Byis!>)>a<&qa)jkJ%Wu+vXjh-|z0*qCa?z)q z#9?hAfkgky_aDd$kX8+>&u6P+m~}^UO8u7!`^5f1-^hb|js7ZmZBJ`I4_QA6IPi{z zn*%-QbPSU`iCi~MqUT|6w>-1UX_&tJVoZx-^E23Ccl!NH%jAzO!@%Wla_1u|j}wT7 z(yYqV=>TUYPDJz~Anl$wUmc6s!HUyD{?)vUmwpq$rEnXl*`Z36k6J?FN&Y9RPO{9j zKzQz~RdI;L1c+#8wc>h$Sav1Gvn2ORfzcxqf#BBx3L}bLx-R8jpi-n7XT#Z*Nt4ec=Z)=9pe*A?;1jryWmj0+C%D;$&97JVI2= zjvO@|eZCK6-7S6&nWI19H-<}?5sI*|AoEdhQVq(v1RmEIdZyMz_$%fJ%k^_vdFvIf zJAb4E&z{!%y;?E7E}FW&lRaw~0ZARL*(sepF)P(P=U zC+JjzGR&fax*e*||9K)=o3Y@pxv?F%o}UgTO0~GQ%Mr8GRI^7=J)7DtgNG3GaqUSi z5SR7i;>{d!O#(w+x<5V%X9#J{0PrK@c|Z!{YS#s});v6#@lC-kF#E?BbI@JlyvCnw z4qMILNv_Q;u<`ZI&=13BylWy8!&LW+_2_M|sBw9><)l%t+=GLG05I=ZVn_c1{p)v! zq~FyQKgoH6Hbj#Ym0WH&7+ev2?nr7ceu_Yn()P5&ftasqiK6exFfU+ zK;B^fvFARHkId&<{6Ae}@9AB(!PS+#bHA&Pb$2JS7Myv{EB(iH8`+xDPRjkQ3H68x zV^(Et>q69R7m!FvsB6%G!Wg1nu;Ic0a>#)JAXg29sUcv1jyy;bw}4tS96++S;Y!^0 z2)Yb7eNT6t=FLMaiJ!fgZd#h;0iQKIu2_LWPd}y}1L6Mf6#?-~{S9E%^Z2c_*t8dl zMml9Ligajv1^yxt4NCtvUw}IA#e3e}GE_8+_LFL}t6vNs^AVO|UD9|pv7P$Z5sLyZEaCuw_4EsFtL1HiN)ElV2mMd* zfRt~si-9tn2uYv1rga%j;rlbEkN}x<90WcmTm@-HE^!KurM3%aY5kELD@B3%@+xkc z1rz*!-F5(65`ir8l6#5S+inNBesL#fM)^3@GYbnFz>E#*m9*u}I&36|_x%07%ArLJ z`Pv-_M`7){6dHg*O>Ocb2*esD=3tLakZ?iivgq>)@JA3?53mF+T6k{ z%X~(?2vseiJt}$M^19PX(9yw8@nxhH&iG-w#VnVGl^nH$bGDW>;PPdZfL$0lJu+L*l)oT{Y)+K1|r<+OuByy5+!yZQ2oT$0Y| zjK>PC`@|}y8sIJ^QU*ugAn*aFsF zsm*jPmcUjJx$^LiZhTV{(j^xHXe@9k^0+34h{R$gv)<`QtRA1Hi}w@aQC-*Nj-Oa> zubNZzrSHsv18DseO3~p@v~%ZafM%(xJfX_xp4lw%wio#avabs`pkL6(!=nL z1e_cZA&EvjzP*2qJ8#2NDeU?bTb>|IEmM~U0x^9NW)Cc)KT%PZ%!lbflMZ7Br0cozL$hJYQ|lU@owubRd?3! zFJ8*iEf&c+_-y?@Axx0yHzU5+L7pT)ep(@t##DFeAIHEyc>to?ZFVJB>MhvDe?7Ig zG&gf@Pog17NGq1_h<#{^?oAFLEc#7R>FwIo&$ENKsouWsV5PcDu$mD`N7&$~@%Pz= z9&GL!*0xSU+1Vo0{hLI16>IA4U7%ehX+EI{(K&?uMJ82^+OZ9DD*u5*N*Z+je#j1l=7Uk`=|a7BwIzS&B*(qLwUKO$lpzFRxlwYlTv#n@64wgiaca+2Qh zySu~X_`CCblMc&qkB$8IpK5oCMj;B^Il)>4+96))BfDv!P=L~g;FPZ@htlBZztpY) zI~%|~!L;3w-zXDY_qJLIfF6awBC^^GHhLw18Cox9!NO*=Kx1KZ<$Yx5;&KMRJ}V;M zvGjTkAal*Mh+SWFkgM&<8NC!XHZ`$2`J7e>rTqDWWIv+L4v;@07H!S8AJ8+$MxKOJ z07>j4sv2DLBi+M8Ac{hj6cvT8ou5b621rOM9VH>+L6*X;weiJ0nk&r`oX4O?aXla7 zkmwVOo{0dw`f4L9kfOG!N9XX~dT1`mqT~yq{{Y*RG2M1w?tl4TjIastVc-44B+D)P zAcvLiaI38d-XO^2dQ6|YX1bZ)Y1u+mlEzoq3pZL$56+(fD`zHCd{d8&YFu_6 z5;nCCd@y$6x==vx1bAqs*#;RNBAPj-?#!#OlNoXFDCnY*!{OpicYXG0eN7#JoIfw8 zFM}VXff*&c_B^megR*5Uy&{a!P~1daUmAR}%?}!rl&w0$uL->|j)YJTgdo>XBf;GW z1J`gPBtO9R5YmKJy75=%MpXIfO`cBdww&&}+IVfEnb1fOF%9JTv{ z;|4jOZRL@G%ggc_ZwvYNm^`J_F>S4(B2bCZXLlv`Y!Pxwi{1m}KOAa{@{^3mEkK1> zWz}7`QIZZo9LCiX#nx>&&<|gb860MI{3?9#;R8I2tqIL@%IMKU`cjN_TL2T)-SZ`X zbtRJBc0oE_^NU4-pb*7zvb5#-rm7U_Z`hM8GX`+J@`>@AuQK9f_ip4J&R>o~a}BiH zzv^|GhCW`*8sx~ov`mp}8UF@iA{6dpj?h6uQ6y2^Ix{`mX{T#rD%fhuzN;x+U6Ofm z;_%8!nUSY5eU`i#C~l1^gzb0CS~{l^wGKEmzL|_YX3GP7zWpT zw{DGM+oP`bdc!qw>VQhbk~^0_!jPGWgVq~Bc%7n+QydPrFN%5n;d4aljV27jV}rVJ zi!s`W0sC9?R(H2NOFuB9c}IkO{W*1?(QwEuSqjyVOscGQwakY5NrUJAnZG;{gm&$$ zFxHGl-{2N-r^^k$;>r?8_ByNRh-Sr0zpXU^9r==c@kO<=cAAm6Wq*T2UakagItv=~ zxYx#BdbQ0Nh1;x_WGfNJ{L*YBK<`FG7*5k)?(~c}Ybg+Vx?Im7K1;jp=<+~688SCZ z=>ihSFjP|;2-;0-RT>OK#55lTl0-B0YtHbvT&`S?_T_cK%OD9cQD#aSf5m44e6qF3ZiZK^sla?FPxx!FZPi+#3x_-J~D^xglL7 zHBc+D>dM$eWlK06K;k|uK#DsN?m<8&vp+_&4I>Kky*ea6E{4$(8LmMawGjla9&sV- zHku5aikTxVHAE?eF3d;5ODbKX?qPhf3!~xaZE~Y2694D7s4xDqvMcf zF{>UdRM;iA=Fn2755Re+Kk0EMw2ocrbuIoI4H=8)sf07sp6sxepcsXu-`CD+=xh6@ z#2_~s^mw7I^j9emP@tw7lmCJ>u#RHseUM5lQcqo{ua|cvLlAAhK@fZJ0#yWnf^XCJ zF{}y&6O(5&D@-(V=crz2e)q<|fa@^Bt_*Rx%^c@$lp{QQZT0Y$(+Rul6kaNrjjz@$ z{B}b*TH|Ava4NPBcR6zVh%M356G?NKk7b%QLZU6_yS8(g zk*pqgH2{@;I8UVtxl;zUH_a*XAzJedKppr-d6W)_W~M zgYlO)$q(yUt<5jQbm?plQ4S=Rf`AL^OoW>!WH>QtQ48yUGuKTAp4;P$OX(^%t*U*V zX&id2>jU7imk zlq9E7@fjNpZy@Dysxlt)Xu^kNnT|UC{7_t5&#_#_j~0^D`Ab!Xib~|+lXAmW%)Wb6 z#+M{x0?3?>*oyKq$YOL%`iD#-tdwt8N25d9Cd*SVt^m~wsO>}!J_ri91pv83W7o72 zM(BCVrDZluq6(p!)cV$;R~}Ts?V1%mg}-`qU-Q3r>!g_7BWIX)hX*3}fW zbeOimHvil=L~sMX<*8SeM}6KN+KE?uxU$#RfE*+OpK|uWn&cn3?*V&VsIr1%XvA}d z1@Xt#2mA2Fh`~G*H4n`<>ntURZ*;28MvIO}ECP#JvK@bhG{XCvfGym;w%dZFq%obH z-d}0^H$wvmd3e~Kh8jO#-rK`kML#v2Z}^D)X19P0GOOKkt+sGd#Ic0LxH@5oYpQHd zz?*S=w+xa0oeG}ds|^R>fcs$5tcTptF4!lh2qAz(ZAOVr&2k$ThR0Uo8k?WAHesKz zoSA(q+Lg^>ajUPVlmz^fYh!etOSGOc$!$`3P#L))CxE%m&CE-&`-n^jOAO%;#ZYjm zpfm8BMc z5E04Oh8K#oKycY5v_b8kL+G+QF<(Iz{e|qxVb%NZMwccPUp>0<@*mkx}N8d*JVA`U#QeDMha|Ez|lIygR`9OcVxQOcg zi6F~>OVSTKp>BhE#|{Y;lb`hdjHydiHiPjYxN8YKlYu+Vnb&h2#ps6uUriMbkFcUL zMx3Wrm3d|EqF;KA4IR@{ndH+#m8a7ISC4Q_15bP>SWn-Q@Qcj9MzznqWw2^nj z3x898Izylh|9w#nqp}op7(k=?+v5F6iU1XnE_zrsD{xYWyuIuDtGZfIG7fjj^KV7#4lRZZ=M;Rfq-nc}REDo*4;FCVZM>k-ybVfW zrc2G(KaBE7s~c+XMq%cknlT>iXRPzzFcmk6Y0~`4ZyOyuYmJJ29I3OJxsaH578oMR zGU$Q<@>A0whQq`Cn1w4^nJ-nSXa6V;)Az>1Iery)w2MxO4gKx%XcC7`dvi6Z`)&l? zm&nxZzOal!5tTR<=hmjI3$YYw^&(}`zP+_fH24*8XfGP zO?4}dTV;FVnH|de<`|w#PqwrM>BG>3- znEX4URA+uiE@x>%q`Rt}o^nBlD!!mS0gh-#t65_cPG45C_MuOa79IM#yo{^nlK(p% zb{07MgCry(TO4u|wX`>jo#y8V)DJhs{^I)jq=N(L@FD&;!fOEC>}-B@$VrmLI8w!6 zEj%?UA@Aq|1A`x2WBlNsy|Ls1PCO;j;_mJ|qiQ-dZE`&5qzI$1wQnfIeokpN9jdCT z(tmpCgim>Tq$x()>dDZen3s71Doa9*gVg`Ru>u@Njco>R4dbwQe*(xuy1zWkOT88n zR)pHwfC{4!GO^6(Ar;s?|Sup9(jB?j*{e7P@TV$(Z>F_RV}eGQfXHmyP{*aiIxvF z;vWt|nVYS@97Ii3RosbQ1+lVN8NO@tP$m>C#(?hN<5Er0?OLM2Av~|$aw%zV2Naq3 zZ#I~F2xmJm{Cuse^rcU_6{_0+9n{ui;DAK5k{2vEXNhjK? z4Vf!vO4pQFBHsWT&08yWy|1aEPpgJ{Vr=e&j%){>sL~XK(5a~E6$FX8aXoIc;ySRH z4{zLXBMlb>c`C&Psv60LLJGH@CJw?m#`@DqcWU>MFU{(GIOPrtvK1r#)rP9QVE7R6 zXugLgD1V~WjR}^DlXsxn+<^68>#sx70Rw&6;-3uF66f++*@-&Y=^CugYza?;p35l+|#AM<#-M7}NcD?k|e}sr$*R7s-zGDM2!rQ?LDLy%qZ|vGd|z4aj}!I%!bT z8ek-l&%X$IyxnU}Q$zS;}lPf*Sh(e&+)j&Y_9m?*aVjqGOKLvk7Z)poeT ze^CjBi6~jKqj~}h;~Y@h-3~mcfyha47fU+}>AAg5HLl*ot&_R$?VC6)?>tiJf`&QM z{+-pAJdq&`zel`k63b8BeY*J0*V6SGnQC}uIQ9aV2v29j0W-ckEFYr8sZ;TDcd~y2 zn66jcE^fbH?$SRXM!M#92tX5^`^;T#eubR%#k?C=3LbKyDDFM! zf{*He+8eJM$(wsguc@EwzBNnR+%@rj-sBJx-OkK8iOlbA2xa4%a_&z~mpB zZ||;L3LB)JJj7l?<@a9@No`|eqTx4i9)tcdAps-(xI`|+kbXPr6!*4Aa*7-t8gaue zKKf)row8^IQDez|-v0+-p90b5San%ZBkz-#SN!<$S)>2nd79otve@E%SK3wJf9{y- z`ARW2C$br(rKY9^wWkP!aN5lp78$9B21r8!UVc8|Bo`{oJ)^{+07rsDha9dxIdk z?@_e9JxsCh;1&2;P+3Cv?HwD7D=G%bzalG`py_qbR)hMwo2BBZ?Wgv8U(}Jy<6zWR z4F%QiFG%Hr4;3)+Sy>o>$6m^#M2;V zpb&fypcd}7mkF9t{~yHrJwt%d1q>WJ!$$w*JFk)Imh3U?pu*QAvv+&mRbBL(yIovD zv>^PZ1pxiXj?m&RUy}1(EFm*Be@5__-LLaSWZazPI<|fsVw993yN9J3o@hzvwz}oJH>1x`rKXMK*FpUMjXBjNG*6MDmnpTBp$Sfj0 zSWaC#q!^YI=lL8>SMsfx!(DO5E_FZ>p+|r9SK7J{-V`7nejCNsCy)FU7YzqC9m5md z5|)v0h3Vf=rM$jv*#G&pXP^kfzZUP2jSuHtVPvZHL_6NJZjDJL-llV1niYt``3`>c|oM>4yK7|rWg;RHOM)RE>g?bKiWE{ihFY`325Cl$B@@0b}0 z_(WmlesPtbK`p=&96}Na#c<}C34_MG7;gf;Ga7|`^jx-_R2NZGeW9R=AL!$-bh_1L zaM0A+=B=Um9E}$Hb{X!(EkMoaJaBR4Mv)qZfF2sCThb1PN-OR0RMw89VpRM$1 z%1~J|koh~*bfJVImllO*WMBArY?pOui5tH3a_v@?=0{f2?#R)I{<5x~)2R=`Nvj9U zhR63`)%hw1l7K@jm-txJ!dD01DshR!!nEX=@L8jT~fbvDBUD3=n zA&zVk(bqRdkOqf?eg)^r_lki@JtF@5Q;)Ni%dp>a@7Nl(pjI2T+Or{}9a;^g)K00F zz7e4%VJM|VUw5780u7)r6nVg~6p*J>X&|C248dA+$6O} z=%?*v#&5^#ggKJi0jtPqFcEa|uUE$m9|(V!QWmcmGHejY#jL;z^t zDu{x6Q%tu2UB{4s7DP0&&CdUvN{^pE1w!qStfCGcFMhI%3jgPteP_PK_NIYO0--$f za8BpMx1v&+UH3ZX2Z=a|hTNhD;zkq3ilL!Dq11DY4D2Es8q)HHa*#;@JYKcM-{0-Y z;R31cn_0H%e2~lil?MMy#it8$h+7n@O4&$+HV{@@;S2!`nywO zSji8>^nHZ;VNk<;MR4V3LlfLVK8w}g4A*X#>^I)0>k*yk2-d!RpxqG~Gdqh5;Uf4wscEU<t4r_e55oMEkRA2=ZAFL( zg{z)~t0&7be9^QW$)O{k+DlnLeqViE1T)_<~slFd+H9?{wVwW=h-#tJ0G0P zt)R&Iyv%a5Q}*x@@}K4gc6!V> zbt0E0jEB!*T!gxO(H)Jo7EuHo7+*kvD9*bhCgY7`xnWcLg$)S4*RWG#)V~8PsGGy- zVb;&fdmz8QD9{}+){(I-MW4FoIlOJmo`?h#eEG$-%n}wbJ(>u?1m7dfap*ilrs?Kx2A@MIgc+g8PeUs9c6J{CfZB90XJ zg)W9H^44O^8DVc$19qc|Ht(&WH4n$5o7rbHjYb&QC{|*w7fM>^ z2f8M-*5=$_`WX*Qz;c?K^NENK@+;lEHT8Pf$vFpY`HdNp7wWEdcyMsKFwB4qDN^tO zvu1_N(PmCQOP+*F(JJP4hz2p=nBGun%YXb)T%{$K-3WeD9RVkwB2{$X)K1z}PXp4j z9oeOc`(C@}zn8A@ zJf#nHQ#q2{m0t~gPQvcc*(^v+E#10yvM)p#Q!T?uZw#DMRTEE47q9IYq< z;^LI|38GyVKO}rldxFB>C<4r=5~cTSm~mvt`mODr$B!00KP--IXmR+TLltpuB&_Xg zYTH*A27V0z?KHBqlyKm1cGhKydvX46)BqG^nTE{cpI<$y5hQ3sM~0Omq)Osx?OC)23P3PYCWj%A$szBEWK120Zvz_3)8270NpV&y9f`oQ59 zb2LS06*-hl0MZ!NJJ{1HOpr_33XI=%>m5P9KuenywC0M*;Y}*M{0zo>{Hy+ZTacox zfi;{Tebl`zgSv;zggfP`?KRJ@-$l~SF8$un^&d2?)8O>3)#_8W9cNkKOz7BuedWzj zfmhv*A@2$8h`jKd<5=3z^s2_6hFd~MeMEo+>i;i+`k3BW7*TfznbZq4bLga5HXLhq zaL7G;Te8$^s5)(?*D0OjDE(z`Z?H66>~Nmuu7Fc^de8!h3NZpmYlw>o!eTLM75Gs@ zAw?-eLZ(*sDqFn?Kern)UJ`AtKYCrPZ0~JQv&=rq7`8p;xCS12Zrt*{Uke`k6aCkA zfn?1i1lR+)V&3-IUQ64t*bvL5w1mlHMu7u6*7OVo4GJUB#YNv$jQ>4P!#2LknWWU& zA@-Os27I05SfH=s@VkY>sp$$JEw*$d>RZqJQVJY2QMI^y(S}+kHlgW8eU6TX?EKpe zMgFC@ZsK5?K66iYm2}8uAQW(8B~*$ceP28gn9v~&LFthe@Zk$^ZmuVm@>d}NM9y6K@!aU)H1b7>o4N4!iU?8`qEXtI%xAqH zv`m#81 ztL0w1y0BUGk5aDg@B_ZB|3kk%ODIRRT{wHIgSzF}{L7dt#{I!4YhoI_-1s_g!z7nb zFc;e4sG7L@1vtQ~?H>Cc?~r}9Y(goOrRa6+14{IyR5&QuwLDcc-1TbCs7+&|I2&-{-F(y!%w3m8|48+>iislts{pqEC5t_NV%r+#0L=E52pcx@){}pXpA%7;9XFe%f>y+YNu_23=D}uO}=q@E+79BA$M4&RC@E|m~HsWt* zW)aX4AwU!JZib?^@qemLUXe>ml#ODuwAc}QR~HBXys4&UCwOTgX@qR9yEY&lxBu_F z(%t3Q!>OeFss{v55idB0B*ZhO#Bi>~>}{r5LxZ6W%yFu~;OL->|q$}Uf8S2D_0gV7cvZO6}D2mwJVa|3_&=9@7{nC(?l^H zCaxNT{fpe@A`Y{7u!$}$CZN8wcuq{Yg=;zu0#T|3sdxgxn3e83Oq6%-{nkbe6y9P2 z3Ry3pz7XV}g>u6SNXybir74dwkQt@<>l+I`)?z}PUHiZ-gldVL+@JJ@9}Di>*kKF@ zO@A+LJL@~Ke^B~ls6&vneVvZ$ZMU4{VO(xZ?C{QC8n!haIK!cVH-n_##tsD|v4-|IK9B3s zBU3G-h*Dxcrj98BwX=oWpZLW*5zr{5{8}}`qUXn;yc@8Jsd1Q{4Zb)BP%1)ig*Ij< z7-n%vs~vuwO)58;x&++Vxp7p$f0{#L07x(aQ-pv%Sz{jWApTZD0D=_M-UXj)YSTYlpZ!C;yea8ljH2Y+O3JbYIE3v+Ow%!9C ztM~sOKlkFc_g=>c*(2H9NGOq#$c|9<-W;=xxFb?B(@;Y8p5eAv8QCKgviJJmKHtyx z`+4{I{qF~l$KgKL>pItUz1BI`^Z7c8-+RnxwVb=H4$`H>>?gzEc|M*c*`Ma^Hek`| z;z>jGr_6V%V?K~AzEE}JlVc4En`+ZOlPV+I@`O7?l8aJdNsWmn*aJ-O$Qretavx35 za(<1ZovW+}PLjVPu;p$j3UGKz}T4L$o(m6Rd#W|4D@HaDki%3g;p^vK;7VuF z=+|p9y_j;{Y31IZ%T+;NQV$QKF7uG~weM1GxWHn`k#7do0C&GXB@Z2TH+Q``M@wu5 zUBF+~Tp0X&N46xrKwp+kW7U&WCqa+4LfN3}ro!HUdRFnzS7%k!QztB|V(n&)FCqh# zm<2n0(pqZ|saxtdm^;f?r|O;#SQe6N$tHVtetjj}+mjtXz53;6cja>$I?I%Ae03)p zygZNkpC!^1CpXn^Nrf`RQwqM$Xs&Q}imk-Wues5lN_`5FQMaxFEtBBzhxEaJ)Y2vC zd)|ln^rVVq_$ct9z>5*q?Phd6IrHK^DbH=JZyshxczh{-+T%fW;R1!>gBGl_6lS>Z zCYKucAr{8LlvGeE=lo-5U0jT2`0WqQ%b4a{d=!KxoPo5er4?J;+NTz`*kZ* z()Vkm%uAg`e_n|kWUrA5;umbjc0774G+>tU;JsQMA4g;-!%QO#XMEghy!t>)PZX1N zM66w2V6xQWb0Ab4VO4=q-6wI2=uYTWYvm)D;Fm%j?FVqY`(w?-%T!L);x0{GkTep^ zsQ0`mth{|}u{p*0!opZcXmM!@JQ$hotn>96FHeo$BTr&?!Ep!z1$m)G%&D6dR~?y zFj;=<&T+e+P%B6`p3Gy`qS7@^cRE+k_*Pe2N6NeLBI#=vhawrxI}cUJQz$#08mY-* zY`#uHZwP>MA=3FGz^p3WQsZ979`Q1gXV$6St+av8Hzb?xPNy*b z{(6jLaG8p;QY6vxVej?2{gd`7`{mdugyrjM8&fNR!o^|zVz~`gS>a3jL1y4G+CmhR zN95QxDqTCm|JoclV!Z{FJ25E3+`l9#cYY}{1%sHbPRlrKac~$;Uq!O=)p46*8?S{k zv`lv^UCh7Ny3-!eJ!jaq(Dcc(nlTw65nL^6q}mF%R!aWTy~R1mxSuw!xygMbyqLIF zB&tsxqh?*u%Bt2X-P<<8dmz3hZT{XdD9=}V=&A*|w(sIxXovh-Vqxct!STGdSYO@! zS8F0`v$tn1Mdn#mOWpU@U2(TE@^{OdD1K;KJi90PL?`z3691!*{4}`|OtxK8^32~} zdHU$Eo^miG^bO@OG$}%2`zsK-7;s$%^6)i70&0KwN~F@1&>ME{Gg~NvQw# zZT=iWarBMsR#d-&S!MNbT&H}B;%EPJMet?r}- zF&qZOjvJ9&NuIr2Hu1*)mrq6ukN?Vv(j0(b2@?M66J?{Nt`Y5SO_^nwA zHc%B(aJsBQaRYuGN8wMDN7#vE3to#t(yOAelotxq2gv{HiG@JhTPl-N{i{ns;m*(J zLj3ElCWYf`<)r{f^zH}N(`oT>F3@;aKvk(Eh?*V=IFU`Ui zVE@Dd==LP0Ww9%Dq-O-uUw^uz*hJ?7rEyr<(4eKZ{BM5^Y;CZ)!BOwO9%Ei-lY+zeA}3D8-gMkcx^OfI;hSLqPOSu5 z%#Ya27cd@nmEImgtUeQFQ<`1HTnf^zsai)Gd}LP1pa82^>h2>?`2Xt7`V>C@a~VEg z$px)M0|O37MKqY2E{$=D<}1u5!G`e_0x%@L6F6EcAqObJ5#VxXiSqa%(kX?IBxVO_ zn+_97wf*=ZkXr%BKArnpcuoc2dsG34ht{p5{f?1ClnNnIWZ+RW)%F{_KoBpM5~G>G zgThY3c^FmV(;MztB5S8eus+DzQz9V-{OI8Lb70{-TDO2)Vo>;M-%&99(nT4@`*u9Y7Dy|6UdwA}|m?s_Ssg2gtw^L%zbMd8ENl z6t0X(C0Miukkx@}ivG1C^Lv2AH*?5iCW}c$G^63w*Z6tlP;G2xoA-GqJkW|L8Z54o#NFc-d zlY`4m1h~sgDr*jZ$+YgL+Wv{q^ofUAOD&RM@ryo5B!mHA000512|O2}E@n)XAOd&j zY7TwV=#zev1k9rTQpi(EjLv&rD2K05=@kQb!~;3d2g9iAofSissssqIFC_U2z3}%p z$dlW675j&ANN_JX0$Lh<&5|%{Q&MoFTcgjJ8N;h|fd%|dW9SIThMVFilmQboQf);S zkp+^z!HOio%5PGBk(wQJN@SP_a+a%{7Hbl++hyH1Yq+*w$s`5=fCcc3M@s@KnPmX? zz5;H<1lR%YrA9!)VUa-d7(PEsV`zaNT?4?Sm0%5Atc1B;4}c3YW8Rfo08ANVU|eQ- zvp^IJINS!aHljzM88HAL2H~}r2~))YDzDa0mUAz)X!Om&tclGaYXa;j04KnYiWI~f zH34=VrRjoH^hV@tq7Qe?p_(A%$$bEZz?(e*rB(tDLbDOL<$(;0$!K71g7E|+1Fr?a zmupU!oFM4j{t!>_egihY7N7Yzqv0b5CQ>&LCP9F}_59UIc_7Sf#S98~K!`m%CCZyf z)U{wc)U{y3G~mqyf?Y}AX$Nk}LEq|uhjf8(`;i}H*wRxJuKh0|2{3CNRuyGJgysVJ zkdX|`*n{WL;iqB?Zau}OqReXsnQ;7LbcYYt0#xTd%*xb-3+!g<|A-Oi5tb^uamJ7S zV({?IoxIPV&mMiw{$67CD2gHG?UU%YXnKnKgu&b?COrC{M|h( zHi;_>Q$48}&XcXb#L{YNoa`?5^%B-;C#3nltO=YK%Q&g!;0&i!r36ReIm5N^oICF? zd`C|BlH?f%$vA{aouy``&aIR;L?=*!-7i4Q&@C7oI@ejeb48ywM8oH^!w*aO2gb&h zg)l;j82V~7)-N@aPclOgvjYEGOXNpF2LkAGbp$XFrG#iUoG9$0@yA5o?E2)J;@)4= zZ<-$dxCPs~iWlYP81nscwQ!+!ekHuDLBeRM4`Kb~Es>v~A_kxY&qY80XHI`^>P;r9 zrsHS7<~3@=uNHEuqE(0v+>p1*Vm~i2L+F0jP`yg&9ZdL1_DRFp-vMvnWWwv`ajeN; zFguZ|1WNPfdh8|1<>g7^mgT;-o`u}fZ&}6H3O;|Ioha6+*^!PO&KpivDlZHSiw!y| z)%@_U%lrK()am{d{L|m&)1ITZg^PL{; zsg>8$^Tn%t75D2ys^W-e-P5Q)=8Au0cvUF)`07el6{TK##&GLE?x!q&#;NP9<*xd_ z(+Ax3pUx^Mx7*KMoeimEAbe=y8^1DKeHWq)WD3~H^kGTXvYevnKa}`>)y!C@CMim4 z=#`{fcktDMPw%}ngI=Bn`RcR=9hz}9eGAB06grTuE+9(mk}^0uZdp^QQ94joqXgaW z!HR~mi2PzwftP_a9x=efSE9xirg!dAQ0@_9-#Ub#{$na+bRfsJR-F{zX}<8RW1TvI z|L(P)#kx5GhgOLlzi#vXyv=95KVdbi+;?$u!oK_9)M}4OT;g=jyR`q-9q@}au0f$B zLy!5x{%Z$SqEA;p7;<><-LB3MlhQu+e|@ESJ3QAlZ_k=V^0e|KsO$JgYSdWUhqO1L zE6c)r(?S^X9nCsL+xf@kt`W~CWrUJMb*>)_CiYiJv^_hWlh_{!+8Fw^<>io|x+l_Z z{vxsQh5r>Yik6crkF?tb=|-jyYN|1MC}i5B+^Kn zZc)s7m&Tmo7Veee*c@;9ZI$l7nh)DaSvq>gIVgGM*BgC49^RwdM;mLgQ6FhKnzOH| zOD1c_zK>|sj=!0}b)ia$S(l?Np@6SVi&vN^+x|v;Oy*L|HR;F~V(zShmXuGKF4SF? zQrXm>LbB|}LA&Q2Ch_IQad%HHs~aDzt-Ow2ebBjT zrEXOvWu+TM5omfT*oOUqo5BI{m=6^a_uwOt8~aqN0B^HpqnA|TRcSmNp9mRSRHCuu zNHhRPo?5MSy?OJYNNloW=}9M)xpEyHgMSdBVx$Iz3#+JUVXgcj^+`&5!v`*Pku42<5zxu{+?MQ z$KLSN$rY|=nmp7|NC=1Bs0OfeuWq}v-zc%Yqc{D|zP-b)O9X3DMBvFgHNJII!7Gf0 zep=OIS)TS@Z76)$w2^bz{SNu04ehxgb6lJ}kr|GYM?d$Cyr5M(I)APKy5Q5aX9S2rlry~lSlBqH-d+D+!upSovu z_`tf31X1);7%v-YqjvV9!&1&qEFAHU+0BK<{(Zarhco`A7|JIk`y6mF7ki$7A^%Gh z6ckCE&lXhd%G`f55-We{A+vCqo|Wn;t@_;?{>MoB=Twk--OKky)zf&$e4bT2&)Q5t zk0pBzd*I@YViBil=x+8~{mmtTB8@#hXUS9TRw~liSHGtB>ppky$s}%G#J{3P#7g6( zs}J%|g%M$B`NFeF42<}7OjlCS=kLrjeidtF?2(ELw@1s(hxya3Ub2zEc6Xn6iP$t{AYK;_3Lg9-a2oOCo9j?i2;OK;NX0C%q$Z5^flfpo#XI zLmFFfB26VQSGZu{|CsCfk%aZP40=OhejLjE!@|MU#tYI2O>o%qCIj)fUs?#oyLCld zg6OW@jj(n5AZKbYGLo~|KT%NxzsWY(J+XibxI5}?o~T%eQnJm!zTM)Ce2101{CGu) zRL@Vkaqo>w@Q24-qDsXvBs{GasI1jFjk&GU>pfYsB<~OyAC^tK<_wmBr>`$s?VPaX zLn{6<1}4HUx(bf38%z~6UeOUPqT6rR(&#s4m=)Kp`QsQN+f;f#|IHZ`)3OXBoj&TY z8pf#>F|`8GIqRC6pvmNnn2Vq@B*(zSe1|hJEGvG7T1MULexM}NlE;Nl?==c;=y>Nv znPMID8=dG%THGcm)Sf!yE_N*JQ91N3lJhtlL)iU*BAf_ozDi@4)=J4ie?VQFaG_Y+ z`XI~PO|FiuC`%oJn}+i3(pJ=APs$8AmKlo+2o7n@FWv6-ALm!xvsSpvJd(qaJyt~4 z*&rLDKD;vUDo=toXZDlm9sl^P*Dr75f=})MbR%I_g%nk_sgIhaK8l*z+D5?~D(+6e z$<7R1L@Q6)MVLcuVPfwP@thOBJ$%zs$={orMN;ox6lq63;{@i<*h0jC4cSG3PWk9QukhU$*HdcBy-NpH* zIPHEdp^rXz*@U6df6byCXHcPLH!?nCHEUJ=aP51#_H#QC`)elj;=WP=p;&~e=mDuY^Ruu)Y6RilzMyD~=PRqE;U%Lb}zP{{!bBJpnLe0y=>#xW#Fm^EK z6Jdty;*0%)3eBm`mo)@x)mElH&Wz&g!a9Ah!H(NgSiZFKve}>ho~Lq>8#;JCiJ_mXyGLiPRFLbs zO4RA+J}x1Vk}ZL{1&K}e>|H3M`&eb(ab`xUH!P9+_^Y3c(n?L;v9{+oe_1HwOOr#z z0~0I-Na!!-N~&z$%-Hi5{^UwUsgcjzJpm7R ztNdGa>qXn9#>N)ksl9Y7AzJ!hsnRj+y8(>5IFRUKS#iz#^Q+n6Sn_gIeMC9Nwb&TOhpi}aZsRx*e- zcLSST7&(c_-M*np1 za$e;cDFOM(kNar{Xf$#?a|V@3)~oedIBtf_UK=NSUG_nrSN9lC-R0cYD64xG7YWe| zK|g!|<;Cp{7w~1_S+qnCn{UWUp3d<&sm;w6|GxL)V2r$ZtM@`XVCoXhvsH6BuSGH< zFh`)|w?N%?z>WhVCzEWfnc~A<4qY-S4BR1vN=AC|zUtJP31s|kY*9+}{~OE6iD~B_ zm0xu-7a`^7R-dx50n6VIx?S{`3F@+NYbAfbew*cHir0w*dmNfJ<&LGy90#jJ5Xtv< zOQ|dO?dC(ShorHR(k(o@n7(>U_6JdICsVC)=t335A9T`-@}zx9=5TPp7ag>%q&^i) z7#8!ZS`PCA=CEW>woJsQ;d$pUa9)1z5&@4X%xYu;=KVyxHsF-VXjSiK+jyF|5qdOV zomBGjvptaFp5ex8;EI5kgS2o)EW-M?A%<&9Q3mD@N3GSGBFItjDj!N*Ey=iH2YG7b zBd3FXc5=7H(tWBPa_NdF32nXnmrK>oFdjz8ZE9lS@V63IuaZjX#TutlrFfO_q*!>J ze8B~AKw?c{)2mTwden_KL$i*=2J5{0QsJFDZ<~=%_qDyR!+B7Bfulm=0o<;I%x@6w9}}zkavURYXSq}AJ;fkJZ{{X^&lUEjO0%tVvLNgJT$D zp%6XgA|-QhGQ&K5U-^eIr=h8>1|tA>c{bUQ^q5LABFJ+hVJH4;quMh!%FOAto_Kzv zTGgq+yoYw44|bfoMB<*|XlFv}+ypJU?TH&FRp*l2e-mL$S{?1v^DCuX((<{V z?hlLeMUIEz62kF&_MoFS`f#$m0e-BRhcY;!P;o94y=P(hjSR|(Li~3aZ#}gSNs4(* zYCFJ48x_OQ)!Z=k!aTf-M3Ah0V7Mn%FOaf=ZFIY)GFc$*NK~HVCF}0U%*Pw__s9-x zba)>>c3z+*wQbFve=S9Xa;9z7?NUkoM~cV2FoY-|vX7LL z-C?iE0}_|zc#jpAH0&zBD@P66F#?p$bc2^WWJJFyKJdaE33`W^e4KD^kY=tOls32#cI}`c(9lohINm9 zgUa8d^$M~Z@zwe*_H0uYVs353$^a^6gz~Xi>Cnt|eRflEfT~7gUGIT=EYp?7U=i`G z<@{wP8NCkKOO15b?+8j%Xkj}O=qV)D4y4n5N%(>3iOhg?V?g+GtI3E_mxn2eeIQA% ztHs6+x^ zN+6*XZlGx`SLJ%LkQO7f!imUv$OYt(b1v;Qgao8&ocejKri!DNNRs_Yax5t3>&RHo%jPLbPIGi46-s zt9Y=?m70l-T680MLGZ}&tT}?R<}u~|Eg8FY_5}w3SM{BD-UNYt@YO9NEZMy77cRNM z!Ue&ADjH}%qa|eDrgmjt!o(q$| zg{mKi@}rGKjeI%cf9e-Kk~L8!jRx$2#tti|eaqe4fHvLv`px@Ar#*Wf&)Wj0s#?B9 z*nLJlrrx~$V~8BnSND5gg;iS#?(e+Y0AQc=P|Ko4C>Q`36w=wg-1vI>(ni_X)}hg7 z*RRvZbol!oBy=2vzyCdR#)nMu1Co-4Cc6|2f##rMcxHJb>Hp(scL*SDoZ1IT3HjYj zoV#wqcUC8&NJ=$)Ivr`@O5YF_eCo>#(UQ;Y`MG}Czih1?&SCyI`I?PFS>&~$d{zF- z3}2r~>pk?J&>{TbFy?LNOK0dIRgJ#-=EKu$w?oU1GGr;x(b`z}{fxks4nQ10Re zBU{$UCr+aar;J8rEsi~m9#&l!NE^vn!#3d}2^}6--YhJ1-hH)|Z9P(boffzbVIix1Z-Ny_tK#U*JSrdW* zqG*iG0Rn3_3ZPj*yJq^Tp$NIbXn?FU&HGrl{zYvu<~{o=Za?nqk2LxA=utN6W|7i~ zwB}NtXcU&OnB7$y5xqmRXvEgS3T z<=+;|7b30R>(no&J$~;v>^-7N+}GOka*viUTDT_OqZqWYnAqZr84O=W7w_p)$7cg=wY+lL#64eQ)zfXy^}7{LylB$ zg%)*MWjMF^R%;*d&T&bfGE>hnDQsP^=uIZ2)cU~QLPVp#m>coD{D z-_nDcYVmdur!MR*?R0Ob4t%~wqU0-z;f(<0Xdw@J;Gvx+0<04*Bpzf1)sT>NWaeHi zDLK~3lsUAAN`yGw64UIK%u_Gw%M^m1vT4|o+nUl&?vsjvS6FprNd-qD*ho4=+r z6=azt7_(25WmsCpjvye1Ctlr6uzhez1Kn_0{n^7eeM(DrWI4EMK8&6+8gr>L=vrCU z*o@g6D241Ac6su%b@%=*?PR=`&KvoJhE}ZR*oJ26pkf%N3N%r!MO3u0m8a|vb-zOa zgbmQL{nJP$w>V$TOi!Op^k8_|EiCPKt9S>1vEADZ)4F@<%MBJ30j9=m)9^x5h2H$x zq2VNr6P4U8>xs{o5%aR#OyF&2VgTb(uXow|3V@c7=&2BHIF!kdwm74xvmA&ZrCAY9 z?`^tO#uXz{AG1z;zmxy9y;@J@mDTd*=95-9m$u#q`H|!~ zi2zJUz-_uDLR_l|MfN8E%ZnMMSebvm6%l2kBKr{*OB*74iMcSjQuDu1W{EufkKYARO z?+q#FGGM-S*MFF}(;pPV{3t3Crt~g*=bN@Fc75cJU5MwmF*wdfN;5=J!aE_Vi^=v8 z>|WnhG-_QLamB$cvw2_?fT{Ban6k4GO7oF+-R?qJ8&_TzS}1grDbAIJ?ky*PnpLb>_PIgIweo; zX}^c7jvu5R8O&XgUNR<=C+Bws;4XnSc<0|c{?*LhO<)ZS}MYPN+No~mLfg9oEfzi zsyvp$qo$d{4;Myl+iiQ2jd6b{fm?)lxJ=|;nqvnLG_CN65CV_`7px`}q>X@0X;HKL zWrR~vQk`s!hS5S;Q@SoPqsQtU?UqC@dJMS?JXetUl9p!u0Xb$#tS&syw;+r+%znEgNwE)rmyH@ zQ!lJ(Dm#8saqMBp9Rf%^tDe@Ye@L@P>^?xoe@HC?c=VZ4tMqg95Zc@Zl|v%-)*BS& z4Qhn;wyQu!pIVDogG#w2j6I3eGE57ZE@U5EZNJ<`n@c3_MJXO<9(&ayQyK1+w@5Fo zdgm(OXpu|l!nGjL_P zhKQ~|3);B>s}Z==@7&W+$}ruVGPd16>gETOZ?`r1Y; zfs1+NyHOg$}=T6b&n9I&zJqc${ivBQ}1GB-x;R9{1p9Ki>#E(!t?8u?u z)SlM@O7-GM#Q@um1+cn#a_uL{kNlRh6Da>e{zdUKMp$L^%g!esA>wAC zKL+@1vAZG0BlPH7N5vDo5}wFlK@M^<_D=Eej9uyVU%#=l_2K4{BdI!1a9zePTY$m_ z_m49Bk`uHzUkgrV&S?o}S18k`7ut?Om1W+j(5rpKDaoaZlJTzSifSM*;$gC9Ko7jO z9`W?(XH#JRL){c{lOr}DR(t94hX8@ImiO<6VV)~QMEMf&#~JnyID+BD(z+%3r+J>af#R7HprR4jTezIwgY zPax>KBD{7GlBItA($|yeYKeF9$~2-UWop2cxR6)9HEmMvaVH{%lBQza?5T)Vz`4XrXuAKO3kRhG_0 zht+b=wx&M78Mreaa8j;;&-!}Yp>K0%JLzQXp-Qvas(s>@kZj?&_o$(1kaLL`qc4C0 z|0gn@AIW)`xm$}x3_~qMq5f$>FB(Tnt1~Wdyf2f)?^|;AX|4o5 zQ~B)}CATJpgv6FDWw&I|9N;7k>R}H|mIAFX^#K2LypK9xf-6Jp&$lDnyid>p`v!-z z+WMhYO0Pj=Su;^{?DH=>=fC139_tG+<}8#u7xvr(}T1nf!!+?M9i^-jME^FSXYw1L*zbzr)?lR~^Xwtoe9qn{!?f*(V{Q<= zl70Ju-=@+!Q*^*oH+}uVyx7{d_v?nXt+>t_+Vc$9?Er>m11lplgXxVeTs~CCUiLzR{@ zf`tCEml7lj8XgfR*M&Z{=MGKkwXkx`S_4Nq1h}55cf}3Qs7B6ky?9y8G~RWpw0|?o z{<7M@zH1K*4+=FILsNe|wU3%z`{Xn;z2DmOB~a;ZX>5Tb%cI1zaa}mB&FB5xaxOpzV1o-9e$Zh47gO6l1IHCmtTn%A=jn33 zFAQch;3*TZ!zDCXONVdo0LwYu&znNx%-oT+XT*7o$`XQwI^U_biz8@2hCw216X4c{ z{6D;AWz!|xrng;QoB~Y(s~(W6Y+y`?9nJGV4JC!#wQ&60Nt`Dc$cxEVc{WF zs%`ZNGH)03&fGg`l{fW>MOYDv{OqVSK9gaK0B6OlB5Fng?r<-8(;=3W*)Y+2z6c)W z5IQ)nA1wz$_zU|t@|wO9@co2`KYv4Ecd521F4g=WxU$}2B7H|;{(IwC% z2Lpcq7f(;fu=l;2(TDgtPV)hkCg;dv*#7}+wM8&Wt--Z>hg93|-%)MraW7eM66;!! zNpUazJvtjap7gRQG*7kdluPBIYe9s+xO4E@{{W}kVb%*M%}xTGK}Lf>4=HF`0Wh6Z z0i*Bv3jYi7J3+O*jvTrNvo8Nmf)z1^E-8iVaQ#Qi@z`|hQWC7C8?49~4Q>$SfL#PMib92UsyWQY_$82GFz$ILLs_AJP~S{*9cj7lF3PVAhg&)GWSN zyMy(8qyeLfvVlT~C-wixnog{hH`D^-n)u17vtmHIP*OeV&tKnr&c!TL{UV^^Hp}mM za^r-Y)q0%@zicZ11A~u4;1`Q&$raIxWK&>)2V9_ zG3bhiA*10M95?W{CKJeplnU1XM&ID) zjd>vLt74&MKY)i#gQA$Bt9`J4PyrKh-?{RGkbdjU`3;A zdw;8_91FPi1$GNhN!Vdlah3|5q|e5q+G{r9SAa%Be{bv$kT$~d`46qPiKMJK;JdlL z{2{WtWF8jlZa=?cHF`sw=c$8gDE;xk$P33PV* z22h{DZfz21cJmd!ask>i8ssJpPY^jVIu^bNBq<00j2JwsniQo^0SxyLSdW ze4~sh;wvnh1jPTsUKc83lnjC)k5Od|-U_8k@!}j`H^>#}S{(c(tp$OT+9J@L;Q$>y z;LE{e=aw@07sC2I3q}Wp(3FbL6h-kBE=bI;CwR~AgGIR1H$GsNl& z|Ky9O4v6}n0!Ba1(1*S!=qlxZ&eSHB#_&aM-86D&+<1boaMKwoc`1zv)#xL1{@)qc zZk}W-<|S2krF~5LmOO$qbg7RZM~&#DE~sBlx=y7d%p|{6fFhWXe6*PT&ru?t9w0<= zPK@};y>tUlWO+}5H4TK#{!JjbM2ShChg;Jjv2}()hOC%S5^Vq9%5MY5ZTJv_i&Wdw zM0qFkVh0<1(8@=ks0Z&Onn|#Kvhcp+7=1W~|CNOtLV?X+fA=87p(1L)0D9u7*?oMU zfLmOeLCD&GIoNg^A$In<4I+maJUJlBI{-GF{!J74Usi`Nd|94Rh2taDHZ|td{hSnI zir`+#CByEtPs6RnLdpLbm{J{}*eEhAKeRncwJigcD2LWn-A4xc&!BKVGOT|)b$u34 z`2m7QG1N>1laIf=Iwch#N~6yf|MbKywGyEE%Znz|pMQt1Td+@*=XYjxfX7bDr64mH1e>RW? z!@p5DfhxdgA35~mJg3-yutt85nIIG(R@0@Y@?+X&qetJe6MmwsY@`_1pLd6`<6 z1Px}l5vkcvhP6WtnWC_jbcTQX3js9fIR!)^G$jl}k^)Q$;h)%6H(9_&;=J33dVil9 zM2Oum-Sp=-4=LqX<1l~#Z*NWs3gLl(_TsM67#EYp)Afo&`@-g6fL<4}^CmJv{I2{-zfLXuL=D^zv zemVl+^Vk1gGHpB?>^5+)j6M`60oUFXym_nz{K8N6I~UZ@E_-~YGMzT0Ku7~}82pFj zGf&~~oi~7?4cB8V!#?SzzZffY_5Rz0z3!MF)q@cvOkU$sJ~Q$zn)Mecyn_QAmoQ!Ggbie^EP8-WEQ#zyHJl-loP}W>dkZ z+kK7b!)!8aU`kqp#NYOD<1(g>-T}g=v_i3&e6SpRXlXN#&E)tfiV=Ac^Pgn)oC#)w zn6I7y+BN#(iwE&MF_&Rqz(_eX-2r07pZ&KfS>wYw)%Gj_E~N$-b(9O8JR`~rK$`wN zee`%T4Qzk_`3~1i=MYPLM-B+>nBKTEi=w_`i8s)}FwD_GOGtHvvAf z^GpF+x)$FNxIRaq(i8q)%RGU=eWAr1P66!*&6L*-#2H02h8z7q7{FBmO*i;5Yw+`b z&C`1Gs~qKFT{8iI20-PU3G)MmvV>yW-q=cG7J^BB78gsFA`K)F^O^jibkVG>gWp5477_&=a-M!qaLLh~UjXr-C}S7rlw7`%oJ&=F{g(jp8P zK^-zYv{tt9|GHX~!Z@w{*<7(q{`6_>U{Oq6G6g&r%F@M3^se}EfOth$;@DV#a;-By z4iEYru5m53ks;>iOf=kU1xc|%&tSLcRn{WDQX5X3<)i(?DFqPoPjSEj{vQD2za$j~ zA$U$dxhTAxkNGV@pac3hM_#=XFaeZ2SLS5X>y0Df+kLv1G&W`ZHJx?s)~t!DK=O`B?(*R3f$PYCx$GntuX<`v z?G^LtbV)_>M{%(u*MpAy>e76q|G3_-`{r}7b$`3JlJDJ}@lX2NOD93fPsO+Dk79#$ zU%ljTBEu%4?4fPrN6>aG*OC_*wlAMnWlbpyeP}F=m_I&dMIZtE5B_8D0J5V&{)>`! zV!3we_ln?+OkCT9u-Oud(*nyP8p~5>STy`Diue)F?Dqx~qxWZ}>(76TCZ>CkODj#y zcV;|I-YhW%m3w6O9?2g+v4zIRCx;Rz)%sHDzyr>umNQTE;TunK6$%?@#a0l5#JjNb ze!~#w9Al>nSCpm#Qc)bi!yKw)_MLM3^TQB2GL^ND02SWVof{JRoS6HP95YLd^#T$K z048T^l%_Zn6dOj2U7*}f`+!Pj`nOE@xk%nFGL_(d#?aG%r^1C-$NJ!c`9OPlgWmITL^zD=A2*JjxU6v z=T4xh0l1A6!+DeuIrBsZfOScuBxaU#2~KJ89fnIf9})&|V}NR?{>8>UzgiH`DsT8v zfuDj*l);887ht3hmDoU6)cVXxFwhlX(-eg#T|&UT2>zxWj;9v8RU@zmHB~Qrm)ore z%27j>_UJ>iBGix!8WTMxc|J+j@AY7tLg_GSLQt6snr^&(=gtPcwfE*x{J1)>xl?oE zxf=gs_XYT)E`YVxnf>~gMWq+)&dwac1wXAGj{1_eLFd zHg=oaSv7_$yI+T8Ei+6Re=^TtAO6-6SKoH{b=djU{t-nz``p%Z--+m5j{2S!dtZ*l z|BtNqfNHAi)<#1OohS+-C7~#y6ahtgLPtSSQRz)Ur1wtf%@-s=nn(#q6GeLOAP{@Y?ltQw^O;b+(9PO*mkzsY^JwGx&zRFCtkv6_ zf8gPWn=3enErYFd>8mPCJDjTlFzG=P!l?rvAW(b{fdQ$s^x{-_`+i?zDf*4O1#;=*Yx0>MVswZHFJPBqaR z%c=)#Wk6O|v`i#x~GS@DQnOj`<<;McidoFKdShH zc;)<^#OC~fJn?^qmYUBu(-oe3ynQ~Yx0ewB>HAQ=u8ec^_Vk?B63wHZZw_2AK|PM| zR{4)dnuXe0$fOss!ZN1GyPod?YGqL^br)O^1a2R|{#nhh>ekWG+Tft}46)nY)zyF_ zFfC0|DQa|mb#Qdu*?+bn06xVDZZj!`16(MZ5u!P){Fxo3?oQ_P zHy+HDTGqThLSPPVb$%;$N}TKb=l53Wx<$B{k<-e|*xiMN;lr5^{$t__lB|>J>PcQg z|E8?+>~lHUt<2TOuXjWzI|4Oq$yRrE$-4;Bl<63NJ|8_~Cqj^c6*k2VsUfAG8dxT`LC{>kgI?aQV1Q#j}T~u zi~tu|YkpFc@G%#f%Q{7c;L5W_Cem&_L>8u%;tuQ*@h7(%3;=U-$`N-)1!QXmnLNa9 z|F^e=ftJZEfSHqlhsr}<=0F;KKrk01!Vn<#B{I|SaO@KSm#gc9{b4u`dRlpRkCvD&i)fv&(k?80^Q6_Y`ZTfl6@cByzCy~ z(+OSMuPYpV%eqO2)35R>__eal%pS@COo%&ce>W66!+EOSNwGr3MgCIYp!x4VBYED> zEonLjI_a=pd%qd106yt+i!xq+D$S4ll< z$ydEI9O2Dg*xK*AY{kZYCdER(4!DOKht{vTHADoM;WO!nZuX7$UJk_$fHV1!g29*v zC2z0ov|=gbZ+%3RJ?DQiU_Hg8L+PLr?AxkWQrPzZXGM@r)iJbyw;vUtq@`yGpdwvl z++1-L!PE!$T3V>F!IH!4MlY$*L%tT|*pK2cu z%`jYk-%Dxa_47joc>_wL`gE)kpbXycO+L zAy>gx$Bwv6ZDsihbyk@(`^ z0)7IV%=EiGSc8$he_gkMK~bKx31Uy>3KN33uq=CSlxwcikU>MdD(arw;btz1fxur> zNO_WYS6cwPSoHz56Usx~6gtaqikG&lpfS5vIcKenq(joy_7mVvf&MK z4<{R%mn zH{2i3Mi>P)>^s+_r--guEm`b{syC5xE2WH*`WhwNBn82s_{jFn25ui|RC(lf!Wfr5 zF-x+h$vOk4ebT^?5-KLj##TEQ*-j&AB7W8GhK%yz7u}Bj8;eswLB(Y-+0g+qtG>OR zHVRDK)e#M{FrRJq?tu-s)nMnsPDbF7DPJj{D*1 z+EMgV+@5a2uG3cb@JD9PpxvrnBo_ouT8&=|BFWp_Uv0Bi>yk^(5Cu9`Sd{}AiLgU@ zNY(dBJ<{~3RC1-t#zGLk- zzI&PJb5UAG!si#&LbEq+z!N6#h%-+J#KvJIX1(At3V@EIHg7Ven`C6|cgcOWmB9uDwr?w$Z>kDAj7thb_xykG7iPL1%witGl-LZZQ~toGSxb1 zVgAg}xms+-ak?8O#=2-wdqMh@QF1iKN?CRvQ+{#PK0?&P=n4@L_2;`B%QZM5>1NFL zXv{tE+JaloA%lJY%KdfB%4Q&Q-=Ng`o;2m~1g2=*% zBCB2r8CV(c9=OcIS^6@0;*3A|nrey7#in*1K_#4V^-HtlSke?(YTfn2>`5pKwO$ZE ze+i)V>*aNJ2v#(X%r&x?0hAB8c*dY(7W}{<2w+W3<4gxC;Z>sUN3=c*a;L6+!>Kg*}K<4JvgLhHVM)0VxVrlIUo*3=5FeCCpGPFI+k4T6|H z)(ZBxDH^h`K(V?`!w#vQA$?pG=@|sEs{oW*wtuHmrPz+q_7=36RJik`>UCRHdd1@_ z3Ny>mb#Ix3Z~F>=7`nsXs75h%ln!;*X>Tp56SE8g zq~fD|>4cn9ZRmui1kkr3%zwpU?`Ei?d`HPh-{q~Q_EFP_w?kmpY`MxYa&gffB!F@H zt0n}KR1C6&soh#x!B3r2CMG25C|j^pTMteh#KgXS<-%TBm7crU_vrbhzk#J$uN6E1 zn(whClWno`#^9ae1)5$^v>Ev#L*}zx30jSdF_tIeSgK^YZY;KQK2if$7uaGV`Wkm_ zx&+)@G44S7KN#%H_&>;5;$iKwi4m*>I6vQw2*bQ}%qknW zfAr!4BJ*-k!L!?A5OFdzUl)4vZcWX%_)rHEEDQ;r()}pjoS4fIj=$4ZSBa5-?7ENKt-E-L72_K$$wqf=+1hK7|TB z@+}kD5r8s^kHYftZsHxj@7Ezhba{IBhDw0sma^^C^s$XNrjeFK5 z)e6dY;~%CSdW+(0a4fsd{oC@o~#Sd<&SU*arLo7ACI)*GIDrX&!C&}T*iRp zFnswIsgiaeSyuB$mc7g(k;q$hTnUOCo4{DI_A!UWntcSpCUf%@Udde^kF^m$|&N@;_`|h zhn<7gFV?s%Tui@YYd^=?#5yUk{_(M>ckC6#xTRbWKCN9mKC=d5g@|sYxbq_|9-7G> ziEx}$?_uL@KfirqbxhWR7(sNe$#HiO;<%E6wIDhGhdB{<0)*h7PiwvPQDk`3pUTg; zyZ3SxKJPyzFu_HStt)Ep2bZNHUYQv3+?mWB=?yO)_7Jq&49DyKu*!T+57MAW0>3pD z*iuhv&hhGbqT{&ZGM&%g6Z=j6(K1(V(EZ4*3RWeyO{GoV{{FCvbF-9(Bv^2ofzYkR zTp^YOs}pHsT|{-nIVW0GULk*2?2jA0yVwa2dR8YnMhjFK_zKs}bM68P=iaW|Ldqd_|+nw!hS?Pl9QukID%UEZ%XLd8vmT8%YSoBFBe*ER9%dzF5XT47||Fqw%$aqs4Bhtl&eQfiGWa2M%`B5ruEb!_h80OwLTDVi7&KjYKI8 zT?bC7_-7jtGUxc+6V6IzkJmGc(ze@nS(YCA8ahmjKfRH>NP)`6(=oAGRcT?LG~*F* zXI774uh^NaZLpl%*OA+?nP55jL~cY8#=-JheBnSfV|w-<#*`E9Go9_*I$P}*-!#dy z%T_4&e$HvHagE!eF!YxHY@;7qNph|ET3_DY(!MBG3fh!R6AB@L=u~Qwl_|OWBDtMn zSqT^^I56fSZx@7W*#)V9Ak`}6)EZ$7$jH+hdWVOH+O1Pd{cpe~u;CzPPU_=5c8K5E zT^%oNQE_1i#|=VX%OZr5T%3ftwc6Z?0pH4j<8(IlOvrM%2Zn6kMCDG)M6Doig6{kz zs92`J><^~-Q`BQ$JI=dkun6<$f&5F9^?Qb2U9Os;u&4C3NL>Xykrsyc^&G}n?O zg?~FBZ*TjG$Ndedo4x9qx>Y5YsQ1c6aE)8`1y{Q9vx@UA=jm%>9Vf;}MWlp~I~`qg zE$U|C_)o37W$&FiU8%7z|7XZ!$Dl#Su<7MfS5R8a?ix(hQGY*vC0}2A$U?t4cO&+< zvLwymn^CBw2IEi8ysD$iyEXxmS{>HCo3wY-s5>Ll*l!~_g?Iy!k2&vTXnluQ3JUS` zOh1sO&;H){E#T`Ry>IpjSC8#Lt}dNP{-ox-iaqOX?X@PDHWF~ zK)pVyoBe?(YhivyoPvjAMtIkBnzhZ~mgTb_^NP9Yi3#4eY=reqi3VXu(G|Nn{c?nf zT$4$6ioLI-6Bm8v*5adHgmrAAhEtM5rt-60eC{UrWF^Mb1#f2NTj1ACPC5Bm%smuP zJ9#^_c}9|IVo!v!>ocoqwClAK(ZFF=Mc@;$b<(t&Bq3Nm^3?!q>L^yoMC4>5KruZl z%RK3}3K#5hWK&ZB2_c_?6*M;|FC^~j zdK~wO%)F)4`hzvns%-?q$>dh+@JW_O#W_~u9&(LbFf@SIkfIDC&zDNoHFYk<$n1A+ zWT8V3KOc^CH|Yo>CDB-VFUrJy0Hy?AUEJ)rW3>q`rV`I?SJrW(r)NM|Q}WV?Qvbvj(JoYkgvjA@8?i2o7oCgpy|7-D=Gv({TZRg0(MY~O=TMTH6^foTiaJ`O5wRf z!)bDKqG1a%u%xOqk;>rr9Pu>P$@XIl`EA-ENky(?l2YQ zLD>lDY69qwj=r(I+FHK)lDjhSAjvoOON5p;fFtsinyE6th2ddpg1aviZ1}Yv#?GjJ zVt*yWdS5`+&U?G?UE*ICmwjIC;?unt^#b&$CO76D{nxZ4|0E`fR()R)q7@A-D`Y2n zK2yH3dy{$E{MDBQ1C3CYKhMhKo{p#IzXX=4CDOifz_R-`E#6F$qA#Z(8(C0;cHyNf z87oH7$KVI0Bkj1AcozS;9lEP$e^~f#yt8^Bt3Bj33eI*MFE)eJvdTu~o(0&(fZ=k8u37RG6B)81DPe*T4(BHcap`dmkR}l?qav7Z%EK$sA2lo7>j9TD? zg3QcI{j|l!74;l%uqMLZLEJ(lG<$j;B%Vw4jOsp?e5|Yo<20+gXPI3BTl5xUdDCFR z3W*BuqbC`N`uxapH5u7@Z>Y5N+YU<-R;lY5dTL54hoai>^=qcAkR9vVKXynxJ2(Rq zlR4K7OUEAy%s-Cg?!#GQ+gxxs=(kOxu}tL@#lzo9m$A|A@K@-v6go>f}5KK>4# zaDV?dA)$g2Rm^#-QoE561d2{SVyG@y6T@#=~#bjy#n4drBYxh2_g@~pc^e(X%c}T^#ae<)mKO9LNZ#t% zfW~3rRTfWZ`4iMp1H{c2k7WGa+|`pSilj)BPKWirTDN2;f1-jL!=H!$x1A@1IE8`O z>(qQd;{57u>>FZc2U5Hb$Qp;?$ZxXP@-DH*kNZ9Dv#f{!f$D}sKi54T$(Xc>O@%}S zVG`v&kEhG-=PJV^&6(Hqch40Gryw>da!XYm;l#T=?w70VT7ezIyz+kL0Qvt_Br}l zXwkgjc}$&95dQsS;}}#D2A1aefU?8+i5h7#Ke~#0*Hjmg^jIYSV$eVGQj?;>lX%y+ zZcUn1_JuSDJlDd#w@S9aFK6$K&zF+gB#`fV{+sz;heJ;dFG zLV1IXe$Yb{$aBtb=;;ki2$tjk$Q#bd*1KpxpjALhbSxt!GJF#cA-5Du5H#X95;D4{ z5+p@N$=k}%(l3;9Lo-N5!<(B1;&VVwqcHaC%*BF77nt`|N!*==^6P6l9W9<_8kLar zdXoqmGBR?jhg>&!Wu=sIYJI@!CU5SOFneIZ_voX5U%x~!T*c0J+;5C-kE*{W*0@L@ zO}%xcj@W^^Q+u)*U~~G95Xja#0LIKaGx#y z$mBr)iVY+Ba`$So*zc9>ZCdQ9z!~R#{?k+?Uv|QroZ!=Q`4<6!A#y8G{2W_@DYFwZ zqlAP_0;PMZR-E6%@fUTCC#CJRw=8bx-;GJ3#|4V)QT$fW0MqB1E_}yo_vjf<2u@%+ z&;eVxXkrrm_0Bgo7AM3*@vLS#d$uZ5yi>K&9$TQ(P9WPuUv@>M#;^q+*p?(AkNIx*x$9y}ikXX{zx1cgfQu4wq!)ES)zGj_-i zJ-zku-F|<@yUUB%`j0hoN~1cXAX`XLNtBz{3W3x3XsIA@G^6Tntcs6QX1WY@>}wnh zNU9uG-g4MAe|loH6D?(Jy<+<4C3j9PqgS@Dz3z@KB|U_^T|4-+Ux)aAM%g#bzX|z5DIWzOGXcEfgRxSQqCXKT5ST3FAYCiw zYj>txCQ}%tXb?=UMH~Sj=V|$cJVzpOE$_3y(l&#QI5f`pCQv!!m532@0TnabUlDt< zHkt%U6gGtK{zTDC*hfYcGnk5^{FH@QR(|#5+R(WyuO{d;n13tkW$=$6S1I5?zRP8w zO@jIfbza7M^K2t_^cx)^$HHQqM6_V!yf4Q_Ox*$5Uj1Hk*~gK&QB6c)zzxk+HpO|S zYU2%+7{~qk4HQw}`qymkDwm>zgH8pW9sdUHyjcjB_v=SFI3XlDijb1MZo!%-5< zKUnxA9HaaHnah9erb5S}EKk@!Wh}S2oprR*vFAP&)yEz*WT3~O=S#gxdMyg9eEZWE zc9#w-${N?1vdFLTe--&BJid;QYGXBeI|2R3u&XR;S%z*CBu@sh0R~N_&S-Z6(q=L{X8NHkn&3<$oY!dfli1gpf8Vq^E&B3 zRn|8?*Px(dD@qao5i&YKu!NP4j3hQ5l?cG!8kZGe6MzddMJA^=8Re)684WXt`VsOT z7dg#Q@Hyh-)k9U*Fj^W`ki?5Lxux&ICW?mV=gh&BkWh`GL^~T}Bt6QmH90%o%-IcCr3yM(plH8l84;d4qH7?d;u7 z<8~;l#MW-AT$_r}D9sI!RRKeDSt&VH$}&ZIly^y|8C=3~*}12nX?6W5_AX+aYVf00 zCf9&WM*DKisbTe>yLl5zCp375!I}TpGydm>LWzo=iAy;h#0c6V%Ti8S;rz39NJmM= z%ECQc9#S;p`+%^tmgt_%!ibv0C)}~&uGBG7SIR94end zZTG2{%r&z*TosWQ3m2iiba+ zYZp{D_&kmlv(oj7f72SXq8E)t11@0xM$5Yat!_3yA`_zJdh# zQ-zUh#PV;V26=+~srzinRPHJQc}ak&2*6Vi%%2Y3YebFGZ#-gJABrV!B7w~{S zz(sR8*OW~&i1`e3cY9mX;_}XFPfLY%nof3cvne?b8Tee9Zh1Vf5hMi?yjG6zpkaub zfYk~encwhixcy16Mv5&$`<8;7IGrhynKFcS`%i4e29`qWRrp7yin#PqB#YAY+(m`r zOGV?1{h!$@_b6#s=V0&(TJOd=u0I#q(6Xj5*MI!EL2^heMHBBAsy3R~Y@q?*T4SJI zWFYAM5R-qXwiFY1n0mLBsV7_XC995GY4NP%?l&?{U@)u=XSvV|hfUu=dmBz!&6M>I zp`GPR9_(sBVS4Jk1V;Z)GwW7;UXVeZ%lo*-XDC(w@w4vZf{7$4k+bl%RTmr0>F&wq zINWoPba9mM9QBZW7w*N`tCwnf(7y}c;o+G@zL;*D$>ohwea_ANj@0hL(m9v{Dol_ihF z4c_6wC$3l9IHm8{Uq2p9zx3x!w&2iby4Unca!l-6@^HqrJxowZ;YehgsrF4%-jz>N zzU>01O>qj{;*c}$3CuO2JKtkAEf7Na6>Fbj>l3^JMf`eX?_m8vT>+DU@h1wy+u`?c zyn|T{`{QU!>5Si-<#CrB*LQ$$`**+hJe6zG%*tE{0YD^%sq=%G{ax>JFbv$N-pXpK}V+}+-N zv2bo_gr;%a@9T`5YvE_Lbmn{XGhfwq`uACV^D#6kw-&gQ;rYZUQS|U#ppo=>gv>`a z9Qyv9sm=ghr>Tp-k?iWAkmM=D3{f#*T_6TWFdl?$b1U$8vMvn#ZUuubNKK0 z8YS|yf>`;agn2o5B7)7JjbqTEyclwW$N#(g`Ikg4EP3>g!JfQXwko#kNo2#9G1WTV zc=}i$Q@C-nh=0P~VvRk8N8@MP0QLy;TmP-y_~6<`dpBOkU5=H$M1L(!3z|e|1+$8w6{5rwXVYQxBpf z?^@OZ)JBkYW)B+x%Z@K$J_k=uG!1Wm?D$hD=P+76*ceriK6|ucc6nFpL3lwKvWC;) zd%!C*;HO?Nu6N}mOw%@?qMYSDAewir53Pb{*_>!(cf1c}9Hk{}l zibWQe9*r<}0LPo=pB&*&taE(9ss`PrUPB z)XFpCTq2CSUZyT^+E2k#ZclmyXV_ePB6)PdJc4rJnoB-8{(>GYR+ib?(5-MF;Qx4h znh(g>$m#MkE&tt|d>xNn<3k_ezBf;~v9f0H`+xa(>ZO>=pw z31(?O`!!jVaImkeKOP|j_5lj6$k^ys{W=$lx+qwXbq(xsDh<%yvLIQU!c+PojH(qr zXE%A1@al8JN+3b+(p%}vk;0$^^)varnXwtsORunfyURvoF^UiSG+4}v+wdQP>!HHv z%uw~6%kqLtltP}+3&D;g1<9v7vIH#o$FtJkpHCCS;>uzgHux|rdPKoMzPrR1_s&>4 zL3Pl}#vi6mLZ^20*U>g#z9_`@1vanU!hUl2D{3=n*Ow6xFv3j87*4*NdQRlh^g-M? z`DBuRgCKc(Ke~a#ve|{p2HK=OJ<*)Ly|yZLrWy!!X#q4nahfVw`rxmLesX%Byvr&W zAZ|)3^}$Suq<=)#9u4-Tj1ma~)Lxn1fCX`rUDpg@$^q~m1sQR!k`>TWA~h|@X~yms zt}MUp)c-dgzwwf-Rs^|0;d38J5td9QAJBcmOH_5XU`1=QB&J9H4}~Tv_YHGu2>Ks3 z*iV%pqkTSDh+xUOwC%qSfH!3P^5m=K#qpW0B3w;$?SL^ghcK@ST2pca@y|%P$_?-+$87Z0rnZ zWV0+3?+@Q11~i}Ja}ewEve-V{K-vO(f6U4lF9H+E6~D^4XWE*SQ3%+2dKV@$PPPes zWoTA#6B1Meu(4!;WcIK?&O(PyDQR9Bng!>P@NkLaSYy|yIEC7eJOp*&bBrYo`qJ=N67{3ZC^zo2((l(K}n-qL)fR@_l>SM z^-zRXvQ5kb0tY-EnT^Yi$tUue58-X6YCh0TN>Lx242sW%B=0FZWQZ^o>)?oDei>8n0QeF1 zwcd20P1%gJ6doF%#l*Hb86`JPTS#2#4(ukc|Hs$yMRltrdCch`VUO7Qc;f2oBycj) z8$95_?3cPmWVuHU`rD*3QypiRn(T^73OANbHK#|7hh#!M`~rk7eJ> zMly0$xlfI)P-?WE>2A>>naqF70JtjJ$HAFqxCb7j+>#knD!TQ%wgFT$A79UymEMHx z&<&7nJsTv8TVSo>;^Kmv`d_TcOZRg}eu5_Sgg>CEVR9t9G#1X@e~$SW1^pD-U>D%1 z9sh!4+j1W2@1a+Q27TtecVeo+e$y3TrzdgZdlRokDjAV-NV}{4 z@|qMwNuhUF*WM+c$*kE_C($RbdGySLbNQvNA5P;>>(B6O2#)D~%ua7I8_}fqEH24u za)_9MzVe5{f0yQuzAWl=39-LmR;qMnJ)~k-+uO;|-X*UptkPUWAxyJ-DV2 zSH3xHFmOHgxuof2)mn1zRHv{AdZg!gu-OeK;Rm(_>mFO}Eig`w3%OogbTjMJ*DfWD z|M^WoJ|&7($ZMu-Y}Jqw*zqKox4Y~45({UoI|+%hfzZH)m$y0}&zuje`CLp*M>jfk zUpNh}?Gl>{9gG)_UAu@Mrev!mk;Q)wkJbnGe5z*Fgb2m~f$`9QGS>;qDaz->^!}=7 zGrmBYRB8K-osI}@`)$>YK)hBuF^d`IB(M>9a1(;ZBQ6)n=}X*TbX6?|x(~_91hqm= z+&w%T9PRDf?Z=N%{+C-&Zhzd~>|9C;vC9@2`MMSnhHmNWW0>{jhZ0Uvrn8g27d)|- zztNY2(6%$DvE#Rcd+43+W{iQ5*I;us3x4V)=G-K7?1lc+Cs5_^h(yR&2A{B=*nKT`#RhHs{#`5;#!eSkzO!iy!dNV8 zFZa`dv3cj1BpTCu2ck4jzOU^~S^8Y=9T_E63ThHqpl?ka<74Q- zm%86^jQXV;FE)`QyH)mho9V2H>qxC}dYjpG#CrVG(I^UI8X)&*GobUTcb<57SyJWX zM{xGOIH)ja0y9l&_Z_;;X~a7{(c_2T5fJ)vB{bI|M}4~&YKkq}K;@5L?Xiz&PbXcT z3Bx^NIQTv7?iLd^ny%JUYXhO)4}qz*QvG6_K;vb$ z$X(c2j=C$?b~GcyB(*1D{qMn^|Y7wX`+ z`r@1~YY8}M&ZCg{{ZK9Zw*FK7MU8pZ#ZdMMkkJ^%cfq9h&2Q8#}@*S=SLash_E z+X(zYi(JJsuh4-cX7nZ{Ss?Blg#(rxg(zT^r$=9w!opHaA4r}oAh1yLNbGQ!?}i`At!^hgK<-qd(ddPw9WOP~g^Nv1U40>O2YV+2tJc}609dJEo^)PI zXO0YC3_+|HM@B-gk2ONDkoo*U9kw(!k(d~~gH+AC3-9Kxqa_*HfPQAftF~~}_(((H zi{a}>X0)q5-;US#-o`xZE;LOR9MqE9iKYLMZN%i>n zA+DeurnlqrMqZgmr^T`ilR^87b!hCGV(h-yZk=*U=^qc~Nv>JPB~SWl!FM2YT{z%DZ0#TjD$kH$;f#vmJUr0R|+(PJiN!L%Wx;{-lC;D7utpMzqPb) zYbx$Hm2X=KaNnT5ei`1>QflU>aNS$*C2iGqXsajTeThXg$bP1op=#f_^{kO^s!fOE zqM@I&>e%vBU0V*vN79{fu+;z&aCQs@m=dnNiU+?<0hEHnn9db99fCb?{4}5{``6&n zD&6sjq?_Tqe^N_I3UFAca+o>hkhGsF_1v3Ix0@*ZduP|A(f5?wyx2beG^C{Y_wT(R z=a*7r)6)jmnCKfbb92`|E`A+ie)rqpF@)hR>3abE{rv(I`PW|vG^ClZ4Coanm&-X{ z_$F-#mEzfxi=SRdRPq+1balALel|2wucp@_v89u1@ZBP2pT)Y!-pQZ)03$EwxmL8v zB$v^=2M}Dp^E5+ww~6#d@~K#s2y!%w;W4a48A}yQ9ZQ*dYMw=I=viU|4*G1kJBJHv zY~!A42{$hJ^hc73L)w0=Bn3SVw#EGtsU*DBBV-K_X?{Ul-lK@GqDg1UyP0v6G#{@S ze4a7$pvrhUNd74v(sq`Ym&Y}7&y%hh8Bu0$tob4GVa@xFe^!FCT0XTr?I;Kvr8e>WFLqv`=l_;exlp~jq4Z3U|M~Q- z*$NwH1v(pBhCEjXbd?Y~$+F-zkvRCt$%i?j_t*;jzS3Zen#sVy71A2(dF1$^^Oi-7 z7^#z4YNksHraE+b&;4~NMmp_@_VpEaZg{lBw);EzXV#O-X;x6@l!2;2mx=U&25s(v z7N8V8I^{eRT(7vikC40CHV!@1^?OfLcK~*c_ED4YuxPRXIlc_69zi((%1tr73I+m& zN3j31J^9EjdjEv!z*sOl{B$jDSeNfMoa$)v!NYEgVsS>aiSY8{QiftPvN4Y!LdQ=9 z9{9^G(aBZO`qLC&RKejzomJp)TyshD}ErJoUY zD;7Td`>?@Esvu@c*exLLE=rh2sGHAGJf?mS(^mH?yJX~6;i&rr{L4TS!sf<=xy%FN z4bQ-YI%oiM@1Q1Gm-eUR?>N42a0g)3rsE1BLIG-|ly3|WAP1R*F-cKgq@c|@04hSt zM7>RNX$BlLmh>mlPxMTR*G)Mnc{ro`jvf!fds}I!_}!YEJShVEiPnyR*7$Hj2JWgs zva>SO4u~s~-_X&vTjGi@{A(JB6wU`^j@Pr@)!^d~@hyL` zVv*pVxKOm|oiiW&P0$>8F_Iw?EPp#V7i~s1O!fuo2lHl_FtK4^6;;+XhVW2I-w%U? zo-n#bfWqn(U1?rl3p;py(g$~W>f1EYN7f8HF_{%Gm9T5Y^kcv$BgMqy!CmO~;GR<= z^w+@}9Cxa)|964abY(hg@~W>gl0@z&_rd>MQ&;G#C!6dd(~G%`{7wc@f^k4Hr^G*kZcW!JWw-m65x5LemQL@=vH&Xz|H9wty|EPvI1!2R*Q8C-aL7g@IKT zl3c4YL8Sn%=!X>dXoQ$lWN2Y0;_i(!jf!ktzuLr4Ce7JpFyua>tlvi!kZn?h53g%d z^2pt$cfR$dmap^9xu|NxU=(gwd)EoYyj#7)Vtl!BzuGUbtgN^>)&jS4O89HH&_o(r z4pYB}D^26vMO?eMg~qeJ`m>Ve`F{oY_ZYVYoz%x2I2 zCI{_bdH1grt6+f|OObRi_w&-Hq@W)KK628-ht8^Jy&ZyBIJ za4WjoS5tNm|K*5F7Q`S%Ad zY9w~TgE;*;6Wb6&gu_=cP1oz8L3GfQ^9Lm6R?`n%pnpaWsRFLc!dfICn}F9)aq!Rb_xpf<#`nBF40M{vU` zC})g{_bm7kogyF{k_!n_w+MFIXNb$9>B96boG7Ask{G;M@1@Sa~ z(5shzP}lQoY^dXXX4n$YdteSMclAsN3cL|;A_N%bf@B7;%XkHc0m9VH8=rGNVo&GdvGAq;^ShY-KR1U=2c%zT^;XA;Pv#A84eiQB zzBlkfetKxbUScGe?GFB+b>nk6bUyD)mj`g+I6G0`T*2RrMKo$~=baxH_6e*T9>R-LGB)hw?p?Wwn!Y=4 zuQ>LlM)}ZQJ@lc?fF}~ONjr#4#(4Vq&_)(+OfYtFmK+m={dzR}-SdOpmIiVTO0ti7Wzrat@!WQRC?Sja$|6*aNZx;=fK3f(jv&07laY#3{GT3qV& z@ZOv95BP28A28aZnT}t-dBAZ_*tm0k=tGMEFhfJIUsJqV{1)XG51HJKn7o<22ZW`n z&t())OTHyb&&(rree@Q2<{}oe-@rAJU#DQjXrQ)<;1PWqXv8?UIcyv8#E>iU0xUlc zR+puRmAP^hMu6I<&7R%?6huHwXpa77P;P!nQ*NFN6XX?Sjp>waS&=_rD(>;qU|yP?fadM^nc4~e zF06d3@5GNfTv8s8KSw?rkF;Du`v~Ka&(6(52elhc-=-1bB2k)qe+C;l#`OYa+7PiI z{;IYwFB)zpje$bOekpD%MpdJa9$G%8QFafst2?%%e|mp1?^(&0i@HS#(dX@h#04n= z_S}*DswgpeacRj5UGCM^Y=Vgk6gglb?l575cH0loio^Y|!%!7hA0UEhSd=*VSOX`0PjxThB9#KP}4DOr;=4(EX z+UqJ?6SdXtKi`IW+X>MtRfquVM2?d5D{ZgUS3jvY#@XRhpk4!$hZi$q-Zr`o1*z4Q z>B*NDGlJ(Q7rsr!2e@9l@JJ`Z9FQ5Bgl&=SL(57n)O#(FhVI~aFy}F78={8!Q++~){vHEcq)f(B4LnC`x6M~t+<&$*hIi8NB=`FI0Tn8j2YM>x7JlLy6 zHl|~P&^8#F3-S~a+P$}v8_8X{s9d)A=a+&)QV(;tbwJJmAAyUalTVy45F?S|HWJ?;pV+7%ehl=GfT z9}avldEgHf-IK*&*vbVCuc?250XY}1KLOK5*3 zq!HB@Wl#ZkNP{+yM&s=q?y#|+N?L(zKJ`M~ZE?Kx&;Hp}fHqHG3#@!#@=Yv|ikTTo z*Sxt#V8@#r(0h|qVxEFKK!~KtEwXs@JbRTIqspr{m#+>&mFm@I=GyAUiA4If;85pV zB3vUmPkrfc925r5oxQX*JNN10dWZYAKy6oYb7I5ffzX?fgeG1}K^{u;#~M%?b338U={Dp` zo}-a>cRdO@1zix8vMy_K4Q`WBT?Oio38IW9^-!2jS04HbPcyktU$Fhhd34KS1Wa zg;mX!kHh%6mgJ|7zco8*AFas!r8ul^kB=YppXtT?6Brlhc6Arpw~(}Y%H#`d4E+yX zSmdPNru=+7c6ZW`GY%NZ%wg0ED>yBzF+xj3#B0>^JR7Ok! zV!;__EcgTo5CY=_ETCec6NFI_5qK&kg;2$Q0XwLXL1h#$C{-YYfCW^fD1@3&C76aG zh4k;nZ++`q>;3W0ZD*ab_SxsR_g&|nd(Pg^+(r9k=`}~RMbrQ2oCgJPGh1b0fz#qB zGOEo3D(NaUn>mzaao)~iXTQs3)v_#h@o9!y64`iQ*M_M95QcrbHarH2U>qKY6~#1i zS9o3hRXjGZbpiY^akI3Ig+H0{uYUPSR}H}^e<*we`Dj5@DzwG+k+wMAnRw#jo6VD$ zmR#CD7Gqt~nlR86$BNweDM$gSDW|^XW(%pFAM!x4e3XtK8>-g4o7f#ZwOdl>H0!vD z8sbh*VXlJQ^HMs)4D5<+nMvYY-xg_qx?a3(_iqdqLk;Cy4 zzkq=0xdJRFTO6d^Flzx2X<4(8>7$X;Cfz@0 zOy0E(-xcw@_so#@PH1q{zqTOKJ)JXN!_pVY_twD{z=he&vSu3l>(jLDczN0+i&wPrkxfR$FIi_iZL{p4e>&sW@ShgXuT)Ha{XR$4cSyd> z)AR|^sG$4r>RrO~(W9)>SEx5`hhL!H`@kkfHEnxu==w9DT7dl9GSBJKIAcEI(KCx_ z!8|ZSOiHwPW^HEEh}WjA19uM1Lxs;hd-49LWOt^l7iEG-z22B~B&g!2Nyp%$FMe9H z(C$8NrkYdvOIGXW9Zsey+CO~YyWKcIgrtDs zaYl<{uxO67YiVE4m)A9iPsJ_sgdYUw59Z=c(Q8f7m$T3l#%&|Vf(cV`Dkg$F-0OnK zu=upF9q0YbJledd?PBlhqLWcAD04JXP_!Y`Us5W$u36w(wO!1w45v*xwfhB6ZBVkm zKNyh^bM_JeA5h#&4M>yZ@A*h6EJuo3T8B6`TK|PwquEC)Q`pTqWFJ0aH}BDlF9!!r zJBLb#RhM=m>{*a7s+c~kJNanY;plV(=xV1h2;4wm8sTmJ$3uwuTJQCjB7EuqioUuB zGq+xu@IZa_d&zHeGnK#UZ!;W2Vr|a1@LaY#WSKUwI@HXWHu!$$6X;j{SIfVe!txob zf&x~COYKJJuTt5}8SJ}~Qo6X3svcww7K=W=kXIyD$ekaEEB(2Htza5!F!C%7HKy7U zV4Zl-3-AR1b@DMffH`rNGoW0O0r<|dMkAYx>GSV5?ETI3sn|4nvuSkXCMXU-Y}*|d zskpQ8{OYJh#y&P%rq4Z5Kw4t1T&0b2r5JHeF>_Eq+^_$_W>YulZ;?Ni>dME1F#!!# zTa@nVa->uyQz*bkXl<9GA#NknBQ7@C*utglrq;FjUM8Ts1{bLuwqdxF{iS0Iay6IP z>U1Mh+a0D6nP&x1AADqWg893sH-s!>9|DWK=uFzfwez7#RBAU|M*(M^&1ScR3pc62 zU@|{SIte){BnTtGtB6jI6OPqq>-zZ1`(UYx#yfs(%g6-IozK32StdXpK4h;@8)eT% z&KhMkcpN@&OFaNRVCh+BpM`@KJ~k0qM1PFF4IP8jEJ?ianzTokycclin#d(|yaYF} zo}?#h3%GArNa?{!>m;=jFCF>^n+89kXZH?Hs3|mUAFL162XiNZe3v6boGKE#(4~nE z5*8nJW^kl?v70&T-ArC6`s&F}0Fk;Gn(}LW)e$$NKqTP_tlmca7nOJm{x`ty)<&PDi3i?KQz#T|gvLjotE-|jslx8( zvRZ0lFh~%jXlMXPTRl=v)AkTgf9+{l(Q?fyd2$5xsuM4g?T<^=ZJ!kZL}OFvUc*=oRi^Sb`dheMQjRQh z(@m=dUuxxDwTTsp@gttxbBnckF*%ky<_hA4cX4=nQOb!^s6@)a41m}=cV}sCdRW}D zZ+6}y%NASH#--=&MsHmE*m5uTjLrX}GI{Po%-g&EgCndilg1Jh+Rp;JwU~ig*&+OjGO%^3pw?d6CQo`V-6~MN5Xt}C@;Bi#w+)47_NtK+tDL@Q0xtiTA=QiKQrO2z?jjb zX2fnkvgXJkSf+GS?u1xm8vew6ljr{$f#~r zDEeSjQ6CJ9XM(e4gRPXyR9PQPMdLv@6U3Jv?0;)zy(7=(bv`ad{nfSvINpFeYW;E# zWVQMg6Q}Z6gPyjLwAs{k)3_!L#!QTq$UuQg%m*6_uaH~Igs6WvOt1RJ5Y#E$kmQYO zt>Ve>kXWIir|wBidwp(;`a~IPUsP4(8XC1Ll+NbMR1nqeiMWz5L)`FkATq+}%ssS@ z#_+jS?6KyGiP39tbjmpnVsiQPSsM$lXROUp8@ajPou3!SFy5>+baAu4l+>ihGl?tKP~S8DIk$Vc}m;dWC@i`-d)rNlj909Oz!Pe*W2o zuQfEkpHl@L>qQgU)%MR7=u|;(^$NQ{+6(d-gV98zW*9Nm z-Og;=WnjE`bklai zHtE3bmlYZZ*LAgfUS0HY!-hj!pI)~~J0q^`ZjcusjqZ^`)g35e+SV5m=bnk5WA_D+ zzo26w3HeRc9)ZCXt`*`r z0LLVYnzA{9_~B|Nrp`3>YNx7>_tPWEoTq_#qtS@LhZP!U|1|p z)&7Le;qi$eyv;r(bLZgO2`xwCYh;x4S*E(n5f~9bx$Hn0#Z~JpRlSNvZCz>MDkWO@ zcAQ`Gc-Lu9>cysIioMii^g_yK{(5!tNot;6oOM*T?P%h{Wx9bowK(R zc#0V$Ikt>{kj_3rE$k)vNoz8N583=!$Pg}$)OGF&8zXSO*h38I>#zJg$S7RbzSxYQ z8O{k~;=)fs@&!!A5Q;d&lH2;wg3I_w(8_W`Pl*BVQ@0fyj6s(9vG5@;18PJ{Q1uua z8K9jn>jGp=f#W6jD@l5_K_W0+@(MSDY=j3Zwr2?m7#?1YrmRXNnA0}BUK8GslDExP zhFb5DU*#sPG4aVS8OB`iQG@?^Eq-+Nf4embS;jxCm*(o}Hvfywe-?kTU~{0~^|h0M QTMRiqJAMCn?n%h_A0L!DR{#J2 literal 0 HcmV?d00001 diff --git a/docs/api-ref.md b/docs/api-ref.md index 4b95a1277..19840915e 100644 --- a/docs/api-ref.md +++ b/docs/api-ref.md @@ -5,21 +5,21 @@ layout: docs

    - - + + + + The Tableau Server Client (TSC) is a Python library for the Tableau Server REST API. Using the TSC library, you can manage and change many of the Tableau Server and Tableau Online resources programmatically. You can use this library to create your own custom applications. -The TSC API reference is organized by resource. The TSC library is modeled after the REST API. The methods, for example, `workbooks.get()`, correspond to the endpoints for resources, such as [workbooks](#workbooks), [users](#users), [views](#views), and [data sources](#data-sources). The model classes (for example, the [WorkbookItem class](#workbookitem-class) have attributes that represent the fields (`name`, `id`, `owner_id`) that are in the REST API request and response packages, or payloads. +The TSC API reference is organized by resource. The TSC library is modeled after the REST API. The methods, for example, `workbooks.get()`, correspond to the endpoints for resources, such as [workbooks](#workbooks), [users](#users), [views](#views), and [data sources](#data-sources). The model classes (for example, the [WorkbookItem class](#workbookitem-class) have attributes that represent the fields (`name`, `id`, `owner_id`) that are in the REST API request and response packages, or payloads. -|:--- | +|:--- | | **Note:** Some methods and features provided in the REST API might not be currently available in the TSC library (and in some cases, the opposite is true). In addition, the same limitations apply to the TSC library that apply to the REST API with respect to resources on Tableau Server and Tableau Online. For more information, see the [Tableau Server REST API Reference](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm).| - -* TOC + +* TOC {:toc }
    @@ -29,29 +29,29 @@ The TSC API reference is organized by resource. The TSC library is modeled after ## Authentication -You can use the TSC library to sign in and sign out of Tableau Server and Tableau Online. The credentials for signing in are defined in the `TableauAuth` class and they correspond to the attributes you specify when you sign in using the Tableau Server REST API. +You can use the TSC library to sign in and sign out of Tableau Server and Tableau Online. The credentials for signing in are defined in the `TableauAuth` class and they correspond to the attributes you specify when you sign in using the Tableau Server REST API.
    -
    +
    ### TableauAuth class ```py TableauAuth(username, password, site_id='', user_id_to_impersonate=None) ``` -The `TableauAuth` class defines the information you can set in a sign-in request. The class members correspond to the attributes of a server request or response payload. To use this class, create a new instance, supplying user name, password, and site information if necessary, and pass the request object to the [Auth.sign_in](#auth.sign-in) method. +The `TableauAuth` class defines the information you can set in a sign-in request. The class members correspond to the attributes of a server request or response payload. To use this class, create a new instance, supplying user name, password, and site information if necessary, and pass the request object to the [Auth.sign_in](#auth.sign-in) method. + - - **Note:** In the future, there might be support for additional forms of authorization and authentication (for example, OAuth). + **Note:** In the future, there might be support for additional forms of authorization and authentication (for example, OAuth). -**Attributes** +**Attributes** -Name | Description -:--- | :--- -`username` | The name of the user whose credentials will be used to sign in. -`password` | The password of the user. -`site_id` | This corresponds to the `contentUrl` attribute in the Tableau REST API. The `site_id` is the portion of the URL that follows the `/site/` in the URL. For example, "MarketingTeam" is the `site_id` in the following URL *MyServer*/#/site/**MarketingTeam**/projects. To specify the default site on Tableau Server, you can use an empty string `''` (single quotes, no space). For Tableau Online, you must provide a value for the `site_id`. -`user_id_to_impersonate` | Specifies the id (not the name) of the user to sign in as. +Name | Description +:--- | :--- +`username` | The name of the user whose credentials will be used to sign in. +`password` | The password of the user. +`site_id` | This corresponds to the `contentUrl` attribute in the Tableau REST API. The `site_id` is the portion of the URL that follows the `/site/` in the URL. For example, "MarketingTeam" is the `site_id` in the following URL *MyServer*/#/site/**MarketingTeam**/projects. To specify the default site on Tableau Server, you can use an empty string `''` (single quotes, no space). For Tableau Online, you must provide a value for the `site_id`. +`user_id_to_impersonate` | Specifies the id (not the name) of the user to sign in as. Source file: models/tableau_auth.py @@ -59,25 +59,55 @@ Source file: models/tableau_auth.py ```py import tableauserverclient as TSC -# create a new instance of a TableauAuth object for authentication tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD', site_id='CONTENTURL') - -# create a server instance -# pass the "tableau_auth" object to the server.auth.sign_in() method +server = TSC.Server('https://SERVER_URL', use_server_version=True) +server.auth.sign_in(tableau_auth) ```
    -
    +
    + +### PersonalAccessTokenAuth class + +```py +PersonalAccessTokenAuth(token_name, personal_access_token, site_id='') +``` +The `PersonalAccessTokenAuth` class serves the same purpose and is used in the same way as `TableauAuth`, but using Personal Access Tokens](https://help.tableau.com/current/server/en-us/security_personal_access_tokens.htm) instead of username and password. + +**Attributes** + +Name | Description +:--- | :--- +`token_name` | The personal access token name. +`personal_access_token` | The personal access token value. +`site_id` | This corresponds to the `contentUrl` attribute in the Tableau REST API. The `site_id` is the portion of the URL that follows the `/site/` in the URL. For example, "MarketingTeam" is the `site_id` in the following URL *MyServer*/#/site/**MarketingTeam**/projects. To specify the default site on Tableau Server, you can use an empty string `''` (single quotes, no space). For Tableau Online, you must provide a value for the `site_id`. + +Source file: models/personal_access_token_auth.py + +**Example** + +```py +import tableauserverclient as TSC +tableau_auth = TSC.PersonalAccessToken('TOKEN-NAME', 'TOKEN-VALUE', site_id='CONTENTURL') +server = TSC.Server('https://SERVER_URL', use_server_version=True) +server.auth.sign_in(tableau_auth) +``` + +
    +
    ### Auth methods The Tableau Server Client provides two methods for interacting with authentication resources. These methods correspond to the sign in and sign out endpoints in the Tableau Server REST API. - Source file: server/endpoint/auth_endpoint.py +**See Also** +[Sign in and Out](sign-in-out) +[Server](#server) + +

    -
    #### auth.sign_in @@ -94,7 +124,7 @@ REST API: [Sign In](https://help.tableau.com/current/api/rest_api/en-us/REST/res **Parameters** -`auth_req` : The `TableauAuth` object that holds the sign-in credentials for the site. +`auth_req` : The `TableauAuth` object that holds the sign-in credentials for the site. **Example** @@ -110,14 +140,8 @@ server = TSC.Server('https://SERVER_URL') # call the sign-in method with the auth object server.auth.sign_in(tableau_auth) - ``` - -**See Also** -[Sign in and Out](sign-in-out) -[Server](#server) -

    @@ -136,18 +160,36 @@ REST API: [Sign Out](https://help.tableau.com/current/api/rest_api/en-us/REST/re **Example** ```py - server.auth.sign_out() +``` + +
    +
    +#### auth.switch_site +```py +auth.switch_site(site_id) ``` +Switch to a different site on the current Tableau Server. +Switching avoids the need for reauthenticating to the same server. (Note: This method is not available in Tableau Online.) +REST API: [Switch Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_authentication.htm#switch_site) -**See Also** -[Sign in and Out](sign-in-out) -[Server](#server) +**Parameters** + +`site_item` | The site that you want to switch to. This should be a `SiteItem` retrieved from `sites.get()`, `sites.get_by_id()` or `sites.get_by_name{}`. + + +**Example** + +```py +# find and then switch auth to another site on the same server +site = server.sites.get_by_id('9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d') +server.auth.switch_site(site) +```

    @@ -157,7 +199,7 @@ server.auth.sign_out() ## Connections -The connections for Tableau Server data sources and workbooks are represented by a `ConnectionItem` class. You can call data source and workbook methods to query or update the connection information. The `ConnectionCredentials` class represents the connection information you can update. +The connections for Tableau Server data sources and workbooks are represented by a `ConnectionItem` class. You can call data source and workbook methods to query or update the connection information. The `ConnectionCredentials` class represents the connection information you can update. ### ConnectionItem class @@ -167,23 +209,23 @@ ConnectionItem() The `ConnectionItem` class corresponds to workbook and data source connections. -In the Tableau Server REST API, there are separate endpoints to query and update workbook and data source connections. +In the Tableau Server REST API, there are separate endpoints to query and update workbook and data source connections. -**Attributes** +**Attributes** -Name | Description - :--- | : --- -`datasource_id` | The identifier of the data source. +Name | Description + :--- | : --- +`datasource_id` | The identifier of the data source. `datasource_name` | The name of the data source. `id` | The identifier of the connection. -`connection_type` | The type of connection. -`username` | The username for the connection. -`password` | The password used for the connection. -`embed_password` | (Boolean) Determines whether to embed the password (`True`) for the workbook or data source connection or not (`False`). -`server_address` | The server address for the connection. -`server_port` | The port used for the connection. +`connection_type` | The type of connection. +`username` | The username for the connection. +`password` | The password used for the connection. +`embed_password` | (Boolean) Determines whether to embed the password (`True`) for the workbook or data source connection or not (`False`). +`server_address` | The server address for the connection. +`server_port` | The port used for the connection. -Source file: models/connection_item.py +Source file: models/connection_item.py

    @@ -197,7 +239,7 @@ ConnectionCredentials(name, password, embed=True, oauth=False) ``` -The `ConnectionCredentials` class is used for workbook and data source publish requests. +The `ConnectionCredentials` class is used for workbook and data source publish requests. @@ -206,10 +248,10 @@ The `ConnectionCredentials` class is used for workbook and data source publish r Attribute | Description :--- | :--- `name` | The username for the connection. -`embed_password` | (Boolean) Determines whether to embed the passowrd (`True`) for the workbook or data source connection or not (`False`). -`password` | The password used for the connection. -`server_address` | The server address for the connection. -`server_port` | The port used by the server. +`embed_password` | (Boolean) Determines whether to embed the passowrd (`True`) for the workbook or data source connection or not (`False`). +`password` | The password used for the connection. +`server_address` | The server address for the connection. +`server_port` | The port used by the server. `ouath` | (Boolean) Specifies whether OAuth is used for the data source of workbook connection. For more information, see [OAuth Connections](https://help.tableau.com/current/server/en-us/protected_auth.htm). @@ -222,8 +264,8 @@ Source file: models/connection_credentials.py ## Data sources -Using the TSC library, you can get all the data sources on a site, or get the data sources for a specific project. -The data source resources for Tableau Server are defined in the `DatasourceItem` class. The class corresponds to the data source resources you can access using the Tableau Server REST API. For example, you can gather information about the name of the data source, its type, its connections, and the project it is associated with. The data source methods are based upon the endpoints for data sources in the REST API and operate on the `DatasourceItem` class. +Using the TSC library, you can get all the data sources on a site, or get the data sources for a specific project. +The data source resources for Tableau Server are defined in the `DatasourceItem` class. The class corresponds to the data source resources you can access using the Tableau Server REST API. For example, you can gather information about the name of the data source, its type, its connections, and the project it is associated with. The data source methods are based upon the endpoints for data sources in the REST API and operate on the `DatasourceItem` class.
    @@ -235,23 +277,23 @@ DatasourceItem(project_id, name=None) The `DatasourceItem` represents the data source resources on Tableau Server. This is the information that can be sent or returned in the response to an REST API request for data sources. When you create a new `DatasourceItem` instance, you must specify the `project_id` that the data source is associated with. -**Attributes** +**Attributes** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `connections` | The list of data connections (`ConnectionItem`) for the specified data source. You must first call the `populate_connections` method to access this data. See the [ConnectionItem class](#connectionitem-class). -`content_url` | The name of the data source as it would appear in a URL. +`content_url` | The name of the data source as it would appear in a URL. `created_at` | The date and time when the data source was created. `certified` | A Boolean value that indicates whether the data source is certified. -`certification_note` | The optional note that describes the certified data source. -`datasource_type` | The type of data source, for example, `sqlserver` or `excel-direct`. -`id` | The identifier for the data source. You need this value to query a specific data source or to delete a data source with the `get_by_id` and `delete` methods. -`name` | The name of the data source. If not specified, the name of the published data source file is used. +`certification_note` | The optional note that describes the certified data source. +`datasource_type` | The type of data source, for example, `sqlserver` or `excel-direct`. +`id` | The identifier for the data source. You need this value to query a specific data source or to delete a data source with the `get_by_id` and `delete` methods. +`name` | The name of the data source. If not specified, the name of the published data source file is used. `owner_id` | The identifier of the owner of the data source. `project_id` | The identifier of the project associated with the data source. You must provide this identifier when you create an instance of a `DatasourceItem`. -`project_name` | The name of the project associated with the data source. -`tags` | The tags (list of strings) that have been added to the data source. -`updated_at` | The date and time when the data source was last updated. +`project_name` | The name of the project associated with the data source. +`tags` | The tags (list of strings) that have been added to the data source. +`updated_at` | The date and time when the data source was last updated. **Example** @@ -267,44 +309,44 @@ Name | Description Source file: models/datasource_item.py -
    +

    ### Datasources methods -The Tableau Server Client provides several methods for interacting with data source resources, or endpoints. These methods correspond to endpoints in the Tableau Server REST API. +The Tableau Server Client provides several methods for interacting with data source resources, or endpoints. These methods correspond to endpoints in the Tableau Server REST API. Source file: server/endpoint/datasources_endpoint.py -
    +

    -#### datasources.delete +#### datasources.delete ```py datasources.delete(datasource_id) ``` -Removes the specified data source from Tableau Server. +Removes the specified data source from Tableau Server. -**Parameters** +**Parameters** -Name | Description -:--- | :--- -`datasource_id` | The identifier (`id`) for the `DatasourceItem` that you want to delete from the server. +Name | Description +:--- | :--- +`datasource_id` | The identifier (`id`) for the `DatasourceItem` that you want to delete from the server. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `Datasource ID undefined` | Raises an exception if a valid `datasource_id` is not provided. REST API: [Delete Datasource](https://help.tableau.com/v0.0/api/rest_api/en-us/REST/rest_api_ref.htm#delete_data_source) -
    +

    @@ -320,23 +362,23 @@ REST API: [Download Datasource](https://help.tableau.com/current/api/rest_api/en **Parameters** -Name | Description -:--- | :--- -`datasource_id` | The identifier (`id`) for the `DatasourceItem` that you want to download from the server. -`filepath` | (Optional) Downloads the file to the location you specify. If no location is specified (the default is `Filepath=None`), the file is downloaded to the current working directory. +Name | Description +:--- | :--- +`datasource_id` | The identifier (`id`) for the `DatasourceItem` that you want to download from the server. +`filepath` | (Optional) Downloads the file to the location you specify. If no location is specified (the default is `Filepath=None`), the file is downloaded to the current working directory. `include_extract` | (Optional) Specifies whether to download the file with the extract. The default is to include the extract, if present (`include_extract=True`). When the data source has an extract, if you set the parameter `include_extract=False`, the extract is not included. You can use this parameter to improve performance if you are downloading data sources that have large extracts. Available starting with Tableau Server REST API version 2.5. -`no_extract` | (**Deprecated**) Use `include_extract` instead. The default value is to ignore this parameter (`no_extract=None`). If you set the parameter to `no_extract=True`, the download will not include an extract (if there is one). If set to `no_extract=False`, the download will include the extract (if there is one). Available starting with Tableau Server REST API version 2.5. +`no_extract` | (**Deprecated**) Use `include_extract` instead. The default value is to ignore this parameter (`no_extract=None`). If you set the parameter to `no_extract=True`, the download will not include an extract (if there is one). If set to `no_extract=False`, the download will include the extract (if there is one). Available starting with Tableau Server REST API version 2.5. **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Datasource ID undefined` | Raises an exception if a valid `datasource_id` is not provided. -**Returns** +**Returns** -The file path to the downloaded data source. The data source is downloaded in `.tdsx` or `.hyper` format. +The file path to the downloaded data source. The data source is downloaded in `.tdsx` or `.hyper` format. **Example** @@ -347,7 +389,7 @@ The file path to the downloaded data source. The data source is downloaded in `. ``` - +

    @@ -357,7 +399,7 @@ The file path to the downloaded data source. The data source is downloaded in `. datasources.get(req_options=None) ``` -Returns all the data sources for the site. +Returns all the data sources for the site. To get the connection information for each data source, you must first populate the `DatasourceItem` with connection information using the [populate_connections(*datasource_item*)](#populate-connections-datasource) method. For more information, see [Populate Connections and Views](populate-connections-views#populate-connections-for-data-sources) @@ -365,9 +407,9 @@ REST API: [Query Datasources](https://help.tableau.com/current/api/rest_api/en-u **Parameters** -Name | Description -:--- | :--- -`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific data source, you could specify the name of the project or its id. +Name | Description +:--- | :--- +`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific data source, you could specify the name of the project or its id. **Returns** @@ -402,22 +444,22 @@ with server.auth.sign_in(tableau_auth): datasources.get_by_id(datasource_id) ``` -Returns the specified data source item. +Returns the specified data source item. REST API: [Query Datasource](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_data_source) **Parameters** -Name | Description -:--- | :--- -`datasource_id` | The `datasource_id` specifies the data source to query. +Name | Description +:--- | :--- +`datasource_id` | The `datasource_id` specifies the data source to query. **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Datasource ID undefined` | Raises an exception if a valid `datasource_id` is not provided. @@ -436,8 +478,8 @@ print(datasource.name) ``` -
    -
    +
    +
    @@ -449,14 +491,14 @@ datasources.populate_connections(datasource_item) Populates the connections for the specified data source. -This method retrieves the connection information for the specified data source. The REST API is designed to return only the information you ask for explicitly. When you query for all the data sources, the connection information is not included. Use this method to retrieve the connections. The method adds the list of data connections to the data source item (`datasource_item.connections`). This is a list of `ConnectionItem` objects. +This method retrieves the connection information for the specified data source. The REST API is designed to return only the information you ask for explicitly. When you query for all the data sources, the connection information is not included. Use this method to retrieve the connections. The method adds the list of data connections to the data source item (`datasource_item.connections`). This is a list of `ConnectionItem` objects. REST API: [Query Datasource Connections](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_data_source_connections) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `datasource_item` | The `datasource_item` specifies the data source to populate with connection information. @@ -464,14 +506,14 @@ Name | Description **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Datasource item missing ID. Datasource must be retrieved from server first.` | Raises an error if the datasource_item is unspecified. **Returns** -None. A list of `ConnectionItem` objects are added to the data source (`datasource_item.connections`). +None. A list of `ConnectionItem` objects are added to the data source (`datasource_item.connections`). **Example** @@ -480,14 +522,14 @@ None. A list of `ConnectionItem` objects are added to the data source (`datasour # import tableauserverclient as TSC # server = TSC.Server('https://SERVERURL') -# - ... +# + ... # get the data source datasource = server.datasources.get_by_id('1a2a3b4b-5c6c-7d8d-9e0e-1f2f3a4a5b6b') -# get the connection information +# get the connection information server.datasources.populate_connections(datasource) # print the information about the first connection item @@ -500,8 +542,8 @@ None. A list of `ConnectionItem` objects are added to the data source (`datasour ``` -
    -
    +
    +
    #### datasources.publish @@ -509,35 +551,35 @@ None. A list of `ConnectionItem` objects are added to the data source (`datasour datasources.publish(datasource_item, file_path, mode, connection_credentials=None) ``` -Publishes a data source to a server, or appends data to an existing data source. +Publishes a data source to a server, or appends data to an existing data source. -This method checks the size of the data source and automatically determines whether the publish the data source in multiple parts or in one opeation. +This method checks the size of the data source and automatically determines whether the publish the data source in multiple parts or in one opeation. REST API: [Publish Datasource](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#publish_data_source) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `datasource_item` | The `datasource_item` specifies the new data source you are adding, or the data source you are appending to. If you are adding a new data source, you need to create a new `datasource_item` with a `project_id` of an existing project. The name of the data source will be the name of the file, unless you also specify a name for the new data source when you create the instance. See [DatasourceItem](#datasourceitem-class). -`file_path` | The path and name of the data source to publish. +`file_path` | The path and name of the data source to publish. `mode` | Specifies whether you are publishing a new data source (`CreateNew`), overwriting an existing data source (`Overwrite`), or appending data to a data source (`Append`). If you are appending to a data source, the data source on the server and the data source you are publishing must be be extracts (.tde files) and they must share the same schema. You can also use the publish mode attributes, for example: `TSC.Server.PublishMode.Overwrite`. -`connection_credentials` | (Optional) The credentials required to connect to the data source. The `ConnectionCredentials` object contains the authentication information for the data source (user name and password, and whether the credentials are embedded or OAuth is used). - +`connection_credentials` | (Optional) The credentials required to connect to the data source. The `ConnectionCredentials` object contains the authentication information for the data source (user name and password, and whether the credentials are embedded or OAuth is used). + **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `File path does not lead to an existing file.` | Raises an error of the file path is incorrect or if the file is missing. -`Invalid mode defined.` | Raises an error if the publish mode is not one of the defined options. -`Only .tds, tdsx, .tde, or .hyper files can be published as datasources.` | Raises an error if the type of file specified is not supported. +`Invalid mode defined.` | Raises an error if the publish mode is not one of the defined options. +`Only .tds, tdsx, .tde, or .hyper files can be published as datasources.` | Raises an error if the type of file specified is not supported. **Returns** -The `DatasourceItem` for the data source that was added or appended to. +The `DatasourceItem` for the data source that was added or appended to. **Example** @@ -546,12 +588,12 @@ The `DatasourceItem` for the data source that was added or appended to. import tableauserverclient as TSC server = TSC.Server('https://SERVERURL') - + ... project_id = '3a8b6148-493c-11e6-a621-6f3499394a39' file_path = r'C:\temp\WorldIndicators.tde' - + # Use the project id to create new datsource_item new_datasource = TSC.DatasourceItem(project_id) @@ -563,8 +605,8 @@ The `DatasourceItem` for the data source that was added or appended to. ... ``` -
    -
    +
    +
    #### datasources.refresh @@ -572,22 +614,22 @@ The `DatasourceItem` for the data source that was added or appended to. datasource.refresh(datasource_item) ``` -Refreshes the data of the specified extract. +Refreshes the data of the specified extract. REST API: [Update Data Source Now](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_datasources.htm#update_data_source_now) **Parameters** -Name | Description - :--- | : --- +Name | Description + :--- | : --- `datasource_item` | The `datasource_item` specifies the data source to update. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `Datasource item missing ID. Datasource must be retrieved from server first.` | Raises an error if the datasource_item is unspecified. Use the `Datasources.get()` method to retrieve that identifies for the data sources on the server. @@ -598,14 +640,14 @@ A refreshed `DatasourceItem`. **Example** -```py +```py # import tableauserverclient as TSC # server = TSC.Server('https://SERVERURL') -# sign in ... - +# sign in ... + # get the data source item to update datasource = server.datasources.get_by_id('1a2a3b4b-5c6c-7d8d-9e0e-1f2f3a4a5b6b') - + # call the refresh method with the data source item refreshed_datasource = server.datasources.refresh(datasource) @@ -625,16 +667,16 @@ REST API: [Update Datasource](https://help.tableau.com/current/api/rest_api/en-u **Parameters** -Name | Description - :--- | : --- +Name | Description + :--- | : --- `datasource_item` | The `datasource_item` specifies the data source to update. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `Datasource item missing ID. Datasource must be retrieved from server first.` | Raises an error if the datasource_item is unspecified. Use the `Datasources.get()` method to retrieve that identifies for the data sources on the server. @@ -645,15 +687,15 @@ An updated `DatasourceItem`. **Example** -```py +```py # import tableauserverclient as TSC # server = TSC.Server('https://SERVERURL') -# sign in ... - +# sign in ... + # get the data source item to update datasource = server.datasources.get_by_id('1a2a3b4b-5c6c-7d8d-9e0e-1f2f3a4a5b6b') - -# do some updating + +# do some updating datasource.owner_id = 'New Owner ID' # call the update method with the data source item @@ -678,10 +720,10 @@ REST API: [Update Datasource Connection](https://help.tableau.com/current/api/re **Parameters** -Name | Description - :--- | : --- -`datasource_item` | The `datasource_item` specifies the data source to update. -`connection_item` | The `connection_item` that has the information you want to update. +Name | Description + :--- | : --- +`datasource_item` | The `datasource_item` specifies the data source to update. +`connection_item` | The `connection_item` that has the information you want to update. **Returns** @@ -693,12 +735,12 @@ An updated `ConnectionItem` for the data source. See the `update_connection.py` sample in the Samples directory. -
    -
    +
    +
    ## Filters -The TSC library provides a `Filter` class that you can use to filter results returned from the server. +The TSC library provides a `Filter` class that you can use to filter results returned from the server. You can use the `Filter` and `RequestOptions` classes to filter and sort the following endpoints: @@ -707,23 +749,23 @@ You can use the `Filter` and `RequestOptions` classes to filter and sort the fol - Workbooks - Views -For more information, see [Filter and Sort](filter-sort). +For more information, see [Filter and Sort](filter-sort). ### Filter class -```py +```py Filter(field, operator, value) ``` -The `Filter` class corresponds to the *filter expressions* in the Tableau REST API. +The `Filter` class corresponds to the *filter expressions* in the Tableau REST API. **Attributes** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `Field` | Defined in the `RequestOptions.Field` class. `Operator` | Defined in the `RequestOptions.Operator` class `Value` | The value to compare with the specified field and operator. @@ -732,8 +774,8 @@ Name | Description -
    -
    +
    +
    --- @@ -743,8 +785,8 @@ Using the TSC library, you can get information about all the groups on a site, y The group resources for Tableau Server are defined in the `GroupItem` class. The class corresponds to the group resources you can access using the Tableau Server REST API. The group methods are based upon the endpoints for groups in the REST API and operate on the `GroupItem` class. -
    -
    +
    +
    ### GroupItem class @@ -758,11 +800,11 @@ Source file: models/group_item.py **Attributes** -Name | Description -:--- | :--- -`domain_name` | The name of the Active Directory domain (`local` if local authentication is used). -`id` | The id of the group. -`users` | The list of users (`UserItem`). +Name | Description +:--- | :--- +`domain_name` | The name of the Active Directory domain (`local` if local authentication is used). +`id` | The id of the group. +`users` | The list of users (`UserItem`). `name` | The name of the group. The `name` is required when you create an instance of a group. @@ -778,8 +820,8 @@ Name | Description -
    -
    +
    +
    ### Groups methods @@ -789,8 +831,8 @@ The Tableau Server Client provides several methods for interacting with group re Source file: server/endpoint/groups_endpoint.py -
    -
    +
    +
    #### groups.add_user @@ -798,24 +840,24 @@ Source file: server/endpoint/groups_endpoint.py groups.add_user(group_item, user_id): ``` -Adds a user to the specified group. +Adds a user to the specified group. REST API [Add User to Group](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#add_user_to_group) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `group_item` | The `group_item` specifies the group to update. -`user_id` | The id of the user. +`user_id` | The id of the user. **Returns** -None. +None. **Example** @@ -836,7 +878,7 @@ None. ``` -
    +

    #### groups.create @@ -845,7 +887,7 @@ None. create(group_item) ``` -Creates a new group in Tableau Server. +Creates a new group in Tableau Server. REST API: [Create Group](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#create_group) @@ -853,15 +895,15 @@ REST API: [Create Group](https://help.tableau.com/current/api/rest_api/en-us/RES **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `group_item` | The `group_item` specifies the group to add. You first create a new instance of a `GroupItem` and pass that to this method. **Returns** -Adds new `GroupItem`. +Adds new `GroupItem`. **Example** @@ -887,8 +929,8 @@ Adds new `GroupItem`. print(group.name, group.id) ``` -
    -
    +
    +
    #### groups.delete @@ -896,22 +938,22 @@ Adds new `GroupItem`. groups.delete(group_id) ``` -Deletes the group on the site. +Deletes the group on the site. REST API: [Delete Group](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#remove_user_from_site) -**Parameters** +**Parameters** -Name | Description -:--- | :--- -`group_id` | The identifier (`id`) for the group that you want to remove from the server. +Name | Description +:--- | :--- +`group_id` | The identifier (`id`) for the group that you want to remove from the server. **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Group ID undefined` | Raises an exception if a valid `group_id` is not provided. @@ -928,7 +970,7 @@ Error | Description server.groups.delete('1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d') ``` -
    +

    #### groups.get @@ -937,24 +979,24 @@ Error | Description groups.get(req_options=None) ``` -Returns information about the groups on the site. +Returns information about the groups on the site. -To get information about the users in a group, you must first populate the `GroupItem` with user information using the [groups.populate_users](api-ref#groupspopulate_users) method. +To get information about the users in a group, you must first populate the `GroupItem` with user information using the [groups.populate_users](api-ref#groupspopulate_users) method. REST API: [Get Users on Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#get_users_on_site) **Parameters** -Name | Description -:--- | :--- -`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific group, you could specify the name of the group or the group id. +Name | Description +:--- | :--- +`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific group, you could specify the name of the group or the group id. **Returns** -Returns a list of `GroupItem` objects and a `PaginationItem` object. Use these values to iterate through the results. +Returns a list of `GroupItem` objects and a `PaginationItem` object. Use these values to iterate through the results. **Example** @@ -976,8 +1018,8 @@ Returns a list of `GroupItem` objects and a `PaginationItem` object. Use these ``` -
    -
    +
    +
    #### groups.populate_users @@ -985,17 +1027,17 @@ Returns a list of `GroupItem` objects and a `PaginationItem` object. Use these groups.populate_users(group_item, req_options=None) ``` -Populates the `group_item` with the list of users. +Populates the `group_item` with the list of users. REST API: [Get Users in Group](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#get_users_in_group) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `group_item` | The `group_item` specifies the group to populate with user information. -`req_options` | (Optional) Additional request options to send to the endpoint. +`req_options` | (Optional) Additional request options to send to the endpoint. @@ -1006,7 +1048,7 @@ Name | Description **Returns** -None. A list of `UserItem` objects are added to the group (`group_item.users`). +None. A list of `UserItem` objects are added to the group (`group_item.users`). **Example** @@ -1015,28 +1057,28 @@ None. A list of `UserItem` objects are added to the group (`group_item.users`). # import tableauserverclient as TSC # server = TSC.Server('https://SERVERURL') -# - ... +# + ... # get the group all_groups, pagination_item = server.groups.get() mygroup = all_groups[1] -# get the user information +# get the user information pagination_item = server.groups.populate_users(mygroup) # print the names of the users for user in mygroup.users : - print(user.name) - + print(user.name) + ``` -
    -
    +
    +
    #### groups.remove_user @@ -1054,23 +1096,23 @@ REST API: [Remove User from Group](https://help.tableau.com/current/api/rest_api **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `group_item` | The `group_item` specifies the group to remove the user from. -`user_id` | The id for the user. +`user_id` | The id for the user. **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Group must be populated with users first.` | Raises an error if the `group_item` is unpopulated. **Returns** -None. The user is removed from the group. +None. The user is removed from the group. **Example** @@ -1092,7 +1134,7 @@ None. The user is removed from the group. ``` -
    +

    --- @@ -1117,16 +1159,16 @@ The `JobItem` class contains information about the specified job running on Tabl Source file: models/job_item.py -**Attributes** +**Attributes** Name | Description -:--- | :--- -`id` | The `id` of the job. -`type` | The type of task. The types correspond to the job type categories listed for the [Query Job](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_job) REST API. +:--- | :--- +`id` | The `id` of the job. +`type` | The type of task. The types correspond to the job type categories listed for the [Query Job](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_job) REST API. `created_at` | The time the job was created. -`started_at` | The time the job started. -`completed_at` | The time the job finished. -`finish_code` | The return code from job. +`started_at` | The time the job started. +`completed_at` | The time the job finished. +`finish_code` | The return code from job. ### Jobs methods @@ -1138,7 +1180,7 @@ The Jobs methods are based upon the endpoints for jobs in the REST API and opera Source files: server/endpoint/jobs_endpoint.py
    -
    +
    #### jobs.get @@ -1149,15 +1191,15 @@ jobs.get(job_id) ``` -Gets information about the specified job. +Gets information about the specified job. REST API: [Query Job](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_job) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `job_id` | The `job_id` specifies the id of the job that is returned from an asynchronous task, such as extract refresh, or an import or update to groups using Active Directory @@ -1165,8 +1207,8 @@ Name | Description **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `404018 Resource Not Found` | Raises an error if the `job_id` is not found. @@ -1187,7 +1229,7 @@ Returns the `JobItem` requested. with server.auth.sign_in(tableau_auth): # get the id of the job from response to extract refresh task, - # or another asynchronous REST API call. + # or another asynchronous REST API call. # in this case, "576b616d-341a-4539-b32c-1ed0eb9db548" @@ -1196,10 +1238,10 @@ Returns the `JobItem` requested. print(jobinfo) - # - + # + + - ``` @@ -1219,44 +1261,44 @@ The project resources for Tableau are defined in the `ProjectItem` class. The cl -
    +
    -### ProjectItem class +### ProjectItem class ```py ProjectItem(name, description=None, content_permissions=None, parent_id=None) ``` -The project resources for Tableau are defined in the `ProjectItem` class. The class corresponds to the project resources you can access using the Tableau Server REST API. +The project resources for Tableau are defined in the `ProjectItem` class. The class corresponds to the project resources you can access using the Tableau Server REST API. -**Attributes** +**Attributes** Name | Description -:--- | :--- +:--- | :--- `content_permissions` | Sets or shows the permissions for the content in the project. The options are either `LockedToProject` or `ManagedByOwner`. `name` | Name of the project. -`description` | The description of the project. +`description` | The description of the project. `id` | The project id. `parent_id` | The id of the parent project. Use this option to create project hierarchies. For information about managing projects, project hierarchies, and permissions, see [Use Projects to Manage Content Access](https://help.tableau.com/current/server/en-us/projects.htm). -Source file: models/project_item.py +Source file: models/project_item.py #### ProjectItem.ContentPermissions The `ProjectItem` class has a sub-class that defines the permissions for the project (`ProjectItem.ContentPermissions`). The options are `LockedToProject` and `ManagedByOwner`. For information on these content permissions, see [Lock Content Permissions to the Project](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#create_project). -Name | Description -:--- | :--- -`ProjectItem.ContentPermissions.LockedToProject` | Locks all content permissions to the project. -`ProjectItem.ContentPermissions.ManagedByOwner` | Users can manage permissions for content that they own. This is the default. +Name | Description +:--- | :--- +`ProjectItem.ContentPermissions.LockedToProject` | Locks all content permissions to the project. +`ProjectItem.ContentPermissions.ManagedByOwner` | Users can manage permissions for content that they own. This is the default. **Example** -```py +```py # import tableauserverclient as TSC # server = TSC.Server('https://MY-SERVER') @@ -1272,7 +1314,7 @@ print(by_owner) # prints 'ManagedByOwner' -# pass the content_permissions to new instance of the project item. +# pass the content_permissions to new instance of the project item. new_project = TSC.ProjectItem(name='My Project', content_permissions=by_owner, description='Project example') ``` @@ -1280,7 +1322,7 @@ new_project = TSC.ProjectItem(name='My Project', content_permissions=by_owner, d

    -### Project methods +### Project methods The project methods are based upon the endpoints for projects in the REST API and operate on the `ProjectItem` class. @@ -1295,12 +1337,12 @@ Source files: server/endpoint/projects_endpoint.py ```py projects.create(project_item) -``` +``` Creates a project on the specified site. -To create a project, you first create a new instance of a `ProjectItem` and pass it to the create method. To specify the site to create the new project, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). +To create a project, you first create a new instance of a `ProjectItem` and pass it to the create method. To specify the site to create the new project, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). REST API: [Create Project](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#create_project) @@ -1308,12 +1350,12 @@ REST API: [Create Project](https://help.tableau.com/current/api/rest_api/en-us/R **Parameters** Name | Description -:--- | :--- -`project_item` | Specifies the properties for the project. The `project_item` is the request package. To create the request package, create a new instance of `ProjectItem`. +:--- | :--- +`project_item` | Specifies the properties for the project. The `project_item` is the request package. To create the request package, create a new instance of `ProjectItem`. **Returns** -Returns the new project item. +Returns the new project item. @@ -1324,51 +1366,51 @@ import tableauserverclient as TSC tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD', site_id='CONTENTURL') server = TSC.Server('https://SERVER') -with server.auth.sign_in(tableau_auth): +with server.auth.sign_in(tableau_auth): # create project item new_project = TSC.ProjectItem(name='Example Project', content_permissions='LockedToProject', description='Project created for testing') - # create the project + # create the project new_project = server.projects.create(new_project) ```
    -
    +
    #### projects.get ```py -projects.get() +projects.get() ``` -Return a list of project items for a site. +Return a list of project items for a site. -To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). +To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). REST API: [Query Projects](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_projects) -**Parameters** +**Parameters** None. -**Returns** +**Returns** Returns a list of all `ProjectItem` objects and a `PaginationItem`. Use these values to iterate through the results. - - **Example** -```py -import tableauserverclient as TSC -tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD', site_id='CONTENTURL') -server = TSC.Server('https://SERVER') + **Example** + +```py +import tableauserverclient as TSC +tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD', site_id='CONTENTURL') +server = TSC.Server('https://SERVER') -with server.auth.sign_in(tableau_auth): +with server.auth.sign_in(tableau_auth): # get all projects on site all_project_items, pagination_item = server.projects.get() print([proj.name for proj in all_project_items]) @@ -1376,7 +1418,7 @@ with server.auth.sign_in(tableau_auth): ```
    -
    +
    #### projects.update @@ -1385,33 +1427,33 @@ with server.auth.sign_in(tableau_auth): projects.update(project_item) ``` -Modify the project settings. +Modify the project settings. -You can use this method to update the project name, the project description, or the project permissions. To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). +You can use this method to update the project name, the project description, or the project permissions. To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). REST API: [Update Project](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#update_project) **Parameters** -Name | Description -:--- | :--- -`project_item` | The project item object must include the project ID. The values in the project item override the current project settings. +Name | Description +:--- | :--- +`project_item` | The project item object must include the project ID. The values in the project item override the current project settings. -**Exceptions** +**Exceptions** -Error | Description - :--- | : --- -`Project item missing ID.` | Raises an exception if the project item does not have an ID. The project ID is sent to the server as part of the URI. +Error | Description + :--- | : --- +`Project item missing ID.` | Raises an exception if the project item does not have an ID. The project ID is sent to the server as part of the URI. **Returns** -Returns the updated project information. +Returns the updated project information. See [ProjectItem class](#projectitem-class) -**Example** +**Example** ```py # import tableauserverclient as TSC @@ -1421,23 +1463,23 @@ See [ProjectItem class](#projectitem-class) ... # get list of projects all_project_items, pagination_item = server.projects.get() - + # update project item #7 with new name, etc. my_project = all_projects[7] my_project.name ='New name' - my_project.description = 'New description' - - # call method to update project + my_project.description = 'New description' + + # call method to update project updated_project = server.projects.update(my_project) - - + + ```
    -
    - +
    + #### projects.delete @@ -1448,7 +1490,7 @@ projects.delete(project_id) Deletes a project by ID. -To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). +To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). REST API: [Delete Project](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#delete_project) @@ -1456,40 +1498,40 @@ REST API: [Delete Project](https://help.tableau.com/current/api/rest_api/en-us/R **Parameters** -Name | Description -:--- | :--- -`project_id` | The ID of the project to delete. +Name | Description +:--- | :--- +`project_id` | The ID of the project to delete. - -**Exceptions** -Error | Description -:--- | :--- -`Project ID undefined.` | Raises an exception if the project item does not have an ID. The project ID is sent to the server as part of the URI. +**Exceptions** +Error | Description +:--- | :--- +`Project ID undefined.` | Raises an exception if the project item does not have an ID. The project ID is sent to the server as part of the URI. + + +**Example** -**Example** - ```py -# import tableauserverclient as TSC -# server = TSC.Server('https://MY-SERVER') -# sign in, etc. +# import tableauserverclient as TSC +# server = TSC.Server('https://MY-SERVER') +# sign in, etc. server.projects.delete('1f2f3e4e-5d6d-7c8c-9b0b-1a2a3f4f5e6e') -``` +```
    -
    +
    --- ## Requests -The TSC library provides a `RequestOptions` class that you can use to filter results returned from the server. +The TSC library provides a `RequestOptions` class that you can use to filter results returned from the server. You can use the `Sort` and `RequestOptions` classes to filter and sort the following endpoints: @@ -1497,21 +1539,21 @@ You can use the `Sort` and `RequestOptions` classes to filter and sort the follo - Datasources - Groups - Workbooks -- Views +- Views + +You can use the `ImageRequestOptions` and `PDFRequestOptions` to set options for views returned as images and PDF files. -You can use the `ImageRequestOptions` and `PDFRequestOptions` to set options for views returned as images and PDF files. +For more information about filtering and sorting, see [Filter and Sort](filter-sort). -For more information about filtering and sorting, see [Filter and Sort](filter-sort). - -
    +
    ### RequestOptions class -```py +```py RequestOptions(pagenumber=1, pagesize=100) ``` @@ -1520,12 +1562,12 @@ RequestOptions(pagenumber=1, pagesize=100) **Attributes** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `pagenumber` | The page number of the returned results. The default value is 1. `pagesize` | The number of items to return with each page (the default value is 100). -`sort()` | Returns a iterable set of `Sort` objects. -`filter()` | Returns an iterable set of `Filter` objects. +`sort()` | Returns a iterable set of `Sort` objects. +`filter()` | Returns an iterable set of `Filter` objects.

    @@ -1536,12 +1578,12 @@ Name | Description The `RequestOptions.Field` class corresponds to the fields used in filter expressions in the Tableau REST API. For more information, see [Filtering and Sorting](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_filtering_and_sorting.htm) in the Tableau REST API. -**Attributes** +**Attributes** -**Attributes** +**Attributes** Field | Description -:--- | :--- +:--- | :--- `CreatedAt` | Same as 'createdAt' in the REST API. TSC. `RequestOptions.Field.CreatedAt` `LastLogin` | Same as 'lastLogin' in the REST API. `RequestOptions.Field.LastLogin` `Name` | Same as 'name' in the REST API. `RequestOptions.Field.Name` @@ -1561,10 +1603,10 @@ Field | Description Specifies the operators you can use to filter requests. -**Attributes** +**Attributes** Operator | Description -:--- | :--- +:--- | :--- `Equals` | Sets the operator to equals (same as `eq` in the REST API). `TSC.RequestOptions.Operator.Equals` `GreaterThan` | Sets the operator to greater than (same as `gt` in the REST API). `TSC.RequestOptions.Operator.GreaterThan` `GreaterThanOrEqual` | Sets the operator to greater than or equal (same as `gte` in the REST API). `TSC.RequestOptions.Operator.GreaterThanOrEqual` @@ -1573,7 +1615,7 @@ Operator | Description `In` | Sets the operator to in (same as `in` in the REST API). `TSC.RequestOptions.Operator.In`
    -
    +
    @@ -1582,12 +1624,12 @@ Operator | Description Specifies the direction to sort the returned fields. -**Attributes** +**Attributes** Name | Description -:--- | :--- +:--- | :--- `Asc` | Sets the sort direction to ascending (`TSC.RequestOptions.Direction.Asc`) -`Desc` | Sets the sort direction to descending (`TSC.RequestOptions.Direction.Desc`). +`Desc` | Sets the sort direction to descending (`TSC.RequestOptions.Direction.Desc`).

    @@ -1601,8 +1643,8 @@ Use this class to specify view filters to be applied when the CSV data is genera **Attributes** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `maxage` | Optional. The maximum number of minutes the CSV data will be cached on the server before being refreshed. The value must be an integer between `1` and `240` minutes. `0` will be interpreted as 1 minute on server, as that is the shortest interval allowed. By default, `maxage` is set to `-1`, indicating the default behavior configured in server settings. **Example** @@ -1623,15 +1665,15 @@ server.views.populate_csv(view_item, csv_req_option) ### ImageRequestOptions class -```py +```py ImageRequestOptions(imageresolution=None, maxage=-1) ``` Use this class to specify the resolution of the view and, optionally, the maximum age of the image cached on the server. You can also use this class to specify view filters to be applied when the image is generated. See `views.populate_image`. **Attributes** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `imageresolution` | The resolution of the view returned as an image. You set this option with the `Resolution` class. If unspecified, the `views.populate_image` method returns an image with standard resolution (the width of the returned image is 784 pixels). If you set this parameter value to high (`Resolution.High`), the width of the returned image is 1568 pixels. For both resolutions, the height varies to preserve the aspect ratio of the view. `maxage` | Optional. The maximum number of minutes the image will be cached on the server before being refreshed. The value must be an integer between `1` and `240` minutes. `0` will be interpreted as 1 minute on server, as that is the shortest interval allowed. By default, `maxage` is set to `-1`, indicating the default behavior configured in server settings. @@ -1642,11 +1684,11 @@ You can use the `vf('filter_name', 'filter_value')` method to add view filters. **Example** ```py -# import tableauserverclient as TSC -# server = TSC.Server('https://MY-SERVER') -# sign in, get a specific view, etc. +# import tableauserverclient as TSC +# server = TSC.Server('https://MY-SERVER') +# sign in, get a specific view, etc. -# set the image request option +# set the image request option image_req_option = TSC.ImageRequestOptions(imageresolution=TSC.ImageRequestOptions.Resolution.High, maxage=1) # (optional) set a view filter @@ -1659,15 +1701,15 @@ server.views.populate_image(view_item, image_req_option) ### PDFRequestOptions class -```py +```py PDFRequestOptions(page_type=None, orientation=None, maxage=-1) ``` -Use this class to specify the format of the PDF that is returned for the view. Optionally, you can specify the maximum age of the rendered PDF that is cached on the server by providing a `maxage` value. See `views.populate_pdf`. +Use this class to specify the format of the PDF that is returned for the view. Optionally, you can specify the maximum age of the rendered PDF that is cached on the server by providing a `maxage` value. See `views.populate_pdf`. **Attributes** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `page_type` | The type of page returned in PDF format for the view. The page_type is set using the `PageType` class:
    `PageType.A3`
    `PageType.A4`
    `PageType.A5`
    `PageType.B5`
    `PageType.Executive`
    `PageType.Folio`
    `PageType.Ledger`
    `PageType.Legal`
    `PageType.Letter`
    `PageType.Note`
    `PageType.Quarto`
    `PageType.Tabloid` `orientation` | The orientation of the page. The options are portrait and landscape. The options are set using the `Orientation` class:
    `Orientation.Portrait`
    `Orientation.Landscape` `maxage` | Optional. The maximum number of minutes the rendered PDF will be cached on the server before being refreshed. The value must be an integer between `1` and `240` minutes. `0` will be interpreted as 1 minute on server, as that is the shortest interval allowed. By default, `maxage` is set to `-1`, indicating the default behavior configured in server settings. @@ -1678,9 +1720,9 @@ You can use the `vf('filter_name', 'filter_value')` method to add view filters. **Example** ```py -# import tableauserverclient as TSC -# server = TSC.Server('https://MY-SERVER') -# sign in, get a specific view, etc. +# import tableauserverclient as TSC +# server = TSC.Server('https://MY-SERVER') +# sign in, get a specific view, etc. # set the PDF request options pdf_req_option = TSC.PDFRequestOptions(page_type=TSC.PDFRequestOptions.PageType.A4, @@ -1697,13 +1739,13 @@ server.views.populate_pdf(view_item, pdf_req_option)
    -
    +
    --- -## Schedules +## Schedules -Using the TSC library, you can schedule extract refresh or subscription tasks on Tableau Server. You can also get and update information about the scheduled tasks, or delete scheduled tasks. +Using the TSC library, you can schedule extract refresh or subscription tasks on Tableau Server. You can also get and update information about the scheduled tasks, or delete scheduled tasks. If you have the identifer of the job, you can use the TSC library to find out the status of the asynchronous job. @@ -1721,33 +1763,33 @@ The `ScheduleItem` class contains information about the specified schedule runni Source file: models/schedule_item.py -**Attributes** +**Attributes** Name | Description -:--- | :--- -`name` | The `name` of the schedule. -`id` | The identifier for the schedule. Use the `schedules.get()` method to get the identifiers of the schedules on the server. -`schedule_type` | The type of task. The types are either an `Extract` for an extract refresh task or a `Subscription` for a scheduled subscription. -`execution_order` | Specifies how the scheduled task should run. The choices are `Parallel`which uses all available background processes for this scheduled task, or `Serial`, which limits this schedule to one background process. -`interval_item` | Specifies the frequency that the scheduled task should run. The `interval_item` is an instance of the `IntervalItem` class. The `interval_item` has properties for frequency (hourly, daily, weekly, monthly), and what time and date the scheduled item runs. You set this value by declaring an `IntervalItem` object that is one of the following: `HourlyInterval`, `DailyInterval`, `WeeklyInterval`, or `MonthlyInterval`. - +:--- | :--- +`name` | The `name` of the schedule. +`id` | The identifier for the schedule. Use the `schedules.get()` method to get the identifiers of the schedules on the server. +`schedule_type` | The type of task. The types are either an `Extract` for an extract refresh task or a `Subscription` for a scheduled subscription. +`execution_order` | Specifies how the scheduled task should run. The choices are `Parallel`which uses all available background processes for this scheduled task, or `Serial`, which limits this schedule to one background process. +`interval_item` | Specifies the frequency that the scheduled task should run. The `interval_item` is an instance of the `IntervalItem` class. The `interval_item` has properties for frequency (hourly, daily, weekly, monthly), and what time and date the scheduled item runs. You set this value by declaring an `IntervalItem` object that is one of the following: `HourlyInterval`, `DailyInterval`, `WeeklyInterval`, or `MonthlyInterval`. + #### IntervalItem class -This class sets the frequency and start time of the scheduled item. This class contains the classes for the hourly, daily, weekly, and monthly intervals. This class mirrors the options you can set using the REST API and the Tableau Server interface. +This class sets the frequency and start time of the scheduled item. This class contains the classes for the hourly, daily, weekly, and monthly intervals. This class mirrors the options you can set using the REST API and the Tableau Server interface. -**Attributes** +**Attributes** Name | Description -:--- | :--- +:--- | :--- `HourlyInterval` | Runs scheduled item hourly. To set the hourly interval, you create an instance of the `HourlyInterval` class and assign the following values: `start_time`, `end_time`, and `interval_value`. To set the `start_time` and `end_time`, assign the time value using this syntax: `start_time=time(`*hour*`,` *minute*`)` and `end_time=time(`*hour*`,` *minute*`)`. The *hour* is specified in 24 hour time. The `interval_value` specifies how often the to run the task within the start and end time. The options are expressed in hours. For example, `interval_value=.25` is every 15 minutes. The values are `.25`, `.5`, `1`, `2`, `4`, `6`, `8`, `12`. Hourly schedules that run more frequently than every 60 minutes must have start and end times that are on the hour. -`DailyInterval` | Runs the scheduled item daily. To set the daily interval, you create an instance of the `DailyInterval` and assign the `start_time`. The start time uses the syntax `start_time=time(`*hour*`,` *minute*`)`. -`WeeklyInterval` | Runs the scheduled item once a week. To set the weekly interval, you create an instance of the `WeeklyInterval` and assign the start time and multiple instances for the `interval_value` (days of week and start time). The start time uses the syntax `time(`*hour*`,` *minute*`)`. The `interval_value` is the day of the week, expressed as a `IntervalItem`. For example `TSC.IntervalItem.Day.Monday` for Monday. -`MonthlyInterval` | Runs the scheduled item once a month. To set the monthly interval, you create an instance of the `MonthlyInterval` and assign the start time and day. The +`DailyInterval` | Runs the scheduled item daily. To set the daily interval, you create an instance of the `DailyInterval` and assign the `start_time`. The start time uses the syntax `start_time=time(`*hour*`,` *minute*`)`. +`WeeklyInterval` | Runs the scheduled item once a week. To set the weekly interval, you create an instance of the `WeeklyInterval` and assign the start time and multiple instances for the `interval_value` (days of week and start time). The start time uses the syntax `time(`*hour*`,` *minute*`)`. The `interval_value` is the day of the week, expressed as a `IntervalItem`. For example `TSC.IntervalItem.Day.Monday` for Monday. +`MonthlyInterval` | Runs the scheduled item once a month. To set the monthly interval, you create an instance of the `MonthlyInterval` and assign the start time and day. The -### Schedule methods +### Schedule methods The schedule methods are based upon the endpoints for schedules in the REST API and operate on the `ScheduleItem` class. @@ -1759,136 +1801,136 @@ Source files: server/endpoint/schedules_endpoint.py ```py schedule.create(schedule_item) ``` -Creates a new schedule for an extract refresh or a subscription. +Creates a new schedule for an extract refresh or a subscription. REST API: [Create Schedule](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#create_schedule) -**Parameters** - -Name | Description -:--- | :--- -`schedule_item` | The settings for the schedule that you want to create. You need to create an instance of `schedule_item` and pass it to the `create` method. The `schedule_item` includes the `interval_item` which specifies the frequency, or interval, that the schedule should run. See `ScheduleItem` and `IntervalItem`. +**Parameters** + +Name | Description +:--- | :--- +`schedule_item` | The settings for the schedule that you want to create. You need to create an instance of `schedule_item` and pass it to the `create` method. The `schedule_item` includes the `interval_item` which specifies the frequency, or interval, that the schedule should run. See `ScheduleItem` and `IntervalItem`. -**Returns** +**Returns** Returns a new instance of `schedule_item`. **Exceptions** -Error | Description -:--- | :--- -`Interval item must be defined.` | Raises an exception if the `schedule_item.interval_item` is not specified. The interval item specifies whether the interval is hourly, daily, weekly, or monthly. +Error | Description +:--- | :--- +`Interval item must be defined.` | Raises an exception if the `schedule_item.interval_item` is not specified. The interval item specifies whether the interval is hourly, daily, weekly, or monthly. **Example** ```py import tableauserverclient as TSC -# sign in, etc. +# sign in, etc. # Create an interval to run every 2 hours between 2:30AM and 11:00PM hourly_interval = TSC.HourlyInterval(start_time=time(2, 30), end_time=time(23, 0), interval_value=2) # Create schedule item hourly_schedule = TSC.ScheduleItem("Hourly-Schedule", 50, TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Parallel, hourly_interval) - # Create schedule - hourly_schedule = server.schedules.create(hourly_schedule) + # Create schedule + hourly_schedule = server.schedules.create(hourly_schedule) ```
    -
    +
    #### schedule.delete ```py schedule.delete(schedule_id) -``` +``` -Deletes an existing schedule for an extract refresh or a subscription. +Deletes an existing schedule for an extract refresh or a subscription. REST API: [Delete Schedule](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#delete_schedule) -**Parameters** - -Name | Description -:--- | :--- -`schedule_id` | The identifier (`schedule_item.id`) of the schedule to delete. Use the `schedule.get()` method to get the identifiers of the schedules on the server. +**Parameters** + +Name | Description +:--- | :--- +`schedule_id` | The identifier (`schedule_item.id`) of the schedule to delete. Use the `schedule.get()` method to get the identifiers of the schedules on the server. -**Returns** +**Returns** None. **Exceptions** -Error | Description -:--- | :--- -`Schedule ID undefined` | The identifier is not a valid identifier for a schedule on the server. +Error | Description +:--- | :--- +`Schedule ID undefined` | The identifier is not a valid identifier for a schedule on the server. #### schedule.get ```py schedule.get([req_options=None]) -``` +``` -Returns all schedule items from the server. +Returns all schedule items from the server. REST API: [Query Schedules](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_schedules) -**Parameters** - -Name | Description -:--- | :--- +**Parameters** + +Name | Description +:--- | :--- `req_options` | (Optional) Additional request options to send to the endpoint. #### schedule.update
    -
    +
    **Hourly schedule example** ```py import tableauserverclient as TSC -# sign in, etc. +# sign in, etc. # Create an interval to run every 2 hours between 2:30AM and 11:00PM hourly_interval = TSC.HourlyInterval(start_time=time(2, 30), end_time=time(23, 0), interval_value=2) # Create schedule item hourly_schedule = TSC.ScheduleItem("Hourly-Schedule", 50, TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Parallel, hourly_interval) - # Create schedule - hourly_schedule = server.schedules.create(hourly_schedule) + # Create schedule + hourly_schedule = server.schedules.create(hourly_schedule) ``` **Daily schedule example** ```py import tableauserverclient as TSC -# sign in, etc. +# sign in, etc. # Create a daily interval to run every day at 12:30AM Daily_interval = TSC.DailyInterval(start_time=time(0, 30)) # Create schedule item using daily interval daily_schedule = TSC.ScheduleItem("Daily-Schedule", 60, TSC.ScheduleItem.Type.Subscription, TSC.ScheduleItem.ExecutionOrder.Serial, daily_interval) - # Create daily schedule + # Create daily schedule daily_schedule = server.schedules.create(daily_schedule) - + ``` **Weekly schedule example** ```py import tableauserverclient as TSC -# sign in, etc. +# sign in, etc. # Create a weekly interval to run every Monday, Wednesday, and Friday at 7:15PM weekly_interval = TSC.WeeklyInterval(time(19, 15), TSC.IntervalItem.Day.Monday, @@ -1896,9 +1938,9 @@ import tableauserverclient as TSC TSC.IntervalItem.Day.Friday) # Create schedule item using weekly interval weekly_schedule = TSC.ScheduleItem("Weekly-Schedule", 70, - TSC.ScheduleItem.Type.Extract, + TSC.ScheduleItem.Type.Extract, TSC.ScheduleItem.ExecutionOrder.Serial, weekly_interval) - # Create weekly schedule + # Create weekly schedule weekly_schedule = server.schedules.create(weekly_schedule) ``` @@ -1906,7 +1948,7 @@ import tableauserverclient as TSC **Monthly schedule example** ```py import tableauserverclient as TSC -# sign in, etc. +# sign in, etc. # Create a monthly interval to run on the 15th of every month at 11:30PM monthly_interval = TSC.MonthlyInterval(start_time=time(23, 30), interval_value=15) @@ -1921,19 +1963,19 @@ import tableauserverclient as TSC
    -
    +
    --- ## Server -In the Tableau REST API, the server (`https://MY-SERVER/`) is the base or core of the URI that makes up the various endpoints or methods for accessing resources on the server (views, workbooks, sites, users, data sources, etc.) -The TSC library provides a `Server` class that represents the server. You create a server instance to sign in to the server and to call the various methods for accessing resources. +In the Tableau REST API, the server (`https://MY-SERVER/`) is the base or core of the URI that makes up the various endpoints or methods for accessing resources on the server (views, workbooks, sites, users, data sources, etc.) +The TSC library provides a `Server` class that represents the server. You create a server instance to sign in to the server and to call the various methods for accessing resources.
    -
    +
    ### Server class @@ -1941,13 +1983,13 @@ The TSC library provides a `Server` class that represents the server. You create ```py Server(server_address) ``` -The `Server` class contains the attributes that represent the server on Tableau Server. After you create an instance of the `Server` class, you can sign in to the server and call methods to access all of the resources on the server. +The `Server` class contains the attributes that represent the server on Tableau Server. After you create an instance of the `Server` class, you can sign in to the server and call methods to access all of the resources on the server. **Attributes** Attribute | Description :--- | :--- -`server_address` | Specifies the address of the Tableau Server or Tableau Online (for example, `https://MY-SERVER/`). +`server_address` | Specifies the address of the Tableau Server or Tableau Online (for example, `https://MY-SERVER/`). `version` | Specifies the version of the REST API to use (for example, `'2.5'`). When you use the TSC library to call methods that access Tableau Server, the `version` is passed to the endpoint as part of the URI (`https://MY-SERVER/api/2.5/`). Each release of Tableau Server supports specific versions of the REST API. New versions of the REST API are released with Tableau Server. By default, the value of `version` is set to `'2.3'`, which corresponds to Tableau Server 10.0. You can view or set this value. You might need to set this to a different value, for example, if you want to access features that are supported by the server and a later version of the REST API. For more information, see [REST API Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm). @@ -1958,7 +2000,7 @@ Attribute | Description import tableauserverclient as TSC -# create a instance of server +# create a instance of server server = TSC.Server('https://MY-SERVER') # sign in, etc. @@ -1966,48 +2008,48 @@ server = TSC.Server('https://MY-SERVER') # change the REST API version to match the server server.use_server_version() -# or change the REST API version to match a specific version +# or change the REST API version to match a specific version # for example, 2.8 -# server.version = '2.8' +# server.version = '2.8' ``` -#### Server.*Resources* +#### Server.*Resources* -When you create an instance of the `Server` class, you have access to the resources on the server after you sign in. You can select these resources and their methods as members of the class, for example: `server.views.get()` +When you create an instance of the `Server` class, you have access to the resources on the server after you sign in. You can select these resources and their methods as members of the class, for example: `server.views.get()` -Resource | Description - :--- | : --- +Resource | Description + :--- | : --- *server*.auth | Sets authentication for sign in and sign out. See [Auth](#authentication) | -*server*.views | Access the server views and methods. See [Views](#views) -*server*.users | Access the user resources and methods. See [Users](#users) -*server*.sites | Access the sites. See [Sites](#sites) -*server*.groups | Access the groups resources and methods. See [Groups](#groups) -*server*.jobs | Access the jobs resources and methods. See [Jobs](#jobs) +*server*.views | Access the server views and methods. See [Views](#views) +*server*.users | Access the user resources and methods. See [Users](#users) +*server*.sites | Access the sites. See [Sites](#sites) +*server*.groups | Access the groups resources and methods. See [Groups](#groups) +*server*.jobs | Access the jobs resources and methods. See [Jobs](#jobs) *server*.workbooks | Access the resources and methods for workbooks. See [Workbooks](#workbooks) *server*.datasources | Access the resources and methods for data sources. See [Data Sources](#data-sources) *server*.projects | Access the resources and methods for projects. See [Projects](#projects) *server*.schedules | Access the resources and methods for schedules. See [Schedules](#schedules) *server*.subscriptions | Access the resources and methods for subscriptions. See [Subscriptions](#subscriptions) -*server*.server_info | Access the resources and methods for server information. See [ServerInfo class](#serverinfoitem-class) +*server*.server_info | Access the resources and methods for server information. See [ServerInfo class](#serverinfoitem-class)

    #### Server.PublishMode -The `Server` class has `PublishMode` class that enumerates the options that specify what happens when you publish a workbook or data source. The options are `Overwrite`, `Append`, or `CreateNew`. +The `Server` class has `PublishMode` class that enumerates the options that specify what happens when you publish a workbook or data source. The options are `Overwrite`, `Append`, or `CreateNew`. -**Properties** +**Properties** -Resource | Description - :--- | : --- -`PublishMode.Overwrite` | Overwrites the workbook or data source. +Resource | Description + :--- | : --- +`PublishMode.Overwrite` | Overwrites the workbook or data source. `PublishMode.Append` | Appends to the workbook or data source. -`PublishMode.CreateNew` | Creates a new workbook or data source. +`PublishMode.CreateNew` | Creates a new workbook or data source. **Example** @@ -2018,7 +2060,7 @@ Resource | Description print(TSC.Server.PublishMode.Overwrite) # prints 'Overwrite' - + overwrite_true = TSC.Server.PublishMode.Overwrite ... @@ -2039,15 +2081,15 @@ Resource | Description ```py ServerInfoItem(product_version, build_number, rest_api_version) ``` -The `ServerInfoItem` class contains the build and version information for Tableau Server. The server information is accessed with the `server_info.get()` method, which returns an instance of the `ServerInfo` class. +The `ServerInfoItem` class contains the build and version information for Tableau Server. The server information is accessed with the `server_info.get()` method, which returns an instance of the `ServerInfo` class. -**Attributes** +**Attributes** -Name | Description -:--- | :--- -`product_version` | Shows the version of the Tableau Server or Tableau Online (for example, 10.2.0). +Name | Description +:--- | :--- +`product_version` | Shows the version of the Tableau Server or Tableau Online (for example, 10.2.0). `build_number` | Shows the specific build number (for example, 10200.17.0329.1446). -`rest_api_version` | Shows the supported REST API version number. Note that this might be different from the default value specified for the server, with the `Server.version` attribute. To take advantage of new features, you should query the server and set the `Server.version` to match the supported REST API version number. +`rest_api_version` | Shows the supported REST API version number. Note that this might be different from the default value specified for the server, with the `Server.version` attribute. To take advantage of new features, you should query the server and set the `Server.version` to match the supported REST API version number.
    @@ -2056,40 +2098,40 @@ Name | Description ### ServerInfo methods -The TSC library provides a method to access the build and version information from Tableau Server. +The TSC library provides a method to access the build and version information from Tableau Server. -
    +
    #### server_info.get ```py server_info.get() - + ``` -Retrieve the build and version information for the server. +Retrieve the build and version information for the server. -This method makes an unauthenticated call, so no sign in or authentication token is required. +This method makes an unauthenticated call, so no sign in or authentication token is required. REST API: [Server Info](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#server_info) - -**Parameters** - None - + +**Parameters** + None + **Exceptions** -Error | Description -:--- | :--- -`404003 UNKNOWN_RESOURCE` | Raises an exception if the server info endpoint is not found. +Error | Description +:--- | :--- +`404003 UNKNOWN_RESOURCE` | Raises an exception if the server info endpoint is not found. **Example** ```py import tableauserverclient as TSC -# create a instance of server +# create a instance of server server = TSC.Server('https://MY-SERVER') -# set the version number > 2.3 +# set the version number > 2.3 # the server_info.get() method works in 2.4 and later server.version = '2.5' @@ -2099,13 +2141,13 @@ print("\tProduct version: {0}".format(s_info.product_version)) print("\tREST API version: {0}".format(s_info.rest_api_version)) print("\tBuild number: {0}".format(s_info.build_number)) -``` +```

    ---- +--- ## Sites @@ -2113,8 +2155,8 @@ Using the TSC library, you can query a site or sites on a server, or create or d The site resources for Tableau Server and Tableau Online are defined in the `SiteItem` class. The class corresponds to the site resources you can access using the Tableau Server REST API. The site methods are based upon the endpoints for sites in the REST API and operate on the `SiteItem` class. -
    -
    +
    +
    ### SiteItem class @@ -2129,16 +2171,16 @@ The `SiteItem` class contains the members or attributes for the site resources o Attribute | Description :--- | :--- -`name` | The name of the site. The name of the default site is "". -`content_url` | The path to the site. +`name` | The name of the site. The name of the default site is "". +`content_url` | The path to the site. `admin_mode` | (Optional) For Tableau Server only. Specify `ContentAndUsers` to allow site administrators to use the server interface and **tabcmd** commands to add and remove users. (Specifying this option does not give site administrators permissions to manage users using the REST API.) Specify `ContentOnly` to prevent site administrators from adding or removing users. (Server administrators can always add or remove users.) `user_quota`| (Optional) Specifies the maximum number of users for the site. If you do not specify this value, the limit depends on the type of licensing configured for the server. For user-based license, the maximum number of users is set by the license. For core-based licensing, there is no limit to the number of users. If you specify a maximum value, only licensed users are counted and server administrators are excluded. `storage_quota` | (Optional) Specifies the maximum amount of space for the new site, in megabytes. If you set a quota and the site exceeds it, publishers will be prevented from uploading new content until the site is under the limit again. -`disable_subscriptions` | (Optional) Specify `true` to prevent users from being able to subscribe to workbooks on the specified site. The default is `false`. -`subscribe_others_enabled` | (Optional) Specify `false` to prevent server administrators, site administrators, and project or content owners from being able to subscribe other users to workbooks on the specified site. The default is `true`. -`revision_history_enabled` | (Optional) Specify `true` to enable revision history for content resources (workbooks and datasources). The default is `false`. -`revision_limit` | (Optional) Specifies the number of revisions of a content source (workbook or data source) to allow. On Tableau Server, the default is 25. -`state` | Shows the current state of the site (`Active` or `Suspended`). +`disable_subscriptions` | (Optional) Specify `true` to prevent users from being able to subscribe to workbooks on the specified site. The default is `false`. +`subscribe_others_enabled` | (Optional) Specify `false` to prevent server administrators, site administrators, and project or content owners from being able to subscribe other users to workbooks on the specified site. The default is `true`. +`revision_history_enabled` | (Optional) Specify `true` to enable revision history for content resources (workbooks and datasources). The default is `false`. +`revision_limit` | (Optional) Specifies the number of revisions of a content source (workbook or data source) to allow. On Tableau Server, the default is 25. +`state` | Shows the current state of the site (`Active` or `Suspended`). **Example** @@ -2151,21 +2193,21 @@ new_site = TSC.SiteItem(name='Tableau', content_url='tableau', admin_mode='Conte ``` -Source file: models/site_item.py +Source file: models/site_item.py
    -
    +
    ### Site methods -The TSC library provides methods that operate on sites for Tableau Server and Tableau Online. These methods correspond to endpoints or methods for sites in the Tableau REST API. +The TSC library provides methods that operate on sites for Tableau Server and Tableau Online. These methods correspond to endpoints or methods for sites in the Tableau REST API. -Source file: server/endpoint/sites_endpoint.py +Source file: server/endpoint/sites_endpoint.py
    -
    +
    #### sites.create @@ -2173,23 +2215,23 @@ Source file: server/endpoint/sites_endpoint.py sites.create(site_item) ``` -Creates a new site on the server for the specified site item object. +Creates a new site on the server for the specified site item object. -Tableau Server only. +Tableau Server only. REST API: [Create Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#create_site) -**Parameters** - -Name | Description -:--- | :--- +**Parameters** + +Name | Description +:--- | :--- `site_item` | The settings for the site that you want to create. You need to create an instance of `SiteItem` and pass it to the `create` method. -**Returns** +**Returns** Returns a new instance of `SiteItem`. @@ -2199,7 +2241,7 @@ Returns a new instance of `SiteItem`. ```py import tableauserverclient as TSC -# create an instance of server +# create an instance of server server = TSC.Server('https://MY-SERVER') # create shortcut for admin mode @@ -2212,7 +2254,7 @@ new_site = TSC.SiteItem(name='Tableau', content_url='tableau', admin_mode=conten new_site = server.sites.create(new_site) ```
    -
    +
    #### sites.get @@ -2220,7 +2262,7 @@ new_site = server.sites.create(new_site) sites.get() ``` -Queries all the sites on the server. +Queries all the sites on the server. REST API: [Query Sites](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_sites) @@ -2230,9 +2272,9 @@ REST API: [Query Sites](https://help.tableau.com/current/api/rest_api/en-us/REST None. -**Returns** - -Returns a list of all `SiteItem` objects and a `PaginationItem`. Use these values to iterate through the results. +**Returns** + +Returns a list of all `SiteItem` objects and a `PaginationItem`. Use these values to iterate through the results. **Example** @@ -2268,26 +2310,26 @@ Queries the site with the given ID. REST API: [Query Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_site) -**Parameters** +**Parameters** -Name | Description -:--- | :--- -`site_id` | The id for the site you want to query. +Name | Description +:--- | :--- +`site_id` | The id for the site you want to query. -**Exceptions** +**Exceptions** -Error | Description - :--- | : --- -`Site ID undefined.` | Raises an error if an id is not specified. +Error | Description + :--- | : --- +`Site ID undefined.` | Raises an error if an id is not specified. -**Returns** +**Returns** + +Returns the `SiteItem`. -Returns the `SiteItem`. - -**Example** +**Example** ```py @@ -2296,7 +2338,7 @@ Returns the `SiteItem`. # sign in, etc. a_site = server.sites.get_by_id('9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d') - print("\nThe site with id '9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d' is: {0}".format(a_site.name)) + print("\nThe site with id '9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d' is: {0}".format(a_site.name)) ``` @@ -2314,26 +2356,26 @@ Queries the site with the specified name. REST API: [Query Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_site) -**Parameters** +**Parameters** + +Name | Description +:--- | :--- +`site_name` | The name of the site you want to query. -Name | Description -:--- | :--- -`site_name` | The name of the site you want to query. +**Exceptions** -**Exceptions** +Error | Description + :--- | : --- +`Site Name undefined.` | Raises an error if an name is not specified. -Error | Description - :--- | : --- -`Site Name undefined.` | Raises an error if an name is not specified. +**Returns** -**Returns** +Returns the `SiteItem`. -Returns the `SiteItem`. - -**Example** +**Example** ```py @@ -2357,7 +2399,7 @@ Returns the `SiteItem`. sites.update(site_item) ``` -Modifies the settings for site. +Modifies the settings for site. The site item object must include the site ID and overrides all other settings. @@ -2366,27 +2408,27 @@ The site item object must include the site ID and overrides all other settings. REST API: [Update Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#update_site) -**Parameters** +**Parameters** -Name | Description -:--- | :--- -`site_item` | The site item that you want to update. The settings specified in the site item override the current site settings. +Name | Description +:--- | :--- +`site_item` | The site item that you want to update. The settings specified in the site item override the current site settings. **Exceptions** Error | Description -:--- | :--- -`Site item missing ID.` | The site id must be present and must match the id of the site you are updating. +:--- | :--- +`Site item missing ID.` | The site id must be present and must match the id of the site you are updating. `You cannot set admin_mode to ContentOnly and also set a user quota` | To set the `user_quota`, the `AdminMode` must be set to `ContentAndUsers` -**Returns** +**Returns** -Returns the updated `site_item`. +Returns the updated `site_item`. -**Example** +**Example** ```py ... @@ -2420,22 +2462,22 @@ REST API: [Delete Site](https://help.tableau.com/current/api/rest_api/en-us/REST **Parameters** - -Name | Description - :--- | : --- -`site_id` | The id of the site that you want to delete. - +Name | Description + :--- | : --- +`site_id` | The id of the site that you want to delete. + + **Exceptions** -Error | Description -:--- | :--- -`Site ID Undefined.` | The site id must be present and must match the id of the site you are deleting. +Error | Description +:--- | :--- +`Site ID Undefined.` | The site id must be present and must match the id of the site you are deleting. - -**Example** + +**Example** ```py @@ -2450,38 +2492,38 @@ server.sites.delete('9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d')

    ---- +--- ## Sort -The `Sort` class is used with request options (`RequestOptions`) where you can filter and sort on the results returned from the server. +The `Sort` class is used with request options (`RequestOptions`) where you can filter and sort on the results returned from the server. You can use the sort and request options to filter and sort the following endpoints: - Users - Datasources - Workbooks -- Views +- Views ### Sort class ```py sort(field, direction) -``` +``` -**Attributes** +**Attributes** Name | Description -:--- | :--- -`field` | Sets the field to sort on. The fields are defined in the `RequestOption` class. +:--- | :--- +`field` | Sets the field to sort on. The fields are defined in the `RequestOption` class. `direction` | The direction to sort, either ascending (`Asc`) or descending (`Desc`). The options are defined in the `RequestOptions.Direction` class. -**Example** +**Example** -```py +```py # create a new instance of a request option object req_option = TSC.RequestOptions() @@ -2495,10 +2537,10 @@ for wb in matching_workbooks: print(wb.name) ``` -For information about using the `Sort` class, see [Filter and Sort](filter-sort). +For information about using the `Sort` class, see [Filter and Sort](filter-sort).
    -
    +
    --- @@ -2517,11 +2559,11 @@ SubscriptionItem(subject, schedule_id, user_id, target) **Attributes** -Name | Description -:--- | :--- -`id` | The id of the subscription on the site. -`subject`| The subject of the subscription. This is the description that you provide to identify the subscription. -`schedule_id` | The identifier associated with the specific subscription. +Name | Description +:--- | :--- +`id` | The id of the subscription on the site. +`subject`| The subject of the subscription. This is the description that you provide to identify the subscription. +`schedule_id` | The identifier associated with the specific subscription. `user_id` | The identifier of the user (person) who receives the subscription. `target` | The target of the subscription, that is, the content that is subscribed to (view, workbook). The target is an instance of the `target` class. The `target` has two properties, the `id` of the workbook or view (`target.id`), and the `type` (`target.type`), which can either `view` or `workbook`. @@ -2557,14 +2599,14 @@ REST API: [Create Subscription](https://help.tableau.com/current/api/rest_api/en **Parameters** -Name | Description - :--- | : --- -`subscription_item` | Specifies the user to subscribe, the content to subscribe to, the schedule to associate the subscription with, and the subject, or description for the subscription. +Name | Description + :--- | : --- +`subscription_item` | Specifies the user to subscribe, the content to subscribe to, the schedule to associate the subscription with, and the subject, or description for the subscription. **Returns** -Returns the new `SubscriptionItem` object. +Returns the new `SubscriptionItem` object. @@ -2578,7 +2620,7 @@ Returns the new `SubscriptionItem` object. # login, etc. -# create the target (content) of the subscription +# create the target (content) of the subscription # in this case, id of the workbook and the target type "workbook" target = TSC.Target('c7a9327e-1cda-4504-b026-ddb43b976d1d', 'workbook') @@ -2594,7 +2636,7 @@ Returns the new `SubscriptionItem` object. newSub = server.subscriptions.create(newSub) print(newSub.subject) -``` +```
    @@ -2605,27 +2647,27 @@ Returns the new `SubscriptionItem` object. #### subscriptions.delete ```py -subscriptions.delete(subscription_id) +subscriptions.delete(subscription_id) ``` -Deletes the specified subscription from the site. +Deletes the specified subscription from the site. REST API: [Delete Subscription](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#delete_subscription) **Parameters** -Name | Description - :--- | : --- -`subscription_id` | The identifier (`id`) for the subscription that you want to remove from the site. +Name | Description + :--- | : --- +`subscription_id` | The identifier (`id`) for the subscription that you want to remove from the site. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `Subscription ID undefined` | Raises an exception if a valid `subscription_id` is not provided. @@ -2643,7 +2685,7 @@ Error | Description server.subscriptions.delete('9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d') ``` -
    +


    @@ -2661,13 +2703,13 @@ REST API: [Query Subscriptions](https://help.tableau.com/current/api/rest_api/en **Parameters** -Name | Description - :--- | : --- -`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific subscription, you could specify the subject of the subscription or the id of the subscription. +Name | Description + :--- | : --- +`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific subscription, you could specify the subject of the subscription or the id of the subscription. **Returns** -Returns a list of `SubscriptionItem` objects and a `PaginationItem` object. Use these values to iterate through the results. +Returns a list of `SubscriptionItem` objects and a `PaginationItem` object. Use these values to iterate through the results.
    @@ -2680,23 +2722,23 @@ Returns a list of `SubscriptionItem` objects and a `PaginationItem` object. Use subscription.get_by_id(subscription_id) ``` -Returns information about the specified subscription. +Returns information about the specified subscription. REST API: [Query Subscription](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_subscription) **Parameters** -Name | Description - :--- | : --- -`subscription_id` | The `subscription_id` specifies the subscription to query. +Name | Description + :--- | : --- +`subscription_id` | The `subscription_id` specifies the subscription to query. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `No Subscription ID provided.` | Raises an exception if a valid `subscription_id` is not provided. @@ -2726,7 +2768,7 @@ The `SubscriptionItem`. See [SubscriptionItem class](#subscriptionitem-class) Using the TSC library, you can get information about all the users on a site, and you can add or remove users, or update user information. -The user resources for Tableau Server are defined in the `UserItem` class. The class corresponds to the user resources you can access using the Tableau Server REST API. The user methods are based upon the endpoints for users in the REST API and operate on the `UserItem` class. +The user resources for Tableau Server are defined in the `UserItem` class. The class corresponds to the user resources you can access using the Tableau Server REST API. The user methods are based upon the endpoints for users in the REST API and operate on the `UserItem` class. ### UserItem class @@ -2735,22 +2777,22 @@ The user resources for Tableau Server are defined in the `UserItem` class. The c UserItem(name, site_role, auth_setting=None) ``` -The `UserItem` class contains the members or attributes for the view resources on Tableau Server. The `UserItem` class defines the information you can request or query from Tableau Server. The class members correspond to the attributes of a server request or response payload. +The `UserItem` class contains the members or attributes for the view resources on Tableau Server. The `UserItem` class defines the information you can request or query from Tableau Server. The class members correspond to the attributes of a server request or response payload. **Attributes** -Name | Description -:--- | :--- -`auth_setting` | (Optional) This attribute is only for Tableau Online. The new authentication type for the user. You can assign the following values for this attribute: `SAML` (the user signs in using SAML) or `ServerDefault` (the user signs in using the authentication method that's set for the server). These values appear in the **Authentication** tab on the **Settings** page in Tableau Online -- the `SAML` attribute value corresponds to **Single sign-on**, and the `ServerDefault` value corresponds to **TableauID**. -`domain_name` | The name of the site. -`external_auth_user_id` | Represents ID stored in Tableau's single sign-on (SSO) system. The `externalAuthUserId` value is returned for Tableau Online. For other server configurations, this field contains null. -`id` | The id of the user on the site. -`last_login` | The date and time the user last logged in. -`workbooks` | The workbooks the user owns. You must run the populate_workbooks method to add the workbooks to the `UserItem`. -`email` | The email address of the user. -`fullname` | The full name of the user. -`name` | The name of the user. This attribute is required when you are creating a `UserItem` instance. -`site_role` | The role the user has on the site. This attribute is required with you are creating a `UserItem` instance. The specific roles vary depending upon the version of the REST API. For example, for version 2.8 and earlier, the `site_role` can be one of the following: `Interactor`, `Publisher`, `ServerAdministrator`, `SiteAdministrator`, `Unlicensed`, `UnlicensedWithPublish`, `Viewer`, `ViewerWithPublish`, `Guest`. For REST API 3.0 and later, the `site_role` can be one of the following `Creator`, `Explorer`, `ExplorerCanPublish`, `ReadOnly` *(viewers from previous API versions who do not have v3.0+ viewer permissions)*, `Viewer`, `SiteAdministratorCreator`, `SiteAdministratorExplorer`, `UnlicensedWithPublish`. +Name | Description +:--- | :--- +`auth_setting` | (Optional) This attribute is only for Tableau Online. The new authentication type for the user. You can assign the following values for this attribute: `SAML` (the user signs in using SAML) or `ServerDefault` (the user signs in using the authentication method that's set for the server). These values appear in the **Authentication** tab on the **Settings** page in Tableau Online -- the `SAML` attribute value corresponds to **Single sign-on**, and the `ServerDefault` value corresponds to **TableauID**. +`domain_name` | The name of the site. +`external_auth_user_id` | Represents ID stored in Tableau's single sign-on (SSO) system. The `externalAuthUserId` value is returned for Tableau Online. For other server configurations, this field contains null. +`id` | The id of the user on the site. +`last_login` | The date and time the user last logged in. +`workbooks` | The workbooks the user owns. You must run the populate_workbooks method to add the workbooks to the `UserItem`. +`email` | The email address of the user. +`fullname` | The full name of the user. +`name` | The name of the user. This attribute is required when you are creating a `UserItem` instance. +`site_role` | The role the user has on the site. This attribute is required with you are creating a `UserItem` instance. The specific roles vary depending upon the version of the REST API. For example, for version 2.8 and earlier, the `site_role` can be one of the following: `Interactor`, `Publisher`, `ServerAdministrator`, `SiteAdministrator`, `Unlicensed`, `UnlicensedWithPublish`, `Viewer`, `ViewerWithPublish`, `Guest`. For REST API 3.0 and later, the `site_role` can be one of the following `Creator`, `Explorer`, `ExplorerCanPublish`, `ReadOnly` *(viewers from previous API versions who do not have v3.0+ viewer permissions)*, `Viewer`, `SiteAdministratorCreator`, `SiteAdministratorExplorer`, `UnlicensedWithPublish`. **Example** @@ -2761,14 +2803,14 @@ Name | Description # create a new UserItem object. newU = TSC.UserItem('Monty', 'Publisher') - + print(newU.name, newU.site_role) ``` Source file: models/user_item.py -
    +

    @@ -2777,7 +2819,7 @@ Source file: models/user_item.py The Tableau Server Client provides several methods for interacting with user resources, or endpoints. These methods correspond to endpoints in the Tableau Server REST API. Source file: server/endpoint/users_endpoint.py -
    +

    #### users.add @@ -2786,7 +2828,7 @@ Source file: server/endpoint/users_endpoint.py users.add(user_item) ``` -Adds the user to the site. +Adds the user to the site. To add a new user to the site you need to first create a new `user_item` (from `UserItem` class). When you create a new user, you specify the name of the user and their site role. For Tableau Online, you also specify the `auth_setting` attribute in your request. When you add user to Tableau Online, the name of the user must be the email address that is used to sign in to Tableau Online. After you add a user, Tableau Online sends the user an email invitation. The user can click the link in the invitation to sign in and update their full name and password. @@ -2794,14 +2836,14 @@ REST API: [Add User to Site](https://help.tableau.com/current/api/rest_api/en-us **Parameters** -Name | Description - :--- | : --- -`user_item` | You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific user, you could specify the name of the user or the user's id. +Name | Description + :--- | : --- +`user_item` | You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific user, you could specify the name of the user or the user's id. **Returns** -Returns the new `UserItem` object. +Returns the new `UserItem` object. @@ -2830,21 +2872,21 @@ users.get(req_options=None) Returns information about the users on the specified site. -To get information about the workbooks a user owns or has view permission for, you must first populate the `UserItem` with workbook information using the [populate_workbooks(*user_item*)](#populate-workbooks-user) method. +To get information about the workbooks a user owns or has view permission for, you must first populate the `UserItem` with workbook information using the [populate_workbooks(*user_item*)](#populate-workbooks-user) method. REST API: [Get Users on Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#get_users_on_site) **Parameters** -Name | Description - :--- | : --- -`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific user, you could specify the name of the user or the user's id. +Name | Description + :--- | : --- +`req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific user, you could specify the name of the user or the user's id. **Returns** -Returns a list of `UserItem` objects and a `PaginationItem` object. Use these values to iterate through the results. +Returns a list of `UserItem` objects and a `PaginationItem` object. Use these values to iterate through the results. **Example** @@ -2871,22 +2913,22 @@ with server.auth.sign_in(tableau_auth): users.get_by_id(user_id) ``` -Returns information about the specified user. +Returns information about the specified user. REST API: [Query User On Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_user_on_site) **Parameters** -Name | Description - :--- | : --- -`user_id` | The `user_id` specifies the user to query. +Name | Description + :--- | : --- +`user_id` | The `user_id` specifies the user to query. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `User ID undefined.` | Raises an exception if a valid `user_id` is not provided. @@ -2903,12 +2945,12 @@ The `UserItem`. See [UserItem class](#useritem-class) ``` -
    -
    +
    +
    #### users.populate_favorites - + ```py users.populate_favorites(user_item) ``` @@ -2917,8 +2959,8 @@ Returns the list of favorites (views, workbooks, and data sources) for a user. *Not currently implemented* -
    -
    +
    +
    #### users.populate_workbooks @@ -2927,17 +2969,17 @@ Returns the list of favorites (views, workbooks, and data sources) for a user. users.populate_workbooks(user_item, req_options=None): ``` -Returns information about the workbooks that the specified user owns and has Read (view) permissions for. +Returns information about the workbooks that the specified user owns and has Read (view) permissions for. -This method retrieves the workbook information for the specified user. The REST API is designed to return only the information you ask for explicitly. When you query for all the users, the workbook information for each user is not included. Use this method to retrieve information about the workbooks that the user owns or has Read (view) permissions. The method adds the list of workbooks to the user item object (`user_item.workbooks`). +This method retrieves the workbook information for the specified user. The REST API is designed to return only the information you ask for explicitly. When you query for all the users, the workbook information for each user is not included. Use this method to retrieve information about the workbooks that the user owns or has Read (view) permissions. The method adds the list of workbooks to the user item object (`user_item.workbooks`). REST API: [Query Datasource Connections](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_data_source_connections) **Parameters** -Name | Description - :--- | : --- +Name | Description + :--- | : --- `user_item` | The `user_item` specifies the user to populate with workbook information. @@ -2945,16 +2987,16 @@ Name | Description **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `User item missing ID.` | Raises an error if the `user_item` is unspecified. **Returns** -A list of `WorkbookItem` +A list of `WorkbookItem` -A `PaginationItem` that points (`user_item.workbooks`). See [UserItem class](#useritem-class) +A `PaginationItem` that points (`user_item.workbooks`). See [UserItem class](#useritem-class) **Example** @@ -2976,33 +3018,33 @@ A `PaginationItem` that points (`user_item.workbooks`). See [UserItem class](#us -
    +

    #### users.remove ```py -users.remove(user_id) +users.remove(user_id) ``` -Removes the specified user from the site. +Removes the specified user from the site. REST API: [Remove User from Site](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#remove_user_from_site) **Parameters** -Name | Description - :--- | : --- -`user_id` | The identifier (`id`) for the user that you want to remove from the server. +Name | Description + :--- | : --- +`user_id` | The identifier (`id`) for the user that you want to remove from the server. **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `User ID undefined` | Raises an exception if a valid `user_id` is not provided. @@ -3019,19 +3061,19 @@ Error | Description server.users.remove('9f9e9d9c-8b8a-8f8e-7d7c-7b7a6f6d6e6d') ``` -
    +

    -#### users.update +#### users.update ```py users.update(user_item, password=None) ``` -Updates information about the specified user. +Updates information about the specified user. The information you can modify depends upon whether you are using Tableau Server or Tableau Online, and whether you have configured Tableau Server to use local authentication or Active Directory. For more information, see [Update User](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#update_user). @@ -3041,18 +3083,18 @@ REST API: [Update User](https://help.tableau.com/current/api/rest_api/en-us/REST **Parameters** -Name | Description - :--- | : --- +Name | Description + :--- | : --- `user_item` | The `user_item` specifies the user to update. -`password` | (Optional) The new password for the user. +`password` | (Optional) The new password for the user. **Exceptions** -Error | Description - :--- | : --- -`User item missing ID.` | Raises an error if the `user_item` is unspecified. +Error | Description + :--- | : --- +`User item missing ID.` | Raises an error if the `user_item` is unspecified. **Returns** @@ -3069,10 +3111,10 @@ An updated `UserItem`. See [UserItem class](#useritem-class) # server = TSC.Server('https://SERVERURL') with server.auth.sign_in(tableau_auth): - + # create a new user_item user1 = TSC.UserItem('temp', 'Viewer') - + # add new user user1 = server.users.add(user1) print(user1.name, user1.site_role, user1.id) @@ -3081,7 +3123,7 @@ An updated `UserItem`. See [UserItem class](#useritem-class) user1.name = 'Laura' user1.fullname = 'Laura Rodriguez' user1.email = 'laura@example.com' - + # update user user1 = server.users.update(user1) print("\Updated user info:") @@ -3092,8 +3134,8 @@ An updated `UserItem`. See [UserItem class](#useritem-class) -
    -
    +
    +
    --- @@ -3119,10 +3161,10 @@ Source file: models/view_item.py **Attributes** Name | Description -:--- | :--- +:--- | :--- `content_url` | The name of the view as it would appear in a URL. `csv` | The CSV data of the view. You must first call the `views.populate_csv` method to access the CSV data. -`id` | The identifier of the view item. +`id` | The identifier of the view item. `image` | The image of the view. You must first call the `views.populate_image`method to access the image. `name` | The name of the view. `owner_id` | The ID for the owner of the view. @@ -3133,7 +3175,7 @@ Name | Description `workbook_id` | The ID of the workbook associated with the view. -
    +

    @@ -3143,7 +3185,7 @@ The Tableau Server Client provides methods for interacting with view resources, Source file: server/endpoint/views_endpoint.py -
    +

    #### views.get @@ -3162,10 +3204,10 @@ This endpoint is available with REST API version 2.0 and up. **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific view, you could specify the name of the view or its ID. -`usage` | (Optional) If true (`usage=True`) returns the usage statistics for the views. The default is `usage=False`. +`usage` | (Optional) If true (`usage=True`) returns the usage statistics for the views. The default is `usage=False`. @@ -3196,7 +3238,7 @@ for view in TSC.Pager(server.views): See [ViewItem class](#viewitem-class) -
    +

    #### views.populate_preview_image @@ -3217,15 +3259,15 @@ This endpoint is available with REST API version 2.0 and up. **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `view_item` | Specifies the view to populate. **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `View item missing ID or workbook ID` | Raises an error if the ID of the view or workbook is missing. @@ -3245,7 +3287,7 @@ with open('./view_preview_image.png', 'wb') as f: See [ViewItem class](#viewitem-class) -
    +

    #### views.populate_image @@ -3406,34 +3448,34 @@ The project resources for Tableau are defined in the `WorkbookItem` class. The c
    -
    +
    + +### WorkbookItem class -### WorkbookItem class +```py -```py - WorkbookItem(project_id, name=None, show_tabs=False) - + ``` The workbook resources for Tableau are defined in the `WorkbookItem` class. The class corresponds to the workbook resources you can access using the Tableau REST API. Some workbook methods take an instance of the `WorkbookItem` class as arguments. The workbook item specifies the project -**Attributes** +**Attributes** Name | Description -:--- | :--- +:--- | :--- `connections` | The list of data connections (`ConnectionItem`) for the data sources used by the workbook. You must first call the [workbooks.populate_connections](#workbooks.populate_connections) method to access this data. See the [ConnectionItem class](#connectionitem-class). -`content_url` | The name of the data source as it would appear in a URL. -`created_at` | The date and time when the data source was created. -`id` | The identifier for the workbook. You need this value to query a specific workbook or to delete a workbook with the `get_by_id` and `delete` methods. -`name` | The name of the workbook. +`content_url` | The name of the data source as it would appear in a URL. +`created_at` | The date and time when the data source was created. +`id` | The identifier for the workbook. You need this value to query a specific workbook or to delete a workbook with the `get_by_id` and `delete` methods. +`name` | The name of the workbook. `owner_id` | The ID of the owner. -`preview_image` | The thumbnail image for the view. You must first call the [workbooks.populate_preview_image](#workbooks.populate_preview_image) method to access this data. +`preview_image` | The thumbnail image for the view. You must first call the [workbooks.populate_preview_image](#workbooks.populate_preview_image) method to access this data. `project_id` | The project id. `project_name` | The name of the project. -`size` | The size of the workbook (in megabytes). +`size` | The size of the workbook (in megabytes). `show_tabs` | (Boolean) Determines whether the workbook shows tabs for the view. -`tags` | The tags that have been added to the workbook. +`tags` | The tags that have been added to the workbook. `updated_at` | The date and time when the workbook was last updated. `views` | The list of views (`ViewItem`) for the workbook. You must first call the [workbooks.populate_views](#workbooks.populate_views) method to access this data. See the [ViewItem class](#viewitem-class). `webpage_url` | The full URL of the workbook. @@ -3444,9 +3486,9 @@ Name | Description **Example** -```py +```py # creating a new instance of a WorkbookItem -# +# import tableauserverclient as TSC # Create new workbook_item with project id '3a8b6148-493c-11e6-a621-6f3499394a39' @@ -3456,15 +3498,15 @@ import tableauserverclient as TSC ```` -Source file: models/workbook_item.py +Source file: models/workbook_item.py
    -
    +
    ### Workbook methods -The Tableau Server Client (TSC) library provides methods for interacting with workbooks. These methods correspond to endpoints in the Tableau Server REST API. For example, you can use the library to publish, update, download, or delete workbooks on the site. -The methods operate on a workbook object (`WorkbookItem`) that represents the workbook resources. +The Tableau Server Client (TSC) library provides methods for interacting with workbooks. These methods correspond to endpoints in the Tableau Server REST API. For example, you can use the library to publish, update, download, or delete workbooks on the site. +The methods operate on a workbook object (`WorkbookItem`) that represents the workbook resources. @@ -3473,13 +3515,13 @@ Source files: server/endpoint/workbooks_endpoint.py

    -#### workbooks.get +#### workbooks.get ```py workbooks.get(req_options=None) ``` -Queries the server and returns information about the workbooks the site. +Queries the server and returns information about the workbooks the site. @@ -3490,8 +3532,8 @@ REST API: [Query Workbooks for Site](https://help.tableau.com/current/api/rest_a **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `req_options` | (Optional) You can pass the method a request object that contains additional parameters to filter the request. For example, if you were searching for a specific workbook, you could specify the name of the workbook or the name of the owner. See [Filter and Sort](filter-sort) @@ -3502,7 +3544,7 @@ Returns a list of all `WorkbookItem` objects and a `PaginationItem`. Use these v **Example** -```py +```py import tableauserverclient as TSC tableau_auth = TSC.TableauAuth('username', 'password', site_id='site') @@ -3518,7 +3560,7 @@ with server.auth.sign_in(tableau_auth): ```
    -
    +
    @@ -3535,15 +3577,15 @@ REST API: [Query Workbook](https://help.tableau.com/current/api/rest_api/en-us/R **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_id` | The `workbook_id` specifies the workbook to query. The ID is a LUID (64-bit hexadecimal string). **Exceptions** -Error | Description - :--- | : --- +Error | Description + :--- | : --- `Workbook ID undefined` | Raises an exception if a `workbook_id` is not provided. @@ -3562,24 +3604,24 @@ print(workbook.name) ``` -
    -
    +
    +
    #### workbooks.publish ```py -workbooks.publish(workbook_item, file_path, publish_mode) +workbooks.publish(workbook_item, file_path, publish_mode) ``` -Publish a workbook to the specified site. +Publish a workbook to the specified site. **Note:** The REST API cannot automatically include extracts or other resources that the workbook uses. Therefore, a .twb file that uses data from an Excel or csv file on a local computer cannot be published, -unless you package the data and workbook in a .twbx file, or publish the data source separately. +unless you package the data and workbook in a .twbx file, or publish the data source separately. -For workbooks that are larger than 64 MB, the publish method automatically takes care of chunking the file in parts for uploading. Using this method is considerably more convenient than calling the publish REST APIs directly. +For workbooks that are larger than 64 MB, the publish method automatically takes care of chunking the file in parts for uploading. Using this method is considerably more convenient than calling the publish REST APIs directly. REST API: [Publish Workbook](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#publish_workbook), [Initiate File Upload](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#initiate_file_upload), [Append to File Upload](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#append_to_file_upload) @@ -3587,30 +3629,30 @@ REST API: [Publish Workbook](https://help.tableau.com/current/api/rest_api/en-us **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_item` | The `workbook_item` specifies the workbook you are publishing. When you are adding a workbook, you need to first create a new instance of a `workbook_item` that includes a `project_id` of an existing project. The name of the workbook will be the name of the file, unless you also specify a name for the new workbook when you create the instance. See [WorkbookItem](#workbookitem-class). -`file_path` | The path and name of the workbook to publish. +`file_path` | The path and name of the workbook to publish. `mode` | Specifies whether you are publishing a new workbook (`CreateNew`) or overwriting an existing workbook (`Overwrite`). You cannot appending workbooks. You can also use the publish mode attributes, for example: `TSC.Server.PublishMode.Overwrite`. -`connection_credentials` | (Optional) The credentials (if required) to connect to the workbook's data source. The `ConnectionCredentials` object contains the authentication information for the data source (user name and password, and whether the credentials are embeded or OAuth is used). - +`connection_credentials` | (Optional) The credentials (if required) to connect to the workbook's data source. The `ConnectionCredentials` object contains the authentication information for the data source (user name and password, and whether the credentials are embeded or OAuth is used). + **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `File path does not lead to an existing file.` | Raises an error of the file path is incorrect or if the file is missing. -`Invalid mode defined.` | Raises an error if the publish mode is not one of the defined options. -`Workbooks cannot be appended.` | The `mode` must be set to `Overwrite` or `CreateNew`. -`Only .twb or twbx files can be published as workbooks.` | Raises an error if the type of file specified is not supported. +`Invalid mode defined.` | Raises an error if the publish mode is not one of the defined options. +`Workbooks cannot be appended.` | The `mode` must be set to `Overwrite` or `CreateNew`. +`Only .twb or twbx files can be published as workbooks.` | Raises an error if the type of file specified is not supported. See the REST API [Publish Workbook](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#publish_workbook) for additional error codes. **Returns** -The `WorkbookItem` for the workbook that was published. - +The `WorkbookItem` for the workbook that was published. + **Example** @@ -3628,7 +3670,7 @@ with server.auth.sign_in(tableau_auth): ```
    -
    +
    #### workbooks.refresh @@ -3637,24 +3679,24 @@ workbooks.refresh(workbook_item) ``` -Refreshes the extract of an existing workbook. +Refreshes the extract of an existing workbook. REST API: [Update Workbook Now](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_workbooksviews.htm#update_workbook_now) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_item` | The `workbook_item` specifies the settings for the workbook you are refreshing. **Exceptions** -Error | Description -:--- | :--- -`Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. Use the `workbooks.get()` or `workbooks.get_by_id()` methods to retrieve the workbook item from the server. +Error | Description +:--- | :--- +`Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. Use the `workbooks.get()` or `workbooks.get_by_id()` methods to retrieve the workbook item from the server. -```py +```py import tableauserverclient as TSC tableau_auth = TSC.TableauAuth('username', 'password', site_id='site') @@ -3674,7 +3716,7 @@ with server.auth.sign_in(tableau_auth):
    -
    +
    #### workbooks.update @@ -3689,19 +3731,19 @@ REST API: [Update Workbooks](https://help.tableau.com/current/api/rest_api/en-us **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_item` | The `workbook_item` specifies the settings for the workbook you are updating. You can change the `owner_id`, `project_id`, and the `show_tabs` values. See [WorkbookItem](#workbookitem-class). **Exceptions** -Error | Description -:--- | :--- -`Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. Use the `workbooks.get()` or `workbooks.get_by_id()` methods to retrieve the workbook item from the server. +Error | Description +:--- | :--- +`Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. Use the `workbooks.get()` or `workbooks.get_by_id()` methods to retrieve the workbook item from the server. -```py +```py import tableauserverclient as TSC tableau_auth = TSC.TableauAuth('username', 'password', site_id='site') @@ -3726,7 +3768,7 @@ with server.auth.sign_in(tableau_auth):
    -
    +
    @@ -3740,7 +3782,7 @@ Deletes a workbook with the specified ID. -To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). +To specify the site, create a `TableauAuth` instance using the content URL for the site (`site_id`), and sign in to that site. See the [TableauAuth class](#tableauauth-class). REST API: [Delete Workbook](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#delete_workbook1) @@ -3748,34 +3790,34 @@ REST API: [Delete Workbook](https://help.tableau.com/current/api/rest_api/en-us/ **Parameters** -Name | Description -:--- | :--- -`workbook_id` | The ID of the workbook to delete. +Name | Description +:--- | :--- +`workbook_id` | The ID of the workbook to delete. -**Exceptions** +**Exceptions** + +Error | Description +:--- | :--- +`Workbook ID undefined.` | Raises an exception if the project item does not have an ID. The project ID is sent to the server as part of the URI. -Error | Description -:--- | :--- -`Workbook ID undefined.` | Raises an exception if the project item does not have an ID. The project ID is sent to the server as part of the URI. +**Example** -**Example** - ```py -# import tableauserverclient as TSC -# server = TSC.Server('https://MY-SERVER') -# tableau_auth sign in, etc. +# import tableauserverclient as TSC +# server = TSC.Server('https://MY-SERVER') +# tableau_auth sign in, etc. server.workbooks.delete('1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d') -``` +```
    -
    +
    #### workbooks.download @@ -3792,9 +3834,9 @@ REST API: [Download Workbook](https://help.tableau.com/current/api/rest_api/en-u **Parameters** -Name | Description -:--- | :--- -`workbook_id` | The ID for the `WorkbookItem` that you want to download from the server. +Name | Description +:--- | :--- +`workbook_id` | The ID for the `WorkbookItem` that you want to download from the server. `filepath` | (Optional) Downloads the file to the location you specify. If no location is specified, the file is downloaded to the current working directory. The default is `Filepath=None`. `no_extract` | (Optional) Specifies whether to download the file without the extract. When the workbook has an extract, if you set the parameter `no_extract=True`, the extract is not included. You can use this parameter to improve performance if you are downloading workbooks that have large extracts. The default is to include the extract, if present (`no_extract=False`). Available starting with Tableau Server REST API version 2.5. @@ -3802,14 +3844,14 @@ Name | Description **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Workbook ID undefined` | Raises an exception if a valid `datasource_id` is not provided. -**Returns** +**Returns** -The file path to the downloaded workbook. +The file path to the downloaded workbook. **Example** @@ -3823,7 +3865,7 @@ The file path to the downloaded workbook.
    -
    +
    #### workbooks.populate_views @@ -3832,18 +3874,18 @@ The file path to the downloaded workbook. workbooks.populate_views(workbook_item) ``` -Populates (or gets) a list of views for a workbook. +Populates (or gets) a list of views for a workbook. You must first call this method to populate views before you can iterate through the views. -This method retrieves the view information for the specified workbook. The REST API is designed to return only the information you ask for explicitly. When you query for all the data sources, the view information is not included. Use this method to retrieve the views. The method adds the list of views to the workbook item (`workbook_item.views`). This is a list of `ViewItem`. +This method retrieves the view information for the specified workbook. The REST API is designed to return only the information you ask for explicitly. When you query for all the data sources, the view information is not included. Use this method to retrieve the views. The method adds the list of views to the workbook item (`workbook_item.views`). This is a list of `ViewItem`. REST API: [Query Views for Workbook](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_views_for_workbook) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_item` | The `workbook_item` specifies the workbook to populate with views information. See [WorkbookItem class](#workbookitem-class). @@ -3851,14 +3893,14 @@ Name | Description **Exceptions** -Error | Description -:--- | :--- -`Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. You can retrieve the workbook items using the `workbooks.get()` and `workbooks.get_by_id()` methods. +Error | Description +:--- | :--- +`Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. You can retrieve the workbook items using the `workbooks.get()` and `workbooks.get_by_id()` methods. **Returns** -None. A list of `ViewItem` objects are added to the workbook (`workbook_item.views`). +None. A list of `ViewItem` objects are added to the workbook (`workbook_item.views`). **Example** @@ -3867,14 +3909,14 @@ None. A list of `ViewItem` objects are added to the workbook (`workbook_item.vie # import tableauserverclient as TSC # server = TSC.Server('https://SERVERURL') -# - ... +# + ... # get the workbook item workbook = server.workbooks.get_by_id('1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d') -# get the view information +# get the view information server.workbooks.populate_views(workbook) # print information about the views for the work item @@ -3886,27 +3928,27 @@ None. A list of `ViewItem` objects are added to the workbook (`workbook_item.vie ```
    -
    +
    #### workbooks.populate_connections -```py +```py workbooks.populate_connections(workbook_item) -``` +``` -Populates a list of data source connections for the specified workbook. +Populates a list of data source connections for the specified workbook. You must populate connections before you can iterate through the connections. -This method retrieves the data source connection information for the specified workbook. The REST API is designed to return only the information you ask for explicitly. When you query all the workbooks, the data source connection information is not included. Use this method to retrieve the connection information for any data sources used by the workbook. The method adds the list of data connections to the workbook item (`workbook_item.connections`). This is a list of `ConnectionItem`. +This method retrieves the data source connection information for the specified workbook. The REST API is designed to return only the information you ask for explicitly. When you query all the workbooks, the data source connection information is not included. Use this method to retrieve the connection information for any data sources used by the workbook. The method adds the list of data connections to the workbook item (`workbook_item.connections`). This is a list of `ConnectionItem`. REST API: [Query Workbook Connections](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_workbook_connections) **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_item` | The `workbook_item` specifies the workbook to populate with data connection information. @@ -3914,14 +3956,14 @@ Name | Description **Exceptions** -Error | Description -:--- | :--- +Error | Description +:--- | :--- `Workbook item missing ID. Workbook must be retrieved from server first.` | Raises an error if the `workbook_item` is unspecified. **Returns** -None. A list of `ConnectionItem` objects are added to the data source (`workbook_item.connections`). +None. A list of `ConnectionItem` objects are added to the data source (`workbook_item.connections`). **Example** @@ -3930,14 +3972,14 @@ None. A list of `ConnectionItem` objects are added to the data source (`workbook # import tableauserverclient as TSC # server = TSC.Server('https://SERVERURL') -# - ... +# + ... # get the workbook item workbook = server.workbooks.get_by_id('1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d') -# get the connection information +# get the connection information server.workbooks.populate_connections(workbook) # print information about the data connections for the workbook item @@ -3950,7 +3992,7 @@ None. A list of `ConnectionItem` objects are added to the data source (`workbook ```
    -
    +
    #### workbooks.populate_preview_image @@ -3959,31 +4001,31 @@ None. A list of `ConnectionItem` objects are added to the data source (`workbook workbooks.populate_preview_image(workbook_item) ``` -This method gets the preview image (thumbnail) for the specified workbook item. +This method gets the preview image (thumbnail) for the specified workbook item. -The method uses the `view.id` and `workbook.id` to identify the preview image. The method populates the `workbook_item.preview_image`. +The method uses the `view.id` and `workbook.id` to identify the preview image. The method populates the `workbook_item.preview_image`. REST API: [Query View Preview Image](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref.htm#query_workbook_preview_image) -**Parameters** +**Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `view_item` | The view item specifies the `view.id` and `workbook.id` that identifies the preview image. - -**Exceptions** -Error | Description -:--- | :--- -`View item missing ID or workbook ID` | Raises an error if the ID for the view item or workbook is missing. +**Exceptions** + +Error | Description +:--- | :--- +`View item missing ID or workbook ID` | Raises an error if the ID for the view item or workbook is missing. + - **Returns** -None. The preview image is added to the view. +None. The preview image is added to the view. @@ -3995,7 +4037,7 @@ None. The preview image is added to the view. # server = TSC.Server('https://SERVERURL') - ... + ... # get the workbook item workbook = server.workbooks.get_by_id('1a1b1c1d-2e2f-2a2b-3c3d-3e3f4a4b4c4d') @@ -4004,18 +4046,18 @@ None. The preview image is added to the view. server.workbooks.populate_preview_image(workbook) -``` +```
    -
    +
    #### workbooks.update_connection ```py workbooks.update_conn(workbook_item, connection_item) -``` +``` -Updates a workbook connection information (server address, server port, user name, and password). +Updates a workbook connection information (server address, server port, user name, and password). The workbook connections must be populated before the strings can be updated. See [workbooks.populate_connections](#workbooks.populate_connections) @@ -4023,23 +4065,23 @@ REST API: [Update Workbook Connection](https://help.tableau.com/current/api/res **Parameters** -Name | Description -:--- | :--- +Name | Description +:--- | :--- `workbook_item` | The `workbook_item` specifies the workbook to populate with data connection information. -`connection_item` | The `connection_item` that has the information you want to update. +`connection_item` | The `connection_item` that has the information you want to update. **Returns** -None. The connection information is updated with the information in the `ConnectionItem`. +None. The connection information is updated with the information in the `ConnectionItem`. **Example** -```py +```py # query for workbook connections server.workbooks.populate_connections(workbook) @@ -4054,7 +4096,7 @@ server.workbooks.update_conn(workbook, connection) ```
    -
    +
    #### workbooks.populate_pdf ``` diff --git a/docs/dev-guide.md b/docs/dev-guide.md index 46c560d7b..ea68a523d 100644 --- a/docs/dev-guide.md +++ b/docs/dev-guide.md @@ -32,7 +32,7 @@ add your contributions to the **development** branch. git clone git@github.com:/server-client-python.git ``` -1. Run the tests to make sure everything is peachy: +1. Run the tests to make sure everything is passing: ```shell python setup.py test @@ -95,6 +95,9 @@ Here's a quick checklist to follow when coding to ensure a good pull request 1. Add a sample to show users how to use the new feature. +1. Add documentation (most likely in api-ref.md) in a separate pull request + (see more below). + ### Add tests All of our tests live under the `test/` folder in the repository. We use @@ -153,15 +156,15 @@ go together. To preview and run the documentation locally, these are the steps: -1. Install [Ruby](https://www.ruby-lang.org/en/downloads/) (v2.5.0 or higher) +1. Install [Ruby](https://www.ruby-lang.org/en/documentation/installation/) (v2.5.0 or higher). -1. Install [Bundler](https://bundler.io/) +1. Install [Bundler](https://bundler.io/). -1. Install [Jekyll](https://jekyllrb.com/docs/installation/) +1. Install the project dependencies (which includes Jekyll) by running `bundle install`. (In the future you can run `bundle update` to catch any new dependencies.) -1. Run the Jekyll site locally with `bundle exec jekyll serve` +1. Run the Jekyll site locally with `bundle exec jekyll serve`. -1. In your browser, connect to +1. In your browser, connect to to preview the changes. As long as the Jekyll serve process is running, it will rebuild any new file changes automatically. -For more details on the steps, see the GitHub Pages topic on +For more details, see the GitHub Pages topic on [testing locally](https://docs.github.com/en/github/working-with-github-pages/testing-your-github-pages-site-locally-with-jekyll). diff --git a/docs/index.md b/docs/index.md index 4687be3be..81728594f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -19,10 +19,9 @@ This section describes how to: Before you install TSC, confirm that you have the following dependencies installed: -* Python. You can use TSC with Python 3.5 or later. +* Python. You can use TSC with Python 3.5 or later. * Git. Optional, but recommended to download the samples or install from the source code. - ## Install TSC You can install TSC with pip or from the source code. @@ -31,7 +30,7 @@ You can install TSC with pip or from the source code. Run the following command to install the latest stable version of TSC: -``` +```shell pip install tableauserverclient ``` @@ -40,7 +39,7 @@ pip install tableauserverclient You can install from the development branch for a preview of upcoming features. Run the following command to install from the development branch: -``` +```shell pip install git+https://github.com/tableau/server-client-python.git@development ``` @@ -49,13 +48,15 @@ development version are subject to change at any time before the next stable rel ### Install on an offline machine -To install TSC onto a machine without internet connection, use the following steps: +To install TSC onto a machine without an internet connection, use the following steps: + +1) Ensure that Python 3.5 or higher is installed. -1) Download and manually install the **requests** python library (and its dependencies). +2) Download and manually install the `requests` Python library (and its dependencies). -2) Download the [setup package](https://pypi.org/project/tableauserverclient/#files){:target="_blank"}. +3) Download the [setup package](https://pypi.org/project/tableauserverclient/#files){:target="_blank"}. -3) Run `pip install ./downloads/tableauserverclient-x.x.tar.gz` +4) Run `pip install ./tableauserverclient-x.y.tar.gz` ## Get the samples diff --git a/docs/samples.md b/docs/samples.md index b9e9aae3d..ed6533e18 100644 --- a/docs/samples.md +++ b/docs/samples.md @@ -21,7 +21,7 @@ the arguments required by a particular sample, run the sample with the `-h` flag For example, if you run the following command: -``` +```shell python samples/publish_workbook.py -h ``` diff --git a/docs/sign-in-out.md b/docs/sign-in-out.md index d1bdc197f..8fd1c1b26 100644 --- a/docs/sign-in-out.md +++ b/docs/sign-in-out.md @@ -3,46 +3,117 @@ title: Sign In and Out layout: docs --- -To sign in and out of Tableau Server, call the server's `.auth.signin` method in a `with` block. +The first step to using the TSC library is to sign in to your Tableau Server (or Tableau Online). This page explains how to sign in, sign out, and switch sites, with examples for both Tableau Server and Tableau Online. + +* TOC +{:toc} + +## Sign In + +Signing in can be done two different ways: + +* Personal Access Tokens - In most cases this is the preferred method because it improves security by avoiding the need to use or store passwords directly. Access tokens also expire by default if not used after 15 consecutive days. This option is available for Tableau Server 2019.4 and newer. Refer to [Personal Access Tokens](https://help.tableau.com/current/server/en-us/security_personal_access_tokens.htm) for more details. +* Username and Password - Direct sign in with account username and password. + +Examples showing both of these cases are included below. + +**Note:** When you sign in, the TSC library manages the authenticated session for you. However, the validity of the underlying credentials token is limited by the maximum session length set on your Tableau Server (2 hours by default). + +### Sign in with Personal Access Token + +To sign in to Tableau Server or Tableau Online with a personal access token, you'll need the following values: + +Name | Description +:--- | :--- +TOKEN_NAME | The personal access token name (from the My Account settings page) +TOKEN_VALUE | The personal access token value (from the My Account settings page) +**Tableau Server** | +SITENAME | The Tableau Server site you are authenticating with; for example in the site URL http://MyServer/#/site/MarketingTeam/projects, the site name is MarketingTeam; in the REST API documentation this field is also referred to as contentUrl; this value can be omitted to connect with the Default site on the server +SERVER_URL | The Tableau Server you are authenticating with; if your server has SSL enabled, this should be an HTTPS link +**Tableau Online** | +SITENAME | The Tableau Online site you are authenticating with; for example in the site URL https://10ay.online.tableau.com/#/site/umbrellacorp816664/workbooks, the site name is umbrellacorp816664; in the REST API documentation this field is also referred to as contentUrl; this value is always required when connecting to Tableau Online +SERVER_URL | The Tableau Online instance you are authenticating with; in the example above the server URL would be https://10ay.online.tableau.com; this will always be an an HTTPS link + +This example illustrates using the above values to sign in with a personal access token, do some operations, and then sign out: + +```py +import tableauserverclient as TSC + +tableau_auth = TSC.PersonalAccessTokenAuth('TOKEN_NAME', 'TOKEN_VALUE', 'SITENAME') +server = TSC.Server('https://SERVER_URL', use_server_version=True) +server.auth.sign_in(tableau_auth) + +# Do awesome things here! + +server.auth.sign_out() +``` + +### Sign in with Username and Password + +To sign in to Tableau Server or Tableau Online with a username and password, you'll need the following values: + +Name | Description +:--- | :--- +USERNAME | The user name +PASSWORD | The user password +SITENAME | The same as described in the previous section +SERVER_URL | The same as described in the previous section + +This example illustrates using the above values to sign in with a username and password, do some operations, and then sign out: ```py import tableauserverclient as TSC tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD', 'SITENAME') -# or for a personal access token -# tableau_auth = TSC.PersonalAccessTokenAuth('TOKEN_NAME', 'TOKEN_VALUE', 'SITENAME') -server = TSC.Server('https://SERVER_URL') +server = TSC.Server('https://SERVER_URL', use_server_version=True) +server.auth.sign_in(tableau_auth) -with server.auth.sign_in(tableau_auth): - # Do awesome things here! +# Do awesome things here! + +server.auth.sign_out() ``` -`SERVER_URL` is the URL of your Tableau server without subpaths. For local Tableau servers, an example would be: `https://www.MY_SERVER.com`. For Tableau Online, an example would be: `https://10ax.online.tableau.com/`. +## Sign Out -`SITENAME` is the subpath of your full site URL (also called `contentURL` in the REST API). `MYSITE` would be the site name of `https://10ax.online.tableau.com/MYSITE`. This parameter can be omitted when signing in to the Default site of an on-premise Tableau server. +Signing out cleans up the current session and invalidates the authentication token being held by the TSC library. -`TOKEN_NAME` and `TOKEN_VALUE` are your [Personal Access Token](https://help.tableau.com/current/server/en-us/security_personal_access_tokens.htm) values, generated in your Account Settings. +As shown in the examples above, the sign out call is simply: -Optionally, you can override the version of Tableau API you are authorizing against by adding `server.version = ''` before the `auth.signin` call. +```py +server.auth.sign_out() +``` -The TSC library signs you out of Tableau Server when you exit out of the `with` block. +## Simplify by using Python with block -
    - **Note:** When you sign in, the TSC library manages the authenticated session for you, however the validity of the underlying - credentials token is limited by the maximum session length set on your Tableau Server (2 hours by default). -
    +The sign in/out flow can be simplified (and handled in a more Python way) by using the built-in support for the `with` block. After the block execution completes, the sign out is called automatically. -An alternative to using a `with` block is to call the `Auth.sign_in` and `Auth.sign_out` functions explicitly: +For example: ```py import tableauserverclient as TSC -tableau_auth = TSC.TableauAuth('USERNAME', 'PASSWORD') # with no site name, this will use the Default site -server = TSC.Server('http://SERVER_URL') +tableau_auth = TSC.PersonalAccessTokenAuth('TOKEN_NAME', 'TOKEN_VALUE', 'SITENAME') +server = TSC.Server('https://SERVER_URL') + +with server.auth.sign_in(tableau_auth): + all_wb, pagination_item = server.workbooks.get() + print("\nThere are {} workbooks on site: ".format(pagination_item.total_available)) + for wb in all_wb: + print(wb.id, wb.name) +``` -server.auth.sign_in(tableau_auth) +All of the samples provided in TSC library use this technique. -# Do awesome things here! +## Switch Site -server.auth.sign_out() +Tableau Server has a feature which enables switching to another site without having to authenticate again. (The user must have access permissions for the new site as well.) + +**Note:** This method is not available on Tableau Online. + +The following example will switch the authenticated user to the NEW_SITENAME site on the same server: + +```py +# assume we already have an authenticated server object + +server.auth.switch_site('NEW_SITENAME') ``` diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md new file mode 100644 index 000000000..16ae51a11 --- /dev/null +++ b/docs/troubleshooting.md @@ -0,0 +1,54 @@ +--- +title: Troubleshooting +layout: docs +--- + +This page covers some common troubleshooting tips for using the TSC library. + +
    + Warning: Do not post any debug logs or REST API request/response contents anywhere on GitHub. The contents may include sensitive data or authentication secrets. Instead you can post just edited snippets of relevant content after sanitizing (removing any sensitive values). +
    + +* TOC +{:toc} + +## Logging REST API communication with Tableau Server + +There may be cases where it's helpful to inspect the REST API calls the TSC library is making and the responses coming back from Tableau Server. Some examples might be: + +* The TSC library is throwing an error or the results are not coming through as expected +* The TSC library or the REST backend may have a bug which needs to be tracked down + +To enable logging, add the following to your Python script ahead of making any TSC calls: + +```py +import logging +logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + filename="tsc.log", level="DEBUG") +``` + +Now when your script executes, you'll see a set of debug messages in the `tsc.log` file. Each API call to the REST API will be included along with the XML responses. Depending on the problem being investigated, you can compare these requests/responses to the [REST API documentation](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api.htm) to track down the issue. + +## Capture REST API communication with local proxy + +Another approach for inspecting REST API traffic is to use a local debugging proxy server like [Fiddler Everywhere](https://www.telerik.com/fiddler). Fiddler Everywhere is free for basic use and has versions for Mac, Windows and Linux. + +These are the steps to send the API traffic through to a local proxy like Fiddler: + +1. Install Fiddler Everywhere and create a free account if needed +2. Launch the Fiddler app and click the settings (gear) icon to enable Capture HTTPS traffic. (Do not click Trust root certificate.) +3. Before running your script, set the following environment variables (on Windows, use SET commands instead): +```shell +export HTTP_PROXY=127.0.0.1:8866 +export HTTPS_PROXY=127.0.0.1:8866 +export CURL_CA_BUNDLE="" +export PYTHONWARNINGS="ignore:Unverified HTTPS request" +``` +4. Run your script +5. Check Fiddler Everywhere for the results + +The sample screenshot below shows the results of running a simple sign in/out sequence. The Capture pane includes one row for each HTTP request. Select the request to see the details on the right side: Request and Response. + +![Fiddler Everywhere Screenshot](../assets/fiddler.png) + +Proxy server applications other than Fiddler can be used as well. Just adjust the HTTP_PROXY and HTTPS_PROXY environment variables to use the proper IP address and port number. diff --git a/docs/versions.md b/docs/versions.md index 70076aa6e..b8f824f6e 100644 --- a/docs/versions.md +++ b/docs/versions.md @@ -6,6 +6,8 @@ layout: docs Because the TSC library is a client for the Tableau Server REST API, you need to confirm that the version of the TSC library that you use is compatible with the version of the REST API used by your installation of Tableau Server. +For reference, the [REST API and Resource Versions](https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_concepts_versions.htm) page has more details about versions. + * TOC {:toc} @@ -21,11 +23,11 @@ server = TSC.Server('http://SERVER_URL') print(server.version) ``` -For example, the code might display version `2.3`. +For example, the code might display version `2.3`. ## Use the REST API version supported by the server -There are two options for always using the the latest version of the REST API that is supported by the instance of Tableau Server you are connecting to. +There are two options for always using the the latest version of the REST API that is supported by the instance of Tableau Server you are connecting to. This could be necessary in cases where you're using an API feature that is only supported in a newer REST API version. The first method is to specify `use_server_version=True` as one of the arguments, for example: @@ -52,7 +54,7 @@ To use a specific version of the REST API, set the version like so: import tableauserverclient as TSC server = TSC.Server('http://SERVER_URL') -server.version = '2.6' +server.version = '3.6' ``` @@ -62,6 +64,7 @@ The current version of TSC only supports the following REST API and Tableau Serv |REST API version|Tableau Server version| |---|---| +|3.9|2020.3| |3.8|2020.2| |3.7|2020.1| |3.6|2019.4|