From 3f29f6a9cc9aa3f6aa318e134ee2e047595e5337 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Sun, 19 May 2019 21:31:36 +0800
Subject: [PATCH] spark
---
README.md | 17 +-
code/spark/spark-base/input/wc.txt | 2 -
code/spark/spark-base/pom.xml | 46 ----
.../src/main/java/rdd/scala}/WordCount.scala | 2 +-
notes/Spark-Streaming与流处理.md | 3 +-
notes/Spark简介.md | 97 +++++++
notes/Spark部署模式与作业提交.md | 246 ++++++++++++++++++
.../Spark单机版本环境搭建.md | 120 ---------
notes/installation/Spark开发环境搭建.md | 175 +++++++++++++
pictures/future-of-spark.png | Bin 0 -> 353968 bytes
pictures/spark-Standalone-web-ui.png | Bin 0 -> 37865 bytes
pictures/spark-pi.png | Bin 0 -> 42525 bytes
pictures/spark-shell-local.png | Bin 0 -> 24786 bytes
pictures/spark-stack.png | Bin 0 -> 20310 bytes
pictures/spark-内存不足.png | Bin 0 -> 30642 bytes
pictures/spark-内存不足2.png | Bin 0 -> 19769 bytes
16 files changed, 532 insertions(+), 176 deletions(-)
delete mode 100644 code/spark/spark-base/input/wc.txt
delete mode 100644 code/spark/spark-base/pom.xml
rename code/spark/{spark-base/src/main/scala/com/heibaiying/spark/rdd => spark-core/src/main/java/rdd/scala}/WordCount.scala (90%)
create mode 100644 notes/Spark简介.md
create mode 100644 notes/Spark部署模式与作业提交.md
delete mode 100644 notes/installation/Spark单机版本环境搭建.md
create mode 100644 notes/installation/Spark开发环境搭建.md
create mode 100644 pictures/future-of-spark.png
create mode 100644 pictures/spark-Standalone-web-ui.png
create mode 100644 pictures/spark-pi.png
create mode 100644 pictures/spark-shell-local.png
create mode 100644 pictures/spark-stack.png
create mode 100644 pictures/spark-内存不足.png
create mode 100644 pictures/spark-内存不足2.png
diff --git a/README.md b/README.md
index a649ab2..8da6808 100644
--- a/README.md
+++ b/README.md
@@ -72,13 +72,12 @@
**Spark Core :**
-1. Spark简介
-2. [Spark单机版本环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Spark%E5%8D%95%E6%9C%BA%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md)
-3. Spark命令行的基本使用
+1. [Spark简介](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark简介.md)
+2. [Spark开发环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Spark开发环境搭建.md)
4. [弹性式数据集RDD](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark-RDD.md)
5. [RDD常用算子详解](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark-Transformation和Action.md)
-6. Spark运行模式
-7. [Spark累加器与广播变量](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark累加器与广播变量.md)
+5. [Spark运行模式与作业提交](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark部署模式与作业提交.md)
+6. [Spark累加器与广播变量](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark累加器与广播变量.md)
**Spark SQL :**
@@ -172,4 +171,10 @@ TODO
12. [类型参数](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Scala类型参数.md)
13. [隐式转换和隐式参数](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Scala隐式转换和隐式参数.md)
-
+
+
+
+## 十三、公共基础知识
+
+1. 大数据应用打包方式
+2. 大数据常用文件格式
\ No newline at end of file
diff --git a/code/spark/spark-base/input/wc.txt b/code/spark/spark-base/input/wc.txt
deleted file mode 100644
index b97f2c6..0000000
--- a/code/spark/spark-base/input/wc.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-hadoop,mapreduce,hadoop
-spark,spark
\ No newline at end of file
diff --git a/code/spark/spark-base/pom.xml b/code/spark/spark-base/pom.xml
deleted file mode 100644
index acf4894..0000000
--- a/code/spark/spark-base/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
$W+TYMaku8+&d3?$$U@Nk8qZ4|(be6sm#Y72=(!M)WZ!esVf zE1Gjwwj??TR5C^y0C_81%iXbYui!Dy`s6;Y&5^Ix1)GeRNY2MkUQf+%Q1;2zt^FnT zu7-EKPO{#LBMcV3lo4)csFdmYS_vvl&co4Ic9Ht@j()RnajjIQ0m54t1(r<1F$j6$ znnSlOYK7qrXQ9LXGr6ZX=E_GvX&469WdK)$G09tx4I2O~NP0mb0U&1)_&42J!7!%f zZ~{%R12`2>t-{Wq%Q@I7B+4754ob22;;ezH2q5IFh}~)35C5ZT{u&nN9!SQNd`mSM z+UR$7YA;#YaJ^%DoDL|vsnX{=&1@deU{BB`sBzdx1=U}q2QV$s|!d1ABrpaC7+hm;p zT10`;(BG|a=W5%#7O3~iP$#SYNOotfH+Cer7t^{G6Wl8)i7pe-trEs>So%0%Ip|sO zCk{->Q86=P?*QNG#pYxT`={SzRVL?0!wxp`=~K?0J8uWqsv0IORsND}(87EA6gi9^ z`0V!ia7+7E57w4&B$a8rb1x;k3kV4>nG`E!+JEN=z*Q{dnxlq6T85p7HW% w zVDS{%dd*m7Wl*R#-7DBglv|3fC1T^)ua+3hH7|2`2r6DXLgI7dv>LNXNRE5{Rpiy1 zHB@(3Fw$ db8B?eX*xy2wq8895A6CJ%`crha+{5i zL*4u4EZAXdvy+vIxxT){QO=p6Nu#Q!M2i#(X!R!87}JA%w5}V1FMg&SopA?wvn&`8 zck=**QVEtcdlbUV3wV^%>V?i4g16@}P)2B3M2j*3&o3DOGQpc5!VXn-t=Ox{WI(k1 z3TjY*JvUArtaJ73vXBO7Jyt ~ zj+8WztVQGrpnu2Hj$mD&$QXNIk#Hr77ss---zn0}Yf zrIsS@xK+OSA*=m6V_GZewpgCk*3PD>JEym!WFhhEMlT^ZFF+#eM>14eW;<|qJ~UE| zS< nnljTIoMos9V==|1 %o7FH5 zTWF~l_}86Gpq-{N3$%IADn)Z4#6O_vSL_!rs{u@1l0qLdbawp02f31xPiMcboN)H6 zOFH^C0eu0%A_Sll!Y1)^nU`6l@TX_N y!IsCn28-QMc2ulEj z?1QiFbAnAG_*xjpPf%6Rho+TXnbvjD*8vf03j^uv^?SX_-6r)%jgmz*W+OjrvwNz& zx_*94Yu>*%K-%zxTc~u%mn&J3@GM2V#tY+RS%K}fX@K$LR1;-THq}(DGWNSMA4gTu zGN>+i-wm`F^+tk}rP6)abYP^-m@u2_7K5Y=^#McdsuiOsr{MsdW~5LiIC*I@VkE&r z+o)0#TjJ#P-SPWuQ{B!Mp5~61 5O{AAo-Z^Al6V#9V#(OwZ<;o%e8V zhO_-&_qXEP{A!>_^zXVA#e~2=y0|&oGc uCIP=D&rMeg$oo3#b8AoGPG`)NQRN zE_)KR6fOXi2Iqjk8R4my8cl_JQwDKBFeUS=kzMG_WSgok>_hTtFTC%XbsBrWHF8+t zj81j#wuki83f#UmWEn)Ao@ibE{0>_U>A@3X;Kg*Jk#wP#Rfp(M;~bE_y4|z-eyp`w zgO8e#R=Y$ID-(!M$MDdE+EZzBLAtF7eXY`aFU_B$o+T&S+vWCdBs>&NUD}O%@A8sD zUtY%|0-9`b93SjV*{u}uMU~^-EGdTqbT}HE45K_<< J-_A@G7nO<-iv%c!> zU|VG7Jb!2pbS%^ys`RAbzq#XfyG<+Vs~?Jc6)?@bb;{H%$OwXZgJVF#wWJkKg!wCC zWF*U7Cd%!p@Yvg_88S^GqvaK84$6(&!NIkohg4F?PV8b7SdquuL-UQHUdvjnP oO7 z9aL+kiwbZ63Z1?j@dx16_6GoPRYurW?~F{os!DABBgA>3Kg|_1+LLnjs{+y+@w$C@ z_$$K=Oty7k;Aj4y33ry?Rz3g+(ihIxj!2djCDE$x+aIMYo$N|(8lf9<@7S07{1k=! zXgoaBH `Pgh@y(M52E3_Px8Rot|zRLOt zaNaYnDWEc88+f+uh~%}T&-EXW)f~hm?mY%5Y848fo$BavNLFUH%ZiDD3&hE8$t#a}(_M_%s59pP+B~z{ zKLq)p=&4!C%eH}Ph6^src0xZMZ=hRMQ6f{I?pdMRcLKq_XOWD#DYrxmd*G|SFUk`f z$q&HBajA$U`B)`yb}0ei?Stf1L5J+7t`h~^0n9b*>-V_9>X7FTO%5JKR;$heLL4gq zjV94OxHmJ9iRJJWpx#iIII$EC(C-3B>GqQb+Dj42h*jrd>1$`x{@?=|sf$))0~QKZ zcG#_-^<0ShgWB=Y9?Gc4wk5*0PPY7x#GfC{3_3(jAKxmxB99@vB2P5(X)QobtRE|= zddxG}PYUr#sZ}?eMvj{J4T-L*>Df!>wTkCeDA)=*sVoacZd9lwrKH%&D7eCvT{o3n zTa{g*3f$tH-ohW#Yb{>w!$rh{jTn_82mu1DZg6h#mPZllPJ#Y2?(wI~2*Hz4yzwr= zulm?MAlT%=a^j+3L+MWX2`lGm$7PbK;`7%~rfiePs!(6W!=2Ci)@6?HOL50lXN}V> zGW^$MHajoknSe%+H2;~gfmh0=OOO{n0!?82m&_tx1!D)R`N@&s<0TUxnVQq!o&MKI zS7>;hR&;`4pyC~~=kojZ%3@+*qf{Oye!GeCg?X4?)moj|QpbqVT0?KRB*5RjPil|F zi(TPk;x^V^3jyUuZ );M<&AeS kCUkCE}L}XE)Lu(Bol3;}L zsXiHUC5Q!r2~iswgs(}6ro}moLoGp#ZN^$!7cW#MkvWqH!bn7Jh?e{4WcMvut4U<} z4LCnLGz|ef(c(B`!0bV10-58vM|RO;bmUEZ+c&ypzYAM0unOc-|6({!dhd9QX>TH* zpZ=q%VLI=RDx7QgMAayuDom=;l92fEoNF Y8a)#M05|rxFU;9DyCal3*gpc+IXJ(YU2i`P3dW7az5C^?Oti$^@hcPR>#%v zx)&pagwo&Z&;zY)&&R6GaB9A_g#?t@ua1%6$vRizsj+Cp*w4u?dA37IO@~ijb!G{5 zq;ssO@&G+>InkA=>;M3c)G1ZrC5845#+MGY1Pbj ;1LZYdEj&`NNWmz3+~I0AyU`=-K51h%?59knBk;6Y%TCRRr+T(B@kqkC`=~$St5& zlP*mC|4{Yb(Qvlg|L`zcbfU$Kgpep9A;IXqMHeJ`v_v<04H=mz!RRe|CxYlL%IID6 zL>rw!5M9*w_MGRO@9+J`nx)=r+1K8mwy(hmIk*CC&$+h*&>B^~nR(XYL(Ql)RD5i^ zTRc7TdA^S>71;b$`qeRh6 8%vX{sTlxEOs z7?x5|qii#%9KZcY4)?lZ(CB$0 kLg@u(L``N3zWEU;FnzILkIOQoLL%V)Myc&lBuODnCHiqIvz!Mx{BYvSuEktl#0 zntf4b=-Eq=yg2*Wa=i+F{P$@0@n!9&u`V8i{fq95-zT^6LFo6h*WDQ3F8Sz!?W^lo z>l4@S(x*O8r9nMB_8GAGI8?N99jUIkKu~vugSrzzC5NZOd*2+L>N G{c5N9VU5R_o9c@3)7|$2Hu^J4KsP8}@#eCZtYILQwMH_C+WE^!<2wSBbxD>+pN_ zXJ_5*YW}~vK!m{u-6XHG-is#!s`^>wn}Tky-xId#HYpj^6A9q9vXQ&xwmxMl1y*6i zs*xFpFU&8IJtVk7;iKrR#PPt9-1jCFUoSFSS0~kmh!M+;@ue{!@*+)PON*xO7Tv)Q zI`ip&FskBN4_iDS|G>ww*{6a);zLQD8fgo@y-puo5y?bZ(C?OtzZ5Syv`4prEh AuTv}yFv?nvd7QNcT%OP3gTJc% zP)|NQ8Tgj7_n^I15;yfac(&ft>I9Sad8(3KLj$}cHLP&f|1z#ifFr55NQITj0!JWZ zlrodx?OE{`{>lQ}k|fT*;l&%S6;^!#zmRV+_U`fnsos^m3GUohDZ8I&XJZ83lPh4< z$Q?7pJ@YRfzkEBG#*&EVZK>AnZ#6I!W#7%O)pB2+$?N`;ODNVbnpe@lf+u*ooEpZ* zB^Zzj)p9nAb~an& QH-K=$utP$C4axEyZ1-S0ovY83Xyor;YF_Vb!FvEhUhCZ zUWQX}*W!O_>hB;gy7k}J-k%FRcO6lvq`h83yOxW6Ba%69(XAY{7Ar7NVuYkXiK&5t zP3m8|a+)m(LQ=+RCJTyF(#st^UjF 1PI;risK;G@dPm)0d&^M%8 il2%BAg$nJAZ{*ysB>PD0T_wbiCbEq2{J#r#c?`GTJ3URF2z~==Jo|)C6)f zmEY}jGr>GIR1J0VJxg@UB-=8?+g 5xD}D}*=)<6rd&8*uY{>`x)9fni4{#!;xSIGJ>DJ +d{TzKT_?-m =4mD)znJy7B2pu+s+ZLr4l-kvyV9~QY&&Yd!Uu&vz<*}3fAMXY0 z#Z5#ZSSdJg{Zzj@bl9aMCV`dj;bRtJR;36h{Ss I(pJGFLAmP8oHrkLsG+j&gpPidvB zoj17q=xLhz?2{G;@mmrFwM*sVPeMKlf-eHE V;bgXwC>+i9wZd7Oy!$GI${Wr>ot=|-usLBntahB-*K4u;pn z0{GFtFVGG|;NW3+ly5sM7E1=_F9_ME$%ehP!9%lf>G%^k%~Gl=)VVy{e6{BD(S JSw6Hs{#`SJ*Dq;jmof44kdQYRijalxHZ}v&HS8PNcf?g zLU*uYCrJ#ekC=~cZWOqQ>#7wa!PO-#NY15u=b1gWN7^wbIQ)-ON)jVQ_j3map7+Q9 z4nd(7MgpOKUt>10s31G`NGA2vvXQ)_=(my>R~LS_-M3iGrG7U#3~I;+w6_bh_E*@~ zKi>Eo{RVcwrxyKY&W@+QR+o nDgb5*^{W { z4--cb7$uWnT3%==!!RVNqk0>^VNs@1In65@mTD1}YGE@am^@6jZY={#H3y36al4QL z?wsEAL)^ozQNhJ9!(g7)3SDcKI@IKc8Ee{#GF|NbOvsZI?GFbA1g%}sRum^eQm~FF zckm%WJ !jl%+EdQ7O&35-S@DNmPaf&`(=KRcp%h$sQn4sT z)j}76k2=s--H#>$`btP+uW ?k;Y?-lpziN77jp!rhUfvZhdEaHM;fO1QX_^}U(@7LHI0 zDH!@6P$dMnU_3lad1KXguzt@8;x=yL+G}u-TVf%*9zkX-0%`CNaNGI^Wf4-`psd#T zp&*|zq+!9*a?O-*YIVhzVZq>l<+#$R^p_=1)RGFvjar#PW_h14$Qt>-)F)pO3Rgz% zAL>thXd_0c1y-xoS09I~RdS`|ub23Xz$dEu3=H!}n5rvgChC{RK0wC~xSNC>Z~oNkr?L{5q&t8iqCt79WVu=?wYy1;?D 44+idF$|qi z53}?pu7|nlq{s|%io70%;5k`O?9=dlz(gH Ixa7Z)xd_3r0u4P $(U$*e7wNe?0WMOz4T{Vq^Wm`ho ))8S^X}lG=Wn-2CPPV^pT}Rq z4#FZzt<`U) F{vzLOUc8xD zX;k+mH>W6>BS+=W`YjC3&8TYJ<2w3r6q+Ti#Yk$&g1%;CLuU~I&jIRA@n51I X64+#|Nx}1^(52K||j*VMei&%0BHAs&Gm)i> OM#zYLNs8;5H;gj%a> z^=l6tDnz95I{iBBUyHN1tAo8Gn$tXjWQ)mDLl`4JKRJT5=mWmwLfyj=6ff-@!fV-} za1+Dq!>U)$m}^9)S>&e{Svw}I_7wW?wgoix^&m2sqQ-unpY@T&e)w}bN3h$6LkA_t zWvgT|gSXVRd{#TE%#4)w+#CZudJSc!8y^By_Sc^z5jNmb1n1m;%$IB+Z!XhjAv?^2 zD dZ*CJa{jr}KeTx4Pa1mm&Kv}(-)%Q(bS_*{Q2Y=?`X4SSr=;M^gXc#5S zub5eeDlkmrn?~5%OCk#sZN7Njk6B?>dcc|Q{4La==sq8Lh4bktflpf(4sEwyhE|SP zuxuxv{rH0P&LttmuH?JlWrrKFT#x$y#{Rb&qyLA$*44-#6Hd<6`?>xo9UFTQiNbnz zj2z3we*1BG>R!E8umxO+$n<-ss-k80*JgC(*ll3Crb_Cb5?^jL3{z0bj{M~MX{X-Z zz3b{CTr`p}W&H!oA6)DZaroP{z$sv3#F*;=GhwjQVxfdQFH`~P!^t>b@3Y*{jhz#$ z>8_q8HdOn(R&X$>HqzxXWS~8zYWU`jpMjNYX5dk4Qb^Epuv&E_O B~pl;$(c+Y+u2bTub8CkWM{J_#A7g`I!auSpYGYEX_#+z91 z3p^JkdxkQ44*!K8x=-_dBx8vkOZH_R;fo}NesshF?QI0&I-Gi6aTM~RWlsYqB4Y!_ z)}UpP53`lg*$Z-mQ#Md3(Q<)=N>4c^r1KjN_N(9eAP@Q*z4n$)do4_v^9Pg7*93J4 z37jF%3iOIpxv@cq4wSXgDW8Jk0>ci76M2l9U3!;R@zFw3&k$V*Q*e)rk|m{A;KCme zHy_JLYaJigW2kET#}4eLw?1Hbt_m@H(KHE_@q8j{*(FBw)3w#X!QK>6Nl8)9*2cy_ zVTKU#m4z;EZ+)Sd;?yZk#K1tZgx@hgRG696{ ZuJ)euSu1@`qK;H+t>v?^eQNUHcOW_K6ZvCq z67CO8hDNNG%b>1kn%f$AT+zRT%%FTM9J;q6h=@p!4({!e(Gv2KQ_O2w>)ere`>QM( znYF|m-rjVrL~#-r_}BAPvhKfV?tkh=qc`8=M01^ ?5-b)*Zoe`L(gmtB>mocn*L z%Y-qH3YAvQ{p{M1ktu%R7j5G7R|Q1JAz_0E1Fw qS zRyvxL+W9N|Y&0VAk@dtV8 a}N`U8 ptoJ(VTtkRM_-GWO^oISY6X?{(LX2lGX~4Cf$G{J8_AHFB{+oaJ=k8- zMSyq6)`dV&V19xW4~e@Ou&@MSoHbB7hJq>ivPPQ%9$-=U z6~dhoNgWVtb*lcG!u@gx7^JB(tDJ&dP0@J=Prt(&rQic2QjIKKOMtB~NK7jOTS>x+ zNY>PCbarTbA)ej=5s=1nQu4`}eqF!x&1hfKG57PK=StWR17X45kA=K``b0X~w*%>1 zzAr5OKIO5mTFnL(KMi;V-oIsf+geG#!NpmtcmK_!#7y2dL$i0j#Ku}Yl=~=0KoE4= z#>>LaJ3vu}ODwmL0cu7lN7sGiD5FVOqxsGFkd%SDj3h3}a+R_a=P7H8sRW}Q9Z&D; zD$4+9h&U*WTaW+V{9tbe$u{ARB Ug68uU@#Y zd&Lize^`%?Nf*+B##<_ylsn52EHZqMxy0={?@@^7GhqcefR?2ai9rzovghPX62p?e zJZB;X-QC?UKCS*oEAdWg2g>aqQah9(5fprq@iMik(#GLvpsEj{#V-1b>1?AC`TpAU zT5*@@6x)>Z+TUq2MMLBLN$1qPmLlsjHCh034ne2@wwrtbQP{xay|bx$;waYh**7!o z;8w|T_)FJ5gW8{6JEu`sT}a>D0Px4a=Ng{f+3GgDTt3dRc%p}q6!s$gmJ58w{jP&m z@r++%8{QUdSFMW7)vry`^H0*-^IHk1c}!LRnk(4NaY#}7ahKDlX+%mc `t+&QWDeP`;u0C>V`e6FiO z4#Vq+-H-}-Fd|?8=P+T(p59cDQXTB2kis{oh>Br|6Fl=-Ac#B!W)M795kCyqbX5*< z0zUTPW&@YVIG`J%=VKDQJxqnr4hRgwpVd^N9)@-}{j}E^(*Y5bh`}U%JxI@KfHeYV zXO 0+1$zh`b#+HZ3U!fI$ 1qn4b^D9-X!Xkh+H4+%3a!78(p3f{*vg1~cd5NMB*bAS#ly2P#!>yBij z<6MB0J&|Hy7Tl*BB+M?ilxL}_e>X8o`!#{*iAhDV^ R1r1swp?9YXy?=qVzFOn{H0`@gUhkZKB9A4vFE=WUGn#6*;Je#r3r$TK zjkPCZC*<$0u3Dd5`C$87?p}5)vfo))aKfNtan_H7gu)9ovjl07FHYn*Mg0WaE^yKY zozsr=(+0H+XVQ)Zf36P-Vx1|#0gN1?tz5UBIT?cQl748HqEtY-99*PLJtG&Xc?5TK zZS6XaL#-tZ70FnE!HV&;!opnDYLRvhHC5L2-SgdEs~^6QQ-&}Ll2*veGYB3210Wt| zRFt`FUsduQ9D69ujSKiaJ1Rgou;7r7WZd5%Q&k*>^lmYJhcS*pN>?zM(=@!$Z7Fz9 z^ch)PK}VE7K$DZT3nk@oq0s<4_K|%&Ly0c0b7#PTX2RIeiOSTkKt8@N&WajF-PsszFw=4b zzF8+PGZ7D~pziO{I*Kp 522Y6F(3+P zmY5PH^#WVj(&97Xt^Kn1f>{1&qBm_ro)jFg*t(p>xH`+(93un0e>7m;4&l9R|ib zZ0@WGVPMMdPFK^5|^%zUD3~ z`1_9M=#Kr_>f{g1{C=%xt)Eooa*n6xyNk!52=R=T$SL+UH2wQG03Gs1-l#@n?*2I# zP;}4>3PQriZi3^@LN1nDWs9P}q3ZfGI=}SdVb{&}r^5xbiK;*BzBtJfJyS&s0%ea= zFU?Chm)&ilM$!M{cNp2cdCu3W>L-<>sU!NYvSjkS50uj;gi9v8AE^l!=~fL!)|52~ z+hn^O-De;dV>~Z`asE&Z^2vlADMYbB0UfDFo9;2&&n?s)$dJeVm$H-jrq4ma_UZxt zInU~0g<^R*Me}+yR9FImf )QFAzJkwNjC>N-kXBESvh6~^2h5P1jr_o2D4 zY23Mxhi=F^6j3Hbg-Q34Ab+@cUQg}}H7w5~?@CN&d&9~|RGE3UKl*|}!I>}@`#j(F z#94?4yjoa(EA3X0Yy%8oN91Es^AZF_rD*#zEfm7Q(4PZmWbqiv9n{w(Q@$7sk*1xt zzdGDhEWY0)znie*@2B^4m`yR?WBc by)oyfXYa2 1Cl36KKA%d?k#7{Nl8~XR4@Kg4-TE{HjB` zCV=e2Oh^b>EG=7yH~^`u?eK0Hwa?3bV7x1l(|s1sxGe5c^^?e&hc~B-jF5rl6(A|K zi@fv~tb3MDl}^7C)NL+mfxl^X2Uqlhh_E#R;Ys<63ePtfrp1I-WScNs6SllXA{Bd@ z%U~^x%^Mm3Jw~?C+xk*55Kim;aa*}8$N#c~=2N02ocKa|4@99jA0SRhzLgRuvPk{) zze*LR`F{@0L2yWUbLrKhU!j1b{ftgpqW;}`K9(y8@w6HH+Q0r|ukI!IpQ>-nW2XMJ zz81XLev%>qkm^Xx+ >lg z?s@l{;rH)~-;g3RE|3%#hghZva{7I` Lz_9@kikImRuVwc%6`)?^{mNk68?)|MXJSYJ<%Z_mJ5Wh2@ZoOMj!@lPvvfO zt+fkf?>;z#(EX3@tVUmM`F?U7CvuY&EHGsZgRM|D;2_!+>wlBEAwdygIq~1aK)5NV zii m&a-fzK8se27Tt+7-xg!F-mdXqI+DQjdFx7u59<)_Rf%Dp^HR z9jld0GgiXoE3a`PijzeP8 ^jeEc);;HF9Xc0=w+`o+kqYL?e(J1Tm_APU?-Bjb=1-kq!bP&CA=H4ZHoN$Glb94 zF(+sNK}fni=4l$)jP!{(f;O9Je+jUB{cleP^tAu6#0yVF8|&fu`pevlfi&Y8+k}-2 z6_n(TsIBKoO^SoR-ob?8S4r>p6NJ0PKG$iwyG@m6m!6Y;r$c9v^TyY`z7Pp-&zvNl zjAr)W8|$e=BG$>|UaMJ*UJ$d8Q?GWt_mP1@*U+T8VsWvCq22M+#&I~KnULSC&N=B% z4Xh8x-R$v4`2-|r=^1O@D7oe7_^nE-oiez)a*p`diMScPM18w{fn;JHG3ekA17Ig~ z3_7as;A!p7$D>>CI+hCy>DGpYne>P;ESMse)x_VJeXh(YnpxpVYju!n!P)C#lYtFq zk8;M_YKtH-2wyN(;pr@7JVRzUh+6}vouvc9zc&nzLpO|&g9x!?#T~7H)}c7V01(SV zf>{U$Z~{WEXe#}YSQJr_nhn^8wOBK*fJP)!62Ko-r1}fICYg|7I3CHR0`r;nz$#~e zu&sBfWS@4Su>1s^$On8zmiCHn1cH%+TX#Rd3?g=tYRtM+Lx2g$Ga(g%t3?ZfrKp0n zxK|yJ(Wb?3MmB7iC~Oz)FeF_LZp2t%1pQ*9@oZw==7Qi)@Sp8l*6lgnTT|!y^Qi>kbwqugY7Y zUo&qJBE^c2=I1M|66g`yN7a!n&M-TI#aWlXSm71ok)vM-+@~Z%-?==a*g&>LOMrck z?+!OvwUmmVd2EansGLZoeLvd#xH0|JBJnO$!^zHUiD$vkobmU=%@B9tI`*CUudi!? zpCV j+x9rTpj?hAO~WPMJ1%^|LZ9VIhrAL{2dI9X?6|a;V9-t2vOX<=Y=Vf3P_3 zYlQ!E4lptQHwiL`jc>j4di{P?W_wRI@@L{~^0U7R@BaK 3&8H+NA9iD gK9}0ms~yB9KV)~PCgc|+ zoDG7dO4#`9;U-Rl5F9!^*@e(sH!jCs?h)48_;5dmDdZRL7{mtBkgIgkbvE>+P;Cn2 zmUDXqvVxI%A9^Fev236|PCV90!3{zlLbgLN)+?BhtScJ!Y#1{}?{O#Ot&hbgixqRl zFkfT`BopATlxJk)`P`tUJ?c54gdLR8`Kwt#P5DfCNdVyX`T9(l{kss%@L!qw=r0F- zY(DL`A8@+z+j{pEzv|QWcYxwJiP_)*hr*fX<1C~KfbD=k7Um^8o^Rx!lQOE;D7}Mn z?u&QsdqA<;#;}^5xG}}qo6py@_j0wj(h4G&I3(xV9o{=OFiG~wQLh+M!HZAS+1BYD zWoAFsZ1XdnX~x6eq_LRUUHNGb*c2~D2b7QSpvZ(YOTlFPfC{H&8Bd6ziH%DDao~_g z;s<(TWpVOwjF$hDBNZd=NxVB;z<_-{eq(}A?F~42-J!bu#EG<0zxh0`pn4+tsu~(8 zF&}tTl|oT!A)%opB$2lQ;NUdwLc2Y320||L@M*56l=sPa>6!?Su~Xj+YcXk}C)nXH zhUetQ#?zi29vkB|#)Rza z+ae;p+f}=>HQFb~#y%d{>95+6&BngOH97MO7z8^3`4+6h4}^}$VpZCeK90~r@ ZU>1b`ui)nIb^eXkg zKBj*}FP;Lu_PQwaMNZGVjf_{F9=Ani=)AkC)xLLm^h ET+ zOIcP@Jtl3q1)dxvKiby+{x*JN#Lrr=kn{r^6e}7a1wJ7>F)JMVDM;CE#w+f7nCmt; zWFk&JHIp$qm0n&hj3lNtK2Uaubum78I tHdZ zzDdnkdL+y<2wJ@=(6LqD2w#h L+vz!nlWD7sAF;;YS4JCF`Iw6QJD9*-d zV(Hh$YZ{42)_w`-HUq@83n2z?9o1QUz)NJwe>zLr=xSfg0hY`IH!42pGCr^x8qlQQ z$O6235f834pti??ecC58`m}FIf+7ftae`ZpDxCz;SLZd#z%$iX>1TuTv^s??ua?){ zH}#vYM9LZ2FqEsDF_^LtSjbG&a=|7{3T|{vwFIb8CT~v&x{zxZ%&R8ly_(&iZo_yx zSSgQ5gVHEO(;P9QnMGFVB1@NVx!&3!jqR#oG9 Pi ze`NtPCHvW%gJZS4Y~H*=OYg;f`T8)I3YWKEC&@?}0MX?kg&qe;S$2>E?rfO^A$Fk#5X-M_Qd^J2J
7RBigHwdIdD$?`?*ecS@WOw znXzv|tS# =S-ZG~}V-vK^mCfDs43wA5jWI;P+Wf3!I z?otRb?k3J!JB;#ApEXu|fwA@R8O07Nt*sp=++tklq(roaV;0r%9}n{&{{|HO$HTl1 z;|S`GOixVnsd(Et7XImpjKVniw&uF+gz16qwr7Ue<>qqmYrl6V{gICTdm|H1BpWYI zD2lGGq&r`|7d<#>Nju&Drr3P?XqecPP847tGX=X2XDi}2*^Qy=L7R|+Gg81V!eM$S z(~?Cgp9Q1R+B-D6Y&KTBd?#32COX&V6NxIFbyaQugv<}J3dM?Koil8aaY*xVC5aG; zW$vK`Nsj ?-pT{6cb+st_Czb?{s>uB9zZ9CB*)-AyB-lnrcpfVr@HT- ze>uLuZ=hn%BrC_O+8b?R>4d~!D6w4+S{;U6xCj55^-bt$w}ay`3->~6nd5ci4-VFG zrpsvZ3qjqpcU%yTH%6pkT&4YLjM|JKRP5aXc8_(~eV}Im0W~i^;qa7!DRBl2#X0+1 zfbQXipWwKH8bLv%UQZw9cjT$7cXhea4}lZP-Ou0JuXKD_F8Gly;=YF00XfHS2$+G{ zo3s!Faz5y%fAU06lbKk%;_U)@v>@+=neq$n=@)I;U9zH!v *DR=s+z%7Yx`t@TF2}WfyxTU&^(2o zG%#}}&q|vw)iu>^!xpcZ>~BL7(SV<1-}1)pgK$|yYi(`=c$D1gmEtc6M2yrGPBES_ zPgAQa=_V&F6LR+4(2M-3Yxo^ywqSOp2(9#Hi%%<3t;%I?E~n4K!QZ@%%-wtx7()_r zt8V>CUZBfb$`qj`Qd(F9(c>Nv#&?qLpxP20{Y0`h-{_Bw1_cpZp kmmJ8txO{M5!KmR?v5}32}Y9>ulqxYUMXMU8MX~ z_}fTo WT?C25&aV?nE5!En2(`@YVZ4v4Uj~C6x5;1-jMskTiJ?s z0n~sK1Rms+gPTtA={LY8pZkCrf|cQgHy&r`jGB~dAJ@c<154RpmJfTW %!9DFcT|pp`d>vrUe^=6(#)B*qSnE>js&F GpcX+kawf12mcJsfB11BX#ZUtg6z{*Vezr})k9 zis8;=1GaaSpKE+{2Qx-8J3+220)#Rl_^ZqaK@ktTNb1{G()NhYPEJ*|3ygTSzYJ^~ zh( dipZGf@j=g|n6L!?@?YTIE!&W&!@v5*A%37l^PMdI5M| zH;4J&scKhIDK?N0u=O=H-Fuhgxm`hm!?du}2o95y@8UXkw9?{4LS~4?lsxRSMbfa# zLSUdao(KvM4 K550~=c#{=PLHD25P$k%5p4)Ub@w>$WXruBHa)pA z6=GfliQ>jsbfs=+WJs)PNc?M>rTkxT&tLH{@~&e!yyiH~b2z}|BCG|szwYWNn4 >cM6pG&E&SB}*W+_K z-)(yj5BHMZem-%pOd<^OF77SDMu=CGRwJhrpJwg{wN1Nt5?xpf`(4MewW|0D?-KXC zmp6{@7{4Uk!M$zT7T!Ne&$<++l86(|kohN*hlrKvhKy{fK6tew`IUrIXq@kJ9huTi zs0xRH@DuFC0!Hu2EF_N!zgGG%s9vlyK3O|+p2Jz%st<^=m`lTHgu9Dr4!c~W;oNXY z^(>$5=du1Zn&ipFKz_5p4;T)e4V31yCg5l=18M!|hYAuP^6%)sJh{HIAu#I=MbhAs z*EQqtOtDUbQNV|z3L(&kiLJUMR5=zt;B3jCFMGFjzBu-lW*7EcG-$7W&m`c*w)`Ow zOE4nyn);j_3ggBSbj1#%`qNQZR5?I|s$9(CT>L-2SbgjBQhoj5ZHN#Cdo4DyC9OWt zm+VLdFFaJB(}zj9Tdob@%9mUBeps52|9-rK=MLn<1|P=eKg_xN=Jc1D&NZKHkCLku zu^bgw0~O?qdah?c51{i;Eq+|hv1{CW@=eIlL_bK4Nz(oIa5T73bE?^HE58IX>7ZxW zm~U+}V*Z;vA)@%NtCK0PwXU9)N|Ql@bU4HFF;@i7ogMw2C!1iSG(dc09#k;& zi zAem!_FNF6VheQGVncs=CBU6bnM;%@yAnxnryAf03=i^WdFaMg?9uUon>W)k~bXTxI zwn{ZUdbp`c^_1c)ac9_zVdWLD) Tm%Drbdoo@-xFgsp3z&q!)T zsVp@XCBW6ha;{CZz#;9eEQ*D(HAznbwi*H><*FP#)l@#qNnEK~2TMrWKy{XkWMpSU z@JrfqeRI!w_=7HF!A(;m;OZjbEdYv{k2C1qMi_Fuuk1rLuRZKo+EuXn_}2aPiD7 z$Jv|s?$O`O=M%Me`(7#WiRqMf$J&Dr72GqqFkYV=`RU+Zx2vQE?SfM0QAa+ zDU4RQAT~zSd+u1D1}~AR`T2?We428#QoY7+!f^v!jkVP`S>2ZFJKGC9MMD{)Zil8j zAD~s)QY1KKAWIN8mEOrA6IfVIDrEPx2OaV&D(O~q*_&Kd^|rSMbZf;XuSk`_D~hZ2 zp{}~LZ&s}k&QM_w>-kpkGG~C`dtc_eBV>j@zbLae^KX5}%nGc808xu%kq5VEh &4^ET3`T_G0|-eAoYM?fbo!tL9! z1XU_7>ist&MNFW?dNov5k$kSsTUKN4P1kkJD~MM&l8|C3UA)QW;LQ7Ay-Pi$Z7Zk% zX-kWhH4+j2L~Hd+uHoo@Ob$Swz(I#V9*r&7{?#3EJbr=(Ep*=kK4GskL$_B3npe_h zIVlP%>fV*xF@B3hOPa$FM-_R#Fx1}NKn4*e@`?0EhAaZ(18f@or!dN}77pa4{@eEH zZwmK63rvbc3)Uqzq)uf4z;?hz c~4>BX*TS>R=Uh3X9N|4 zt1IyajE=+&h;Zu_4RXF{iJrfoG>oFF5PQ%wo4N$VCGi@7$xvdDf{Or8l8wTx@tdTV zg}aGC-9iU?!>HH1&; 4T;v|)H zetH}yui+Q80Pl#}0Y3Es$WSb|DXq>juNrW1rPs-?sttzGKM{0%JeV517RUKyglxd5 zNUha!bzsOiuJYaL=(cFBNwdqwS_yCil!Izo% %t h2pDPkYv;`ffm_@W-a&vNh z^a58Yz8p&3s4U3h#Xou^5wJX~NFm)slmteT0YZ_qtg?!ts1!tyr)m;+TIx}s#$a=> z#qtbL!)NE;cr#(i`Y@XrjPt4W$@ueLyPqZXZX2WR!4#yHjb~td@rOU*CiA|ga7^1@ zDn7HFoFI?wi7&FR=*6@{L`2*@@!tk?-G1)U<3Y>0l3BxO3N^`o)j1F5qA^?kBl})i z&Yr`h;n3y_->v8 gS`uX0g|{+Im*1^$oy&Qtx ixE^Dwf*8L8b7;vV3Geax^}l-BT-T zbQoj;CJheIf$A}S!ctz(rU_d5TveIPU!|3%Mb7ADRNENjkLY0et=tDG3 iDT{H<_uILP#Z4PAa0?1Kc62RH(~vswzq4I(_# zX2w`cO6S3*J4;*uL9;H~gAFJS =zg-os2O@`53*+~5Gu6W?fW0_Z!DMZIx*L+}4A(n^7<`+Wk4*BY z+b{B&)Y?RyB;GD}7LamKk3LkWE>@$$cD;GB8k6V*5BJRzT$Rb0jw7L-W03AYXpb*4 zLkO#O8BG1@xYq&WuC9Kf3@iSeCeCVc9M^S|>4{EDk aKMN3{W{nmZ 3qDhar@W5VraAXO#UcpOL?-ypxoAGu|l4N hygMs$tx=6-+ljq6dhBg2t nFPoO1#(Q6HC1$F{E%&z-TeyjHeY&UAIkLO)O7t`%xs4AI+-GwzBiz+ z`G%|p;x|0Zlnn E)t=uIOHj4Z0s|wr)HLR=YFB;>ED)So*8mg2x$*L6t=4pU{LgP4$ zf%wG4Nu4|Xj7%C%bg3|U76C|kecIC&w;TaPYb5U-N>UHFxfRNFuuz~Ak_KC=XHC=C zs(&&Wp&R5JZOX!hQo^}yzzBeY0zI?}xY!FNUn27fBjrteRFEkw9|t6OM(#7e;tup> zHEni4iy6L`f(QeWz26rx{4*d% ke z6g=5fY6*z6o0DIzX0TNO{`xf_|AU0s+F9lxa`20RCP2>*`+%u4&4(2Qks#XDgkir9 z8>!!$14eaFUTLW#;8 #%}o)uKMK3nw4 z?7!XtE}~|@0`XVtZ&W7!7MDtmixe0ckNjM9_2kc=%blDh?)n~fP;tOYbzV2S{RLR` zP+XdX$3C`|mC$2%9zQQwzOmeX)qFgEg{My%uA=NijX(lP#WRZSvAkD``thTEy?4bq z1&=2uYhJ#bRQohzea5t@)qHlm``Z5i{~cr=_IEN1)%309r0oMfhj;6}@9&Stgd(oj zwo`xst)7t}Xg 3l%2+`pZ) z(h^25MmQHRxw$ZI?R9pzaOH3}z2BhvYqHRYo(JiB-lWZpWn2M!sCmcY9i=uc6|M+^ zRiC50+)swv_7PK3EhAO4)0-jHa}N`TP7-K8r%T|LXT?B5-$b@B?Tr^!;v@ZHT4k%s zk~#>O53DJXuf47mTJu9lIu#mVdbh=ySZG@s>+i8i$X_@Q=_XlKpB0y^s^8iY$#dif zL-W#17c%#0HZTZxi;}Oou%0F@T%Vk1U)fP$>!H{!e>(0yfQYk8isqvRIaTn`02biZ zU^!9n%92g8SGQTg5a|!U7==jl55s?vAdq!rBdO-=upjE~aKuaxT|YNu6ac;tR8&?u z3l)J788uwVO?DGjb)AX 5&2#6Ex~s{hQ=fp{1N&@>nN0mB-XTW4w@li50NzaLk|PQp 0_;bbe0;aDhbo1+klPMabWui|&(LJ&pd~$EP*7ZjO z&kXF_e3hfS&2z2Z&
@4_KydX4$=qEOZjc3v6=MX7<0AQzr zPY4b;7>JqGy#mZ&9H%-r$F18~@AG4xtBwB___P0~3IF3Tty9F*HlKDdThexA@IisR ze(r~ncO=a*rg-i-lu I}VKiFCb>KLJ8Dtm-2dD{I>Z5hS?3+ z8GBSHC?8%gEU$V>9giWRzlpRjG2=w+g+Y6o%7 jS0`7^^atCG3b7}F@p5{0~->=)q6n;_1F zd1+FLHg`2=?!2`sJe+nmC>N%g@^oK!FX+1yoK$;=Oqc8YQSH9!Qe4+zR|?fHPLL%4 zcX1lbvS8dxsQUWPyk<1t9*elGEF5k9bi_2=(oj&9SqUk31XKock6j8)5G|KZ3iZkz znl(a01-Ex{GA{O;aVwuckC7xko~^LBt%rK_>ap>66K!K{zr`i*@%&UFzYD-=1zhN6 zU&z3{Jjl;dgI7j670?(8w|oS7t4G-s5DReIS)4A-iOq3+1W0%Gh6dWYp$SDV7G|Vm z`+%aontGLSwS3-UXD^T=u8>g7Q}1y(J#&B&_c{gb_K$}@2M}&s`$!XfJ^ixbnCX`* zTGJGYHyNT3zbNI9xfI2qm}#vO5DGTt`l1~pHRE+2$+RtudzZXc3)$)f!rPdgo5+ie zwWDAEgN-^r***9{^e+vAQ2swOtWM_tW9uu!qVCpy2auGIk{B8hK_n!GP64I68wI3h z=#(x|8l++9?rxA2q`QXh?uPS!_Ph5v`@OESzQ8vISod1@{i_uS%wJ-^LDE?qtrS^$ z_;q{oY|@s@ETX~K>;}5znn(;(UVKd8w z$Jc$z3u8W|M4mA`A8PReKai}q)BIfD97O+KAV7;Kx3d4;W9IVXWsZK6;2Z6)?vB$F zO0wwm90bP0*O0er DZmK8V!XP5N*yg$@V*ZW;ALMxtO9g?wyNMt%TT zO*mg5U`7M@7_q>x+05Obeoa}k z0W>m?RPt%U)gjk@Rw4)T*{1)?^A=hG)epv@`*Ib4GJt3`>?|u}o_DFQ#g~t9JFGAR zd3ifeFPUyA6o}EF~!u+HBU&mscJQYhZ2!I+5pC_S3~|d~Ua0iykhPrIW>4H7vYz zKID)O#=& ?vl7sxZzH3cjM8r~+vEAxa8efw}-E ziA=D3iP!yO9<=r5v8c`aZez>v+wF~ru%xcc)*)rp=3qf1?9j%G5W3XRVr mpLsbbX#r`#$7gZ*?7Ns2>{H_^ zQSp+PGjP91cV%iiQalvy&^~D< {kj*UBL!1wJk&F1B?Uk`sfB{|q6IjgqBhX;8pXT?N0***I(RODl?0 zW-~brTlM7g;cTx?Ypfd~5c=g5T=SW2CPZWats)ar2H|R?e2q&;DG*om!jO(xBijY= zf)06~b1`TRO)XGIHDu|pHY$ujvp+saeU%2bZp bBfXfH+dZ<868w-qNT z;4rr;TQ%2Vdj=`n13fUS?l#WPJQ&n9Ujn;VYqHVKE*1`XR%e$1nC>zG8j@68l~1%F zoCCA;2Y`yx#BDJ@YsqN*M?jx1tX<9v9lV`1?^h6VKYuaF2uL82C)&9mktF(BR(Ras zkn=Y`2;KMI{fxkV=8B(A8k3Tiz+q+SC3YAzm;*q@Wv%Y0W8r%cTfI^sv)OYav2wgu zkxB^Wx^(zWpzd&{8R=YV$C9WR&V!2eBG%pY#-p8TG{;<;S?=rBNM%iGSj)?8Db7Jf z02zK+-$MeNvODqV?TsfA<3|fpxNljtzYF7gQGeOp-2>R0Bw=o+a$WBi>_)t3N?9^b zw3*7Np1>jTNY(0_<~jgh1v&UvCRZ~t0S-6-%YX~ga+zxx3YJSRu~IhHTFqyKS!r(V zyE(wWuEfXxTVtX~`Co_Y%s-JTk2G!rNa6gPVa80X_}J3^N{W4}goMht?vsCLEk8UP z7sc>5Vb=^c5@3_d)%nDi!19g03`9|1BnHhV(Ze{wn_&r6^Dz``eY)@ZL&^ExDm;xH zAIpT`ci1hzDy1=PwUu?FhM}^Z>+y)hKRGPkdRr5ZTCT1S8(1+bi5*&RLD;fqKXOPm zmt0W;K4l?9(IaGyH7#*^ZAE6hPHr13chwo$NK)%7PaOx7LcvX?O9B`0%UW?oC1|uq zMlaLufDxB{AQq59mizm3CPx4z7i#D03+ybW9Lf*gSRh CU{jT9F| z(FJJDF|VYo@z22u;%!KKQu7w%aIiwuKuW&Imru!k-QsP=hl-eQtxFmqAKYX@WT4d) z=}-|bq#cOg7YCU%p?{f)M}dR*-a-_*eGiy(jEf5d8B`e;z~XJRpm4jYYUD*4_qFMB zaJ?j_ZS7>ew#FLZcbjk f4pX5F9HQJrs-lNWPa!T6B zY`#6jIZt5GiEjJ47t~)UbMENV*{91z?br>d{)~{(n(#y+=%ZjHDkR$0OdbY7S|;2# zAPTA *^o-|6r04i+0+dTUd4d8}Vw_4H4^ zeMz(_KlIU`&}61hZ1L7H=(^)ij+3l*f(d;w*vxS)hD`*m<-~NHy4h3c>S!sC1Wvyd z-{86 Zct*7!x=#w`M9ZfUu=Mh`Rp0jy>=C&SdB6t(=WK zVH&9`LR9IvGmG?&*+zffaeK;3e#i1LEAs!hl@U5VrY?C?7gvYJ=suk{YwPdOdCC9w z1zJmU+@GQ%r5U*!b4`+mIJB$NyN7gf)3mypyw6~G)bQV#bLfmiA7)$p=6QE=wpIS+ z{&%}E*L0K*4y_bG;&DfUTJkl|+2n@PCk;y*JZi<=P8VJ+P_vtIMJ^z_ %lqDbD5n EdcOBUNk)HNifxi=YzUTt->`=H7T@EeiX}AVhxkrG(2w0TFmrs(M1hC>WlHrOE@mT9Pa3oPEHkmLej$#?KZ0*xc%f-)YCjQw(Mvw*&rh`6H2sS^B zZOFPDB3d1;!r>6sw4%aiEp~EaV2@hpY^(MNxG26%FNqK8EGJIHuPTb|xW9|62an78 z_8c9oop7oj18u!MJTkmrtBMeL!Z`1Nh}@fcY90UKWV}haKT3J0>{eCI?j0K}fT(%& z_aN-#FnOT^mGTG!I-s>Rks-DjSy$eB2|9nc$R`=uW1Q1xok*tWhf7t4(?ddf`uqX{ zwN{fYF6L?nT*8?DR&l@{_5PoX!)5)TSZVh3M%tVXS?(6?5d`D)PI&|6?m*(nG(dhy zga29cW2!j!8>tu?cBMR%{4#E)VR z!Ga$V*lv5cXo{?)M0_5OyU`V742R>gO$;U0_!`$ychxTFif-oHKV8s<-Cd5WhZpkd zu!q95?O`61Ysod4Dm|k07|dF`m@>eh<1AfB)wrQ PS$G{^ugFUFtF_-or9#*Jgq=fT{70~y4xgjS z=m?inP RW1eOzX9-aA|i4%te 5<(tOPexgHel$Yt@&-imG+f6` o@LhpL9-Y79B0Nd0Zj>0TT7ZWe2|g@Gu>| zESZNu7n-T0g1ZNvAHTs6Ts{MouvxNswc$f0`?~YH`& *o^|$LCbS-L5 z+lh=$^lR&TkKqJv?#bB(?M`Vt$+FO5RXecIGaDuv`{fnDtBmlY>43d@)%#j8X`7NA z*9CNd n(DeG*PRyAY)bF}}r00SY8(wlMAI=5x?aDIyFb+wc* z!hPgTe=q)Uvea9bxXeywm|zqO3V@T+4uM=xe$y0+eW(jDxCguN^4KQGeHo5@r &RWO4l_dhGX5Hv>X%#Z%5d>KUD$Rkv*5V~vCW)Qe(~<%xXuY|G$yleiWo?RTLq$B z H`xSM>?~Nm3DDnt&1{*W*}bm>vYut=_K1Ohs>1hjulx0flM(!^KcU_)1y25 z3pFfa3Pl2VQ0dVQnpUPkxX&An-S$@S`RpHW?=uG*-qw{Y>e@BmcK=BZ%BqXK*h<@^ zEWk8yAK^3W2= W)7G~#xIJ>c#=Q#`!Ld7Br%c~sJH=@)8hxwrBJdZs!ILf;bk zR{Fb)(!A6~j@d>8|6J;8@CRhxSB*fQOE6WPPLl*AzJb=@n?#?WfU*M(n<9G&_EQ_d zW7&`e?6ZX+z=hYY0ta(_fL7ybf2M90-HU%7lm(TsoA^!nye r=AM3>zk(=%H+*v2NixA1NN k1?vq!7uV2}k zaIxMfCi5`>VNF5udkSfMb`L!@cX)^REp}%;8@sX=3Via1VV#8@roCoxTELN^+=sk@ z!bR1Be!e|YBh&@PRhUQw6n%FEvsX)x*B9|io=6)#=;@xv-6FzA0`RNw)cL22rB~@w zyLhP$4VG)8nPdLYk$pA;Z=>Ev&RzxmX4uZ=1G=K6m>c;M6alml!}5O;)`i{smRC^P zVM?i?!C+F{bP(Qb4joxI5dYJhaSVfh{IXo`)q?JLG*@Nn0YHBSG10&B%^%bLz5j>F z{;Nwzu=-?$Nw`&|D^xqx*Lk3~T|iZw_h(LSpc_p`txeuf!fhJf>&+XW;887et_h|t z*aRRSr0L?!+Nt>CIQ+S>Ai>$tmEC517Ji?)$jDN6k$5*)UXXtN>DJPy(o|IA|!;`T=7F#2>%OnQigI`3=kd9-?ro~C|X5sel+f^i;Cg~OPArBo<=kZLJIF(%^ g=QVySsI%>niLV^$thL*>I??&)lm>8_eWuTF93NU?3Y=s(FleJvbF=RM5oZ9o}_ zLO-JPV%bCQiv<}>zB@vz@ejkMfNc;J=50_E8QA%{Y=}k3d1opMpjw^)X9&}N#t`uP z#M!$Ps8EW>qTTR#c8%#atY3t>0$52;>nb903MXlWxy5cszeJvoaRlcRR4sIlXcACk zWVK 7)8*w`~9PI zWFQU!rH)Of`S|8+tL-Mce`qPC>U_H^5iA~! G>lME+0SpZ=?mq&;3OCn?)5|O1py!}4 zeq5tRUL(wk87FMH7y29}19&L_IpI>NKVhNGTqA#}Zrxm$B=dg&l;8gapqyT+ 6 zx=t5daHm%c7cpOd^X^p9(Ybwk(0H7Fx;1n;LTpU$Mx@k%muXZ35f(J&fhIJVLEE1S z3OFh1)kVHpZA2Cn?W0t-kw;zB3CBFn(VtWae|I*hLOFFNrf6-b+q9DxvZHb`vz1`m z( _?W)ifs7>5ZR1P_OcE@XbL9c>Vub_CDEPocv%O_S z?z{&JaPtF$Zc64ZM5kzw$ Cp_UvLXf6AyOqD~r!Mu^(<4|jn#H)DT1JzM03mdaO*faA>Evp5=+S%Wmt z5-r)Z5d@D~j}6EX-HkX!Tc3wtT}e&-oSo%lXo=$XRyfQ|S>={|Vb+{q^6mC~Cuxk} zsND_@xy9b*fN2@lDNFRYhGlQYvbTlIi~zZT(V|cmt&}>q`JU7MDxgL8I=^0dK)-@6 zGy;-C2R{U_*Xg!z=biJxe1px_6i)JVnN|%p9wzD04;;V-homLCSNraO!tn+4erEp; z+WNHnqfF#!y9)2=cJ$8B>p@bq+}r6Q&il-bQpkx<*i>HUvUZ&>*^lw%v#zZ+q%{)G z;kR_-0`{!Gs4}XgBGQGK- B7zCq3tPnB8E}%SE-g@ zkNK-t6zeObZ-pq)_U(B)<6v2Gg^0@H4&Z=yc)Ar)<8{_i(aY>Yg3VQ6J!O27aG{ z2Cq2p@P7-89v%Pb?QcZ(QvoN?&Rmd-6Uj6I0j8uVi`Fy(ELlOaA9`LIA`@khJzGxK za+UkWhz-N!NGs|!7M*%A#+%5`r)^6R%;m#0VwXw7#iIrUCu7j(=)_kj0}BgynE$Ll zjO!xC%UboIT+vS}k5geVg_9?j;Ld{n#>Pg?G6NvBAucXXT~o8o?F{X)KN8R+%LDH) zohbWcspcs>TfXi&qekcD#VA~cn0T#f(>oo_&L97!Kq>Q&DHh)dyJv7hP9R5G9cZ~F zLmR%}tv^%isIgSgCVYDLQjII~B_S|-e1I+w5$Tlr{v;K|Ql-70BEYq7ei2E8QQ^Z` zdCiQQD{5r3JOPg!LSDp3z{bss(!JxkoA|RTA L2Z`{QAqvG{{3zA(X)@eCFnCwDJQ(GOfa>~VQoUe(61uMDT$hOYy;p6o zaP2R)@i)H4&FLA`Z%fw%7A8EF!d3w)giHdP;+5g;N7R8cz72<3isaUlzT&}mgG`)) zKwuim56Cl#EbvSVhx#%Cbb=OUyPqun1H#_oo2*J;;Vyxn1$JHS(Uu&ZiQM*P*;DSe zS|NM^2YcEIO{)DV^KSR{_-+{Ur|i$QOUzIi-=MdDko!9=m9lZ8Yp8;9S-3KrYW~)! zS{$2t?RR$*F=DW(N#{>yowxgP9DqZWt5JDkuF Fw5s6@f+m cQdokQ5`WHeuo7iv(+wN@{s^3vr828Z1q@3jZ#A@HUA!cu0p z+iduYZ5#^)fL03}*y0>E2Q>8v6ik6j*HR9{8nthu`>33`Ln+1VZog-~X9Y!&Bd>-b z9z2|m-o0g_r)79s!2V@ybWJ+hqjfGi`6@Kk`IUgRBJRiLLu&7CH}lGtErVd2yVgB1 z9{dPW8a@_1`azz65+^L4+DnewITTZi2Hho3MwaQOAnUnQ*y-P}{$0fvi^N2mHglV~ zbuvIlmEVmNWLlDgISAu&DX>Ot+I}u9%dK&&n7ikDZl;hdBx%?G!J=_?zoDX_;Jc^p zE872AH?86zT!Q~u(TaU|*szJ=gq~DL(^tg8JQm?q-<9^rCr4kotAH>t*vhKyR3T`I zUD#cXl#Hywz2 QksABI}vW6 zemG94p-L+#C!)%12=0X D=bEm{e2a-p$ADXB^ePL8?aN2deg=HHxiq2BS&~ zUEbj^be}hflY%Qx19}UA`h<4)6FIel0OmEO*N-m}?MO83$SyfF!|1Vp=x0$I)5gbq z#U&_l`uxObS+fdO7RRG+e+wEokwxf^f1I>?q2udBU5|uXj$aR;Ud*EUG=^v}YWaH9 zAjRo2rIMga)MH+GoTKCM)DR^D3!GENYg^4MDHI zjl6GR4`lo+*qzUUl$-O@ydi_~bMpkDdksfk3lIXn51s o5ypy1oR55l_brU4vJfVztyhV=UaSWFm+*30iS zHpHhqe>os~=12T+oBKm(=LQh5J}|qetPcp9iJ!wipcHap%b$aqeSYD1kjw*D=uFr4 z`QPehKS3CDVxkr4q33LCGUrQ91Qp5Vy4g~z$B$gdP?`uJ1~ySy*tDVQ$-Nat`I`i> z>37WeB(s*m^JP0k?7{m8Wi`y!Ud5WJ;;`kjShKQ*!DT_R^O;x0_|W=A@+!|Qm8^_M z_0{Lc@R9SuN5)#u;k6ZqE+?15vv8El`O7)$@G4jsyA#F-Q|j{mDH3*Elpm>$dxB0= z*4$i6#%tt6Rgi ?B1S|(qo-H zGAjw+q5EzJv!P@(f^f`G(>ys%!I;D$MoH#Z|6WV#80})>|FcdpZ#tOO(&WjnRKBVl zO#E@;%>7mHhMJORK~6?TEPHLnna)ALQJZz_tC#@(a6@5Pn(z&O(^dBm5@ls&kWIPP z-}Jc``8V5>Me#W~43QKg2BL^`8*C(Aub=mtN;pY5?Y7u5eLNrxWw8^sUy#E;u3X-C zqiL@*tRG;%ytpJpq|`)$3c!EHFex{p?Cvi+$J|-jEskD*J0wczo25QLK?k5~v=%ek zGFmwI_KNbmX_RT-Y!c78@Q#jCyz|eI#r{9QvXN~lFCt#c8De04A}7CrVUgMTP+?By z!cM~8q?KPk19OtUp%R2dnsFI%_X)5NWw3RQm#&`t0OvRB>?&|?$(+pZMWl%oy6et| zXcJPAh`bH;vak0J4A!TmCdzDI`;GP70J3vKMLd3NhCFRT+W8*C{Oj#~>+5SHu|ZB` zSfu9-JuwSZxKOA1Y+Ws)Q~U}o1Ojsi?d|w#dp>e5)z39eMEnd!(GKeM`n)V!!<5g5 z%8IcF7KM%sJVR BL(A``8lg(z&l?yjZkYOpGq`McWR$C-&Qn70du4BEnJ_TnlhT+OU#L zKenc~`wE}wNhu|Wlq>;RjClj9;&lF*YxIh#!oc>%szdVbu}x1+a)0Yn?ej<^|3D0L z_O6+gd7kX#JTz4bP6gPub;4y-mrnz{i81l|56$E{e4@a+!rf=5r 2&rSBFat zUT3?3Z?}dGM9-z}TeTueO3{iOU$Ux7QnYh*f0tR43a1oyooN?F+1OZb@^|uo$HZf# zv=oxh{>JSFU3VHA#%nEm8r}*!dEEP3+@BzE^*g4Du64SBEY@|Bar6E#gmd0s(e|8g zzuu C08Un`Q9vFi+LZC&hXu5(KM zr=%zYK@|U~we(2p&UR%kd)Q4q{_yMYQWerC*zbfae{_$&3$1=5 _u1Fu;g?S{kdA8d`LR+g5Yo}NIM!}YjGe_7jOVR3OvLIQ?&suUuJ8s}eC zmIuORRcu$Iu|W&g99ZjJ@J1V?5yEcnazc^3$ZFc|=J CH+$U2%RImXR0&0x?-h?qZl$gn6D zt}q(^_9LP11WGdBn?_qyUrPCqzdm3Z2Xy_%u@G$>UNc|m{Ls~S`|BI0l&0Y&{nC5^ z^=nJ$)c9gAw1H7y>)>0vt8R+b^-2unIrE yM1&dmLx|PEtRr1nLT}#nvt^o_O5g%Ryz?qu`Q{#aM>~=3hlC4*f?7B_A6~$~ z q*fNYiTfV$H^kq`vkj z^pqfnSS=OBY5HswJ8;6*ix9{ZEv7WSGZYAaTSy!O 5P-0Sp93G(w(%dI^{{lZOjvLA@^VW0le6Aw~ej zUwW$TorU=aNwsBy@iw+8Qld~?dmCbdKl!jIIla?mEgEWG+*?qnbRDqUT3 za*EDtZE`Q3IBug`G4%Ag{gL_7VB@#7)0!V!Y^g$Vb_5#RwQeZI<|~zMqR=;rs-$JS zW)m|j{z15r)Fa?nFu~%?YV SZ>ugj0!VT4yy)Wv;M zO7bKlTRi1oPtRpXvHQ`xjJq V-U*)>9@v z%9%8FE0?R0C)ACRN!v-e;wxQhoYxMoc6L_u$KLOBl+x8CWZ~vU0#Vv@l+%v8^|>v5 zJCyTohWnacBy0v05ZeXCbo!Cf=%^?$M7}pQGVGr8W_TjU2wObFZY1;jnF|$ewVaWa zdzF&}DL+28KW~sR-MK$I&RW+`6Rk$$Oq~v9gf`<*?8}y~g&pG0bs~_kr3mpHg)HC> z0kU@W9}9iwr0Rc55s{Z$2 fGwx3UEff5f_RBEJzKr)&X64d!_R^yajGFrnQ4P&>Fj<=P6{@L| zWwR%TZ#GZR(p<_-#Ux2p6BE7GUf!w0Y!bD_b&ZDJ-2Y@`Lra!?U+pJ}v)ZBhdkp8O zuwvlNw&T=ustf nFUFi5m=yue~RbST3!h7V%^uDvPN84 zqpRBn*N4gEwbAoDA}_)SVBkU7r1>|UBT{7g0AI}o1J#LTfwg}7j^Lc(jo^sc$h au%3#TU=)c5C2y>4$nR&jVdeReT@NRkWrn3iW&SE9 zKmU%KX;=Xc{p{Sr+?o&bN}V$kMvJ$TFxI8+PJB;nk9%jyt^g__w`Z0bg=y-|sP0*p z?_%@Rgo==zq&qtA_ftIT4i}p3DdY08&C?WSNVaNGEqSY7vPz!!tQUmBZoRv an~ z|8_Zb=HOzG)^f2rF?qUPeLvIb^83>8DvYo0-FCp<;pe7zcAKm#xwuG0)}GjZUHpP2 zI%jMWTh~k|1@u)T+CyS@w`@*7Hy4#f$c7lyOkwcbPU$3RX_cYkp*L?UWv^~qqGO{I z6|?A+@_RgD$0hb-^%M3eP}I22W}f!jpZ=ly&%|c%zb3XT^$h!#yskk50++jwOM6T7 zMTWzi-#lLTT`Vv$SoK7Y?6S0$qd0_zYzyKmYbg-!aA{|cKZ^=q^S%M1SdDnSo-XRB z4kT}D?z)?0rIW+yJbEIEiVE)unjE)=QdwT^ 3W&l_cRD$&+qX{W8bLgz>IAPrBmhXrEY6c@DS^PP;Vxi$e(ZHTGPLyK-9l8;HYSy zc;`Sc7y?BLdAYA->w>xT6U)JiAThuEQG*}@uKjjY-55m?FKG~NbXnx;Zk+~4e5}5T zx%G#0G%64;dneK@j;{xRlIUG2E=K-LQso&rM?>Z{0xg5wQKoZWiQ8bs=8fFqNY2;W z{Th8+OYN?55wx_Ba>^Q9I2Sah!c6hxH+=08l;x(h5o-FpMVa{-FQ6{7k%R&-I|v;r zW+37IwYe{wi|rK$oz2T?9u2tODg38i{aylMTVD))@tp|HJ)KxFsNf=@O$G%+(^M zc xpTM_YRUu8-z(5%duCkJa{DvR!E-Fm2jcYyI zU_yJ{2> X&mG{vvr#8zF_w&?M zx+oOMNXs7^qr4tw9|#cP?VZe36R+P4r^30m1jte2P&w6VHs5jRl-gAEd&WHUL@s9Z zuHr5UySH9n=ZyI$Mi7J}o+~t0)30am9ir4Gn*w-A(#$ov*8T{`q8um1bMBH~7W2II zcUvOXstydE4kBK=`2{!3Yusp7@8n=np$zO4>_!H&^^@|wq7qJ{`(zGz%ms4DKBf!V zqZ# oNbgw`>Xc@7@x+&~Ar`bEl(tvZvK%R}uU 8)~b<(%^J$Y#^0_y1rg;t#!k+c>Q6VeJgpR$evmq80#gbiCK9 z4ggx~NEj(nYGnIJ#24}&(K0OA0Yka*vScs#eSakWuTfQfJeFg*$pwe5SI5`4eb`qh znnDo^mqK=Lk0(mt<1XUw4+FoL1*d;|VJFOZdD