From 2b1d5f2cf233d427f6fe5468504b6397e57cb6d9 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Fri, 23 Jun 2017 11:42:37 -0700 Subject: [PATCH] [DOCS] Add ML configuration details and examples for script fields (elastic/x-pack-elasticsearch#1593) * [DOCS] Add ML info about script fields * [DOCS] Add links to ML script fields page * [DOCS] Add ML API examples to transforms.asciidoc * [DOCS] Addressed feedback in ML script field examples * [DOCS] Add preview to ML script fields example * [DOCS] Expanded code snippets in ML transform examples * [DOCS] Add output for ML scripted fields example * [DOCS] Add output for more ML scripted field examples * [DOCS] Add output for final ML scripted field examples * [DOC] Add Kibana details for ML script fields * [DOCS] Remove example from ML transforms Original commit: elastic/x-pack-elasticsearch@51057b029ffff22ba1d2ca34343d548e356b0631 --- docs/en/ml/configuring.asciidoc | 2 + docs/en/ml/functions/geo.asciidoc | 3 +- docs/en/ml/images/ml-scriptfields.jpg | Bin 0 -> 102494 bytes docs/en/ml/transforms.asciidoc | 611 ++++++++++++++++++ docs/en/rest-api/ml/datafeedresource.asciidoc | 20 +- 5 files changed, 616 insertions(+), 20 deletions(-) create mode 100644 docs/en/ml/images/ml-scriptfields.jpg create mode 100644 docs/en/ml/transforms.asciidoc diff --git a/docs/en/ml/configuring.asciidoc b/docs/en/ml/configuring.asciidoc index 41a0a19af06..342a04c98de 100644 --- a/docs/en/ml/configuring.asciidoc +++ b/docs/en/ml/configuring.asciidoc @@ -31,7 +31,9 @@ The scenarios in this section describe some best practices for generating useful * <> * <> * <> +* <> include::aggregations.asciidoc[] include::categories.asciidoc[] include::populations.asciidoc[] +include::transforms.asciidoc[] diff --git a/docs/en/ml/functions/geo.asciidoc b/docs/en/ml/functions/geo.asciidoc index 19161db5547..2c747f06107 100644 --- a/docs/en/ml/functions/geo.asciidoc +++ b/docs/en/ml/functions/geo.asciidoc @@ -74,5 +74,4 @@ format. For example, the following Painless script transforms } -------------------------------------------------- -For more information about `script_fields`, see -{ref}/ml-datafeed-resource.html[Datafeed Resources]. +For more information, see <>. diff --git a/docs/en/ml/images/ml-scriptfields.jpg b/docs/en/ml/images/ml-scriptfields.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c9150734c0f41346632e8febee50031bc0fb47e GIT binary patch literal 102494 zcmeFYcT`hdw=cZu(xpQLq9Pz5pwbbDihzKCbO9kEA_Sxp2{jgqbVZ6%MF_nJBp|&8 z1f(}90tpWwO%jC|TKJ;x`#k52`;9xs`M!J4xc}UpvG)Ek_u6yMx%OOZ%{kZN_{;Gk zaMD0mUl*XE0f3v-A8?EVuIeCQ4*|f)2#^K<-~>Pu1q0}*h*|{zQ40XjzN7t{LhJO7 z?jJn)`{wZ$pnBWY%iqh-)yw;|g4{(w^}4r4-`7m<`sq71wx^kJ00RI9m;fo@ zgrk$6_qE%%Z~f-^_w^6|e@>*yKe7X3vcGx#L;kM;t_RM3PE_S@Q>)*9;OFE)#b|12 zbMp4}2LL*10mK6Qy?^63RLtv36_AR{eq)z^;kMuS{=e|}pE?$1+SEGVsLjjf=;-SL z0IWMy`sv3`E>u2jyi|PA^8w70if>S{mXoXF11b)u;tL)gUcd1NDn5VzKk;$-PuS7% z{y#h&9bNvx|I&r}B=yBNV1C|@90ULS@xSxr@d!?BuRq6G>Y2^e_of;3DoAa!B6lyt zf3W9$W0Sw>Fsep>V^{c1%fGRcpEk8E|Mlzx#~X%!W4OEJwZE~WFBSc}4$NQQ;&1Hh zW%dt$&qv0;?cQ%;~-ZH>%Z}1n3eJ0*w5Yk9~pvNwf~{} z!p;7X`Ju1wKRSB&QJ?(xdz~Er<6Zu)7Sz7>FL|8(?))Rq1Lqq$|Ij@x|B=nx|N1{X zy&wIt^*_2eKhpb$?)TXIpJ)AjE&idqIU4-7-9Poc{cr!%KEN$N4>%220*?THz!z`? zbO9LP2{`*ZBd9hA0NP&Ofxa*oSO3%3sJ+Jdw7#d4+=bJZFJ4jsfZu)acO3xu$^WNs z(eU^E2km(=0BF`9A0IdV2hCs@0IKc*01M_nXy@$#;N&U*d}?xn`#%1|?$1y{?b|E> zC%_8`0iu8ya2}8aE(6NI72qnM0~i1%fCXR!H~>z7E8szuJOBs*o&u3TEbtOY0n&jS zAP*=4%7JR24rl_}fo`B57zQSQSzr-Z1~vc!KmrbEXlR&d*lBoZglNDt;xsZemuXaK zv}kl_Zqb<0*wEagaiQ^~fzyQ0Jg14JNuo)o$)zc#siLW;X{YI>8KIe`!O^VI{Gi#V zrK4q|<)sy&m7tZURi(W~Ye;KBYftM!>q8qv8%~=*`-b*CZ5eGXZ98p0?F8*2?FQ{G z9YDuQ$4_^LPL@uUPMgkz&X(>WoiAM&T?}0+-FvzUx(2!)x-q&%x=p%0dPaI4`qT8X z^jGL_(p%Cy(fiPc(Z|uJ(-+a#(s$91(c|a|^b`hm24Myn26YB~hC2){3;_(045XG1!vw=J1BsE5k)KhLQHAj)qYa}QV=!YJV-{m2V;kcL;}YX86BCmVlMIt4lL?a} zlRr}=(_5x8rdFm=re!Ab3Dy(f6PHiup0GXPdE(iL)DtBqT273fSUqvTe3Dt5S)JL0 z`2lkvb0Tv-a|81b^D^@R3m1zdizbT&iyO;RmNzUFELfH~mY=MwtY=x(SWQ`BtWQ|q zuzq0u#EN6xW8-F%X47W7%LZplU@K&6W1D9C$E z^6K-t@y7C&^A7S7__+BL`KMSre2e^a{1W{7{Ezq(`K$RS`S%4x1g;4<3q%W4 z2#gB+55MzB(FLU3Q`w2+RFyU;74I-##1dXO~86chl;24O*)r+80YIpuUJ z=2Z2m8DUysX<;+rVBtLB&%(PRq9S@C-Xd>BIz=```9-gax``%>wur8QdB9p=7&sZ+ z3SK|Wclz4tN2lMM?mA64BYfuO8TgspGlORi&PtxOJp1fy<=L-dEMlr+55ZR) zz~_w4g`6urHzUq0t}5;-o+jQS{!2nq!dfCqqE6zQq@bj}WRPU3=&YEn_(h3F$w(RbJKGs&T5H)ELyR zt0C2z)b`Ys)&140)wi$6UU9!ta^;(bq=vIbzQ&T~SxraHT+KzT(^~hm-f1mD&OjU? z?;-fBVpktrEx5XRP3oH4wX$p9uV1|GdmVHAm$tfgsCL^8x*K{oVr~rTaO+s=r0dM< zp4D~HE!8FHDd`34wcTX6X?XM1%_)5meJA~5eS(3CL8w8OA)BGOVY(symh>&(TMb6E zMg~T&jpmHSjXjO)OaK#olh-C+Z%f|xx!q{WXnNZ;!*s>$l39pZk2#My)V#!;WO3ah z(PGx}yd~VS!-~`Du2r$sFY6oDN!E*Z9+ydz-&I+GTB<$7TE6E>DZ;%E#FnT z8+muqUeX?6-|GN!c;wIw<%BvyYwj`Jv%Xhy@6gf2@x9~jef|5H_X$qgPH9dX53W8) zez4}O>73-e`cU&>(!*~qnl7(h)?6X3sjizaZCE;t=yuaB$L*K9iF={@@gwU;l^!QN z?s?REa(lXac6o_P#xJdYu@TCa7h|)-oNZ-h*s4G!9FX&&uUJOPnM8A!u z#5{=Ui@g||8haS$6xSDjDgI6Tal*rd!9?Z6?3au$Jzq|~g1jn9;z|liT6%5tx;FWA za!m403N)oRRWUUujU^49w)p1On~!hLy?y!iFx@qMBI9~SWu|aubmp(D2U(-pSF$t_TRzYeaY3!t$i=?J~fXq?{VHrzEyq?N)=UH04j(rI4blkTr4sx>MB+#E-n!+ zNi3x;g_o|C-7Om~zfu0NLbf8elD{(c1MmUmGuxYB@Wlxr+(I@6TV%-5XQ!qO7na@-o!y4&X6w%P8|zSIHj znC-mNIo@U3HHbCDe(Kik?(DhN)A~vCQ&X>cZ+)L?UtPa)f9+?b&zJ$F0nDKCVC|5~ z(8po5;f4{7k(N=&X#3cWvF>sG@%{u@=Ig?%M;6}(#f?ee##HQlx0 zb-VTD4eyPE&B!gTt<3M|zoWOWZht1+AuJPpiN`==*uA|wPx2rg{E8t9 zk&E_J_j>lN_g4=B4w(+$97!EDPz)(^#~#PW-j2SGe|!Nt>Y4T-H4^zz2mtIh0Kh}_ zAy_#6a@}vLUQ3iktD){XhX}1Bu2WpXc0sx#>0pPcb zWN{UsRZ#e+P$|C;zlRE!{{R{`UjSerA0Ph|0RW~3066kJK0e4gK0eB)`ts8N(B|_m z-~4xNQEHrE#{~etD#uRlKKb+fe>xqv0bD0&CuyDNXt)4cE*d&6n&U2NKm*V)P#qKM z@poMsS~_|LMy3u-!eMdizGl#wRAHzD&>H@JoL!udIGsTPObbxwA|9Mc&*0trrbI_b;{n(d>WF zi`ob@wDk0J^i03?qM;3-7CJ6^hBKEKxv!ZrIr{LNz5Mh9@AX%?Rqf1T3T6bp`@SPA z{O1&L;>6#o{n6~drr5LpUz+`+*nj9X3usd#)c>{Pn9AgTjRW=R;!%VZo;lJxlKDdfR1z!Nqt zszjD5=HxhZC%+0H3UoplkuJwTWZ30PLe2z{o~|73FY7-Lbv^tnmrBXOo$8uBB&X=J z>3h_H_Vf$7wZv)2QstHh(Zq&06^V3%e(6{xL0btakrAP}I?G_Dy07M^PprZoB3{yMC2mlVL&w0KVVbK9051*R;q1}7 zmQx6)rG-w&bfww2ydAz0i=+*?L4Jh`l^E?Gs)_A@uz7_@6(SPNCgq#PLEh;H-RhPV zFC(Q|(GR0cEiWC#_XEKm)L7>BAD#d*r|${p&%J-YLE9pmGJ9*>)4!2-eD_K)YwymM zvSEHz;_cR$d41Un4x}4NR}>pR-dS`n<{F*TU#Y&FYYY5mh7)j=@iO?$<*K7OuGw2R#%cCBe>dXadjDJf z|7{oW@d(wh=rV{YE2u(*HZ~|SE?%P23D@lV(;!|TSPSKW`f7APCIcF*GG3 zQxgLm`W*w$gSHeUj)7-3At#AS&zOkTiA_*qWp^tdoY{LOwUVf9PHtQ}Wx@k>SD}Af zfjJjzJoX6Wp0mJeD0A~BGYbQ7Byva$}ppD(<&o6|m9_F;%8zv^b`xknWxu5`qH3iI0o5Sgb7QVrhBItCb+kBSdX ziD0T3bK;;+DD327!cWVo7BTXCe|rvd6A#Xd_Vpt41VX+Iq*d>Q)6WKGkz6`!>I z`Jn0|)27L0>%mnhqLji+=Zr^^r53utF|9St%c!*27S51c}#8)BP-X`M>f zclfb-GkZ53|3nJeu1`5jX6iTwFeaN%j{*7>B1g)B5%|kOdrnPiBQXz;q~4o$(IdAK z>F@zqcX>|t4~Lh@ri9sUP~sEGajkR5Ku7tA#F&yuKsV^M`>EZ7)e-bpcQd<;j4Kg9 z@xe(%r7_u#Y9b&qY?1RzZy$3aQ9Je~cZiZNc0-M21q_GLn(Bk@3j+Q+X8Tfm}*IScn1%!%l(;x4rnnhFdv9)XGAP$<7CGm@>3BAX-C3GPX$p z(eN46`l3Yv@nge;>{WiKF(DD@p<>hUtYf=V1~q3W-tb<$ahPehpP+!<&*=g`Lo$Vg zmhT~FwN%J9gahn;Yf`K*WF}0Ukou}@VbAoPMFIrlFi^#3Y3W@82)^U&JO*aLIOWCz z9jXDjYXKp2<1ObyZWBz}kvzzDEsa1tGLFJS_E;)Mwxxl&n=avo61Y)m&nq#lob%Ie z`?_yS5vj*OXA&avp!1ilXJat}Y1~X$U-yRXqrSXjEr5=&tw^Y`Oc(p)&>!_JVCel8|AIG1l@hXfHN--AE4)@|pv5Pn5@?Bu$5 zkPQ2op3n^`dDxL+$B~OU$3R_HYXtfjm>JU}2T~1p|0qA~1Z6Vk!%z$o#>pIFMi9Ve zK^IrUy*xsoOVEg!7Sz&5#ceJ`54CwYcLuI>&xpTY|FNFN<64(~H>lK*2S%8E5~@VC zR9EsVB82pbsMle_Kgq+vVm@mb^&1LP?eckmD42+h)jA2D;psy1H|dliqS|b`(wX8zt}G6T zgbh+Si6#k(CM@Ka-BT^#$=yW8ukP90)kKE$g7W;@A~?Gme*E;)aXLNHr=!#s0c5-M zZq9Ttsq-klqUFrtrMIna$mbAxs^g(vPc9}(_Gq0TFB3|atePdCW2T6n5lgMS@tHvMF-Cfwl%h<5giPdE>adVB@DX&xA9R$M9{3sLY3}L7A zw_*e~D^Z9HEU2d~kfIo3OdO&PTQN|^!%O()#|K?rgl#N)E&|+bD;a+X!F@G1Z?)&N z8Xe3j8GxzTy^$T(c5$QGY^{~tj6b*+HVLg>-NXe~Y(Q%!(+-@%23yhc)Nx`aY^oy_ zNysueP(bu_wQ|A}x%3M|)W<7!?d*m?5-BQCO0kAsWPMNn(&#)QU-Hz;waH197o@AA z0@O*EbcZT)24yb2b#n}F5>JBEsI+miPzI=zt##W_!sAxPFww*7#GJ1F?H76NTC#N+ z*z9ve>n;zIwro(%NIqdTd}R`X0|*Y$xW?S_4cp`&h@7tdM;Gt(oMakVsEyj}Juo*q zaG*K{b=I2^g(2d^Ux{HSLoShX2#}s*fJy5jxyGK1%qI`ww!7?(zz*mM4TYt6&dzKZ zkjjfD&B`^cke6=i7g7Tzlk)H1&C3IvC}ZGi$d(I{r)Qyhd+RHK$AYXz7$dEdB?${w zLOD=BW z3MQuEx-pAKSFjE@>TbKvpn6^hqUPNAU+S~{3c8UVk%g(nz*wU_(b1Ln68%2$J%NZ* zWGVd%1gqAWG?E+1bdI zmu~@+{fx-^IIxggkXEA0l7|~<8=GDbg)5D>Ga;-z)$FSM#RY`nLf8nNm4uDOoc8Ug z`P0Et)Y*kLp+ohj8zjkfpskk+YX)wmY8VB*Tw^`-#Gop&(RpL-{^p0^Lf787bk8SARk#t(Ids&s@=JppM;L96Vi%e9W58>|Ke5`DH+6O^ zi9h11mJ5-S>Z<#OeQHH7Y%vp8NlX|r4|P6J*>c90L+}CJoYO-~t+7p(gi)%i2m#$6 zyElSac!6ZoI!zAfoWD>N3n#dI6p+)LD#m5kZi z)f6zO8&&GXKn1@&uCajysACFKa^D^J(QBV)+C*Z(dlE=4$fgc4fbvF(1)zjM9FKu7 z`?I7k)PaRQth<$2w#gArn8Gtf?T85Ax7!n=QzymD(s0||@{u_LO;9|922o&i300>a znOO%@&MLL-(NMVSnvSCS^v;IQS%;ab4_(Pz)Zx|bs4h%k;6N;FB;9&5mLRj37%x7e zC_i&*DWJXe1%yijzO)bn;q>1!?)%jhc8cso_|+xKLfFdboUH_3b2`c?nMWjcrMHcs zXE$c;l$zOpJ_#Dy`guSb;zwR4@=%zG)Q>Z**8}AYP((-ZcFoWZ&>ms8CnChpKYc!<6ecP-?lP|UV%J{Z33HD_0NYw)eaNdo zS|(Q>Xj12f+CpmN*ZLG%qqn(1eBKEb-5p{)8LBE<9d zFeWqs+BqP0_ao)&xZ+xOUirGbu$5Vjhhgk(&e@s&zGM^Rc9d$q^2bQ}3{p42|j3^DeKtRerpN|bn`m<8>aSI+Vey}Q0IJoyycbcxk4 zLtnBU;mMS}-X_{ha9X5B0SnUyIK9s8XGrEl2xmmgsl$te+SiNQOs*%5G(U}@jX=|~ za3?~=IrM_{k-+PO*G@b&(HZ+it2d$ztk@OpR<7O4Z4Zv z;`qd@0v;|(7xiBv0S}JO(>@s&dE&ZrbZz)YW%ayfXVtV)mv52St7g9XWj%w(KcR_h zjIH30)|8Dyh)p3m6o1qJ-Dh+I?};A+z5X`H%hXHj-W~g6K!%Etd-p>B@BRPOJ^|1@ zm1E#^E99fxF_3Z${MCB+p~}loq_6(!`bd4k9h6y8*CON0dZ=YeN}8|w2j}}7ylx9q zhbqe(j)lk#3i#(v{r#8!^PC&g@x*_Ru?$YM{&gzg7`WR?a=e;7G?K2!_Wv?Cwgcqe z2{-WWAT<%Z^cr~;@`-m}-g+MiCE(YO1U8P4ogm)G|9Q3$d_4JY*)JXHRM?PRI`_Au zmH4uDsPU-les+CGYE@aCtV{m13DUoosPXFD>o>A<+Nb(KO&ON?R}JORFoR|{i!;vZ z6R^?euhAAIM%Oh4Bt{#pVVde!?)30D2;S8UG18GVVb?7Wijn@|oyTmE9^)Y?cc)Qe zV!^ULD);azp`soKWh8eVn9b^q9tOPsmc9`6e(HOff8)j*>f-g3MHTv@q5nwBd)dk} zHd`JpAEo5}(o4DC>~78U0`;N`*PK~0-eFm4P?INQ5pFNkm$?i-^}|nR#w?~`V%EY@ z`(lT6$GxiTNky2`x8cgjJJB7NWz;iktiy%NzNhT?uI|dmI*5+6NcIxO z?o8)5Avtr&PblZccUf84`8+B#j46Uq`YsKrl6HG?x94>Axip|>`O}u|bJMI!pWImw zD9XOHcocp{ZDPejv$5E<@ca31yA45&V%Y^AQF-Ya)tF+Xw6b=*+jt?1^krJ*`OW27nZHIAuRL(6t9$xg82gjKcO>`HVf&q>6=3C~ z6SIL&0XjMV-Rsd&&l%Fh#xVfw6q+fn4VF$`3@_2L_Y&-RJNsbA*1hu8PcYRZb2nim z$Mm<&Ox7*R#~cG3hmu4ov|tn85>go9btAC@)I1cEN{0)!D|hK=IZrf0_#(M9Cor`y zHOx7pL?*Vdwb|$FHZp<(epLxyiO#!VFMa28b^dgt!P0_Rw}xl>;*oDPchTw*JKm9(dtuJ!O8tCa zF*u27pDJOv|D}BvCv7RtY!R>4mkBaY56?V1-)Cm4)429|cP%)_M0(uOjMv#J({0>n z3?=>2QX=*HNw0K$xR3GV&yc3?&xrzU6v>GY^Y^Y==SMKIcI`oBGm_C|vfJ<6vt&$b z$NZbER;2LqO+D_gGU}WTtB+G^61d#!a-kIN<-_7-%@CVw!f90@S|)`rEf3qxoRxU00MmPU%u|B>y;39kHR^-ndZs}xF*YwzzT_GOiilb_ev#qb_um| zhT;19m{rrdm)CfoU6Sq8Wsv>#Om+0ZdJVaZ(PlB>`5AGr!926&W#fz472kW6 z`FzG5Ba35lDYGEoxVslI=Z(!?XWql3)X{5F+BxY4@U!FQ)ybJo7a(kh7Q=_yB_Wm{ z>JtxWXK|1?k3(?T`V4j}r8X--sVBTi9zRmldBva@_OO<69#idAtLW+Jv3yUX?)uDB z|N2N_+MxWb;l)l3BX$2=6;;%W%Ba8Gt)*0=lA9+yt?FtncC4T;@%g#=Lah_b;}bZV zZO6i4gJ$ixOW7m(=sX7DyJxnie|AH;eOz+a_7ieSZ90o!)})}Uh`#N*ma*^enrpIX zq-{@SxFiW#T$E{0aeS#qf3ZTX!~ZXw8Bd|=;qA=3=bG=2x*Nfvp(EeMN{!KCW+^u< z3uT?mGM7~KJrI4e*o}h3?^V9`Tb zq+qVhH;mVfwA&u%W*-|`&G!Zbdu;p?H6p|=L7#>xBb2v$!r1FuVy}IegqQOZF&jFg zo?EDquMh0@7Lx+4WaaOS$|-Jhe@ja;cy`d)(DJtU@>RK8mx9z%tz-L$mpbkzi`a~! zthBm~^B2< zf$W+AM##KtIKw@M-73XMtsH!_dUD4@cYVLdcw(pjVC&MTromtzWpaJPB#`D3YPX3; zUpDWfnW@Xo=_lfT&)j4DOUB|P)!}D^zIK?0=Lw-2pQk3(*+Gfu(DT-LX66y<<0Zzg z4f4;J@uVn|%;W65z1}A|*c&@_K~FZRy+@e$h)UJ8eju_SSg%egZMhhYz^|~De(8=z z&ATPtF%V1Fscx)K=)0L~S0%{d+a~>?{M%ybM3>{mAK~AQJTcOWg;tqM0$U}z>FEu3 zM`Dw_(g+Qv%Uusu-2`tvmgbYfThVbkG`sn`jU`WgK&e+`)VT2^MWm_QZdc{v!2D}1 za)j(?e7|+V=#=%afBfTM*msY4k26XhqC>WJng%yBvFzA#)TX=^KDH{nlS^GeSCZYF zJ-Re9Wm(#?#56AXL5j6;ezD&*P21%6Tdf`wc@;bYCIaEPvGKW}@$*wY$?unStnyg; z_&^PDdCY|}&6o*As22~yLy1*Wyy@C|xzeJxG~2K@Gv!al<+o6$-hZsAQK4N~XXfSC z&yBe`#}=ttMB>{MH~%t0^7d3H-dyb!k{vH}5yVWW{PMKJI;Pw-MZ{1yZx)Z`Z?@ z<0!wDk;p!DxPI-51n|J5)WIMi_d+_CZDS!L*mY3$_ zV`rOS|QGOG1dAvwAP_R=;4Ozy?Ca=53efD)pYkOE}C z&VBi)?M?jiE#)6`FzUiw${e|0TRs0m63m+%)sb$A?Iyg&x=S%TL@G$%k%kM`T&Qji zGPhXAc~5LumNTn7%!8Enu-i?eC-hA##YHpwHh=hT{;-L+^@%je#C@2+Nhe?W@>xqX zQZ%18@cpvkhF>@CsLXy%k0$~p^=RA<9U9hicLc5`j~j!>%iqp0$k^P^w^ENl&80tD zymS$o&;4oA4@d}UjEHa3y<$98H;@HFj|;C^JS(a+8sv^i-)0 zz33eDEo9koF}r9fZme`~735{9rlXHxOh>2J%x`ZYpq)cA+~8>2l<^iY!8p%vv70zp zzGx)Y&EImK;Jnt{IP9fiTCmY93DgxBfO2T4~3?5yjWK8&9kJzEvH zQny=Guh7;ZT`SGib!3(;R{**ba!bw0Rxl`e?Rq0>vt;tGE}e1x?kp)?Z@9C#;7~{Z z$4Ip-{eI4;r5AX5CfZE9^?07=ptG3q#g>)k9Hj?tsz_LPrfZ#$Wx3E;G03!FSvB}k zwhRHS{&qxyDEE}Vy80R`?6SMMubaElq}Bk}2ltc)?z^7QvkLrs0h||vr; z__AbFw)mtP9w&C~Z7#X)28@-L1$zlZScX3D!c9EDH^-J6SvIxsZSEy+%U72NjP8Tn zi`KT;F&zujnC8EV88SEEtlDsmh*VV%6gO|S^#k}#{KLoR+vF@GTzaqcX(TmSE2hab z-LLbtwUJc{-Jf4+8O<N6Lsrc^F2H^aJ- zf(g|f@HDD@EA`y$<4K|L0(LED*Gd#?^{C~gIl(zDi=qji6^jzpd9Ib)Y4S=s2$|{9 z0e1%YXH5J=FLhkGn}88lE-_3Qk5ZA9?6|2W>_Tiz~Nf%MZive;f6DsT=dXaiq;j z1}_#-7+FT-j$4;D&dk%gd2Kv-&$(~U;_Py;|LE4i+{d^v`3{_TLU~-S@Hsd0{EhB> z7n2#wV$j8B$-=KQON_aet=)dX#Qn@oh?W(_l_vRjY)#;f;3)LMNjpUL%(h;`uoC?^ zoZYPRK&y8PqlS@^zi4aN?i$(3iNX4>FmqmGxIggC|8$z9{S;_EtGAJ$j_v*ff02GJMtLgmLDQloU+#4mz`9$4EBl?r63crxj1JK{E)w zRxdS}b<_Byk9AUJp2T}RCh4`6ZOdP&w)64D_Ru?P`?YV8!3FAi#WvH>nXmS+ANonJ z7VO$(`dz>C#aviBrOYwxZ6sw@dZNRx(2T37lG%Ve?qTY8_O)}ZjmYj1?@HbLLKb+j zMV3U$&FlG+(jJ?Ig0+haI_H`i(&2B5{_GS9nXRCV&KM`+TSdtahj7;2P=4D(h4Gy& zvFPa>BYa%3}bR&7Y%Ws}L7jah9cT3v1uMQc6?;sWx@8 zvX!b~dt^$D6IA$~ci=XLQDz1F371Du!nWO$%egO5QU}84zRt!4rlUiH^~v#znqD30 zObO_10atFaHda~LHZkh(npUBQQ=waGL-=)f-MaLntrzJxJSt(*sJY8!FHLAoc)D9W zZt=^do~`9Zxb^cyW#-z(6iN+dzT1*1Dtup?iU(6Cpv z?8J*(@vcoo+$_F^9q6&DdydAB#l6o@k1h$hLC}rHm(#VY*G2DyLa?IeM|X`}u8+!9 z-iur{9YY5~^&Pl9!t{Eak)4;#f zBJSK0^LV^|x7^I3VxiO(TV}anzpK(KsvyBKEtU%DcnvG*6x;FhgFa@(#&O>|eB*b> z8>4aN0U59VGF#4(+W}D`{EEJ=@y|@Y_9=xC_onvmf>JUY;*-_r1{$mN(^qCRK8QXT zdB6PR(>X@$NV%YHezAqc$`Me!6jx z`KJ!FED7qnLR^SE21L-U(Y9%ca{gNq3q}OaXYlgi&fcZ|V}KvwytNx@-m$;68U?TC zh;k3rLcRaCWIhHLAH{e$Z;e@FYTQ5FOPC2(NgL~NR=RkxLl-Wt@lZMiG{nTF>Az;) zWft#dIBTFaSPpejRZm`%Quob~2^o2{v|PV+VX#2UqF6VZjseOQd1nt#7*s03xeu}1 zADkGpbR8j~*AJvI^?Y}(4d`6Io!tCpLtT}c%&(=!jqw7T)VP;2r81dkcyLBY06N2H z3M2Wd{XE>35&o`LDL-vN%I=>Yn)&H_prs#d?6v$?O`1wd<+osmnZ#-mb+NZiFcR3`}BDdV`tB#H-YKLNmY-a`;V+PuRhZssK|1cU2cn1MocVUx{gI=%i54yP zY98n;cQeDi@@>h{<(BH&B-~Xw#P(9!Q|h|IuQqD7tjSs#{2G@-PcFUPGP*e2{T?wxip*hW%2WaRfc%_LY7J`6=TGXz zLnB)xS_p+N9#-9v``)#GYbHDA%37MQBF|S_Mc)CK+ot1fPJ?%BWXNA|ZrQW;rHsOo~B7_6fB3F&#lTJt#%`6!(k3*g4^Sl&NJSf$C%37nc z6N0vm+C_3B+&i+R3G!V-5$dh+x2h1bEn=?fniYxoQt~5-38>y^lO7JrMXu=_*{DR# zes$xYkti%)+ehtUP_uVt<}}N@VBf5J-OY2MTv6CXKNf_chV^))MB z(Z>7|gNrG)-dU;!rmHXm$+SrP12-5rTNZQ5OVYTBK&mQowJmCN zNugIJxCPnoa5-qr8ls=f&6sG`=*fCP>Eb#Dv((9M z^W)PL?a)cEybRX2%j6ljyQ5FCjCrnAv-DW}&6!NXZi(ZDU+qqu+h{SL=?stQ%5xt# zJAjJkQvY+ZQ?ayzQSr{lFrygLf(k}>rCNuaZ8{xP+ zij5GB0k{u4T47GIoA(Iu^<91-IC{Adrqz! zrlm@o`IzmcH`zVQvl9S)6rRlHq)QC+lvmnsW?tU8BsCff7tt`fb@#lKbw27vD!*dx zKw$4R1JnIm8|v!wvugt-Yo$f@y>Pzrr!5$Py31d>#hVl6rv`Wi#4~SIe?8|@W7plj z!cqomGI6#}H7CK<&c0vP()Yz0&2X4i>l>||Y7H!v$uZh0`q`a>Dcm}@l4p{w@x$9X zJFo>g$8^pYh^k*R^=+2_r`qxS}m5dDjv&BiC3B2am9#_V4=6C);huPOpGjE9SQ!D1z zZhdK`js-~$BW{BoFoT~iQI%co4fC{|w1R~!Tv#hw`w<%3-%^9zQk}8C;yliNl*@fX zGVnre{egu$4Ua;5^NkxfZ)(@0I^44fNhHs)Cg{i6YV+BY1tY6UBOwEn%I20C=S=As z8h`ZOFnwqD*OYuS;-`!|=B=WD@-G=NI}`Q}tm5P-nmfN#1lttP*TpS3{mh8IWWpDGEkW!`V} z#fJ3D8(I-R-bmUw*muduy7FMJCP+MWDZ{JqK-TShx=wo}-Z=|B6A-@pd}*5zmbxz&TfxbSsIwpULbG3!m&1=jYCRaU&rUFr z==22%Wxf0+=nuN-svxZ{Rigt)s!AGS? zA5yZjSvdoUt7yDlEoD5<)o@z>nj;~WIpI?YQOoW{cPD52_(ep_#O3|HW@(}4-MS7v zTp(T_4RWz*cqC15?J0D;lU|cLv`Z*N6PI;gEwYg+ zIg?w97*X?A=Qf)gf3-#(|J1(xb1y}9DRi$*h2ofJ!`&x_ZvD_JnNzuTnptj^Qsar} z_LAK-#Wkz0vAn2A1ukZB!H$CYKL;N8t~1}hHr5e0t(0+OZf8ed z{bDxs{f~u(Vq-y$v!4|{>&nyZ8X(Ggc%lmRL?W=(J?g|RJx<*eVI{ZMaqjA`NUzI^ zJ9z8oa#W<#`b^8M6>-9ak=_Wlfu;4u>Nruk3NhK9dmrlWcN(&4*awj_o!KQ&lfqpIF_~^tT$8a&^nSUts(eYPwsL2E8BYgZ$}-+oAzt2D&9YL??N0Qq z9cIu1&T?uiTM_asmHK}$U7>c}Kgc!LK71rwm#*9D#cJ^*>N>$JX!(=tTyFakksrvd z`lH*{SkQdqqKLc=b-&kh+vZUv8P`Yrq=T*a?$@8iIz^`xQ-s+y&UQ|wf0i06j{1C& z9M@4Us17fMa+>9bRT`wqp#-icOJ8e9IO(Iw)SqG)&&QUe8rN5$i6`tVCr_5@38dU7 z)Ek4j%#>Wsmb=YRkaFwFw9$$xzE#~aCnMuZjV8B^_L-yau?ME|;USkw*24sd@=vHc z)tLypQ;}ix?ntI4O?o#^Z2JOBwUL*Y_$kKOTl9ib*|xbHwq@MVtlbx>AZPnb5A#g zVPyB_G2mJsf|QI2ku1oWiE5v}NQkTx=oE3s8%H6FU{J;oI%lWAO0vYl^@&BI*Hctu z-Gu*uuD;`QBlP4wOp=I;!6f=XrXMN88e3{?BR@U~rf&IS(>=wbzf^qBt%FbD!h=+Wy4z?t2?$6}2wcQ3f^=_AGu~ z_nfYyecmvsPNGaPAn$TP)u}v(OmT1#iP$zS6*`5nopeM=*>3PiARE z!$+*NYTzK8coI9AYi4n8HN2Rb`x)&rWR?FKY-@D=Zo|1Ty>agWg9+bs&ssXpw2$~p z-i2&(+y!);(Rpk-IwoL4I@^nt;R(u+RubP>setmbRH0D+f_snF6Y3@m&KwA=o0xzi zl$sL2PsCaiu?zfgSqScNR)sCBt|7keIdunxfRIO%>5``1rmjRy6=5nocM5*qQ@pXt z2IGnz&^q<8Qr;sVSWRFe_l>qdocDf*ikG`!2b^e7B&0PTrDVUZvPXy3m2Q&`ebwG3bh~!UPHj!f+pAnl0vV16I^cWNv=Z zKLld6Kp}U?*7=lSEsmB%V`5#DmNMnD=#{ZUtsJ&65pvXZYK*$H5P{^7BveGd{|bZ7 zQZB>Cn>-d{w-j!TdNM2*lHz-w$|`2K>op-lj)DBnrRvR&0+Z84v0h5<6?nYd8HGkxDy zO!ysfc)M&1flIOF(cY5dt^xatRc;o)Yb&Y|E|xS8IJKsOOsED@x@kY*?0|IU&;3=t zh`Ozwew6TgEa4KjpWMCu?kN+&gONJ|(1M%FI~2lxb3{2@*n|= zAoWeIId*PU?VNwY+h7@+%3Lp-LWA+93F*x1RvKA~?cy25Ui>$eB=m-@Np-2Btv8RJ zU-|@710`D%Br?1XP88CoKB$h;hc<0`>`P-_+jn{dQ49AC*taX@X6mzCD-2#%Dh%k~ z{PgD*Jx8PQ1vbHTvQ=w-l3FtfD=*g4wvmZU0KM{s75J!Kt`>YzAn}NzP3AF^dr7In z_PdR~P?*TR9`))DHs6BjVc3|>AlA!uN7k3$C^T??(GtL*;X{ZFY7@f9rr&gouu3Lj5$gT_cN+@ zRsw#`Eq1dBE)9*$ALt8J=`>16!6~q4hn0T8i!Vgt%RRhyd|)2%UuqzhUU5S+0G}!d zZ1~kWh+K`H{zE>iXW1P()ZCENZsO!Q(JE0iJ<#A1d-XFNuD$cmp03oh!f8FZEBRJu zcY$@v6JwY4Q-)WSx3oS@!3FJ%t$1l!wlnkOt)iyjF`7z&RkdDFiCv}_G_54X)Y1== zPCaWr{`2Z7l*q3;eiD95?fj`;-r8w9wnI4mc@*OuBQT*|lnPFivQUZKgN-06hT{b2 zb_tbnkS`mC>QRTua=6pbELS$hWSFA~)1nu%43dCPUyCb!_hUn&b?K4uq$)ol4^3GE zYVA|CEL~AG1p`Sn*RtF9r>eyc-T7o+99ZG`jdE|vj*>{RvEBsY46-uyC*qu~ZH@Tr zPeXF@Dg8iD?^xGo$5X5tY%584$qR_%*CVVRq8M(s`V4i>1MB5u+f?(+MSYd}nsJ}W zius5S`3Fa|=VD-a5fv>)FIzA+fDsLv&jc_R&%pqQZdlV~$V*{h$*j3V%2(|{F$i@H z*!{GbQjQUC*wz`0H@xgYc)lE1GP}fk-QUx4O!Hpps$)gn+d36&IRC5bCdV=zs^bTM zsem)7WnN<*QcO@xwNuQ)+@`Gd=$%TNFGQs8$`{G&-@P6dqLlhnZ;zWxt|%%ca;xKe zKI*+?Yj#~0d&W{R&(b_-Dr6JlHxcV&A&?lmV83Zwxzbi`kRID!1U-ctRcYLrOXpz0>Y*Vg-|ef7MH(qAd0=fo#Ch7u$x`FVthj*oxf9 zyyHuMiRVKk_5oD+%-PeWSKAPtiQIQIHO~XOW=#K6om#2YI!BB9R-@RLIJY1SDDZmj z5R6mfMWEg)jyhQ3(+pP?GFVtmQirweet-?zoV2PRGjyuN;s-m=F*4h04MiN?7P%+d z8k=&E4T~>lTrQ0&o2qgLdT)W)?I*{qoGeavHdF6IALNv8pI&NJ(7!BbRSzC1SuFV? zHJoDh%~JXNet84#`~I`X4m((!?f9bettz~xFr_~TQufdyIOO_vmS{A{NnW!f`gYsq z8EkkeHZAJ+81}|vWiA0}g=|#J8Jq}Y%R(m10dcT?F{TKIdA!DKrvaSZM>`$o7-32C zuv~VDp_nN_GIYd6%cfENbutH&ZA?w;81EbD zz0ngj)U7|>Jsf9HhrNy*`><$!hA6OOelypl*azzCc2 zcJxlue4$l5ub54>v{o-`_Ev%WnV4?99hHr|YZYLoGyGk*^ZVwD0EiX7vPI+}+Dk*b z!0?jAInhuZpr{7=EhL&SuSrTsx`#iGHu`n!-Loi`_VDUjHO^FNN`72^q$>7?rEIQ% zHWLlG8;HlFYa!G`R*nAXGeuPX`} zVFp>*fu5%uTI)=;-fy^w`Hj|Mi5p|ZHlZG?g(zl4mAp}I`@y=>T>E38 zp8PvwAv(a?VUd3M40`%F`;#8QB^x3o8z$)CBBFqV?(fTFah*A-Wn-<8)-yT1JxS|P zmEGRf4JOh zy=Dv;S8aB>-^o`1-j7;<3)WR=!z<#BiTke`m>*e#>@OLf zvbbpxA|+`SOeAE< zmBbIZix3jSMmR{&|3wN@R+qlLm72M+LlbrL0k98tOvjwpEVIpN@K9ep|IEl-^~>q$ z%i#*`l21mrfA9!@Cb)D&J0Q|;+aI=&O2~A*zI=m@|Ew)Z{usKJNh zrTvqO?IMH(^Z|koA~B4-f5p&=J$D2@gpjP#{0KTc4Am5$)1(KA;qJAL>Iixmo)@HW zPPQum=dziq&&X2b1K0q^Rh;cH2M7Ct&toMm_y`uh<>?(r`ED?M9{BUBn~kbaO1vD> zo&G7PoZo%w%}_x~d1C7QN>Mj+$Ea>IlZ#hYien=JP+j_|4;*iQKZFwga`ZEZ<$u*o zo_bRCHKfAc5!=lQ(&KkD82x-&P7ZG<)+)2+MQ|0nOvyt4weeSI%Bu~9N zocm>kAZDmu33YC<6<`6#K};>=jo!^P7Fx`gsT*q5sl=-8U`$4hwK$gJhW_&;A%^>V zADcx6w|u^zXx=wxqUDHIU2Zrc`8&zF@fCTXA3O>S_sc(JooZeW=JXXu*i$UTRw~B& z?`s3EDn?S5l}AdGQWaDhGmxP=l`*N&xsw7eQnm*97O`Dw8cK0z{2YC(J107#{EpV; zj=VU}n-FL27;Yirz-RC)@vtLmYkk_x>TH%~Dh>&w7DuN!!Q)8pwfM-bxYmQnl|V4K zBVXm^C|3eXVRn;K+E4h2C(a3l2x@jlWUgB+@1-s3@ zUu{MNYsQy7X6;aVy*Ii%<-3}~RE3n;W$e=Uj*e+5=aQfE{Dun>s$o{-37eqLA>Iy| zr@mVp3Xl;>PK$C#c-eYYVvmO4yVH)%A>Uf9Tn^p!v=`VpFJy7hR_GEo)m=O{=tiD- zNC{JVeIfYGzy-J`#3>JR5u7`_PXalD^QUk+K5*sHehN$I&FM*Ce)rs*)4UFOMin?i zY&&WlkwTTy!T6hh>kJhBU{;1I6Lj{u6O|OYKl@Gf6T2R-r|VkSUUxLZk^jAUDCYaO z*%AXCueeghKW~-y<=!d#)^T~N^l0JUs3*9RG<5F$RzU9nvtakP91n1#%wv~qRQ4&o z;F!OoNtF4EDwrWsdnD7;c3S(BvSsgT#h;$5oqxHg@G=QPI8-f!0;4vI8z&8AKnIs` z912wGbUzNH{Z)Cy;SIr)c$HBWqzX)$s24$Ly%!05R|yRvmAhxW$2exCm%W4imD{rz zdm}`bmTxIN`P6i%{Pu(Gn*emoM9uQLl}GIF!1ss}gX#+FJi8=9b2)#?)KJ+cDGd|F z5n~C#r*!3adKEf=Q+4F4s= zl}024-U~qrS4rf2tybE!hjrg|zUijk{t-d$jg52`sGsKXuxBDT4!2*>Ce8OyHpAmI zRwcyV*F6+LrAUoG|KKxfUaW!lOX{;u#p%R%&!2vJ)%K~^D{Lp$byO?U_hTrQc%%2T z6w&qao743RT(*!wh?aO>!%dmb?QPDD8B0kOSMMJ&}*P+>-oLmIvjH?w= zWR=|=a%Lq|ul&nVt)V!zdp@?5m`&^gtHSzorMVbu##y6UFWBmNP{6YrTXJ?Wj!ySA zRL}MM_1*k-$lk@K`d)L1;tPq>n^SiH?OMZn%oyEVt03tn<|b9;jIDW9#E0VSd0STC zG2A`qAlro!KLlBHJ;0emX>$^W`pmVdHFw|+esALh9>FoGe`XH$cIP=(5rhxZDou;t z1c!PY-QM3+p5o?o({=qc*5w{{TPB~$G#zj=v-Mk%3u zN7||)nXK+-{kb#(>GQS*>D=obvERVy&V6il&Rvu)-2;kjKX^+Xt@-x%1$JFzgHsB{ z=|;vEt26Z5D&Oqf`&18qv9*ORR{6{wXgv{Bj8#MmK;c%qRqa|ZOaJJ-RpZ0Dsb4h> zMTLmm(=HstNgYZ&BhuHoG_6&Exr?#`CMrv(I^>FS0-i7kiS=#gHV4g!;>@SEl}~Sb z+KMkvkPm;VzkejlYs05k9B9J8fK}SFJVQCfdgaMdePj2C@}Y7agVf|Eqe%U$M?z{; z1>#G)r{2ly#GXOF=quUh`91Lyb@@~MZl-IPkdRG-G*z#cp%T)TrI@GRnR??~BQR*w z09nrO%pHJ8PM|kkWXF6d9|_L9IKWdq_?()#Y1KefZJ7Txa=j zF0ht7^cOA;lpEZSmkV~EFr>PummezRga4fdO<2a{DFeuG}w9nPpp*$6A)#WY|g@aZI zQ|=!O*)&qb&Q-SsWBy4)!TB{2To@S*xMx>E-ZnsLc+Ni9Bq>3dfbnS-FZcBfDqRTQ zE^a7RAd=r#ao;pp_^MTXCa(St>ZMgJnVuxxvr}_dOtUFtRoGBaqW#W#E11ntjBQ4t zK~2d#Op5#NtDvu}Y_X_!DfZN0l0rgoDb=8qg6w8}=RHk;}ccCsAU3qrxRm(0>M<|Yb z&{!Tng#<<&&@~g3`2hrT3+{{sI1xZ8owk>AErA(EE-6lk-3XN9oCU}a*VO|rf#xm? zv*J0u-3~{boDC@@&-xt|UtJJrKLU_C)xFuIm81&pySX|734hE965S;17PiWOwl>e^ zVaFQ@2A1FogN<0{LAv{X@LjPPZaGdblXz!9H_#8-OB72n%D>r%t_9$l~A^E7bhF87a7jJPO9+OF~S z+H}~O!|Im_)eR)N-{ch2FgcXN!9kVLnf81w~LV#F1v9L+Y|-9b6hx%z(2^VTATN47{a{JvBhu$cN+5xsM#$Wej`d(LgY$L zetvrYnMH$*#OSl`qxRGGqs5O$zKQ=X)aJu$EcADQ9ZYz;kWV&&385E5@hKbH%7*|F zgLHk2N`XzPW`8SO++s9TmvfFo37#d3kzU2!+`=-n8`j}wJfp9tZ$ke?z}K&LLy~71 zv&xD&_KxhUVRjUB!jf%qzL%KayQ7PvZ)jmr*bp5CiA9;m57yXZeE7x(NBsi>HhMa@J{AyY>b2( z;GZ}~0Esj}j^!%gbRbx*A`4Mo%bkV@%r*W+gy2{Ci7%ro8it|Ip{N@Z91E8ErHN^J zR+zL{9OwS~xux*!%z^5>=H1GPf&?ei%@>+7NgdyB-`86ampGWv!>rA$71OGmQXcS7 znTV4<>Y;3(v1~4papHhUpM#;Hy#mPl2Ot$DdirDM-H5wh#9kI4`IaUWTbR{9-5l~M ztstS?MJ%ZtE*Y(26*E-q%I&RV9dsYL^|Q#waJL{2RxrRc)MOi}ZstG1PG17Ptn5-2 zwj1MHr2>&D9A$|lLocuol&=M&v*EH`kr*1LedAnuly~(sT}|1mus>9Sf~aJk`4GL2 zh)vbG9vAIgeUFuC9$IVTc+a$!?scQJW~6h%P9A~jw>eU*s%uc8^iVgY*IUY7bw|e| zsQ%S+3)#zpbSPQp{`*t?Qn8M?ccacn*mVO{T5)g~xPecE?&` zJO2n*V6m{Pf9E2$^eU9MO9jrOLB*s(cw=0z}iBH50zpr?knK z1Kdi2_^*xj-_fR?o+a)s6FN=cRK9?iEi4v6)|T15-cg$%@>7E#97WJnB*v~{JbN?L zk6LJ><7ZzgVVhYN{Oo5sw);CzA}lbofI`MQ4zn)d;)c4Nbe`70+{#xy<1wqxqITH7*^nO#)nv3N_rU(4O| zf1;|HJ1%_I@wL)hxmiA3okDCYVw&H7IUyWlU8;OZ*JxI-(4J^@qD?xZhFWK6bnjTc zli_n>^`>8r9A8 z?6A)!JE}w&);zf|NRfVsW@Rhv)! z5Wd0FCDG%_?eF~hUU-G>$%vai%moi{jCoA<+Rgl*9lg`aF;egPiI9qD98r zZ+;C!vp$Vk_PROM-2>eN(-xxr`zy7J4>|A;cd>4MYc&?q$UiT{pF5_{OzpBlNtjF6 zDVeKe4c%K*<#hc*qhICkTD++}vKpAt_LzOn=_FMLEJ{k({wkl;AP1Q#U*9 z-l|kUPrWmOlQT~{wi>xAo;&KXw_=1oQFz0Ci+P}V%!i?s>-5Rvfq~C3(=h&JbJS~;_RmSq7YvviF*_gvgthFS2 zcUkDqN~}b8jz$}(yIBJ53HD_AdtMxy2PGbHk8m_5tTKyDUn~YYtA8a1?luLnHKpcI z;m5>*X((%!bvOC+vnDs!bNlUHCSzNTob}`o18g-DgQ1Whr!)@>#?4JzoBI{x3h|xY zCbKpLC(|3-=A4{0y)uUaPPy;d+RC)<`}-ti2VyV{y0TQX@1})4<%3D7?r=< zL=BX8VgWjTo{GlslO=36n}}xPC54Z=MmufdC6>=V*d64k^@=8zuj->~GgQu-%sO7? zeaeggG5d(QSUzFkPs>x*6-##=4c>2$YgO`z$*>4)*?dtxGuzb32@jiGw4p-(w!+Ri zEYcQ$m)=jlIUG&CWGY5rP#PLgOe%OKrwu) z!98qSON-^EIOiuT&X0YKeI~nZrhJ~9scRVCGWdoH`RkVW-&|UM`b94=5h=)#0&Oq+ zGXirh7JEVm&nG- z^YW6NTCqPD9x%D8m29q+YF8*(eCM&*$;U69RYh%1{U^VIfAh{2I!lFYnXm9CKXB~Y zTEN3iEb>ZAwZtXMV3#J^5J#qX2|e}2xdFh(Uvb7065= zLhpp!l5%tO$jtaCcI(>lRN?!<>6gOBeJ09Z{4(NO@*{+~;UzGe5;8SCT5@UfadpJB&t4*_ZGgv`J~>GbfJb&~bKxAg~CcBKk0{0*^#XSKpGeji752yQhB3@2V-7cE}Y1w72zS4HH6c46_?2$>Qw$Um|s3Rp{ zwIJuXkn_L$DE}iW_vwFs!GE@0{+n0rp2vUG%3s@QpeWr5RDE!PDen;W@dpoo1E0|z z6#{ykzRj(&;f~h-;3=hWcxbTwhk01^p2jM?yL{^0rZNQ&|DTH?Q6{;!ew*ChD=-SQ|WLr|T8nSi{W??3r~0r-QPqgs z*6fheeS2*Be>KmKl&fD2p}Mq}hpm0*=7_D#lDvl7ciYh;cjg#jda%>voC||9bg<&&Uw|&F1t!A2$D}l=&Zf zCGS6J&i4PogYo{GAKLzwB0qOi$Dv!|Vf=+b{Aap;In%Xg@Z>LNuKm96F28^le}%wV zE%;XN2fsVb$ME)3nv&a5dk@cTe%|G_q z`n%cx|NR>ffAj3(?V|aH!yF-R1mmY`GwjF6M`*Epefhg)@}YoYYv00>-EZT+c)>rn z4*bo$SPs})nE}ac367{O_n<1c#TC2TwBz-cd+HuM565(j;1l?M%L3|WA>w8=z}rxQ z^Mu1?h|Zjz(X}6y>B&D1s5d+gRlgYEt@Wq$^oDi0>)RV^m_(af~((1EaM{uL)wX1Cyjr` zolUnpQaB66%uf<^+}uY#zddgj&a9mJYI7=tX#D0F?@skUF7^KBC;8u;(0D%*rlUFu zaJ2}h5O`B0amKsps16_eN!*2oF`Qu45>hsx)dRz{6n*Wk27IO!U`cMnKX{n@FKJ@| zt>~hG=n{9IEQigPK5)L(O87kagd;DDvLB|Q9VOh^nVag}bb++MzR4bUW6*nr4OsQg zPybCndem5%BX6uW96$+Zy~t`q+#JR6vIY06!``lxB&w17*U9S>S(_}G^S=dr=e$eZ zvtinef)poL>_E~yxpQ!84Zbnq)s_j2NArrm$BEYhX_YJ#FOo&uoSv^ygA0Od#4w^nvNt@d}RIO8FUFEkKTyg&k|Hz}&%Q#QFCLRq1@Up!SQBjlb?MH|H`EzE z*U?b7!0TAt`GPmmCCk~)arp(|#SC}1ZuPfO?|Hu({LlGd{+D?!LVpt|{nR$|);?_1 z&C0y{Cy599t@fYhVXJlhvOh9^Y^0@;u-yNBCzfH>_);s~e*BKzW26x5(Xs#1Rzq!* z?H_8yzQR==OwbgAvuQ?C6W#A z=N|$F6I(r4{%0)D(({iFQ3*$&7#qxQALwZ~sVjMh-&zK5^hl%$wB3(SUa6$wXo7qc6AvHYFm zFH7ddxepniBukR^9-kz^*3`0?A3TDF=#Tw6rJI^*h8hhhiVu9(>f^+SF7Y=Cl{vE& zhVUCL`QAH4QBXZ@^VcV8YJMa@$E?z=!Q@5VX1TlyXQ##Oge0o+I^nRBJ0>TzZMLOi z+SeezEx6S8+_%$N+;4N2hpEx-n5fW*pGQObmwN^F)xRh%@+89*jzNFzq~R0#oT+whdK9!&XITTW-*m5l|=g;Z1} z{-jXjqFJ?3?P;38V(knAN-=91zCFG{ggN@BQHG4Y206alztyWFK68+i<)QyQ#lW3+ zga2T8oY*a`A`G=@au4~Rswa>Ef&M=cTs~1cSCl(O5NOw%bM>VOgxazyr_l!%@aOXn ztZWP@!TV1l2gMHDztG(Hl;RV4{d(i90u;=))bbZ$a3zL5zG|Yzzx!_0)b`i2@aCYu z!zk-~5Er&yT_?zJ%twr+A!OH_F#h}Vpx^f{U0YA3GnVZ)k=DZQBxTJF3g zcdWf>gnB-t`Q@vop;n7hUukZp+Qhe$@q-Q{E1Cs|_HNc1fBgH(LH_$Rd(3J7Ucw!n zKrXn$1k(NIGXBHrPbBy*Bi1!7;Cvn#b9KZQ&QIUCrayQdb|LFGNZS(ddhQ?=i~luk zBM9<8cwVy*|4q~N^8e9SC;YF+|JUgM@4fC{lLtPy|Fv}gi&Og_9F+fP@+kf7HilQA zYwp`mV}#|$goTBQ0#K9u(FFC#J${U^#Qwn(L|7NGaopzVn+&m3?P4g_G6%x?)GaQ9 z`!maYa^B_X2kql#Rxm6*%BHS+-ucxe)Hg``h~&(%ld*-Ww}$vWuC02`qaPs!+x77M z`3Insa!LnfN|U8c7TZ83Gl;Y<%_BGsz%L%li6`(Ck@bE*8yuxYD zIbbfO77J9Oyr=RA zUEM8&OF`0MD4o5HU1qk;#c^ffAS=vHC};mJ8Ew_NTV$-Yghp^KGiQ|8LUd9BS8Gz8 z;BBOM6$)e$9=00-R!!w*`wLlO%|kc`W}DSq&!oe-S;dKU#|7T4X?9ov8>S@ncF)){ zLkrQI>!Wx{?2a`Qdb>uU-yK>S?98F|#`=phE)0Lrc}J5YA9!SPCxe#tx>Do<;vx9} zY!2?dLm|=t3!|ucME7bGtF$MYa2c9m1*S3rnm|GiT4Y0JEh!xFl8+?!-4*Ko9ZnaB zoN1(^l6ZTA{kA2CKi2^GqF>#yl*=jC47}q<=1h1JHu-5#5ZXZthiA1XKLHYnuo(&g&d{I5?b*r#j@52G;jZRkjyo7mM=-p5VLMn%859gh zA$93}g-g>T*vCJ3dfOEyIP#Sc`%2@uI+dmd5nS`bqAd$zoQKz^2Ml>LcAJc60C~&Z z7DGOuup9o2gG@v`8L$Y9i`;soZfL|NNH0awVyV*<2JdE)?(8XG^=oOBU-MY|*?iR~ zpKPb7X9I!OF6z2gS**_!6C>k1ij(VuG5H!$0vOCBt^5Ycbfcy4lDNxocZ z43QOuWp6^sk#>}By){EAq1QyT!`N4j+Y2=IEE|!^_|D2AS7HNEw4qQqR73ho40?#z zo_@#rC)5}aNKBVb|7afZ*V zdfiy7S@q>oOgmz7P5L$DX=|YiL@haI7B^%U$t=Gw<|&0keCn8AI498nN;YslyeCka zb78m4_!Qa_u{yw1cVSHu4gFbs0E=@7Y^Q*QcF-y?>IxpNEX65LaQ1;qlN}7rSR1q; z);Lj3??s4F$ z83MxH`Ei^I^oBr~hokGfT|o7%*cTy2($PZnBhdZJzfaFD>gG$2hMv+qTxeVwRK|lZ zhu^8RqX0LSI_zZ%LLs|@7MCq24tU2JV%X~Py~b)#R8R@lM%L=Q&wTgBBQOS8DCvG<(DP8^1X^GcssQ{?%yvB>&TdnZV1Ylx7R%O32^WGZdKo0AC*GT{3CC*H2#{ikKvQn zr%nRBpG<3BbRXqeUX{2ywo)=0s;+c>Onc|4I3`74S-_=5`Ln5+jZ<~N&yNq@F_SkF zn~};KmK5$Q`9;_#@>Dz7R@yjA=X{xe^@~uEQbu(1=h=5xvPKSmW+r5+)*$flLg^*xTB1fZL5;)=RR^O&=#8{44MBq2P2`E#&NoY z2t{(4Z^{?hEYZRX?Kd6y`rUpDqWaSfe6>it!W{Jx4cHjlGMt441&HC~K;#I|zlfR-g%}-hg=OrE24`m91yCf+N2}Js@CS2|pFcWZ`jeNfbhTv3O)?UQM?3dD8Sp;SR~D5vM`MGk6y}d*sjClDuz_ zK5Gw~bysBo6f3+V8tu>mbeDFm@mn&_!w2Z%xv=oao~K?4ZykKqtHN(x){nm#mUeLZ zjeV9W&sot6a^0TAzLB184bMv6`>ql~wi*XKy#xIw8z0{?3lF=MEFT(nV8`$hSsOZq6W=7Lj$!h-hzuv&x9gm(rIMMUw z=Z1&(R_$eU&D5AK*eq2CqLX}-Pv^de!?NSj$BXUW^TvBz5D547B?KxIZ&XuPi>9wM zG~PD}4%Fy%5`7zg=dltzSyP&<{+g`TH+hM0ve)42A3RccIjEP3?yCN2u3PRWaPwgq z*1Owz-`Hf>u%EMW>B0EVVl6fKlh(DbtglRDZ%2<;?-IxE&rG>?1Rpwkd_N_|P#rT* zItYb#Y#Nj%ZnS6$`fM7gmr&S3!hZQ`pjBaD>2z_uZX}!qM{P-|_H-ZjB8pK${cV<5 z+-?6!iQxXTEwA`2|HqSI{))l-=ZeTvyuAb;)xcB<@;+k)XAaL;RXvF)ign&Kmhp4W zkk%QGBPZi8d#KOQ605(~o89^&G<2-`6P4~YdBTzhcb+xJ(A;c?l)>!z>`wJSrU|Jh z$=C=Nv|FJ#LKT2_ZzCXdHU{v1z5D_erWrphjc9Z>%58o}p5GeUhz_@%@MxyB)V*vS z`SO?`?5_4J4+f4o4V-TwqOQIK;Dj_HUJYzqZ31I9T>#Da=jeC?qaHGgwht@s3^IHt zoFBVEf#$W4herv7wn>982$Y-JK+BA?sE8M4(Vtv8UrPzVAx$bR^&^HDR-g#Jk1Pf2 za*&S@;@Xr)a9Kl1(rh&Ynxl}h?q?@L3H**OsOQtp*k+5h5(WV^o$>}MGj(F}T-9Ph7v zS&dz&c)Zk0z@GXXhlIYfP)8x%dDCtSiWEm@j0J8bwrV|x$X!7iaGLQI&}*v;xo1)C zG_VzeLsdZ%4xn*dKu%je*)ON9F@X}A_wxvc_bt+kHf_riFWfQ4_u>yzp=gkIlf3(! ztB4<9c=yaD3YJ1CuiKAsdjY$KN({4-EQPJ?n$;QS=s!2B!e)16`xikjbjF22hYy;62Df%*B1yO{LHUQqPWW=hKF&Mf#4DP zW@7UY;qHv4Q#~jfw<3-NVzDl!ASodfBM_EtcJ<}U#z}=SX&HeWo?SN}JjD>j5)$TI z9j2}&xSs&-X3r0bzV~q#1FzPVLw-9bsIbTtLSLHrigRQ3TMFH5AFIzh)9W~{gWw+(9~Dymc#0$4YZ+pK*$HWyo1HLLUi!^yf=MNh&y;4w+~J;^&BI2kMJTm ze~26b$eTcUtN~NziW1y7mAGN+u8g(HRzpe_pnEBcv~s}EcRo-Q5})f0JGT|7Sjdu5 z#iX2kM$gHNZ#lJ>!N)mT$xNex=R3I)2^~3I2mxFKSZTML#}NWEAUOSSyuA%Xn@_;J z2!2z4O}Y$H3w zm6L{=*tB?ZU1?${DFFu1;WIwP+E-4I24{mm?zNvV^a4t)$3r4o5v)NTO0ptIpj(=D zIj51zjGrQs@3C87j(S+ogdG=Nx;eY_@sJPFFr+khjoshyLa_S%=iR5DjMd@2n6wA8 zWsGQmx`7nBoFum!^!}xuBu40roK*x-$*U{tnnG|Bu(RlF8uwMk4vecBaZxPyIwTMj zCA=S>2XCsP!yNDD+=0iqQ}C7SS(YxG_3OJP2+NXT|FRZ04D)MjyVwNMJ5U6Q>ZBc6 zM<2sB+Ja^Pm6#XbScRVQ&6gk65hR#TDvT7kDXpTXa~$&b!#0>;Rht_quln zQ}YGk0ryjx=TS)vqrqQLU2ca} zs}C;kjl392&IXz9Wmj;2yvaqNQ=BfCHP*^Mp!BsP%Oh z9>eKY`!KA^*|La^I;aFGjqU9)P@pA-u{-f$&wuy5^51jw{>dr;W=v)veJH=o8bg`vxv6E=mrk-Q z*0zHzO!J0KqM%;8msD^qRtGJG)$MkdfZfh3Ve}8%a%JpZ2to{d-eok@@!r>J9fA9iFdgnI26jK0IUY}TP)nYv(q8vvxlxk?{SFD9fVdsBe+1txK_aQy*TSEP6 zUVXlT@iCZ9-M7|}zn9c;zY{jengbqNl$n4UZkD(+Hwg7{tcBIckO?PRU2NC%5ML_p z{BA-3tc+iKzt$PdxeBMLtWdxhR%5r!bOF;$-4h(A!GXG*fT5lku{!v+bZ1X}0f^Tx zre*niXl7r^I^pfRTSU3Dr-%ENTq9Swa|WvHltv~@Zn{q5ML34dlcX4&N$8Fi!W-@E_dZ(FzL9xpzur@f+TWVXE5M%XG&;+k?4Tqe_^AH&-!D>O{L#(g zLQ0o3?uIKGin7VqI+p^U6A^tK!QsCz3p@I4ZjPSm4pM)7SzhJ54iEm$6uy@rjk5#y zPoNTEmzuAJxc*zTM(u+?cma8bRONU`AfSZ0Dr?0z~uaI zux=3z%yqYmPa0b55aNWPx(gsaJ9>Uj)DddA(mvE0Q8K%*6&CC_tIz<3J*%Qu4MdeY znw2@LP4XQ3va+@#Jc~OBr__FWF#yUElY6@fns^M6dco`fzG z6NLTb%}DfN=;C^W_7~C(f6KLrKLhXCPgN`N1jOtJyZg{!f{FK9oD$2Vx{J0KiGll4 zMu7i)ti4Yms6buoUQ0$CHI2DF`mTMo79 z*6iDQ4ac=k${kMGbeg~)nZntEgsxS2YcOG@+qWD)GAo0U!j?LLZIiJfBx0DH{;2kH zWwdBl^Ct#`?q<*)edU-HVg1$C&y!azQdFZoF6f3(-dFZE!+9c7O1 z&ou<_NQ1oF*34k9Y`+4?oRe3-vXBP6RdAqkM)uB`<3c3747Z;k+kSq5(8$-BLQBs1 zn-3*9mC&fvYY!2b)!t02+6eIK_YMn|5dS$^5k~_Yg+{Lco6neYNzL|IA)xQE8$~zDuCYzhv~R>+G2yQ$tg++Sv$*~{-_U;--R?hv zX?%a<68>{%X9wtzR8QKE#khlEG=+6%M0^PGvfKEl(U54*F6mh3fNXz-Pb*oGh=dg# z%W(T93#=P!be(u^=SEAYFvEG^?8$&VPk}9#&?CGmB;N_+(#FTI&&K=NRfx(v4BLjw6YSD@9M%h=1C*Be`#+ej?kF61E}vIwl-pxdYP zNFTC)yudI`s;3TdyrYjwD^`~Ie#7dTjcmAC!a)j~TbFBicFq60E2w{d1o(OW&dmF# zhM)sPCCr29_>Hwgu1n6Fq(GLS;tw8EvK`RgScVPk$_X(b)@QwRUobu~a<^ez+tPXF zr0+c)Hv<+7mu9AYo^bqZa-{#XHMNE!;lQ=5a*;&8Adv_ zU91MI5*O#Hw}>t|$Bi)>+E|kH;BGm~(tkrXa&c{=T;_(*3%}LKJ!{%L|Kn)%Kl}@S zH`e~=78|?$=WezDDPh(ihPgU+&KUWuV^%5U^;VBYA`$AdI|RK=U_U;GPJ_}_KCq5$RafGQ6N6)8C@_8I z-2X$|n?^Nt_ItxYL`1|WC@2U~QBe`21w7?)dW^TJW zjEMRG=0>WNrLt*)lGOP~?i1}ExIUZbt)LG0s4&6;tb%)!P6ilcEV%u7TNT65WUku0 zUOBa#mLX~B(^)~;52%Xzrp_6nDY2~N{)Lza;>UqQ+uxwVhJgIVlXp!y&h8K9FVS_l z=&-peJ29G#0f-$f>@=9bhL84uZ4ijdbSscM*OUa45u43PB7go0c*(nQyb*=z1E=Ob z0)vV_bT=s|XmM>5lX&Be{s`fwpw3y+%uUy=fH>JYlkuyZW!eB0GnIpO&~4oh+bRy` z8Y!_E4Sj6TGd?7x@1U;Yf&$RiKKw38w9JG&*ISpJd(||*DR986$H{){%qA2fXpzp- z^ztYwCcEA*hhT7tZldCt(DJByW3JRJY-Q9WHpVwJ@C^{#nlhIm4@fKe`-8$q-I0Zy z>R2&56F~7y3PDP2#+cHrRD=|B0$PV+yb5e9ZRM^QF9g_8W(ktn4)*gu=BvQ_T!Q4b zy7t=P0Azsy(@ zJv*l>u*Z9x53jq2{t9-Pq^RbxB8DjvpkVeh#r(aiim-m_RN3d#u;_NE#kj@Uf_9G$*kA@gu}99%B|55m+=9XfpZEoL$lpc6p28Z(rV$ zJrHQrYy5RRQaawb`#rJ>vLUhv#&lZ+ciBjs!-sq&H4VQW+RcK|;vqW;F0OMZGB;3` zyh-8&K5tKj?~>0)yQ0sj|DbzN9+6KDFfX7Is{Upk1a-{tFUV=O=)VVtl^m0;jfXAd z5-}!;frmO0@mRV=Ezqbpx$~~c2ff50dN3=Iu}z9Z5>_MrqJ|wTWrsd;L#lKSYGI&Z z46F8)t?25fQE5)9I`?W|YQd8s(LIdS5VK`BV`G8ifu2g;Zn_f?n79+vkCB&}qqL;` zNE75bC1Nhnk{{6{p#(uHHQF~;aWNmZ^?gq6NUcAR;ID{!VV8j|>AZ8Hu88s|()1lU zQcs}3B6hjpYaB90jxnsXkB$!^{xA%wGmJz5!-gx^rw(#Xx6D-{_P)q(?rN@~q}s59zz9ze7B zSO}j9MPU|4%nhg1&L8*_br4B^05JRH-SzwpU9}s#F5$cs^WXo85^_y4uRqyoXa?Y@ z7JMxsO<qRqV0qMU zzbaT&;~RSHbM#MQUH|O6I!%U09PAhH4{Ga-awllz9& zK81F3pqHnRii)5yse5U*&LPq=wYX@^L6u91obrb^&fTk zPVTJ$@&^gjeGryRbik$R%i#D_K~$|1QJ7#)f^xIz4zOcuXE?(RdR?oa>T6FV`Mv0* z7Cn6vW9%OLHGDOxEWFSb`dF|IbPD%VFO{O2ltf?4OXz1lj>OxPK{+C<)A7kkTftbx+VACnjwSvv`Vd&l6Zr$ zj+v&G-q5a}e+;_!(9#1zr=jw?(vT$ePo$fzvesR{(f9A^z6ix?9n!Rulm|_|S2RnA zSf4II&8a{XeT~LntN$FKCP4WLcDj~yZ-jyB1BjnYTCZ;9BLgaG62J|akjxv#ikN1| z?O`EDFDAiEk()M6FpntQ*x04Rj=R2QEC1lzBDM!5Uc$0*BPWNr-~cE4edsRITSpP! z3E(Xtkevdm%@`|@YsH9Hn+^+k2~UIbpKC_9fpW8St3c|S26IEVA)H`@3yVom3Rtep z49e0^EsDXYxlh+pxayf=;b>fM+CFp<4^vF{>ehO|8>ZTau+UVR*0G#c@~cL16%@0a zV4}xDjG>zhi#O%mX^iREr}2hz2DUef9zao=M43dI5cc^{98XnsnIw0V)=oAX{z|Bp z2}!Hzrt^;kkpknlTIVM4c{LL<8**>po#^%w+%}zMlA@5M9EMWa3hK?mwT)13zjO_qV{{|8t2${}n-uekzg++qIAk zc?L>u`k$y3wYAXjb)MP7v*e*Ik`VF9p6(-Elp~p$;-{VEwbmy_&kq$psH%GLj~j>6 z5|1R>CGt1X?34+hun(L=N+!!@E<#^zR-y%Jt;3u({1vGk`BSoLbRSN&~J{j!?G47 zDbs>+`=R>%NW7A16ES@9Md!NC>U$&1RdhYZtnG2K`+mCDLd(-_Gp`DZO@1(Z?!EEy zp-;b#u03uGGB9=?R%I<3j=kFYV8e~ye*5m;xAG;Z&!lAL8oU*-@LeJ-=bO=T2y18? zKA-4yYI1Bd&%0QAu4w%Gky+ocYYB?+rqH9^cSM0pa~F@7Ao(5|Cd>J!&Pu0*6Las@ zoYL?9zl%!{{^gAQ_g2X*`Z=)R2HhUEZ4Frm*=0Kgkye1OEs)aAR$4DXesgg4{c6PE zdG+(%pIY{0A47$%>=YC&J!S}k8zxN@Q;CJ9^Hn?xIaX@cwiRNjLnV9@`Z1(Y{!c7p zD^eyO2FD_!H)J!?NO_|5?W^rrH3EvC@Acu=kK)Y)-L91}JOMM3d zTDjInQd->9O>E8NPFmk^Gs6r%HMFK4b_*IizP|)XI@dSnAKXcY6^uI z`?JLj%jbW_Z(z1~GO77k8=64nFA{*u%$Tt%c+?#40Dmi}24M6R*sO(5%HY{SGQa1# z&K{g?u`GC`(4a3S!L}vPS(_F5D5BxwJ-v@1DO zYr`v(-zxR`=ohH(PAN;KE5kW}D&l=*`}3RY{yf?vB2 z&)3mi6jK(FmUoA$9+alijUd?}34Pc5v0Lu~z|{5IiHJ|-bsu3AqcT#UuUkZ8Fjs0l z1W;YBVtlp=$t*|iwC{|JM#o$@Vpl=m2MaQ0I+oFLTL@6PbThj$ zlE3%44M z^=3@|ulkn_|K$b$H$Ohqy(RwAsDdY6YhCZABTUEdA-1x>YoogVDTz>uUxSR5F?>A`5^X?i=V^F?TnX!GoRkQNrYh|BN zMO1R>SH^&Bq=lKTwfKB|_Eyeo{IP|#zz(+B!J)iHW963Me&lVCR2nqU@@;vRmBYj1 zhi(nnADUdV{KjtG~QSKPhu&EX5S3%|RPhpJE;uQ)fKv%TWb&uZdRW>_Z8^M|TW zj1Kj#$mRPS=#4B70oq`WNe2D>WYeJZtWN-n_U0&UBI|mc;qLKb75s8v;N;$f6b{&Eqka<=;G_q zs^u3O6@ypAR2WM{JRf<%J_^IMC^|)nX4$OnrGx5`G`cg$fHfbp92TbWE+`T#PV~|p zo*>y4Pf698=oP;xCQro2Z*9f}$(i6^t8~dETtwd>SnzFiuj7>3lk@j^zQsWH#Svok zz6d3LfIaap_^b)fri>YQBv`n;?8 z-|2n1Cb&}nL-UpVrO43%P|ZfRmY(|+BhO+8V>j1Ao-o#zTojwCqgPoevVRg5H!r`8q{w{g+od9$ew zGXreX5h*u?e%z)IpeLo7xE0C@YV(j2#IKCbpCleBoD%9BprP7gt3k)(P2DkzCqo5K z8}how?7l&-nJ*`h!G_s?q@8L(<`~AXEwnq{;2c57CskF3PA4p(?}{xNnTz>N6oQ&3(vN-07JDncd$6GZp!EI;9M=(ZbX?dV+XwClSo7CDDMzF+Qr zNwf+zClgjPq#6sPg9u z;v%-%{QxuRYJ-@y0~_<|e21@P-+cqg%_z?C40{nuO~@8lRszA$Zv<1FYh*(dM?qZ< zUbZY0#Zk|bekE)48Qd0SKs;E`MdLX zpMN#a)$B`B$D#h1ZDu~5ktN~H8LcvteC7EeZ;d6Aoe-xwTMG%_zEpL(w4yUG#tZ$- zJGjAM`rCSCDQCr7+!rQDDE@d&1dP+=nht|xijbzAJ$9QGq02{WUlN;Jf zCj@2meVijbKqRn$ut<9p>EpX0On_W2ASwmf0Hdbr*3pVi!C1D+X0vbDi5{m$2e(5K z=Q|bPLilMmF7Bm}B$-P=LSpOu{^x*}-0u;T!JH8#|Z>mYPpU!!G3|)d-1z9P# zfz88Z5)Jz(4U^~|Dk_?e0=3&GNnJQ2xo=o2esxb6%xS|e)b4vKi4L!wT8ng?>Za8A zI<{P$Gic`|Jc_&%DTzHnwvR7qFDpJ~SU}$!OjbKUcn)-RKmlxN>~W?FeUoV>YiAm1 zSIDO(tZ~`^q*DcQ!eNATj3ttp)dan*O<0666QA4ubW>a9eaceHynGj4g6kXo57cZB zOTt~l=*!EU)KiJzuw;gHIJ1`93N(rSr@HZbbscd;5m9QWX5ek03zDQ|pftSA9^Oq{ zLUTL-FHNQuo$b2c6_fuGvtq1pU0+Q_M2x%NufvB>v$EB?Ru_gnY}Xc?z}P%+hMi7Y z1uzk2dU_;%lY?08%J^p-H+jasU`+|o6=h@V>e+^=maDPJS5-phB~x#5VGWhML~%EG$Lgi9Ab|DZ2qhRbdQvc#nRP^Ala>83%nlkJ4%VBstZ=$Aa--Du@<1LL-Rh)|&Y|8AMz)`{A)sogMVyajEPq8E@85SKHWKySeFE#%Lnmvzxab z=Bm??>zaj9dI*A6W$CwY7Se5%%yd%CTEc3o&Uzfbribq|$~OTASOWB!SPeRRlvAt3 zDuH=;At2I~j3i}f$>!_#BUnP+#=0H{dT>0sWE6#Y^5g$2)A&Cr{{PRi0nA^Ze7EQ) zBl$44g=0uJR8rFg%V&HF&@DF0o?3$7l(Jy65ZE}vl_dS9j&qXZ1HJyaoQy4fo1gNc z7wa(nN5yo-Zu=(x6SpN_KjSqf>X*E!9kgn*+?=H(EsM;t9A@!6izDVfBvp+1ACpDI zft-av4`%UL9%Zu8z3F}G{R@{31`B$YLGOZIuC1!J-FnX?@NbYC{(C2}{=YIx{>?E? z{|-DBae`*metDc5W0P)|tUZ_~$~pWjWb=<%M`hpJ9s`33ig`OQcsDj)n=PSYsP&SVMbhczId1nqacq%Siq25G74mCTU`%QLEpZ{~Wi&&@h0+#+f$z5xvSEtO zA|NEf{|!R$tcuTlR@I%S+W#g`dAOqQ)0n%(k<<@kXD(4x`_O*>|LHOae+lpt6T;ny znX>?A!EXxC>h*4)Cf)pue6hleH6&X)zskz}Vuf+;u~}co>)gm%-zzy$mnSjFJ-YIZ z;jhOSolI*WAJ74erk2ZBj6VW62RGwFbY?QyQ5jHO>9f z?km8WU{VAT%#|azXwTd&Umk}Z5~{JFvBCr(`uMxbCfAPRP4Se_pkA%dsv!>LoWq3Q z&bNaDV-_pkExy~lm->a^IY>8t5V5PJ2r={T!>=1>))2+i{_d6#!(MHuoS+{_OFA=O z7(eQA3e779eLSNC;3=fZ78EL_2onEBS8dS&PC= z1CT6BQW}-#w)=WaDY>d~zRub`(aq;i)Ij3_s6$AQqT52;kYJ_ESbKQBfF3GmvW9FC zhh@M7AKPZL4Q93l+c(!UjV|Fkn3gr&>NtOw;N=iIAD$*MLG; zBAZTDj5F7chOF+ZO&~Ti)>ZRzTZdd~pt@&e8$80IH}|v`-5-;Fjj}0*h`J@d(3A?) zey8x4*FlFKE7(gIZ!RN`bR9#uMpz;Yj$_&oQnc=m5s{aYfI_GuDLadA>8)fMj7SBU zxDAEdx>rm^58{KYF9SW$)(R)L#ASAJm&pJ)UWj?>GQokFL68j>{@jLlMm$PsnPQzo zpUxi8TIW^A>bh;4u3?=CX>lKumQ^bWD?UE=#SptD@&Ekv_H04WiO&1vYhfrgXCbp? zKf?qO0)*=(7LdFv5RVq!s`(0$HtPb1l}vU4|Iv85VvC2j541wZ^lql zL$*{yCXx&-wm34Dxw4iiwQr3Z{5{8|fu-(*bVX1uG3;qiv1W5oX{5J;oVMAuCKrV{ zO1lC+iWR(As9I#%)*+lHgGF0ppMs=3q%nmycD?ki+%a?ixZM@pk&tDuQ+`VeU();uo^D4!k-l!}9DZp;}E97Jh<2RFG)T|b}8SmaZtjfU&NDx)|@KZCF| zcJ!r4fHGaX=^?^70ueHCWav(FAIVx9;c|n&_HD#mM|Q0-A+5oy9c@N)YcVHZc1f#^ zhB{c$htESZlT8m$-j8%$_)Vl#8xw>KG1a$$8lQSo20m6Y7I;CbJJPjRV6l8Qg{}|# z$iJdBw&aOL9m@x?Ed!hsg7Ne}OF0U`^%;PM{sVA5j290`kqq0ao*h`6Pf-N7_>BQ; zzD9dNvtvwVgI}(_(Cf^W8jCn4j2&8i2-_;Kj^sk!3Qtgw#F2Wm1d7w>c4Y8H85<_y zSJC!su}aKBM71xs-EZz_W*D~xdm}nOVbSMyOR47*R6Mhd;-&t8WXfeG;6Ja~VUVN9 zpShTi3mRvbNNTw$cmkQ4G4)vMmLxw~O;Mh%mqZ799K7RGhp?Vh)!a7T3<|#A(vO#T z#hWxWJu;NtTaMaTg<2p+-5J~0yl_Sy+P(JJg1<%X`Cqdj=CAMvz%#+t?O=2;&0UD>8`U!;C5-Ukm0o5BvlEU??` zsK(!kb1s_%S$bN}$D`7^+plw6)cY`ojDK>f4cjvX*O|{|!7q3L{ZJQf4O}g^1L+x2 z+=Zl9fO@{lRT9y3Pl(!%k&@a#dSOpYhcOZl2mzDY3d2A_4;^F`SkcHQI%|u&Ue&e@ zCY=HEVMWvXdxj5)U{DhGTD26SU-SS$3jxW5OPfhGq)8LazKFstNF!u-1kP>cu4GGt z&h*Rxafd$4ZlxkV6>B3RHhn0tW5rCNX##IawAIwI@Y&}Y2M|p%aAvc3}PHs(7y0n3q^DM=1pVK5>=mQ<^#ojNN zUVTP?tb(L`jtqk%5OB`S3tVZYuy8r@_&yDMN9n);i8Z0`?Z!EuQ%tQKX~;<_8yXsm z3v06`pRTUXCpHxB*-;VgGmw0nwzmJ~^J8dh$baHE+^91JP*Iddg_$&#Po?1v=kI{y z5xj?1o3+qz%S)h#8Rx9{vdtugY(RD`TjJUIpJJvKjs(WYCd6Frb|m!SSRnd_)|0HkzNL}WdC%Vns-tSy z#u5Cjh`1OTt+Dnw2I=x~=D>1y32*Z@Qs+`vD|;diWhOi(1t(s!0Y-7q zBohu(5HcPh$2B|qb-y({0VRzbiSp{t#U5lOkn1n^g=6KztS^Fw2pfImPMOyu=J|0V zcfZOSdm2nHONxL0eqiMG+p&E%?l4Au;!UkDRcAD-LDO7Bcr5(ojfZg;fo31>q^HUU ziz3HiZ)iO<>qiQ$pxn$_AdaBPM2;wb|5ce zo7YU}X?|U_XRThdel6-d%+eZ88gO;kJ_VB&=(!qi*FOuN{;hC5)RD3Y3b{RJFq=LT zFIzn7bKkd;mU^)14bJ{@QFvfU@qEe4im||$zNd8!ak7LA6nf8mF=Jr|JlRV8~ z;$wvdKk8bS1Zi6P1ST^~44JV3wo7%Un6-rvx^YZ=DZES)ETPcjpNNYhZPxl?4+gDU z#_^s1k>NNxv=)&lgME~C&D=E1T0ywL67ly(z%)p_9tbMstU$bsT(F3HgXaR}9za3_ ztL~7hx}09_d0iJXAK$Lq+|Yybd`zB=m7cA0y<1sOoERTA!PdC@YIbU^YLFm8`h@n# zFG|^3+-UOD~BUgYYR9!oJ8%D-%x7=Ph!rL^?^3WcSgg8U5I1AzctA0&-_ z5eVE@bm-G;4?hPQ%Sz|e(#Ms#52bf4EGVTTb*?#O(N$9?&VLaIWczKnCvfst{X4f-h* zmJ#Dl6`dR$KrT8EJYN(J_&0o}n9B9XjEx2LZv#jPc^_X+*5yc;p#s)~M9qmv*{pG% zD*f_f0}*v(CPcw?dguct$o4On_YdGjML@qrPrI33;RCS-m%B z{Z0nGdv1tUk)&R7u~1+w)jGngo1n{^5)UM?PY1#|5F07f{sO4#GO<+93WUETcxQJs zxygZ`*aG(f&C>B}xn=V|sVNENS#Dq7w(8%vC&5tN1NH?^7~_QmTu@G}=tpuzU$TEJ z6z)DEf-!#^a9=YOPiRS_B|in<%C`t=@JW%2Ifbk z$IlnU)d9sYb-+&jJwR4VkgX53`|^gxhHZgUiIg3fmZ811UuJBxR<%nWC!N1`1ha~Y zb1@VG)A#{sCcEHKM>%4D5C#Ncy3^;9$iB~`WwAwLb!wE+16@C%IyVjP;L_r2C;ohv zCP&JGA%kL3;WGGDY2pkstu!-2S*V1ff%nbAg@m3*KN;|kP=njR+H_}o^g z50#2K(8Bt&-A;WCx;KzlHqN2aXnUK;@8y$8O%CF2Zu zG;>U9)9GQV`4D1?%xF6ye30k`N8N%Xt(K=JCvysRWXcwj#1VChkWCAJN3t3EL!WxyKm};Tj1$`)n z#Xi+YFFZ7G7XDDoMFfB<%!ncOj~|CCN=nVsH|21hr*2SiB=uzw{X6#QJClypAzA=S zq@-&uA^K`-q)f@RrdeWO5zHsG?KJzW|V$fdD#$H z3Vf4#zpjDChKDodNDDWDQ;oj`+X)*4H*2O=(lSqVnw@zH z58W{t`uXu_j^)`r&+OtSBkIj2o8gHO{nxt1;D{~-e+z4^HpO`ANSA=L3Z*VsGM3T4d3EC-w0w!@_5qP}*GJ3ZS;g%$Skvey?E2aPl0aQs0Lr1(W*~ zi=C)%$6F#4R(`wnbuK=1^Jp1Z4v3}-)6EGw>nj+B0l#a zt=zA0OGbSnE}+%7ex@&&|B>*m6@}{CIA4JW;82Ulv^B9^X8cXzR-G*ph-S%ZsWWvV-+MdC&Ph$C3Y!eEo_so3bsA^tY<2UzMmTQ9g1evHnf@}$4nGy z)(4VZDU!(uIU3oLn(~C!tvKtl!WXt`eF{?G%YaFhr6jgdn8Go!UpEe@V(l$C>67#; zSC#-AB#xR@lZ6+aCONttFkz$R;28$1){{#jI_wfQ7#E4?Vb&cq1R>Ah{L4ELAG>187+iJwowEc}>-m@HezrB1F1Db+$-P zBm{0(Ar=~ZB;E=d<*DOYgP0w_XRl{dnH{CF%qi zy$i6Dr2dAGg3^S#i!YiqCU=nl?TMF71GvJ=`)qby00VX&b<)IQ z(y%nrY;-P}uj{AyTfY+kLo&(>Hhg*`CwbvmG@S$s7}NU;4(SLwo41S@$t-^rtjQQ zab`h5?jnCGRX@08Rbn4dq^ndKi+MP(;w-+=-FK1FE+ffWkKuPGsP2mw*vxq z6ge4@9p(mFu@~yHX2q0EZ}z)2XZt*Kusu{6Yq0P`qQTQDpMK|!&uW4Xg`4&T&D1A{ zyrfu7WlMeT-H5%uHurGgp{%nXml(Z5d4v^>TE@J3|AA8+(dQC(GjqrNn6OX^p_dTH`mm}Z* ziE4}6$hVTj7`vT%p8dB5XxOU znz!orD)*G!Ozo92?X{#f-TLdMD`R@-9u_R8Ei-G3Yrfx+OMWjlmkjBRa%v=#M9jn= zT;OKF-+^?)N(;7b&p5-bla78kh{#$5OL;rG5sxF)y))!sqBvwPzozRvY%tHiA62*t zD&$Zf(^#UZMHTKTx8H^bHobpj=!g}wLC#7mOkEg=7%P_wR)D$o)^x{BmfXD~U1uJM z9I*a=N_i4FKYS!tyi**18BBz|{}|u>^X_7F+DAO*RZ&p6x{mw!$c~@%|9Ocif2cOs z>A~WgxKMy%53TB{AxRC7&i}->9@SU62;GVMkS6$Q@K>LY!@CO<>@;F!1Y>!Zb}uvr zWZ8jCHqW0+3LJGkR19XD(W@q9WJ}x8>cq2MgmBqSW-Tf8J=j?(h207kTZaZQZAs9$ zIvGkWs?hF4u1B1^c1^RFR^LW2{s`h_t@moZ6>QV+Kz24r^9XG-k1I*J9GajeO}bl& zq%l7R#->H*q2|WH8JW&-c>RWEtK=rmkbQ}*OkR)?!avi9fn6Io$MR+mc164W4qIm+-@OZxp52JTxNAcJq2YnJsXOOyYj;Jc z2#ZEZ)x&M66dcs>Pp9JtWP@;sV-i=`li zv135%fOyM^H<{)iKvp_p08pteRG3z>Wf%(S|t^G>Foke z8&!%{XG?HynkZd2$pnw}mJ3k2Hp}K`;3B~w2k7WB5NQ0KCG1Edq4_TK)457^T5ZJw zjW|bAxa}$2Hk^!GH?#nDNxBF9(0R%E<#V3rm1_wXn+@AYQnUYhGSdXV^N}IA#O$wEq9@%H*YMU6 zaUIQz`8MNmiyjw~uQFHj4aa3G>AniiijeZYxmXYv=&HU26PtH|1eQWf?elBV*NUG$ ze^K2#IT7RId%nlR8O)=Oim85r%AysMo*RM#nPRei869GsA>t^X%F4m4#jhPFn9T?* z$QT3O&celAd^=jKh;I#Sy&n@WV*FN!?$3&SZ+uY3O2E zQU6$9;N9PL28_8JJDBVGwV(3vKlESWE@(`(VaWRkRpXS@Q6;;9JFOhx_FqxePqaaG zvx<(EL7!&6HS~~Kvn=HysP;fAl&?VKPQJ=bwi0=Hf+e)E$hNjR+{d$5RBUMN@T-1W z=SU_{o}#9I;;$YfRmX~ebtmCjCu2Q5;tpVQ76CI{A_?L$ENH}i`Jx7rcI!)ahV;jw zJ%z)fAvXZO;BS?4*0x2s-}pK=?w~s7!(Qi8JsT;w1*IaeIWs4($n7~xBQQ(oo1o!V zcxWi1&;?1*d`H*o=5GmS?5*ZMtI751qhpI{`l?FKvI3XX%2592u-+Y&51aB}+Zy(f zoGy3oW*lFvUI65!Y@@)p+HLctGr@++9a$RFQPMMXs%|T-x+Rve173888KJ6&gJq)W zld1&Q4?Y74+r~a0g!q{|9y^Fx!WG;^ecz7_)aR%`aTG83M{+@Q-OCLzY|dtGXlM`oUkj$fuZJkJ?xSk z^P#D?l1^Oqlz!5runc7=!Bn$aNh`D)AO`m#t@5SZIlHzDxj_k-{6a${ozSj=PVFXr zQ&nAaV|;%j%*vXYDY#%MRR$HrP5CFiN{x?S9X%d?DaX6n-O8(rVH*VW{BES{p326>tJXyOb!B~~Jq8&O>~?{%gy;h^Bb`D^ z37M%iQF+}bG$-C#Cttf3NP7yxB!B6mzoRoH8PNKteMCI~fLvxpesy?2 zn&<^n)fRAlRt(7USq5R+3oHQaGojI(A<-CrqExeqQGBa+2wQBliJgpdgvQ%{0D#r+ zj6I!BT*CqFF(g4guP-dLwb=|2vp5GEGmlHOu6?r&clJl3I3URX9McK`ruG^6lpZ~z zlYs#V^0g_mtQkO~>NOzLD@yFzjdl3tkXXpI+z;i7s}R+}E*^#odnjg;rZFZ+7Ts6Q zvErx4*c5S*%N5iZTZ89@z2F0pBQI@U!1r}_!Uqu{CYj31U3fj@ig#-B;3#Kt4Q3HS z^hr7?nK8C6E9Ld#d{ujJ=gJ3yLRMGSR4k&Hx6?KhYz{=t{{7`$gumoRPXS7UfAI@? zNbh~h@eAM3F3$SV2E+CH!}VVRc}NHp+fspT4HRc>?0HcA#eBme7)5)OL`*&U=MWYt zR#v#R@Kh=fE3%)gaWB3CzrM-jlI!1@8Y z7U(xiSu%a^j^cUFlgRuSjy2Ng0okQoN-1PtU@~5nft=U89Y0oYs;aMz?``1cNPo4; zOiM(w2&QxknA}=LlPGjgW2TmNR3O#Dsz_2lXeSq(fm|}31^P%y$3$G)-4sao682)n z6l{M@(Y?CbcWA7goWG{x<0h06=dJOiZ-GkN*+#mKyvhotH{dQhgy||1j4%%^6r>Gp zt*U{_8!B|^7HM>%vSTUY?+3-+s7bF)_-giOs;1plow88!U0Ud^p);rde$e87lOg^k zdD|C^oA(9djsyJ;^ve&VGeVg-b#>`QozcHv5pU_&i*_x zJNuc&KGxJn8T#N7WUP4{)~%|$`fDOROyi6!BLFaa8PLdO%dDcA=2~Kp&R%=17iSAD z`9dsA1X_nQ{FYp$e+n-cg!i9?-w&~r6+j?seqS+=X^m;KSpfm6ICWv5XAR#v!MxvT z^t_7;_p09KNq#ZJ5;2y~-@$pRsOfy$9sxDjU$?{)3Y4kSAqQZbTs;|zyDY9%*p#Yo+RvU*H<&7_A=u$-|+d#+QrcU)#rBg>e(3o=5`AcVwyW|AWW_~BPz zMp+Y`rd^+KFCs1{<;w0-3wB8_F>880@I#M&7hj(?(0)Zr7 z0p?X-IB>>^n2IL=y25oU&wq1K#QhN|GqqxJhOl@fndWt@TYeACWy(3yuojN#ICGUC zEWSx!;ngz@T3te@h0@sjh)(vvPj)xJ_v@%V)V(iY<87}D7n(3_@K!*P zsmZg2=Z*G_f8xt{d-m!tMRii5%oi>{VEQ)c(v6MAQKv1PcWybh!QRU0n|6!EzX_u6 z-dnsVzts5gR7%PZO$|ZOFL>rpjmuJMDC#nIaqfp->t5>*q_0Wd?r76}h&r=O;5zWj41Swq1*P)K)y&IcCvW?oto;2W@)) z?(oiA!NJ=@5=4>9R&Ba^dM)a!(}~ul5rHAM^n)T?DXF=aK6`(so{K4H`VoyQ{pxjR zkk?9z(?k7@DX}l!r?-bMc=<0xk3uyL_E`DU<9mSUWvr3f6|OGX_HFjoyv3GhI`3`_ zKfhyjd;UJ0t%y_2N~HV1!>ybedR{5JhL|2=1|^5+`9b1r?f!eTFcE)Qecudr#Q?%= zXRLbKz&->Y;!rEb>hqF!jpcOxSnyzdm8k5^k$55Dj49d<# zw<6u9Ql>7y3Ne^xG|K zoA`v26V>Ys+vYHn9-95yU46JU;G}Mp3o@DE0_hEEGTt6hDSf?Khc+NVa^hmP!56b5 z8kim3UXhRUfGEV5;l6=tEFE=?Dkwf0lV1EYcZUOBSRQ!`1;Uq*Ex#c7hAjlMQA~AM z8^u<^ncVddsl+7OIKdzCq>fO8#w=S3Zhvg zCAK8eCGV`+P)qUXT;1Jk(Rvg7h4VE$19&^*p8)C-@;CHhnPid?QY{X=$Po~4OexsO zJOf2gu)o+cSF|`!o*$vzrE(7yGL2(Q@S?M?aTKmcWb!~jNXK$Rs^)90FEK@G(dsta zOAmbr&XZ7$H(ek3_8Dyl!Pq+nNP(8~H$>Q2`C>^n_T9DiF%aVc75`HCv(u>>_(%lS zjTU>nswdg;k>PI=5_H_Zj=2UY*S!L6DzE0LR7_1_J&@BJLBxb~J|=J=oUyYTzcY|- z!D_R#xbdxoorw#O?^h;-?#m76+g?GTM#qyiGxc4y=`|(+>rkJG14(KXtV@Et)C#s7 z+saPQEBsmGMzd(=8^hGeRSM>En%xnWVzwQP_{T9bexMOsw{8!P~MV+=!y^KvIZZYu}cqqpsNn=ZZ;@Lz{WQ zdMJ17iFqE*`W)=dU+4+_iE4LcwZ9^Z3zv54tZ0i~Cv3`BQd$+X?(~IqKB+UfiOGZvwB?s<8|XIuba_L@xUI+ zTz#&pdlE?O76rcB@xQ2h)1W5OzHbynMMa2+>_XfCw-6VW5kjIOA|ga(1OXu`Dg=y- z14xvRpdhP|QAfCifq=-OERkI?CO{Gxhe4JA5fDPcsI1aGLg*nO^Img5&xiAzde5nM zPSrhC=ZjTVQA#>jcmMytwIKqmKu;7>{eg$hJy+)gG6^+bk>F#mGu$&9VvwR7-;B?K zE1%}$@GbwGD*^R)qzM0Z4>HgiKhb-Cr}r?R2kcBB&QOvxcv6(=7e~GjHV8Kd=hJ=Z z)l$Ko@*2kFKh-WXE??4D1j}!C4vcGjCaj^i*-2Id_og7vv`=M)8Oc$s4znL|?6)0P zn%*dBYozBw5wa|P`_JclFt%?zzw&1{;PI3w`a6}y%N)hVi64C5ViwQ&$I%oDBgCAr zn)+GJS$aXUA7!Kk?nBO0B17H~dpZ~Tgk6bERDQ==%Q+*<`Agro(N?045ZipXYco4R z=sS=tFbt?{LH1^N?cxgIY`oIAkmP&F^2f;SAJrC_LV31$CSLP4&6WZ2$AX)dBkn-l z9NzY{A0(l=Hls?YuT}a40mfcfO|?G;#N_TWMzS?!c0N*sZ?`VGxn^kMyLSy_N@=61 zomwY|;<>n^jxit^BQ`M*U)?5vd=kh!eR}r}83S=Kap?+zu`}3WdRJkK$5Tej;iS_s z-^~4~h8%fUZ@X)=qx(|bQr0@>;%|UmFk}fRn5dr*FIA|39Ac>eEW1Oa4Kw$nWrPj1 zL)~@E1Vg+Ha(h$)Oc70usM|_X1UTZtZsk$Xil>>VysVjMlkV!>qjZ&;MW60rThk6M z>Qr4>tav!yWI&5isE00~jd9^{w6yY>!hWP3jvyj5)_R-p!Cmr8HHgGAM@CFi>GmjB zgacn@V)jf4Q@Q#%a&w-&YTQphqe>cZgQPpI{d~NCa6Y-J@lAhzpPIuAL%vBo&rT0l zcnaav07rQoBu>W>f*}?NpQ#hjH6Zk~q{wweQVQXUg0;+5mi$CaBfysZWB#yJI*qvW ztR$2P>#5eU^d=0lqq6u+o$*NZMZN#9Q0ITR^%#GLlGR8>Qh;R>1=LzITp26OIb2zfPKn{(PdpymltAxsqa; zakQp)diQKayHO>j;IZ!pjsH&T`5$8+089VRtzQ4%f0FRGD7O88I{X1&0h}xCf2u86 zWX2Jkc%zTe>v7sv)3FM3+GYS@q2QgJawp^v2##u5{ki@b5F{QKsdUo`f-IwiA?FLR zY_eb8V=`A7{PLw}mR1_*NX}Iwxc)<*_kUwI{ICA=|5Kk_3g|HK$EE~o_jB}0!&Lhq zVdg7+j=hN_4tJ)EY9-9P-W)fE*ze)f*9}5xX zVThB$Y2wz=#}L0|_9-_VYL~V(PsRG5>Z=Qg_Ro>dwuD5z=d8{TnDna~?yVLU@=`d5 zqPLA#oeQ-etmymnWWi^}wu7kXf8>n(Z?4(0xW5NU{l(2<(+0BuH+zGiRu|);Ip);) zZ*I1n#4r5ddzP9%ZKwAElo`1%85}#LQ`z_^SNInglxLvoV$>Tp6VuTes&$i+ zwR5a=%`r(EVet8sXRnWts|is?ZbMx5)+_D7 zLv($J%C52ROVCS-6UPbk%pk6TNW=9~e_RD)^qZ^UyPw2Vc)wez_LTt29ZxY4V(n}^ z4~Vt~+GLD7_+>N-lBLIgb$EUd#p?K?lj=FRzmeDlm`6^0QVc(p$18z-L z>389-bU6^8Pu|)s9>nJsPG&CFshOaZ8${B?H!!h9wIQj+elHCRi(6-WOYD zk43cxaT^zAu(Hn7PQ^(T;G;obP?$in2FNXKlr-2-V9c?S&L;Wwm&wu?cY!Pw|0FtE5!NGgM^%&e)pr`7$BybP>I=A!dYZHsg*Gp*6aojIC64i zO_z-Xaoq%C~|56SWDvGoY-JcR5RB_wgxdO3&m<3q&s z&0?j$&izu-hvHWlwVPSfu8JMX?~uC+TUEQCy%3e!Z$fICO(GbwRX7(Y@3YjPsDO43 zI2>=QY!Fc^cR3WC!eNvmU1Y#f)e?-0AIhev6)K~N5v#tr8GF~R@Th^^+A}I(4q`P+ z-f#UDF@$%TvX)PxYpxVQi9@oid-(0-Duge;@S=|w!qQ>1gvly`+Z>YO=Li{g=7gTB zMWQ)SVc*axW$K0Dm-TWyo=`#D01zaGUnW04s4hnK%a0%ltU4kv$&ovgxef@t^QJtL;-S!%Y6TO~*xTpB9sC zQxzeg`ZIOvR$^HMkm*y43i}OOB_|qd9h^Fce*Hm>mZb2UFeiuzp}hAGW#UAxKC&Pq z#Va)c=%^)Sn|X|CF?0eYR1ZLF1~q~7)TmtVPJ#JWXd-rPz{IWiNqdvXEb)yS^6KNe zi-JtP(Ue5~kHP6bqM`mD{{!RidE;~pWoQ9=g>q*%*vxd1*|QYAqkXu5QTDR;!KRxc$9q) zzq(tsMd{e@$s1jYoe!DI^{t)pakD2DO!+aB>TDh84M8QL-^J$m^n}msj|g6u^Yho4 zU+a7LHu+{B)i$UzE2&9`p^hQ|A16n}I=a+w`sSRL^?devo%qf)H$pHdWF{${p8CIa ze9}=m<@c$mWWwR{)0h$tkJC_p$3F9npW6F>zo(&elspSeio}#^rCB%U`~pk&Jd74# zSGNPY3~{A-UDG2WKKV)qn2<5;3C@G_llukZECZZ+jJ&FJiFq2VGItzfEk7+z^1VO~ z`|$WbGb8@{{g3)P78kXAoiHJw0y{Hoh62#SY}?{j#b=TD7S+z$nm6l>^5MVCXT?DF zI{5r1(KNQ?C~TfyG}-?u$oOSV@`(p6fp%)jT9`2{f!f*#4H@?#tFyIm0IO+MMbog{rfUX9;}n#X@P!6yUy9#{`hij^N^B4{`|g*L2)g<#sal5z`^Z>rtVD(yE>?yz z_|ORqa-C2cQ@IPy@qfkbqkuMYAzCkhMEhnb8`KCI`$=6>4bLuRPuDT;nfwx1H`7Qh zYg3`QxhsoG4$DW)B_K|~A7b&BVn$Id9Wk=IPweA3tATIe7rG@}SruI#mTjIcWi02l zN;Jnu_QB}nD2(ALk!NoHgvz`Rn^;yZ@yu-0|EYSi0GuNRLizeN9{{*@_YtydaU)dKDzySv5un5@70wT%<-4J~ zY+!gdVcfIn+#rPfM`^s(xC4-tbcUB)Pz~oYQ}7m@mN{eT`#rjpF60=qPbC+|ESSeG zK38v0xQ+nCD0pVS!aYQ?o)LnMW7IH(L{u1IRgU}uOloDNqmA&U)ObK3W=Yv`w!29B zw6#!h(!BOADO>Pb+h3*}A@tzF&j-OP+3d+5h~NVavXip-^*ZWHY9XW*T$2zw2Ca*s znLhCYMjWt>n+yXM3=r3tU-X(*7M>MvW&T5u;^}`9XiGF&R1&vOO7A zHxD{_|C0m7--U#XKem0k`C6}I;Nu@TKEM9HaBYBRT7T`2`p?(CT+a*9!1{=;VQpd* z+FRyrFvmUci$h2Iw}_@^a}M=d@BY+K(?_XQ2x4|Uw)x|-|J~YLddK(chTfSN2W;2) z1lk^|GainTk|cVZy%kC#QUHbtH0>IkraXu=z?C8rF^RVxkbHM*Ar-UO40Rfb(M*y- zp0}mIZS2EWp&&_;(jl`S5Jk1}nwNQtQz!ed;RhWhi6nI!)ZK+!!yW7ll?`>$iQ&mS z!4c6hN)p^D#B9-ueDpCGyxEOI2kRc)?P!Y7?(3*^!*nz(;)G8?csuqfy`vj7s0)sZ zvGNeCnO>>1lIF%V^On=mA3*+F7flz$NT~KWXiR~IR_A-dApgholL$F260ufzZVRffTut?dnc<>eYk@LAX} z9;Y>0_QupX+bHvlD6_4pJ{nK^Rs4NNY}CfeuBY4c%{!usC&a%GcEpwp1bPJR$os{= z?3lGh%}?pYVZN5GVKd0n9(nd;06|Mxe8&5sQNskiX7RIvK%}0;Jg%}}q&x`q%Y4LO zU@{*AGz)bW*?+LUYCV_rY_c)4iV++UW%k4&j{d{{KWcpb%EMy8`EJi zGwZk2jujJq&D&3HHbg^9Xui1$VkUB&Wp6yS{iZwsfD2v_C+oW+1AGLxJ_<9_FW?KK zR;Ej5bb9_&^Akt;o^PPeEuoK9z3H9bRiFB3T?DGD+R7Zu!nOT-NA|5UpWJc52W$E~?gH%us8d5Fpiwvq zOl(_Z%dPIv&8Z}Rz>e32*PI)9lXzFUgpVbj&NDULUh;y8C6si zWZpbwq;U^91@kY>bU($+BT&|1Lsye@o-{cvGsn*q0)icQB#Hq7fU6KqFdM-fdxr1c^%m={gPy#Ogpk@ z8y}keWTMM`!)a5D)3&>npCt|#H*Zsy{}8dtC!HPc;~~1{QSqeFR-ih!x%XwL+BnXs@+`tS*rjwU zdYtiCW`;f?wi&x_oEQ;Q=IhJ|2~K!$@n1t9Tt6Lk+y2LC&;19@T}GK8NWD!EZXN*2 zaiY_T`Z!^i=sVMLH-f59hg$;rYULpjUSH_}W{1p@Cj%28C}WkFX`AkN2p{k@-M11i zdBPx1Tqnk=X;x1z)@S7d6!dk)q`@uEv?mh_jrHv3llHoPT zavwe2_u<2b6B8Tu2)8}h_oOOc$6o3qBx=yELZ~GAcA9P9wYu45Nd2HcSO~)!{7}iX zZyHDbm9^jBxol#Qkuvwj^h}OxFD*X$$z+QF#Jy$NR#rVdH!=}jpA`{zOaGssr`7+K zdMyiP-%(;w5gEQ-?jMRb6K(3}U}Y6MzcAJfoh4_{SHFJgkdA0zlwJxv?cmaLnroEe z5;e&e@h@nG%H(I@@aX_(XbcV1M+VBBRrOsQS1H*x+@#|P`6QKpSVRkkb3BkI-5}sl z-jHPuh=hmaLd45GD$Tv$UvW|+GplJ2fHVG7Q|j~Oas4tZ zF=Mthh>tXlaMvf@;1Q%aRNr4Q7hvL6=lFVtqzJ?~1cdHtPotJcnT9!G-5YAvz5={Dn6&;^utTe1ssZa zZdYQN{@E?&`+W2*MzaqN^8~3;t^TO+_6^J2H@Ob%AZu`kDh3Yee<`};^KFk*@2uzN z6P%jNiB10kinEvG@{-G^A}ISxH>ks|GpE8~`_XrA6aiGU-0z`qaXEJlSVSnw<-Hs* zv!SN&`};pb9o#B~JB?0Cp<6)$bf_42cm!Jmtrmw@*anz8&KerqR9KpA>x{babV#87 zm6%*RrN8u$5kBlCWw*@^u-njUY)J#*E$j#=NFI%}!Oml6c!?Y;&bPE3C0M$lkllDA z)Any(6yH@1pAyqIRQ212`Sfq%z5Yp~ap`3pIzGE2OR0YiHRum;0Gus6 z3$(Tz*QfNKRVZRI7g(rk2rU6baIq_CSVA)?Y0$1JIB4uW?lOGwtIYEeypLjk7~b7b zGbkB1-?MJ~RzPm8ni*3NOOm$n(ZKt&25(6%Yb9xeZ{Ndj!E@;c+>RiHJs^H(;H*0g zGViuYD?rB4&ONrQ+bnI4qb#wDZh;Wav4F29YmBjGQe_79m&9Jo+x_|_9GzV27=p7e ziKDY=7Z6(ohUzS3wxW$`#GXi=8gbhh;}2vB*A)}^vq3__bp2$c@B+r|ie(;z7ZswTWt3ZB@fYnN=U(et;`)#Z1{w2HBQpu-T=I5hS$^0${(e&@fA^OS+}f6ZYQ^9ba(f=j|3pVYY>y zGCku?Iq1Lid~nCLCy6fZkK^NF7P5>YHXT{NLHDs;`X^h9M_RG6)OWvb_-UEo-leV; zj5q;LH*C~**L!<)YWK=BYt9Wl z?H>Bz9=_pWvsue@?&e2bZ`XUqU-~7ZY-f6<5$eZf`-{mHF*;8NW79(IpgNAp?b-(W z7yd8#&D!1fIyYK>6Y{|2=*D#i^R@OnYyY}$=!3JqkOOnP4%v`*?|0eqi25<5@4>NQ zHxShCefp4*)pskey~z*ZZtsd>X(4GRYWhJCA7<;RF53SMl^(58;3lFS zesi#`uOJ)57fi5>e9mP1iyL#TE5rd0Pje~S`D)KbNkb8`yaLd^d65;klxvHLmNS=% zaOO1s(b>EB4IslmKEJCDwTc?i#MOaG>GYjbblX1bpdOm;=ujBTC}faQoOYv8k_ynJ z5CFMir)~c=8%5LsDfWYQ^(NT#Ig-(YIC|0G)o51roxxqPBtd@_Ip2H? zlyd#r2)Z%7fU6$vY;ik}#L7B1()J=Z!(ju7tgYpf7?6hke%%22SUTP&U7I~gUGRpA zbH~hp<9;F8mWs*mEsuL6#@Lv-9M9X#M(GjkZr2OK*VVU6y8QKBnn9b3aQnMQwjB_DZByXbC-4i zN|Pm}(N0O-W;tHZ!Ww?>B+HoEozmimDqYM@kuM;uocaVNL73w7vQY1QW4~bKhU2Y@ zX0!nwdk)wTvr3dk$f+?@GGWanxO}iA;b}j}z6gOBtx*U%UwHrt8ok`NvPPyp#xm-> zTue5{^p!xfNxSFMYKj8hOrRK_a7o-% zj@M{satny$PiY6o1aL8n{h>*1&5iSHV`TU}|^+f`L%!=G)VN zBoG4Gyc_wj>5LE8w1-jxpBe9^1`TL14>YvPa zfMXu#hg<_a)b}nRreht!@?gXTK0Z78SN!0hwOC-j7Bo5#WN-8Ya{OvIui>fEp|LLr zW~Xq?LH1r|0eJH-q|M1As$5wd&C7@4yJdf3b|w7vp;cyQu{uS;|>@=kQD!K9{X3ZNS{uPK3s z-=X#+@roE~5`Sb5GA|`0@oEeO;i*;hj=;5$m4KAGD9;_kCgtgiFv_iCY_)Sr=lY}; zH*lQ?7lin|)!lQ$7q&sa-sm^Tkb8I7@vcNs91b)Y7pTNMebqL4->u+gfLX4=*fQ^M zcP(Y&4U~*7?ye8i*N1zeItWChuAExg<^}^ZdK9`gV0dEi`*B_JXZ|yk{At!y1j8o1 z#4RL4y@$5-%~Czy6!DungLD^m!m|RyM#Jf6(sqJ2)$1hUFLi%oC1^}cDWXQpAHlt1 z8EP##+QBnP<_;J~)Ar(Oa+ z0!a!_ldDU!f7xr(j$R*nqk*9Zbh_AP{C1d-#4(Q9*(U1%NwZpF&Y`h0qLRchw|Wmf zg)`~yoO{^#2aPE+oz}1J-I3}0PxXg$TuRAZMJEJyCQq@8;I3s@l4<6k%x-)c8aXdPkNYwByp2@CSjHVmZS-BBOH4-B zS*6iHRd1r9UkRUKhBU}Z_~{W+R2pXwPkWAm4#^hZRqlGKJkVQ9(F6jQOR%b_Y(iU# zv7GhqrMX7LJoorU^C#fsTYX=~Tn~Z|ZwbW!#Tnz%cP*6x1-Fmgng60bz&_t}I zQMzYoJMyW#09Z3&o-`f4MtKsfPv|jil$V(1c0KsnINq^$PO=V(7Mz+G+1z6QI%O*( z^HBwOBUQ(OxjND#F}?<@;Ztd4>;aaP2tuK5N{Oqf>p^bq#Sw+HEuFiK+VfQyh!$by zXZ*A^UHdEXo8JbNAO{S-D%MC&csr;{#V1~<-E33tQRUnOd(u}qrB}6O^3*wm1w<66 z^bunu?a8=Z<}KE3WdxhvwOBHP9@RcBI?{`s_c!z9qLEgLj%hO1`eH5YQF;HmnZV?d zLm}{1-ed^~@Au0XZEsA+0-wQO$9M_z%v7`k!im3XfB5L`(pAwHTd& zJ5|PL*<7h4!j-RNOnngB=73JR()Xnj7hE)veS;;P*>$3O?&q_iejs;MZZE{9o6Pbl zVZ@j#^;kYnrc~hSjJY!D;ahWltrb_fww}JstcrCq~O1ynIkjM57dQ#ntuGov%}PI zHyD)|h1Q^5fI657H2>I9{$*+IwRiGA)!Ifj=Gvrdo~^qxGATY;)2D`02pKP2GwO!- z%Nm*kc8%qwKc&AVZNyuLu?)GJly)p>0#Ib=Q!arjI1G0)@RD91m89NBes4e6t<;23 z!ZB~|>zp%4a3#Xx4+f{yEt$IXFXJ*}3*t^AQpF0TKaw7-I8W7*E&w%rXA*i9gR(WE zTzN!fi;k~B+GN-S`~f8Y9z$OY-VILRbY+rC0P&Ws=imz7le1!X0=)-2^aB?S+<_XWEd#+iUt7@=|-dTzi zw$v}y-!7VBQL>z6K^K)dm^rUr94!h$-Z)=dKGGu|&K^+lhv>aAZI5-C~98 zM0d)~C*$~ib}B8TV6<}`?Ks4{t-Mh2;jAwb;e(_=;Faie$1-EVyJrr&?ohe5mLU2% z*|1@~Kz&}7^vt6?q!G`){&e!z3ed$evH0VnL4Cbj`FIV<&n3e8VOeob%rkQPvkCSt zUr9w`A>&fR$zL$x*Ya08#)bap$c(?04)|Xj9*nxjs||0SjnjSa0S5`cM=k<~0$Nvj z`BFC$BUoI>k#;8J8G$dLy>0Qf`Nr8N5EIhi$q6cSRIdv;GccwDF3`uoUx;>k4i2ay!x3;*d+j=zK7uIggDf$p9 zA}`w56Q75A+ttKHZBYLhXo(C%H7$5kCa5e=nSQHu2!Kr)bB-s!hJi z-7lab!7c5|Lhu_K3bYX1-sf)w*ZszC#l2JwysWzO?#o#zY!8aaz-}f4X+YQ!))aJB(26j-L)+&>YNH;+!(in`@IdNU5-lPMCV|c6YSCiQ!K3g=9jB}>ZG9vU8aTQMo$A|L8ho8S2#jxqYbFo%DKX#KC_^Oc!QSVcEcdS{HF zlk-qL93QjFyJLj4L&e1nYqxaKH;?b5l3KGb{-M|8!b^@^eMy9UwJ$ceMoYM9Bp;oz zu*l*Q@A4X!>Xck85)5j?*|P8%%^)cX)URu{f`$)CZRa$*Yy{Z`q;z4v$o^t#)=7}7 z%m`*`HW!`?UF?u{EA^wK9*%+}Qojw$r1NSvXVm-*Bo0KjMkusYJzPRB-7??Ih~>?N@Z1NZK1{;_!%DM2?a@<2XkJMN^9W zJk=Ms{&U`rzg3s?->Qja*%O1b=;~0n3svFF%tyHkzhj4b1<_O{+w zpM1h~@5gWd2qvE>rc2)ozkliIX102*I^g4LN}8A``a9Apr7;AgGi;m-WwhPtO3RR- zQCM`(?b;ha(pFVC{e(>SDQj5nI*0xyOe}B{{LF?hmWk>I<%yvvnw0xO*U`y(a^tIi> z{YOQv8=rhy3g@|Tc*3h^+F7PM;Kl}S8N!s^q~}!?^APH%r~cbL7%E4JNCtNIJm!YXqA1? z5dR}!`M)2Rf2;86zrS{kbR<1orsz!KI@TgFvF4A*ra*4|6G_wJk8gvwIWW>bcVi2o zzPYN&J?AEVcO_TY{`kAaQk^ho+vRKdnajqT&^hK-u;xq{2ws&`%UN)+?8H}AvZVfV zbLWbu4r{1aTFv~W6H7_B3(sjsp;izi&=Wb=D5?YPGA((#;Um`rQ-Vn~Nt(zPfIn{Hh}ACmehP^a`hS#D!3L%n~=U7i5fE{r4iQR{GU%|&nD6=WN0(Lb4a1I zB&n{9X#`Xnun$<{Do4gm>ZW~uKNO{(_*mwSMva7KK09bmg4$JU_C~;KI!759>_646 zbS95zA*S$@>^8DPicW15r_okKM^WG{vEf3zVYld8XyxOwPT6*xz6`a2di+ndgFQIE zjUU>hZWaZ8KyC~j<$8D=v_Z>N;#p-FH2K%OTf^P z0oM_^c^zIRZuRTiDjy2&L zHZjl)4o~IoB=>;5ATI}EH`##z`fw@Wt?%Zo>zfC>c_++}{TgV`s}oz+LjCEN*Amv$ z5fc_%Yy%EsEJ=v#yjHCBK-5tBQFjPcgtsH}jHBGc6Uk6mU_CT1WD7erN0i4hKWXcH zo&h}AmiV(oL-I-Mh9G)M#C2Tbi7K~Zt$?$!xp#Aa+b-IjkIo%rDmPsFQ%xQYWm65u z@)B5j_$~Bz=+#`~DMEdcKns=3(B$aZCvki$sari^Mk-IL0T~oMM{X?0GHaevZ;Vn! ze%%~Y5&707KkuSqa-P}CKAKA;&S{-yciv85W8EQTrqn2bbpLLYY{`GjDp~0c$t9!A zJCReld)i=;l*ha(KG}%0OSNyf`kSKEX?E2jPJq2IWj=Y72c3fYp4uBUJfw=6x{(Bp z+b}SL1jee-uE4iJAcIAqa?R3DDqHHq(YDsvd#9+ZrXSj*IZUm|MeE#hM8eNok>vxb zjk4l_nNMc6-yaV6_>-MU;{B4!=Z#lbGOah}i^FP;VC}f({*7u2y^Cv3O2A_pkN|~M zXyY(%MicJz7IO|1Qyp8fk7hx^N082y1=4iWcdub0)7H2);QK+*>F(NCJKZO{{6>Z+ z*S}dRO2{`Sjk1uPhH>*%vVt)X-~}ez%5p|^vtXuNtF-a>exym`+E>*Y%`zlf&Oq0q z?x|J`lJQ0`HWf%e+@(=}swL40v`sMkHir}qyMF6%H1`>jBg=SL$_KKi#1V67X3Wo7 zmd+r(Z0w#oF|y%2>JVqCK z0EkRab#t^qVM?GweLsgJYuC1ue*r0)_I_7Vxtkz9a&(HHEpTX=7!#brKfp%*aqxg7 zk=O7HZhZ#%pMz0NB(%~AF;=)w!AOvtj);Jyyg56;d{18;Mb8f=+~!GlL*|d36G578 zJz9@;KsrP8f^0uMZA|mnI^pM&LZR7~O&NIaR&PhFRBJHNGDUb2{hP+6Y}HmIY}7}9 zWdc;BCWJ1Nb<9Qb~dFO4F`BKFkFQq}uGNDmQsPWR*A!x(=Y7wTKV;1fZ*1)JGq}ieq#8(1P zE~5E;jnM!kvAP@SUiw>O*bVL-Ut4M==kT?8<0ib|KW0k%J35m8ekTA!%?gm~c|>^u z3}nF--%$Z20Q7UG(B?M0^u!^>E(KAw{(7;}9?1btT$OI8z2b12V(U9_%cd=rEtP$o z3?#{2--C-gG$RSEQ$x0nvXy#P0)`fiqHqdpY-mL#-5N<#*eTBdU_Ex_pK6B?^$SvV z8qe@4+>ijC_TDjUCdr_Z7R#OlZ6=g^B;CN@17cjdIZl@=CmkXiGwTXJdz!iTLG-^^%de@nAi-m^N^9&|M6Y>qwoQ`8s>7E&N50B$ zz^v&k_&m)Ud?H3N-nJHm;Fz7Hi$G)AEh|12qFo-CdAE+8jOkpH z8+6d*1*hjCPgFpfi6K;<3v^~Y=C;dkHaSXvTKiMp=VD^zfws?obZLG9395gpy(jwg zsT`GV;G5(5FR`{f9P@=Jp9L%wy^B=ik_1AkX>OyP+V82>Vj&2(p9)7SaecT0*PkP< zN4si=gZa0Hs1Ny~&|9|bRlUh!WSEl_YAgS87=M-Xb-6+up_T}H$dU4 z&xM}y*V1&LHZ}r_VjQX3N7#ACF1zSQ{5MNk#k?N6X&`m0bb-m)tk^U_)s*dCe4pB? zZ7P)L+fqzrf^1^i)RN} z=CEjbN26=TUtTYTCop+MVh2h{BF2?;cTXsS`jVRF2Q*z+B;f0$iA2CmF;MOH2cyVG zobUNB@zLDtQ8(1UF(*Nu3Q`gpDjf1c;tMD3&}&p!dKXYx*0N5U-9>Ca;+%fhh z%oTQG^34nbe(+^!Q8k;R@jLr%ajrX@Q1Puc`)22s8F&^lk=}!UzIdoWsCDtvCo2T2furkgA9CJBK;Ln=biEs6MGN zK0COM7M3Lqth%hgwHNx*eEMv8%gH9@buuFxMTa5Z1Ya`7K>1Q7!sx~uCA;kwpF!f= z#js_~<)=Gt&IcTS_e;yFJomeU>N8v8)DLX>-t)l1mN9XAejv!Uy&~cr{WGpJe|0e zQRbAvTwdbUdzDhD<}?YIE{Ksps^v8^GQMn3e z@XQdaqrC#|rtZkn+)B{VB5KXPUgb(T`~esQuQt}Fww)ANTQ@n9l3DsVE$BIF^*Ln9 z_u%06#z@bLrR8fmxt(52~h5WO8Kk&Bn|aK^IPG*C8;O5ym2JyWhtlyIE;j!=5Xv5ucbfp8+I)V^u=(B)b`S~Rox6NJdUJv?xCAYsO3|P zH8kfE#J_D&GaYZLbU}jHNX*&3+Az|(iM<^Kpl1UVZu^&Ee4O9Z_C^h}^TDXl<|8LJ8NjCV(6fsjC| zXQIFF3x_MuBhv%buV0DMb}IVU!0^pWH(wZ^YyEJ|Mtx#V?c@q-IL6xYbwfjALtf14 zpgW7Jf>V9VOEO1HUlzPhH_jXJ#aLs$6lPp@jkzg(d?@4F8){Vt&3z%SF;qMkPumOe zggiC7Qk5=DyH(!k7-pyG-uuh=;-?bnRA=2;gg=Z5Upo$$YGOy3X(Q{9 z+hdG-B$N_A_!!n~k{D1Un)4hC>sR)_wPkNm;z8|D$L^4Yqdq2&ojgY9(XGL|dod|wlFN%pO4sgD?qLL?#y|}<1+1mX% z(;$+0s%w7O{$!7>yZ4qb%+X&ad!pQ=_cv&S#^GM`8HP%voez$#d{$jmbf^?HcX#5^&w2 zSz%`qY5BZCFW^tNQ(a}mbk6P1GWbB4SsmQksTm^on{;Y0)r_WASSp?Fky@b&xH&i+=;np&EYun=8 zpAoVQ>;RuzC9CIIiC8dV-d5tljP)CGvy@oqB7GKlLnPfIIqTx#H>iC`&B;(&Tv$Pt zn9lm%tX=(CF3T%%cF;D zptQ(oQRzUe44iurHA|Sc2EEI41meb$fYMW-SSO8I{$~|3Q*p)aN+(i8YHGRgyn~z=U@1IhyDV~ z!Y3ukxXYzT*a`QligUhdv3yX80Q_RQcpJb^x#Kp=Jj~k!s#X1j5aR9Kk*~#hF=mI` zh)X|!J;lf6e$o2!uiLx^$O|ui5gFc>rn;Fe>^+a_;0=5llewnxz_U?vDi6O@pi)=v zUMh`b3~9;C*n-&=NTH0~YQzhXY^2%OAW36sTEsj3tQGSWS0vKm1-=JEszn8oPHAO< zl%@Rv@oYOGQaX-RSTAvoWWQ17n*~;lt}Z8x{zPcN&gdK7!&`d5gI|TLde$8f_o6e^ zmWOTZ$D1R&JeSHi)w$({pL3MYIbt?KNMUf1rAK_srJi zy4W%{AoO5%-@QbN zq!nH=Y;qlo*{CU;vUvTlbViCCE(n(L4HqhOIve)<8p^@%{QdA(CN7q z+p>RHDM|Q(Uw004FLow^e=kp>i*treU19cgw8C{*)#IIqMvBH*DSL!$mL}B?eLK$r zxlKss9I7P5gZGiPSKC6~ww`HeZY>cVnyE(>+74+pbYWKJsdp=lmx?*su(N;w9sN^H z9Tbp=m6j@N5l&AQ1eYD{!nu})E)1@$0tD0h8sXs4f_&wrRIL>BQTQtT8~4N{ex8GW zEIl^-a6eXB6;@#&2Ncb(gy8VR{=hX$dEl3QNHD+3IRsms27Z++AQNMQm=gnKxD1;D zdgW%E+ej$;y@TBMpd2(VTvS%9Dp?A`y>-kXO*{q}p{Bb97T zWtU7v$=+g#FqIHu>|~oF+0rE2$Yd(nw{O;xOtOVE*~2hp4arW3F(YKlOc;Zi@w>m@ z=UnIaJiq6hbDigRo##B~kMAF@aq;f5>; z?+mW6+jy-rdETfKTuxj20Sv0(LmB`~-3KsEu~4Zw5-*^)0M$^~VDdPZC2bh!6pBzK zOKI{KKxx>5eQmE#-r(C33|u`Shnn}jI!$;dZXeQPu8?0-wxk4aeqQV5avS?BC{0`1 z;zlx>S{e@aV%>!cd-XUcd%Xo5EMxS6nso^MKJ{^$XLmJgQGo6K<@vT!l>SbU+kxb zHU7rH=?_(axjdhqC00S5sLp98hrG}^Xq-zVQp4Apv~;b1Yv!22R_@KFIxo}5t9#(L zu#(>x2Pf}GE;haN2GQI_d(curAX%waO^atsqesW40P%)bgXAzq9Y_LTn{))L7)A~I z`b?IVqg2L4><24h+;cM_T{qDWbi`OM@LHT8$HdF#E+%6~b6Pe@Ak=rm#Bwry=~z&a zSC$S98wEzyxS3dS97nU&hwTNNWuZr^2MA~A+BX=xXDK&p$ao-xZdTeKfDj&=FMBSJ z2L|GmJCJ~eLp0NeB|tUDG<@p{AR|nTWC~1KGTOH8%n|o8QB#11MpA`}kI?cXaD!E@E~U`nrJ^Wh${la5mJbFGcR-An+mPd;q*lE zsVa}TQ@%t}XYK=p85f>7nFTL9{)8;Hx^x?)VwB1!y%S?dm3gTT%W3=**@e#DwfAS9 zZn+G~3@YDjc*tA{mc^cW06z<#%*KLn#7hzrO)Y3rgndAAHOR2rYM}r$3Sk~%4>CT| z(h-dH5(iIvuE$y^AS27}ChpRb3gU{CV)(uM>TSV5S<|ZWSk-yxhnQ1S2NAF_do-%) z7a-qJZi`JE$uVVsB8*+GgAJ#_SSUXVJ>?lh2|Y9z z%K0Nya%dH;6+&}H9?~N(DQ%hbzQLH3Jb^t{aYC3n9kesnzRZcIEk|K^3mKhL4%m?0uCfp5k`LqB87f7Wbicmhkf70xdm*=!3A{ONiCYlJ`4gojlw?HvQMD&mU2ZzxOg zP_v5OTTHzvUitg-WO|~vONLsBk9#2`1O`~IbWSqXw@fe^m8|01gdi*h!3~Z^b+}7+ zRD&ABQ#l5pO;J41QQ)#r)Z29NjJD=1G3roZ&esV>-9fnc)-VlRegKn1x6gXqDckfIDEy|xe620H*yB$J4d{B`;l+EV{K zTf3B+UmXI{wpi#IHe$3YRi}Ci$2ICXTC(1xXzN5fR#mR48&LRxWB9@h8ade(9S5r@ zXoL!fwy}@1-obAcE5~iBFP4DBtU(-xp9-BEXNSKTW195`AY<;~qSl~744_SVK+DIQ zS_YzKq45-c`ODPmNL8Y^*BRs7Ip@QJ?k}O`@X0KI?%WLq&YL&}pg9Z8%9O+~8rqM3 zp_=-(z?Bm3-8#Yl2(5LB_SpNLZBw_fw|GLSWC{7)A@kWMIlTe#2D*J1!yt;{@s<+F zFH@!!ke^tTqQQsADePhnnK+7Q33BFRC04S|O#%9m0X)IA1n?sGm0-O4!9D>||A^wl z*wP{ri#`y_kLo?L% zr9(7*QX{cUEpkhWDLn|3PWdmQ;zKn6F%N1Vkxpv%&{0GKOI@WG<8WO)p+U(b!wJ{; zbXDWV(Au*22>SMl$)J`DCqK%z?meV%OOqJ_=rZupq|(_0tPeCgoydO_%xJMD0$5Uy5 zV9dHtwRlT;uib*V;~ZEq6Q}Y`+`Otv%n z02Io&<+X$g^tt^3Zb+Pb33y+S5m?vm81c5SiW1EajP)txVlt(BpO?6Qq9!BJI+7mA z$|T5NFG1Yt`<#9N)WNwo)!wpfo^Y(n@TrKzlt{nj5LpVLr8nODT|{j(kvyA-vwp`4 zhkIC4mzUIY(V<&5S^XxA>r*hOCm>8CzhdO*R`BjEe2r26oxlAM?X6HqNV|gN$HR7- zT|vGA4=}P66wLEC%t?k+9=o^J_R%e^3qX&UIF-H>>r26px=taQvEiiMI%0Dd2#W61 zw#mvew9Y0s#&W6)J_%rjB0jG$XX=OmR*lz^ox+QbJ;&|4Sa^0PtSk#K%t`{bYDCDm zgBk63J!J%Y1J9644_Ap@vcU=&Q+AhAXInv;ndCmIaMp0v$tQ%HGViGLC)soNZe+>5 zAehs=&)poldEfl@jhB0?Cy7gE$Z$yy7*!t;0W98kfH(nhIYSXXg^W-EdVv{fHRO71 zBeoRL!jf_X5s$VLN3udd5ws_b=d;5LfwpK=F==5_du=T>b#N%&&)0+FJMNt(W40A8 zOmrvhM-S50^}TsP_(5<6?GRCl-6r?UFO`}!@yD#$<>YT-yUWJllkQvpE!AB z@l&T8J!3VaD-e+rl3|TmeEqmD87|kT>ybVstHqK@_cM;IWL@RH2U+#{FVLCre~gsu z-+-9A%cO)9idqid6NaQMh3lukAl{Co1HwyMN)!pS4-VBO|RD(C#nbGsI;3hcN#oN_n^}1hQpl?X1h(?+2TZ+#R|`=#oDW@G%Z1pkB?(b-EG$HxUfl@%9t3SfFa zLHuu9g>^yDsBpNua^wUzV~i#>MT%G^1Y8G(q^`;Hwv5BH<>+ZfP|19)K?GBo%&*>z zqSBo%Fcnc02T;9q?qYBD(9-G;{7}b)2a~i~oT$S2jXyrtDgWhAU

jWM@$8gh1eL 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 literal 0 HcmV?d00001 diff --git a/docs/en/ml/transforms.asciidoc b/docs/en/ml/transforms.asciidoc new file mode 100644 index 00000000000..9f8fcb40187 --- /dev/null +++ b/docs/en/ml/transforms.asciidoc @@ -0,0 +1,611 @@ +[[ml-configuring-transform]] +=== Transforming Data With Script Fields + +If you use {dfeeds}, you can add scripts to transform your data before +it is analyzed. {dfeeds-cap} contain an optional `script_fields` property, where +you can specify scripts that evaluate custom expressions and return script +fields. + +If your {dfeed} defines script fields, you can use those fields in your job. +For example, you can use the script fields in the analysis functions in one or +more detectors. + +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> + +The following indices APIs create and add content to an index that is used in +subsequent examples: + +[source,js] +---------------------------------- +PUT /my_index +{ + "mappings":{ + "my_type":{ + "properties": { + "@timestamp": { + "type": "date" + }, + "aborted_count": { + "type": "long" + }, + "another_field": { + "type": "keyword" <1> + }, + "clientip": { + "type": "keyword" + }, + "coords": { + "properties": { + "lat": { + "type": "keyword" + }, + "lon": { + "type": "keyword" + } + } + }, + "error_count": { + "type": "long" + }, + "query": { + "type": "keyword" + }, + "some_field": { + "type": "keyword" + }, + "tokenstring1":{ + "type":"keyword" + }, + "tokenstring2":{ + "type":"keyword" + }, + "tokenstring3":{ + "type":"keyword" + } + } + } + } +} + +PUT /my_index/my_type/1 +{ + "@timestamp":"2017-03-23T13:00:00", + "error_count":36320, + "aborted_count":4156, + "some_field":"JOE", + "another_field":"SMITH ", + "tokenstring1":"foo-bar-baz", + "tokenstring2":"foo bar baz", + "tokenstring3":"foo-bar-19", + "query":"www.ml.elastic.co", + "clientip":"123.456.78.900", + "coords": { + "lat" : 41.44, + "lon":90.5 + } +} +---------------------------------- +// CONSOLE +// TESTSETUP +<1> In this example, string fields are mapped as `keyword` fields to support +aggregation. If you want both a full text (`text`) and a keyword (`keyword`) +version of the same field, use multi-fields. For more information, see +{ref}/multi-fields.html[fields]. + +[[ml-configuring-transform1]] +.Example 1: Adding two numerical fields +[source,js] +---------------------------------- +PUT _xpack/ml/anomaly_detectors/test1 +{ + "analysis_config":{ + "bucket_span": "10m", + "detectors":[ + { + "function":"mean", + "field_name": "total_error_count", <1> + "detector_description": "Custom script field transformation" + } + ] + }, + "data_description": { + "time_field":"@timestamp", + "time_format":"epoch_ms" + } +} + +PUT _xpack/ml/datafeeds/datafeed-test1 +{ + "job_id": "test1", + "indices": ["my_index"], + "types": ["my_type"], + "query": { + "match_all": { + "boost": 1 + } + }, + "script_fields": { + "total_error_count": { <2> + "script": { + "lang": "expression", + "inline": "doc['error_count'].value + doc['aborted_count'].value" + } + } + } +} +---------------------------------- +// CONSOLE +// TEST[continued] +<1> A script field named `total_error_count` is referenced in the detector +within the job. +<2> The script field is defined in the {dfeed}. + +This `test1` job contains a detector that uses a script field in a mean analysis +function. The `datafeed-test1` {dfeed} defines the script field. It contains a +script that adds two fields in the document to produce a "total" error count. + +The syntax for the `script_fields` property is identical to that used by {es}. +For more information, see {ref}/search-request-script-fields.html[Script Fields]. + +You can preview the contents of the {dfeed} by using the following API: + +[source,js] +---------------------------------- +GET _xpack/ml/datafeeds/datafeed-test1/_preview +---------------------------------- +// CONSOLE +// TEST[continued] + +In this example, the API returns the following results, which contain a sum of +the `error_count` and `aborted_count` values: + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "total_error_count": 40476 + } +] +---------------------------------- +// TESTRESPONSE + + +NOTE: This example demonstrates how to use script fields, but it contains +insufficient data to generate meaningful results. For a full demonstration of +how to create jobs with sample data, see <>. + +You can alternatively use {kib} to create an advanced job that uses script +fields. To add the `script_fields` property to your {dfeed}, you must use the +**Edit JSON** tab. For example: + +[role="screenshot"] +image::images/ml-scriptfields.jpg[Adding script fields to a {dfeed} in {kib}] + +[[ml-configuring-transform-examples]] +==== Common Script Field Examples + +While the possibilities are limitless, there are a number of common scenarios +where you might use script fields in your {dfeeds}. + +[NOTE] +=============================== +Some of these examples use regular expressions. By default, regular +expressions are disabled because they circumvent the protection that Painless +provides against long running and memory hungry scripts. For more information, +see {ref}/modules-scripting-painless.html[Painless Scripting Language]. + +Machine learning analysis is case sensitive. For example, "John" is considered +to be different than "john". This is one reason you might consider using scripts +that convert your strings to upper or lowercase letters. +=============================== + +[[ml-configuring-transform2]] +.Example 2: Concatenating strings +[source,js] +-------------------------------------------------- +PUT _xpack/ml/anomaly_detectors/test2 +{ + "analysis_config":{ + "bucket_span": "10m", + "detectors":[ + { + "function":"low_info_content", + "field_name":"my_script_field", <1> + "detector_description": "Custom script field transformation" + } + ] + }, + "data_description": { + "time_field":"@timestamp", + "time_format":"epoch_ms" + } +} + +PUT _xpack/ml/datafeeds/datafeed-test2 +{ + "job_id": "test2", + "indices": ["my_index"], + "types": ["my_type"], + "query": { + "match_all": { + "boost": 1 + } + }, + "script_fields": { + "my_script_field": { + "script": { + "lang": "painless", + "inline": "doc['some_field'].value + '_' + doc['another_field'].value" <2> + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test2/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] +<1> The script field has a rather generic name in this case, since it will +be used for various tests in the subsequent examples. +<2> The script field uses the plus (+) operator to concatenate strings. + +The preview {dfeed} API returns the following results, which show that "JOE" +and "SMITH " have been concatenated and an underscore was added: + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_script_field": "JOE_SMITH " + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform3]] +.Example 3: Trimming strings +[source,js] +-------------------------------------------------- +POST _xpack/ml/datafeeds/datafeed-test2/_update +{ + "script_fields": { + "my_script_field": { + "script": { + "lang": "painless", + "inline": "doc['another_field'].value.trim()" <1> + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test2/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] +<1> This script field uses the `trim()` function to trim extra white space from a +string. + +The preview {dfeed} API returns the following results, which show that "SMITH " +has been trimmed to "SMITH": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_script_field": "SMITH" + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform4]] +.Example 4: Converting strings to lowercase +[source,js] +-------------------------------------------------- +POST _xpack/ml/datafeeds/datafeed-test2/_update +{ + "script_fields": { + "my_script_field": { + "script": { + "lang": "painless", + "inline": "doc['some_field'].value.toLowerCase()" <1> + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test2/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] +<1> This script field uses the `toLowerCase` function to convert a string to all +lowercase letters. Likewise, you can use the `toUpperCase{}` function to convert +a string to uppercase letters. + +The preview {dfeed} API returns the following results, which show that "JOE" +has been converted to "joe": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_script_field": "joe" + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform5]] +.Example 5: Converting strings to mixed case formats +[source,js] +-------------------------------------------------- +POST _xpack/ml/datafeeds/datafeed-test2/_update +{ + "script_fields": { + "my_script_field": { + "script": { + "lang": "painless", + "inline": "doc['some_field'].value.substring(0, 1).toUpperCase() + doc['some_field'].value.substring(1).toLowerCase()" <1> + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test2/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] +<1> This script field is a more complicated example of case manipulation. It uses +the `subString()` function to capitalize the first letter of a string and +converts the remaining characters to lowercase. + +The preview {dfeed} API returns the following results, which show that "JOE" +has been converted to "Joe": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_script_field": "Joe" + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform6]] +.Example 6: Replacing tokens +[source,js] +-------------------------------------------------- +POST _xpack/ml/datafeeds/datafeed-test2/_update +{ + "script_fields": { + "my_script_field": { + "script": { + "lang": "painless", + "inline": "/\\s/.matcher(doc['tokenstring2'].value).replaceAll('_')" <1> + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test2/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] +<1> This script field uses regular expressions to replace white +space with underscores. + +The preview {dfeed} API returns the following results, which show that +"foo bar baz" has been converted to "foo_bar_baz": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_script_field": "foo_bar_baz" + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform7]] +.Example 7: Regular expression matching and concatenation +[source,js] +-------------------------------------------------- +POST _xpack/ml/datafeeds/datafeed-test2/_update +{ + "script_fields": { + "my_script_field": { + "script": { + "lang": "painless", + "inline": "def m = /(.*)-bar-([0-9][0-9])/.matcher(doc['tokenstring3'].value); return m.find() ? m.group(1) + '_' + m.group(2) : '';" <1> + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test2/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] +<1> This script field looks for a specific regular expression pattern and emits the +matched groups as a concatenated string. If no match is found, it emits an empty +string. + +The preview {dfeed} API returns the following results, which show that +"foo-bar-19" has been converted to "foo_19": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_script_field": "foo_19" + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform8]] +.Example 8: Splitting strings by domain name +[source,js] +-------------------------------------------------- +PUT _xpack/ml/anomaly_detectors/test3 +{ + "description":"DNS tunneling", + "analysis_config":{ + "bucket_span": "30m", + "influencers": ["clientip","hrd"], + "detectors":[ + { + "function":"high_info_content", + "field_name": "sub", + "over_field_name": "hrd", + "exclude_frequent":"all" + } + ] + }, + "data_description": { + "time_field":"@timestamp", + "time_format":"epoch_ms" + } +} + +PUT _xpack/ml/datafeeds/datafeed-test3 +{ + "job_id": "test3", + "indices": ["my_index"], + "types": ["my_type"], + "query": { + "match_all": { + "boost": 1 + } + }, + "script_fields":{ + "sub":{ + "script":"return domainSplit(doc['query'].value, params).get(0);" + }, + "hrd":{ + "script":"return domainSplit(doc['query'].value, params).get(1);" + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test3/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] + +If you have a single field that contains a well-formed DNS domain name, you can +use the `domainSplit()` function to split the string into its highest registered +domain and the sub-domain, which is everything to the left of the highest +registered domain. For example, the highest registered domain of +`www.ml.elastic.co` is `elastic.co` and the sub-domain is `www.ml`. The +`domainSplit()` function returns an array of two values: the first value is the +subdomain; the second value is the highest registered domain. + +NOTE: The `domainSplit()` function takes two arguments. The first argument is +the string you want to split. The second argument is always `params`. This is a +technical implementation detail related to how Painless operates internally. + +The preview {dfeed} API returns the following results, which show that +"www.ml.elastic.co" has been split into "elastic.co" and "www.ml": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "clientip.keyword": "123.456.78.900", + "hrd": "elastic.co", + "sub": "www.ml" + } +] +---------------------------------- +// TESTRESPONSE + +[[ml-configuring-transform9]] +.Example 9: Transforming geo_point data +[source,js] +-------------------------------------------------- +PUT _xpack/ml/anomaly_detectors/test4 +{ + "analysis_config":{ + "bucket_span": "10m", + "detectors":[ + { + "function":"lat_long", + "field_name": "my_coordinates" + } + ] + }, + "data_description": { + "time_field":"@timestamp", + "time_format":"epoch_ms" + } +} + +PUT _xpack/ml/datafeeds/datafeed-test4 +{ + "job_id": "test4", + "indices": ["my_index"], + "types": ["my_type"], + "query": { + "match_all": { + "boost": 1 + } + }, + "script_fields": { + "my_coordinates": { + "script": { + "inline": "doc['coords.lat'].value + ',' + doc['coords.lon'].value", + "lang": "painless" + } + } + } +} + +GET _xpack/ml/datafeeds/datafeed-test4/_preview +-------------------------------------------------- +// CONSOLE +// TEST[continued] + +In {es}, location data can be stored in `geo_point` fields but this data type is +not supported natively in {xpackml} analytics. This example of a script field +transforms the data into an appropriate format. For more information, +see <>. + +The preview {dfeed} API returns the following results, which show that +`41.44` and `90.5` have been combined into "41.44,90.5": + +[source,js] +---------------------------------- +[ + { + "@timestamp": 1490274000000, + "my_coordinates": "41.44,90.5" + } +] +---------------------------------- +// TESTRESPONSE + +//// +==== Configuring Script Fields in {dfeeds-cap} + +//TO-DO: Add Kibana steps from +//https://github.com/elastic/prelert-legacy/wiki/Transforming-data-with-script_fields#transforming-geo_point-data-to-a-workable-string-format +//// diff --git a/docs/en/rest-api/ml/datafeedresource.asciidoc b/docs/en/rest-api/ml/datafeedresource.asciidoc index 65d3af78176..17c6ee7716b 100644 --- a/docs/en/rest-api/ml/datafeedresource.asciidoc +++ b/docs/en/rest-api/ml/datafeedresource.asciidoc @@ -48,24 +48,8 @@ A {dfeed} resource has the following properties: script fields to the {dfeed}. The <> in a job can contain functions that use these script fields. - For more information, see {ref}/search-request-script-fields.html[Script Fields]. - For example: -+ --- -[source,js] ----------------------------------- -{ - "script_fields": { - "total_error_count": { - "script": { - "lang": "painless", - "source": "doc['error_count'].value + doc['aborted_count'].value" - } - } - } -} ----------------------------------- --- + For more information, see + {xpack-ref}/ml-configuring-transform.html[Transforming Data With Script Fields]. `scroll_size`:: (unsigned integer) The `size` parameter that is used in {es} searches.