From 0105dc864deee4f73ee983163c076b6d9a7159e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com> Date: Sat, 18 May 2019 16:11:14 +0800 Subject: [PATCH] =?UTF-8?q?spark=20streaming=E4=B8=8E=E6=B5=81=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +-- notes/Spark-Streaming与流处理.md | 78 ++++++++++++++++++ ...rames.md => SparkSQL-Dataset&DataFrame.md} | 0 notes/Storm和流处理简介.md | 8 +- pictures/spark-streaming-arch.png | Bin 0 -> 51972 bytes pictures/spark-streaming-flow.png | Bin 0 -> 20425 bytes 6 files changed, 87 insertions(+), 9 deletions(-) create mode 100644 notes/Spark-Streaming与流处理.md rename notes/{SparkSQL-Datasets&DataFrames.md => SparkSQL-Dataset&DataFrame.md} (100%) create mode 100644 pictures/spark-streaming-arch.png create mode 100644 pictures/spark-streaming-flow.png diff --git a/README.md b/README.md index eaecb01..a649ab2 100644 --- a/README.md +++ b/README.md @@ -82,16 +82,16 @@ **Spark SQL :** -1. DataFrame和DateSet +1. [Spark SQL之 DateFrame 和 DataSet](https://github.com/heibaiying/BigData-Notes/blob/master/notes/SparkSQL-Dataset&DataFrame.md) 2. Spark SQL之常用SQL语句 3. External Data Source **Spark Streaming :** -1. Spark Streaming简介 -2. DStream常用函数 -3. Spark Streaming 整合 flume -4. Spark Streaming 整合 kafka +1. [Spark Streaming简介](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Spark-Streaming与流处理.md) +2. DStream常用操作详解 +3. Spark Streaming 整合 Flume +4. Spark Streaming 整合 Kafka ## 四、Flink diff --git a/notes/Spark-Streaming与流处理.md b/notes/Spark-Streaming与流处理.md new file mode 100644 index 0000000..dfbce30 --- /dev/null +++ b/notes/Spark-Streaming与流处理.md @@ -0,0 +1,78 @@ +# Spark Streaming与流处理 + + + +## 一、流处理 + +### 1.1 静态数据处理 + +在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop采用HDFS进行数据存储,采用MapReduce进行数据查询或分析,这就是典型的静态数据处理架构。 + +
+ + + +### 1.2 流处理 + +而流处理则是直接对运动中的数据的处理,在接收数据时直接计算数据。 + +大多数数据都是连续的流:传感器事件,网站上的用户活动,金融交易等等 ,所有这些数据都是随着时间的推移而创建的。 + +接收和发送数据流并执行应用程序或分析逻辑的系统称为**流处理器**。流处理器的基本职责是确保数据有效流动,同时具备可扩展性和容错能力,Storm和Flink就是其代表性的实现。 + +
+ + + +流处理带来了静态数据处理所不具备的众多优点: + + + +- **应用程序立即对数据做出反应**:降低了数据的滞后性,使得数据更具有时效性,更能反映对未来的预期; +- **流处理可以处理更大的数据量**:直接处理数据流,并且只保留数据中有意义的子集,并将其传送到下一个处理单元,逐级过滤数据,降低需要处理的数据量,从而能够承受更大的数据量; +- **流处理更贴近现实的数据模型**:在实际的环境中,一切数据都是持续变化的,要想能够通过过去的数据推断未来的趋势,必须保证数据的不断输入和模型的不断修正,典型的就是金融市场、股票市场,流处理能更好的应对这些数据的连续性的特征和及时性的需求; +- **流处理分散和分离基础设施**:流式处理减少了对大型数据库的需求。相反,每个流处理程序通过流处理框架维护了自己的数据和状态,这使得流处理程序更适合微服务架构。 + + + +## 二、Spark Streaming + +### 2.1 简介 + +Spark Streaming是Spark的一个子模块,用于快速构建可扩展,高吞吐量,高容错的流处理程序。具有以下特点: + ++ 通过高级API构建应用程序,简单易用; ++ 支持多种语言,如Java,Scala和Python; ++ 良好的容错性,Spark Streaming支持快速从失败中恢复丢失的操作状态; ++ 能够和Spark其他模块无缝集成,将流处理与批处理完美结合; ++ Spark Streaming可以从HDFS,Flume,Kafka,Twitter和ZeroMQ读取数据,也支持自定义数据源。 + +
+ +### 2.2 DStream + +Spark Streaming提供称为离散流(DStream)的高级抽象,用于表示连续的数据流。 DStream可以从来自Kafka,Flume和Kinesis等数据源的输入数据流创建,也可以由其他DStream转化而来。**在内部,DStream表示为一系列RDD**。 + +
+ + + +### 2.3 Spark & Storm & Flink + +storm和Flink都是真正意义上的流计算框架,但 Spark Streaming 只是将数据流进行极小粒度的拆分,拆分为多个批处理,使得其能够得到接近于流处理的效果,但其本质上还是批处理(或微批处理)。 + + + + + +## 参考资料 + +[Spark Streaming Programming Guide](https://spark.apache.org/docs/latest/streaming-programming-guide.html) \ No newline at end of file diff --git a/notes/SparkSQL-Datasets&DataFrames.md b/notes/SparkSQL-Dataset&DataFrame.md similarity index 100% rename from notes/SparkSQL-Datasets&DataFrames.md rename to notes/SparkSQL-Dataset&DataFrame.md diff --git a/notes/Storm和流处理简介.md b/notes/Storm和流处理简介.md index 9475971..a465181 100644 --- a/notes/Storm和流处理简介.md +++ b/notes/Storm和流处理简介.md @@ -35,7 +35,7 @@ Hadoop采用HDFS存储数据,采用MapReduce处理数据。MapReduce主要是 #### 1.3 Storm 与 Spark Streaming对比 -严格意义上说Spark Streaming并不是实时计算框架。 Spark Streaming接收实时输入的数据流,并将数据拆分为批处理,由Spark引擎处理后批量生成结果流。只不过 Spark Streaming 能够将数据流按秒级进行拆分,使得其能够得到接近于流处理的效果,但其本质上还是批处理(或微批处理)。 +Spark Streaming并不是真正意义上的流处理框架。 Spark Streaming接收实时输入的数据流,并将数据拆分为批处理,由Spark引擎处理后批量生成结果流。只不过 Spark Streaming 能够将数据流进行极小粒度的拆分,使得其能够得到接近于流处理的效果,但其本质上还是批处理(或微批处理)。
@@ -46,9 +46,9 @@ storm和Flink都是真正意义上的实时计算框架。其对比如下: | | storm | flink | | -------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 状态管理 | 无状态 | 有状态 | -| 窗口支持 | 对事件窗口支持较弱,缓存整个窗口的所有数据,窗口结束时一起计算 | 窗口支持较为完善,自带一些窗口聚合方法,并且会自动管理窗口状态 | -| 消息投递 | At Least Once | Exactly Once | -| 容错方式 | ACK机制:对每个消息进行全链路跟踪,失败或者超时时候进行重发 | 检查点机制:通过分布式一致性快照机制,对数据流和算子状态进行保存。在发生错误时,使系统能够进行回滚。 | +| 窗口支持 | 对事件窗口支持较弱,缓存整个窗口的所有数据,窗口结束时一起计算 | 窗口支持较为完善,自带一些窗口聚合方法,
并且会自动管理窗口状态 | +| 消息投递 | At Most Once
At Least Once | At Most Once
At Least Once
**Exactly Once** | +| 容错方式 | ACK机制:对每个消息进行全链路跟踪,失败或者超时时候进行重发 | 检查点机制:通过分布式一致性快照机制,
对数据流和算子状态进行保存。在发生错误时,使系统能够进行回滚。 | > 注 : 一般来说,对于消息投递,一般有以下三种方案: diff --git a/pictures/spark-streaming-arch.png b/pictures/spark-streaming-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..f86fb6bcbbdd8c00232b7dc8278fbd700440e979 GIT binary patch literal 51972 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%0A1G!(|&$HI# zIY&-x-OXNvXEu?6tf-+?X?h0eVTfb|G$&3EcYAc71_HzWZfbOmOeNnJBA2vpio_Um z@J^E>k$*be0M#~C_^jddOa+7!eHp$A8uM~6Hb}3xHq)LyR?bC{W{D-_Gxdt8=`VZJ zf7KE{&B>;O!N|RE0lvV|<^+7*ct8x` z)#b;JePC=L8E{2x!YArtQ~n0hgksYM%-5>(N!VUPZths9KKdpFyS8B1CMb`ME1v?- zEL8At9Zx>Uu47BmjEye!JWQ=F5@Fk<6lGC9#bMtR4&YyZtY_`n1l_z&62)D+#;+<2 zYy}%<+&mb~Z(;Fc|Ks-SA~v}{iyx5i=U~Dem%cf5O`9-?cD@V_#%7P>QWdkW9xX!& zwoe~AI^IwCEt;Ib%wrw+4dT%e0N8WTF(*4Wq_O$CsHk4FOl&qzNrr%>{NxL{f98Bp zI_9Nb#v7m!@a79E%U&tB=A3cH+?GUM+j_6pR>VOQhJLX04DU9fQq62`8EFnP9)qbx zLOpd|vU$h#P9YzZw~+o_VF5NXNwoaQL|q8&u)Nc>3oLjhYD>J#^<}h~D15zBOI%dd z4ZP+X_2!^0y6`}PtEL+b8qGwaezWzPF2c}AtditR#k<3K`wm9|TCS0p`p3$qKK!ln z@I7Ngm_W*;%BlC@*> zb|o~12*daza6PFyayC~CUP-66>PU06dyY6Yoqn45JQyBfi){bBqa!&?1hG(0j-QGR zQvq{p*|vmm_A!QMC-AMQCQJ@Et9;u15xdrG*E48K4=S4b9qm&pk82$yDEd!SMh8*39cnc ze>CDKwf;Duv4|bP8UEU$Cg*puMRsBiSa!aHNphdu8P zljtT|gs!v$d}BNUzZT)*Vv>Mr`cF(>ySGCol|#OI3N|I)$cp*v0C~AcWd-I3A(XYc z7E&|I8E;LZ1S9WRFX0H#hHP4t?s@TOk(s~i7X-%5ilN8A5SFr3x%0gL6Y3s7ZLE3Z zo%a=K&d)l{F`@TUZ@*oASB9Z25l?#Yy1fmw@V%M2$UfKbICZ{OE~L6$Pe~@|{a6jL zXXxu4=nG^{^PT8z#~C_UL-vX75Zabi^I{unSt<6U9}jaWn}u? zol9;E)+=3|c;RZgqgrMV$o2`3;%4F+M!HiM+lfRC@wjM6c48Cz{VsrtiZBC{hc2gA z^CMO;o*E}LTL!zH;%F<>k;Zv}O(i3dliP=~U{1p_HZsdvFQ?;JMxv01wG-pQ?d1Xi z1I2VQ=_qowQurHO+UWSD(&4|bTJF6Z<5@mg~o(PQnT3c?M{G+2;+|Q4Sw#wAb@1a!yJg(a!tIa@F#_MrXJ3;pCauW|Mw6_ZC1q#;)ZV+!T`>Os~zklqeYa5wr4 z8<`)~V_%Zggmr(18H&51%HOqO7uSJXHFq+Zh=51lR!q^WJihN#KxqQDj~J@gr?{k_ z!hnya$n^0_1Xrz}XwjR$3lj$bP8mt@+@MPl@nOS~YlH*x8dzUBuzOphO~0mwdQhzleuV!<&OXSL1W@e=pql&P zu;Y_GJ`V`_%^=g55NcrRro?n{?my`NEgr!^0{}-AyB8tUl9zmhTS)K0r1-Ii)J#8{ z5$lD$>NWik(5v15NCg{T+MrV_YH@N@NWrZ9FZ{0zlMlyx+r} zH(uNOfd01HnpvJP=~F>vd~8UGpdI&I77o=s0$-PkccKB1dFw=dDgcLO7Oj6M>zWBCd>^lm=k zg(Q%x*n8G0^FjM}LLY0f5j#EIl&TU+BaLOHiHjxYQbY^wScK}CuuOc?vq-->Zq7BQ zu?(qyq^&MBfe#AzoTNfu&n2M-T<(TJ%)#6WV;T;M0fp!Klpe#2MPMAtgh+!|UH%nz z(+s^eJ>2O7`69a@kW5+4>;h+>tRSAOpOUTI@%|WqX2bZ^MXH1+3G%}Mm&T*`K!M*3 zaQqq()QW@V(^1^=t8DC0=OYONF?%d%QLCX|ZoV@$7HxWD~X zJRhUNOim`|x9VD;y!Ls<*oyg9ohgcJZ46#SP*$=2Y(}Y1zDGq8v&!@Q2zLhhMY5>G z-NkTJWT3Q^sxa_kT#iq&r1b{-cgJiK6B8Mprf3+=Yrx1yAR3Z0QDRSz3<;o<8=EUG z(w;y~J;5&Ni;Hm$FDjcj0E4*`Z#IC@1ZkYOx$CCZEk_xXr4xzuZ*?$8GbaImg$=9?J1i*h4&@m z$^;R2IHgGRKDWZ=V-FPQ)v$9H#icD#w)ndrkf^HcMMwX4V!5@I~_z^J_!-D$O8yPA`s|w`e#Y}nSS#9 zn|z99btDqz{|QfRDw7=uWhV<@cVG!iRow_5rDJ9dXstpU;NoBiONg3DRCr8|Rz4oA z>lIyBGP?i8%;q$sCk0B`k1Ye-lywlXtUo29yX=mQ29pm)XMaso2VVeO=Z++2O_j7xQG-HJtn)GPQ-uRP({LEM=wHR@C9_I}+slC;Lj;asI2e-dvb&rPVMVv6LzSHA zG#>E+6CN;kw6m3tr7eEd0yi*P$jwIcgEZ15b{~E+C?HF$Pe@EW%msMRiX}H*p9bB^ z&KfSSVLP+RTO4)JC{w8=o`jaEtuHj_ufE9SD)T&~3+-#!-s1Zjddbf(%Tv+@x}+j7 z$48c}zW-8u!-0-0;TdxiWV-Bv+1W2NVS6%K>0w?PsR;AmFT^>&HR)H7hYM#!6Hx`gG_N}iSZxx$rv*cTq2c4VGmkF^Nw9M+B8Z@pQBJKr zo*%;#ro7naKgX^YBM|tpIZ~(y! zU*?GAya8vG-!B+|GA__5;}eVT<%@7r)7NxBeMA0%f8XB*Ogdd7ivxy~zQH5Qud0{0 zJe@|F)9|+`u2aSI)xT);5W((l|IkmW5(dIGcbfux=>-P0*lPqDYh_XeBjFx6m~Z^; z(hP_OdqvDNAqA(0#tREqA$kKO9P$u382Cf(Vp+c`T_ySh!vjkvRwQ>?!Tky_@E&eZ z0NQ@vH}*<)tjYJ`mJWJ8?B~o9*jb*{soH3S+TsBJPOam??C(ekvZJVuD6P!}>Y@w> zYanaMfeGtKH9w!r*)dYKt1c#*0#`S>cSj`F>O$7&H`L_G68<&_*|<0g0+<3fxYY8W!OON1QFKl_G#|2LAEG9ec*Qa$fjnB5f@ z;H@6jtk4Di)kuM=43O?tJKcV!-(<8lx|t0)t;-)|*ECT`((_i?A_bZC(X_1=NBKQm=6 zL1!lzBT*~t9mRZ-B;n$~Q3<5)tda;gZoWlkxRDy+_VLALh^m+HFo8Un8{k8i8KqR) zkawYWLw{a~VMsmKq7RKgqU(wxGj5f&IFDMA9-xl<&a_d-A1>$4y7RZCWqgR?KunKO zBjJx9#}cs1KWlKD4*!tf-udLc2I?S)SRxGxcOZneC7QO4NrSd&#hriN0&*}rUWuv9 zE3%wgZ-9Kh@O~ns$c39#abZ^kSd+XyJ4{gJ%b6IYdL5>s)G;zKWpreQo=R(42yS9V zOl=!`D`8NH0nK5OuQHHtN2n5D;*cJ(sMM`F@0MA@CKM}Yjp$YU)W~QO)!%hy^www3 zhNh70gU@@?ejJRzH3SDJY+7;QZt|C&tw()Glp$X>!Gy`)gw-^aq5!#QYTyHkZ?(TL z`)!7jH4#H?JL6>Wcn;H{7Wc0T>>Jp*Z&F7-F2|f$0oOO^6X3XmXK#t1$OPyid4idb zn+23O5MyvNNbeQU1RRpO%XV)ZPf{NanF!}>ZBT>}ln&yy4s}ShnHZ2uLkUYhZ<%aC zTjFhTfPUNz+~06XnGw2781^)!%(vyGM|XAm9-u+gG7m}lx*)LBvjkQI1GTAHBR~e6 zHiijRM=a>V$PXihM7IK&en0%`d1i_p)igQL2u={Qo4yeI>=rq)#{Z{Fj2jff2?RE! ztsN6(57afx3n-M4Y~NndC}|62OighueyLW{!?z)(6IpG%x;%H+E5)%@x*EA$C-NVh zW7e1ACA84RD)Z%h7j@u!`5M2DU4Km#w0|niMu3Z1C4#t>3*$Y-SD%<6>doGT|_X9`3 zS6i}2USL(!xuLaiDYa|fMw-U%l5q?59GFkg0a|%^1H0d7zL#-Iymh1wscaviLiBC) zSyegZ?E9C~7v?Lq<8FTO$9a|-kh24B=?{dsm_p!W1l@LN zywX>|MLtMlU7&ycsV8`X0;4PZ9@y_xakN)o*_pbO80V)?e0nwvgN3Vr*RX)LZN%RV zY%_L;?|(mPkVFhm)^d;A>#+D57=NFBol*Z$`$pUT<7~rhV7MlSi|OuKOOPaS1Ic;+ zNN8aQzla{SFB+b@ zYZwO)mB&U+KIpRg3{^`5bag5OYT99jNC}ShhX@{xYd250AS(%agsW!U?L#E04 z*J}?;ZNw4r-~>2BZo+!R=wt==kaUXe-Tz>CayTAnNLM&e{P~Tu491h%#Z!sbpR412 z5=qH<1^Z`dN8S$G_xuzb{b;7T1JE=H7!oSlfKy4&;S!LoNS1&m#lb|V6F|LHK(xKHO7!CR2=raSM&W5l6#LUhdjbTIz^8C5(+mZM0mfE^vz<1j>s zL|u^xLLXrnGdj8G@4)R@Ipvh+>fCA>kH6IW`cCL20<`XB6`*}~){OnF4ZT?|08`^( zvXbsyr<;tx3o>)-p$e$nI!J_`Qny~;oY-Qoao%=5S)I6#A8FxV>?3~CSV58t8_33v=iNHm2T!6etv z@y)F3cGBHB$LYn@U29RYL?C8d;h4%726QaYvih0Ceg_-QkKG#2k`~oeTo`8@VF5pxkp%^yY%?B*wsze&^#f%z67%XN`tIgd;xIH=%lCoM#9y)5yjZ8em%f3n zh!y%q<(FW>5mkooeJZI}M{J(vn(SFVaMygjcCzQyYI!48Hli*2Or~BB+7m$_j;Q#Ly1NfHQ>9cutLVB*MV%?359=IR=wW8Fas92Hy%UM?{}Y|W-!u0I}Ms4(Pq zR&blntt&sckR;HyGAShu)lm<8D37K40k-f%&sf%#cg`R<#h%bUVK6gE_S%0>z5wD- z6hag|QK#?M$^|fa1{%7B?_)n5o7uvwW*1?Iwctw z%DLGIkw|QOs@Mn1OV4Su+m7MZVEabRG|0^oCFD+bp2ceE;vOX~=0sj^yiKe}h)MWz z$BKpXGy?jd#j|dZGX`1tIW&g-xn9ngHA35)3W;6Sc)1oczhk5Q*<{RQ8kQUg4A4A2 zsHV^hy-*cbEHsNwHCAJ0-a63A>-Jr#H!0hJo|T|_)hSJOBzfo;&Up+q3O##rk0^2z zOlkRFKb2qa)k^=5N*nuGl4OG+VXI8qvGnn?lY&z+-4MAb>Hr1swxlAb85ir_Qv`5; zY=nymTHjO&RUa&Q6gHnZxfTl9OcF@pA_Oh=3YkwLQR220wkLs08_kf zM`u$qMgCPkC>s?hnj=#aT;tM)*uVOkbi75a7TrBQhr-kT+(PY{q@Q^7sH#cia%UrA zRJrVlY%fLBs&2Iw*sR<)6lSu+yIi^&t@WG6Tv;rKrs`hP<0MBSc%!anRK!dH1e4d!Jl zf+73aJ|UVC=Ln!uqWPfUwOp8lA&q~KLKe?Vh&-BM}xe$#b6u`r8d^FtBi0VmcAS(C9@~H)=>#Dp$+3b_AZ;B zq^%F9Q08Sy0aNr~jdC&6vzT(FZ-TPkY_kgq0q&>G#B-ZT4 zA9WIfz|GY6KJuu-F&G@43nWi*N!IZ#bM+H%`Y?z*PG|77z||!oPGOK=Zfa?gP#Wqo z=xOlU@v1De%bFOr9DdyM!C4Ag?u z2h9z}4o{{#BYV;YmAG3Qa)oH0izP!ss1K*a?aRw- zU;UFiB^{pgMk)j>fS=M#qrR|RWzbkLjf!;k_kpLc)Uh$!MtHo3b!3O3UZ<_cSp>&T zy%iaSBOW?$yb3~}*7VYJArE*t11O#!f)&}T+WDV1KudD~_qPvstZrm4gWXtgF-MjJ zJZ{$TtEfVI3UvZi)feP=co~e}8`4SCW!4dw#Gsiuj%lZlx^56LUOz>D6=g zU|MYba4Et{GE}v2Mc4B;KejavqN2)P$M<8iR%*0Q_SleE$~$$bbe;eg>SIX%phU6-7{ouc!CNT`M!iK zhj;?VJ-mJSO)xcktx6DwB}k&pKMJ^732dfJxM@?(j+=+>P(dt#1J&1UXL1<ppl7X(oy%Nw+M+Ew(`!m>p{PMLEm5u+J_>5l%w8OH4lw2MW16z`EJu9t&n z77<`U27hUT%5aJ?>xjU0#dosFV73o)@gFz5Qm^Lybh(v zrh@ygM;~x(tfT;#whmHU!V-Dt9>4 zJs7Mq5`Q>ezZ-rViYc>bzh4tD<8&zmTd;XRiQYcoV8)V_RCVnhKE)YGmJWqE3(^$+7)-*TFjc}712vY4mPIfl?UL#tPZb@DKDeU zvas)^@n9#|>_JQ?vK%KfcRb71_b zXe>ROve*|FG-k)6KBt>8XR_SD0ZgZHI9}sxHqD3gp0U3R`?6qo(pXwr`Z4tR#0esx z^ax-`_F{@PyQt|G4<=vyZ(QCJUDKuxiez+jZeif7W`Dng%hm^2psHoUNa&u3(P$e*t z_>UZ%o(At<5hKHja%dv9_Gg&?GWpP?b=3Ltm#}7}L8MvotkjkAu-jC^R%M-6+F_7p zk5Eu056xLPtk3CU3Yb7VTcx|}w!x@ab4i~&u~BHIi?MyUB0nxv*uzRw{j)+&k-3Y` zO#VLn5kP*z|iHrh#{=&jgfanhPPg2jCSqv=#SZ%-1 zUh~@u{5#FW4eH74sMdlBC2yX?QOsYz)Wk>uUpd~ASk!zfc50et6+p_0wIz)c6Q2xv zb+*|@)qc^p<3HF=yuP#fZv3eddu*;LTSJFim|X^o<{@h+V~mxlyy6-4!qeaPJuiMW z>-s+u!%&x`U($5yu!I|_h*}ZKkKa03j(MP{YMJgRZI$6L8*|C1=rGM9^NmcjhVq;0 zb>P^h6UzmI2nBAzvqmg^L}(Qt+Ef@n$S%3%yXV$?&n_AGnQCoO zX(pC-MhORIu5k9*~-WJ-A)eGoIx zy80L@H7bDbgHLsz#iMY$3(_%ZZMEgMKWms9)VHty2_#sMI(2EC^v$ zVmwAhTxZ82x~*!F*x6u~x}8|iayb|4^o!GqU#r3jSt2Y5XGv#lCIN=ZdNeRPp}}Q6 z9D9sVTu-a?)F%HJoXj3vEZSpFFBY>U8akJLQ)cy;!m2xMiGk{xA$G z7|8Ak-VWi|Fjtffc&}Ss1*g3C+@C0z_vem-iEQYNibSiO*-#irg z3QAbuWq&b*sf-^C`-k(5+Za~OdUm+L{SK`|t|8(v4>@-9@gEFeBUcE}-!2&!emIEy ze@wk~R8`#@E&Pfg4TqM7LzjSb3mhb+TS`E>yAcFEbfYvJx>Gs~LXeh5x=Xt2Tlo9N zz4u?n8H2s{e%6z7&WE@|om19hzE+c%XVj|XZV|%Kjd-J zfwFVyWFI;C*lnaDGr8W6|Lv?^E84!Wf-68g3E`rypbY@ebnbMzX}4mCOTH+!sZJ*u z^rHP~fMPr;^c~VBswSsx`z4Qs80XMA6-?WT{WVLY{G?e;(XZxAm>J(J6rrAdE;`Ti zG)Q|XZ@2>>J}vb$_HyN=lU?pIZ4RZJgMO58isX}$nlnhw#qDE$HtBF>{L-HBPkD~| zdSl0vt-cx${ce7xRNi9Dn|i6^^aC*rH)_RwaDxmY6f}fsY*wf+FzXTt;!7}6Az|km zsuf`9yu|(Hdr0QNq(#*JHj{F?7ZytXR1iEJT?oW%S*sD|S8`!jWTi2Nki8kP0W4C4 z#k5*2y6Ge%?MbJ4UI%#C$z=Bid*;o{2=~yoyQ&<)+XZ(SQnsD&Q8IyR^%bNrMd(}QGKz*AdV6wc zIwN{@xToU-0(S-nF55ADdAMc#kCXP_F)?vQQ17WPA(<7+8?6cy!Hq!TZFf+#`W-ll zy)5+j%?pMcX7Cb=oP#4vWi?eHN0eHD_sH^+wxz^e z&DoYSSBGM?pzKa>A503kEQqfob6=YL~Q^Ju^!F=Mi+I&Zy7n`&dE)y%iLlE{D_zt0N)x#BChxxV1Y7 zdS=Mys^7(_Ds3)TAv7wT;S-t+ZfZ}0Q|2tZ+l@N{NNJ-Mp50@ajZM%4o*X>0T_ zU4K@@BE=K7<{Xm?+rDhcdS*jZS$L{qX%D5C$@ts059OS@m$O%hlMZ|KT|R2)=rI^@ zXG+ok_6O}mh8@h`ln9Rf2~fvg)2RPBFgVCq*R#!+3(NHc#VsU$7!m?u?ejm zAPN1Gc~@#&@iH^C(5}@_T#)6VE?S7bgnmFJuXP>HUV&KG zKkp$R5$J$y0|M7^+*`Hv zL$G?k;CG8(WIM_!;Z)^p{e#e!3nl)-ov!>dg{;t(@m)2>tc=<8*Cpx#=zv(H2};?`8Q;S*^3( zBx3J1I{&vVMq<#}A!ij_fMYUOX)moE%9AKygM7?&t7Gs~JgjS`SmN;eS!a8jpoYq$zmy zVtY}WhcCfz#n@Vhqd{s@xL0R~S(mZ|NB3J<;kfW{v{|DJj4Fk+!;?LEp8`^XgrQLL zwmwB`>Y!o%nWbSavmTRvxpqrtnCs6DN3GVeIoE@Wc&L=0SwX!OuO-zCM18kQXw&GtGVyt-ey#QzL z6l$On6YXts*?5DhbGmLA3z3oxL(VHI+BC>WGROq|aS_N!LYR*nu8{pU?wc?L54DD# zD^{rO2RTWEX&uc>o&eO^=y?L`I+0l-E~M#r_R-@fC)irLs)_9>kic#z)FP>PlT@YJ zdMD85{4ZsdMKl~*!*Zkpf#IYnlGff$=9u5tI4-oOsKeFxO>ZDJ-DYoVIV_+_Asw2f zYiBQ{$fND$qn%j|--jpi(%OVR*M?EtGW0}d=RwtfDVfKc-WoVtWD)f>$$+n#7r5Rm zyP=oUDAvQq{}0K?ya)BDhgdIynDG$11ctaSKQC!JF1E(W^#X9)zJinWcE*o*;?{p1Ud$wHn@f zPrp^<6jQB|B|b;9O(>`Ye-7>4H(;r&( zKHv`7cu(L{JyW2t0f89(3r!u)kK_1tR`op++Lx~I05K^_Cd4>vKe_^=xM$hbhwpP8 zvCy*L4~JVtLTPSU60*%$Z?a`$FBj`x0VGH4I61BKgWp#6Z~0ni7o(Tw{(ZnY(?5;Q zZA(8W$pR~+wrADstM4@l6GN<^&`6rtR&?$h?p8U5yk|LF^*kci$h|a3J+&oi&<@;@ zMH5vu$x~v}WK^Hg257XZ8V^s4bYc^^npPB}dJn{#eq$$$6zAh9Z>vrW|Eq33cp?+c z6TN)qu{%6#7k(|H#9Xp534C#_Rk3g#h;2}QU?8b`T=2_WbV;=9OC7-tyloz>wW-7^ zo#^W=*Ms$NcWrDLLU>hIQ}z^P}@{=FcV~QiQ+8r+Pf3 zx#g=XJOpb3p2={}$tR=g#tLiOCtj^9`nEh)6P{rx7BRV&6)jyU?heh%U`k(%Md)7l zIOv3{4f|B0OP2Lo544vhJuNW5{iE^U+`$xwXNWMrnhLs4?m~}{s#5rLN|3vm^8$g7u#D|yBsrUuZ#cpbcEN>pw8ojS>+?x@ zrLxP!t`on*@fi21R7;GP)l}n9$z4~|xsO7{?Phf;X=T)P1MQ}M#{Cx|!R zf(KrNMf?nKmT1`AcTxQW`bR>NXUZRwu0BXd2tID56=OBmHH8DjVuo!XBa<_Opx z!@YfV&9s(K=1Kb^9)FRBX7r14BkrdGs46x&l)>pi%pqE1RCfNm$*-|>ynbvz2ZK~m zpFG-wwXlLrM(N5rUu-RVfOUvRw>JjhKnRm6CguHGxF@bT(u{ox8Eew`+zltzB-DK= zBmjq1_U>f606dTp8<@}e zs-Xv~KT~fJ$5hmmI>FVJyl!DHY{0jq9lgOe{q}beC8Zn{lHn$k&0NS#VI0_^Wkk*1 zCyS=Q53>ntRt!kqTB|}Y zgYgmX&#sZbK|-5%G5gD;EVn6+!WCLH(Y#s-@B!`<@&Io<>_2TlF7*pT#p&6s*gYNr$kg}RJjSLn8%)u8?~9@ zXROjP_4vGr=I}~P`^(yilRV31xR6$;8B!iHAFYoW%jiO8 zh3;bN!}VM;sOa>*4Q;Pl6*j1@a-s(bS3ZcGNEt|TuAqTK73W~CQ!~_~U~B9R%O6H0 z;s}HPd#lmiiQxnxu-Qd0*Kx?*QlzbM!#mrKvRCn5R^c1&&-d^;n%7Rl z{EO#aN<|OYG<^f8iyoT;xTr8?@!RedRrXr_z|3zE79wJ&5$whY@1H2uGWM)L+=Nw- z6I!WE=M{riN!1tT-|h2w3D5)J5Y6JGtQ$0yGiv-!Uq();v^^*biPru{9;%M} zH$Km=_hb~uCIee1O6gpI&eP6-6?V1>msiPVK7Zi@r(g5FkNy=Nd_2@3zHd0oMxw-} z*$R$Hd~u?;r|`^6HB#P6=mA_mYSOZXPncq~rJD33hfuqle`v<;Hh>UG)ogU(CpXWO`4WiQO5 zQ~8kNUW&W|5REIxPf1DRsMe9Q!9)WdKJ^L4xRwS7lRVw0DWY*2)I#RoPZ0~+qy;~{ za}&?5wKI0Uw$Oq|fARw6s&e63yRKIju-qBOefcaXyRNm%+{4FRTmnUE28VF7!jX1c zT-8;)4WG$GT};|i-JcS4>4L&TD>}B|#hz-aHpZ%$In;j5ujyF*qfmd+J$z%lx5$qQ z`W+e^c=Zj-Lb>vEOUHvA*QQ>7!!Qel5Z0qAW=XHUBIx`u0u_6v-D6g*`^3b~{hRuv zD2ti4_lH1Aro6+sph@!J2^IC#j7 zRl-utS6n?77AQi$0%5*s3_G4UEvN5_#{|l#ib{@TTFL)iUN7aRr353Qe8ksMfR;+k zBJlgu@f}Q#{JSlevZULn8YD4bn2p8P92A`n<3LOqmdvWt_Xv^cF)k>s4oNq>z zw#jVdZmE)rMege|+_jZs$HzrS1hjwE6DSMPiU1;vI;x5!?=V#^8aIPTOIM{k&aba= zFYzSje-`Yn%RTpX|h8K?|(ZAMB#iecs!i>S?qI@=`s8lO5zI*vJ+S=fT#h3`PttivaQDo3h3Dd1_JMnDY7$>w zXtw!4d!Kb|{5l>YQPNC`^7jiEf)-&LGvd93mpHb&lh&Y-SVlnmx12BO>O-?ZkqV!L zcIiDHXjvSxaBzHCoHprL*IQa)(I|lNy-iNg14%s|CD1Eu_(GV7K|IPvPZad|ssrF3 zwZ7d0qYMm>h)|iRSVi&;1)uFrtsW-Le}1;~6oOhYjWvpg6~hd$6dbQxp}g;W$g>j( z{1&xJ2bG3|bBD9fY3lt_3Cd_1Shc-s%QhDza*Z)1U&g)1P*`q^Ri7}a)f-&!LLffU`+|z}k93yC|0T zj1mhV4a2=9=tpx*q1{DCYmk=Uf;}NI_kdL)eKj`OFN0XD%(tIY^KWnlVj{;a(X!_8 z>yi_gP6zclthH@4;*5xuR9$?aX=T1QJ4PvIrKY52jPBS05=9o4S-TzO7iF{)TB(Zu z$5Z+rfB2C73mYSkK?Qk8QLl7dRz-j}(Bu5SlPO9Tmn@C|k(tnQ@TC|kQOXzq_qYv znGD$*(o0Sb|7#q`tmM~i&TzMtF9iS^-thU{Qe2I$#M(^SzFrdYUA(uN^yMh8u>BFU z-Dq*BmFbs1$!4*v8*IY2N@dV8(ct(2e9ft&vN4OKh0%*jI^=d-;62a$EQ;PIW@Jq8 zjBytu#FIxb95d_qFGV7{e3k128GF9I@e0g%vz^wE#R%(YqeTpO$$}sPr;?G8+1MuB zyb}OI2mlle_)h>AvHZ2;5}<@}0YYHlVCgo7%1&pn2mdIB7RemNE~_YLRg*n`X$(Oc zZiRnx%5o)0sHu8Xz%N$H?9by52rD;%xhX`;!}|e|mGr4!TtcWjOY8?}icKY6o);a( zOSbtoTrrUM7z$50`KsI^?3Eo$jM+!$qrZw9N!E?!EF!c$B2f4SHOK!#kS3o*ARWEr z@1_30<52xPJty1z7#2|e!d0xgoS<8DL}@#%Ff;zuv||E?rvkSU2R&#WnLZAbDDl^R zH+*8NY@w0*Ku5YmZlUtPHw5J{I3oCojW~0Ag<&rWZn#8l_6c1E>g=j31W)sC-LC~2 z#3pJXr|?ga>IUsM-q(+EJi?QH41UjRukbddW*n`}oY*6VLutzX8s)R;C4H!J;B1@EA4qHmmpB8*)2w;zlwE*8bR^op zXZd;)#F7U=382jcxez38p9kCt@hCTjPxO#PVZo$bjViKPf6zb^V%!i(3#AX_ew1)c z?NTTUI@>VZ0=Wu2}_9VmH1F%$hk+G-#~7o z-I=G)Uzca5N>UQ#2TF_~N?ehJh-0$pf5~tlGZ27MWwtmuw&OfQ+0ruaw||Nm4YIe6 zS3(xr#3wLzM@P*0@Dw{{-s-Ilr4vW=i$H;kLK0;&s2~{e^Tk)T=!&6PZZyI$NvfLW za*oNOahOxb(xHnoGa5xxSU6$@zXrJeO+WOtudwhZ)cq{X3|L-V_X&VF^`)4V8C&uV zJ*-ce zPQ792bPnLWD>oUUm(HAQ*IsPKW`I}-7a_;$qOWdFFWFVo@~+D(&RFfi;~&5JuY26; zd2qqJg+@iFFp>85Jf!7@=j4?B#>lZ@wo9z}F@_7SG~v+sw{uSF`rh}0hx?e7Ya#<^ z;x!aU3UY#hJ}bxbri8a^Th#7FSj{^jT1SkMn!@I+r`Rkm{H1FnRt2*7ASih|wam#b zHZA%O)JoCyCz~fsWAaIbk(LsC{NLRGX(c_}m`Qx{kAb7&B~W8km*N7W2fC#lo2Y$H zpt^GbdJlHt>ZvQ5lcqKPQ`VT7@#_R?IJp&r_bxODll<~rBut)~$5P|Bo33q4!aWvG zgETFUPjUyF1mR_y+fWtWN$Yi zEf@8Auc{Z9_Gk?sb}G25r}r3@4Wnj#)d1F`BiF0tQD=E0X5dTi7DM}-)v}m!9l*zUr#R$s}%`cVGY5_P)+fUT$ z^w~LZMXVH*j)<49IpqESb7_Tw~7dtcCltA^py@5E7>F?RXD`o~NCW7&e4di!XBu0)X4VbH6jPo@mjZz0mE z7gG(0&n(=%&9CEX!*A&_pWvPmzBaO{du~v5co{+sBWL+V+t`XZvMNN5$b`Jn3bINr zJe+~nU6P^v6!6uq=E2JuXJ>rVZ%dOI6^m5Z{N=wm6}sxZh8(yl6nkJrF-;vi=&wDu z1)7Yj|4L=Z;xW$5#H!cK4Sk5W49(^Ax)mo{py$e$4<vw{#YAP~;TElX?Aeu)_TLRk-2qOTxK#r@JLIw;AZZIQ3W)i=G63)@QXTJOx9I zV@~GeZXL^1x|}FXtp|PS9mD5v17`P++8AMJE5J{xvaqo9z8h+=6@Sl{z@&oHRH1+% zS?jj3VSq4rgixT5vHMM#vCkt zE(u>utHs>DUd90NvX_iP(m*phN?BLiuR6iMpyU2lB65#hnzG|*8bqFEV(;4eMv5jL z_ukDfHEB{cu|+Rix+QSw%X`TkLR!QAz*Yp8U?(D5rnb$!a+Qo1*ZY(XW;FMv@q3z1 z)eJ@WqM7s+ZAks6fxPxhZO%V2Nb8>Rj2f7r;7HU5zR)j&IbTSgojD3~So;s%J%&hL z?SSaN+b#b@QhvYSLWE$JV{BTvlImp{=49ya`$^&3^hJW7{dSy;NIfB&8<=iaO*Btd zAhR6~F4t{U3xK?ugVYi88w_W7#*rB!@`tM7$a?R3PlMz-(_*`*XrE5iEY!WV#7*Y? z5?$pom7<*1EL3t`XU%Tz+()Nw*RM8yxYh1f6C2X9YsXd}C{QTm!}fCJyr5MtO($Xp zncL=Yk>>gYB!FL(ZE5?ni-gp-_)!Qf(y3_s^cg~{w{a2EnY@IFt#KO0a`V*Bl~$he zZt}+6S@NG^TPMxJGFayE9vXZvG<}qh%Z5XSR{IGF5>tC|57+~Ys%D?>4pj-f`4WGQ zYI^wNK%m|7mL)#mENJR4?bMHUOaJ@Z^3%3?I~|z!0uc2*%#ANvs~el#VC*F~p;@Qz zNxf_i|2~Bb4c}GkC0C{GuBWb_7jQTfwW))LU#M*=Oeq;tBecg^KYs?$q>nj_LxplZ zk`K;v6jP!4nE{FNeJP(m{Ac)()GpoF72f@X9Vb<|aF+=Mbx7mwoA;bN7z%krfDbl5 z;)jC@s-?YRdN7~YBd2BOi$rN-Kr)&zOOM1x~(1hT+kpD zMl?zip6^sWs1QCSBMVDYQRCsMa?>4nK!%#-^k}b=r6@Z@llwj>d`9&p$UNdywT04+ z3q-QTCt8G_sKJ!?F&ryHM(*SI!Bh=4NXgGZ$a-{L^eB0tX+Tw371dEAx*}L#bY9 z4&zo6JBNG@k(zdtHnEkOQCOx~7jdsTBs{lHh|@ z7T~?Gq=xRCTxD$&=p&^B(vB$$3pD)G%h}qz2Dzw%ESmVU3DOnPRQ?gN9^qbc_mjq< z$~&~K`-K0*l^q)%G9IV|^L(+tD&dwBFfH%S=tmH0yCc`kE75vg83u2gOHtceY>HJ$nzYeIkbW&iSt$p)zMSsC zDQ)GGO%`KY7n0eg(Qf5|XyVL(>F3z@dyt9bf=fFltoID(^n%s{`|HMa+lbJ*Vpj{d zfkcEW)~((1j4O*;hiaC-{r^>NgO<+?WL15*Wl$In=jQUJ9TJpVaQW=TPsJt|unF9Y zw(}Pyl4EcscQ3g5u5lQdw}6Dud>Yx~4m9O4Yr4_Z?yoN|*NZ9@=2LY_-Mfbg>J4pf zSK5ja+^Ze0E8WhVJrW=8WnODG;lOuypIa5IrHj*No3dE-)gLxj1bA;N!aKfBQ+dtsA=nORYHNFR zZXBenlfK~`U8z;qRE_sTiuah!OyxJNhN{KLvRCA8uvJT)Os0yTS#><8-~X;S)Bho~ zeKM_F7VFHOp4p$)n}iyF2o<6Eok!T-L#~{zI+weiEq`J})n`a+TKtXduQp-Rczzj` zG5A$h!CX9Z%=?GPZ9eSD9J&J~O6=aU3k)Q@ot2fPY00JR9x6LXMhi#(kFikb9*)Y+U54f_( zFdR>OQn}-a5DTq5=r6lfu|03 zXC6;wd3sPFJ3b&(F9i=Rk%FH0g#p%1BtuFzz2GuTW{U~K-R$Td3zorwlT|gw?j`sd zjqL8rhg3R0bG)FM8SC195;bwtP@djZ3~DJislu3H!Y^nvKiT(#FsT!6$iR#W-3VQW$?k zDb8I~LK4v*b*5c01!5lV8y0e0JHVw$%q`D}O3i(sC93IH`Y^ILC=!?UV#gCTeVMe@ z(5l6I>!QL_kL*1fgSIHw6&bY?k+GF8`sE$pN^JI#|IXS9)(a#8Zm!I>F{LBamj-S6-ujA@=Dpr;#gh{G~ueW~*9-XH- zj@og*x^czoF3|a~YTxUH$NY^{coqk9c%tIBhgD)Xa2cwq@rc)r&(tMZMBaTpiZTyq z>M`*v+d8lHAd}@eSGW>t+4BTa6bfFDe7DxKZ+Q2W{60=fQj)#z;e&WzyvnAhNla>P zJ(c>5>q`4{aM+n}znKZxWpSYiw$T2ydk?9>-y@dJ`-~oEhKSGbPsR?H4&3jHDfkwD z`d+I`-7?XEA%vBdkJzk8>Hv0h^*&3=5q9inG=_hkzeeLEitE{{AV}^&$48_I0#0+(+i6uj?`GX8TklA^e z&)Z3{q?Dx#RnK>bZOwmCcZ(Ghlug*%eyZ(_8Dbq0~dGYLr+BWc?X zuzep>)$tn_?!8qb19?L{BzTnF`R~)INp9lAe&UJ6-?ri0p;-F4TsZL>5Hs_J%i zBP|jseZqk;FgUjL`cJP_$_gUNl6k+rbeIeJ*KTq$lD)=7L8ruOFE6fn3g0er zs?M%MTb^5C*(^n>5&mM}7qSgOFc%815l}o(BiqrkaF%v)p%Z9mEU(`auh#cn$KtqG z5M~o6G#v10Uj^%$*1lzva#E|U`S1dnbQcesotQ$Q%P4_~I{-W=HT75nuK}5iKt4e<$$Lj7Oi=@BM1IeCZkvOHIh>-g9>7j={=jhxVG8)GJafRsCHFXy))s(iIWit zCSKKMPxI?)6FKN-c<8#0AjkC@E?w&n@O-O(kh$0$4@rf40)hDL+y2Yn-aLnYP;mS*pm6nhN-u4Ca(yU`g#ogvaxRWCQb(l(}h zSP(>C@^$0fCJX&QUoHNX#gB|x(Fb845DcGbRsR0#`q@kTE@8D?fS2h>uzKA&Wq7vv z_||dI)96=61GyDRC$$c#Jg|VjlXsQE_7w?8sNB41f&#&}KgqU1#s*xDx*N!7dF~D$ zoiT-@>7-5Fxe}Q67t`(v%&a`M8O25QGd33kqA5du_pXOxDw z_P+yZ(NDom!XPn{QEgT#9O~t!NSpt&Ly%!leP*jckHT3;iQOLw0*E}Cq&3m5*yGvh zC&BS4-`$tc6h1wfwv^>oNse@N-5`s+ee~-3mKH-GE>b%0Bn;||_&a*sK4c5BdYJwn z=ZEzB>wWE)4jAG^!xkqghJso?0fuEqVlHdcH*GKJG>kEMg~FBx_L^MXzuuhpuGj#N zBwhbY$=+kSV}%TR?F*pMl2Tz^EA%4EA~XS8eWxn`32)E8Bk%X$5C8eMXa7DE08dY7 za#yETTi!t^O)Q&Us$)O7gft{x=}rkU{q8L`R!|9XhP83-2}?}r3BtP5a;1JAN>bH(_Xb~|aZ_CQsGPd5O+ z-J59TT=#vcwy-SNY-c@$wy%)6Jl+r*I{JxuO6W=jH$ZJuoGOJ?ae0r z|3~?+eK2GXh}xIN5eI5wpeyV!II>{8Nn=>C3u{3-@y}46Ma|E8jt=97K1y!Wh5P`gS-sftH}hh8x9Fh~d85AMyGPXfTBAV^3x7yvQnCCue&z4Tm6sWJ z9j6%tQ2agJ-jcButf|0-di=QGj)EDg}o_>RK|1ODO;pEEZ`>TCn5?CNJNM4keR6KDY>l>jUU}z!cG%`o~w7{8Jc?$};mH zJmX`MyXE!#y8?OH4$Do##SSWrm*(~KSdx-(`uo`aagDZbut3u#gpLwic=|AnYGJ|hbr9Wt3_ zoDoCRX2tmo@d)n?+J1CKUcr6jpx>je3Vr!?ffJ~FKP_#}AXYYhFqK!;25DwG?YPgF z^(N2u7hWeL-9J}&cuF|Sfwa1%=wtTZXbK{6+r;CcM$1mm+15pjQScsh;{GD{vkz%x z98FS2%LzQB+ylEhPJWMvaJlD=xsYBz`HY_}ap)~dZc_H!tZ^UIp@{X;pHmRm`L@({ z8T~2z;?rft5vtb$S&g-P@OK(`ou3BWVp~i5$5DlFVNRVSRj>0W_!1F(I1lXrpyq`J z(pz4jo#iLM?fhHgaUEW;YHsh!c**i3L(9m98eqnJA|5cLFbuyNojsmM zy9&w{xgX#+#3NjvzGA%LFFwVUYBTYtcg^R6Wl+WCbGF?jd{%@~fwD%tOc0ZgiuBAdI+F89LzJ?*WNPP+9fyX$4 zoFzDjInUw1Gh_XmGiE^8u8d^yt#irtE031bSB0#cqkJvy)zZD~A|fI!Ol>j`!)$0y zUENslM&)hlMs*C{moeIz>%J`Q+L|u&v!GPPOLWMnM`Wh9#!eu1bY`<1VH-YbUSl?4 z`FHoAD;vazdI~J#RUV+$8+se;NeEr@0ERch#c3kI>0H_cB z%+hX~1Xvys`{||=1&UayV0F-ilwoBKQ~mXWHu4n=2c^XQB&c9dz+M!mWp#jvfA-_g zJtCp;z2*=>fSE>>5l{)K#I?C;rx^_Zop!Jz3>o|xIlz4@uX&E7^j1>Ur$8oTbZk5D zP=hAV{%4@cw0!E$P=;|kf?A9KwKFc89z%HllYY36Me>y&%%%x{R(MKHc+b?Z@tKZI zQ$OOu(+Dp96vG$m%rMqD{G?Se_$02pc7S7#3rDU0FD;7~YYy|t8J3-s!NW4EWwM4@ ze`LR#obHWl+ULD-XAe@MQgSqaH$_drsI-Z`;4mRdFs1@D-ahN@5uCp6Zb%=V*j))p zj;((b{5O}QqQjbRVVKQXiUM5$N$t8cMe#l$Ee73Bh=LUa|4%i-b&`{!hVoFs}Uvblkv z(F~D70-}QLU(fH0tA3 z*S}SmJAoXUK%753Sls|F-!Urh?#r8c4OT7u(<`{4^D9o+o+!AZS#Q;_D}2Bv{$o=$ ztFLVAcSn&=rh!TKL*~lDz{eU8A`^xDK0U?8_q!+8sJl;eshc}L_c0{I5XX6QMEoWxV}$st5gG@q_G$2z^SiSD>FKT2ZCV(0vmoW<@qQ5+M;$@qz6_ z?e&;87<4Iskw~(*zoVAj8dGPFiKu>MEN*^Mx7~77IN=xCfy(^fu$5YMd1EH)F}3dc zcZKi_Z<0vY5T_8Liix^ZO-`rskSWcZRoPInO@?@-n;kKoR7jN5e5I}Xybh6{-c|*# z0a7wxVFpQ%SW{8q5(6q{rzr@7UYxP0^i+dzY z6F;;W*DStG2CmGjk02l1C>P91I~hD}!o=_Z%Wdh?u4I70^nd-~S*%<#J6AnJ4J=oV z_h(7RCeMRT~4vF8+m_tRq&v z_ENkV4Mi7q5Gp6&WBxmgpu1^$wKD6zOrikpUTh;#!tMkn4I||kK|%mwlHG*BCJTl_ zr|7|)30_VaC?Fozo8cG2H?h7c|L*PMG^>-xKy3j57yPmCM2{CsWpwSqV@2_X?qEHBd8Hh6hN|jpLa-) zjp*+eY3Gq?&VC0z2&JH`n!3p5d4ZvhX@2G#|>4wT%r=(epp9B4HiN_se2$ zM5WP3m}I})&AYk94>Y5&I2zmuegn3Bws?JS3_R;U#v9;u0U`PD?e{A$ri?)K{7;M( zxFZ%;X3CL{!24Vd|0@bxASUs;d;+Ou&ZR{<$=IbRnW#!&cVc%(Gh&Sd@TnBF#{W(+ zmJOM04(GJNG+%Ow?A87DIZ&VpL$hJJoi58xG}9;;HVXrKv-Kz=@*Ts#3kCmM+9o#& zUWm_EPflAu@29wng>~b18bAeBYV<1rex~#PLRNCQ$2_!3(1^obD+<@0`D6C^V!6^1 zzqKbvSHgq&h)`=loHXqtg<(+pUsE!Oymq?B8iq!2{42en%{(_B_Cs)94|pQ~gY?O}geY#x|2jNN#p406Wd)~`KPmjg?y{y6uXdg#|Eq?f#98FluAgZ+a~ zm%H~;yf~fOgbMrI-zoP0jvoP>$Fm_r)dP&d(+Kc1vp-fI3x_ry0}crb4YNBbXvhi4 zHC@W()r7Lre~GL+fU((Eu_=V5XFBMfGxu1KzcDD%ZA#X8EbkU#m6%&HiT((E<0KaV zCa{@=DSm8%;+rs0NrHfVSd`%Z^45`p-i}j#HV;(z7L=^MJc=~wdt72L{Xk6>rN?={ zfMe}<@zOVvp%*0|$HR7F+M}zPRh_%nSkq;Soy`ukDiQa}-%uDPRG=Yw_1Pi&^)@&D zETmY=Q=fG&p578a+9P*=%Z;8F4UJ!3}JWCrwvJkYsQm=6D@&3$EB7F_@D=`s}w>zYKnzhmZ^tzdI0`mOiaQOTQ6maGh8H3u`mx1It%koaO- zKf@S$KW4NduPuqrmk{kzbd>O@i(Uc`9YFxpl5r)Oh0PUorO3-1#!V8|(n4PpH3U8! z@j*t(d^yD=*+W7`W+{mdta=>9(R`NTcLG+_oeE2hPRa#cmwROyLFL^CIWxVKWRglD zc;0O8gV(8D5ruBgw?QYtYw^?1mBq@8)Q>%6aQuu}TcuuB=4ql|`N}P)CNH>q={Ac{ zRd?Q|X~cE7=$7wKYhK#o@zHl8XrQVDA&5ChmJ!8sn7Ei~2;L48o>crJKnW&DJTM#G z+H8=o&ALA*19~XPrVd(5S#CCcqDFdi0R*B_Gr^xeDQ|`s<=@vuYq}WP*MWtf2k$B~ zN4(|43dMR7^Mch$00)DDeH=S@SX`?&fCQz!$5iHc#rOQLeH?8 z*Y;*QI5YNrPtu?ZEay9u5>x;6kExK^)ncz}Nuq^WN)aVO40*^FYz3IY{0Z13(Ix2J zrLv4|GEvW7m~Rg~NbleyKdf?9%51Q)>18i*)A0a{*;)Usl-DOhRI=*YOFeDUY9T|X zs`Fq9>w;1IkoL$Ntjsu`xu%c1qczae_gY61t>ycc=1`>ey>8pDF!7%C zqKO5Oy=_W(UFu%dYqo=Z-!}r-9?Wzqz>!kzonB_SjmnF;?)K&5qyePb8MWX1{>rg# zXyE?Wj!F1X_jR-Tj7iH;sq2tfgN8`-sa&Ck5T+UH`~5pO_dS8xb<4#cuKMG{fJxPB z3LzJB64=j-2=Q*|sa6yZYVp$7uDjc7(iD9|$H&J6XQY-7PCQ+CNA<8N%oQ@Zp0r%K zaqo4jq_szdyF$2;*tqT#eM_3P!EUh6>GKzz|1HYhJ6VKd1o^R&jDfm)yNNUyDi|qDp-MJA884u|4^=GW2JYzdAWK|UkV$TF} z_ssH|DMQx38`+V_g7fX1ltix9i+?9De&k+{T@!({BlRrr? zJc*mS5yQ#KcKMzkxas6<&9&zIx8@&gSpd2l4=-u#xq77ukb^4{Pn<8Vt#m#-m}bfc z?3^rYaETKKh$9#_kqrq?>!;ZhRI9EPm7*=D_mU}UuLU$DST6FWJW^6_;c^6(TseMk zp=}OcPYG7tPHuHBY<*!px%xY(B4ZI|ykQc`Xe3iZ6>{BE?DI4;Z(YiuUZNv%9&2P5 zwftDrRQPx%klg6eaDOoM6m7z8acn6t|P_1F<1AirNGQS z$th{3jJ!_G#`9~eZ8|a3E=wr%9*O9>FguYV82`#g{`dYHz&p@KT$ipcy(PVjDN8;s zL@#hCZ>JiVxki0>`JCPAbX-%+7F`3vlG))fAIvBzz z5#eXo$2P#?BWHY_FSiuYs50*JdNVj)ZUtk0AJQVmls-fxHM%!)W8mz!5TV&&wP4jL zW`O1bUFM$Ipc&lr{4VbaqzLc9`I}&t`IEBv|aVK(G_=o!uHc%L(Smz-LOS1i`2XDv;QJ@m{8K>^gH;ssqGoP z)z|wm=?jLeVfyJOg|;^&)6f~5bWV8*P~f~xXBA&d5i0-L6?uEvaWLl>kFN3 zTyy>KKj|#E z)b@vfZQkHf;=HbN1>S{KiN-!4j(iGLzOkhDR0?*j=jHvZkojFN0kjnq97YiD8~D>A zC1F}~CirRltHeT2+P`qV{rVLJeLHWx!AhmPMTb9HD-7un6%V()^9==q^!?JJpVa!m z5+7?7wQEW!EKRunT-YK!qT*53Ze;>>MIBtAy5@m{05)Z%;AgR;*zj|2?$Lp#7K}hGW80NLKf^U)8dzQyED9C0_hQ zWq~j)0#nh-z{U{DdCS+gXx)2zxhHmM;}<;@4s(b_J^womr?UJwM$Lv-<98}6E3+t6 zX^T*>G@Yzh^QfWRI_z8u8G*BL%Tf_~s%dK|^(_FFHu=EGwzQ6brx7 zY&%1@<1LYlY+bp2G4OaiEhbz8Nf=Zc0dr3dqs(`(6gui_^ol>KKPEPav*{oaB;Nk4 zU=g!xWGC?UA+*RZ<{jHd|8(2UrJzY4JADgHLwr*%M${ZI2a{l8)4Pu8>`>E$(J)me z|8QShPg7-kk1Exk0+U!t->GVha3>@X0-*TO;BIRNh_%JNP+xxoT=QjwYb{GES)HNC zTg;-t$zh_58w6aKED;%p%3_cF`S2BeK|THIll-hvJ_ETaGrg~@1TM_OzTHT_7#SUc zZ)CXc*rZVUwZprXO(DGP=m&v=0#JtwV#}7{N)p=m8p3K-B4pfmnlml3z59Cq_KT-K zR)iV|AnD!nmFk7*oK+*o9u12uXdg_|`*I3dg!Q>+;#EB6IEtljQN^>Ve&!R;xi{4k zaNy+m)Q{q*LYn+mM?~ZS-poAIKZy0Q>uqK?phbo*0t9O7MTtq@KEd1R zWwn#Gc-^OBcp0V(*{RxSmL0K=%<}*VJP?(D;p6~5ep-ZI%g|xH!^P>IFFRZHL+PM) zE2mcTxM4NYv75A=Dn@q`3SJ zlTPZL8B6X>yOlTnii*gnCYg*Te)Z`nByU7i8`mZc5L9IanRbMura$^#-9!#jeYiuY zN*b7{Kig}rb;XXH2N3EU;M?(>>J!w2y>k*S+Pb7cAAU#_5Kx^ z%rtpraN6kkO z!WRi2Hn+`HTo*XJg0HbCG3x3aF>No_EYovabA}B3QUWz?0Tao#dhxF(Lj(-l$|g2n zD$6KHM+b43mryWk`(GE6rjeqZ+KN#scy=q#D|{O2{h|$)wN>wRpG+Rhyp4T*B<34% zLqm5}_ty;J(4UX$5LG|wEYy3LhGS*o#y#`8rL%|4`}O{2(0i!1F1~?MJTkQp+YZfM@p5+q|MkYk9@uh zZC>?`>yc{MfJs+Ump(TI1i(?uNFI7N@p)t&F(AwXC_25~`RI&Hm`}p?d@e9*rdy#aB+92XNs*e;&l)+(+zr$x zpFuTxo^F3Pa-?eQIsZ0fkhs|mdkl$Kh>Bpj_?M|Mo${!KtobS_{K8Ymxxh<}*h%Mw z1B(}a^-H;6ZzuQ~Tl7yG)%Q=1aj?72k@XD^BX@7{r^mkFy@!-X;H68D83lzE`;iQb zI;M##do# zT!&i9uDi}<$%{2NLmTZ$AZ3U8I`6^)Q%E-X;B8>^f$*_plnJ=n-h1^#!)X7yDqU(i z{pLB(mgS^;`4_XxR*5q50S&)#>}L$Ys)#soFe=dmij&-?f4}^wJF)x<&W?lT%0Bzl zAjA&$$Wh!YAcrRqq7vT)t%!v&bSa~=|Mo`CBp;I*Z4t3sX3BAyg$pMWc@;{loF9;J zQ?T2^$De3z%4e(MP)Lk!_Ca64t11)*2rGj#Ka549G~TP1xXHQYOB1vA;ZkQ7>szxJ zb9I-RJX8-4mqs%+T@~Z;uJ8WwOPd>Lue(u`UrFwhBJ`yvu4x|XbswTr)}fu0HtQz} zxb%tR29Jd>d9u);)LuxJT$)3E8OlyNAB=D-o2FT z@q|-kn+F)y!z_Ytab30(YSN1RJa@Yh2wOHkqQzMAZE9!+d~rJSaI@%6Wv3NtG7I_I z?fDRv+xuR!Y6`a`B;={+=Sn2d<&vI^rf6~!6dE&d{`bQ1I((P7O(=2RjL@0ukAQx{ zcaQY$m&~$FA&P?OWmK^5LLvPL5uaqLUT7l|g4tg3sq8A_D5QiYYvfPHzoWi-QUKvL~n_=Id}h zZPO(o!Q288l8y|Baf_TM9}ax&{%tcBrCVu}8R5pl?~8H|4~(wSc6c_nFFc({B)St) zTb++L{{!UXOx2~6Nm36_{9gmm>$T#N22PHY#Gb+oce>3Dux&v}BukqGxiE;%N>oe( zqLNc4e*VfveT&(q{N)PaR}{af0#M=ZXeMRaC}Nzvtg-akfdzKg$@xfro$5vn$-Go| z1H$?JEfp4gIscFF&*{PR$P@?Uz?JNQ&%ejQ&X9(}5=kCXoEC;R?73gIC>$ds_$vn9 z&&cab_WWi1pdhpotRShD{p;b&#mZCXHis#22z8$Qg9!{s@q?lLGHy~7tcejp`hymz zn#rBAo&~YX29^dMpj!u49!v$uUivg;jjZ1ELxHg9av;g{r3vfU_9|5LQkygmTfzUA z>vXRyhe(%c7m5oR=ky7SY%S6qoo##acUvo!%1Bw=hWdyh-bJ`lIwj!(;!x%)KsU+FXyPBZ}QLTK1;(yPZ%Nl`hW5&HV#&oMAI2yAAu#htL4Mu8dK zr7u4iN!L%cG}K9GJ$}11r-r&wV2ApCk5+sW+s7d}1>*6pXxJ;)O;*`P$$5OMnGUY+ zkC9qWGJWT)whK7m0`cmSg#4Cd#N0?HEp1R=AM!RO`)RE(Mt_DEk6xGlM5v~pk6@__|9d+nU< zhu@q~oxA&O#fPLt=v8p;sRrLeO7N!bWGX&tYcHP+M|j*5MOl@PZ@}q|F&b zNQl|8wuy97q!{Dk$ZNK?+Dllk5bBaWUNZTCBpXyZ3HhJ3DT{YhZDZ~Eqooyf1SH=9 z6wlAv+ehxYRY!ljP_RG5c4#L4^*2MHJ{InqDaQmd^@dV-W%q)%$8Z(XbpRpd?; zDweq%_cU*iN-_<6MAT1X_aq}+pjZvVTSi6AD5aMYqo;4|LXAHJ1rA3E4Y1mtw$`ZQ zr$8uFr0hPc4U)8Khml9yyH2mky8JF;WVtt5Ma*e+p@v^dYg*uGI{JE;6F+&I^u4tB zr2-~2g$?Y~e2JE8rGQ41=%w=zR~8>=W_Dx?Wn?V>gR-SA3?>GB zcLR6t=e#o+1L$cyPDmswY;ihZV;e5;kiV!SQF3QN_M30Cx+(O)h}chn!L`@^*Fe}& zEJP%vqbz-ySWqWtIEcQQKIv};RRs_A^@8PKYc95X`(OY&k13gF+KkUTlMEF#x+vlU z>SQr~E4bnUT_!JgtvF{zufSoxNtfxr{HgBKJzhzp4dWwpx3)aORsAnXlb#9gZohYn zTvQPmz67?dE+eSsev|+6k;`qU#HAH++%?MF{-JH{uPM@0A-7C>s&{Eqj$=1(p)AH~ z&p+TP2H3Mv{KB@*pCf!jVYR^ysJO7J7W9=)TSU8XYP#0vRT z-pbV?bdMW&{&nc+jwS^95rIZv?R@D0|k#RJ6}6s$rtuNrC~ z+2g&#QI=RpwW@u9bi4oE8_jerl!_o_ee~gK!eMSc=(CA8Sn+TFQ$@#H0C{mtX&InV z^p=8Ur!;3Apq|CJl)BUfYL+KYNUIn+mPBf%R_L}p8mc%Gbwsy{q0T$GJl-$y@Ftj1 zKh(=cYpE*&t?e??QgEByM)+MIIM{$jdsv?}jTO*{ATmCD9F#rV7f1xTCl)Ox6xJ1< zKh*BjCrUHp%Uv^)KH76n=tYZKvRsJ8w{BT}6;9o1>n9)m6B5{j=~3NC{y)tmGp)k! z$}RZQXgU24)UrsVgA>-0Nj>6PlS$%;7)X?tc?mXIEBs<2cdsl}N2~lEMzAsSTbNcM zYeDwfRK4RW&n_LWe0X!s>PYq(o+47HAYY9gdMH&M>$@F~{f=TDUkMagUe_msi-<+y zu<=c&UPmsrW;PsC-vv-NZp!pM`5&Uyk%(FvyPF(#1+IYF>K&Vj?|d6q|G2olcrm4c z={6f1LMN+SbOr~gXavbbw~mB8-fv-PU4bz_pRTKo~^3;2RT^UAX8F8tNROnOdRgcU#*Qp;BNVLH=#O@ z=s=!j_jxzjrUCz?yAG~JpEYkiMYNfhF9Oavs?~tkt!?SI?}#?dxV-3$8jwyJ^u|F@ zGEmHZvaG$Lmblns@cg&XZfAi-$nZyq_Lr9<7w7fTZ9Z4b|C_D_6`C#~S8aR~q0o46 z<)ey8MM6*<^3`*2hn2Uc=Xlm#E${OGo75nij}BD>*yViLBD4AHN%iO7bM8$RI>()3Mj(npFQN-sG zeotbEQ=R&C)kUdzf2Db>?*Z4>NSa-d#9CKaiGD91X5&(lS2lF8b`xT_8_dmC9r=!U zXL}DzJV{A-6bni&NaC#FHa7tNAmW`a zs9bRh)J*GlCvcla%j0w1T6}-%2pP1j?2)in>CNmEbBsc?NbrfUk}l0T0JfKO+wAUO ziD+gr|K`7>P8KU3+b)+{^2+uU^HthOzdZnLD0|F68m1sSh%8R*twpL(<1Mz4Z3eb` zU!=>9$nG!x^2-|aN*n@}zt$N42Sb-IrU4>Ah#uDqgh3ol?23`byBRwI*yQQZU6vgS zbqcAd7%Qj-W4=k`?6hVRoH#rWxl#FM&BBjQSU%Qad=dW&LeTSn|j-{z}t z{WU-Ip#S0RwSGG5`&Q6##y3V7B@d<9#vh!odw`lPo}U|gn7PL#4yKi}gDfsZxcWWse^v?hM04vxC`fu^yb}^#b$eZ#WaTPHApiI}tADcP z=;3@pOL9?{hh@r^)(66lTsu_3KgaXXWv=1z$BKyLnIln&I_}P;P|QUF!OYg2>G@8K zN!J}#v!tdi1*1par|0n9uIdTNVqo&@WJ=ZwIOF5DQToKCma^>I*N@c^NW#0$|XFtv7l!Q z)|OwN>18 zPthHjusiwKb15;1`@FCF3ZPwmT7?#U=E^+%L7qusm_QUA5fMFq6sZ+1sDJaA)OFQ* z@tv3LwA&uSS}ssC`+p|}7aQJBx9QMNU6(HOY=|(I95S!9Ja@Z6Rwgu&ipPz1`{(d( zayyI<16A*EuylPypU1qk$NCkh`z^lt5v-tM_$N_prh_szWe)MzL>VRFreD%ZNop~I z1urxqQ{-ZH%m$v$tnLuLf{Umo+1JR_Pgb)Ci%C6MJ~?6)0I#iJQ(dMzq8x*irdt8m z^b7^#{TJOrMA?jjaiRKpsE8C9y!ppzOISm@Srz|tPnpG7!_{&`w19@0S8%-=f#uyV z8;5U0b5$x-lWV&i8I`5%$|4g+!-W*rIb+c{KlkfQY_|N5y{{-mcdvMVR2bO~nhKyx zS=p#QXZ#qOTHU=ljjv(%IUs{<-3I8M2WoZ@C_)b3W~rXngF%6{gzYU6;p8+5_+F^+ znf}|}dJ_5HCVQWOeU3{Qoh$&+LSvZTSi!(FWMGR0?HPTB_&bskZa{)QA+oqVkpuw5h zn@OSgy*g8R-5K7W@C!ZHs>r8TTaYNwbJ~4rduHsNGN1UA$1iVWH&JSurevSuf5T)1 ziPO8nrP|vy#j#8O+js-b^Ii`1@~`K`XYWB&b%V9KPvqe? z3WiFLIueeS;}o1w`-yQMdB>Kx#dn&^!4LkpL`i76r|0@WXZ*6U*xy#m* zVGYTY2NT7&96}!z=-b_e#3uX@+5W08yXCJc>(`h2Lu<(I?uH;8T?sF|$05?Vo-B6I z)2pbkS`VGw21%&omv#>o3x+%Xbb3o_wPILxRW?!@NB=X&p;%HcI+qn0ZpQP6|F;bv z#Hu!bXsNX!S?#?UnrU1Of0H)opDd>>!TAMjj99esJ843?8)=zV1xOj_Mwfg?{(fdlL2`aG!S3-o3KY#rIn zk00|q6DBrrI5ifWs$PU>VZc?y+WQci zk8@H@_Oxj6uL~2~3%Bp5@8{3220i^1K3zr**_jeEwuUgW&6bWhtAa)O8goGQh#h3Gzg@LKPf7ir z5a0;S(_S}aeJqHYCcC*Nes`G7|9H>uUd-#ZY)`9SakYUT$akZ50a^GJ%K*-ZPk{t-t)rfjlb(`& z8LhS`aat)@*}M%_6}iQXIlGut&z23{?gTwv$b_!S1{SfMT9|e^Pyk$~iczGW-EK{C zt>tp^u##0KMcfF~)Y8xxqAGZOfdNG@0Xa-q}4e%wGvMJ|c=9jnRGhc~eW zv$ElxOBTE|@JFa78%v}MjS$pmjpP!$2lV@O@$WmS%(#_jSuCFbl{XC!J;Nm!w92^H zPFPOt{${wjU7Y0kyVl#VI&JOxM}u-UZBDs13LH0h*XgDYOtS-XV+gT|_l2J6M5beq zF`c(HB>Q>`o#v$XH*W2{y9=6L;1sKgHgaN>vTI&0sbzdsX=U_7M7{lR({);c&6ARi z1THF7rnDL=qjzfJ-^HqYc-+iwzhT5vt=isLnu^VAj`SP4+hfRPsP=xO=!;iYc5CR7 zvVP*Sar;*L4J>7;yXZ%e8BAy2OSTQ+R?doZ9aCX}r_P|+n6>(|$)o#7PJ6g?Jl1~V zErcBY2-5Q-r7(u!X}75ZS8hWMWV_Ov<4js!efs0Xu;$7s2BW3m+JiCNW2Ewoe0Hf+ zym$ppf;NTrMt&!`;CMFV(A@>3<=lZWFGv>y**?+QX5Pyi_44#KhjiIBl1Oi>9|vr}_LteWb>cLuNr77`bjOo$!%61nhXI*E{Q{lwxt z#HI6-p?P_5b6`p+-xH3tB$fU-#e$Pz3pjn>o=uv)dWIEVLggZfYFl;*&8OAyX>bTf zKLUw@2h8j8+GjIwTb2Otk1PsYE)?B4D9BW$UB8>pB7`F10ej&vkL%~0#p+#C89c(s zFwO1%wUdaq>b79S2Y%f%tkJe51duU#|mMxdOSZ+m2nbPT!UT!QL z?0LcbnVXwiDy|wLE*^!>9}-~=*l2E!wtgN~lkJriFW5!TojYGIr-HWMII@)VflG$? zcdJJECRj#Ep7H3Ec}q$a5C_+3arXg|Jcgi)AUMTvs03sY7c$~~U#Fnc-tnrVbw0$A zXg8RRzItn-)QEKVQsE^)(63nOLg`l9xTBkn-oMh^)Gje8myj@LNl=GqHgpzRx5hSg zwfVCohQ*7@?dK-v07B}9vIzGkNQ5rg=p#bXMcaudzAWEg#|)TuIDb`pZST+;vRG@@ z4biRq_2p3Ovh%5IL|*R$-{Yp+S^=z*99z5|nVas}4UXA^&y}oY@P9Xm5D+-|daehR z7WniD6DXdZpJ-$1MuLd;N#V*#L;(s`RW%)Y z1Q_rj2~U3cT3wDNxh282$1mh{e*tV(h13OZfNk4UNvF~H6TpB$!UJ9c-mL+$=~_ao zlW`cnO=sjeVE?qUK0Mq&>XObBj6G9VE1)ON+6CqR`*a3r!9TL~swQYd-(E#c&|sPn zaNUG}3|FoVT3;-Ue0C^t0p845+v@UUajOUhHN_mJ1_&0d#fC^m>`exVKmUe!;qCVI zq_=F9ooRiURn8ic7S`B$bgV|!ZVKPrFyrL4vp*ul8Tmr^XO`_|0l*Lx>uYE0YS;HC z8|uVeD~=SsLEG;DJlJO?7P>yp6bxOdH0~K9cI$X4)%|6$RyELAI;4ZrHs3nOy}E3( ztGuN2rwg8qV#_v65t_-@a;yorI>NzWUR1keoQaeQ*ik!_Wd>!zG7hx-)hLU(V3P3A zt}a%+$FKXoX>QH~EzE`7p_sn^8^?n^GITc`;Nt#+NHUXXYZn$vQo9*n_TfoHj0@c+ z_P9o5F3++CoKAR`3Mf}yiPsipAdt7XUKanXChHhRG~EIPp?Ux?1ty{W0e^`Xljf|% zQc${FShPyfT&!d>YUkpGgV%m!>~k?)9b~WZf&nZbAU=jziNHt_13ZoM2qdG3vtBll zDg*GfJwN&7R3(6JWAsP8aXUPG>HpmKizi5^e1QE^0w7nTB2Vgxq2^QXc8rX|pNA~% z@9bTqSb)^v2jx1C{uc`dY5-Hm(C28_hTFt35dgrPHV2WPIAVi|cTd$QsDH{EsbJni zEYM54w;3Ne437Z&Fo+0wi)Gq*O}Vr+RZHhIq?;oCFe^lXPow_bBJb1M?uDkSLbq%Z z>^z`qJEFw?ah-5ngR7DnrEeI?A}8K^sd>WSinNv3JJ z$&27jmW^v}f%Aujc=gYPwDac^2P zG5;mH2Q(ol>>&ahP<&b-j&QT0g9f>0@`@@|uY7lpC#-SkS&zhvA0@Vl`|;0GO~3~r zZ5|!fT$*#ASgt$C;0M>4ec~xG$tU_vM*%1hSj;_Jy8T?i@f8CH*BkW5G#ILOjH~O>Xsi`?DeJ{tKSW_9EBcM% zdcbbXYl%KvucTc|!G`)v z_R{cXj1k_iluLa+fSH}kSa3uKy(_~37-ZPDaAGAi>)iIkJfA5au~%+A{Ld8g8_kQxOrK6|6{#KJ>rsF{Ljc7<_=!PAMqG?Q ze=q0YB|ewtAB>rV8UHi>=NYy(w*R|z5Hr+pcM=S)ezzLH8<}17j7IegS(nVte(+<& z<6uL(!DoNzLU40(Ddq|I-}tLuw|W`|^19MZ7_Jm8()>=5)$8N`quu|O%{z^gs%ix>! za^~`)wV0>%nC?El^Hcu*NN)4P1h-2&%=l+h?1)evwMXIKF)Y1I{GxWb zoLuWM3cha4b8U;lD>9U0UFpXFDT6*ezi!VQIEmP*^-lL|MJ;>q2ao5=XUlJuZYP<=gGTNfe^_NfFq8f7Kr~F;aI)#x3}rf^@1a@y>6P8rYm;N zabXmn?!Fw+b@|x6VfRYwUY^@_N>c2@n6~}=FgD8}7>n56=>}U9^RVA_vpbBRP#2$B zj?Vo5d)h0^(=>CJxn7kBGK|{dd?v)IQi-!@1bD`M%(~g9Wg8IJIp1{s*4uP-jSH=} zOG)&uIKGT>6{f^sh=Z_`p{xTO&QqEWQY$OiSMNYtUza#T$!bT6JFqa@+o z++T;26lc2bvu6MMuS$2DS|`d^cUlwg6-7 zWJpY{(+I~TLHUfi%srpfrMTZuN- zbhU@BPtA%hi4z}3w7VnOPPt+{K8uQ1bu$g)vwlm;9%qN|c?14BNMCH&K5p|h7swAz8KInRzqv$A2Ms%T=}FgtjCWxR~{!H4J! z0h7?w41s=UNeGu?<0{&*yj5{dyBbzr=8Af1_&33nul~y8zd^j1lw>^FEzz9+c~E-2 z3q;xo@3cx|+sEcQ&9(mbt}XB`oSbC0nx2uW=$tmJp2Vb@TW-@vId+zSmy#@@?RXBXV$utC1>0B>&uVknUK6R%tS9`Av4#wE&AiEcyH3 zSETgxH)@rQnal4Yo-%6>!CE`?zBudN=Ao;oepzU^!@VbZ4WUj*h33^{2!8m-nK2$BQ0!f=f#^LRLcM40^DS!Z@s^p z#x)e{e`y#lJ-}!*laTHfI@O06%+A{^o5<{9?0BX!Qp-@CWYn(a%;4ZsOVdmWW@v?i z^_`n;Z1Ft8&f#~R{vY#UK6rL=!fRlSn88v1;H1_B9l}lw_GtcEp1|K0g=<5WiLvy3 zqfiT*h=`|Az z4c$6iv33Y7s2F|PglN6#LZ{*I-)=ipl-ZacN-N}Jj-4#m8qVWpn~|nV${xe+A6M03 zzK%x_&;G$FQ!${pq!3Mh@`$dTw+nMLAh6rSPc8!B+Njboo@xFA7R+jmc_7gHv-w8# z-hF%frH4C<`hgXXVH0aM1@vz%C#B;}e(}pCg3DLa-&$%W6iQ@2-xoa( zyCY>62`WaH;R^|in3D<`r~(B}5j+kqljKDcLSwVMG6G&gGEbY5C`^0uuNeT;C$2Y% zLLH|0ffIr=j{D7*;qwmO=BdoiX!@%fP9MjsEKfAz#(C%+sdd03R~Fk8E#Iz8_K=R` z&;NSz;C&UG(?Cs5j@C9MQSUjJJ_VmQuUF4(mQ0!}-8SCL&HmSk9!w|9V)|Y!Uc_H41#(RS)q2!^F?Qr;H~Q4>bx3 zGR1aJFwg3o5^ogS)%=}x;;=hY_hlf<19Lbiunv*MVL2LRo?WG1OiPw}I)7ZfLh5^D zEJkL+d1wS2Tk(d4)P|!(hb`+=XJEvqAR`K6r?y@epWOK3R5mM%X?fG{B6;P(Tn_J% z&+-=&#)i;kQT9` zkrUM(8e(Q-HpOZ6HkH|9)3%*}=6j7DW#|Y|$1Z)S%bu2Rw{1WwUh-qlO=Y}jM}wel zvR2GaA%R4!)cfCkVqPGwp61OV4me>PmA?HpqB>a^z{0&;aXN{+e+X`FL?k7^HOaB= zkHsQ@maSJ^Df6}BCrN_w)Kh5JGn^^1yNZ@NU-xsA4cPmvxyISl7xwRetFPmRtnsg^ zU+Th?n@$NLi??%i!0^tz#~}%&r`{e`fpHHcOA`W4B!;0h%-F6fOmf3aq4iRE=-Hdo zrGk@cY>QzDaPBWyVb7ikZV!A843nBhaf@hfR*8DReS^G||2qoIvHq-0od1%4HFhQI z)A`q;-rfta!dS>G6%z}=PYG`Q{^0+-)0Vdx!+O&R#O;8F4_ja}32D7z#_2_akml^c`Nm^CF9HogHwajQe_M z>s36!+G&osxzlVa++W|Os)p%*MG}-XDq~c+VVT@K^8Q=zXndB9I}dj^f58PzXDoeZ zlKwoH7qVjrS0d}BI12yX)*o_2Fsus|>M4(IIkstQNT8i~GHKhB?BtQ?JhQ_qntR#+ z?0K{TtFVIejA@!TjVAZ~JEu85gvi7lw}JY6LO{R8U_R%NPCJ!V;nUf7ZnNw}P`;Q; zBe=uy8brnCFbm$|$8U}ax69Zy5dtIU5l*1M6pT|U$(mTFIF0yFDW4Kx+S`gNFw|bQ zdcJolvs3?z)-M=DRsAw!ITG*m_w8Ce1dFAIS1E?1Yg z9o4Z&7X+Fxn5+2^l>{l|Y~G@PAC*3JeXuy}aLSD4JGuCpwI&FB^xsP0el_~UVHp=! zR_%_W<3UO36mG@3YV>XSGR*Kfc4iSMadF`=D`!)Zr@_Eo2>GUGIg6pxX#!VKZ(>&(jU53EZ)}BG9DsOx{+Th}9C@yUM+`3D4mgd(1cb6}yQ4E{E-ROZrN|?%O z$0!b99=_d{QW)rLpqg#GTL-XJgZxZ7`TA?9WI1K~LO|+a>h%#ypz&b*gy5WkG?tNU zuOEHe?qTJVMAU4+i@)hC_8$ksf<9TvK*=7m(TQxeg*R#bK7Z8a>&(8DG2}a}_hm<= z6bS<>vx@(1p;42E6Rn1_rVybg27_<6)9E@RPtDU$V7EH-za z_*tKFf`Pv0&V5|XbObC8ZcWlUC*0fX`@lbM1V|DaC7+lGdi#6M#X`nB{LkQO=7uuO zgrU@~lRHD0qy01j^ew3K=I1djQAQ5Ch{*iI)!$uRB8NmUxikZ#PlyAbB)Hr#*^Z<7bH>#NweIE6F|F`5$dZLF&(7{1hAP!j+W*C?jS8_-jAeu|MfFmV) z^0|_I5y#{QYDMycIV$1zdJ@2)Wo5j_9(Iq|snK5X}AW1J|GW|Nr@aWi+nlAJG!s0AILgR}Bm|G2i`v^y?`;`{Mu! T5~*%nOb1}Hs?bttv%vogI>yps literal 0 HcmV?d00001 diff --git a/pictures/spark-streaming-flow.png b/pictures/spark-streaming-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..bf5dd40d3559e771081de6870de5b8f40c09864e GIT binary patch literal 20425 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 literal 0 HcmV?d00001