From 826978e5a20c6d527e9548bd2fef72cc8dcc6dcf Mon Sep 17 00:00:00 2001 From: Adi Varma Date: Mon, 4 May 2020 06:57:16 -0400 Subject: [PATCH 01/79] SoloModel parameter 'method': Adivarma27 dev (#15) treatment_interaction feature in SoloModel class --- sklift/models/models.py | 70 ++++++++++++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/sklift/models/models.py b/sklift/models/models.py index ea43c66..46a81d9 100644 --- a/sklift/models/models.py +++ b/sklift/models/models.py @@ -21,6 +21,12 @@ class SoloModel(BaseEstimator): Args: estimator (estimator object implementing 'fit'): The object to use to fit the data. + method (string, ’dummy’ or ’treatment_interaction’, default='dummy'): Specifies the approach: + + * ``'dummy'``: + single model; + * ``'treatment_interaction'``: + single model including treatment interactions. Attributes: trmnt_preds_ (array-like, shape (n_samples, )): Estimator predictions on samples when treatment. @@ -46,12 +52,18 @@ class SoloModel(BaseEstimator): https://scikit-uplift.readthedocs.io/en/latest/api/models.html#one-model-with-treatment-as-feature """ - def __init__(self, estimator): + def __init__(self, estimator, method='dummy'): self.estimator = estimator + self.method = method self.trmnt_preds_ = None self.ctrl_preds_ = None self._type_of_target = None + all_methods = ['dummy', 'treatment_interaction'] + if method not in all_methods: + raise ValueError("SoloModel approach supports only methods in %s, got" + " %s." % (all_methods, method)) + def fit(self, X, y, treatment, estimator_fit_params=None): """Fit the model according to the given training data. @@ -73,15 +85,27 @@ def fit(self, X, y, treatment, estimator_fit_params=None): check_consistent_length(X, y, treatment) treatment_values = np.unique(treatment) + if len(treatment_values) != 2: raise ValueError("Expected only two unique values, got %s" % len(treatment_values)) - if isinstance(X, np.ndarray): - X_mod = np.column_stack((X, treatment)) - elif isinstance(X, pd.DataFrame): - X_mod = X.assign(treatment=treatment) - else: - raise TypeError("Expected numpy.ndarray or pandas.DataFrame in training vector X, got %s" % type(X)) + if self.method == 'dummy': + if isinstance(X, np.ndarray): + X_mod = np.column_stack((X, treatment)) + elif isinstance(X, pd.core.frame.DataFrame): + X_mod = X.assign(treatment=treatment) + else: + raise TypeError("Expected numpy.ndarray or pandas.DataFrame in training vector X, got %s" % type(X)) + + if self.method == 'treatment_interaction': + if isinstance(X, np.ndarray): + X_mod = np.column_stack((X, np.multiply(X, treatment.reshape(-1,1)), treatment)) + elif isinstance(X, pd.core.frame.DataFrame): + X_mod = pd.concat([X, X.apply(lambda x: x*treatment)\ + .rename(columns=lambda x: x + '_treatment_interaction')], axis=1)\ + .assign(treatment=treatment) + else: + raise TypeError("Expected numpy.ndarray or pandas.DataFrame in training vector X, got %s" % type(X)) self._type_of_target = type_of_target(y) @@ -100,14 +124,30 @@ def predict(self, X): Returns: array (shape (n_samples,)): uplift """ - if isinstance(X, np.ndarray): - X_mod_trmnt = np.column_stack((X, np.ones(X.shape[0]))) - X_mod_ctrl = np.column_stack((X, np.zeros(X.shape[0]))) - elif isinstance(X, pd.DataFrame): - X_mod_trmnt = X.assign(treatment=np.ones(X.shape[0])) - X_mod_ctrl = X.assign(treatment=np.zeros(X.shape[0])) - else: - raise TypeError("Expected numpy.ndarray or pandas.DataFrame in training vector X, got %s" % type(X)) + + if self.method == 'dummy': + if isinstance(X, np.ndarray): + X_mod_trmnt = np.column_stack((X, np.ones(X.shape[0]))) + X_mod_ctrl = np.column_stack((X, np.zeros(X.shape[0]))) + elif isinstance(X, pd.core.frame.DataFrame): + X_mod_trmnt = X.assign(treatment=np.ones(X.shape[0])) + X_mod_ctrl = X.assign(treatment=np.zeros(X.shape[0])) + else: + raise TypeError("Expected numpy.ndarray or pandas.DataFrame in training vector X, got %s" % type(X)) + + if self.method == 'treatment_interaction': + if isinstance(X, np.ndarray): + X_mod_trmnt = np.column_stack((X, np.multiply(X, np.ones((X.shape[0], 1))), np.ones(X.shape[0]))) + X_mod_ctrl = np.column_stack((X, np.multiply(X, np.zeros((X.shape[0], 1))), np.zeros(X.shape[0]))) + elif isinstance(X, pd.core.frame.DataFrame): + X_mod_trmnt = pd.concat([X, X.apply(lambda x: x*np.ones(X.shape[0]))\ + .rename(columns=lambda x: x + '_treatment_interaction')], axis=1)\ + .assign(treatment=np.ones(X.shape[0])) + X_mod_ctrl = pd.concat([X, X.apply(lambda x: x*np.zeros(X.shape[0]))\ + .rename(columns=lambda x: x + '_treatment_interaction')], axis=1)\ + .assign(treatment=np.zeros(X.shape[0])) + else: + raise TypeError("Expected numpy.ndarray or pandas.DataFrame in training vector X, got %s" % type(X)) if self._type_of_target == 'binary': self.trmnt_preds_ = self.estimator.predict_proba(X_mod_trmnt)[:, 1] From 36a53016ea603afcf63555cde127eff9e98448b8 Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Mon, 4 May 2020 18:53:41 +0300 Subject: [PATCH 02/79] :memo: Add docs for treatment interaction method --- .../images/SoloModel_treatment_intercation.png | Bin 0 -> 45109 bytes docs/api/models.rst | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 docs/_static/images/SoloModel_treatment_intercation.png diff --git a/docs/_static/images/SoloModel_treatment_intercation.png b/docs/_static/images/SoloModel_treatment_intercation.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4957942b75bb5f167f234328926b8320b1c3cb GIT binary patch literal 45109 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%0DsFE za@?C2tJwQiMuhcohn1#gxMS589v+^KVRfK^fPy=dlSq1JmBn}!SHIU^V)K^IN8azm zKAB%Bx8Xx@C*4t_Mqm(!fJx!@3u8}X^zCU#4YSMw`T8X1H9!uD9rx*vJ;xy|-*l)Z zy9U@wZ!qK==rC#Vi_rmu;*i8JXVddZ6W_d=&((<;>XJ75ey)yKX=!OKrKvWF%BYOP`!Xghf572jJzK_;&vA|m2~n+!HRu5U-b zB-;15TXMaMcZAMM<|?T?SJZH_0-)wrnhJQq~Mdj)+biLU? zZ`wp3;<#fx>HjH7KSXbj*=?pXZubJP^P-}nJhH8E5J#>aBR~;(y0AjJX7msxILSG@ zGdQI0KyacgcQREq_j!{~vm@q!z>56`4(z~a9tijl7KfU+7}_U5@0 z%+JzozH?i$q88T%#Pw%?|CM2b2-O5R_S~=w|J|LWLPh)rR7g!ppYKci;zIUVq4(Xp zrC3+W(TnN@0~kQM@n4*xse1%=9ntZ!%q_eqEh*UoSlrAGq830`s*kQ4DaK$Gx%G+z ze?Y@EhNq-FFW;n0ku!rRH|jEoFG*0Q}L zn3@vug}3XpOXGZ$32^uDsHWNofl7VUg-58rFAVAoUfo;?=&9NpTs|Zpb69q8>Ez6{ zuH%d2BDJ9T#qH$-R@24{nCPmt(8jcYv8 z8MXj)aApT;)sy2kDemW+;$>qYlmX@{o7v*$DPFKyitnPnY2etHWrveU|H~;pF0HYB zntZPgb6C-YrhVsK63{H;eqxMYg{m1}X=v`haFMyXQ7-(VoLPHeRMd5(nN@dE35^jX zmE>YkSCh0|)IK5XPZ0Ow;TIoko0KMq4go-`c8xi)>LSls+C7I4KmR(eb?w?6(_J6m z4&rDiRw0xp|EGKKVCl3xIZkX2lBQ3l$^b+LdsTV{2TgZgywHbQchvrFH`YX4^#Zgx zqSQ1r&SRwW5w5q%C@;s$k-HYZejR>)n?_=t`b+B%Z}R?O-dy(vrAmHy1{GmjA*KrB z)yI+-##3Er)geGFbeg?f`=Dk?NMZ)H8-73`g>s0eP?O`n?SMF=f}ritGhUih+k4EK zEm{y8-6f{lJ%Jf@y*B9^T%qg-$O!25_QboM1EfkLB?DRvdg0b0d&jjW|@$ zd=wNEj7t!z6^QnFgGFO=YiFVK^twMhhN)IjUl($~NMdCJS|Am_di4r&3#CQ-#xzYF z406$t9%n^G$=6BL?>cnt&gFQ^8#fMB?#MN$O8}XN5-+}v)F2@#8FED^iY241359IrHkB}BGX5AH*H0!YrUr1MHJ+JmUsR74iZ8PU?mIqG z!IQ0D)Af2CBU+5BDB*tM(Wk@3q@;u}!QoO1r@MCbW}{|kK9+p-`SUa=|HLuIWTo`4 z=ykVnp-M82%Q$Z^WB}BFngepn3}xokKdbQPsC9NgRl`{ODRYS%@ZDB^E!VF4KmkK@TmGAdkuB%Xox7lT++|@7_ngvH=)?&!s@;{$8)jx>4U4v-IcccS`xBm0Vx|LM%l)`@cc8<@0DAk@Ep~x8 zba2$v)bf0^?as5ty)gifUHj!6G8dqEH286up__UBY$6$kIu9?e?I~vCeexvLAbfV6 z9xsh8XK{K8O3#(ya&%AtQa(dlc6E$D&wkthKjC_Q;L8`Yxv62nG~*7 zgvRe0w`D2sZ#qA7MGXG|hXT5H>q&Q#H|WEK%p&YKc-jG{P^+X`wYilpjf*sE~u-kWA_O< z&*hl)k@<^fInUegdSbu3-5R(L8k`+mk`fX}^4nh8m||hy37Z&fUo4nxJCcu`J&Oq? zW-%J@PfhX_el$S-;{LwABRHBFM4VMKhY4N@0xm1-n-S}F^Jo-uIz9;r;iSJO6-mM* zp9MOf#rbK70<-9#X7JQoG=mmz|LB!BSMff$7KE;+^B1dhIwNMw$B!RHbvIE5;i!d{ z+}qjj@ngL)%{Z`ga{3`t!KS5UW%1%GCvDoD6mPWO4Nk*3nVro8Ro*-YyT1XB8ZgN( z=8Q()@AJWpG$VLH*M^FnYA(?Ej<>B9;^7%Y2M}-j^y}BJU`Wp7?1v&iiSppwGwiL| z3c0i_(9FpRR9y8BdQ@q=ZT1P(aHzlD>Q?bkOZv$7=sqXXhY#Kq+x~6bVmh{e!4$&t zn_BwWy>qzLrk&R94!?N39JgAYT&=8%9#*L+B#k5Ea zj)r{3iJ9}uS{+jH`S7hOg^ttMP3#3y-Cw_sOm~MBL9a1hSW@TU_3`s( zVTB-7sg9QDpW1mYqrU0$XZa!hXpVb`I+1tByfR*>6#ZiLU+YfcChoWP8}s*(CEwpeM`tR4 z<()!`s`9D96*4ka1SEhJLSTqMv$Gxn1-&29lZI=H7#^o4e~aBT1f3cs9q;>tcZx`? z7DHcN6VkUV!$9}CofHt^w>i%aV8Fg}_wFvI^2+AsS*Xs4f`RdnOY<(+pW{}2a^CGK zQ`VUCO^fEO?d&RH%fJkY*+3WvNkK~qR3pJmx_P;|QqaEmttz(HA&9Vjx3r6 zC-RAP=;Q&hZrZd7RGixv`Pdq4JyXIjA}y`Jx*eKD1`M_BMMZ3pIyi7DD=X*b9KA)g zAkgXWhr&_G+v!MyHRQw}LxpxhgcKAMUuSUU%o&V^tua!&AO^Q!juef&AR)oQ$q8o% z92p}+LvdF-v0MS7sOOq9@7uSJgF_;c#0%hDJ_zTdf!`Jy-@uJfhjXjuJOI8G5TK*0 zyF-bElQZe4iBR1{`eRmR=1!nc`0|))FnXa38notFUA=m>fbknfS$sO$v(snJcngz2 zjy(tnK&`0*bfe#f@8RX`jVp)NBZ79Gvx7h3Nr(=UU1i@SE#AfhM&^umsQVk8 zD3@`i(@VANni1%2x0`0KR8~h{{#+!<_agpsykkYJS$k#H(=Ug!g1y-N%f}YB;9d$< zC>h2O*J+?jlWVB@Zk0_Xj554WH2ptrg8YM^&X)Td0vth)xzu4%rg`0B{>Fs&1ugyc zzbro656!md%i~tE`-^B{KO$UUTcD4{m+IqFaR1ji^-kgbaVZWy1L=0zcY-6nd<>ph zyZ6m%Xv}Ve_srH!t7GTqMYl(#VlEFBzzNdX|8JM@EvEtQ0@D{N5rr=iKYmi}IWy9w zPiDcOQ84=Pcw1W=c6wTD?12r$zkX(d7T6d3L|k0ls^QTDf5J_wMck zEG#U{%-Y)8pv%eDtXZ>e-OHRDr5~GiP*XFru(ah_aR3twi*IRdO|z z#`WvL~PvcXrPk_>8~9wnwrdwri0dIP}q_88`wB?1UD&;Iql zS3cd<6D2{cvV`(=pM#)s(1`vUKbd`fT`p)wh;4@941`~`r7XKYM$JViHe_{6)ko*u z(Opqd@uXrb&KQN7g*YjCLse1sOPF9%3p(8XmR8p)(!ifkIMkSgpu0AESchED7z|W(fzH9sT zu}^2Ho(ehC`wg_l8si<}F7r0kf&b&PgDy?mv)B9P}1-EX7Rn1Pzs%(!=%Z!1{q07qqh89 z=0O<~lb^<|YqUx-R$^jLB(Rs?Jl??Ef6wEk->Q7%>sy_nTZPk2A+L+S z-SN@m$F@^LnzGfg6JC%L0y6ebi6QB=xh&3Od*SNR^Oef|29Q9G28d?+c1&rW5$`y0 z&HNxIr>1P}1}30yB7mTYAIi?B5<9+p83OKD1Tz5WZYAt4cz-Tz`g6FbG_=t4{?*BDOP>eq@~VudK_#J2tw_V^TAm@XuhEkG4yJ@v9WnXKT$ zD5AdI4!>e9y>#~z^mOPSzy`ZAJ{7oe4WBsvvZUHG@pAmejT?FGQ^96B9~P`hmyT^F zFc|kok7RKy?soW*4)$htcGk1L9oQ+l5DkxDy7Kq$A0O5(hk~+GejPXt=kYp4OsHj9 z?K7ZUj?6@S!#s4~%WMCs-vsN`T>?gpX#@)0It7vP0Y``L@3%y*&09Epv28a7uR}~s;nnP= zn6#7jj5=bJC))8=*@|~v=rrL7obGyJN+|Eq-<&;rb|aS7ls_1<(zkEx8aDMay4DmC z0waKRV9i6r!dw8$K(PfLZET=fQAHE;8Vy&iAF0Ts`NaU%aY$&WGx#0T!f72?-cZi` zCdxF>7eq@*88yF1#;)yr>Py1`q?MEN2S_e%F0Rh=nZl5yJO9k>9y>EA6U=)-MPUhj z0_;epfM`gTayr6)qQnSc6yf&)77$f&=JaWJ3Y;+aK+}LuCL$sNpgN|~Yf#ui8V3@& zfO)VAO>6X($A`2;PoFNvb0VZ?*x48i&I(GxU@CXvf_r$aGmH|^&AmX>vE@BIJm7XE zj*(tU?qr3R03*onLp`qtb*I7uJM4eJg{~59w%@#6=Dsl&hex74DgghCMqoY9-H1K~ zHNpz#v-Sv_PK}L?5O-#xK%uXh3BQi7Z#~vSBDAxLxCanA>`lIJ?>`OGER-D}C)tub zo0^)qmC{aHQv0~OhnGb*`96AdK=QHK?1XX2Rt=4IK-$U+*F7m{I04&r?Z~_ah^V?s zlVQu2Q(;^FY!Gc?gBTKZU(0o8Ow*U->^9#R86_npC_4)1lawdU^X>{f9j*rtqe?PO za?Ieheda$~j?Kq{(hP7WC`}lcJ46Y|yV{5L_M%(8`_Kg&%bLe`Ql&3~dtPsY9p6Fc z{jMh%+mr__Apd)d8v9)+0jSo?TJ+ZPuU^O|5AJr{IJ@c#2S#t+!#wAYI4 zu?e-rME%A2p#GZQGhBSkmCNGZJZv37=7mQxUnBuwsT`6GHXJ$cmPiDHF8|QKn0{(L z)LlVD+Z$EREof2uA*viFxhz?00aX#~ilkzc6hXu6N717aB(9*(y?4q*bI2<${RX7Cf5nwowm>Ry&5x%~3zT@)>2b$nIx z`gI3}j$K0bV*pmBrTQzOWQU1QJ#ld_tdB!8K>COjHk@D|hsGXVgp`{_CUg!CrkxBQ%2j8zc8-+n*|+aZUNDIR z^A{HfYw408nJ|pX$x&Wp-Hw)@7q<-jtBFa9Ss5VRbMh3los1=hR8&45gKd(J51tYT zdxwFG^VrmSN=j<=+6sz3E<_90+Pa0&mviT@?I%Yz22UseC?8Fd;N!CQSROL z==Q+LCrtp$IU#`QjP%3mG^Pts_Z?7a7J>WTjb&23kO@3>dmw>B;bI83%q%?ffGdVm z964jD(FMCua>sR_zegp7KJYw0iTMV?Om-M%+INGsv^X_}wto2HjVg0>6QZ%X8vH zNOSGDHg-@}>lInThK&w_+;#7P1Kr_wcMDqo*m>i`?~6{_7uq3dw0_A=Evi?azbnBb z0OP4dsTV&96a~RzmFzd9{$=#D{@F5(&Z_R+g5{6KOLCN~TwE~eLa^|1oNuMKXvWpo zt9r%eaK(qml0H^eZg)zkGw@zGPEfQAgOuv_z04$0V)qAG8v_=kF7&^@$XuOgW!P~= zpP$Cl90f60qn7Zcp+mB52C}B|)O<&P{#DxQaOZt#dDG`{^wEODSlGLhkx>Mg0K5_F z)~+4iwmdOGx<)xI=|`~?BLMa5qWSRGbCFw&0og&G3S~o0O%24<1oD+4iSvhnp5Ds@ z!c$q6`js1ROk>$WvBE~b7i$*h68-%8(uhPgoIZpn?m(EMIeuvb>B^W88(Mf>TaIK; z8fxn3*jS0uZ4i83ikFKx@D}~q*+h`|{Xk=jnc=P>AX=+6jF3oCr!vyh|G;o8Cl}=c zLCn?kyEMCY;fj=olfDeRbp7i{} zFWLBN-tR{)akCy;VHd6}8_p;p%*7>@IRx!0Ky&bXA*9r)*;zt<27yA{SR~Mo3;ipg z7NNjIvVJ`trgQgGo3G!#xrV`@VhY$BC#_C<7%)V@pw0`^-4UG_4k#+b_&b06$k(mf z4Q91uYe~(O(}d)Rf+v5E8qA}teVIH7WN~$UsKuUz;{Z;s2>eLNzvrAJUP=LV>hS33 zkvH_<2GbkQG@~gTg66~t$F1a|Jw#e)e&K)FpG1qsgFqd(-KFc%Pp3;-(#Y5wbS zhyGk{&HJ}!20^dIf8l^&53v}J4#>2nY2F^X6bU`rPJeLi2>jk(mvB$P1HJd+3)p?4U~~OIn_1)bcF1DCod| zu{VKus#S=(EZs*P^B>WWI8V7yq)cZ__3=9&0 zn(5~D1r|qvEjP2++1Tuc-|ldgXv#L_DLDK4EFsfduN$Fy@!E>#T4%P_?*CE0<9b1i}SHm2qgr8k6HEkkpyo#e_=1_$NYNlrv_XcILu?7e-xS7;NnXCM7(J4k6}&m zw9AvyVZwx8h9WRYqp0w!8gL(K$KcRVf;1->UGQUm$8Od+^hO5)Rii3t#!6jwbO!qU z?jcsvH7%WqH|a^R*$T_=kGdQWJrCcqzh%QEE4Qj9(p#`+ly zDDacV8;s=T<@IUgLyrhsLNx>2#=lUp&49g+qN0kkx)5E6UHWyPIj^-!8HC zaH-w*@W3iHgoFfziokBJzPkDB*`6~RWVeCUaBTM=Bp1A|7EvBy=3!MiCMc+4{}}jB zW_tP!n1j+Z&xncLi|%A3F-erJdW1hEK%0ya)kQhWz~8J4Es+RfXM&At8X6`s7uY}< zHuSInO&YzBy(MNgKarD9?Lhr~`}WOnTmxo*=)o7aC~QFEBUZkxYPnTdK{>S4D4eX< ztC#a@c(O-GsI>=Pzt<7W=%b%KdxfwLmVLYq4i2EcoAPI|QIG1&+(F~J061Y{V#00J zBowis81``(v8jy0@V-TU^;l%V7>|~vE_QbmMM-fny!XV=QXwHO4x&m&{OjBj=Rd=C zk&A2bp5R_W$DHqMZ=W|*nAo|7QNwZARj=!7AUY**A^a8Z(7VloN~a@Jm1W&dtg47j zwak&Sg^wHXvnIClsV?(|wQ-mBAOGFYeOggihvG|Q~G48g4-0$}7Rk>2>a#5vzMl?250x;%o zzZSqRuS_WHF5n}_R~y`MbE7Lbe1TCa;mQ1#`*uk%S}n=4L{TzPfwL^SrAZ^OKGY%$t&fNO_Revv_SAu4j=c8eFieR2e4_NZYZrXi^s_x0I|rU$l4se}tXle? zG6c=_x=c93Qw_LCKR`ZjfkiV!=LViQTGA{Mt&w5zLH?9blEIM`LE@5AHQOMAPvJ-jNG`}9)y$B^STCb+g@yPa+uX-5zN)%^K$&?F^yd@DP#JfUF|DES32YKR-VV@iLDOzV2z` zR(>9pAo7M#ySGZ~>&LrxM*}TAms0}L5ua6E2OdBr+k{JX6u%_7R4doK(<3!C)y!pP zV&F+&pklOlKI%S%Jf9#f;ZP@X(6-Gdp#!!u^MW*&Fu0>@x(oL=szha_B#9iOj2$eA zD6s+nGI6He6Xs%LQ-+-pN)E#MPk>G^r3WZj)2_dJnGUDO+E5;JKDd|`rnGBs$$O`T zk)+ch=&zG(FKMxpFv;23^%`Dtqge7sEZ_Acp3wN!;|?t4!%e!$%x+%Q?WYOvB;~db z!8YT)HKlr-hK7c_=;@6N4fA#TL7%$r0y@EFy6_3p24?iiFcBA&b|0aM$9gS~FiGHE zLxCf!Zefir2R%1*hyrLQNcU#R5b6}KDH~Dt1!4g7GPK*b%boJH!)%P3M<>R2GPb7o zfEXV^cU-?7W#$SRX@nw4LDJxNo!DIUDT%H92npfyo$`Mfe1|vB2>mmKKg;Xgv(67qy#oUU z26gQJ#kM$Ujf5@sLK-hL4NgLv=n9}fy(B7V(dE@sAAJcYDKuyq9mxynvaY9ZWO{je zO5hL-<~Kz&4N(Vy$pIn7t|ZUiOiw>ob|9?wgC;a?_sk22jLprTo2}sU7PWx%q+?$I zwM#)E+)&>jXNhoyKhmuMAlU#64?{J8Pjk4esPX5Plr&ZN&QooA`m%}uw2%ypA>kJeXgrTL)`qL9k-9)+po;^|v z;U>!%^ntMefS$ux&kcNk_5n#fy&eK!@7Sg(A3XQEu5KJwuf&|e+v9fMAD*Y-R%K0~ zQO7wxk9H2YPtI-|0od&GE+#7|&b)>4g}faD0WS;7yP=~ZB8y@{BZVpG*o;1Z?d?_O zzst69YCE~BUOp2k)<5Oyh7#(|&Q5u{t<*bqEMn#;X2t+Eu1>jmQ@J|xO#B1QbZ+&0 z+umws5s@PPHrv~^e+Bvfv~@djsh&>E{nBJoDv^f1uca!t6qC~8bd`(vI$K{l2(8YZ zeFKkrG$T-{r)WJn!&K6sF=3jBEP$}qVOqOjS)v()zAFboa^Orq zm6ZHXE|1sHBeD@4ekd&H2iv3NkW2 z`qEj|d$BUbqkYdU0L_8^Vgh+H#U&-)!f9Ot1M@8wRZm4+oPh$37iJUTFXKONyN8m& z!qE&ZED=pXXvGBReIGn|as{FcsMjX}I^vAW<)$Kw?eaak8m{Rt7! z8ed|3_#SMH{Hd$~Rf4GWjntkOw_Tt75_PEWXvl!=5SqGDeUj&`I~p|AlH_Wk>TMC(J$%^l^JiOv*BF_a+V1}pZM-{#BN{aX2t3sJ zf$CwvT(q>b>I|&J#Kf|~=+oocaL@zyf{1~xx&^AMXcGh>*v;0*jrwQ##%iiO>hUH~whYK`I$V!@# zW`$V?;_-5`1h_oSQRdvJf$_P_P2E8GmHDdLd^6z$9_CvNcA%7b}-*FKoX5@XYogDsA5LL0e3k@4B9pmSbA-_p_vDx4BV6| z%9!uEw)O|;E8g7O0^r{T=p1H~vmC_S519mn<@N+E4GR=07Un0Iw*U;$A(}@7$7N2A zz5M^>g+$SCZXqv<-? z<{*<-4B&VpNB&STMKyIB4nen|P`*kD5T~12zWve2;)Tvb@#4|qVq%+9hA_QT6bVD4 zN^y*bvoEL8+>6HiET!=xS9rd``vwZ4IeZYf+(2KKn@};jZ@i~LxVq?6G}Aa;{~1%M z&+p&Af54rYm6dF}RH%&L5h$m|*zh~boEF(q zS6mbZL5>fr>*j@<>%e@nFs1tyPR0+x&q*L?dW(S~2j5ux_+xv!##B8*RsV1Qe)9w} zB7C!0VG%tO`q$DSYs`3rf@+8Zr*9DCj2(mx3VALv9pnJ?@woRJCu-unL{B%<0A*B7 ztjrGQzTVzr`qleOnz6iqrOD?MBLVN{w{KdkS-KyB-{NuBXD<3Fu3%+EKm+&v_k9+G z*80(cLYUhdt^k=o$qx(19@UQBr<_=a5fUD14t93(jT?cFk%pl z-dMbJtf#wsuH9%1LOaBQ$e#G}RY_n#`Zs^0Nk$l&K`yQjNctsYrsfw@)6xziZXj6! zNvLoiseH84JcjfPt;{?73?9#F6m?Sn=L-0Kc|t|!zOewY0y?6I6;N_8`tUZTm|N7r z{%nJ?&=uxwWK*_4#4Au@>ZHx8G5JK?H6)m?h*g~b_hsk(x@<}&;`z~1g%i6De?6cL z{!{iL3R(Wi|2Iyk$l6}Z!%eO6PxelKSh0eo=|sUkcbFUT1@M|&@xP9g7v?ScD)E;r zWA}@tRWI|iPX=!E_H>pEDEqWpckQ`iwWZc8jkTA zd@po9_;~=D+}zyP-Bj2kuLn0_NR&XUBrT1NH8D1Zw5JZyeC$-obr^We6a6+Im z!@&5uGJbAu1~GS=AQynruwJP=T^Roq{tsLZz$koA@fjlPj0Io=7+D+}!yI@=!0#WF z$FeTK3K-yJ?;RZycla=Z+}XlJYhR1t@(_XQ4{DkBtvaGEJc^EkSxi_UCv;113EoYY zFkXF@GcrmV>t8;UV#YLJZCnSckV7hr?x)O|_YxT3Az#~KwT?)adb?W!fd-JN85?ut z)`iQlZ`-!b+k^?yPn>)HI_>~Xa1JW}$mI!~Q%HkT-cw z#W6N2YV5~nLip-$(gC3Sf~4dL$0;*AyN&+7rUnSeGK5GGde>^cZCkgxQ85xZ6ZmRF zo_{|Au0M~U^O^GKZiIB37L3<}AK%xfsou=ax)Ot*p?zhtPxV;|f}e+SZx9U#4~}g@ zXCg7H)e4~$i0)AgweR)9AU#BPf6nSABAl?gd0AP-;^ktZ5o&M20<(mMfrP_JaN7_L zc&5x?-WdFx5euoFs%i`P51btvf2;ezOoUg)lTF7=z(5pc`*nkC%Dg>*eSpa?%{p%R z_)rxcC&c%^65q@&KY=+xvursMVh}zZdJ$(wOH0ev#eVq0BP$3^2|4-s`3H*tzaw|)R}|V1D?gju_7?Nkr|@9P8_LA zbS(L#?B&bALJ;7M%*=HpQDhcGf`tAsRR8Xs4y+{D6EJF3^W*{tz$ZC;d9|`c5VK;~ z5nbukKc+8Rj7SaaP`72mXqaGCiENea% zwU-%Q6`aO$M57ky3?TUmq`D8dsWxm-M#MXAD(WFp6`+v=QJHn^tq1fC*!e|RNqD_F z-3NRTj@Hw7q#*i~;k6G6n#N-jyW3K2kOh?O;Ov4@HmDu!h4uX_@Xi73U8HnneQ$Nf z@GtXJP}{b@w|5#O2{!blCf9J7If+~#;%yL@bm@^f2+vc8FYp#H5L0(M5>hX+0)B=1 zZnx(AsYp^j`o8VQ<(b=Sk#|3Yn;%sHaoT?b-q-3W1%-uG$x!`^^zlBZWkK(ybhwX? z<}T9&C8#SMaSwUHH-)TA+K2IpZbCk{Fp0?*LEqc5&8A1Rdubq&1H^kk)fgC9b=}g4m9P&sK;c5PIY`Li@- z2Z=(FI;L4pR~@z!wT_;2Wt1DiceXHw9Ym@{r16l|8APl!WnRck!;^w9g>wD+gFwO) zSE9@z$#)AkEz%+(gFBZP9TP)-{vLnD!cPCdz-){nz|we>(!PMTRm0r}x@1(|SQ+pR z`NxY903v}~DO zwTfgwi2!$d;3lKTu5I}Eqd9vJdo02g70bfLhTmx)WEu~-9RUqSQGiam)bYWt07oAk z*}6j&3-?frg-{cTba}HJ?b|pzq(DxC8GTrxr+~B-EO>$@_Kr!@-YOgnP7u7=(K=G;{CSP@mcS0&^NC-Wt7$RbuVP8?7}R)CQ>V-MD0frLVW?0ndP3_CMjcT4A(eHI;VtXhG%=H%b(-axRDGTv1ZT2W-wNDZ!0-q28BnQE))Mm` zLMRJ1hPI7RW*48*jY92Uc0_9NnX;PAmz(t-y}_7tKn)=fHjo^VPHQsK{~@G^IE&ne zM2gHDb>4$DWMF<(pI^VAr1Y5ihgYW7Ia}KtOU^lQ3T@KXj*!sPqOnGBy7CS#?BoR1 z41a9Qi6CkQ1}EHaS_Uo(KAwjtA{$K^p`SJ|+K){5DQmF()T!;uy0So8C2a#7Kw>*4 zdTY+-;msc6>ly=Sw0{M>qbScj*mc3>V(Ln&@P>0`Q;;5Sr=c<6r2_(rW8}$U|L-X4 z-lBbI&0yy8xqn|8C>a+Qkqz?lFjVN)W@ek6m~nb!Mxp$IMlLNqpV@-HVdL=9breJX zI{MS64dMwxO!rh;_u4AJT-bd!gpeSY^U^j*eyIxyZBGX_K0dwb<433~(@8%McB)Nz zf1G03zN8z|i*rWO-_RMkrceI5!r`J zKgL!Pi(SDzC!roE^1Zy6mw9;z2FeGzi23zkQ_xr7;=t4*T(Oy3QHXky4h~ID5;{g= zrIVERtBoSM(;kxds0w&75F6vIu(~o!1h2^X?=tJxpPy`)ywQlfqH$62({^_vU-ej2 zK(|Tgt3a6mVWV~4=i=hxL{t%dXa_eNpY=P$&hVrXpXhFUaJ5Y_#EW`DVMEenR zlti4p;Gu(cBu^zd<(U${ zcKO$AHl#=WE5K@Y^&-3!p|?637qVHnrPMX-V8!<8LwZpb zYZV-)tKPrgvuvj%xQKA&M=fGAk-IOYrk~_B42CvS&A%RxDhv?zP|S_25)-`E25Ah) zitN|0>8ma4(UL`Xh6+6e`acUZF&3M<+q1(5H*UF>GEXwds#dZf{@thCelJSl%2>ZbpKhUVHTzj4hy?X>~w`4xsvpC(Ox zxs$Fs{nvsR?B=c`H9CvE#}jx#S{iBcoZLX*34;#=ZAd8HHD3?!5{FlEGzYTRh!G0I z9>%6w^j8F%4$Kdx8?lBHkivCXAwLk#1~q-5H>_t&4J-zHENi)3PandK-J?Ya%T$hV zbKh^#7A-arz>r9M4Aw6{5|>C>`B>vbS(3JKz&^)`Qm2=$PUMp;QY);TpPQRvN^siZ zf5|{1wI|}#hdapNi=vpHpD!a`J4PgAB8gV`PrtqvB5Z{oT@}om>EUOdgUyC~4`-D( zt^w6Yq6k=})tLjUI)>=Uhy+FGj_<6E&d#2M#vm%20#m1}DKbp7EI--9V|fg!>0a}a z#lsB?_uN_%*!8Q{*WNMPycuDv5VHhi$Gm(wi%sjb5EBvhGJoCcJ9qYdH0wyc@R&KW zHsGj>T-vB;$$9R@KVOvYY6c5{qLK)}5hq{lKgEE~6lzsN^q%J`#=r6Qo;eh0p-(%I z_yc*q5I;jSB9-$iP(SA(R6U`b+hBr2ZCrX&*?$czd1yj;Tt8)=i20H7l@{dQS}9K% z_a*lPSl4$%0=QeYTPRC}k=9O|q*cZ7TXTjKXAeA5G?3s~#261>gkBX}uRsg8_WS?g z&E0K@nG3`WTr%6a__qg(I&33C_ghtvxT)tZ9?j0my7?&=%s=xLJ6pw&=4`2n)7EY> zmSrF7vcf62QcJX$-WQoq*o8ZtBopvy#o3rYMEiBH#Hbf*h!m0mPVPCr_ze|Hr3@jF z!NCxMvZ@_Bbm&s%9mk~?Q4w`5=AWpe#2xirt{C-HjEs!>e6KFn^-3X=AK7a`xj&XCa^PHj(08j9j3RU7H;r4R%Rnre`0i z7^4a8%%vxWE`)Pf{TLJ#VkvPB5ziLk5~Y?~eU_>PF%p*-Ps?R(lODWU3q<6ODaNu2 zDow%Zm=~6Nug-gwVb0pd1u>I+)hq~vgjvF-`i`7kl7 zC|$g0M#!*EN1mBdyb7oYIoJ`dn58xs@}adJXic*jRDXVlS#EWdNXRG53tsAJxG0>h zT1v3MefC)Q>@)o59a)GL<$J~c(9{5|q+;F>RCIyd+r6*H^20Le?DXe2qGbAe+tyS< z;|Td}61v@h?9)(f`?1MJRlvW>lAm3ZWvJLI2qQ$eUK!H-qqI(6I5R;Gxs(wo*9cck zCB)`duyRFoI@SsM0iOm=01?I3T>je z{y)l~L+a-8WxQEP0px!A<{N4_ArL?J_8ZJo=Mvfc#sA*Q(gu$Z3BySo?`-<)kwg4+ZHGnRJV*BIMX7mq4P7nWa z;LRP)MCXwA5wjc(kGiUoQrzJAG~z8U*YCT@YU3bq%f^QwKcf|I0?LC-15F@a9jFl+ z9Gr&=igwZw<-6L27jMJ4a;3ScF$|t95;?FwOwvVhlZEQ=_u!x-LX$vGgQ|XX?t?`1 zWlROHhmOLsv7F>Wq;C>Vfo5!g4T-@K?UvyA;X0`H-o9f8B9v;1nTZHT26`R58UsVX zd9R&^Fu6iW$OapIW-;t*@O~ZC`}7Q8$QW9stxgFFiHN~H3W65FR&%3ai@cISDjJ+8 zvMRI;4QG)oAr?p&Gr{XZB?P3A5N_bMI6D{WJw;FjqF>F6R}n1?(ImvTBiT!TkC@9+ zaC+n;f8b+aQz8P6E>uhK$n#KQj*oA@h0dsr2Km`&RL{-=)(;zzjsoa$>9NU@`c@P+ zBD;=QXrjREZzLyAxT;GG7Ok`v12X@EwEnZ-d?6vy5VgA?CSWp#29B#QU%+l8sz>oL zpJ9MPB6Ugz?A3UCm8veds)&J|EJ1aK{{w{(1N}F=%;?VIBxGPT&MKEL?+vMxj=s#i zfB$;LDWG1i8nA>}7IbF|iVZY1F5>$uMjFAujH4oB$b$Y~;fDU6VaccQfnyKHvwX%< z+sCpWAZkIXMXS%=qWG;Jmr57{ELAEYee&7GFP-O%Zrm=z+TOvz zb9V}Sx?2muEF2NcEBdFXXc5Py_eYX`!2Iy!B;I#3j7Bz^LxWYe?LKWxLgsbU1pye+ zGJV`S#*sqefO|KW32+eU{_0KxW@s1Dwh&ZZi7)o%5Sq;aDAX{zBdHm?Y7sBt^DsF? z*n%^kqD#c<8k&ZVLjMV+4V*?q;6q?w1Mx3lc)fUWPrh%mMp4_l7;byd^JmYlZ%6c= z^3>5|$CL#&KM{=to@4-cS!&L{Anki?%1KP^kaNM*cB#%H0fT^Q=u$Votn!gqPBb1f z-9sd`(}pXLrXZ~WIV1xb`=2~spPF>^yIFmdE2~uYQz=O z?sS-Q9?RmG2wR*x0IU)Epf}_2)gs$dB}M9Ayv(cfSHdm-9U_6l%S@y@Wn?!?g5N;` z0-u#y{0g}^k9s~UovXMWdUOJ~I_FdAXA=rzExLb&%$7IGXYo>4Ss5WK^sye3MP0Lz zshq#mKe!bvEPjC8@wi;O!}^4t>)P+F^#!5<2=lycYNhQ3O)XfpZb7t0wr<@nHBC$m zSOW=TG|^E1qtYxOBe?$a${Bc(pKGiQQ^>p3Q!{fdJznh)?07h&dS`FR_YpZMP||Vj zf4vl``dh5EL>?}`^8M&e&+@B)3u4yfRF|JYGp)IAS&vJC8n=AclM9T~l)Fz%AtagQ zXCt1_xlvp4wd>ZUVtV6seqgrK6G^Ld147~5K=R;`M^pE1>`p@2!ur;n8(OHm)D4Ar zHRUk?N2A?U6?=J*G8LaNt^4KGKLKW(D6m-dp`?{w#>U2A2ON7oG0DELz?6sj8%Z^9 z=ind$rw0;DtsMW4^#E5oZC-wvItFOKS9n53#bIpoFmL)GP0Q+MmD?ZLXaAOv1zTk-Qr>^u@KC#RAld~uN zyPBp5Ow_a5JR|o$oc!uE@UCKDFYWV}zG?ec1N%w9-GIQ05xm^o+<+%7x-HHGPWh}h z0#=?^SL6d%4Fj(Lvt8!{T&xFNg1CNtK5!kL&zt?gqe}{abvv**1YGI4HcT3LDI>6Y z0#2`nRBNr1de{G*`CUZ~1OuuMBi( zGjQW)K)?gwO8NKiL7UEjl~8D=HL%$STr&%tCi3(41|B@bts^WZ7B<;B#MJT_aBV1X z+XwIlLeLuQ+C{(?7-Hu0Qt@V_iO&#g=WB6wt9!4koBg*R$K?kzie5JdAe^f#Nq)1_E%$O^m%_<= zco-adAd{3wPJpLg32@IC8ZUet_uAB$!OZsiOQ8?*7#R-ie>Ob_a#)Jt##~?UeCKUq n%p%F+QN^HuB`%UE39B>g>Wg Date: Mon, 4 May 2020 19:04:21 +0300 Subject: [PATCH 03/79] :memo: Remove the view source link --- docs/conf.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index 44dcb23..e910dd4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -80,5 +80,8 @@ def get_version(): ] html_logo = "./_static/sklift-logo.png" +# Removing the view source link +html_show_sourcelink = False + # Add supporting *.md files by recommonmark extension source_suffix = ['.rst', '.md'] From cb8c74f54f9ad27baf00431cf853d917caf62225 Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Mon, 4 May 2020 19:04:59 +0300 Subject: [PATCH 04/79] :memo: Add :star: button --- docs/_templates/layout.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/_templates/layout.html diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html new file mode 100644 index 0000000..a19219b --- /dev/null +++ b/docs/_templates/layout.html @@ -0,0 +1,11 @@ +{% extends "!layout.html" %} + + {% block menu %} + +
+ +
+
+ {{ super() }} + {% endblock %} + From 1afa474493d593464abfcdc1142c17fb0850ebcb Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Mon, 4 May 2020 19:37:05 +0300 Subject: [PATCH 05/79] :memo: Add header for treatment intercation --- docs/api/models.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/api/models.rst b/docs/api/models.rst index 5a10f0e..ab276c8 100644 --- a/docs/api/models.rst +++ b/docs/api/models.rst @@ -21,7 +21,10 @@ we get the required uplift. .. hint:: In sklift this approach corresponds to the `SoloModel` class and the **dummy** method. -This approach has various modifications. For example, double the number of attributes by adding +1.2 Treatment interaction +************************************** + +The approach described above has various modifications. For example, double the number of attributes by adding the product of each attribute to the interaction flag: .. image:: ../_static/images/SoloModel_treatment_intercation.png @@ -35,7 +38,7 @@ the product of each attribute to the interaction flag: :members: -1.2 Class Transformation +1.3 Class Transformation ************************* .. warning:: From 73fac854a68f6c2b3904ff3517be3a6016bc37cf Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Mon, 4 May 2020 20:18:01 +0300 Subject: [PATCH 06/79] :memo: Add SoloModel changes to changelog --- docs/changelog.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index ab46e1a..8e7039e 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -8,6 +8,14 @@ * 🔨 something that previously didn’t work as documentated – or according to reasonable expectations – should now work. * ❗️ you will need to change your code to have the same effect in the future; or a feature will be removed in the future. +## Version 0.2.0 +_in development_ + +### [sklift.models](https://scikit-uplift.readthedocs.io/en/latest/api/models.html) + +* 💥 Add `treatment interaction` method to [SoloModel](https://scikit-uplift.readthedocs.io/en/latest/api/viz.html#sklift.models.models.SoloModel) approach by [@AdiVarma27](https://github.com/AdiVarma27). + + ## Version 0.1.2 ### [sklift.models](https://scikit-uplift.readthedocs.io/en/latest/api/models.html) From ab9c17070641ac1f04444492ea77a756d8af8e99 Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Mon, 4 May 2020 21:16:12 +0300 Subject: [PATCH 07/79] :memo: Reformat tutorials page --- docs/tutorials.rst | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/docs/tutorials.rst b/docs/tutorials.rst index ba09bdc..adbd775 100644 --- a/docs/tutorials.rst +++ b/docs/tutorials.rst @@ -19,10 +19,34 @@ Basic It is better to start scikit-uplift from the basic tutorials. -* `The overview of the basic approaches to solving the Uplift Modeling problem`_ - * In English: `nbviewer `__ | `github `__ |Open In Colab1| - * In Russian: `nbviewer `__ | `github `__ |Open In Colab2| +`The overview of the basic approaches to solving the Uplift Modeling problem`_ +---------------------------------------------------------------------------------- -* `Example of usage model from sklift.models in sklearn.pipeline`_ - * In English: `nbviewer `__ | `github `__ |Open In Colab3| - * In Russian: `nbviewer `__ | `github `__ |Open In Colab4| +.. list-table:: + :align: center + :widths: 12 15 10 8 + + * - In English 🇬🇧 + - |Open In Colab1| + - `nbviewer `__ + - `github `__ + * - In Russian 🇷🇺 + - |Open In Colab2| + - `nbviewer `__ + - `github `__ + +`Example of usage model from sklift.models in sklearn.pipeline`_ +---------------------------------------------------------------------------------- + +.. list-table:: + :align: center + :widths: 12 15 10 8 + + * - In English 🇬🇧 + - |Open In Colab3| + - `nbviewer `__ + - `github `__ + * - In Russian 🇷🇺 + - |Open In Colab4| + - `nbviewer `__ + - `github `__ From 72f8d4398a23a8daa0eb8d7d1d9006383f423e7b Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Tue, 5 May 2020 13:01:05 +0300 Subject: [PATCH 08/79] :memo: Add sourcer hall of fame --- Readme.rst | 37 +++++++++++++++++++++++++++++++++++++ docs/index.rst | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/Readme.rst b/Readme.rst index 1826fd5..57409cd 100644 --- a/Readme.rst +++ b/Readme.rst @@ -159,12 +159,49 @@ Development We welcome new contributors of all experience levels. +Contributing +~~~~~~~~~~~~~~~ + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/0 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/0 + :alt: 0 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/1 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/1 + :alt: 1 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/2 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/2 + :alt: 2 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/3 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/3 + :alt: 3 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/4 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/4 + :alt: 4 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/5 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/5 + :alt: 5 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/4 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/4 + :alt: 6 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/5 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/5 + :alt: 7 + + Important links ~~~~~~~~~~~~~~~ - Official source code repo: https://github.com/maks-sh/scikit-uplift/ - Issue tracker: https://github.com/maks-sh/scikit-uplift/issues - Release History: https://scikit-uplift.readthedocs.io/en/latest/changelog.html +- Documentation: https://scikit-uplift.readthedocs.io/en/latest/ =============== diff --git a/docs/index.rst b/docs/index.rst index 343979e..a13a4e0 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -50,8 +50,46 @@ Project info * GitHub repository: https://github.com/maks-sh/scikit-uplift * Github examples: https://github.com/maks-sh/scikit-uplift/tree/master/notebooks +* Documentation: https://scikit-uplift.readthedocs.io/en/latest/ * License: MIT +Contributing +############# + +Contributions are welcome! + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/0 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/0 + :alt: 0 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/1 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/1 + :alt: 1 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/2 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/2 + :alt: 2 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/3 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/3 + :alt: 3 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/4 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/4 + :alt: 4 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/5 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/5 + :alt: 5 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/4 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/4 + :alt: 6 + +.. image:: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/images/5 + :target: https://sourcerer.io/fame/maks-sh/maks-sh/scikit-uplift/links/5 + :alt: 7 + .. toctree:: :hidden: From 36d36afc4ba7a098286600e407db24fef2905ffb Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Tue, 5 May 2020 13:24:22 +0300 Subject: [PATCH 09/79] :memo: Add contributors in changelog --- docs/changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index 8e7039e..9d7416a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -15,6 +15,9 @@ _in development_ * 💥 Add `treatment interaction` method to [SoloModel](https://scikit-uplift.readthedocs.io/en/latest/api/viz.html#sklift.models.models.SoloModel) approach by [@AdiVarma27](https://github.com/AdiVarma27). +### Miscellaneous + +* 📝 Add contributors in main Readme and in index page of docs. ## Version 0.1.2 From ce161a903090065f698b6dfff4fa2a6d3b567f3e Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Tue, 5 May 2020 15:11:15 +0300 Subject: [PATCH 10/79] :memo: Add social network logo --- docs/_static/soc_net_logo.png | Bin 0 -> 97968 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/_static/soc_net_logo.png diff --git a/docs/_static/soc_net_logo.png b/docs/_static/soc_net_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..33631737c7b14e7382dd73501dafbe02b4b1cdbc GIT binary patch literal 97968 zcmeFa1yq!4+b{mmA*E8%pdu(Wbhm;CilBfr3_}myjkKhj7HLrthYo230TmSxX^|4? z66yNiL+tI|@BYs5obP|uS!XS0z3y9|=g!}K^>xj>VXD^^hzV&3AqXPAswl4pK{(*A zn11-UplMp^&IApCo#Guw2%Bz^E{N%(^uFv9npf030Y1-UK4Ux< zwdj==hjR26xTV=&?-H}I_pZozL8k4iUOe9*zSrJ3JkCzJ7?xK>)y!(uIr9<_SF2O7 z?~5}aL}^SMq)1N3vp&nt=8DExS-QmlhZ2SBrn#@njgF{e9N5xJKVQ!)5 z;eb&0xPA-nVFed4VUdy~6n7H^6Ce>zMoexQU;;uy{6ZW|ygV=gZXP~vJ|0e9K2d%iQGQ;g zqYsNDA^4lPgNdoAn*5cc<-orrSj?TA>_oY_U0q$dT=}?c9n834A|fK(JiOezyqus1 zr=z=#laU*zjpNzFNsi}{M>xVAEbN>tY;Bm(^BNi3Iy*_Qu%H+E^K*1Aq}`tj**G3y z2T zxDyqXKZpM7ev!z39qH(F*#$sw1nIwybiCzmhu~I2INCZpz!8^Sz)sHo+vy#h)DVB& z&M!;_y8r7$P8O#B#XRUY|0Q?`H;eyb82ZiOumhSpylQa(ny8!u!pO}s z=n@Z~C=bt1lN|Q^#~dnvjZBQ3jQ(X70Rd5d*w3^4t?xhQu{E(Ub^oPV{_6SD9DkCl z=q-esld_RJ!ol$;`~Zpv%qeSR_V=g9FRU#Nn9R<|!4ZKbAqkda8v2tf|71G!n7`IL zSnIkG5+UhqXKi8X#DugpL0DVZm@!${Fge04tSp>3tr12J;2%!z)(G@dJ9j5@TN`oi zf1Bj5GyS>VKNmxv@V~v-!6g4&Oq?4nX{;^&j?v-MzeD%)=KmG(pEfOT3wK6~1Q{DR z!VwVg|Ki0+0y5?@u`m%8GUgM8^TBvHO?Y7)ZFdQxb6BPR2 zJHh{Ghd&)e&eq!2K?Pi|B;U{H|LgHzc>XjBm;$PYmcS9$swv1au>mb03|RCp68Ndx zPt%ydMNMrTkVa0D7DyvA1h<`ynK<`f4}a=;AXY`M+BiBH0i3VOAHZe-V1pwBV0`>A zK~7^6em+iqAs!P>5h0iWCofFESj2<}#&2vSaKPp&DnAeZkExGA0#hGqQ4?D@nEtO5 zn80}9JjTMjoN$DYF((WrWWp)TYb?NN3^NijHbTHnd3gDc7y4Yc>b`1#eZJsuR-u1!~g3w zT+I@jBL{?x8DR8Z(@ux;{(ay-7x;H}{{Q7F9F1K5dl$iP z%4aGF7ZT<)Hs(Qa^79Cq0=^Oy;uIF<5rmltn~E4CfcpIJT?Ejfe1GcD|C<+qhWv1S zxVe#y8Nx)8`}l0f5B^`eJ7Ez%W0-)c5T_9wX3EJgXk^4`WFpMR3Fm_w!;ScaOnG65 zG6aCHp`F(ePia=W%7lgzAiVy@w88EM$&=#GkgDsND$PO4?W1{#T^TPrHO4!^HIe*qQ&^a`o5j zmBVZO&6~#-!yy&_-D)|ug#OdYLHmEe+><|~&nsxILK{8*bN2@*0pJOX{)9W)G((%2 zzbaDyG5l}bcr-gOEDs!pBO?}V`~RxdgP#4T;r}+f?SI$2JcQt1rul2NW8{AV_$O;p z932`E1@~d|*ey`1yIjhZ~0e@6p(w-~V&$o&U+$ zpWpv;>|aA~+gLbB@*XYskH( zTt!E;tqkK821h#>_0L!TI`qz8Lk0Q&Hu9%8M{U4b8c*@_493$~d?Qgh#38v#tzu`JY;+NXraQzZY$DMw|b&SL>wZGx| zC76yo{f6rpiC=1e!}Uur9e4T-*D(^m)c%I+mtZ>X^c${YBz~#=4c9NhblmATT*pZK zQu`aOUxMkl({H$rk@%(dH(b92({ZQYa2+G@OYLvCehH@IPQT$gM&g&+-*EjBOvjym z!*z_rFSWnn`X!i-JN<_17>QqMf5Y`lFdcXL4c9ReztsMQ>z80U?(`e3Vf5=_UPe#3Q)#4okK;rb<*jywH^>lle&YX66D5&rda90(im8yv3S$2NS$_T0e_ zbuhsd)l?wJ1N=0KUjPJc?t^v;g4FOK3<@m>5>134D%)Od#ux}ggy*Wf%q_Qpxn0*J zy1bG}aaz5$1Ob*v?KYe)pixJ9szi;wZ>cv|aLAn>~>J^}8 zANtKgoYzhga@Uth8bx57JpOR1{2?bTfAlGJf;Jb9Ay>fwb?X}FW!#Mgoj_M0UZtnP;<0Wo40o{=VMI14R|7LoyS7&>z_m#Gf%NGzm%Y1kHX=_IsDM*|2a zYcTqdW`>k4nV(@}`w3@FH+Tw*qbIIlJev3pw%=_?5|@c@w$d4r6mK0zzjX>f zB&DpB^H?JoQ1!_m|FS31i-d(@>&S0W~rXe=8@ql8hR1OKe^L>nT z>B4Z6X5V9mhHYr>s~wtzha`_TtwlUyA+I8xZ$h6H)nHF@2E6Q?e|bpTHgQ-ZKG2Pk z?`8X@R?w0RBqnT)Ubq79XxBGq$(;98I1F_#43UU!{*Wj%dOb(XAhfme6&~8Nrt_32 z%c5b>ZuOoFnw6>uqzchnIH^}q4T%R?<$cRTVOo!np}BEL`)FHNd=hq`tkwPe+e8ft z7}gW*j}F$|3lT(5ku_UHc~dTWYt{_~6*AnM9HAsR4@P&Qnhy7!9};9vUoRoFQ8Lwv z@%erFHT138(C=kjM$gg<7w}uhGOv5N`y6KpTMGxxxlV072eKh+cKMv2o{)tBqf9B~ z0kaQb9&Je*CG%+~dzW?I7Ava^dr+hlJ(tk&{b@vF_1T~HO(-Q(!TRzp^E~>Xn@2ZL zriC-o^kTEyBjsd}p9-BZ`UENAhjhUi7s>Xhn$*uRcAZ|1ALS+%l8naioAIGQIl)YJ zdtZV$W1f;8&X-jN&5C?JSeEqg0<=T1{YWv~pquAMP@*k((A+n>(`XpQkM?Yd?H3QI zDr1w9(dukg2CUiW0(xU2M;q%lAw%s}(E3$2w<T{*=?*Z zma}BHF|_GC&|9Z%Jwo{$$;jT@g2D4RBh2zc!3Ug!dqk0!+@Xeok+p(16*&%{Nj|4N zlS7X@-}a3R%`%@alz0cHpH*+nMadI*7hx7{20_Xp&%ibLjRwpqVMiTZ27TJie z?zyZWK8W9s$WIia3<*SwCBp-j68av!js?{bWH9=vZ}vCZnTMKV@I#~xa*!lRMwpx| zkOfu;*k;WlpgFvy%McbF2}{-Wap())fniWV^kf>4Q0M9?NOwt!?Nn!^{pR8+K(#vI zzMbH5IwK1&?YmuIsk*<;iq|d za+;b{lIxZ2nRRsx27BKV@3&8i*Z~IqaXRuyxL9yTYFouA zoi|6B?GQGRDX~A-tvt25y6W~V*$jfDc1B6<_jcS#SkW9JeMGRI+6t4DBpEC(GHxcU`Tq9O>&cbA7xrg;R)l;{-;h`(|BxyswCVxz zw48&i`C6U}v}i#}@nm+o_{&jo4)XZ^YPo^NMWNk!n(*zld12=n@|l?#)r;{VxSOjLA$GT2D)zG9M_xQ~sS+eUi;(}pR_eQG=iPNbA`3jFWEg9l3`Qrji3Cmh%k z+k{=_`c`!8i*J8vfVH6xdDm0}I$Pj4ATy`D^U!m=LYpuHGodU? z>8dN2H1p*}Q(H>fCBxgjzVS`X&o>vrTgk9r-YPRdLRuV@quY{%L6|KqEivy+Z(h87 z*>rbz*KNcfPnC^)WLxq>nnZY2l_<6hkHC8>$hb(Wv-tVA4A~E25|VscdU~YNxl`11 zbaMJ4(RTq04Kbvth~vxf$H{NS$m_FT!v&ZJZ{4^d}tZwQaBT@)2wAx%T^ z`MsWe>088TeeHT^msfT3`(b8Xe3G+OqTpwK@yY05tsN4Hg#4s-nxtNpBL{f|1%ppt zxGv2u0IymoBa;Pu&}2`CCLnWb>sJa=Tb)x^KGC$u+um1uTf#A0Eg>N>VO*3{>$W@= z5*!i|+tk#wQ0X}NWw@uOr|a`)j&ke%?-gJLcnfu0+eGeoL}Vm0KITr3?JniVX@1H5 z&GzvIf2DA;Y0!G0l%Sw)>*C%_!5*Qu6}Yn7@vfI%6`D& zmPP_dzpJnU33xf=$O?8q^J<#!p8HPg{stp+ptQHQL#i%t>W1-3{ZESodzj!Y0W}|c}_Oj!6AqZ9G{Pp$y_rv>p>-$eeM@P3$hrOzq z)IkY9*T6$-M^08d)9|IiAIJnc;Ew~1L7Nxc;L@=*YpoRs zyvg#^!8|S4Dk>_T>270T?ck>>$AhT!-AwH4cw*Zo#sJnI)uF94@NQI@wM(kEE`X__ z7|{lxYNquAiincph*H#dKP>K$_-rQno(Yr3jE#*=diXFf?o^T1+_M4-*@hMI?Tu(d0uL9r(OPgDi1N61 zlPkn{qzpS#TdT7-01;2y29de96>|+%^mtsUFa*4o)$Df!b)h_qzvp5t)v_C1`p(x2 z_B$KPR{Esv)B(z@@aV`$iKW#7-`!r{jV8vuPaPeqrgihJt*!Q>jX00g*t`4sga-x& zJS5ZG)5DsLpWJI6%QfM3*T%OOr3@!lWakz;gA#~SV~ba!rl(IO#13yZ&aJH63;_~! zPSRG8#*1Wno&=@ypL%< zIOdUK#f(DC60*(O(}t`f+^coD(yz0|1|%R<6xq$NT@w(@>FrI_ z0YC$hVqsxTEiRG*78<0dr&n;S{7l%s@>w=>WNx^A->28PeQuy^wqaz%aDVPGQwue} zkPy5#U++MUn0FqURPw!?4AJoRGzs*M?S4#k;s~rKMUM;jY_3dJEDlw>-VoS{Rnsrm zTcz&iYV0QC!pDSS(k62*T)5C16%p}#W`2IC>*L3d^^J&?FTt=-7PF=cjiw}xzv=N8`Lv6J3DU-^wzn^jWR-g<$6LQB9-O!_4TN&Br?ph z+b(6TPX)&qUyyuPum+e+RwBV zJI#x*o+2>eJ@bVLY_in+*a7|6-%kK1A^}&azIGv}RH8jRz70X!Ab@kPr20fV3CRUk z)>q*3RxX4D_0EJh+Qr#SS= z3M&N--%U8Y`SRtYVarDgZC z-P~I08vuH*X)eQ_Jl^xj_cHgs?(u5+nxp(YP+{!mm@6s?s|)@%PTpoRLjggysl zisK9~dLyZgM;m!#CbfO%xpo;LlwaAk7%v>94rC-XP;KK>T)JBN-d-*U1JuCVnoB2T zm4h7O*&B;h*)4ew}`4I~XHt(1hASl|piFwUXH{w|YU zNN}(qTaHJZnnG!hI!4B%yH>gN8OgPx=+Rk&eNkI#w8|boa+U82M+F${uNt%_aOwb) zJx)!?dA~^OUA@!v$2+~wcvg(*daIhdK5M1J{RO$GzPzF9N+M;XD1k;E@=Y(vwD!qy zXuxdI%4Oq1pkI%6R8*8;s+6yfoSE6=r36Ie?e*L^S(f|KIy$tr=&+GC`SG&YGJa?k zAsedmaYB$XJXxNllPbEkT`Veq2|uGO%~feJ^65f}AQ3hfDedHmGndrEx}Mxf|MI1y zqmU(8`TDa5@}Jhd9KE_v4fz#uP)?a-$jXn(nJSy2e*i3RcV zDlQ1KqucKT)EHby7Z_W+q!88U<{s)MVN!GQ<5fr&x*~@k_K1EYdVd*7WLDc2wfp)k z>G+T7u0rH?0)J&8$BAZR`@-7V-R=(`KD2V_z9@95W3THL*tL95)u)HNw=}o9WvWT~ zp>=&%t4K>X`He|JcW*Bvag*Ie$VrcC(<@B~?Kf}|9)>V{Wcj<#FBhcklI=|_`qEI( z;IOtgDeL>aU2Xc{gheYw^4yCoMsS2Go9Ya4pMApzXwo3ieX=pma3CM$dl_0Ew3zJ2I^eOL%imVow$AS-LZEbBuX%lL;Y63`U#(e$St$aY4!*3^7 zt{R$#Y9ha3FvY3SwA#<{5M4&f{V}t)qJouQm2kbO+xylfvYa@U`-mw`o0e|mRKFg$Khq~{Z64_FUM##%NZ?gE3E|JiCh?4-Y5bG zy|2a5lh!t&0qC&DGi_2Mpkbh6QR87A8D{=0IIQ6ypYL-QI=lqLatnxLWnK0^(50O$ zAim#Pzct6O^Tk#?>OP-b;Sl)`PSJ!oOn5)<=S+KHQ~WC7dv@lhRB?7@w)r*|HU-T` zSr)OBu+%=^bBw`nT5=O-*xv$b!IMj`>Qhb`rSz>JVEfzm>ba%@=If_|YG$|h2CM}= zZCzd0Ta1fdcmcuX?d4SitZdJ<2RShP)qTl7jrB?wZHB) z^9?S0rVj;;o`4sQt-5}tE2U)Hq=|O^!O~wxGc1LxOLsfw05j~NxLh=JA}_TAsz*Tc8(ZR4)rNm|?% zgiK2AbPf*c?0=2D(c?XKI=vx%=S}(s+N2=EPSkj=wS4_zyoWb1!G?hzA1d|T-}Aij zPc;| z#FL_$U%Qbg3UEGHA&iV1QklF@c=|<#W)sC8@nTmoM?`e=*~B*H*f&f>P0~u0`_oU- z_hgH-tUp(~E^_6>L4H8!BL_<@x?-hvyQIA5CVdtrS)&-GY%a>^vE_&tlr89hJGW{{ zO5|wsaBRLuvF?^uVd>`P)(p&z-q){RQ=}xnqd3)r>j4a6*J1B`F@}7E;mhz-S<*=03#u6(;&B$o$y|+2(>$3TM;w-Q= zw#R@Es03IX_#`Xh#0?c3Z57DvRA32O4pli1e+EZ<+Y~}Nyz=%^!JMU~rS`nLzGv<& zOAd0vFxgBVimh(kfD$=b;PQR>l2#9_E?=*9iS?ajKyo+X%39SbyveVCWf0EoJ$TDSgyOIW)UCp}h@n(zl`+Km#^8F9aLrnJ- z4Z9wzP*YO_JG(7h`%VSsBlGa zCFXI*E7|A7;YeeW3G^aPg~?kq1rwVwdjIHLwCOLN$ji>owvCLAPBe`O>rs5t#nX~e zQIRNwR`17xoia1s-5Bp90oCbPeSYHZ8ln8bawMQ}Kvdbexdc(;8I_f10EQ0ZEs?(9 zN73Tg$O-q=eSPFpJsX%)}P%A7CrCeHyE#yYBX+&O>tu|uUUrk`?-nhY6s zzqR0CwQ=)3to0$+;S^$G;z?XwT&@$6>bc}=3q#?+(@ih;!D1RihCfi#hO_fweHUEDRZXdC_fpF-$m|X-UdlSXkIEcV97O z&e>`9_xJCXAq!Q1a(%vtW47W!N=i=LclVrIADs25;lLr%*3lVtXP|3MCY-y=)X|dk z968vp#o`NwcT7isffvY$ZLtDMUFf%Z- z6Z7NM_29>tItddX<`K~|P|R`3_KwC?e1EWK8LP}o1;dcZAA@#T(ycT zGm@xuUW%v*_=z5+6%|b@;(g_jA3j_sA|c5F15>ZJ4-N@YhL3^(nXu~uoh<^5|E)t~ zi4$`+>>**AJLu^#tQs{bX*b&+i)L+6szsGV@M2 zZ2ALbUluj4yClAt3S84nd6rQ;nUQPk%sGL`!Cl~(`+n){ge5EG>`m@&uP-in4}Yom z-OmPOVZ%Y`2%>Uz)50IL1XC`9AZArn)zY^V+bk4{I7JY7H_qYNfGR$W0-FX-7R>B5 ztU!j{o!g|U^!{nfb057y&KLRlBnCTURLj|nyP-n-Xx6xRcpD3a@}HaeZb$@j`)-oP zNH{NF_*R4CXMJ@%|F()-R#Mac_X`CwS|s^G6>)0XX_G?&An;QH#r1eBf`}IhIbjf= zY-mYK(o1kL^;#Uybh$J^=w^2ot;{Y%`(FEdyVc_D;oke(!@e0>94%=+Thm&4dPAC= zZ8Y85DNOhy!X%I4HiY)S4Ub$h*d%0SWgT&6h*JYGnb6j8{JT(hMiI^T_axg9Fz^rQ zPZTezK4dIzE1o-5lZlpHore)$rwhK+C7fPs@aT~f`;+z33-59+*M1w;4TQeCGwNto zjQDP&NJr|$T}cRftMa`?qGD;mr^;>F_&eadp;Fu7I-tntv%#NM&3xTTU$oN~WaQRJ z%{RBbHw9dEBcL*dH#SP|4^tLt2xIo1R-tgV(g8UeFrxcdFeV@(T0KqnLKl4c0wqjMTL>LT) z!Hiv1U44^{Jf?jTggrr+)z%VCb6!%84hQOd;o-3Rn%VOHR)E?4YB!9+SgE2RpLjuh zfsrbLbEkUgp#;5Ni6>PpCql;I2gC1zrP(6oWKT)hcGg^VD+RhRU}$QvCJSp!V19e_x>E*Q}gbtSriEn<5HQ;G^_*^0Z z_EcEB%6B1Yp>|8d>vhhIy9+bD_^AX*tM=BNHWerX z@!cO?faW$nxYjkLq@edqe6;7++!AHP^(*0|+2Rkj!|EyF5W8O*D_;GEA&rJ`SiLtb zzB1jLq_T{KhH~WD`-)$I(eT{+`Ns@7s4z|~VbUGMVBBgEck-^MiaIZfE!M1j1z{#G zK_Q_VmZ%`);J~^!HC*1;*SF2JetRgL;mny_1CV+!0RMk6^(UiSJq!4|J@N&hNSJ#4 zx9m7s!2QNW)V4N1Nuwc*cF9`e{dM0po`j0-?5U7zV-HF(9%1y9_Df$KpJcFUP4`)0 zBhjPNQ*|9t8lePPnSwQY_Va$pD#E~NG@=$wn-rAmpQz0WIBkfpO(eHfj=r1rC!%LOC<}kDWeP3i&qX~nGLk5 zXb5o*A*|>x5MPnp8El`IR>%&2V@+UFtHs-E3c2~qOkvGx=8(m$Ox5xSw!G`k8;gJy zBE?>t@SeV;@tjS!%84BWJ#Im4fk~a`as;9dDE9B*dHp|_R1 zJ~Q{}pW5m~KF51y-9R~W&kB=}`CdyBT8xB%!1Jaji0(~zb=jER=tOzzT1ik)Yvf@x z@w{3dZ%qNV>7FXf{l0PG55Q4j6!YHt@mi>U^Zm_M`xX!d23A78c?3H#5z*HmvQ5wf zQ<^#$SNd}~Qj9V@)roHMGL%@hyDCoFYQ4_s-%z~`Xu0~B{IyQfE=?jjJHai zL4!ZNA^B!luS1Ic!bdiaYae!-a*-fUN22?}Zgk`8SCfoyumow!8Myc3L677yacR(3Fbyh3hzT*o+)t-$!H6{_s_t$V_c)CSEnmyDUc4+B3 zh2K##p4Dqx?vdK1a$_a7-KafHLV$tI9CK+Oc)tEhJ&0ET6v@xg*q?zyn$ub1!AzOJSaIB2a|s$%0Uonq^jg{z7ZCCWtOUtwO-@Lgx2~q=>0D{`k>;6eHYz$i; zw3y^SG}?w())xov?r$mV(==yxro7O^z(2#8A981Q^r`}(*h#7c&Px`F{++UY_RMoH z@GLad*wsr4+SVN}ox!3;shS~*vNNfQ9#i!BO3Jh2pDcMyn{AGYggt(!l=C5{YdYMB zx{eQ6M<9jWz6N6P(~UtVX3?tG$k5R6GFM{C#frTAT1`D}ySjyj71U|1>i4?QnsU;^ z>l3eD$+O;91OfWq_C7_WFuiIQ=6I!1blzSHAMMY#9#*W9ot ztM}GnS;%N{1v;t4XwYYj%l2^vD$3%)%;Pbgh@^F;UqEv_!;C_^woh;#A>s%7&H>nCpw_akDm#=&4zy`0_jM@-a(M-v1V+p@2D4G9|^92%o20w?7C$5l+244FE{ zD9LW<^p)|x@;@OhX-8H<9Fb=8Oec3qT`BkZxUeV44Bfw-ry;Pmww7Op^z;NSooUXe z0olwBK3?9BBI4o?fwgnxbX28mjYzvyREKRoS5tf|03?r=kguP( zFn$<lM8>tCtIWXS@0;y(I_(vdPpM-X-D?5Gc~h4n!5g3Cv^36H8U+In1|;S-B{@O|P|L_G)b_^^5V}m)*pNKYjWH zVyNhJ0Y6AA)=GdFj+nmtL_Gb4>ks=z-1S2iw~2Gq*pu5QQT^M=wfVzyeg%TB^K5ib zY|n{Ti~FscUIySXT3cFrz~YtWyF5fIfuj!+KojV)omuCK3AAPDR(>R7Nef($v>ZMjZ$faP9uu343OU5g#6eqVoJrOg zLh?4o=DK^(RS~-kCO?iqy3=97CoNio4NdBozt^_hGw{>MZoHZhU(TUL$G1Tv}DvL;xZxLb|w-8NO;!|P!liW3YS3X~~I@_E6!L$S~ia}zl zDGhweta|ff)bb@<7d}4#p6A4-R~_os#q*Ap4{3ul&*zka%&4g*fkqDje@oJtFvEF| zyCqfFVy91^)&WT-4+sw}j5B7dfK9r?gD$8!3gS$$4mhvlKBA?~2)V%Y{OzYZ%n)-> zO!*0lN0|W#9?STfU+x)x-MFX9Xprj=aOv)jVIo0WB#+O#4VpF=uy+W(9=BBkt1ElPX$OOfyw@x9m;uJ8F5p)x@j`2XbJI4ScJ= z*r4*re&(HwuGb27n%n+%N4fjyosN*sZ^cSA7f}LlCwSjZe19?NKECX>(*TkOCO~cL zu*Tjga+x2XNKH*`+uqs|H2~B{IlQh8!Y%C}hg%@x{{1U&`-*W(QtmfqwYNO6Z^*3& zDP{3b_yG@;Jp3{>T$wkS2wtQ$Rh6&wq-$@cJFmUGqQZ08P4^S-JrFI+Q43?lM~m5` zM8XhuLY%7h_>DcO{ZrKpx}=Nm&NMv3V;WO6$|Ja@_sqH~hF16VSC5L^u_elQ#<`n0 zow%ptkh#RA-?Jk=T!muDTrh8Dlbk5zz@L`KJAF#+)?FSWL!vAt$&+%(DWP#I|EE|A z6P@NWMcAszZ}J{aC9|#EEg}kxxrviTVn~>+5yO~I_3;^1gC+G!p&eh^TT;`eBEGY{ z`mR?VYm-o4aD4al`(=+K86J6;r0&LR?2?lh2Qlm(Mvg7AqE z@N_UxtGZo*H@Om>GgYZUu?rTcbFvlx{`#zofq}s{prcmHkx$Y+W^#j1P;t$^c5<@!K8syDA4Y)Yc53~N%k`twhWpYoJuX>G$e7P z4aIebfKbE&m4?GdrBBiLLe3g}VcD!~3?U@ZFP}%D2XaHN9%p2qzpwI1<~&ji{q&;W0`%z}g6|03>TC&JfLrPA6CDCO}L%annu% zIwhv>+khQC408EF_wS!v2U(v+YB)z5A-pIFr1)j@^z@Px&w)6nS6gx80MudsFfWZ3 zZEnpUru3$8&p-&A)v@%wgi70O?K{*ALkq;|-VJfB6|)(I%nx6bUZ2F%aaIk*l)%8Z zP|)*%JNrG?m?OYHYnX9KCiQ_mx&PZ!p0W+p5)|JE-qn6jlP=}-Yr8mM`mpw8gam$Q zZYvQH(@BAg{(AkXPszzIO5^yc@yOgs%IGkOuvV+wxS0IfT77dAujx&A;v@JMyHZpre6%2h^zBx zr~0S5(JluE6n>5+`%V-neuAkcO&#QPf@Cpl>vshKd4s4_oSLJ{TI#jjTNfpNbjbPk z_Vx933=i+qf#Od$nfegV;tRRb2xq9-2Rn(swp7*sppP`mj(hM~Q>v3Y;lf6$VtalnJtdN}Hf) zeD=KZ0+T#a)l4;||91VuOC2d&mKp*BbMvOw2JT+@7hhVsX$?(Agf*>ThdHJ;Icb|; zHXtN0C#Jq8%{DmIpfT}AOG{F1GV-CWSu^jAw@y~+=2|P|@o8?iKXudJZMcJ#%tuyE z)>y=m$B|QG{JR_=cD6RF+l zDo{!%wOw}q{{4s^?X5aS;A8il1yR=K5Jn$2kXxzoPsU6uC8%Sc5HF+|0d1WyTz zZT`KoODZe1Gvp&r=j>YKdU>7Qu9S^XDBJSY<}*LL9g~j*H}=!uc^fO*+e^M>mh#TT zQa!82!3qv@&cwm`P*-=q$`(-LLvi=9*ToA9O{uB$tvcG;QLl`PuBjW43>*u5_ z-nsxP9P~@e%0@w8l?~J>g7|&Mz`#9FYy}EeL73&$`0{B|@udbvQ2leh4g}YBpD%7- zg{T=AuGj5t&87ofo2p&rw+cYb;$V3s#U%}Ct4L5e#zXYvZUZPL0(g!96|*p?=mQ_|E zsN3J$2FZ}XY=vkRd`xupt`Rk;ngu~Fetv$s0Z^Ql4st;Pbdp{hO(2s2Do;VcF~y*lJh;CZ<26aV? zo3TaH4O}WYe0F| zkXo)&NAYugX8D`=C!r2a(e_&xgTRq8>+2bTO?+9LL7`GNxJTR7#igzkJWm7BoHTfA z6lz`k24(}$FRtLSc1k2X*CHzOx2tBW66ZCQ!VqllA}!+ao52QHfjVLoRO^71Lh>H-|xhR$%DuWtzll+8d02?JE^ zOam%afyyh&%G^P5wm3{wbW4LZ*1dP7<}|3zc}_N#6<5p_*x{HO1;dRRXJUxXzIAaF zIO{QLpsE4L#(ESAISiCuG$=+x{SfCS0hLxeWCoF&jJrG*iHD^JhLqHcxM^= z$AezIYqv)}Pcj<@hVAj=%49HS7G*Uzw@da#+(yB?X6Nl|ysS@ADcr*+XF@pXcL&o# zJpBCRv>?$<6W%Nc3Ns@rDk{>4YTQ@8fSQKH@#PIz&L@070_gHPbqcM)mlY)?r$b2S zPbsk@23;x#oE~}9rcIs)rnd_y3!0mro7;&}n<M8)n1##bN$g=$0?>5XxM#9i3f<;M( zudg5La#0o3k;>wmqvnBsHLnmw=WaSbP^JJvkz6!z(>aj2Hg06ie2}TC%iSAA0TnLHG-u&O4vJk?;5F^HA(;`5p|9KThy^!b1;KoWo2~3w35(ahzJu z(vscot5>hS#a_6P4;(Gcw_wxR!1a1U*D8Xz(-Q=0yFocNt3-Pf2>LYb?QU1pZj6O9 zN&+X0W_W!ZGQ6YleuBUp)tqxJF#&A>ZBKoBpECTp%6ay_JWFPtdTdTyU#+JQNb~OP zwC_J$rveu;WPg~u4{Eh=`(hjv5pIl61I7R0Da@0I0O?YhQq>-1|5#^ng^yzznJ?FSn!W3=53 zssWfO!&M|mz=7NV6%(FRJ?m zz4%r}!!2gOtZHB&RRqe7mz7yh_h>*>`6t?nHy)$Ey>%RgqO86@UF?XGsTlDdGK~N7 zP5`f9`VqI(+T83@B%;?-?-!FQNt+mA`Y$g}_RGf$e-m%BH@V zX~9`HER698yG|&dlgyRlAq~fPyDxu4L7m85-IpOB{g5YKAx{u!W-(7>)QSWP%-esi zU=8Y?zxoOpCaR3@JJ#pE^)dSx5tde-DV;oQ4^dyC6ad+9D@G&f0bix=GeN^Z5BMEA}&iR+ovnx|le9y6LGYIIciME}mZAnNImRwUjF)%p3;b#T+_9R@- z&utnsD|V}>2$iEEe8I2rOgA^ziJ@+58#qVrfk`v`1w=0y&3Ka&!MA+E%WmHV_AsdL zXmzbyq4%Lid+kRRSWe-|mTv{}?#?;zRgdbg%~3qg!SqYcu3mh1PYPz6p;etOvM#ah z+KF*!kYIou2yFk>MsS2?;_?TVw?8(+#jA{Gcs&!Rs5jvln7#z zrfyK)eQtdR^NoCCsjHKIU!`O37ZB6glaox}ccBiB%~6{!o~5Uwdj)F#-2X0C`J_Kp zuDP5XV>R$guDrp_q zcpiDBQxhV86hr3VVQin_SA!R*-QaT0iz4e5e$2f)Q#LLgU#1KP?_qP^-po4YdQ)ET!D6j{${ z&(M|jh`h+Vhz^@QoSA$Sd{O+i*NUVjYOlIc zM7Qj_t;=hzR2yB9Y3Vbs=)w|2sgfTBb?Q2g6(p?-gRf8a=)}oNp9s54HMSknG7?0{ zSY2@@+UA*@WB+?+ZYaRuMEw3g3hXB;-I#oM(yi9(`0BYP%<2=DOsoqF@)Wijgs%;I8QCd1Z0 zs2NhgcdEu|ul;4$u~fkWp*TUd1PbjL4(mG!Ekl=PmU{j_rrt6v%J+*Fo*8Nwx`zho zkdn@!5kWvw8j%J8Nu>rDQb1H%q`N^%njxhTBvncpN$GkY{Qb{)&vo&QFLOV4?7jA0 zYwc9tkTHaljCE{l@$~RTph|gG$7EWVF)dwFd|yXiL|1^a|HX}gbd5x8I0~ch3FjHi z%03H%!H;Q4jsl^ucRD}ZpV~OLQ1kq=Loo-0DI<>zFW$@!{{h-VhxNuLHns$h@c zVV!dBxIL1)Wg%qn{pk9SbN)a6)r%yavK}h0A~U0hAHQTApDN{tx=j}69*%kPiZ*vu zrn)jtzucMov;NV*KfkY#;Z2&iZ<~tYhtRh_<|B2xu&(wy;4y;Q#;UPu#F_`6d|J2@ zgXZ8M>?a^>9lOPMUqK80PMC^h;EUe016`@KsvI_KW@L-b7)|6wtlo)h&!QiUTa53~ z#r~zPH~X$_(}(OR87dn6N#lD^d`u1Dk-3g`@tB}n*B}DT;Xh}Yw?A*+X5#$6w+8Id z=WVz_C@n=SJT0?u5kLC@%a{8WWf$Lc7LLX5H2l|Yf%I_=_dj{ za|zktH(fUN){Z0crb#je9}8;p=>4~X4g8mX8KhJ5u4rYnqZk=zLPfE&g~Y{7(H2)l zj33M+EnWrD?mqpb@Hrm-6$h%=@jh{oI1++j&T4Hbzdq#4J(z!-!$oLyeIL2JGsqqH zcyT>wSCM%CVDvVb|M0>8Bh1SAIMiX0j1xj_U!hGzlV`hj?#aICnp2 zHmM5G#io7zEK&-=ZnJXkqoTtZA<%0nzP+?(L9J9xw=5<%8HKYukYy$bAHddOV*(*C z;*qt?JD4#rI(@n?s?R^5lU_V!rMV$7zO3srl#fiR@GjeUv4Zoj9r-`Tl-T!Ut*CN> znIW_VrXE_tGFW~EqS!=z*%B^-?=n+ui`29a;Qr>w6~%W9tOSzCR$ zBlW2___K04Eti!ztz{1JJwq4?cc>m(#YY$aw7j^B<5bvM(}XUN8Oame*D#gKypq*A z(kb?fMt;Gb8YJ)(y8q)N%f14Jme+E1?6JKoF+3Gtn~;E)$#EYHR-;l-OQ~{>AY0!H z9&fjLym1OynKiEnq|QKSh8IvXc-XVf{AIeU?Chy92Q zk4IR~^@eUw*gt-1@9MdKS{b`&WC2!pARl0Et8>K+EFuZ-$o&Xpur&fnhET73n$L6A zMl(oZ0r{^m_7OP{)0%Kaos#sC2sE|QTtWM!`n3zuO+@Ca|4f4ZZ_2~%ab4Lm_uAh> z^JlpMK8?pw<@4ZejFF?|)WX29^@2G4FS5+Jj$H_9Osl^<^f+59l=bCR)qzj(l`T4t z2&5O7Q1V0Xir$*2^{@^MFeMW$@ql3PVJ_i<;Mkw;(w8^hwbOk7RS$drWRtgcYTrL> zuT2C-PjePX#W4RQB1w{#Oc{%REb)dVQ9yeRDKIwhVX1r5&uVf{a(El%IWa09`E~33 z@|=`z5X}*^C4Y4-*NT3Nbq8Q|{s&;|W+$xp{VuSj4n{t=Z_lnDXACM>*f~y#w|uLI zAj|$L9w>&6n?mOyq=Lb|8ad2XU5{bVM@qDg1f$daiHZpj3<7XpTpX2s=#n$?A}?&$ zmMZgA5q0(yX97js=~@;6F=y;LQH(rKM;#l(?0b1LG#Z6{h0wx6B9ZZgtgISFN&>IE zIgmk1!sP}+-w*W>381W{HfGDJ?w>f6TBBu(zY3DuBiM{7lWj)3D7bIF26 zKv3PvaA4bs6SGpnq<+w_W8OVXrq#c?bD#l`l}%a|BMl}@n;nM1Qx{pJ5}^P}ih*Gr zv4y>Jj;v6j&3siwA@{kEpq#p}rW_$5a5iOb$pj{QUOL;;t4%3R7@N?b{I3~@0K;mvpQDKcN@sUrV z%p~F1@|MIXn&2m6G}pLw9AY@X`!5z27TH%*0^L`I6( zlrR2Sh=d=wU^rH;G+aNNL=^P_MUHn%G69Nzk|k?p&C9shr^*353%pypl)GE%RsnX9 z(s@%}SNCxPMn!J+cU4#r7UFPHZsGkz`67Z^a7;xRt&xNU%UUKIZ$6TWCWaCMEK<5H zpF!SId!PIyBR$3Vqg&0!%APsB5Eoux~NGZ%h;1O(f+ zS-D(sqq1WmO?gW7_-9L=Kw8sL0~W(wwXy!yBbHJ1W0G2G;zm_ITl_Eo&9UoZd*BVf z``V6jATfZwHtPS~`$uzUXX4&_zhZB00_o%e)0vrmsuUDR{Ly^z%L?E2zJQU;*wCJn zrVI`sX$99>pvL5DTmN)8%p%VYBP>x$o9NPgoD&RgWbMlM)!dd77E%CdAiLAV*PZ+m zr_e?QjV5ks3xImG60@gKIuUEKWQ=$Eo~+t4;ft86=Hv>77bL`vDe_za!-DINv5ZNpW!k~bd7m=W_)m8VxQe}kiU1*}S zcBo@gLBrHIa-W+?dTJEf%G_$&Ba6mH7l*WQEpEn{gmCdjcN~<^iQ4LlscCq@$SP+w zw(Lh_E=x0;nS#SkS_yx8+W~#W?cO86$wTzNVEE_1bDunHTkXE0!kK?3`ti-^lh2-a z%qBp*ID;D!(3DPiW8rhZS#!X3kv4K$6s}Nl?CQ&M!Lf3Ho8QVZ@q)eSbV^!7vFwTNMQ^~lP1cAK&51lYtAd0gpT0n?-c^jXqoM;{pEKLTfF^W zI?|RCL}w_B^JKf$q8c8X6lp!RFZLLlNa*O@B^SM~W$ERIKbV#a65LeFdqzq8KpT5} zE?8aBK`$`1SV5T?6CW93$D|y&CP~ZK*bG*^h=!;A6-+wiS+RB7@Tas0=;~>T6ZfuA zzsK-_GeM-b!V|mVcP=`*3yK@GjK(euy0uHMkm(CvYT)?%>c;Sn3)S?$ufp-q+oQs) z8DP7(?JvrowT%X6XBth&c=Ie6qKkP9Z>T}oDmX}?s&6iC##4wHcY9aTB#O}aIx>T6 zp_!ym-}T2uKLlbdkQAjDc~}VjIMdX7bP0>~uHo}-)I#PsQa`ab*>m}tj4|TJ@A(&* z@wl!@z(50V@&On<0iSo7y7lFj@X4nUW~c}%KIPRbY&MJR-#qv+m*SpnNHHy&>atmR zLk~!)F`3Z+b zBL*G2=ge6Ny|f(c2Sk+|Rb_(VBeqdBIGB>J88J0HzkCa;VogX+UIm!M)D272DVLW9 zWgEMLd8GXm>Miepg7`-LKlRQYt^ySBm2jS|!2(qU-3Hp1O9*(*@3w~-+zc1}exTbv z-1-ykZ6t$>P)m79$-Ym#{VQzfBr`(49l!S@N&q5cV7Ph36K`|?{V}D9Bm`~hJ?Ts1 zV^Zm|$4V`VNZf?P1oPo{k*nnFkG@azXdhTF`=-r0hLF(SaID(Tc8L{ttB9PA)9io~ zaM{@47g~s3ABez*&w)SSKhWvA@$Z(_ntl)`Niw7FlzjtJ;;)U(YNwm+HPnC-iyk^W zK?ld899)i-C+tQarHyAw$G!X)K^<0;CRvaGQOAv0^S_#y&z+h3(9N;ys-!rFR+8@| zBH-m>Qd(__MJDi}(e}m`lKVO`5+}KGm&-v-&tI_}7v5geURmCC{ayYU4gS&vq~22% zW_Vm|fHZIroNcmr=+M}kl15zhEq1x)af@y5w1Sey!^*UysLfbDCxLt2t8aceVC7;& z8o|6*U^B&pOcQ1jd<7%J>UC)KI=-`#t{=(?7bo`sf>W6HV>%=jZ`S=N{nQYtr}*Ou zp8Jazl0c@)5O+!;kao;7;iPQSj~PRv<1405UBol(ym$#7A;M`CUbEWU>4YMR zc8_ZIBb^!h)XOtl1RIOow67DDDi05-i#4bf-B%=#o9w4l#J7=2r{}iZ!^J!1qD{?< z4bO|MZ-PtGtQ2WI>@Ks946lKyUckgXWh34_WE=o}dp}NYsl;5GKx&@lzV8qA(^{=A zco5fUlk03<;NBQ6cvUJ?#(-P)YY{X5RmS@d=JE=7kGCXmA?!_ z^7wfPfD*SC&^u5=zWrh8rf9O_&HJ&Z;u=V>#LBcI9`e=v_rm$3j+*RNy1b7nuehJ_{BF7@Q@f9gl0luKoZXFQ;W*(@e0|AT8 zFrZ>=X$G$Yj%xH=@=h3o#ztZ`gYN};5!)Nj>#zsfRA#5)BiQkzRe4BjWwTIScid@+ z0>SS=nlDd4az);MV<~Zj1(Lly7`|ekEoJkH9_LjByn;NOR_HX;=~<7-Y+NB$XYtuo zGBe@58H(FgnorAEBm5`C@ofH=d7QGA=X&)33Z1OFHBZZ?)q?4h2j6iDGRZx(Xw4Vn z3fo)I9=dt-<VMT1qA&VB=BHLC}z$q zr5FRxL9y{+$78*c)e5gzO$^))Lu>_HPtm5cv7ZDpK?TU01EGX(kp<+VbhLt6>nlZ1 z_$4ROYI+7<2kD5zQ7~mKD_*g62B!QL=ht5M`Srxz_#(QfwyUb8!cjchhXiN|TVFhm zxDGt#Hvu1wmF9|lx+nv=?~)4d|DL|5#!gV?D%)Wi&iwt8c~=kZ4R!(D31$8_zt>DY zx_aCF7&w|XCGtJS!pL<=AhIVCU}mCM;{Y?$`(C?tF-l>qtY>>%SN+hNBv;zrFfNfu z1KHNDl^Z~&CR@$w8J0p+iJ*zW^vN@0iQTGu4(QY+QbLP<<<8ckm|eQyA3O0c)=tN# zziW?mXy^-#j65rxhNtf~_`lkKo82l2cK8Y+vIw3e+Om1H?V&@eRs7{v@0G%QS5u2C%EF(I7Kr^E6ik?l$?g5=feU1 zPPh$-7tT*apTry!V!)u$#`sMW?O;ZvDk(6QjPnLUTu=bf)@y?JDckFpVTOC)gnS?U zNoPoYtp!r2CLg33_9B$6X~vE4dm}Dpq)-n>;DIIV#_VhZ>g{Y%x`}TRMKE+e7g!vh zZ%rF(8A?T;+tTAvn|&r3qY*GR&0mNDGcluTV_`J0u={~R|NlN6b3i=IKU$+S6#s`0cbk|)MIdCiLnh|NwAlMypxm>!U z)K3fg?6%UBHH*YNTy>!0KG3I^7hl3_n*v1O=@&F26JIp*HzS1NBTJaqiC$~kXymc! z%_=M&c-%3l8VK(4ubgN=^>Sy~r~n0c#rPS0L0J>W!~$avp0Ro0rTL}IZFVPrLYvAb z2jjkpuO?rnmx`bLiwi=GM|CkuMpg;K3SSX?Gm*tDtXO|N0-ZWfUOWcw&nzCGB(bro z;Hvd#GgjI@e8?OhXX54(tQ)}A5-1&E_*N_Dcd5Mv``omrvV|ASRZo@^%T{kUHBIEo zvAyk^=hE!_$S;)+5KKTotq*JK10@}oWehUa3FbC@`Haa@*fM5KHSF#kqy2ZqMQ$52 z)6=^FDJ}sQ8{kHSVuFebc*ed^nDMFW*mu+q@{r*mE?>6;{h`VlBm;rWM!JePtMp3n zS8TFF?qTAiaNS>p{n$AsV2g<#lgBL)$F?3w1U(t~eEoObMTOI7bLOMxeb#5B9Q=v< zJ&c4)Ca!OnzokUvFqSKd|3qQxKB9U2X8~GdA1L&EH4@!_UU*=>dP}tC=a;+jxT_A! zyL{MkaDbf7FpG{8VPQ2_Ra{2IMc=XfcIgfnUG8%b0sHXuc4HLqiL7-X;~hi;q%yBZ zB@K}kN7%79Efs!G5aJGSf&~5+m@Y#Ev1rJ+?%3)>gxXnXgy5IGQOkU(oMg_Rk!z(* zll-Xg`0+^t{SR~k z;6`iaHJBRSz9M*G0$L|uMB&(ctzuWq?0%nlaaA`Wwm6DEHe3+9o~^1)DohI~ikLY~ z2xO~_>yDRg^3ZF5#;11Hm?CodTOf@%bBO5S9yh7GLHCEmlB*PzFS0dvGCC zf~LB$zB?(A%YV7epv6^D=37OFn@*=8b`o2mBSU5BIo@5V?EXIw4|_liY+pV;F@eFw zW*&6yMF{&jLhH60!4ni6CVJDTp-0IP8*Tsw5m?P4lZXu<1|?whFk&6YvL#AgU_&pC zf?f+&N}6;&X3oI=*J`?sWvUuO=qEuUBT6oiQ~-=}0~sYw8z^=URz6f?dZ9Y)S<{Y6 zj(fbktoG$)6!zD~*a%VKWwK@yx6v)uv4g7zi}7h-o-Iw z0c@slE-L{OmFzsnDMIr2nkN)S68E`skIxf?JX&xdNto{iqv|ijcg+)fb){(cXL_*# z;sVPD*ea+h50!p=%L1HJr8nSz@5OlzX*qMg65w-s2WA1ktk6&eu`*){Z?mN_{k3ZI z`ng}G^4Y}5RR#6Z*M(gu82X*td;|K0F-FiLeZu2gP%l4vz!Q>$VNX$aEdoN{)7ZdB zLd~~eZ4xjlKRdS8wjv2*v50`nVv=!p6sKZKtFoCLyE9{vx(C0nbYFggYZorPG4SdU z*M8eD!Pzj8&(e(-H7h;Bfxs$9y;}pVz@s4?I|IkemS-MI;pD`R!x4Y*d+8@0R?92y zH!M`qoabN=MmYtF92qx-AM+HU7=XXo7*1U%oPf6sA{Z2!QbPtcY;g48BQsMR56M2UU111Z`2JJsu%r#u+n zJIO|N186^gp7{4`o(Exy2-DWVa$?9F+z8EN`$*$=0I-ihZKwQ_Bdp^vNj&4%IO^1; z7^vq6O77;;aYEJLO5kjAY=c#&K1%zj`HiyA?uM##Qqy_+W8sq0^~HpjBfk$uzDN@u zQ@S~HM~v%OlfV(wp(nj?*{V7Qr@7^Qh1mCnRwj`9)U=;s`6OvfYsF@Y-k3l|v^iBL z0CmH?Lx2e2*aS0%hJP@|A ztFYWg=Y&O%S(%-|3u0BZ;cQ?i!U5!cA0RD^}`fi>_!2-Zm|U#<)_rruY6d%%QSP#xv)87pUEQH$k9YtOdR3jLB-d<kKVPOy)1@??&Z{nv38ydpcGmk#(Esw2AizFZ9t)EmAxu74ZYJ}6W`ZGmq)l7T zs|6v3DlkC_c()}1=bFD0YW{BMKw+UGtcQIPvKh& zF6WP@jS%2lZz}j%?~hzTUo9y#adkI&Gu0hfSAF{6pM!rrW%~a_vK# zXNrqQnms<@6((|7OaS81QlSV{Kz!ts!hZw%pd8j{oz3O4q$ovOl`Rz|LXUfOnhY2+ z`%{KJiS!wMTRwp52K4Xcmp_jS2ngABjliTxday0GkMy%l@~EIwF_=0h9+t z>8`D_Bz5p2lq;>}6Eh+<6NU3zHmF zDRbd@vYnA`yz)4aW09!k&GP16mj5mrCRqUS6NPSCrXAnm*S_N~s7QSsp(taPH5gDh z&NHJ`j0`z;=IVGGr}1pGNmAP1kOn})2k(Q0koR*#O}!(jx9L@^ZKCYU5!N6ZWKQLh zod}TU8PqoWo`skMR2xTaXa;Aki)n+gwU8s{OS@_{nR$kIiIb z*eSd`_SPk{t7T%AyVWEq88pt8i#Q$q&m$8m$5XubCr4CfD7F8R{}PwQbrDveSZ=L!U84@@6*T51tM*iuuJTd$i`bzXm0WWUAuabZedjBQq z7&bJ(ULQ3Mv*iYrNfUutcsJ0XXw^0tS<<`No1;knc>*v-u78ogTnL)!IWGYhriOON z!JBv?>?L-Ay2u3xgr6ByPB4%ykFKk3VT(&@+GNzpPvA^|0F-tePvNGs#J>6J8mTxV zt`4Keou>rPy(BA)eEkT5i=rX~5!HFwUXeheEIKuzCZ|n8np!U1jGu90Oxu=Ys^$^z=mizqee!;BCRRI*tI1l>@}e0U!E^Sa;RkP^+(2kQ0YSlR7x@kGrR6 zU*RaVPU`a5bLybuLy$A=*-qD=#!{)c$9)QI@Ovgtbk;2~j1m>22XXvIsuP5a8LNKt za9V3qeeiv4hjC~V#?KvV-TKPjMf*^(#m$ZG_#y4rlrTSod}0(BW`ku$eQB?9IP|sk z0ndX}^1Juv)4%f52DZapG6i_!1Ig5|I-)5i#d=`3+^xqN-f<=o>5H+GDIkbkoiL_akVfATxf+QBqba1`+^9ZP37X$1L(uV{K>;|7m#xM zqA@V$GB|hfOv}m>nUW{SCkVe#fZk!d-xc~Wosk<2CkykOTfDNwwYa(gjS#&)>)y4M zu3`>NdW}<@66XJqd7TT>%FDPa#+Jo8!?MnHNGTt$n#!J>Z7iYwV5ynb-L@zu_&})l zB^VSOrGRwZrIr6yJ)W?oV3&(gE)pGFyq2Kr#0V_+|GY#mAZDA;s+X(ktbhn_AB{&x z-jwr^63XW(hpoej18xqK06_Azk2EvW%5nU`#UPQ@?EXl5NQXU~3=+At6=gKp(G5!B z#O!C~Z2>@CoCWW)R-2)U#F&oPr-ZS&#c%ewLAPmdyIQgQ_jgsKzvPlg8M3~6I2ZYa zlufG(4=gu1_8pr!(F?L}QOTdy>%_Def%r9HKPWy^!yC0$YlaH~BP?0BSH3iaSGRoc zO?^BfAH;zrFOgwBBJ9XZO;cZ`m4&1W(4@NfX?n z>?=PZf(b4Wx17p|XmUuY!tdzN5UC}8@K{}MiePdsLO@cI#{v8;-1-v4u*D?V<462(qRNK{9}<`nKv6+cX;<+cL)Qw$4p zk(blc*4Bn}np`*oAS`~RuZB55n#E zUV2?nfS&R^k8R7m_|uCEUMc{=6Gm=<225bbOXir=Elhj@rS{FV51DZ+%Ex)A6vD=m zaxa3cE}tq=uz8rS!>LIxX5P1-xbUZ&tDi2sRi`-|<9@NtTe8nXS7CZ?8xJ z(E6tbR!a?E1V{a(^>iA3l1Q_?nwl`{eNF-tY+o@H;lOFuEW13E^%xeL!uC#G%{RM4 z>1j533iaLxBvKSRf}e8#xRu3dfdXhph)dgOb2_Q9aJw>+0o9KGle+$d%sNv79$kvr z+K6JkWq>NGBr$_dGas_8IJ}+|T(du{UOdLaVp5tc>mmDJXRSME1_YR!($`b8meC!Ulq277=v9s0bo6!Wds`Y@v&^tGJ@O({HU8>{# zXMg`1!9eu{-7dH`Nb3OQmVkO>wZFJmn}S{g1?MZ6oUCZ@+a1U5fe}ogp*K5`92Wim z05uap73IHU&Dga7xZ^LL9jwsBpMpXMd9Dj;s!LIx$(rY_3SF?t9gkioO3(K&Br-+} z!A_IQH^mLAg`lueSj^5HHBOKFHRxZgE%kWz&8uf;7K@UR&=?XZ#HLc4!@yvKLnzav zy@tumXW3W|KGEgh2H6*?9njSPs2;wu5pWDp&wFsmB3l#Def7@v;d6r zz4m38H+Vj#x@;FIkUPZ%{<&g>()$m7aS4x#4a{RUyYz1p*0I zgME;PMzw@lRTbOPi9-9*q2Z`*oV^zv@7hQ+{3cYh%PdRIjq6@&LDjfy^?sSr-CtU^ z$E~Ex>^@u*7xiSXYLbb|m=d3(G0j_{Bqh|QN><}w<7L)941Sl6u71SkzxPw8<)tSn zSr|wGYBcp@`W?Shi+2t3rw_$gOC3X0N?2A=R_vEJN$tA}Y4UF%!T9|ryp#v;-uh!! zY%hQE`LzTb+F|{1v1#F7+iBmVk_Xz9HT8c^w#5XW9L9eYfA;B=>GMhuveuMbD}d4Q z3V@tpKdWHH!vM&t;e&yAC_?L|pFF^Ye=ndRCS~W%^*`x@_Kw~gB2wDMGbTOKhnRbR zN~|n>5aE##LP9C()pJn&PrO0mn)wwFkZ`eKDjjd=UXmpaNLd5Y>jCpf-RoEBw46+o zpW`2k+YgD`Ydlr!;}vGR4{(-dk~)l-yT4d5uB%GpYbNNNP;i@RtTAWD^oEV!1E3hm znFGLIB2IBEdU<}?Z*(^hVHf|u9X;eXo(GIV=^{^A1#^Eoi|h-1C#`>F>R#gJ;wwJw zo!GaQu5S9L&kDry$Nr|Y7Vs8Pi7ei1eqyYn%$UQ~`aPT}M`(K5vdJM539x>`8NbC* zj+eHIVnDgpTKGaGj8T&<1`eS)l{!Eu_q4_aMmNCI_uZ}XFw6DHAqKs*-X$)z6Pq3r zH2bl^7Ek(<6@lN+%x3u%B51<21~9D#f>pB1NE~%H33-{qQjW@nzI%w!u<>6|loV}g z!H~yoz_F~|xG_WD`ENFP0g-~ie_wv4ewZ84^ckP&87>HRlONDOFPi7MNYH|3mI2CB z5(uR1VX+7`TfoQB#&)dG4={_XB{qDm*JH+pXm!E$Z624WIp)ko87h-lMh*Zf z8ekAGH03~Hag}DT(p};>mJks@%CosUi--+}eE!`l=zqJQ4G*_>aF7>D{cYJYJxQ5A z{NQKZ$@zwrM-NxWnxmQ5`i#$?qi>JF0#Iy1Cb%R%26!XuWfLXZnGvSihMnt=3Zztd z74J>=?V-GQ6zAjwOeN9kN?H$&Fybro#ddp!{3c+GkreQKBGr-UiOlI!{n#8*25eYA zCB^GBGwDkuT1fuEf;nA>eLW3i;7jRW?!=@TA&O}z0`{~RUDn3YWb6332<7w4@#E}@ z>;vbRwm66m26N8o=iH4IRP(zwqLx;#$0C zfnPHGoaLRcVPJrB-i4`L^pX%6?Dir4F-^Q^3?EBBf&ArDCIg^n4&G$VzJhpGFhXSj z50@Alrj=M^CeZm}=|9GJOlnX=g4P71dsj=bN4(;mO`U(QcmtPV#fm>wXsqwtst^xc zjUt4DEMC2W23U`KS~9cdrT=uN0xpxt=W6BQT66GI-LHm6jR;LO@zGa?zkW5ku+TRw z8d1i8^;X@vl=9`(|B%~<2Lp@pw7Y9=-D~Or00Gd(6qJzo3fgad9tW#=C01T6(7cPy zga-rjY$mKK0B?K8BV(X@l56P+YIN_O6T8>8bsg#R2W22Tux=rL(Cw3@4FCCZ&U@HGKSbr zBkVAIy7%r5+5Feg@_d8K42(JgCdyPf&k6xz=9k(VBkx7?*ep?H8m(Aa{!o`i?-$CB zD-YBvu8GT@KZqgB!c*kTxL^RPtPf{mdE!kk<&C1)yOaI|f3IN(BfCYpopBN?O@tIq z-!>nVh;f1Pk>k!FIkxJ0mT)^pS4Gv(*xQ?L#J|KPqWquA(*`{C^~oP)a|?LjnY+e` zt?59ezfe)Xzl^af~!@F8#bKh4?l_kKGntq zwnMA)%Cx*K7nQbhpQj5y`Y_gQZ)*lHVm(C$kI@)3(HDDZvDDpg_50FmXd~rbk}h>) zLE&oiSTP}AEffS^!)gNXcETB+i(ccS&Tc=SF1Ww6Sr1se_8TFfkj$Y)un?g!EngC{ z+VxYjMNo7loa%|-oE=E43v%ig z#t&tLP@O2E?`74y^y4LOMA!bQo3{S(RQdTyogh*->q!F=vK=iOc-X1qY)rL$+D^Z? z%|E<|HjSBVnmYVhRy5{06np|7eYRqU;VrbVhpFx**}+W7E>} z&)%(atqUG^LGSxNd}L1%34PBh|DJVYds{L8$x@za10~)WrPMCW?D(Ggtmlm~h;EWy zKpwo5bop-nfKwxoxLz`9ZoD%4^;xM};Q|uQ_?{Lrspx;9obVq0wW3dF=A82?_&z7# zrvEi;I(~>DqTo9(h#aHH(!NImfd^*RjjucyzBeg~c!O#R{*}$0 z{%f=8zh}k0^Ki{PPtEKMx_W#2j_l>ni7@JgXhq3QX(9vf44YCARX;?sPLP=J-Va~e zkflFkc_9N%nW~#TatKKeI`$#Okid>3kp7H4;bxR8OU7&Zddav>DOs?q8xQ*aX{XdV zed8A9B>QY2vYeUUV9Cc_zK8^r!Bi8y`7$~?km$0WLeLcIwo(9TYYQS=kP?2=wO$fQ z`cZ$Uu3|c6R=Ek=hZpY!-FA9Cjc?@hrG@zu!lg>tYTUgRFOYWUbGGKVgC-M3pFd&! zZg&B?g5+OlC{@$9DqmF^GrrKarQJDa2EHz_+}jIUt(?E#f|Rd!j-VHPOjcGmMkIhO z(lP8kUS+nq(c7yjoOcT+Oz82SP}LU-(gR0Lq`$7GrMxQ%r7KlvGV7tJc}|M!#ojo$z^O%xMpLiN=WQvw8saJmVQ>ry0$d2Q#-Ad>YV=T*3;exH(sEj1wKJQ7qo)(c zOS-=J@Upy46m06a0lfT5rT;-u?jwNRmYa)zTVXodcv_9=6CRz|iDcZ5LcsE7o+LiiR z=frtPqY}`=CoUvh zEm6*Sar1Nc6;adghJS1N4|{TZjL7RB1QYp#0OJN$+7MHpwbP(&XNW(Ereu=1!Lg8T zUL2^rnm@xASy%O)3qgN4&!Du>MwI&(y~pxNmatMB^B}sMTUH;3b{HZW{FSI{k8x0T z{#at>P+ZSCa$O|OCG*4Mdyjs+RihLZrKP}I^qY0kVDbJ8O2?Sw%7Qpi=sS^^DDz=n zD1^#^o0|+ZC{A7}DDg;qqz=Lf=P)YSY@#hxYK6#cT`qn(KYWrpo|Fzar`x>u@SnA}4`AzXVM^ zi*Wo+JYTk?>PX>WM$!{Kru#b}bScNu%z{D8h45oB$8JkDbOl%Tc1V27y)R^z1%bb7C6?7BU~ZADgT-6E_!4x>IJ%p#Dmv*~BQiy!fq zVIM`nCamx+v*bDXw=WX_9uo*;DQiB9R$d1QM*DMajK12Jkx%C?;GwKDvijb6iXUxt z!o&Ew|D2)ZVYG2hmFV`ORe8?)f});~4k}dON%K1R9I=1WicwS;J!>3Y*(x5!>g6`I z+#SY!bLPjj+`T+~rP&zZM3Mm|{pbZdAuv3;E75(#``7SvV%5}b*$dd~0(=Vq3bsgY zNZCh~bSBv#;_nziu*yclr2@aDw?9z9*`NCN#BmKjVw)zE_Z}ba<1_&8116{{5wD2; z2CuuYjfjM3nTnPpvpuf1Jkh02a#IIuW{2SYDQ2iLkvoh|T&L?zA217%8SOlbmI&LU z#V7Z7rp0yNo`L`&sKc#2qC+=fi|fh9a@rG(`ULUnXz_8C*$gyQXLvT~?vXxz{vc;& z$)s|GsgAHtyoZ+R$(5YNTM{N!DjySYiMe-x>5F4Vr@P6W_Fi|cpgG%Vk-o7O z_wI4uqnGd2Z_J2{Bzs3bNRAr?E&0w}R_C8v@o3KaxRkdwB2&%D!MQTOdC;Q9FsuH3 zALhP)hk>@#4Qo2d-@Vd%?VEgRFF>9ByA0DW-HshtA8_c%o!r+mzx9|I5Z7?0@5ZD3 z6qJ9eB|k6YIGuq4Y4=nA#^^kAj^3l=U3tW>vGRrGv-pEVCUsstFiVIj(~JQ5@|26R zbiFHdugL{2<~m|swUMjm6**C+=;{~xt2gnT(c+ax^l&a%)^}90TTnZWF3`=Fvc6il z$yn<^b>R!Lx|2BQI>36Sg-_`{B)|Kfz|o%m<>l11dBg2qEYqbqt5e#Yb4RW5KOU0T zuyHes<^=6GVfsU9{$uG;v+@p2{T?`3o`WREJ$^`v@vewNnt7luP7|NmxAkXXm)rNn zA5$!c#fNkltZN5cm#T5RWp2N=`d$A6C&*q(qk;&DQ|D#>B(yw^g*u3!PORG) z*7Bty@~hpFMXr0F`kpFS9P4G9WffCO%IC8mr-l1|3vI}24sNv%o}EsPf&#h^_b*bp zGyGa(47I)=95lFg1T;s(IcfB0E7*uktSXK;A-*qCL}8jLWoRl|6;SycY-kdZe#ZTE-)J4-W~O(3Qa97 zIrp`p)J#dQtx3(^6k%wHo_?kJW^4(~=uyb*?5s85)^Tg3)b_SaXEW#J7rGqIWm>OR z`vMKaW$BKA)3I%xU~ipdryE5D-}AtkL(H5HS}b4oX}0>>aD(h|Gy*{*Pm3Ng!I;XK z?|)Jj3c#!X0qv0dp1E2=N<$zynZLUXASm<7G$2cm1B}zEWmMlX zv|5QI&ArYjWMN?m3<|nMM#6c?K(8|*)br6|Td%Vp;m8jf9E+6p(6n#&m^NIWCNeBs zQ6j~0^ntgI=^Tt=X=XNOs1Oa?IBUq}3xn*doaQuMGy7iCzB3FfH%A0qiLjDIWFPRd zij8gDY}X8+dy<62l7Y#~&L=;bf_gQv!nSMt}^P#V;9P39@F4B01_-QTo`Sa9MWBt$8$~EUpq?UJ8Qsuk8%tjOY zz2Xw~DdXxX^W%1Rv72w1G}dL2ydQhv)@SUkBC-)wb$NizHKc0g2ag$~WuMng6#QP2 zm6xggnwk8?jiB!ms3hVBGx0hInmqY#{semQ;_@N6w=Aqu972MTJoQfQl$0Ci1{1g# zScV_NPyqt+vL;(|Mc6xpko-R<ra;E)p7O>ZAChAIp((l+EV&mjmZ$0#n!F+K8QHWh4hFNgFP#ro86R6U zkzx>cM|FLu99m4eul$!n)Y3YW$WW6ce^|qn%}-R6TjYB%Tj<@BkoLbP0d6fb`iRyl zy$pSvzIR!?clm;CSjB&#y+rfjhOyCEpl#xdN4yhe?rzi44d&fOl%iKD?WU!S{N4FT z#(P0sxf|^(cJcEs`9aG5H*DhiDQ!CBuGaz=r`O^dfsMzn`FB)r!d00Ap;W_Jum66G z$Bbtp3NCZbQz1UXF4j+nS1xrF3pwgU+a@mL_)H(C3u2cLe(zs;GphA$(4N6Ml)0Yp zJn}tx^~8>O^T-O=jWVV5>ECrMqMc1ea#y8d$AjbKLhaa^Yn)My?+2-SvDVJw-J|W+ z`t3q;^NM!!od5pn2Tv7Nx_kK3?|1J|zK*h`i3iC*Ve z@fz*H-)=-O`f+~b|rf)taOC5GN!CC2+ zOmL(ORSpd>IhqkzY|u<)QU_vHBZ~jVl4g}tnORtXSbSLWZafr8`M^_5Z+~P6AH6 zDCfXa;6yc@M{Bvl(9y<78=*!dCPN3eY~Bb45!Z2?-bxnz=DxBPjP5n2*$XP()U zDI*s4RU#t06V#R&<|QNYUe=DH4XlD4vU3%SsD5hZ>nMb_*v;%*@*p7(Nq42W#M=tF z{6`?dYs9(Rw{epc(IimUsTFJ+1UfiR)(KjXQX8ZqCj1HFmqWQd7i(F5-8e`7{wu~9 zYY10aX!+x;z^%*vJzuGiahZ5ixy4sci8tdDPwzL2isG?+2TvK#*xqm;B_k9@`ZB5^ zyEEevX4bEO`!K>?;Dlo#~G%?*xT!n>*$hkMx91T9lfJ!_N?F zD*uH>gOkqDwm9{%JVGYaYcQ)EDCjwdrF35YgR0MkRxQ#Y%h)q{m?oc)?5pQ~$@NZO zY$xkAd`vkpVdM2|+$B)|P@f(8UJeG@uAj|s;P+ocTb+Nn=Wu?ff2^hAyQ)E<#mK!> zjPXERioR2FdhTfN__K)rY8dqn!=Tj)G9sNna-ye{g`Rwh8yhBDAGbD^ISN7O<7nZR zL3Hymwb~>@Pk%l@(SJND>WOwt(3hrpy3@LRn{cO|sQXu*DT)BB=0Dwei=|@V5dQGJ zxjK(cCo%rAnjB=lMLNDq_!%!_qO3;K&y&Jj)Dsi*QDh;$ig6#(*hrYHXL;DQA59C^ z&s%lx_OM&Z5n6l}nHf6Wjtf+57MX?*TNCxrQNri}XVYF#Ha~RkWp_CXmjB-+ovXi6 zsyaJImXEk5AT{8*CxpxIK4Mql8Cex5z|1!x=)Ku6uTGWAIf!j!QF$20RI*%&swp?%wPwWsp%aMD4pm_4%?9 z9}G%wTxQ@&bVB(7>P(X3{R*Gf?b4vzz1!=ct8Owa|979|OI-pPzr4YZnG0>7V)*}< zdh4jDy7zr}Xrz&p4n;bokrV+@>5?uL>F(|Z(MLcUB!}+q5{Uun9EOIWhHl<7_<7g& zw-$f1W}kER-uHdQefj^js&B5aj0lc+)r0mIy-W-ZbU3{yEz*SLR|)br!R^AY2dqRO zk%lWyn{7OsJyZjOAmfFIo5X7(yuE;Ea78T}Lu_E5pJyz}DWw(pT@gqbUAuaNws(|) z{l|F-#*+j&79pT$e6pp@644WV!@C=rnqtYlSaJQH8@B5q;EkkV(l-1N}aA1nC$ z_QjQ*56}A=oNUft@3V_*F;qtE0L>tAUer_92=#EiHPuqlAuWvwvv4k1Iv{1` z^kTA%sN!*+h$Ca)``Ip%Pzz9~+nJJOSeccHPq4a;qZK&JN+O+JN&om;V@hvz_@Kw0 zCcbi@*>b0V7{|GvJ@tU8zOeZNF!><;EsWjt^teIv-|v<+?|Xrb%AW%xcRe{-uL5tO)no5Hh5{rBR>Fk$zHTBVlO0(O znm_10YdyEJ!!vG2!zE7|fnXejRc#dDnL?Z>NFF6X7F@=autZXPj>l*F9>I4N6=9Y~O z=u|PN;4N#afjKt7kLt>B55LEk^j{ws#`7MUq_1>rbK6VgO_Iu7aVb@afgwU(a@>B*U$29M=r+`?+6#n5OUY zK!xCxu&1H65#p`+kjfHT6p-93e|SRid1c97N7gFvH)`Y{`;$+V;yUvwfdWaA5B168 z2MiTIUh3|`c*(J!*7(G?J>{vc@PvR8FiQHl|A~VCNi`4zdNkjDcUs=AuXQQxzN5sw z{%b7e_ZmB)ZCkK|g|I1>G(%tTmE0F~d7piZnMRF6Od-_1@M1`ZHVaBp2YenxOgOe} z@pXtMxKHb;M*lMSJ5U)vx~}qevXeVzOg8@ZLZ_NFjE=6|7P~wH3@{F^iw!uPyUj7>GKj37TU{azsEk>2EmbNQPG}GwpMr)1&xQA{Luk0YJMN{y% zmAqB5-I=f5GXYqeC_)%cfhMd6j3*K_nK6gYAxbcnjP#DnS#0U4tlZ6O7F04Bh~e!= z$&J)Zc=5dv@~OC*g8+07-2}*md@gyCO?cZ0Ox+|bu#95B)?-v8LZ7L&fON+DtTErO zuO}I|t=?Q7o2T(LiB&l$ySln3Snt_dh%?ZDY(i>WFb8(2XIC>o`5=-LG$T+4W4b4r z-Hld*Ko~Lo;}aA=)3$^@GYS+jFbouGxtpp3*1yQ;w4IN-NN5f}+|wy=xUiuGIhe9^ z9Y}c+j63s5y4i+@7lA%vI8d@VCAU-^udC@}!2K&)GG}#n3tT^5{?YH1-%i+?TAzf4wJ4 zBGdL&v0VL>Y#_lDg=WY6P-F+a+GS_%>lxyRizO@OrqQ0a-$cliq%M{~KRp zU;w+MUh(8nny8*M8Ld7iPviUg+r}xWL=n1ol2F~rX}H7QB`~axh%dkx;BiKJ1K4|x zt9?;T8NRqtpD`HGWzfHRkNsw*0eWfI!|~_^kR2nj8Q`@-bQNSsebnGS%@Ak&=IckP z;AHOS7rW;y75A_4?V&Ft6zpj`424h3$5jJbc(8rYh(mF{J_W@v>=HWkkN7RLdt;ZU z7v>l!IUKs+YvhrdE_a@zpEmVs_QHBe$ZinTs~6)3@vB2F)kozD7t?2MkuLIHv>XA{ zi%Ij);}Uqqt0xZvWA+EvzrAI~<}7kVbSt_!n9-g;c?G$@Ak|t}*mLFP!W zwoslR9hE7>1l;*z?v72|*@Ga@YA(fF*XD^c^QDFsHfaVbY9PtL8S1Xry(Sq^m>=*p zxY#1A;hg%K&d$!i{XkARk2o;29}0vPTecc07#q_A@n)Vk+nIN4`)${DJ~ylM3a!X2 z8;=WEc>Co(5M&qqTqR@Sg|M)2&y(C|T$3H<7(cu?{)*^K5ev^dE6*p+l$GG9yo6v4 zg?rAy#rOJa+!~v=8ovo4bfM&KBd2cQQ>~sU)A5M#_;y=~5oLvo?t_ee8^J&;@{yv?*&n&;JoY|53Rl)4 z!mOtJ?MeCMq{5Un9M%T9&6Y7%R((gh`I$KaMIC;)Ry^);HOdK2kZZIvO}EC=6{GU| z((e~)dyqBwssk2CM2(5M=7R>Wvg@KPZl2!^l|zmmYj^{sM>0twB2~m+3Jae%0(l1u9y=37v1y7q z90j^GxNED0@#H!GeEiA-84SZ{6#v_IJM-16X=X%LHii4TKb%l=Mh0>aVJS2 zF~F0e1<$ahQBe{mvp?7UB9@u*N<2_no5<)ht?zMmytf;H3AD~Hf^gz7mg}D`DP)!7 z{O1&x8WEoBu@~k1rcW00QAy$Sw|ni_|reI(+_&nR&gisamA@4H+~B zi+rBZusNQ2ccRkoNaG-{I976|CwXhh#kl8lh(qvs+nKBGi+iU!6k}6&r6sBMVEN`W zHBAG61W=dT7Uh6aU6@%pkmuF`)$uPjO7BP7kYS%=Vhj_*U(^m*xYEm>`Hpv&)}N<; zT)HcZae(HN*z4mRE4E-`zGyS`#n^C8@F}S-HD%+`0UPq$`}Cj@w+8|l3B1queQkj| z$=_k^cfx>r5xSNf5&AnJ1K`u!909OYjRIa?UWc^|@BPbQ9UxX}g#Kn3%iT%aGNVR8 zaacu-!@xS!Ch5t4h9gJEgL+MEA4c6Vy2{QRBSA%|{94foex1MSPh?z4vbb?kG_VQ? zFfn;i)ugFRecdTmEzc1`rcAnZO`5FugtlOY^#lyHsl-=7v6x>{b71DTT_uZPglzXUfN)G@Gzij{h`RP7oF0x_wn($1roWhI9%S|ab=20 z65tp%U^n<)9;_R|*fHLBz1gtI@4SW!V1^> z=6Wx9(~j~`9Y0)fE|(Y6etN`v*pMdmij55C;Z?5?pJ+^foh(G(O`|v0_uin*sw{r$ zdJ|Zi_g;T3)VN<|7$@b2Ks+y~1P7q-2!cwPB_$ERy%rj>10YiRJ=4ZN`(V{tn#{Nb zb6<`aWA8tE-?<(p#nwFh{~8?hSq&J66wCTKAT7x{kbK_!b(V9QgBXl-@_aujhz5{i{lA z&Twz{(+3tRRQRn3|C4M@l>{-{*m*ta+%aEW+LU*poBesV##Zx>jY6?ie|vfy_Q~A* zZSFhl^qw~5Jut0GVXD3H2O*!!-osmZ{aQj$yX_TqtZkl}((@OYNrL+Jg{(E#uBG-4 zaw+BlLbMJd1*JTFeze%noQjF3xNu4MmOTvb%H5+f}ON1VNBoq={_a_*nQc;F{2{ck|Fp&F_s zr-beH(tY`~*x1J7x&3Ocrq`!`zNA-6Oj=Wa7ux^Lj{_yS=<9g1d1PXn*3V`#*~z~A zw~sAl&@8>{&HU|lSKjF2`JDAY8MrIiCZp6fnN45QSH{1y-*z5%Mli8E{pI!H;c&3W zS>8 za)KJca$G=!M38>nTBU_KZ~#cgeAhtU7cc-8OUo!RuS>~!ESi=Ycj#pfk)Edv#IA50 z?f2fN>fD>Z=AGMI?W?4*n>7MW@(_yon8kymy-K zfsl!)3DhZ+DK=F4LkZvk2gBNE?3PHgs@y?8e&>+C)MSn}U*(fLZ*{!sjs9Nvyv+5F z!54@AI3~X{T54W#nvPy_#gb%h{ntgI;~P#}(cXlwtHflHK!5l$Sew&|AUjO*$@}#@=|!9 zN`X)z44a=&mZgm0|aD$xMWbVJB^w{sg-4Ez`XH-GO9Xc7Aujf35 zJ=i*@jZ(V$Izdur%h+MjbUUY%c`0akL;}Ho_C>AHgPOMV^JDIT&9Rm8PrCP`=D^fV zw0|_!*qd^p8nwLNJUXrLva>N+WkoJ_GJ=5~C#MIPay)pkz^`#}b!VBD4*o^n{0Z`$ z2`KpZ1b&AjyD4BLmA(Q!abq-Y_Uy|Wr5L*lL}s@p5eY$rsbc>X1HC1aW2^*PLY`OE z4WXXf;)c}RQP;%hAAwBd8J5~qIIoO(H3g6&xHsxqRHEXSJEUnELqAAv*58ebIF-d6 z^Ya0kGHTwxn~Zf)R=cCtu!9w?mSaZivn4^)*-Mx2$n!?)e;*&^?%3P~gV92E;PWjA zb&DHIpG8JS2fd_V+*>Z)6)jX^Ti07Ht)3z#Wm;7wM>|Xr2ddv#n7wJ?V}V58^{241 zbh!mbS^6_OHnaJN_`tOIwozHZ%EH&=jyMs6sMXQ2fApfmsZF!2Iq^r%2s9_mvob_% zD6tRQn#0uU30$oaCxNq57li3W%TS+n0Zbe^$;-IY4^pHiK0@;UeH{FOB!sh zJ0RSEp@O`ymmsf6w$V;4QvIoA9mH5dZGt4+YXvw)4zFgZG9*b&2H!;J1Ir1NxCIVr zl!dCIfX*B&D7ICl?0=uH@xYwB8dWB{5*r1z|20hdHWK5Y7WPFUX3>KPH5mEd!H>HTJm@kDxST}q%;g)VVS|M$n0Cck|;U2qOMk`kW=RXt=td<}Aa(*fsof!yFK(A0I9)|Jsl%(GH&U2)UZO5lVD*tG($;oHN5b~kd1f*pt0?)FN59R2A~N^Xyt zYPNU-ldp5~WKi`3L+@Fp;ydJ;s2*yQ*C#CF#oaF67n6vEZ-c=vjd8Vdwbddu@CZXZ z4mV5}Tq{B-pvl&)+?50rZy${)_sujih7(1xI=(SD(<|&Ek>MjfiN$O%6$r<2JIhYN zgYCYL(oxn%48b1zd6WdLlDNK4Vg{5@;Eu+h*qQ#HQKiJS`^@X{SNjjBI~QL@Q*Iv< zUtreeI>rjk!Qphn>RyZW#L_WYkJ(~!X9P%>e-YYuL>7_y-?SbB7=43;@p-rC>S$G;)sQv$sc8S;mZxMKtm*44G8MkFj`cSCx&9tF5kkN3D zDSaS|Fb}j3pruCJo!9Gd;OlUChH3JZg&gYVN~OBIcHz|mpOUe8at7jns`b8yd&g7EtQbvT%vfpC!e`_eD0Q)67nl7) z9eUwB;{0(%faw#^KlV=>rS%4TVvB1ZQjR z$y>{?012_(&$6mLl{u8yXLejGb$hoSJIi=!?61)^@+ggc9Um94Fx?z}cw*oFiRgSm zwPz%j5%WqsH!{aSMKzlC+XQe}QKI;$d?mzlvp=kGmL;gS9bRpdxE1lpk2;{|hRv4` z!478uVC(ZAHb0M#1i-(ekn-lyw3!)LrYCf9I&l!IOxa_nRU#{*dhI(;0= zq*!p4r8}#{XPwmW*$yWuoT%=jmlD_ODro1AOt=HN@3VG@hQIv}BY|@t=^w29H*tAP ztMZ7UT#Jh(DT9ei+i?o)GT5ejBDU9G1X}lsLb;f!Z;Vi|d(!i+|6OwNGopbxsP->X zo)$h}fQ6OEP6y4B;~;3sZ;;{4mcwNJO9ad;0*2C|C&%SfC{M1oLzEWpc#@ewnN$K zRmo)^o)R49R+d9w99J$kPTd6tXk}69pKMBq`=4%yJ~A?WYwq7pbir`pK{2#?s*P008spY&-KM{}K3F=R+ zSA9ow6xdyt06O1gH|ti7Xw*a1>hQoE5&Zx_@(LbjrMN>70}L*=X%6Y???xO+#1`d}>ot-5wYUdna*^Hy2?i&CA|d;ys&^AOcz60IHoUDe9F8@5Cl7Fcqu9+nmn*V5eWl zIIUCoOl5U>n|&t|V6#Jb#DxQyDVT1Se`8Df+>0$V7e^=sqp)xY>4S^Ye*|zO4`Cc9 z>V*q9&b)ZM(v})_IJYe}qBN}sIgnE8+ssVuiA{ZFV@Q!j&SqAiyPfNj{=kLc|J#u+ z7_2FiUbda_F0`XJRUE(IWE+;#)@8dUNm7-3K_ZTY@WJeH zsJk4D&-&-A_|aQ>-b!OHg8-0)Ivlm-`i${r`H+))XkuC5rAdC;%FFWMmB@KazQ0l- zZ5`64riMD_>t#{OD8(qiYuuXq-)iNC&lhd&E61MPZs9;i^&y`+bsUO{1nv^V7^29~ zJPGUVxJ>4+h{8v-C=A+bZ)U%1%VmLc==570v%`eBCk_{bt0|x0IUa8??Jw!}4C~{} z2z~3X8>0z}#=MkXz77)5npg&OkP8)p@hWkl4b~R)b_@UYQ?yA1qFI0=G{PILVjxod zas1w9)(wxDdoQhJu z(&K?|>}!eXzRS6iA1nIwQW2kq(IuTHriEZ}i z!5sngr_T4i_D!};izapZ_8;T%v!>!sMmT1RsYr(^;}-VwJV2HFIbf;;Cj@n>amq(C zhx7-6^m)Iv2jYT89_tmrQdTTwV2+)`?955e}=p%;op z2b>bb_v`wbh!c1U4Zk++MaDtl5^DjL8>t&|d5X6%M zT~j&+6dU&Zuizdy%89F&Fm4DoG{kDRWE7%fkD0mXEtBKwCm)2wAWQ$ZM947`d~7V$ zug^I0HBNU9thtRf^wvbL#X_IbBMCF*iZegxi6ohaWJ-_X-%12Fl?;SNa9@c2yw@cGVSWBkM58tVvTE7!U%ve|;< zB2JAje;8i^Il>7V1;mPmNcYaBP@m}&Ft*;86z3Rk}(PGZExyAc3h4)k`urnv#eV4lHxS#!EsZ%j` zs#clJtcttoZ}SzGw?V@C+TRFh6&%1c_$zyV7Kz<_CnI&HlfRa=G0f~fb43v<9W;eE z5xo@Ja2U@=tt%Z|{eD2%{l-5)>b{fINK{Kk;;n;IOBnQiA47A8Ak)W1f^KF!{H~?* zqo`aO`}=v)FRM#UPY8jY2H9h`$D2QgU#t)oApS(Y{Z$1K$Y)Kh2QZ%lKoWD8emhfN z8(=n~AXtUFStEFlhw*=#-d=P>G)= zz0#FVEczY*ne+mBur|{mCyqXoLYs-2Wr__w`&vH7tug zcD+5CD^PBA6WnN#6=8Iu@2EpnXVwV$}&T##AO=$iY9RZxpPISGp(3@uXDNgj95zd zZ|Q)yxe@AEe3%ZiM=M26F;d=kG>%}_X(3qUJmwe$)oUhI))x6Uk@C^xT37|M&g(NU z;2ea|al?LglZpElhL~?!$9jLObF{cd13QaIk-!#gLT1>V+APKU-#%~v`u~=%UaN2zZ%PiZqmf2j8OH3}`ef;;>r|FHtd~c0#+i0J>FD=x( zjoHDhn!6qiBe?(UY<0>OW5M5?zRkNL}*Dx#U?WN zRH?PAue39$YN`FI}z(#QBFz(bTH9*)A z?YCtU#zU!KFT+107SWtV9P)$szZ36NhB^=LNQ~D#b&FiCwoP|9Zd2lT{k?A-M~)m5 zkhBMGS`-MzmbHST^wL%abn*|6B41qL(sgw(P*AS1m`oz;n{HWV(L;b5wT$r}&7oa98N}m%Ie5@~I;GzZ z3}5eq6k6Go0u0d%Ff1yFp<`iz24v#pH75lGykcc~Zv1p-QGD!lwpA(*5~%Nr*697n z)|-ZPvW`D>eofhI3Az@daDeQii2Iks$QE#j_|%2zC~E=atNed1uD?Tp(5+^ZUK?3} zH*bDiE}CdmsW(-_TuhZFwdq4`vNx93NOmEp&0PNUO>OMq*zr?pLVigkDHQx~OQwMT z0BWPk+jquSfBU8G5b^&0-C_6&Y0h9Uz$GT$Mn!zEw!fRIZ#z9+U0pR#6WvL4ts^t3 z?4yY0yf<8Po;`-I#~IE_d)xHYUko%G&An;RLwWL*l~==+b@DN(Pw=ae<<3Q4zy?G| zu@UBQ;e!u!^S!wCnhskw7|;9R$;J5<%G8U&D17;93DZW5Gv1F}&R^`D`QkNi=3O4o zbM~bAr=J+4&imOK!n}=!JSjP^uzd*wI$T@7dOnDhG5)bz5YcepaM(z%hx%Q|+b%R9 zq=1at5f(*Mb3AcKFgVA6`@9_)>3Rtx^uLg%>8G=Z<(}{2X5{c^OTjEA%IZW(VEjw|U!oUvCqWga!Y4XS{vC?I#uC|dw*a}@48*aAU#!D{?VmB_9%zVR1Cf3U}lh?B_4#T3`(@$ z(1{3tUt(T%bW1NSCju=2?EtJ(0u3-l^#y+a1d#7R6!AKaW;tQ%i%hNrBcg@2N|>+7 z`jWMu89TF8>~uwSoJoM@`cE4Kv=Oeq|f{a7@&e`wYef|6|bWnlV8SKg*-8 z$_DwOLX>Xg+Vqqj&^szXlW?g3yqcf!aj~(q&^p`so{kPsnseba9PWP@Oz*R@HTLT| z%{h!;t|sDaXdLBqhVd=UThx%)^-f{i5g0%a(9IZjL=G_0NK(T(W~q!`8uoVblhKIk zbQ?Sy7#aHzmCDsGteS2=GM4+nXY!P+wYH8yB|Uiak=^`MIH2Y2*~$u^{fVxY!<*mQ ziH#(4=l;nJv$cyoks;P9l1LdvD{{jo=d%HZl}zuu%T4;*vwFaDVZA4J>pd=7zst9{ zsK2eG+?2RvR9f%W2pLkpzH!a9Xj=OQU1#4;gi|goJRfDkMO)QWi={!OXI+y36tn

*pk^WR!-ViD^XWb!#bKtm22&odD|%=I-#tV2#M%@OJ~|;RLb`?Hb>PJL)$D%Y zX9;cdEjT-X`ga#d-EOM@kr+O>7U79`Q9m%mqYqZxw*wvYS@SuJQGNK{`Mqqj$M`JK zWLdLl?v0tG7wQ@%g2AMcaE$*7YQnk+n*xCM*$*8r&+(UcU4o_|a=@h#75tn-#EB6Q zeo*Fl#pv0<=3d$sS_>@kei1m_qYOUz5ZAo>zK#pUj{Bt@A>4lELr4Eo9g39K0d`bi z=X+7W>MC9xbY4*D&oCd1gx;(kfQ$(ipk3g(TjBBBt?Z|}zS^sY-eCb@oc@P!T4tteeL-1c|kKxjCm`6iUQ9lmnT8tb1dzh8s{pzlgtRyl{SiM=ozM@`@r@x$Gc zNORx3-A;e#Ps-;OOf7sF%QKhkaT(=6?Gl6Q{0P9-j-^rwc2c^(V3rJnDjHopOn(@c zOMoaOrTmA6^{){K1)=2vXdPW@xcKWzx&L;KDtT}psE&Uy=)@<0E#3v3rhN)NP{Q_; zJf7RvjRtgUC8K#?K1mJ=oNd+OotrfwK9f#=7HllDX<;g5sBmNe1-jzk%GuC@rx3fre0bz?;C4NSmK+O)uQ^m@@(G(cI9Z=RMK2^{l%7X~qrvy|iOqyR$yZLUmI z*Uv67b#p9`W`B`Cf^eyx;Go?ZTet+0O_f*peC|U~2}kmCTfsXR5L)#AJ8l4l^{~C) zG2-_69O`?tHZYuq@5SHnSzl48+&jTj+Zx5uTwh$PLoc*8K#}Z}^3WFxLWwTV``>wm zU3GY>Fd0z+fF$ziC;>mGb9)=zg2g;7CCbrGtS_{Yk|d9Ey-6uUtxtOV}3<$TQ>1wv8?`Z`D^_*UXQ(QZhb^9`|p~o(4-{p{n(9Z`3 z}Bd;UZRjTCOo_&(*XQiIybxDjFr+{YD3ywe|Pie=MolL%^Ii`chzbDAAtD1;d( ze+0wzcC$b&&z3m0!8fEE4|1#rMGjEc2o^LNG+cVGkSgXD%Ht4Y5i{^gFH^6f1-G?? z13$&&m2{w0E8&kGMr9f+KGjHojH2DxA+N;Pi41nd85;prP*UPikoks!y5;BrTm_E| zA6>f9j!(b#je3Vi$tn`!6efHSh`!eO86lvZwsSK*I6C-Yd>)MM!#@qRnQ2`;I7LyAE!GglGAdoJxN7+^;rJ-(`A|sIhUYVo}zonX1 zQV&ORxRqbdsEKuDE~Xp$dJoo-o@$qMq>~kBULH@NI0V$(BCIO&Y8KxGHK+K0VFv6- zWv_s1KHce>-`(P{oeVe*e>B0GrtuW#Dd?#d zh#(`0i&_Xk#$l1t@5v7pnb*F@F+Ks|U}3oiO^ANL_@^BUJ(SbS@hKVNaqRa&O z!|>=ru;$*_?a%12|7%{S1&J+L7>c#+%wqs#2e2;=hB9SrmX^TKO7|d7ULT{$a%1~K zCO4M_2zfYjCYQ*g!(EhUV_#}g5Khb`lAL>$ts123Y+cw!(x+?$aPM8p?K{r~R9v^c z24TFeInQf~o2HvK1e>T)`0~v6ap_Ld=T?F)&F*zV2K|6v@g?>FH=C|yjk*zuL$lrk z=h|4NyvScuwkG(EYoXmlh(KJVywDRFbr2oP>LaIAlZ)lgGP^61_+v&t`; zWEq>oJoGmD8Pi626L7d&E8VnwZz7*OCMM?9_0?6&56!d7HbThpg?#IF(Mu`oOmM8^ z#if!gq0etxzax@b+;W>Ag{a@@gU}h51?Hctew3-peYZ_{H(C`f<%Xx&-+{xVBykG0I1>CgWM-j%ToF)?J)HoyzR~i!Q zt>&T6WW%%f5_5-i_ecBraf2bge}~iOiXEQ>F)d^0zMJ1A=~nc9XMTY+@D)cRQ69r- zpgqZ?p`-J2b#bXlhHQ=-aBuz<7*2^a>I4yiN@~qw5Pf}pU?6`v*V%3s#G5o&iFzoO zg_9=o^2hag`}yS!vGI4`7YJ zBLBT_!Oew+S~qbeja*9{$nn>Fwt(Wtpf1Ybr;5vI-8e^5LZHUB-}fi>Qs$C}$L%3X zgi;P|6_+E>?<+F{HU8r~a`rx(kMtXP!7s2@DH#0d-nkWK!D*oG$lC0mwXckrxN~=x z^V?I{M+1ep7C$`qg%*5K{bI$h_hxp}^UB`6ux>;Vy`OlBXp`Z%-UtejR7gj2A(2C+ z#J<hm{;SJk4cS& zpcg&&Oa4%vd;4B$=rw-3{dmngtC7jgEFqMbq4WNRo+wpA-GZ1)o-uC3u)XGdP4m@mJil?wjrQF`fs!K)Ikzb~;txaZU8 zcT}X(V`1!}ub$31Gxy%yz5}%fw~9g47JmFUm!s4NE;r`b*4tH9vQl<=dNkd%wrri} z&2VO5)Eu~W?1hjAK5rnygb?X)Icf1q+V7i5;T{6)OIN#k_OcqegQRojfbd}e`=gNeaZb9+94NbIB*2p z4|~GV=2mWP&@-d$lfiL~)^M6M4xA%^SkQCFyBklDP2in0+Djb2 zxEsE|@@J-@+VXitw)6OTpVS_i{JqG6$GrWzy~m01M!m#It;25FcXgVucYhpe6&Z?9 zrRS>_qOAqS#>CAr`i%&u>|_Z7&k9E#uG6`PQm1sP-6d8gPrWk`4NK&SJ#jg$WTe#9 z!u0aF{SIwMQ83`w?u|BrZrs0YKMnN%+kWue?`8cStlS$-e z?^<`w*aZQ=d)^@-p0E;pucG4oV#& zr}}lC3h|!?2HmFQrftg(CAnc(XD`qO>r}~ca)~FNjZSou)4ZBqOiL?+9`M-qCR3xYjVPwr~O6&ZT&;gJR=1XvI18-RKzwV3TcL z)qpH!ruknQ)(JVr7pvG$6wV#kJnrZV!0tI_%pjyJ_rx*yBk8=St&%!23jyu;eI)N5l#0|a~`PnAL` z8eNJPHp<9fvEJOd(QFsWNBE55OzPWvnr6OIW&G%938i$kTB23in7~(6>s25J;@Ibj z_i1H^28&uQIy=WuaeH@+6~Qr^KYxvEEdvEYn@B6Pd(YMV9p-b}VP^$Xdkg35GaNSq z#(sC!%-6;*&xrhy**#xs|0$>b99@bN(1-*80_afSfog-NDpxx*yWr3}37aLMD7`&1 zqf$@}dQuyck;iY~$v$}$rQ#*qd{9$c^s?4xzs}`sZNEk!L8laL*h(5feLea!ue<6~ z;;EbV-1dz%w?%oU(WLhtv_8J5|I+2z^p&T=bSL5#E<;zh*uxhPpt?p!IEGSjF z%MV|{PHa7P_a=MW_+FyCVSWDYa3;Dfx_A>}NSU0RvUblbjoc$)|D<`j;6q>fK1$>P zVDEV96#~mf@yJLLENTdeCk>$dO2XSY>tF+|H*r-EbHAeV_t?Cx^RctnYpWRUbJiCG z<24kbs|_b&c*`)8o@~6t=D}{9`JPk1(UL5Gwh6L8sdW$vo3l}o=h+P=omTO@rCvG= ztEb1otdp?CtoKzI-yyCo3rgr*)A7F)MuhtxaS;zJQ9V?@51_>s`=8BYkM$oqGnYwv zbk|$ZKL6YEdm3STYUx(>#-8dzG=axF5e%OR`d(7SEgcC~UzU{)3`Nf8L^2av`d-n+ zTGY*6*|f7bW@^A0W2>SB2gIr2DRR!>!X z^VZGwV4va%I&i^vE|JFq=SSAu!fpXgC4V7#0Zo0xsEAiTZkpJ;?w*jG(E?A~N34A{ zu;4xPYTCecBaMl*xM#`|eNCQE((qNIdiz;%60*4F`ZtzJD+dfrjx5wJ2L95BP(kAN zM{rj1qr9sjbtYHy&`@$h9T}{6y2WJtgCG)iy_lNhlsUByS!MJwF%$_Z)heFlm2f9oEz}}dc znFW29p}iZEx|RYm4rR#C%sc*Et#i{ z*nOqGm{+?^ZD6njRhRa&5K#r;u!d+r$#8^r>z}v$G#z=jK z2M-V$9^z1|B(Ge3H?mtM4KU9a@#>(SIY}vwGp;xVoN1wRxoT`8#*r5)_uKcO_v^;@ z#0|tC;B+^{eK?ZJz5%1(R{P`4KYtEGE);Ijj;#c~2=~9QMU3bH!84-0iP@d6E>+ajO zz7(UM#~e=#4W7_aBb0u|X(ka8Z*7pF1>q=GN}GGC&%V$LD7x-sZZ_KQnEeisAMyWm zuVj?w4m%TUxt4zhvNHVcaiKl)`^{+e_oeYULi~=WXCWH6g&MAPV8v4Q-dKwFev5N?%Lb@Q=9J6<#vvEkIPbwbk00SgCefFrW_{3xWd66X zylwL3T5)w9^6sk?S7RHA<)@XF!uMBb<{C!OH{agVV%Xrl!S-m~FeJX1y^FfPu*8bzcym(b--YP&$o7gUj;$VqvwbIW5936KhsZr#-Qmz@oqc zA5J{W$WKtCj{L%4rHL+|MHGtF@yZZS$-D!*N|h+qq1>CWQ@%IrWJh%Y4~2_{1|9Rz z2_()+lcikU!LQ}&5THT)Yh^PXfvL{d7nS^`=fC%U4t*!K$(oxi0J!6Vauq)m3*S|(w+iXHrNnM#>%}8#55(h*FPiVa(Yqm6p8s#< zrc6QVMaa0cCpEeE>(E=qkqn7Y=v}D_V18Xr5eQQ)e3xyxCQzzU_>QIJX0&*zgJnhl z=e;8n{h2-0NqC)YRDlunaXdZEsZ%g@P$w<($W-`BFZ}N*2kVC8^6y7CYXx^wH(7vt zcTDiXcCf{MaW&mOvLmIJaDNkez@!|gavy$Aw~m`v%U3v+;VBf@^x9BQJvAc?o#z#C z$3P^9~slKYjB+AZi4$h%MP4i!x(XTD)%34CN$8~NGL?>58x z;xvs86v-bzJ)VeJF z?@-%8lj)KgL@|M_+uva^yTWRwKK{=p8Y8{6M2e#SHDnCVZF#k!Uv{iriJ#(R;894d z{_N1&M6Jb%80$?z7p9{C<#20R{1Th!1G1e)#1K5WsEQ^xzb|}?*22u%8!9)}!*g8r zbA#tfG-Guyp{<)bkD-8au2{g#Poh04pkf?+iKMB43X$RjOU*7zuw_@XupzLb@#hI z$hq6NxY%Mc){l6qYc(BpGUsRSa!Eu;RE}u=tn`Z9I_U3R1M7x9_PgW2I=(m6-y^`3 z=x>(aVekf}B}u=J`oKI>gNL9+?Qx(&sl$mNT=j|IVtz&3?tMkj;v^=|XkTHO8!*;3 zPvj+iTNr-)EHo-S>J+hlWj+(kSorkKQ^G(KuezAU^A=qHb^81J!-M<&_C7)pBvkkacdnt@xm-caIx*#_G2&Rck5L8>DU-h|GyR>km!TrG3(|?qUh(aO~ z!b7#Np7LXlvxQKG@Q{gU62FP*NbMwCbMs+qLPHpY5ZBYy@5tNiK!ZO*d@GoE?-)#I zT#lJli90;76*QhI^ZL~gKHvPTRwJ4FA%GN@Rhm~no>!~1lOmM3w}haB-DH`;fe70~ z1E>i4{nlh>8r$ga52yVz=$-zblY>c14)C%L4dEGi?+O0*_L(w{Vbye8Mz7SB_dR+0 zDUTmoH4lxi_1$}! z>MFyc{GRrLl%jwlA*rMSf`D`iNOyz4Qi62X(kOzYfJiq;vvijtOE2A>OD)~8ybt*M zU+)+A0%y<8nYm}q#C_uPJlEy0O9vljvFTt7WKDo^?VnPaZE9GvoNH@Qi#oW2HWoCq ztIPT`7)1xIs%X2gg_E83`YgVr(!336TR&$X_C@AiDx z2fI!aXcSym$Jcn!%^aVSvifC!XjBVlUkdDjC9=P~E46SL9CM`LLA_)g9BODy84Z8Y zH5<|0DrB#`;^?7nO*J1(-6~xM>L(n@#Gt+A+wOdJ)US~Kl56GZo|?aIx*yX;_E+KT zz0v27{U1N>m;Qvo_xP#A_X@>Bl_f_N8K)E@1h?lMrLt$J!w7Dl*3W;!EQKMdCW2aFP)q`hu*B+ zpb@oeq4sXxsTc2kR=mB0{o~(#|H<{z8>qpm6l?OmaBkPIWEb8)MG2wY4e!m}M0xMs zv+Il0N#8RxN)P9z#Iu;^{#%Vtj2VA{vBup@oy&7Wnkjo<+ykGp;#CMoM1U?S7f5wQ zA6@Bipj!Vp@%jrU4(N>L2?$56@cQ^~Nuk7swy8^~Q~iswdZSDVD0!OPg;mt+ADP)~ zGBfGHD?MCWEzZVcBJRJQ>e{5%4f;t`SjrJ;(4yl%iOb@>kM4jzp~@99GAa9FZ!OGN zQln5a$66ydb0i{eYa`#%w4Whg5i?aiOge<+xjebi3pkbUy_;*h8|JgrAgIrpn{r~x zVo=I$D&ilhb?jFP8tLJu{ep)NH;?%lzmyb2`fT2W=Gyv@MhZG&Tds0lIiUq%pmncH zsodk$;Du7JHnn^);l%QP4De7qmuwbJ<(jY;MxV%0!X*X4^0D&UgEeL|LW(tAJ~D_8zswpr&({Fn|Mq|UT#=}v!eyeet|bjEonR2g zVdyW0rol^e6i9X8kL`k&6Vhf)@6U$C*Ppjf&~9HfkvLR#xSFsr`H4eQkKl9HqtA;T zh5RKU4uueoDoA&}Vu&>4YVQXs>jnwdE&h4ba*gs`2}=I|uN=BJyX!;ZK;cC5Nh8>> zS*M*$L-Y$tFQxl$A9SAn_BWXm^(cd*!a#GYH;T{UV)Df0#eQg|cr-~V!+i+3!RoF$ z_tU@D*S|Jo>k%{7m7{zQ$4tmIO{|Le2_cdaes49j3;j$p(%8}Gd)5X?(+vgl5U=A+ zKm*klnwWx03+c*nqi=PwC0O4RF{QpU5R4(2aB*67?^smV2y^)C!6w9`Q7F(U|KhDV zyk8}PK}72rZ-v*Wj|{ljp`1O(7)6j4R9IjfjHv)1*O8VLsPNc!_!qB@+Z0mgQzfu zQg1A#e|nndL2NJl52J?#0ekY!2WXF>H^bRm>9n1p_;ke(a+w`dM)Qm))!akEwd z$pK1_{jE9A!-lrc88;+6^Byfblb)CL;|4z8?p%{D(Vav6c|nr1OB+HX2s9-=y!kZR z2Zt|0ufl!5_?|?f_=V4DFW)$YlPQwFJP2OM!c)k7JbPI4X0C;BX*CM+O7+{q@>1cX z1ZY0y1-qjamn^l<$6r2nLaq&FTN`T$mgT}B!^Xy=pF?mkV5Yx6aE9T6M7eM`$zJJ8 zQAezi44suf+w8hpMph!vb|PA6{MaUA3J&`{B?;c9)-Wk!iyEmG8qL-Z>yC6UK-V<584QniYp^HxeU-de>pmWvnWvs0G`D&a>eyJ6sK6x%Y zSt>{GYmE`cPOByBGa^!wtnZ2$)*X9c-q^CP=;W?~AvSH7=}-QQKb71f;4QNEV3Y70 zIF(=D3ja3hsi-(+8>!~m;ry!Esqtx~22B#SA$rW{1g4~6w#q2up~AbwSa)2pMk+AW zecxf)(J*Q!M!LT+xEDK!2ED&Gt?i8J>4RK?t+(;ajBOootsrw4tyVRIg z;My1&d5T9R7<^mKd7$s4bhAKo^?9H3`w`=wiO4?Hj~HfZD$HoH?;u;^n7KaQNTK+? z;tu(Fv*5xPT4`c<_q{$~zVVCwHt8yK)m*oLA|$4L#>nxH3of>_rM#l1n6L$4GdNs_89`#} zZG^;k)6koDld2;OaXnQ`H)dvLye}%v8eNUaT2La_?2Q?Z+?Rx?{hEp@?n}HD)cVZp z@83S@{FL~8`mSwq-)wmFWJIe*R1K%JhJ(tgPiH{O0MEPV+Tx1Xl_$#|vK)ob0h38#A^&OfQD zF=G#vTrsnTOt{ragy96Y#o`jQJIw@&v+h8%?Bn;389$FzlAKWg`5bveV{jchFUkI$ zXjLYE#VGr0%ypy@YYjH+{TutvTuv>=Pw43_#M4r#LVD+`;^wluLIN7p3K~Fb)SuQ? zcl4Kr)3^uqCregC@2RAwt$sG1pZv8eJ5nO)zbWY?_Ac+Ny{oZ3yR9rhoa^>$w*1s z#xbZ=gHzhAeFPM(FEG3${J5kai_uRH?#fzW7Q&Q8&lY z+u>DSE`~ ziiU*TAHMAmte3n^mJEJ~xVxwU&Hv|!G(ypXwizbs3~t>PeIfIQZ9?~3epuL?qdXH9RTX@DJS`$W!87yin? z>lo*Rk;jCk2AjzIg}vyThyH&)eJRv%`~|uY!zVG@jNB1nKi#rRhBmjT$_0smm2rgJ z33y}SniR7y^t9q;*2;!dOmkCuz9h+c5EVNsXb1?Loz%v&N~3!sug1BFk$T+?deJXK zza;&u=M?|j%d>(Iv5Z?z911~q0!~iOe`jw*$G$AqIM|~FQ%2KQ&FwfTwRY=yubMT^y0IDCTtb$#e9U%s>IdI{KkzK zj-_a})V{uLp|HB+L5IlUv=Iys58sv`+eGSFC*HQ(T^;&{@`ezMT7^HTE`*b_wVzV+ z>R*tvQKX$4R;8|7I0^p|U8rYXS!?)Ys!oF8H7ma3jXSgn7x3-n82u98Vm9rk>y&LH z7w*X=X#sX+DWBk)BIaeDTJzoCY27@lqrWZf-#w$Ce{)lQ=q;i01?YjRSj5&R`J+eW zHhY8f3&!>w{IW#$%=}@ay372bT`$Vb99AfzDK~8V;w{cKtb8m&Xm@SvJQ0|}S*?K; znV#ETIvt)uqVy#JH3HsiX?yh?=$uJFcmQQ|_v2BmXTZ>kiE|q%swb``La!Nw*w$!C z1u?kP7pm5@@algPQ4e=+<-y9Z)9unO^pIL6!6^3HKB&L8WES1l+nKH(dU7ug{^*7b zx{*h%mtDJS8Tiv?_>NHDQX38MxZ_m-MI_W~mH8HFAJ(%1?`FR|F)}NdD|>rl`Pe^O zlSiSqUE~l}*R2%C)OFFUyx@U_-fE#mq-UjIeRzC03z>%3EztLT{Tymdz&nrW9<@xO zqd6m(j<6zm))Vktjoc`+cYfZuC()%&f#421*3w?^0o@wTLYE`C!tFvg>-COX`lrj0 zr~@532Mi1K3jGbR0*#*&{~LCan~4n0oHP*ujd?80##T|mR~hAbFI?F81x;PWcwHRB1ymzNyQg=8Q zJcm&|TS~qQ>GynW8GxD@)%mMZlAHIpt5^yi>wB;scu;Kd;Ni+uQG9W1degIL4&;Qd zJs+~iQ_H!rXfHXm@u#;au%}N|4)@>OooDN%$d%d|HEKhob;Pu;YUW55<*1{{?FcD2 zC>tIg?XW4ROJ;jBR5x-gJ3y3N)R5b$QPx?$V6beJ#te9W?Kzw*N_yIAO-+1*R8EUFX6LZ{=vIjTz4;_z1rX7fktH+VQyV?&zVTO< z_UiYEk6G*PbhjSyUwSYrP8tnGrN6OQaMbwCV2UhHzu3w&F^-8V(`jxXj<~> z?UZIE_g(&$Mt9j~$L<;n_<_Ru)xoA$EcY;6E9*2lu|P;UT%VnU^vow~sI*}dDwMh9 z?j`KqQ?Qm@XlyV1aJV`|3{?D};lzon#YRNxaBIz~Vs|=#Tj%PkuS1|Dw|=4O5ISBm z4v%ax$?NNu?knK@fM3Y^@L^I<@Ojj2C!q%HHi!jU7kfx9l-JqP^%9W}x>;jDa7%Zy zYE+3DVHG&J;P14z5!%`usNJZw3c}Pw&om(8Cy>2v75Ho zqL@V>iD+CK6{mhO)CBq<<5Zl#M#w3cb=ZE>AGhLGxg(XOsVBZGz&tK?D8MWAbIbYD zA{oE>EneGYexvI`iHiS&kLZiKWW?{!tyKlf#4T%F`KDHQ`Gv;2n^sCY&Vjqr?X2Xt z%p>*u|69i)C(Ib6F1XvBtc)fC5>$F%-rZ$lZf>dccWm{b8C$8GzVR^Dd)8>&D+i2V zb;FJ8bY*SR_lgwNd8<7P^L6>Xn$u*_8SuT>sn5>sz2RjJ@f;Z8Fm#oRK2*dlff!mg z`)KM~SAA}D*KBBoaT_uMwS?_&_&yIKn-QP$vk&t$$R;(X!L{Vw z-#mU>Vbg$&gV*`*8UunqJ-XauL_L_>->F$1*}qR}!g}e2-ujY&p5N8A`h-vl#%w3| zS{aAFaN@(s!$Jyt14YhR4QQ)L*B!mrziEx&u~Id2_|iz=Q>WvjkmUYX1968c`M*vZ zy}Wj^NX)VZ_2Bp95lb^aVX2;>Nb_;#14|LtuGJ>F^__)=qLblotiFmmsHwy8-EDUk zp^o`U4Ab8g=y}VC+oE{Mqq~4y!fNE=HIJbpuKW4QQ_IyMB0lrYr%6GFnC4|}#@th> zy6@TFPNH0qkGLzPo=?mXN|4-tNU}b6xoa%5>x~m<(K-0+IV(FBl6?eod7P@_VSnnF?rR~*oO}MVLbH5oiaWuo<8i0G zUUZ|A0<@laTKB@&%EFiHO^Q=BJbSQg^n;|w-%mvj2R@R5xM2Q_bw=tRxP(&21xC*< z8bFt)8)8ZQ1Xym#wYdHhez>CyWwZ8**ltM5@F^V+JBf&+W%vfkVywO`o%x?D%s;saxV8Z zr9BA>Li-hnbvdqX+ra+?Gmi(!xVV3GL>znPX_oY^Ilyp+{zfSF{yl|j4C{~aJv}gx zVjZRG{>I`}l*Foi@W6D`b_(a57WYml8kk`?OB1syp-3T>=feNnk4`Z$B zCHwDM_>uqG#dWh-u>eK~w-u|5%ieW{=TsLslxkm1(*DH!>+3^-?`YZGN*7VE&GyQkF02TB5 z`BnnU*e79iS1Z!~f1J7M+{!6-BZ}U$?=9Xp)GFpEz7#uD;7jZi%Vr*kiJhy~`{p3i zK`ZBqZY#$tP)It>!)yA_yeR*9xUux15sW`xkNsG5SF2Ug(^ci%Qc{YW3ZG2cWbC%Z zOD;dCd~b*=28A=#?69^r84S;ziL<_l|KPDo#kxdx_|D{nOn+b@yMpim0R^0G%N6e@rVbXGA{RLe&!OeN0TQ>FM-HL%&?i4pmqE9ZG9z<$}EdF@kPw zE}6vSpx052h6oiLn?`N9!ZRu<@w@Ac$czCgbk9k|lgAo` zpW*e!53p4>EPoApUl~WbFqkx*Y{h6+>6xG9){hL$nsFJP4$Z($X>1<3R}uZx~ z$3L!*_OeftI+VJim*QwHsk8y2EC6S#I1r4O|?usT+`St1LA)U$L>vsx7G#6uoES4PsiUaydRc(V4 zx9K`lmS#A!8~RHxo=Mo8CggAO&x<c$FJlWOy00IcPWgnllX*yMUHs&FI93e|L2=J~LcR|!dLd<= zYl!62=(~*D=@_)S0f@2OzR<_tp4H}mX7YljRdh~@;LJXb8kG6dlC|3Qxgtg5fE9*G zA{R`XJ2*NO?SooBygqz9LyKgl+WbYFYwAgdMjWM2M2RhS9Nr^!G;Hc{IbSoE^9cK5{qIOT<`beYu9|_qQ0U816=T=fZ6uRM4wdHCL zEb#|iAw}mwl}xC_Rj+Vg7M#whhEJbpzi$_vsUfGdpvC9y0Uui^!IjvKDRSNjYP$xX zEe`$`HzQgWy;^#(RzfDr&<}Akr@?C~X-~{dgAvb~@2qaOO;v*${}>xTJyOAB=zbM2 zp!ZD(gzJ!K8=}Uu{_d~n;QC1!@LUn5L+A$wjoDbd7P1=lG?^0D`Y{vVKkeLPcYVgN z{~gfSD+6IJY_{5M)>icAh-XDmhU)&q_onZfKJ31+HzHZc5i4p>`@l_MO?0;L0Drqt z7h3S=B#U2>4YvWWrkeOi#GiJ!fG!i8zCE=Z#UF}W%lS9#4BYI4(ep;t+{g63f!?T( zW{g4>A4ePAm}*7EvUs!Zg99ctlZ4VaDW8k1e9{@7K2BwvYN<|)#; z#ycJG8*?$II{eX8*<0;0FJ*pTYCUXuKnV&X|J}-TFWM5=-K}>aXN#*Epb#8mtEPL5 za)C~qF5nNIXI%KL0nnu1@rECXteOJ&D*5-iA240=LmRaH#tNfL5yJl3+w3-9AhS8X zxVzqETN|0n79zhxc7Fb=ZCs0(I6eTrQ1BRDKd8ozT7vXzTorcu<0y#n=Wmm|ZnnRG z^k$7beX{d0e0}WjY{!IzWeaKfWXRR9BYNh2+@NeBS?M@0f_cmNojv1F);An}=x}qG zyN}@EJ>634+DkhAdG#Ct0;GmTUN_Fa%h*4xu9EQQEmJOwqXbFj_uPx-OqEVNiAbrO zls9QN-+6eXS$aMDeqEz|{M?;$WH{DZ?q!_I-RP>zT{;7Z0G85uIn|^H>U$o7jF!|d zyH!*P{N2qK*^4*%Y&;h-6Cu*m5482&<*jI2=XwHjIyhDW$1Pd($J$}E;mY=9d-kYH z1EQd&pC<)ywm4#oAKO*0_mLBx%8>rZlPM|XwK(lt3jSh-|3M3Sd?*WgQ{w~C$MJNd zZ_2s9Y-VN*b0o~u&{}(X_e-%McC=2;qA9;>eJ|CYbh!IpoBx3zCdHbsKGVCgTFsI{ zA-zG|Eh2$Ds{l=VO??LI#?H$Hs$2MXe*NFI#U#wMg_Ti)(7(IgG`N_xaj14%)|d(D z<#F0WY{5UnuTEm|(;vQC-=xTQ(`eB9#&g~^vZHd6ulD-s6p9S#K~0GmD1kABi~f}J z17ev^RsTgMCh9rITO7gFQi|c%2N1pD!h5y|1GjqUnsq8HyYNpb5dp{bT`cDJPeI9?0+~QY<-Z8^k*p95 zgF>T02CC3V-?CvnBvZYd{t0t=fak&m@E9abJ=Xthk|yByfH(ofUXgWK&|aoMC2cpy z_$jN+mk`P|@z(Rr+MFqq%D5^n;%--$8yjf-mJZQ`E5wF-$fnV~IZ+W2hq6R)7+Rnz zZ2BCe+~%usU0k2+uzx=x?kw*VC7<;r!NqtF!7k8YT&zy84K+$Yy9K|0EvbMDBSou@ zBqsQ}_z|Fop<$J^IsWUOQ@~^s`mO4GUQ%?FQmSu!!bOk`+28k}QB_gkwABjJGJJPR zi{7f^@gV|>Sih>s#$3OAs04^yb@5o5z#~5M#ga^+ENH1p)B^a4^V9aih8i9J0?GeK zpDM>tervd1VAewPf#BK+nc^q8qc0uy9vPB(F6t*dsASgZs6MKz6!40Po%v!=m%*jh z5X!q6?RgK_`Qze~G`8CW6aY9uE+OU-@@*~K4@93U>N(o7meh~vd@igJe z6UnB1f2Qe2jnn=rabwc~k5MCm%LyKUdSd z-{8_J9^NST#E_jXE8cyExe}~f)26}@#`nD`&QVb5wE#O1^ z)YkMYWBnB*?Uv{MXkDYReVf-J&|B1LgU#*oj+O4NAq=oo8uTJ+oJFuL2qzC`Gxhh` zxy26#x&3s}zdXq%fL3JIkp0ib7y|^VPiSj<>03Ly`wLWrI(?=^G6ldpH~S@VB}TBJsrYrive`kfGXVfr{<*Rdou`=iR? zjrlHod4+dNAkw$+BKdOQ^>j3gi3xcr}Syxf+vP?;_$EA=yi1EbaLf% zWlpUOV)E>5=;JET@oA z+UeFPThH*U#;AtUvAQ?HBQ?$8qgX&oxq*XYz?@svu^}^CtI8a1iMD)J5h5dDnsDIN zhp6S=-AANVLW_JKWzG#uL~7LLtk{j~R*%J#%X6m17#UWY;8#dCXu?uxJ|K_Q09p_R z2(f5Gp9ma#Kf>YG+L? z6G0(`pjD7klpB9sciv~)(0Ky_wf_0H8ePN>Xg}`!mOccAS zeDrQFQb$W3q~H#1!FuwCuL-ROG2rw-=;jaPIDt#eZccP910*j#C|5 zW-Cf``~(&Kigpj=hbIa!PJssA>2-{L#bp~fTKVEwr&n><`Ai1ET`VJFZ&rW$HzxNN zPw!gTkc?JImSJ$&tC8|g)*J0#fZR9Se!|$7CzmBJNnqQ}7A?vn18nit4aLXl=3;~? zk$i3kZBN#S`|`sHT`e~|Kw6zw7v&`7sJDg%2r1M)yo(hC2#bPqSZ(TjENyJ%>{X7M zOuJt0WXIq7!BjTzo2kR9_+>>iL8azbSiU)GtFc#Y91-5qQTH=UDEMHnQf%$u6alND zOoHHt`|@2|ayKocwUcT59Q4!XaVFzdvV{-hSf+b%@AumspJS5Lxb0M1!t1wNC_54e zb;*{KfuytlFYh1LZe9GzhXMhvcpwllu@DFi1mX{l>)-eQzAlF=C|DS_Tdp?!8qV}$ zwe$Hd3)_*&H6H)yW!Ku-c~(u=c}`IhWngjKnEN$SWsb9CEY%UYt*m819`atEg3oAG zW9^u%GE(dfAmvhJoV&G^8QA(vy;jQ=NYDr6$NHZwC$G!2|H`e12xB|XSQhP8ebu4< zaA&jYk(?A(KYk0v==>jVP> zHRp7qloAcM@C>;~LRek*rDXH{5bq!17b&^2Xm}>QSLn~^&!>}DdE3W(b>4s0KciqY zJy$$4k8i-^L?9GRC(OlALN_iECNu~Ti*@wYlpt5q;g3VFkk25HALe^}QQ#NeTV9|8 z*;(&djFpV`55@XOXjk^G5MNZCBYzBeaD!yYRwsT}RmkrY&fEn_hn?mHo!paD>l~;P zyuVC~tTa}_`j@HfpCM}ERHr{bH7>{qRdQ;MgxdSH4?;STB~+?#woj_4RBL$5zJhR+ zb3X&2t=Q1>*OVX-3kC#)4gxu+(*{uwZ}*0+)H^+pd3zz9yA*^CQFY5+`qmbh>iOQO z0nUf;g!R4dR!Q}rOp7DIQ~6|GcTRcK+qk!PWhIN~a+0l)BKo?fsYKJymPO~ra%A|H zepH!kD}%K8QDA>emuF%Zc{m*rdV+WV_%KK#oYnDY})oE85h zxg1&kDn%_?f&U}h>qjfyQi4JKNFI?FMZ_4yahz@~yb(Y8Jrh&8HWk_r;!3t|4i35T zeZ5w@&wi^hDp@C!Qk&2LcBlPD&mGv8b6&SQ;n3feF48jPy}9VWf@0tlKm! z)*C;^IHH`7cK!#3X^z@ttYSUlhp@#Ow#ll75A#!;SFbr}CO2zcH_Qw)j8f7%29ohn zAv#H~;Ezc;dJNB#eRGI>LvQdr((X@>$#Op8XHviC`uRCW99Lo=>GA2`^4r}l!MMb! zby{fl)2Oe)=TBN{5xYyU(>gqC5D51xF8-|r9Pi_!zM>9AnlsgR{RHRVUUzy*dd&A1 zlW#Pc944ZsQ{tBu%nz#K4&J{Hw0D4v4X?->h&O%f#bqTwKSkJ(T@?w+hlhKw^IOTe^|&ol1qp|yORk!nYNY9p-NYdivDc-ga~^Gwo;g1Aq|XK( zi)}vQz0X$N6Y(l=ndmUznD4ueL*y~x5YbQ#` ziV+z%a5nZBez$wu4mh@|at&nm<$p2ml4y_`wbDJfF1oZ+$b+}jg=lo6OzV7jS{Gql zLMihQxh?3KPmN{_Gzmr=@liOf*1ksF;EL&5Oj zc|03b4bI;4edh3wsV+y`+x-e3uU15v7#KBG-({IbH2sN`MGP<_{k04x+D;NVo#q4( zRc4B_-w$t?nnjqtFei=l_kv{|D1S{f4fI}9w9omiu7=W%>1u*d0@s*coAC819`<>FfIa-nn@?4E1W(tCTBP{{r8rcD~W6cs~= zc)MON`%4vaGYyt9!2&$%SAb*yl-`yDxp1)^!(%VDDzYLfDclb6AJGDPO@?FyMW(n= z^Yd5HCmpKhyUXv#6RNL%ya{5L1YAai4%oK0OJq0GUn;G}!F^oWcazh0hA+17(vd+u{chz>BtB-+U=kBfsCg(E!nFjhgLH zG%xA)WUxh$v*0biE^J??d>|MI$}(y0f--yGLlWP-d?)kct(F@`ewQWZo;bTO_}}D- z78~us2BxIpy}`1{zH=QVp;uaE+GQ_08$o?hVfWFS4;QD;^Y49LfcJVTbtU$f>ZOrxnrzrx}y z=6d5yA7REhoRik)qEGL6`Kc9<;9%W0VE=ybp9v|kh;uRuhm}ho0Zk*iaQq`W5zobt zxul>ALaD>lT=}t>uqH#j5|Z!|6YA6`_($)Qp0kh+V^q7}Im`7Uul3g;Lb@U^~cYWV|dgJ6dGCmJ=L%}XxTpNX|Oes6~IA-Fm zRz7ZBq|iDbkWwAy(v~4AA~*XrfM-&xY-%K&M!*l zv=i}iv}~J9Xv9)=XrK9GKmS~r`Tm%!c;nDHdP;Oi-R}=;n7**yN2~H(o*_Na@u$O5(2VPl?$Oj43+j7aC@W6ZcdQA>{KT}Pw78EC=H`O0NAmN-V=8=DQr^fi=(STIt_bu^m33S~oxG&gf$qFq2o7gz3~l**R##MbuOaPusrdF9&b>(Hsb!{7pC zTnVz_aNXVPVB6WC`CGFWH|*1B;=AiU5ib?r>;1?fZ8VT*$Maje*A}Dl-8O1M#DNP1 zsD!ifyY5#xJuk5ftLszKj z8cBvJ7-Sx1JfxPSb?R-L$8)lGuPvs<`6jA@O~`|_fnhg6LU^~wC0koQq)w6jCG%{x z2f5|i^~-~bUgjmEf)=UhEx31@ooUcH8Q5dF$HjE1B#C-MA-U<($KB5)CF`?1{NJZq zGDT4K{8Z#g-76YajB-3{FMqzd2*tnpY1?u<{8kkRO;zsv?a%mSCF;RrwkFk^qrRY# zagmq(JvF{Luuf9WI$PfB9DnDl0cG%22bG7}rg^F`*X18hgk#&Yc`ZHFAznvHEyv#E z%_hYG&ONXFa6bKm?2y?lS%GuDzz2VSJEjf`*qwYp7T=-pH!7O9@lo*%V&`m$A+6L^-)JzZQl8xJ^BSp&0e~U z+k=-3=Fegx^q`9-QQwywSc?HwGhbo?z|8P|_s0szv=um8WUfhSi^p1(J4UC}g}lp+ z!u${WTFG4YW$V=9NSsN;<&sncADa;0h5>gHXQ8=S)97SlZbBpDGOy!D>Ikc#HJDyk zl&6n>G?Q6;U@+(UDap}ZjMx09v563>h%%xu@A;Pr!TF5Ov}o2$0q{`=PYLl&B|(g5 zLyqvr!n0da4tvF=U}lQ#Ch%<9)i4V|F-odug939`+{l|#-z=kBBbK-|V&VWJl1ld= zGH|5G#rF&BuRml@nK(IVJ6uTI$$!K+GZDGLRQD%-529AIusvgv4q<|Bkg*0=M~2Iy z{DiA@`MIq=ggjH6+7M@Rm>sTzJ1ma9I;50bkV49F1w$jihUjqz>3Q>ynk{vC;BMIM zK-bUH?OE-Svs5x4=WM?0z&IQekwU&HM+KgY^K!1_IiJmFKKtBu{Vmrx!igiwzJtO1 zup&_Q@2`As!%A0gJ#1=kbwcz0fj5BArSAMXat&jg0?u)kjJqR#v(*H-^qhk}iqrem zyWN}VWk26}8qSBThi^2SZlg?RnwXpZ%%=67lb7rG+Q1LTQd8h|WNFilW_gMK16!oNh_6q=k_^DWoCBVVqKl&R7Xb zE-N&e7C|Y*ndCba=V1ouOlNoVh?+%;V;eeZMOtE|H82@TITc$q%})bVpl2(OrK zvukID-Q4i3cw{n3%>F9f^8TdhpA<#dtk;lBIbXlL0vr+p8%=Pb-B^w*-tpvLXt#mZBZ*yKlt2!%~|dFvx@9e z%3N=v(g^`b^S|}!mD7AOr`=yo*}GhqHfc(-le0VMJwnUS=4+9M^@hV{`jr-092M0x zr3jD2#N^W1E#mkn%0w$KkGjT$O__SN4fk#B#_{txWw2K|W2{cB{NFJ>-gpBfc`?5L zK(o-fqDnYihw4hu^M!NXA9wJg?O<=-JvpXh2)bA@4;uQmZOG5f8FSo`#>*unoUjj% zIAK(>)17r=V&L3JNlcNUH}+vzPJy0~kKBCX>u@mjQUarV)0FuWlv6n0z@;IgLz@d; z>(ws~$`CjdXah{8F>qqJNQ?+_RlKe$gkNHp~pZ z2~8B_WR=+@Cmq6X+RN!iICl5KC(e(EWd=Bvft#X7^D{Y^u?g@67c=JE|D0{^hsmsj zQTMDJ?oTGi9MSWv@xsm`!j^fvz9elav~zlI)QU`y_ji~WaHrUF4)e`B(S1BfT`JGW z+D*cg8K&rnO6%Xq+MS>4oQ{;6qTe_yUv%J^Gg+Y*qPGZx0vqOEj^hOGCJm%AYUM(p zLCG2)NR93F(azybi}9$g_x8_e7h7X7a@IQeeRnYf;hMa6hW>Wj%6k1ge9O${h?R=N z10u-wvsl3Z(BNr!bc$g!2c5cso?#>QUq zgv%xumo4=&scGX4zHULO?%UaCNpFCq-0qU7+Ga4Nw2@qq19OgMDEQ|3bYo&sZTso% zhrrT2fsEhJj0%(7qx_r0j*CKk)Hl|N(r8K`E+1%LN4t%6qrcg3_gDHJefZ3=iqZyOQvg|& z{=Ex74O6FW&ns;kR)?drxk&VjT4tPru7)|M8a-l+_iHH_TUbs*mw7|ljU7$c$?gNO z567J+S03EY#oHn=a4wtCmUo-?)iz*xJ%6~$+hgS;+TpO`;h~_^Z|TawxF!X}OLCYR zz-0lXOgMjdbbtVtP`6wd3tcRDlaZ1|vH!9XfwD^ir@4_zl`|xyTj8TVe>LS}Gh43H za`81y+0OT-9QPe?*BFwxO&5Yjtj(r~@13_ougm8um)VY^#|@zBK6(tpAK#0G4ZbIV zjtCf>I`N;io~}Nl9e3dJwpHaE9_DvEQ@P$$vK#C@;v>7&6n6|iV6nXEiLT{~4*ctC z+lF(t>NE! zj))(Lu?#6iSgQAn$?Si~%Wep7lu0RV&9+<}%EFc}hKkcxp92ZPk~KdPR;5VvrZPu*pk;y!PNs@tWF+2|FJE*RRsqN zIdeNc$|K*UvrCpqs0s;PbHJkZy^rzeMn&RBM3uxoH#xL(q+XasCk|DH?XNYpKz)@9 zmzkZ%wOX<-PlYnuM9v~?8;;HJo&efXeWxu0s=iLcis27W3v2AOrjc z%^jp!?i@MIi)fVIOX*Zimp#!AreV-jXR&J`_G9{`O}V=66>lLYhOCJNOZ|%&s5;np z$Y3Pm<6FUcF}FFNq*RKeF@(smkYM_vdK5)A*vz_@09NY~K?Z0{DBAxdmrx^^WH5IcZE9UBa~M zS}?nQEYtBGgpG~$vdG;9y9W>?VNedFK zF~+%tbC;6sD?{3HA?ltWeI+^mSFZ>U=FnscO%b*%lylmoj_$HU>Y+6}uPp+zefp3I z&tfRKeRN$X=q;qow_+bzfCNC=dQDN2~Bz9zW_A{AFI^<8vdhj>GM&Fohgj~JqP}T4L zgLeYbG7#+{Pg4X&4ka3B!2ix@3!FY8^u7G8Ba2i$CZF4j9^S*38nT=mFm>s43>ryg z>K2doksiVi5_FRsO8M<#s14G_@x}`1N5);vbbgITRPwfy{Y)B-u9k+_b~=&Md$WJ? zT#b${`F`|da-c?Cafp4A%6qgZ3J79a2&{Wbt=U8wO}&L)AU~C^G`_Tvibe+V=C{8x z#sIaJi{D->lvCKIdze^`ILgJ{v(VXea(67Ogxzvi6sdJd+$m;_R5L zziG}M=;2fm;W8|os!3PitSZ9^+t*zl1V_MZRgcVI@ao{l-09Q75 zAg`Pfg*@kGAWt^cU_pgPKua%%QV-$V^zyG?Q;yiB`k3M#Ha3y^Kx}& z1rL3(R*67GbAQK)KH(ILB^~;Qv8(TE%U4C!&murO<@nVQZ=vJ@P~hM{9k)-{tx9F{tb_8MaZX6 zjU}PQTAyqgyU>tiAL~$Lo3Vtk3`2xIWE-KZ70OP7u@0dkvNYMo*lJ>u8M_&~`_lb= zUe6ED56}Gv+}AJH^_tf;Gw16(w)gQqj`KVpWZR$B!x75flD9&+*7>rZ4ys8&egP{o zlg7$_4jG?Dl%GaWp3zQy?Hshgtv6l`F&*CXy97hMmPW|JsC943N0fVc@TJu>m;fWx zK>1dg@`joqEir$VQ2gmixISn8-IcbsROZXs2&(Sr$h#)Jcig)z=4an3(^@*Wh4A#3 zxWU|15ouvQ%&3ivy=gCl0k(esu0%*U5e9`AvD14j$3I(jsB!Bpyqg$G2K>m8t!jHq zMT49PMSX5me*5D4N)|TCHK7iuvp=swO*vH#oVZ7)WIQX2+@Z~~uwd~TnTp-3(3vcr z>&ag@Zf;BWB|~@kp<0(9inwdx_)`}}GB@-|y>Bb?#}I`@HqbEq{9wCKy5g0Ea%`I< zq}2v1e{wniO2WvUWH~4+YKfkcl5&(;=#Ghaft3TLB{!nN9~T9GiGyq49uH-W>`bRc zV5`zM)@ILU_~_js7IuX3S=kO4k&NobJbYNvZw-ka=n=))^lUYgM6awhB1_Ff?z`_3$*%#X5@?I+hMmx zSU=QbrzOEpC9&f^=z=3;0BvIJN zsD?B+1I9VDK#f%u>RuDZNMzEiU_z^F)sCf zx{{4FSluY5_u2XC`?+T5u)1?rycPjUKD9PKf-p67r;G?$9!CE_)KmkVv)(WuMN?uDQ9k8|w+68V_J0OqErM7pY7YE zd-jaL8GV6%kI$PpJ*2|DkQbr4#3bwi^waBh_WUzE{ zpu==#4$n+0c5a~T5zr;v|6~XlGuJU~VEh%qY$=J^t(R=CE^v^X7ps*T4DDY8VW;IF zw*pK43+i^&``XaQ$lkH&7vr_#eiysD;f9@-0n5g2UV&U%sCGr0BsVxmB+qjcZu&{! z{l!&H+CF=(j0@;4dP_OlQmHBI)LuyR1LoCw%`NG0Q47j}UpAuMCmmTL09Xa6Y!Al) z0(lI}ND=h=V_D&r^l^IX60P>pv& zN#Y;O270VRG_H`lyl&$gMn@8OEAmCc-$L9H-DK+$UE?jazca)KlQYE0vwed1w(*Elq|5eCesT6y>~|{$_f(73)uY|wW0*aRdjuop z--$SVy!IEq=>0~RXckX~N)PWRN1?jMCgRn3sd5k3oc)|Od#zP4(jG#Gmm9l(r^&6Y zI>d7Rn#qzA{+C~tvf%s@5bOW8EC~lv4edNBUu*8IRD^zjOvO&euJV_GJjTP=`1sNb zs^b+asWO)!TGLhn_+@+SffZ56wLEbiFl-q&);1&;AK!P}>#xPQ4!4$@(!7TbSMC4X z%yR8Ye{=(}i|#@87c5LH~ez^2N>Xn4(GAM1zQq87>h*NEk=kd^$e|7r>)8#i0w zpMH(N1oQ6PhpXpQf+d0CX4on(fP@t!z#H4*g97v0yZ+FI9u8P2XOYl&`{E)w1y{zixdwLy7)fB-ph2{(LWrzDw`9cK5$^Y@*fx0xbxN&&c{Mwg zr%t6eZvL&_fUm{eWHmkylM&DZe+6uS2YPx0Xca%(%+<_uLEEn`*y1|6DL9Q+cgs|7 ztu!L8Cl2<;8N_OLoXCv48xSw9h9e}8%Cu5lF2M%hpT|euAr_RVPT~WnxJEUaK)b8v zq)u)#0#8!WKJJs0TAmDKc`5_9eth0L94_l&9Pi3HS$wVF)n#&eT_)vzG$Zh~@>gE) znr6l4asa=BEP=cbkZM{M5BakjYsH!<{5t8P_;MP(pZTOH-VHsiArA?j@F$5^8X8aA zwB@cj84z$k%*R)TD-c`3x+7@8jKK$j55>do^RT6qhz2Cn!k@s0JI_dYGMd-eaqCk& zWA6_qX9F-sC{_9m<5&A=ocNl{$Y>(c4u6r+*hvkcrSpJ9+Ux)mX^|fWoa>*tFV;+r z3uKB+g-yB)Bn6g2n?%`^!kq6LC~rY7fZwQJSr8@FTuYFEY^ap3yehhPPr{z!{`<-6 z%z8FWEqVKsb7uW=!$be=xKeRo#4JI^ErwD|Jh*I$PJ7Xc0AX}dCBEZL*q`12*Hy>O za^c96Hx`*1HN%vP%256MSv;)VdLk;u%?9{WpP^8Anq1imPpl1x99xtbyR;}>5C^s(uJx-b5dseOa zl#?OyL4NgVAi~PCMFD>#AevVBXh#W}1#Na92Dp{8FmM0i6Rm%uCuG#DgNOCVWrL@m z+i=KR9e*_`)p(eEyIF3W0r+7SfTtlKj&I%K#BfMJWEnot@)*jm;g$R+G>0%wrG{fQ zX7m7>)%QQjY330GM*&)TNwh-Sn|Mw@BNda5=Bv)giAd;>5MTI5fLqt$?B1>ssjPz) zmvR3)KX7mgfbyD+KS_5O5IspZ=R3m!rCjx1Vyp^G<)s#mk+#{4KSd8-zXX0LcdNSM z1oTjHLBSP$*GXz&o4-1usYnI7bE95f*n4jEunHkCt2tu*toRft4ENaAlmDzK3e#h> zTv_Z6*HwPvv#GRUM7mZzifoh(F@5n&+NS6z@bCNtROgjwG9pSv8jN_(aXlHK9jr^# z>nL1V7r?zHbCCR2q;Q|~3?xPaii_O6eL$*L!T*G2YvulXm2B*jhlsMd`l3mj$mxc5 z%YcLPGB!dYd9LyDL3z127@WII9;zdc&B_7z*Z%{^F{Y z#;*#gaB#`c=ko&G6YJ+klrKN1Mu1e$te)d~d}IA6(BS`8<2Q}I#04+kdv9nV-gvv0 zm;Im!VFk}nkCYAx*V-acW87L*Lf}m-r0MYDzMdWqw_5S#s~c*q4#b#*e3_v%IkmM! z{=t+l)|376AKJo=h?N}-=`Dwb9zi|QKmL^r2h!^gd|pebq}ZQ*95wX$lC@Jm>)xPK z1sid%S9X*g^n9Oh+=m{%?bRuk04u@;b0KqUIC16;J0}+B`fYU}IphA@jx!YHL|UP^ zbx`IyDEe4HPKI8v&kt~fnPjUFlTeVN4CJF~*|Ej*B&S${Kql$(f|q_gETwP2t?`uj z7=Wac*z=1xCHHIRdE@1jBq8cM@dA#PZ}P^H7ufA=oKP@?<*61YWy^9`iy=`3uPz3_ zAMqrJj@pM+wHn|*m|Xm|ty{7`{O>L=)L-Ek&=-6FfnUUlZiL(=^VE_Zu*&&e}i6p7t#Hdv2mfpp*^ zEl>v^?4!rr-KdYzFN+$ks41#R+q*G;9a|b)i~5+wbEv5RPOUl-YT8~@kVY?sA&+~> zG~x6rW-gN-$VmYi)5Cs|wJ9!Jk_&Kv!21AQ{9L!xetuCqmVVPST6q-#)sh3VRr^r< z!5JGfuGIQgTViA{!`uXbj^Rl~a4v?e2;cr$I?9)!x3s#ix%v__2W7`YvUX#AEO8SXWGUC981iJQQOjz zk4&iuJ8qS|hU{+1{Y2WNzl*r}9cAIk%iu=?_?7YedvnJmsuBnaBK7WVw8WQm*~jv@BgIn=ttiEq+Oo5eeO_?ctl4!OdzE_48IEu zm^IK~p+ML|b_gFu05enQ&I>OvPDmltlG^~_mb{@eRV&$^&`23@z9m@g9QUaG)jhO1 z(a;qQGLRdrUdgrjanoY1$%w#nXr(L(G$?DyLI$U#f@B-)HmyvFQ&`c;_aa|QB3MQd ze$U#iC_%^y+Ri9j!CXK#nY(_Ja$X8hF1oikIrSd$$4sy!-F$93@@)sh16X%Z*>8n5 zky}=v6}Ck0*NxMU|35_yMT$H$QWkZ znqLUJpvu8lzOxt2>IENEGgZE@3!vYju(PBe^V13Rr?@A~VVD^;Qb z?_-L8_pPyL`3uLH2EYT`T^=8xbfAsV+S|A;k-{*2H@CzD*FGnTky_>N=?L~+xA^UY zJ2fJ6gyw&60qhtc-GRE~Tyl+f&c+4hbK{G#=SbqC@7xkS)lG?9{d`FdBwabWyzZI; z?)CQ;%L-w-_4o|c6+OP6Mr(cK%ae>=IJiRVd&z{qxLP$ zL6u)v<%r@*z8*&ain-J9z~rvGu#kOR$M;yA&TQ2DfSX_z{qaT-VvumUO#NfMC;=zn zqQE`scwCF?6UW`2IGsVZ#pUKp)jQN$doK=G*6BVsba*q)#q!4%#ux<)t|k0~c153R zGg*(f0Gbh`7le#4nVB2mq(41+(s4dFaF1v794F?RxtIn(IhCOBGfNossyy-=KS+L} zithkyvvtn|9>DGXLa@5!o@Zn0gxgUD>9LzL)BwMN2E)_(+W>VTx$B^`BiXo)) zk(X&5bAWtke9)YXJ}au8xfBB|Sg6@rN~#c}M{A9a9%-Iv85jC9$h#;%EyE}XJ6aOG6Fm7@;{^{VoaWS%8o!Fwk=|={_ za|QigWG3LxtMzdESd`gTGI`=7laYzrZz6CHri79ElAkK8na`oC>{{lT2Htf$&6OkF zEh00f_7@r65&?P*f0|3*qGna^E?TKbL+qd2(tiD>(Xso_A#>_Hr7$^d4F_0)$)X2zz~ow36xRF;qBrs$Q}cBf^F z&30>FUIwx_qP=ZPg(j$Zv}xMnW~s*W%;s1d`Dj8VM-5uJuAe z&NG^X&v@zG+R15NPt&O_0;zWqe^+(7e`yR{E_{e`R0*h`-7%Wj)i><1JSwuX+Xxg>&L})Z5>8%*aTT?WdTxWd7JTOCj(Vyd%0- zx}Dpb_GojgqckJ0rv#T{RF+Csre=~C-@YY3rl{s^w1{b+15BpxOCw_N%;k`0){SOJ zDtyYg;m5t6^{nUW?JcxTmt5&S@8Kn!n@#g6%?k??*s-MwN@peC}GC%d%^>LvM^o@HPZN1B*!y7Zx?~$ z{m{=(rBw-vw4;EdS8GK89ru1|TxAYcgHcwm?yE}#g&!1$A8Gkg>3b0$-yh6J5a5W4 z@63mgYO-BK>mt&3b7{=3I)1``%5t4y-IP4@NrRV9^oW2=L^ixRd=!~ZgTLICdH4<3 zUbzkaBXYH>_}$0R)RmP~Y39Xd@t+U&et< zwUnT3|MR5*k)nTU7?WSA)g!l)v}EemS;ebGu6oP3>_+&;E;pefQ|Kpdx-$)Pvy83E z2iI$~QfbKVc)0zKV7rDqv7~YPuGM5UUq;tRj5;cZW-QTKk@%Y$qtnFC37J@rG8yjeUJE*YARjycFTBN&f7lOS8qGsU78*S zk{>qdef)IL@yZJ`HQM{kHy{ZSJiIV05dkk+=C$aeICD>g0b}ZXFD64CFyM|IUY{bF zPz@!#PUvW>j>}i=6Y->zVWn7z0GoBGRZLzQ@0*)Wj{3RfdGHVfh zMwd?3`f}3UCLjAA3gLNm4oH?2a5zyuio}k-B6rVV$OZe@_xYldWVg%ZGq@*%4Rpsx zdlNzV%jR>Pe6iq-9969e48}4?sLE<2a+~n&oZwmrtF|GKh1NJcQ(RFe93xkMYrky+ zaiZ`{YFpX+!uUFCnh0K@vSR^WO{$XQ@1@s(!&$ACAFExoH}fxIry91zP6?|(!t2wM z9f66dj@r>QA8dDYkVs%1?GUz@r}`x#)* zqryIt5UyxWubMdZc{O#;=lk041yspnN*(eXo~n^8_950Ps}-ueN3xxJ%eKiAXghhkh^f&53Snr> zh2H3MtmY(8d-`3M^SD$0&H}v6enjHUsk>(~(bs-neB_V^;YW`r{c6Jw)}28+(yh1P z^ajrEl0f;|67gi0Zf|!Ux_89@!|LkB6|rg5gOBV?b3$6;L;<9i;oe{wgWQ17wLfaA z!A3PvvANapx<1;z=7CX`%`*)n{$K4vPpgTphGwlX9RS@g5&gp1ms$IAy>My0@Fl}s zj^;VyH#E10E=&jFS5PbDhgyZ>m&K^m#EAIVfCw%4Ix; z_FOXomFk0wwgWz~e7o~|PY*P;hHpX0?bU(y?(J`P&?I;c)tiJ`gn_utZ=#aVq@BbjHhDAOh^xVq-Fh=u*??7 zPlE^UE7?9=KE7N788!P&Dys4-SHjO)HZYudyx+wtH`nSy`x0n-mNm_nG;Acm#_Fey60}SKnijx1k<-^hA|2InoKKy;3Eef~+m$uMfQuOGt z`7FzYqdSnn9_h#5r~kvm7kKyo{^bAvTrv(hLB+z?K!n0~e+32Azk91n*E#xs0j8Y- A3IG5A literal 0 HcmV?d00001 From a0e6208f25ba4e01d73962d47bb3cfd6f3e89e8c Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Tue, 5 May 2020 15:15:46 +0300 Subject: [PATCH 11/79] :memo: improve docs --- Readme.rst | 14 ++++---------- docs/index.rst | 12 ++++++------ docs/quick_start.rst | 9 ++++++++- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Readme.rst b/Readme.rst index 57409cd..35afd61 100644 --- a/Readme.rst +++ b/Readme.rst @@ -27,15 +27,9 @@ .. _Part 1: https://habr.com/ru/company/ru_mts/blog/485980/ .. _Part 2: https://habr.com/ru/company/ru_mts/blog/485976/ -.. raw:: html - -

- - scikit-uplift (sklift) logo - -
- uplift modeling in scikit-learn style in python -
+.. image:: https://raw.githubusercontent.com/maks-sh/scikit-uplift/master/docs/_static/images/soc_net_logo.png + :align: center + :alt: scikit-uplift: uplift modeling in scikit-learn style in python scikit-uplift @@ -110,7 +104,7 @@ See the **RetailHero tutorial notebook** (`EN `_ |Open In Colab3|_, `RU `_ |Open In Colab4|_)) +- All approaches can be used in sklearn.pipeline. See example of usage: |Open In Colab3|_. -* Almost all implemented approaches solve both the problem of classification and regression; +- Almost all implemented approaches solve both the problem of classification and regression; -* A lot of metrics (Such as *Area Under Uplift Curve* or *Area Under Qini Curve*) are implemented to evaluate your uplift model; +- A lot of metrics (Such as *Area Under Uplift Curve* or *Area Under Qini Curve*) are implemented to evaluate your uplift model; -* Useful graphs for analyzing the built model. +- Useful graphs for analyzing the built model. **The package currently supports the following methods:** diff --git a/docs/quick_start.rst b/docs/quick_start.rst index 39ffba6..e63a70e 100644 --- a/docs/quick_start.rst +++ b/docs/quick_start.rst @@ -18,16 +18,18 @@ See the **RetailHero tutorial notebook** (`EN`_ |Open In Colab1|_, `RU`_ |Open I **Train and predict your uplift model** .. code-block:: python + :linenos: # import approaches from sklift.models import SoloModel, ClassTransformation, TwoModels # import any estimator adheres to scikit-learn conventions. from catboost import CatBoostClassifier + # define approach sm = SoloModel(CatBoostClassifier(verbose=100, random_state=777)) # fit model - sm = sm.fit(X_train, y_train, treat_train, estimator_fit_params={{'plot': True}) + sm = sm.fit(X_train, y_train, treat_train, estimator_fit_params={'plot': True}) # predict uplift uplift_sm = sm.predict(X_val) @@ -35,9 +37,12 @@ See the **RetailHero tutorial notebook** (`EN`_ |Open In Colab1|_, `RU`_ |Open I **Evaluate your uplift model** .. code-block:: python + :linenos: # import metrics to evaluate your model from sklift.metrics import qini_auc_score, uplift_auc_score, uplift_at_k + + # Uplift@30% sm_uplift_at_k = uplift_at_k(y_true=y_val, uplift=uplift_sm, treatment=treat_val, k=0.3) # Area Under Qini Curve @@ -48,10 +53,12 @@ See the **RetailHero tutorial notebook** (`EN`_ |Open In Colab1|_, `RU`_ |Open I **Vizualize the results** .. code-block:: python + :linenos: # import vizualisation tools from sklift.viz import plot_uplift_preds, plot_uplift_qini_curves + # get conditional predictions (probabilities) of performing a target action # with interaction for each object sm_trmnt_preds = sm.trmnt_preds_ From c37c437ed16931f7125bd9d0a89e7739878de39c Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Tue, 5 May 2020 15:18:18 +0300 Subject: [PATCH 12/79] :memo: Fix logo in main Readme --- Readme.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.rst b/Readme.rst index 35afd61..b6768f1 100644 --- a/Readme.rst +++ b/Readme.rst @@ -27,7 +27,7 @@ .. _Part 1: https://habr.com/ru/company/ru_mts/blog/485980/ .. _Part 2: https://habr.com/ru/company/ru_mts/blog/485976/ -.. image:: https://raw.githubusercontent.com/maks-sh/scikit-uplift/master/docs/_static/images/soc_net_logo.png +.. image:: https://raw.githubusercontent.com/maks-sh/scikit-uplift/dev/docs/_static/soc_net_logo.png :align: center :alt: scikit-uplift: uplift modeling in scikit-learn style in python From 5da8649b6e458beb5c99da0d90d83a1e7a3f25d2 Mon Sep 17 00:00:00 2001 From: Maksim Shevchenko Date: Tue, 5 May 2020 15:46:33 +0300 Subject: [PATCH 13/79] :memo: Add github logo --- Readme.rst | 2 +- docs/_static/sklift-github-logo.png | Bin 0 -> 47763 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/_static/sklift-github-logo.png diff --git a/Readme.rst b/Readme.rst index b6768f1..b9b8cfa 100644 --- a/Readme.rst +++ b/Readme.rst @@ -27,7 +27,7 @@ .. _Part 1: https://habr.com/ru/company/ru_mts/blog/485980/ .. _Part 2: https://habr.com/ru/company/ru_mts/blog/485976/ -.. image:: https://raw.githubusercontent.com/maks-sh/scikit-uplift/dev/docs/_static/soc_net_logo.png +.. image:: https://raw.githubusercontent.com/maks-sh/scikit-uplift/dev/docs/_static/sklift-github-logo.png :align: center :alt: scikit-uplift: uplift modeling in scikit-learn style in python diff --git a/docs/_static/sklift-github-logo.png b/docs/_static/sklift-github-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cc16f2c606ee55e72ffe361798a95a77f70b68f4 GIT binary patch literal 47763 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