From 17df5ff9fce06b949d1110fe1a72c66f892852d5 Mon Sep 17 00:00:00 2001 From: zty-king <17786324919@163.com> Date: Sun, 29 Sep 2024 22:19:48 +0800 Subject: [PATCH 01/21] zty-king add 2024.09.09~2024.09.23 WeeklyReport --- .../[WeeklyReports]2024.09.09~2024.09.23.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 WeeklyReports/Hackathon_7th/08_zty-king/[WeeklyReports]2024.09.09~2024.09.23.md diff --git a/WeeklyReports/Hackathon_7th/08_zty-king/[WeeklyReports]2024.09.09~2024.09.23.md b/WeeklyReports/Hackathon_7th/08_zty-king/[WeeklyReports]2024.09.09~2024.09.23.md new file mode 100644 index 00000000..b01294e8 --- /dev/null +++ b/WeeklyReports/Hackathon_7th/08_zty-king/[WeeklyReports]2024.09.09~2024.09.23.md @@ -0,0 +1,30 @@ +### 姓名 +郑天宇 + +### 实习项目 +自动并行在复杂模型结构下的能力摸底和技术储备 + +### 本周工作 + +1. **对自动并行及工作相关信息进行学习** + + * 学习了动态图,静态图组网,数据并行,张量并行,流水并行 + * 学习了如何使用docker部署paddle,编译,提交rfc、pr等流程 + + +2. **开发了load_state_dict_from_url API,并写了多个单测** + + * 为paddle.hub开发了新的加载 Paddle 序列化对象的API + * 可以通过URL下载并加载 Paddle 序列化对象 + * 可以通过URL下载并解压ZIP格式的模型权重文件,再加载 Paddle 序列化对象 + * 当权重文件存在时,可以直接加载 Paddle 序列化对象 + + +### 下周工作 + +1. 实现在组网时打印每路dp的loss +2. 离线aadiff检查 +3. 在线aadiff检查 +4. zero padding check + +### 导师点评 \ No newline at end of file From 073d458af2c55c87b3a09c35507a81f8147f7578 Mon Sep 17 00:00:00 2001 From: zty-king <17786324919@163.com> Date: Fri, 25 Oct 2024 00:55:59 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...iff\346\243\200\346\237\245_2021.10.25.md" | 95 ++++++++++++++++++ ...7\346\227\266\345\272\217\345\233\276.png" | Bin 0 -> 22622 bytes ...5\345\210\206\346\236\220\345\233\276.png" | Bin 0 -> 24755 bytes ...6\345\210\206\346\236\220\345\233\276.png" | Bin 0 -> 89049 bytes .../08_zty-king/images/\345\233\2761.png" | Bin 0 -> 33139 bytes .../08_zty-king/images/\345\233\2762.png" | Bin 0 -> 32022 bytes .../08_zty-king/images/\345\233\2763.png" | Bin 0 -> 148129 bytes ...b\346\227\266\345\272\217\345\233\276.png" | Bin 0 -> 21879 bytes ...b\346\227\266\345\272\217\345\233\276.png" | Bin 0 -> 20865 bytes 9 files changed, 95 insertions(+) create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/aadiff\346\243\200\346\237\245_2021.10.25.md" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/backward\344\270\2722\344\270\252\346\227\266\351\222\237\345\221\250\346\234\237\346\227\266\345\272\217\345\233\276.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/bubble_check\346\217\222\345\205\245\344\275\215\347\275\256\345\210\206\346\256\265\345\210\206\346\236\220\345\233\276.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/num_micro_batches>pp_degree\346\227\266bubble_check\346\217\222\345\205\245\344\275\215\347\275\256\345\210\206\346\236\220\345\233\276.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/\345\233\2761.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/\345\233\2762.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/\345\233\2763.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/\347\220\206\346\203\2631f1b\346\227\266\345\272\217\345\233\276.png" create mode 100644 "WeeklyReports/Hackathon_7th/08_zty-king/images/\351\235\236\347\220\206\346\203\2631f1b\346\227\266\345\272\217\345\233\276.png" diff --git "a/WeeklyReports/Hackathon_7th/08_zty-king/aadiff\346\243\200\346\237\245_2021.10.25.md" "b/WeeklyReports/Hackathon_7th/08_zty-king/aadiff\346\243\200\346\237\245_2021.10.25.md" new file mode 100644 index 00000000..570083b6 --- /dev/null +++ "b/WeeklyReports/Hackathon_7th/08_zty-king/aadiff\346\243\200\346\237\245_2021.10.25.md" @@ -0,0 +1,95 @@ +# Pipelin Parallel学习记载 + +## 1.流水线并行PP评价指标 + +流水并行(Pipeline Parallelism,PP)中,针对流水并行(PP)假设并行的stage 切分为p 份,micro-batches 为m,每个micro-batches 的前向和后向执行时间为tf 和tb。在理想的环境下,前向和后向的合起来理想的执行时间应该是(图1解释下列公式原因,): +$$ +t_{ideal}=m(tf+tb) +$$ +不过在实际 Pipeline 把网络模型切分成不同 stage(**stage指的是模型的不同阶段**) 放在不同的机器,会导致在正向的 p - 1 和反向的 p – 1 时间内会出现计算等待时间。那这个中间空白的地方,我们叫做 Bubble 空泡。 + +而空泡 Bubble 的产生,是因为算子内并行和算子间并行解决单设备内存不足的问题,模型经过拆分后的上一个 rank 的 stage 需要长期持续处于空闲状态,等待 其他 rank 的 stage 计算完成,才可以开始计算,这极大降低了设备的平均使用率。这种现象被称为**并行空泡(Parallelism Bubble**)。 + + + +
P+ zQLR0Y(;zpc(qGztF=s5_U2WfpRkqG0Ye^M+kjmiSIsPKa1CyJt%es6bli}gsxBky2 zVcLPDl!WAUxHWGMRFAE>J7i4%rD-};koIMWoNH}mcYY#UDzX1Qi_VUOKHwlZ-nBFm z36ZflJ!@D0e6`S7CV_&b;kIu>JKNjuO%59tn+ov}^a^EsKJlBTAiwokdz1jjV!bN! zNi+kl%(VBhUueNY3gZv1C;(-Q4AQT+C#vB1P_pm{rqKlrq%A<$oEnk?0K-VP1tP}f z=sXnvTCQAyZ_-NkYA-k-O-sZv+hJmtjHk)U??nJ#d$CQ&4Ibd6$A+Kg$lz|jP^(#q zh)6X)J$jJbZ12bEZrjS^MImFz(8jO~?BQiBrACgmft566@g(-hZe%nxDDuG>P6`{L z3v|Rd;S(^u%kx0EEoR)Cz15bn+CkMmw%!J|@!%kdnk%r)bmbTLhw^k^BWuftnw*lf z*V@5RF>KO&%^GLDD!hq|$u1N%U&^k&oedV3eJA*qBHF*oM%#c0!o#c9$C_D7hYI*! z7h%xmO`$<%pQh7rc`maQfGSY@KDPVHD;p}0pv9CJXDV6IBTANqjL8=BH^ z;xaZz+L$BTcGm9&h^ baPAoS=hgB9?&dE02q< zk`f1A2@#Pm&Qz wIEmnW4aQG_B4lIw@-%LnA8MDbrjWrX8`Eu&o(N-;@^s3X=k?S6%1Nz24gD;wjgA zsXfZ%1+SXV^F`MZJD5eASGA78j@hh^fi^V|!wk=UD&a(*4OGcI9ts_5-dFE-z_22( zI@dYgkEXWO!`%@sQxRr8k7qMq0cRfV5(a=@G;@` uyPZyIm>udxTbjP1aqVOCW9gB^&2r#&l 1wLT!Eh-yuEtZp)WZLS z{loO3;YK}Y+L$Sl@^vaN^)!A!X^BkU;1!c^u2DuoOw5JR!Oy+w6(L}v`71zU6fU8o z7XNJ?`(pdv^z5%gF|K?H#8BQl7M=s0H3&GLNFQHL3k{%5!|=NJPUsCrvveCJuNrT_ za$J{-iwcc!ih^B^Gq>LiciJd2z&=yI#!9Qi&l)%AX&(O#>Y#@_8Nl?XuojwKn*0Ip z`~CY?FYY9iI>-kf74g%#^3REGFT)zb11XUCq`N=M2`%DeD~4tkAItBb@6-~S`Eiyn zG^k!;0WRe<8AM316Q2B9eMOF@N6j{XuDdxe#IN#f$Lu#qK3Xoc|1lEsz0B3HfT(VA zvvSU+;ZZ~^qIlrlJ)NDv5SR~Z{b8k}ruoN4f=W-8Dh&j0cR#)Jioa)=w_xikm$501 zps7>F`^M*YTgVp7Eb%16iU*Rx^>!w`XQC^<#7M|V#p5CU70L_POzyO{oXcr60h0I4 zwQ)LpeauK`84Z6l{!()QF+#aTdK60aH_E3fc7HPfDclSCtGYYqqX1iNrJCuNfgf5M zs@zW&1#X&gMM`y8cH|?%1WCgqq=JhwkGJ-J^sB83S^8|2BvrSC!$OOSD0CDYVYYl* zhZ$n#t4-<2(Jt(yfMwtB$iAg%!-kV*`K}Y>5S6;s+ykr%q_+0eh2yx|X}R54dvii- zOuVcLqq6dZ)MLX!&lo?79H;dg7LZTY9^$83Q~(4s-=!FrK;dCBdYX~iylra1Nju@e zAQIPz9H04~r_K2O8{)WagFDXCUf0dVnrcdB4_0H9(sa3-cj7<#Dx+%8+q2>xA)R6Y zg W$CwR8xPfC z0gvB{-8x*|t*=iGsRuI|UN<_t4BRqI^R`F!TE)fFMwu(e04kU1yS@6wuM-VpcDE)? z72SdXWsMFfFt4+r`hDz+kr{ pfoq{e5R>UP)B{1A$ys?J^gwS7Jt!FE{%tJ?d@w#W=m)NcN)KRp(-n-gp3 ztx|Al2>3`zKu)~iekEn$Pqt{LT2|r8VzzDrzR&cKst3MEtsq1#7Q@42nq%VqwY2K5 zef5enWizj2ntHkF9qcG*UL)1)uB(Y*1HR%RB?P}8>DU>b6mof;dF91_OSkdz)SktRFl$=OeZnp2_)Dfs ziEKsPb5#p5C`F0kT6rep=5>mcV~kfl?vmCXO6!W!Z`w{ 5n>f zV|c^Nd)s3LEa3DK2Ui6!Z_JfqX!jL4<|#Ea^X;Np7D(s4o*t2I-%ISaJd;AGif^yq z4x`idWt;EyxYsfHp$fB115TOdg< mMj_R}X$YEH z{k#qh(=Daf@vv*O{Fi{8qAeCkMNArj;|hAQ7LW(L0R8H9dJ{BMT0@F$JjRA<)u6Xm z@;060?$^^$(tvJL(Aj6RZkws?%`&HuO8Q6=irG9GS|d$|jw^823#)43F>sxswELdr zmyXECi%i>D@om|Fc3_z#GGGp-b=LcGxymp0BpUoyFtxv+DIs()ex`a_+_X=g@I}Rk zdxi(Jcx?DKSPVmu0Ux`@BqxN&5e;>#;LT=ULctrc-Jczad;EGYl#RD|3LR19*T19! z03yjI%*0+8R>5<#1i@T!;KPP+Jr+YJnRUR;w6*pg MzCL+Wl}*XXNB=aK%v&x zF-@Ke3sP)+)_N%Rfb5AzO;A8q`Qf~h-HZ%Svg2%9#(+JY+W3GHOvWE1)~wyK)aWPj zMUbd@iCmj@_WeG0Jkj0H2Q?np{#uej*<71~V8Y~9j(HXWw1G+oj2rZm5m9S0o+F4U zS}P%9;+$-6rkkY{b8J)}tIcv`G1dwbqbsk5=;DmmZIk*-x+^p|ZB6I=X0Nw0LWxY~ z&n-<#E3x`DMds~poXeB#5E@uH-Tx+Fx}H#Astj*bfZmTk-`jv&-+CLv-H6!0n3_>< zctd(;T1Ib2s&BtJIR(9;bCpsE;X)4(S@1cVuYi=_k!m4OAg5I8I45cHHWLLYG6T8B z2;t_~f^KH{RZ;6@jaW6*)~y)_VsF(P)i~V-|19|a>8;$YR0Jsr xvqY1o cgI(-TltIl&WN~< z)UtaF5l-{wvZTK_bYT2zT_=u`ySrCF41H|>qaI5Bprxs^^Kb4F;I06$>;ZKtEs{cE zIol>=
myYp-eP+(hV!$^1Dv>;m&SENNkbOnp+>K0mAO+(kNDobyr%bW0cu;< zcw(DMQFq2t-RB3t{fM}{+O&R#LnkCub3eb&XmmU~-d#i8=+0|MoeOHlYp;Q{3ag@9 zD6+pkm3+__H1V=xk19)b@6oO9ku*rWN<6Ibu_^UK4gh*#v9ZvAct;v500B#c)u%ZL zagoiT*GLzhiKj T_EwTQmfjB-J$&ni@Ue4|z0UpFSe!ao{*GmOUyu;AkRud= zR&+??>80BN%CZBt>Gv%n;XYpIx&g0X!gKWszFRXd{}fm=*33-$ 9;24?`M}iwYF?A<}sXG;c#RZwf5-9+*v|4=Ugfnvw88UoV2igqiM0dx?#c)bY}X zPTZby6hP%l{-W|ylj5TW?3 8%Qr5@H&bLSvnXqn}!z5Qc+TTEFMqNT>Zie@*e^fthms}MY&gFWo zKq7N*1T^%l5!woDN*XZ_CD}#r_Tm1gcDM6*T@M2NvM-pvMz|`kom*M7|0S!D;s1x& z_4V@$>7T;;^}l1d(w{>ik>CDByJ%p$|AyoKSA!s#Hn;LJlMjlkoHj2$Tv84yc2$*1 z+g4w`Iu;O^_x<5Uk%_3eG|K+pAZIs h85xa zr^}#m?zMk?{V$K}4ALZA+=|tg%f2KpZ#_RKjQz{R8Q~NeP&1>&^O+8MpAKQ>KA( *>5OfqMUFN5H!aZww(=ifbScb2@ z471J&MFOI+;UoRnMkxrR!Eu=h;WlF3?P`C4ehe!E+|;#mLX|VIbgrabN&A5&HeDosPV4n_jP{Z!;5mQX+I#%%Z_C zjAed-Iddo{ssZNh{1olG>ty_Sa>SOW^W`X1xUYxV^>IbXJ14PWE1zlah)G`>Z;lcm z5&;-!;LBu;`7rePI^(i1(y*;`#Sv~bTU8;zdI>ezxCngU$4^jcDcCaj16Sl?p$i*w z2mG;8nm%V (7I+tC5-)I(SQeI5~5mti@9w$r8CbC*gEfHQE0 F{ zCqU7v4o8Dg^z9#x1`>>BSPd+=qAv50A~?BQM0W>~Bfdc~IkcGORcqIYH>zlwt}k?J zL|G;`3-g?D529TdYOmeAj}m@#yG&u4Y8xDnc|urQ!>M>@{V~h&!I2AmAD*e){iPzd z5SLPiuk6EB3r|AvlI{6-JUq?icZt-8b6V>Y7c)&p9V_ki=&Wb?L?c>k^_V|@a$?U6 zFqHgCFu`ICb4`P`zv<^ 4x`>NW`;lSzaT+RPC;64a$hci&0-eR@!HmrsH|C5D1$qh9~>N@*KcDY@>4^Hj;! zZ2edW6Et!^*w?aU!x{J%!NjuO*~|fW<$WI%O+CsQ8&josPmZIx=0-cfhmdDz7%Mlp zfF6hgO4!yS7=4^65{O{sfo~+y(} E ze9F1F2}=sstDTojX_ZZagT)pB&}w}$!^+$9XisM4-f0HC!fVPJCf>dcX~o6ICb7jw zL4I@SIG|~SIsx8)=>0@8` |uS@CQrn7wH`MOD@!fU*Vd+cUS4aiQ(s(8n=x%|z9q1P*7J3Njs z@^~=;Tx%ltcsZj9P!^9kP@a~oE#)u3 nI4a`L{{eZ*Y4At z2|ZQvxY*~lU?vRa0nYf`@?9a$%mx4eGlV^Y|K&47=&4L|%Ri`eR6Ig8dYIX6p)fQf zT#qX;M0Eusi(Hex*YEQ6g`JJlDdbwDhbvJ<+7O)f_yR`HDk1^~rCUPT=`MkVec+DF z1j8b&)M`SY>%#_oZtFQJ6e6XotE P0)max4= zUOe2_#E*FRV{RzKE%AU2_Lq{)C*sHd%voE4@gEGvzBYxvXR&+I@-Tx+e3)e!08lRr zxF-;F2pf#(5=!EOId_N_sHp^xtUk3YgvTwJqpzCJD+eq7d@N~jR|!0~{AjvN$_%hP zBxWe3cR?JNRs*>d!oDzSxyAaE3#)2j{E*F;m8qVz7K6AxDU#ql`gRx!lv-4|8AJ`7 z9zSNovh#!azI06<7fQY4{Lu0?OFho5*PaVY$;$j8@BXgO6?6wt@0(LrwnfY&cWJ0n zPpPD4;y)sU^v=$~&7ytD4=T%qtO8GKe;xl$hlPv|@_{e?XRUs;mn3=1G2Q5 e zDv(BN(aF#c2#Em#;BF`p!lPu =5Sl}^@ )bT zp~+CuJ8&{M*(^0-*G11ii||#Alkg4&p}*DPd(OPb87K L>6mVImc;%_O` x@*RKE$pH7>=K`O_QN!B SFFpHPfSaKiS2&arbd{k^&42Vd;!*Tsf;R#;2VIx2Cue1OBKK=hSWVdP!ni z$ow+Cu9ZUcpFcf*=70U!R!2$ Zw`hthY{ z`XuwJUT8eZlJD@jpCZM|T 7P%B*MI6g?~Kgl~2DGRx(IN z0hGAYU0?OGnvpB-e{5-wUX;{fh%@;VV $XC3l9+5_bq@>@XgakOiOsTu5>WJ2e-dwy%7opTC)sG~gL zXw65KSJwu>%E^UCxZm%WV3U(1m~lXX24wt|{su@2sRZheB=#w`#iq@f;s*s!!?FN? z#B}X1iHvA@O($seUz?hin=hI>c2;q`BT2Z^PzUN-Y;Upeqt0DDs-Unz{4}=%^LDEl zS=9txZE?3j%_v!TXhS<`%{erPfwwwtk@L>1lQb|l^;X@((e+X_ZOVP=&!X|T_wP5t zG9rWNgo{~z_bV|YC4!9**HtOG4FJ_mn~L2s5*6=G#x>>px}(b-Ip4sNeRG)sq<}x5 z74o7;QPZcBM_il9y@QEg)!XusPO(mkM{Oto9d77vvBr{>!=I}wgL1SY!uPBJwa$lr znU_nC94q<~KSLKf CFpL$|CK!*G?-`I8C+|igV|G-zk=2IDS<+Ode z?R@qr73^kb-luNB3lA4>_#e7!injnqB{IR_&1RMIS9?^h5RdkFZw<1>GH+i*?R=bN z`f+b%21k($Lyw$A?Pveso |6FGDGmhM*4dcZ>{qD}9?@;q;$9OdrX(VDb} z_Sf+w?Sluy(>zy4;$(-HHWRy}mhEDx_d 6ajg z5CX`SbUd_3<3PK(R6b~D@>x_QDeV95uVn))J81NhR9tX(8{WUU$wl2{G1bXJhCT)1 z7d9L6RJ%WAHonnOo_+0Gp;Hr$vU=1nrJkxf=Wh$yia*GRLcw!|z9sJO89e3m)|KA8 zPXL#QWG)VVdY2-#)4KXJUb^<6m3inVtjbkiKHWne(;MzFefNcdtr>|+*N$KI)9@jC zy 4sXlz6sCi76lnb4xP>|uq*P7#1l=WNtLtj9r zhR*In5g*qRkeX5FAa8q<-j+@MR^yZ@*4v#wxr`8%Gd3>9NvYxK;9YgL@ncXRxoVt{ zQIwh`YS#)+6X^cY)F5Oqy%ymdQh)1x9f>by+Hlek^Yt0?7Rxlo7n5?u`5F2&4DNLO zZj#vuIquER2XZEvx%0=-ZuH7iQtfJx+p$0M)jR`<3x$=~s0Hq-8+w%mpLeIh5&4>< z&B5eT!oka^p$G&0CN-85_Y}70TQXhgy0vLmtZGWpuKBEHm9EyvrP4viMLCIoI4kPZ za3Lwa{Z@D^R2oR*)*BF3eMhE<&E{Q)yydv_Oq6+QWY{elD(u}sQS*fF>Rhi#zIpd& z4+Ps+$Hn+sU7{i+B@YSwhQl&=?)r8<8P2b`Jokkg%i6qrN zpb6{jAhp_y$FtJ6s#2{f~iJMED0A#iec?y8K zEmPfP&E0daq9b@2!-{+cLJ?JJPeFIIEBKElNvvdyn ytqc^aA $ddv3vSew_Lqqk02<^VUq~gSGj_6rTlS-eQ+(%gpxFSN~uwikb6CKLepE#kpHv zh*$);B|I{{)$W7K`h0~!iyOI;%900elV?dLM_vTz(snR6@r`#${Z-}eSH2;bFkxeB zvVrq?yrc_fJ?nDgcTxZqj^g39z-EvMYL6kJ1MD8YTab?HjTKrGS<}v-@@?y8MnW7a zmr-jx{8kJNbtZW`tw56Jh=_Ecv^l^}WV)MPS6ZS%Uu@~BJ3Z)bWPU0MuqKs31>}_f zH0^yG{MXJ;3}Iq5o)702hj%P`5NBAr-(QCnI^AvyA8PG-|JVie@sldG(_C8pL_bK@ zU%P*~(!ny4CkYH{XQg0SW%`v}G~cM6)cUT%lAGcWMZl2sL__)$In84|D94Su^v>W+ z5tUbwOYVwjo zkvx4gQsGcB4~v`s;-UMi=WNb2tqZB>NM~>O{sbA-OBXb^Wl`Pyu{I^`qgA;mGgjKm z0mEfNEcD8Zb@XgBM*O>@kfxVO@0{?SsR-lTCu55%vI!p3Y@H7g$KynM}NuM`@!fJgt>W`g_)eqr* zVquSB>C^&pob|?<4Tte?d&&WbKs3l@d#u`OaqhQZuj`f67r4|gH8bmiap}O_+lYs& zIe2QQKNTltzfm#oSrU&4ggDz67~wkv&7_f@a?rpMu>+i_mb!HbcFUeGC7ngJKUF;s zUcg;zkGkJSaPD{0bbd!B3HaG%`~X$Xn?ASWNuetzHBOAm-SG%+%)^~tcrb~#s^-c0 zV!&V${CH4Uy2QFoQ$Zava)ka2PNh3OTvLR6T^7%OTbwYE{ sHqtKbRvloUWzet%o&ohXcTgMu{2Lk@l6QBV+_8Om zwu9sl>IB?wR)5py!;}J5D5>!@6PVehF<-rNmr7g@fXW^|r{xPqAR83Rvhs9E~hz znX$P(Y^kcsyWlYyr(Ac>(2$3Y;0TWe|1D7fm2hzh^%LVdKwterA7{LpSQ8NprFE8E zQZ|q!Alb&VK0ZPo;tXbDSrgY3-wx1kuP7RR?~pq0zVQ`^T0cTms{sFGd)*EbBips| z<8^ut-o$~#+_@CJt#a#(5lI<{f*Sq8&Kk%8Hvq_v`*U8nC-_iPHnjq{GNl%4An}g= zcxxx0o}0DKO`g;Iwo4S!?p|JYSDxQ9giM>@2i!-K_tr(=0w1g0R5$gld=57-qBBGP zX4##@f+0Md?3LYHLY*mUJkEoQcyzL@0`ie^FZlSLxwTE*-sW_^IfIngd)8;oXAzYS z7R3vvk&QA(iMUr*U+4#hCWHY9y*A!YS9P=?O|KQC!SVB_wA}z3KjhJ(6>*YTsSDs; zRAL+r;JP2;ZYVk#V5q7Vhgt3VJ-=#dqe^14BvC1pW25?!qDWr7ER67uuddj@Q6}eN zWCF-`)$^dIkj!xsFr%BD`H5rs7oF4xsZ{j46G7;Jl%WA&@QltdA4jp;YE`lMfayf{ z$Q>T*qw%VOzDe(PFOEczev(D-!WUn)s`YUi!9P0hXn&9~6!u!iLh(ef+|H^Dd--mG zZiHmEoM}ncE@L;(4=!P?_=vFAc)ylvc@?e>-H@`mDVtu^!Q<(Z63Ir+a}+vWO%bvm z!vJt*l2Z*Kf!? z7Cr2kX@hC^jfQlc#+k1q NY$AM9~G5x=8ERUQI zSn)3U@>&gqwP-4lPHrxF97hh<;?=}CO~$%2XU=yh+>c=`zXWWVtqmbXJG1hSJsj6i znj(qJirMA3Id9(V97~QYlVzpmd*{ZbSzy{-PL^!Z-@gv~XK9dyfy _UAdF>5I*e+ ziG8Edp=92{{*g%}Os~blg}nCT%l@#8bDM`w_s el>{M;v|$N|pK5(?Ql2qr3E zTE}W1etE<|P0gRvVL|=}WdJ&|M9unSSS;%*pwaK%FL^+Y1W=4EEIh6xxn=YDglwNs zs^tb;vZT=K#W?@?B(%S8?Z~>EKbcVx-CBz0ZmLdpvWf%exOErO&?!-E6xK%UOEhg4 z;|UJGCFZ?#=hKRBjhFDi-J}f5^_5MctY^_ZC?KZn*#W#t!>`%d2Kf5+XzZ)N7yNJu z;AvkF99m{)o$h_3D;F} =IgHHhgG=L248i&D DQh w~e>0CV7p$X9;aCQKIB7spz$5xjj0laOuC6)oXzw|55L1)na z8*zH7nqIo)ny2PD0-PolD^eE=HQ=n9p9YyYay}KdyPgf5j4VZ^H!ZvmLXM8B_aA7q zA3?2@R!!2eRr>Q=FfHU{tt(Q&_|AQ!wN94WN#clc PMs6EPJ#<#|yFJ+O(9u*2`}upj zt`dg0$g8KWyuw6Bzk(|#lZ}RD+{{`xVI8|xqDKv$6@~vC?af%w>Y0q7Hc~iW=VjY{ zQ_VyX$qUrDIEZSOM*;+WR#Da=F4mTD_gztFKXzt6-_!*y<;|xsr+Rw3YSkOldZ>Ro z9gGWFd&F_O*o%>G5-e|N*8nCTX>7tdQ>O~J9n;N6H4W_lsJ?qzLk 6M~g8D$?J3SoRN!hfLa>?@qVV0@q6^A zC3>--D%X4a?+B$TD8%#c#`yBGg zY5@-PP&-J*-4(xA^sKw0vSPvDzCGUaEre@x@Q`6>HAbo@s_VT289u$Y+z9$M3z(G< z3|^cYbsVT!AfZxnH}SuD_z3ur)7z1Gy-gNkm9ob(UHq&ihe63xE1!P2;fbB_g0>2# zp>pmY5SRdUJF2!xgE`{Ub>8!BRglUPK$u&n#~@zakE&&oW6-L$ee84uH}&NZNTLNq z>YpVUNO$K%vh{)`VZ1zKx~Vvi{Ehn#>&SPal{I7vs&%F=F*$ZO#$>qjWbFr;`@418 z>N8Z(=cUQa5SnvpNT8|bV30Ow4+)@-CfY_53aryEz7gE<0wuC59()jZph1;4^82#Z zhaJVcrIP`1oqYC-c>}18uMdi&?zx=u%HO_tHsXfh4 4b>Cp+W*3f&doKNstss2s}_l)^7zk9yBeR+MsEYf>Ff0LMWfsp;ejqe45 zv?k0aNW%qv<9mEtjT(JbTKN`o+_kX C%7iQk!VTvGF zR7(eYsXYm%@}mtrOX{abOyf@kOPP`OH=+aq0E?@m54?K7&lg{FnJZG=siI$%t&nna zK1)VlWySi~p#^Mhx9KU=UZbn>OPOI8U6#SRhe9(Z4!8I4L?-q!j0iCp4w3~to!vA) zi1j@=tS%kfw7he(& hx>cZtTj3GZOL@7R4PDun z0|4#F{=5zAi0isz{~c=tI+w1WA%z*i>lnnqe3N<5R~jD1o^QJLPPjk5CTGd{4wTLA z0u>&6tUTlf&Ua`#NcsIQ63L#Y@lMhr Vg?@X#I+@$a@R )eN7vZ2$o26ZwHXqM!?lLlP8> z2bZJoewS)a#`Kb~mMg^E6WZmaa&t+|r2TR|D45xh`A(dn-gaO>hy4UrFk#ezcW_)V z+FW(qt+ktnq%4jBp4J3S%K&@Pb&_9vc<5tc4Pi)6e@}lT%WfYOH0R9Pq8&Pz?nf>` zbw9f=2sHPveXpq1q#-_R$fJM4nRU-C&Iq7lR Oe5N^&Bt^upd@LxmV%fMiP01y>#Wu z)4`<*1e4A;qUq2@QV{ZQd`YItm7pxF-`)&PB2?f~b$A8n@0sW}ZfggXtC|$IK@pAo zl9o~uv(_}{)_i}Zr8Iiqc#|fscz+#+JOf*Y;CjT)`O}-z6Sekz*M~Y7gARY;HF}D* zmo%s8diY5*?KUQJ2GR5G9^QdVBlJuMRmP1&u?}>X?7{`7LZLR#>T0!eYHM}Wr%&O* zMP)0?9KZH$^e#>{W>2qsYq5-MjP$Noy0rXgFOET%T>+wsc0Pme( z{b{?9fI>@t1WOmksyP-$g_*N=b15=}AxfkTj6u>Px3+7KJq|eMX~XUeSI2|t#x3K#z9fi|{8E;`Md0=1kU_rn4!<)lhrg9~vzAEGD_~7# zG`e68YI$kNW)YwTyX%l}7BS2(ZW#F3h<<*_rP$X?! zbI{(J6hG?VPvmMNH?A_`a&H=l`+$urZs-fZ_ciYZ@AV`%dM6P$WU}mNq$#1w|31dw zo_B+fY=IlQO}=JbU8he4ZTcL%W)z1Epm0zmRW_v1Hv8HwI|2#3)r#%k9Vam9&TuRE ziw<-V9f
6}pgrD1$w(i{{?B ztFo;o3dHc3J>|OVSdm;}!4}#!9*lqSM5;A*w?fBs!nKYq(N#!SDDT??f}lRr*wc1G z8zMAp0oc;SZ-|36l^3-TMsx6AtD}Dfw1y82G($U_|Mm<#P3FcXYD_fI6JP=gCkem2 zdlJDM2 zJomaTj)QObPNxCOMw61=p6g@>Pp9q&a(>^&HAnnis^Kg-LO0Trr%sItunPV()P@L* z_8<>f7|Ha-vcL>eQUb?prgwQJ9EZ!jRG)45CeYvIiwI08J>TePy7^L6A#rl@wOWS1 zKqsu?SrY6_ m-IZwnsHg}-q}i_@oNgL2+Gr{ z49sV!Dpnt=^G@@Co=C7(1{Y@o&ss&PUjgTh-&FZqjBHgCE6YRG(0GcFeJ{|nbr_L) z3O{s$JqN7o3slt=#B_?Mq>JNz*(T0+h>BBA(O>J_fD(!jshg{(7pBdIWC7q7PG|1@ zlac4mU{Se~LnF`fSI-dpm5#geJoBDEkWOk-Z##? zBL4(0EdJdq$RKB;m}npX9fGQne3ZBTGT+WLy29M;C_6i{0<6ton7CaL658iR|8z>? z&A8Ixz4 r!V?POA@qgTpyoakwMg0EEkuG z{j))Ryi0N@O&{{P0y9ujhofWCm=srQbuy2>8R-?Sj}dd@vY-KYn6Ir`#uz6Ki1Sw8 z-uZuYyPXRiCZ&cEP^?6y9-*^4F`~Op{$vx|p+8JpS2yun;A#_K?pIXDtH5Z+#JV+A zZMA2&ds-NBOoySAP* F^9VdW@Z-HS_RCtmcdugLc 8Gy@`9j8a<)!YJoP8c1@?V(tjPCLEkH@JloE*-uN3er& z5^N62_!sOG5^hgJ!sipf3Ve(~oUu<%$dcx7khB6EMBj)FX|04}zw1CGT6uPw;*dUD z`8EO(iREM# =7IW zl>A`;ckw@QEw}``AIC;UWvZ7Az{-tq0VSxiW9kH&{M{t )ol#^BNlMa7)FUIj-)uZ^OUfSx!a;g_46Jim8>m= QESE(RY_@+t6Rd_(UY zrrL!y!AC-FB5M|Df6bNrWxB?P*looU(y?f?$_^!&QJH0*Ce=isI3EAdCPeN=6@e)a z)E2I<=xt;^vQ_Ql`gHU2{Oyg?65CWeVP!Rf#>9cBu}N@yPL;VOr?Uocp~w$2RX@|d z&N%E5x(VA6U1}Ox7oQ5b?-5r2KGP}}IsF#fvFMTG*ReHXPvX{Fb-;b~rsb5Iqh4K1 z8}}GkjgYElBmXug{mvD8?+y2#6V9V07Gnh#wxqvm#d M20Y|7 ztTik;Xfma~$Fwr?lC5l`onhE_EKWWTuBAzuYoFXG*9M{{M%gy&!#`~t2HMDiUSAEN z&JoSw0~ALNU`I?q=syxZ@mYM0oW7XCQBlo n9BeS)=NTtZ3&CZl``)wxx>K{e!{ArXfa9&?3k+QTr#;7+nh3jh#d{GAuT%jxX! z^Lgnu!>I9ApW=F%);uoo8O8GETKE^<-7zarJZp~RTX}FD%B$Q+(uAIY^NF?rOt18B zJA!O|=MN9dXyn%RHl8*eJ!@s>Cuq^fcSt;m@w$%hs6%k)b1Fl+W<`Vi*B12Z E3#qlCCBVg}Y&amgF4;GZigh4w zTwrn7_M_+DQGG2K!WU6hJx{~?b~Vnehkm}wql!7 ^Yg~`_f@TLi vehZZg4J~UUIkE=*Z74ZRLv`f~2Ug+*7O3`j z)o6=Fw3rW168~gfeEfI0fslVwEF_$7itxYguAr`lj?z4X$}e#2Pp$N(PuPp>_fN+Q z{y*GC{}b5$zcjJm1R4J&b6Y|G|44iPOBDOxq0q4RKRz51{VNJBs(KE4{i8R2PtQ_3 zSCQa~4jpJQR{)qjiY>?xx#9muCJEG*sOWXUcl^&sUatG+WD@>Au7@A}y`PgwWc;V_ z_rF^Dzs?--Kcvo$c-o&c5}dBL&YvUou{D4X2(h%6b9S>;_GaA2>*0;tm-X*S!9axA zQmyR@kH~(>5{P>pPHUrN&OizyUErTz*@{pzA!J_lB%fJ|Ai-U?g9tzKU!%F>#^|8t z6?$}ZHo?Gu2B>J++mxVCae?!GX2N+B!W8+zn|b-t0LuYTIIEQ2F#hm|=~>DjSNBGe zv*ZO8v)_4{XUMlIzP6E?#vb9q5xrMbg&9KNX9#w>tAi`7la`JQc=arw{*Rm){o%(H z3D0Jqm@Y;tY0}FNhwf<~y$1&O_7ddGl}P?qE%z1AhTHZ5JRU`>wZ)!kjoLMWP-%@; z?IMU>RkLOrtBAH}?HQv+P_aW1dzPY#)Q%$5p0#SmdOgqcKX{Mcv-kY|eD0%rUDxma z(yw9F$4P1t%Uw#k5!US7=bf9WoOc2Ce=;G*O$vwv)rRJE%nC{WybrrQaq%{8H;Mi~ z-UN!Oc5;5SkToX#>P;XFD!8azJ$MA$rviNrZ$3en<>zNuFAI%2bFj0M@kw`B5LYp) zT>0V?T=I8in|E@JZ;%LyZnHj41`CssGk*zpSOQfezN<9(47atZB;Ejs7nYraew60O zL_$M13hlsW%?`w?CH?@D1Ga+rM67c>ogJz9ZKNFw+31MCP9aa!IDsxzXWU<~0~r)kMkh36RwSaD@`xos$XU#jWvi_hAa|_80DDvm_3>%Dq* d7CFT|x{;91Q=4sNS;88}>deT1IAg_1LvJieK#( z4nLo~{qe6^HLeLhpX|}L2&GR@p%!{Upl?1!)vhB(1?O$@FF 1 f`LC5llvw{Y>0e_tW>HKcjen)6XqFu*d+ug8-)vR7qHFZ;gyY)4;2DxnT|JKf z`G%uf0rp<-g@B;m&48z|@XU|UP+3>1VRz70k=cewBdvEpZtg*nNA{qYb<7<#$CN_P z3j4hL9s$N!{;n$8>-pSWyPxekc|o`g*^-*%ig3i0xUuHzB{E`9;Lf+CSMrIZ%)$^L zTKXvaL1U*l{~+FMrrAro;Gnm-4A54*nW-s MS9)$IK2m4eGzgKG6|Uf0FTN+I*VbKXhJv5UfVUdWH=`Tj$ziGq`z z!ZTRl`w@$-jus3(JCMqiaO9r3+=&5Kc#!;ei5?&V>0y=9lQ&)O+Cm398|+5(CVIwj zySBfB3l8sHouuV=Mf^`Qm#CuU{QnPC!iJQ^z^lL4?WNW|`8`|fUSv?8j{_NXTuOx= z`pj;_93}nJ 9l*Z;2lo8eR?JccgeT~@N7pW6j6aZk*( ;5{+;F>TXW0q5_p-JnuEmtBS%~{(pmxxQai4QhFFi(v!!9_VijfVzQHk_ z&6m9e_nMk>!BSJ+gFi=gc5m?aUiUwlU_|;G$9p(GF1S)6b_*rJV>JDx)-AKiHl_LU zJRI1*1x6!}R3CNqMcb`z{G}8nfcYu9b IYCtkcXS|xvv^2ILh97NJ^-}av3~>$y&~?8>*qwS|6;2Bdl2o&&rmXU=PM9hbP`9 zqPIACB##$n3hlPZgCeFBkn9KA=bYI**mweKNR$vIou`YDMctZ}mCI^zdKDX~8IWE_ z_G>h{FN%6A(H8;ODUS^xGe8Q^I$yCH)6LY!@XV_q+b}po>GPY=*S45Hf=$D=x1(P9 zzyOL5<`0b9IUjVUj+bx7(@alGzvwV@m5F=(iSd3T|L VxKkQ8aZ&xgC4N0;g& zroNaqT8PZ9HJFNdes;XYb0ew`l9M=ZZB;_)HS6=X1cBiX$}c$jwtxGDg+6JQdKh z>jznJr?#PmK>wrG2F;(>B3gQ)m1I9L(#B=S4{St1{$x2IR4?FB>rXD|<;ze)Zx&-Y zP$5)tBHoZksmn0x1c-6h+u 2v2h(kq!O&D*ES !vG$qgFHq@T>d(+v SI}F!kXPRlD zv*qF(b& S{ZG>#RRPZ>tOzG7q8PhkI+ zYSOpR`(68Y^R~HnuBH9_W(5=30=yrBSN0e=&V`FAeCaLta4@f*Pd$FhdKEbMrS}80 z;7ZfsSDhaq@6KWEOz*^#otX;vk9qT$2AB<$K#n^sCC@>f*2~NQ3bnTLn`JV~YbF-k zhZD*40AatS8vV!^(b_(5)3#s$K=qN};mgj#x~QDAU Q|eQol^C5B@dOhVWkCly0L0aJYEF?vY_#^U|`% zo2AK$zsA w#poVxQLdXZ`_1x_wasCpz`TeQR|X%VQ=TpaPd+w z =OZy4{6$or$kGLEuyZ~2XVjlQ>* z+cX}tlE%gGtJrCw8M!*LR(RnSP-V{JUMs25QonA k9f-6HZmp|yH?yj=tfXLnE>5hsL2XwgbsK-kPMEKJ*4$=#SBWIAbLJ&jE(ah< zp5ANNuwD3C)H5WxczR)H{;qmTzm|QYE0@DDI3C`em<>Dje7|{^{P7wfy@s5mDs`Wd zS`KLVT=kBeh*DMHWGJfJ{9(eH>ny@8d6AoKrpU1kw|ld0*-a}>cB`y6>u<0%HpZ8U zA-#0Kil~q-y@yHv3|W^^4r;0QWMGhJ?1{wnC};D&3 ~a2;w?uJ56aBj>mLX@sd1L%a-il2m0@Qf-1@hbTA>$#d1i13Hw*L?K zK!M5LuKd17vL@I1E}^$TqEs~T#E~p#E2O^>02rM6$_%^jyAYv =CK z($$toywx<=+gB_WMazvYVSo7__nh=rO1LpHG^AHk*vMzEh>YVkiFT7uZG6U$A+NgI zvx1KgrU#Hnss7$Sui~?NK|Xc-BUY7S;j0d(G>azhnAGiJ`-db8N_xUZbZ=4-da=B{ zTnlRE+=4pbfl1JTYc4WlFPg>q=zCpE?hJ*0f#I2<#%;yXOh+6Wo47vu<+QTRztnSA z8Q1rx#wK=LIw=>17zKOsui8+2J=8EP z33xkrh+InDOSma`Wc;hTx&xk-&D#NnVm1>UE1rezjL~rmM!tszS`x2$3#0Wy;99p@ zf;bmVo?l-Hn~grwd`5H6_xWe!00ououd>z~+K44hjb S&;*wX;YTt%ph-lVt`QH;UEtKw-Zhk zeqDi{3> %Gq)IRP*Ue+&Z7rOCNLY|Q$kW=OQwlLji zh=l)Ert|FwRDcBRwwxn+SdpcWqbAICM5q}ys&K1N7ysRQft1XTdc%_Mc;x4D_WR;q z0z~b3$xr)%be!4K06v5 )3N7 zVO^r{AX2q`E{G i&Bq=|-7y3%c &TV=t<7>ST3!o7bAVxyrJh6?!rezNo z2DQu5pj?C0D-yd7%v3q6vujMLJcKqAiSG(H`?H)S5-isD!g=7wJzCxORt=} 5-9Kzjg(rmeHj2GezmGuZ)$YD69;9ma&d)2YWPCiS zSVT5Cj7a7rrK}-qT`u}!++Bn4#`dxx{M> &z{0$hOCY`##Lgp%0Gb@~2AF|Uu0CC^3mL&Gc}yE7qFcW(8ln<;l!9@A0$p3Ze! z*1(dDCbIx#O`eD<1k%RF%xg(znYf!<2<=s5ewIl} piC|mU^#+gVO{cy5|v;^8wBJMryje#um*Afnx*Wc?Qnmn%SDdNEv%9x z<6?ldCEJN3H6_TmdMfQSfD|P{$5GbkSJf-2fn%RtM6lr@{Q4s=Kp?p|bB(*!2Bxy1 z?GN*AqIgiF;z8x>i5>Y@gmUCU7EI}o1vM`0vkEeNq @#q{Cz-&&FbD9<8i$caXh z8@Z0S1?9FCcoyX$yrs+BN%`@M1Hs1QxMTP{^qo*@Rq6Y
m&ZOf{%6V+FI~X*N zA2bP!r;273X3fg%I+>qOiSy=VuxbPdD %7s>jX<`zBqwWEqa$-X)0Utz zcbkOW3Qzwq3%|=G{nlB!4EBWI-0)nBJb|#!vED+8%5TW`*~4R&tOU&&=0+P;H*G{W zw{5hy-H5xfm^}#}_+PQ?mmYK1T#v2mJl%cSR5$_q8dxhLWeu(aQd1ZA5kh?go${Og z!4bj7Dps0fVds_=jmUbJnRys8*?w{1hCWKH#u0kQ$7Wsi{`tA@EfoEaVLN@}^FLuy z-wxsbg0 zozTGB#YG@BO2)YN?f_YfF~My K>gB4o@BRmjP}T1M literal 0 HcmV?d00001 diff --git "a/WeeklyReports/Hackathon_7th/08_zty-king/images/bubble_check\346\217\222\345\205\245\344\275\215\347\275\256\345\210\206\346\256\265\345\210\206\346\236\220\345\233\276.png" "b/WeeklyReports/Hackathon_7th/08_zty-king/images/bubble_check\346\217\222\345\205\245\344\275\215\347\275\256\345\210\206\346\256\265\345\210\206\346\236\220\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..0d53fe6299ecb312790e829d69bb2391f4dda236 GIT binary patch literal 24755 zcmb@tbyOSO+wYB((o!hJtw0IxMN=F~aDuxREnXx@u(p)qP`qex2@u?^E$;5t;sh(f z{mp&<)^pBT>wVX=o_DP?e`NNW$)3zynb~t)pYL~vYp5v@;8EjYU| _}puP~HAGCDpP`^&y2q-PJfe=k08IXt6#1;_>Xe2It%1LU*OeUkIt z46!Lm+!~+FhczS_EdZw~ybF`la!c&(!wUiLeHiK3!aw^k;IaLJRzADAx~rPyYWacn zY>=yBJ6OugR;uQP%GPV^Bx|%=LRFph_2Z(R=y106KeF0(`L{zB6jMX?=E`3sgrw%Q zPlErm()Kt{beI^K$&jdf4S9?{TlA8B`(g_7-`11wNhJcWeCnRlRyTV^hbeNg0IEQi zYxuffsP;dni5#f(cUdB*!kZytI;DEKb#)~k+TmRw5K~p1keeh2{rS|bh59fddKDHf zN_3SbN`tZ4nWJthHzn#>yfRl+ID&)WECu!Sgh~F>#Q0bVZu%gT821ioq9a;mpbCno z{=46@wa@N= dn?_kpA6SN{IlL2Hg{6l=MPdi}kgq+j #v^RuSq=csD5VUAtKE{}D2&ux>soD$vIE{!*Kpm9|}x`*emu+t>Zw z-B3cJ|3r-q;=1%^X>oC?sn|rwF8hJHx`^obnDUPJ-;hfG_+P=L{4DzKCJanj4cvcQ zuPmM*|Fh{4z6|ZZt&bm*{FH-lqxPN_snLoBT~GCIm;eARGZMGWH>bxZ&Z`54PUV?z zc;6lLYI`m5UQ_X`{A@S9yE)rksgDE4HB7_|XP)T}1pwT4&!*Sp0!+@Ve|{4LfqZ8# zDq;+RG~&S3j(0Pxe-c)YE4df%u|9t0+S_mL|I>0rLNp(3c%%Ql2pv^hoc*Kn{Y%Eo zv-+u?RL5NzQ}IS4=AgHdVzrsw9Fjj%(}ll!ltuaL;iPVyU)|jVNmR1lOA RPZ7WyNKfPN1{;Iwvv7)A3>6yby#@ zdcuUc5T thfcFtX zCq;Fzc20K(Anx885aDGoVWT|DeNSRzp39js_em<%`!(>80MQ4o_>H-E&l%}AWL)ru zVC}m$h0B06A}9MZhT+USgg)BrmsBA 9+9Ej?bwbCMsx Dvy>GYj zCCZ%V=qoso8XVo+ZH*gMJNy>Zl*zGasauB{;d=g;CWma?UXdi_`OEg>=D!#5Mc>vQ ztUJ0K%LgM -sGaArp24YRFzwl6gE&J{S>cFjRn8O+Bt$M{5}WB}Ew zoZK9sW8st03}UT5l7#Bb{dUPT-4A2CxbOA|^>)4#L4N%bHc=Dl_mTekq<~kHglKa` zwE1{&-k5|8#v1($R=@ZVtJz(b!$og+n=BHV4+4Gq^l5y2T>kFEM`}j&C{X+^GJ>58 zFCDkx)%UP4)b5Op*Ka`yZYBWWDQ$$6X|N9%dRR%e7|G3rH fu z^ND}G;nr?#0d$5Vx!VF}Rp2Ec)gZ$d4I6E$2Z0hZf5p(To@t5&d_F^M85PHy-lSxa z6B}xWx|kfrSgU*9(bsQR7xrCVz7!+tJ0l&C`tx&>@+ncc$xVQyYmbF1Zu-*A!+wSc zI6$W$w0$+@^bkatU|ZdK9kT@$B_`UG$k*-_%(=`o@M8IPqDy95&7UOohvlFN7|=f* zQ>{H0XXR-MIU8vEv9_{-^~GJ)*ZMepxJ-Io=p)UkD3NBMuxXf8uM2w+v?;|fik@P^ zWRzvMYX8fZuwpfBxOePCDNhZ?v^mx1=Gry^+fqi+xV<9di_!gl$ISH|%BgCPvEsjF zgDo8yZ*J5b2Q4KFW6JaL@+^ZjRlI-=yC*A;H!D!L6>j! ;$h!Rq%aS~e@H2Qkz(@z1?!o!6!@u`8dL8$R=?B((JH8o^Y!+} zIc^V;mst%+F2~L>PCSCtIra5~^u$)~>|~p)3&!WGm~uNkbCjRVCU=dA7+mZ`HaA zU01Z}b$Wk#1eIP)33!I0Rx;y{yS}8Bep{%|NMIz2OJJ;XXPoEvI%FmyBGcN!2AE-3 zY)UhR8lGxE!adzL7DW2CT>y}1r$Z9J9~_8%i!M&u?xfU+P$X6~#CemCS;65@CU P%eaYaLjKODp09>bL$kQJs#DkwEo+W3kD1E29ctNBiK?Nf;a zb*d<9Qc*|%`%`4Y1`D|6awwGKy6>l1!l=m-e|z4H%~C&W7p#FTiA)cI;E?lh=h@0s zV<2Bu8v}WQKwWjt1xbY(W` 0v%7hay^p%(qagK5>}o)h%d^A z$pVr!>0JMUdYc!H>NZ$nHpPt-$l^3Y<^R+W?LB|FGu23@nc<+M;}rbtU4LE*a+W}` zl vQCPWRz$m%GSHCPega6k zB=t!@JN395!-IQlqhq2KQDNNY- Kv(K^vzF-#5e0DlR$Jipd zZF4yK)zwt2-xzQIx0#djPqysFJ5>o6{d69a^oe@K89J5xa1B=BSAc;a(uc(q^I~*o zkGUw!w-r?YKrRigVU&Z8su=G`MOS^IZ;8_=eOi6Wu-^yMFM8ui^*4hB16adc=xeaf zN}_Kp@ps-FfVk=k{!D%EmG>>IuZnZq9M)&j48*34{ghIF(?C2`f$aySF6V3JVz+H5 zOylWmsf&{Y@*Wm-Z- gYey09Kg#n-FaGJ4{2X*ZjA{@TpJ3>9a$UXEF4yCX& z!4^6lg^4I9>T-5bT6`@OgAeGOJ%t#W;{ZaQKfchkC`mA^%BN{9C^Yf=bVtH}pC;_t zj{^We@7b7TB^u-UAY%j09(N&rV&e6tff0;=`1Wk^=^thPy!{@NXBK|On?sOs$tZ)E zQYN&)a@<0@17Q3KCG+9U?mMSKoV3BvjhYx@dwLcciff-Y`nCP1wC4?L^HI!agro~Z zkBR}0@A %i3N6i?;;x zAkg`{XJ2VJH6CFIFy%RAhF2nig|izv8i;W55YFvBcu3lxiOeE(LO!#ED0p&_hidtL zv70jo*Fm=ARVeLx9o_D{Y|#h9<${bGA-N)jVAGB!sS(PxJ(dm8EQ+Sn+&&IR2O}8X zGf2!X_BBv@6qG0#&?LQ@o3NnkSDo*CqJxtb(m7Nro$!!>iY%+nFC-9YQgdCI%NwYQ zF@Zj@6Eyk=*Bj@LT)Dy39Qd_b;g8&`xOqGt(=U;0&Y1fv!_U5T{t$G(Izk| !($B7x+r_Lv)RGkY6@;YqrowM67~ zP91P>f9# z4vhmonICq~)9X%pXJbmvT%SG*G9XIE<6=PoL#Rr4aQJIEY z>GRZ7C2;v)f%Epp9IxYHQUfFOb_drV5+3PH=cPI}*pj}-+ttHrfrNxa)jV<2MsPOf zI;0w=U*Dt{%|F+$(mnlEcyX@@P?C=rvDUXdN);3SLcPskX|^P~smgN>8>Y7yG kV91G zKaJcGjLhDy8+~*a_+V1e!`(Jj!JD7&u<|$Uc63uEB{4`UB>8NwTMe_5+)2vs?1$Zo zJcmp^?WNkdh79THFr_QQN)tvlo+0{uRdne%9Y@2zvWBfboL+>O{)jnay{ll`PJu}M zG9_g>EB-FjGr|{18pPf7qk-ENpXm(avgzr5?%`t`u5$`6X^E3;=8&if#4XYD^yV04 zZZX_wBhTMUS+Bv3jM3?BR~cnr%1bL2>fu%kiF*sZmLm!#9@9HzIQCqBvh*yCac$PN z=uE~eB3*mziAlzrg60n3gFZO<2M-m6(v#h{c!D!^B4?YkrA6I#Buxn9u`zSvht#m* z-{O&4s%ET(Kx_>#t_BviBQmYon +F~DqP}Hatd(5XwPm78ZM;cFIcGD?QD(76Lj5o)t&Y}KAM031vKM{X4QG_TKQ_iI z)PZV{iEh0VTVM7fh+BF7?U?%-c}UcJPJ}J!{^Wj%Z73omUhwaqW;z=MGTH;Y-SN!a z6KdF1lCyqntff+bf_+-xQ!|N&@EUAjF>6waym?dIkJZk6L;lB{=-L73r66Rs)`_26 z$jtm4**8;~ccrlJLN}YcFnjf$;{6I6LRtXcE2`4M=Qx}#tqnUlvEEkWOgXgS2k>xf zPXk0@fp=#2rJ{U{;8DYFAN`S~T0Rqdk7dm7eAvOFd(SatK{Sc$0GRo$he_Y;rt_j{ z@634BDZME+tM}O{WLzH+bg-(&+F#DuJ6#cA)Wl{c-WUXKQclZE)>3WJ*fb6@Q+jqH z*s_I>p}_}fT+qSh*a-`>E{R*01r{@k&Z;-KX3UxWPV($7HjPxYJ0%S<4&5-GPM|Z; zy7)xixuC0C5C5Xg=nc@-P!QoYOG-45c5+B!aKk?6A2>0OYroour&N=^e{O=#fWXd~ ztapaU-izzUbraA%Di!8O5OlgDS`K%P9oL@bep3xpy+bNO3+jKrpJ&j>hh|oL*_oJ) zKN4Z}vWI^3x$Ho^1Wry5E9eN?yQPUO=yN4tSOlWzUJrw8yf!R;mFe&pA}i=0*{7L` zhC0U*qrxtj2lD(3)0oA~^qY)>2KBq%KUUZk9b033cUsS%!Ntdr)=(Vyn8S1bC-(5? z%q;uax}~j#(K2w%+wUd0syJz1Z8fu-E;LS>+rKjc>^ft0OshF1h(1yY_+*nhR=9Eg z0<3CFPJ&nYSYG)K3>@`5u6NFdBI03jSH+hHgMH0=+3X`Uq&3c3=U>OFqJxYjW{j^) zuVU581I;H(%}Gz^7m@D*13DVrch_^RHi(H#Z(WP37Rh+qw&?GDD-&!oucz-tXfbq3 z&{bpMdoWQ)0 yU}%korJsbWp(?VxS2 q1S}|fGp=Y(1g(Q=y>mPUcZr;(br&F=@v=F=f$_&BzK{@dH+D77`sU>CAUt1Ud zTUQ13qBmLizG?bQ4VS2lOt+z5v@ub=EE!07o&1Xr_Y1KmAQbE;sk_|t;xhC0(uelG zY=0l$9t#gc+1D;P=E;L89|l#281BLM-0!(x`dlo!Ms~4Yrm9L@y&)pgIQJM9(;G2) zK(r=$&s8fXm-q}Hjl^{a8Vr#}(@|f4fL)M*^zZk?Y~ksq#NnveAu7u9bmW AnZ$ zH}g@nna1}?S$@(eqSsNER9o;EAkmy%A$QiPpkFQYXqZ1{j4JDIkICv{DkQr5!e8)- z0f*Z75BdA4gxG}h3>0Xp6?ePnGRH_$Rw005I>kE2h1FF~4LXT2#bwi6Y1l%rO1$`H zZT+}(ZMq@c(g^A&So*i-2lW2L>+YKb6uBa(TUjhd^Z7)~5ulGR++uczF|Fz~5dJ7Y zKnoR=$f{KxLODe?sovQWC+TnQ_qL{Y-@Hvi6mPf0A)x-)h*PJ!i0Zb}&?Gi9k=E{r zz>PcbHrzqQ8|4N7I3guLj*k*e0{K_mrchC)9ldogen|Zhs%pl}TEYGYddU9B`@NIu zpAp7YVoD!l-eFWK9A{~U7a--#DMtO~ZSi_q8ofk9ED4cj0%EBvO+bO|<9Onkg4My2 z#|%ur*DO-<@A^y~u9ZM-FjrigV+(>IhrV^O$Zt`;^(=V?0FZmnQeDp^YuM6Ov*puJ z6?9j-720PNZbbIUvgqTVKiZOXYqLXR#{yTrm4f1g7}>feT*)5;^&x#D@rvrfbO3-c z1#&uiZ@ZI>Hst45 t@VaKVTp?j<8j);KH zu}2up@Y%*(-%?_NVErEF)uy#xSWKoGC$!_`-(6N%$Liwm8ym>6(ShY^H5`1HwPY;O zG+Wo)<}NG65Q;9#Qzu}K1r_VkW@bwtF%UT-U3geLW377WWr~wsrjbHTb$_5|8~*83 ze`Uz?SKR)X_+WDAHX&SuqZe>u&56VVar&9&)sqgWx%Q?SC@4;zjCrp_=c{LJCRkDj z^9QC}{5F$m+g<$G4aGv OKR56_Lq%HVzQP$4J;RyQ>|g-; zlBb-#wF^^uHu5v)GSU(^vLeHv9~*ZD&Y8#}ZKkcx+HQ^_Vg~&4eeH_QGulCjf9~SN zSHE)1d8AbFQrNDE`SN7;lV>9`uikyEn=8M#Bx~y>(Y&we9VLalBFhl#s};vJzP%uj zkZLx9G(o%fb+}o1-oK#$fp8K_#Oama;657gmbYB%{lzu*=COhQYz%wh*X^3JP9d(z zEWypf(fpU}L~dt~7H&y@^l|v4){rlXQJ->hA>R2g`|B12U`P+!xJc1+@`;2GzWg{X zkmo|P tXzm5O@-1)yfSXl-&P#8k@MfD#^z<^8dj%N7xgZ<-{ zY+JP(E&ez~5XiD>PKiqxV#c9AEK>Nt1cw?X@<_+N` +o=QSQq*R~ V^>g^DV`Z<%L|n7Fn&x5P*q5cuL_GCh8pr<-!~eJ8_@6QTAvl0$TgvbDQpUl- zR+1 RY@9e?JiuH3v4$@<^??+ zr&Wt7V)eb}Lp(F bY)XrfI{~zGx2z>H31@nUm_da^usCFbD0ytqkop<$i0j1f>aAmKB{u`M#bU-J6+_ zU)MjkYQ8*zB5IlgNgUStra2D;1Clzmw026O!iwW)W~VA)!a4}7>kIzDcrw$wH0-7~ zZUo(51HOJ)Zp;y{wgw}d-%xa-E20t;8Poe^?T$OjDxbw&r_7d!zV-lE<-B>|L<`je zbz `nhS Ad_%cYC^BWI2F=ZklL9fKr{lN05WAy+>h$o;QW z; MBy-TV)}h)XkXpx(x!^kK1*dJ z?qXF|CePFZxuG@ ;Yw~@MLW1rYAHyRsnI_XJA|AT@KlNmiwVo0FVYV=r=+!SZBbA9mhu6F zx9b8hu9FYkDmlL{+W!%Ya=mBMx@JXVBGnF;WY=(@J4@*|F8jq+f^G`_M>0ITyURn1 zwKnCq((v;IEb E;gH7 z>Ss|y sK z&(-F$n@gEJuH9&499#8lz}$vXf+W7n=naSR>fia~Qu!;E;y>1gDZuE{eIa}Ew072) zuf$U|Jrv5oiNtYp>=p*&gQRgxw%73YnO`@sG}A@B0Uc@^v*Al-lVv=Lc5w=ZakbuR zecN1iz4ZF_k2wdM=zE+rZ$aJ8pQSPc?NOB&tY*(x?3ebB?neZ5w>XfHX+G!mACA6^ zIhnXr51=;BDE7Blr3+Jqv{!X`UvD|K-$sbBbZE*M3fKRuk$^zfuCA`gR!TV!!cD$| z-*3}IH{Oc=#cdf@Px(=A&MG%IQyHQL%@t!cjIvO75?G&m>#N#ktU;?XeC>g|X&2Fw zCvL5|9TrwBJY918^0OhE?1_ruM9(qFdFi76n+}rW^;y|g8haiF4@H)yfIvIY<*)dG zMpu79yO`>njf{%5_I)wWU=-tI%KgieDt)QN>H}#vw2BsJlINl;U?+3ku71lR$6k{Z zxbLuFmxbk!ia9;ml=Sn&l9X3&WTbv~7c0mBf0TJ1ga#++z`(Wb{6?SK)v0pX)$cih z863-1M??CbdYaXA*~JcriPF5p^e_7LGj-eBVXEH2#i^p3wDp^>*kSjP{c3NUbW=x_ z8Qf`451K1NOVU O6xf z2O0&u`L%+8cUg0`J#{tRp^^i$IEGHk?q0f@tM~Eo@%^*Lqbw kUB{ ;^x8kqr8T$9A7CKZ$$ttN7I^sB-xgiIaQ+e;{doan zM?fo7_a%DD?{98D8QumG&y2XnQrSci;<71kh_bDXg_y!xQbidx-XQ|DXZOYGT;Uw( zk;Ab;CLt6xxzsNhIk#LRu$^nh#?(e|o#x}_(f-@4qFP)xo&}RgOuZNJbkn;Kv3<8f z$xE_Tq9wTB57FZ#CGI%Z7gKk+3?+x1{SoXep4x_bPArJ)hjI5!dIi)8W`_0M*IXT? z{z+IcI%sr>7K}717o=_aCbI-w7b2o1658p5$dKx{8H#+6bQX%dHnv}Rcf Y8NzZ0J*t5TyFjoT3z_yBJ!Ie`I+30dwX#Ep90FWz!6J!IMcVuv*79v7M&g?CAN7 z>5cM0%e(nV^GPtKhP)RT`>VoGhCo?fuuuVWnkdlX5hCF69x1-_a*NM+)+24}BDg_3 zb5PZDk!Fn}Z!V}HV{R_DKuB-hD4RsVo&KoMS?syj)@*CP)?RA4GcF=lEq+E#Hzji* z&ck|s{{#fe&32VMtyi0OMdIrUKf9N49x35Gz07Y-)~b6X^hjgax}?IL`JAmq9RzZQ zepu17o@t @itESH`alY?ZiTh=tmbu#ScVm1p$uyxvd zy|0{~EHv%V1gm{;G1Vrg4(n^9tvFyN653!<-GWQ1=qe^dZd2;m;mq5ySc~cWz#h~F zm$sBKd@@eoQ9tU`&M5Nv+r2mzl{rDj*u=0tUu2>MYi{C1{fn&6I?6uzM(+oFg}B-I zh-|WKi>5+#RSy=E6Dd{K*<1Wo&YFcGI|iqBpE*(3!0<3d)c~mb)?aG^c-SWy(}gn< z &iHyg|1c~m#OZB@s%(gRJtTkcRvqVYl8A}`lVC4s|KkGXT3BfNV|W(=LU zy{DnRvF*YB5?_Q$J}q!2dw!*RK{TGX$HijUw9pemLu|3a@RF#1q9UWYWQXOF$#=D$ ztfMp(NQNd U=+h@rjM)?_JdI zuPmp?wUHLo$zh^@J-5FY&Fd5Oz_ny% PFHx!`&+j~rn%{g zub1L+Z2{&P(N nRed5ROo$;2d~#d z3m^X7gxZ4cBkyzcvS@fxybvj{{Q)r55Sjg0zBgdthGL$OaQ>T2giDnM_vYkyChGE; z$y}(3${AtZM>$&knFeoYXKwkGlneGce1|IULQM%Y-^3d+zqXSbrvRBn^EvbT7@|c` z^R;>=-&NF?upM8ArJRJPR0A_9@iZM@abc}hH#=BCHPBjI4EYq2hWEExXM#Mr*-5K- zO`BfM$fd6iL`0hR0?O^`z7eT1HlF?sCQf!lfXW$fn~8V7QT>4KJk(HW5Up5dp;G|+ zuw)y5t(`yUG)B|qa}>VW5okc`{+V*Kf;!o7Gv4mPs#6U&a7E!kui<&s>ZD+##43>i zXGIj-=9K5g$w8uY4Rqu!Xjq~+e2pPEYGQ)zuF3r_*u%+`HjSt&cDjk@(-870kv$9p z#7j59ySFK_K6K;FO&P;oY-75)7p2pjUh2erb4q^mM?Z}g9yL9wUP;+K?$m{IlM2Xt z<@DIBcW h)Frp>`p(veOQGFt>y+skJBeMpI 9mTw&epJJ4f=F z`})vD{QEs2|Cna>zLx_XG(vuV8x=RllX^lzop;@x{2jG75m=XKkp#2*j$_qbx5@Lc zu{AVSjwTbF^$%0bL;A{1wNe0cWec_^zoXV>hBZ~ecJ${#N8eY)AK&^S!*+UPt|CYV z)*;(WVw=Rn`o&bBwNcLC_J*V#|Lzu$`3Mwge1xCi*4O zcJve2%O& V?-OlD!xZC2|`;|)n;K@HB2Kl}vFVRln~5AnPZ);yN+Imset6xi6~g(t(t%KfI~ zcUbG^?dOIqcet~KU5q7aHC6c}3T5*Ca05eO4c zAtqWL)|-Z@>=0&ReoNF@HzjcHIit7@Cy+04osbPM!R~zoH&Y=THgp3N#q;NHtjOF! zJm1gu<1dp^rQGYO_p+hf1YU{zUB6Chm?{wgh+>SzB{cG=PVQ@MbZqnqfAVVJ(4}kB z>8KaHbg|&!ueoBpra@V2P@17~J?>4WaR}#P ra<}92ZH#C31dkVXEu5};! zxIfHztqeT46K ki1xQ`HM0q>_La|!fJLvR#S33 2{spaJS6D*o;363ez)RZFS!4>|wooX_~yQRHa 5mf^5f3<9w()RKR`&f@JG zm^y2tAX9wj>4S#xiCV<-^DSw>yVg2+C8Zd niI;xuk?x(-aHT-Q!68VVR6qvxw+wl-9D93Ib2O4*TYy<_p1*PUp!$`y{+P zfnr4~<}}EaEPkHKT(Cvg#-iDiyFDc2Y38KdDvg^KL}OccXHp~wD|&JoeJ<$EXVyQw z%rao8(1A6=8thmDT3pnJbt91kMG3ghBn%56eKRS#j}-Cb8Jc`@>& zO(3!|I^{cmF(>~D*~jE+laBJ`w+(k-`Zij+yjGxMjr!5`;VDmmz1&PP*-&cT?9?)m z9kf*0U}Ar=Wos`mrTFf2_4K(CYk$~s9gEj2b%5_l?3_gBtbeF)Fo(xsXm%XUX_>y) zHrn1%DY0vwvJy@T52@wso$!qe-(!g~DPm2%xwT?t#j7w=S>0I2lk1gg?esd_0$cXv zr6QY&gfdvNt3w3E_#8Yer)&d`L_+0UD0#+E9a;UoWawce7E1`HOE7Rd*k82O{6R0o zqY-0?1`HnESVz}pn?qnq13_e9oZPYD_2i YtByf#JZ|-%CjT0dn&BuR$WC{_9lL9?!`gy(9!ocwP1#`3b7``wd|R`n z3|=n(y>wAl3&{aD)&~0-KcsqF(Uw#T `2W8ylf=oT}?sJHd5;s zG>MfS8H={=oK$+*T=F=Ex~w;3Q8Oxar21@5%wH}N0{~T}-mJ07-6J6uduQV_+Ih_L z-ti >SS{UA*F71JwPSPr9c6~o5NHi1%MFf!3DrQ~muaxIc(S$!R zu|Idst9SK8 w`+5jMU)8m)~-200*kqCx!O $_{-9P&0mPFC z6<{P`OA>?;v2B5{v)Smec0vj}Z!gwnx_&GXu*4@=aARCVkIklw(vkH^iRljcW;Z`! zbwCKqKrj3$5EK*y*P3!1fH*6g28<6?Uzd#H5D1UB9q(KHu}>t#640M~T=kzh1g|;& zKaA}E7YO?QcE$g<2m8OTPS_?L|IH~md1YZ44pL=`Q)D8f=g7i*a{a$G4^{vmUbz5- z-p7wZsiwmQw1Z>V&!_hPGXny@gu{c0IDG!dby%cK$XcD5_^HGH+v@+{Uey0gWB8v& zh@-JhHU92Yj)5o+t;(NU?yXI1qNNG0jvZyREe8D;FXrZhdX%ws6+C*r&lCL&e~eWq z8lci1qwj%}c=d&h+;ni-Bj3p8{!6u!Zu#+H+pkvPO>x_b2*kRXqjde(B(ucy$TvmM zo)Ic(dsOwDhwpe&9n$>_|AwJ`;GKvT$K+F24tSYE6 MkQwqu@xSn=m)ko{%O>xDw{ae12Tyy&nsvU5W9V76^B@7^$>2S3Sou!q&+cITJ1 zc*J((b#$$IZlA*>m;LMz6 oqo}%ik}r zKhQpmFMzs F%aDHNB6*XX!id8;2>xs{BBpAWyyc&~BLU+wZT`u3=rpqE&vr~)lH z?BJX{kW7rr82qFayCzvog4; ~O lIw{o(BdNCvRgqgPJt{T?7jE)%cRkxM^Bz0#k|7s!``m3(5S21; z3eqX!!@)5+Ju6Gj84 -O#O;sMpTlu>D$GbCHyPbLoHB7Q9!&ct2{T=V$0yi zf@6`}vk-m=ku1lg@2Qb8wc*SrnDJksp^Ni9NgNZS*Yw=ScG&*xz)PL*jIKVVHt1J4 zK(yx7U~{Xzj^Ap|wOXy4#Ese|HY>G`d39Nh3a;m_gqM;|?#wRdu;krj{%;;e#t^UT zc7L;dW8UhWOPTuLxLzvePb0$+bn!t=X0+p}xM*uFuh;w4eCCQrUUvca)pHFf*yI)E z`LfnkYSDr#>DZ>!rg@nSF7Y&)7ZUZe34M|)i+d<%Md7|~-{w7&M`KYO-rXLNdZ& R+4#Pco9EiDU?m##%eu;v|$uWs#l_zZ)hEr5K-j=ur+SezP(0N=g8 z*;;C~Z0I`@yu2v(ZcJ-afV?WfZ~R1`nnKb!C61?`#lkpce=k136mC^wm>L9gzAt?r zSNtmSz<|Y^Ojdok>``3(UTMKD2n2{LuC4v7(W~aG>g=oAhtpIG;r08a; #1#a8xh$HVYMDWC&`TDXFJbmh9v*U{#*m+lI3&%8@_;|8>0L&(jD?uH+Bp?w-j zuw}eTc=?j{&8&~(v)$7p)Lc=wQv$m3&Bp>%mnENld#jcFVBT|Y@5&pcoir$i2;P$W z68qOa=kOy#LOv^O>16qrje;^qYph8C$}!01I-iyvXH+9FSJ0(r)GfH cQUU+}WYjYpv{$zRQqkzm^RN(E_0J9McZ>0h)-xMzl&+{VrIqctJN~)%)D6*ioBg ztLk y{gaWzO!i&reG0|J$=bg-mz|_0 z1;KXA-t_wP>9k;2n} cd zo&PLI9u(?94qY^Qkr*RGzOG9E6Q~%NbuPMz2x0X+7OgwTR%R`F3#ev!z+AGRR~wJz zLEosBKnXqOCimbF!EHFtp3TNobUJ 4%*(4HYPyz zNv<9RTl)aY;VXVc$)E`8U`iGlHWIXAjyoH5;rR1N%az;9g+d(SxE~@*)Vb=gtZ`KI z*Dz8-a<1~w^sL(RC>0c3qm6ZeSnqKbp>6T0Y=&il_u>Rt7f#|cI*xx(u0HyzA)G+g z^gJT$+UlKxwq38!QcDbN$L3UcckqYYPk&o&kA(ao`_tGp&{E#@ndi%rnL;`VAfxw> ziDJkg_ oC@MGD}PFLkoLnu9><%c?VR=;avwKxo+fs99ph!fQ2GZlmIal9^0Dk^{b;URf$b zqexTSpt{4o3sF&nB4;4PB}(xqeC9DL^^>=qzz#D+OMP _I8n$0r`pIg2)ems-2CaU2bGj1_MSg znfJMttjm&tL}|GXxHxjT-iSk}Atk1&Gz0{SF%@~Z_N>7}S&!foAQAM7WpsO861OLq zYDtMO {he$R1civPfrZ?UMHT5ZppacOCH%X1K%Li}^ >PPDAU
PDQE7El zDm!*?v!8yhwob*e>`g6jL1VTW7syjevA;LNH?xiOS9kZXwN)aW%dxQuAenlPK3he> zN%<{1Qz WVWj>o&2(3sVGR9KrCuT K_696;>EXnkzD^~bo_aV@*^;#6oWj*7z!d@d0qN# Kw z029_KmO>V=<~aH7Yjow#co)-riKvKz9=A>{{5bV2uEQ`XKE}mLF1 )w9G#5OQlN< z-S#dgjeW{QvATNXEGu*DW{KsO%xL5HXbeYoYcMMAp2D~;sM_dt1Q+^eff81KIGYpR z0*y2kFk`ko@7@?E$*zC>z>~I07a5~lpYtIo_(Z4_SA#`o+;K6|Bp?JUH@_tn1PyLJ zpodHd7<@&0B-ednmDy!Bx&owp%b`Zp<6{KRZpeT=&!n$5yW~_SM90a0gMyLeN{hg@ zB^cTjOSZM7qCFzRGprVQXYamWPfIi&m*es)YR_pe-rf2W)_@*Z+3cGN+Cwim0_YmH zrYhC3Z|Trc15^BCg?~rav^HIpw-8Zu6_vFKFN7p(E=jV~{O-BgSw;5yUh#nG2~qg< zPm0a^sc^>LoluACZaVi1Y>G$dD9&2WiRMzt+~N|LOp*_o@hS5j>G1j}m4rKiiJz6M z=)W#q(9stv8&rAPrXiv3`|ZcQzI2Uj5|I;H+|kgaVgJ{@ZpZcbG2|Z`qYYWtB!w>s zp1shv_u*pa*+9s4tQJ4hwJ>k$oZrB89ZX-%nBEY1UO7g9jIZ}FU{YStc>0eOyH2h4 zz{d+?I;(EBDCq8_#DV=m^VZco@MXKXFSW}0uh4QQKWOu-(sZGdDIzlKs yh(O{I?ZPLnuWPi9w@dQ;$!Yt&Ry24r#n>)T)qiK$M@jRm zAsyNXhw+hwX90P5?syucL0O_4*=Qs1EKE<{(c5xvJjO)B3cRL<%`Hlx!@W@x*=uMW zg%sq;$Bsi43UG_+&LVB^#UUWi?Jxe*GB#Tt71dI_ZuFi24hzlRq!ZQp<8}B!`;%{< zWb=gW3w-gs#3c<2%|1XKucTPjIUe+)1%KytsU0d~cCv6AoNV{!mj;a>mxsR5`79qv zQ2&<~z=m06S%ihnM8LE;s0-0_&t@N7)vpzFCw&82j3yy?)LR&LQLNiBbTU?^wEEIH zu}Ky@IPi()Tyj>g%|CW|NZ_3phssvCqRskIpgF!1>a@zp#q5*lcw}pDEdAadF0Y`l z$?qEz3)AT}73Fa%ytY?Ka<^rv9!mqM>91Sgivcl6Dsy9wjPN0|WsRv?{+2Wdk8j;` zhpj@y%B^NjC}g3pdL-YnV5E{aCDAy iex(QB<$$nL^s%w ZO!+{jAzhz0HQUM`(RTq?6KL)3sYV %*Oqnr$*9ndu)p^v*K)dSfLFA*IE$DLL+~ zLezMJ{4*4zx;I|(9Tag$cz6< JoHjt0>q6&On6ks?xtRnH$>AyIPlwj8k*~h9L}u}T?2;;Km_eY}n#5^O zrW}|)xj?iGOSxfBn8D7=NQ{~m6Mbq~Rz9c2ZP_#KSALzh&PvtsTKXn6^=Us`A97Bh zS*2TdG!#W dOOe+h2;JSCIw*_#VF7Fjsj?vfi? z$}@Tqy -Yve6Lt}(>J&Tk!NLiR m6WnFx}u{a}hcoxb-?H^E_&3 zc*-h(yb^nFUS>K$m{aWfcfd1s{1~ihWz3d7$A!bKGW-cVro^I(ra!5XUG#}#h8m*_ zYd(Gpg?vPDd14n()9TraqTL7^r89I*BkL~II|wP@yPel<3w%}|nh8}mWM>F}dbHWZ z;Def~Y?pL-E}RHUh5p$=c0{FA&B)q4H+>^NFZXIU=>O^MEW@Je{(e7*f{2tf(jg5h zUD6^TFp?4j(jYAzGk`QBARR+XcXue=HH1S-cgN6k#``|c`CsR{p6k3gFP>Ms_gZ`J zwbx$jyS~5Ami<}|zVEigTy(7bfsR0?zP*RBRPKaZMNzJLAMIG2j`$$c^L%3$GD+Kg zCX|Yj-um~BC7)%kcsNs@c)OFVtry`#>7(8*CLabLtJe5)Lar###Z&$kC5k^gOaJL- zekYde!JlOlg}4mYyQ35YF0!z^g!u{8j6!DTN---PYj%hZqRmPj^^&Gl1hU$tBf_O{ z&I#%F&MrycNs&v9C8VADeI1N)eQhxM+599Kthn9Ca(vLov(r|CRkq=QVf>2!4{ z@B!NkiDgm-B`wm7G!F1TFPg?(P5O!eqTTs&o&?(&OnWs=4~j6ZT!3vY9#U<`qK&ng zs&*poLRDJtwP|}J7bbk-;yE`#5v$b0YpX@c(**fNi`C3@bdjM2BFHPQ*7yk9)%R|y z#}odrmk~A}5C{PwbL;QGQQyUT?$ISm;=-0sO7?Qx$t1No>L>D= y *8q+SICH0cjMuLFLAe_2YZ?`6(n$oc5OoHvL5E&>UU7n2zZO`Wn-45_i-TB4S z+(S2~pww>nseRktq`wDZw+zKf25OzXe^d5JkwKPwwjg2c%iqqu#^*1uB!;`rejR<5 z@F-tIC(?vpvlX`J6hHW9BM~jr@6S6}&nNe>FL(}%oDm}2GlVK+71^JvkNO^D$>QFS zqd;hL+Ks9MrC|;(v2XU-iemW^+7CoZ;g5kW#{t(VD%yA|F@CU&ZVvRe?q;s=mNL#r z6NTU>FA$cgv@}p=knHPgecY+d|2{@jK3lXD1LObIkvP*-b%v=V7Zi6_F>&(n6UB1{ zFBEa9;$})CkY>;XzMH-;V{ER#kVQsE#+S@Yp@zuNMDXuQ?ACXUW-K(3fyH-jw>4N} zNf&nZ^^ixqV~frD`S|<#V$j;vk{1}JnAxU>#L>!9qc4Je6VZJfCm3;XKC4lv$ThOE zbD+G+W}&mZS 4DcR;cEZ`MNIKK#=DUj?2e zlno)<+qwB)O+piSNO?gV$!|cf!A%-yh)mou@aHJ%zvwy}H4q8#-T7W;2s!dl62yoz z%GWE>5L)n-Mq{rKfhN+>p}{m)Sx&3vrY3BHZcX*>4fXYf)f$bTM~q7uys3!jjOsQL z|Ml(zOX>f|{QUooxLp0^^ZakL=l*qNQfQY+<;Qae{s2_|f1!8e7>S6&x=mOs(Yq8H z2y7;q{7d>l%iS>_xyl%B^kv;*KmSY*?>6~APWvRSp3acGkpRCimS?Y`(K3{{Pk{#( z{nmfZni?AVjwAjVdRu?rAfFwCLk&+99XwF|FRh3#r)UT*y<4=m3v5 $FW96D^h6 Z^76%J a*A9M%3Fzu3vB$csiFUTb4Ol&rCh K_QY3;{LB6P$#GrqpC6&>ECS8k8yxIXn_K7ptr0^pw|``_Iey z+iFz{tJyIOq`qGmfLjYm+g sr0zNAV{O70} zNEv&zhFjGc@n6mkCGU8NI`#Ec_66K`;Z-dx;M0$c+qKpV-^;5-{(A=o78Zujr|#7t z?9%!BcK7**%{G7y_RT(_tW%^Fq>7#WRG)xY6WANWqjAkA;b8WEF?m!E_gm?qca^a; z8xp4REd@C~4<@aUF^Ks061&wIA3nbpqwPd1hk4&t48m`LxF6>oY%RY|Ydr5(^F|R} zjE9iD!H-YgK56WZ+|`^TB$D`XHn*oqUG0<=CCe?oYts%J#lP#gSjv8|*tGYT;R6-z zz>2KcI@Au+<;g$UXJ68|m^*Z-1y(bPMY_Jy1M2i_BvwsIzPNP91?3WtA1kitL_F4Y zpE^>D&)bJh`kq~A>LOliWTT%1dD|3ADET-}G}rFQ1)A5>W2eZui~_Z;r|Hha9RjuG z@)^*&x7F_+W>eZrjyQJ vda&P+QW|wcrOroZo$|`AGt~UigkA% xZo&h;EH;lr#^>|51Y)_JLS3~205-!k+} zLAJw*<+D~w+`D;;%Wu4$*Y$SqbdUA#`Hbzdum3QE>yOvAa{cS_hRm+a^3xS#(SZTp zdpgyUdvg;!lBd^8oSmEdYC1388C^RM^%~wiZ1`JzR;9X7_3npGDl<29KaDbe1^ kcny=03#^?~5&sV*BnjgX_U>Om85PhliUdh6XqQ|Nef^ z7iVZ1D80^mO@! ^qpI7j$`wKGzDQv<5PCKD>#y*T*x{DB{qz{Tb% zO$Tq~1>urNU~UNR4bA3NEnut=djhMvPpTm5w06!>l@80GYXlrh^#uxb2pIciJMal0 z#f?w<2NndVEsQy2Gl|81as%qx)&m@=FCQ4&eiEjd{EgyU(&pI%Mr9x~QDgf0Uiu&P zH7YsU>?8p{pD)C*@y$ff2?{=RC6ye4DAJ9yGv SF))tWUD~A6PZjU8 zX0gSU*S~x$byuY>}xXu)R7ZoXp=YhrHZgngTp>4QvQ(x?M;0Jp#z@Jg 2+-mZjcad8-MwBe@)YQjrr`*5Gm~O&GVH;)sb_u6u+iVDTk!;tDdXY5 zwz&Gd*p)yFg})Ub%6r-OYR?#f33eSm{X`0zDDX6IUe1k7-=OHQ*X_4sIhCmh$MAbn z7(LXkSS>@*pi{WvSFlD);X~)`Qt|QwFz9IU=bX=+{K9JDP6X2ZmEfdi1#6-WYs5Kq zj~DfdMP6=gBXIiQV`8&y-J2X-pOa$lQ{v%~z!>aqGoOmxt!2yA5>G8upu!7xxC3c? zdTpI>sfOG)!?RU?5Z$-!)s$-P(wuLw%Fl<<5qu$TZf=V9>U(D$E4-}T6ky%2*m zg5^S@6}+?lj6Efyb)Ji%7B;PCTk9P<36C4W0tqFl8Kqc$W0bnq{v$k*Oo2bv!zj}s z@922FO<&{Y29@JDQB5nFFGoYFW-JDK&IEQGarS?8$iq~quoH$3MD;}{f~$3%&DHSi z>&|eSSMhrj`(JTQYmRAVBXT0H OEvu z@&Mp*z;lZa*n% BdaP*zr!r zAegBjENl_aJ Tv=6%XvSndw{IINyQR>d%v z9=kiI7?gKLMON4M%LF(3qRpV^SNIIfM^DWaEAhG0Bx?2GO^j{wH%5D*B-pA#Rj&(f z_T!AT^}d)GHLE=P%!Ozi8B GRUYl^ZZ$ zAfjRXkyM*f$Z|NJGH%?DPzPAKY`5R1EZ;LooISs7*?7P`jKTnvO|2Ha{NB0?ywH3d z x;yW`Llh`=KD2dMuJc0;L8gwG!>>J22RijPUw) zX@Vt=p{TK%MISo&KA1p3MX&DDip1S~W^)pu5U~1gAu${Pz+6gY=#F>O2U^BdjKB#P z78}N0G(4?v81Tm&yP1{!u{%UxsT6ZQF<3zvS^Yj~hDJQCbVlqIZ&OXqq%0vsC|>gk ztXo2YX4f9)?R37yGk(RL JuJ#)5VfB(Y`lsdvST*;YOcb;if=TK@LOUCAHceiX^ ziIYbFu*oABw2RufqXIIwi14a(M0lIzrnCf&QclPPS@0y2aIOz-?8k3x^xU5yzTHUv ztqPiACZdQ}%z`If{F8a}=2&bZm2HaT@7>yv6zQ;yox~=bM)1PVLKDc&OSKGU<@!`} zG2d9W(&T5R8c8I+a7(p6yTmCIuc|C?@4P)>h%4le+tnZ9^fBgd*jt&Bl2Zhaxy4-5 zz8}j*XfwO{)j T0sP}pnTHNK9mRYuq1(`Hfm)8%tETt@L%m*m%n%2pc_x;PUD zBRg?*dwtUTnfbxE>+&LlOP=n{Jkl%Y;dFW8)D%glMP0@3LUXiAyv?Hp?Nm=B^H~~n zglObEcYsi%$WyzZ1{X{~3dfbgZsn&EW|&`K10^_J6rk1XxoFRjyM||LP>KUHwXkCJ z)6f?vj-(V^J&eZta&^xsdm$(V#=3DozFl&K-Avmw&9gVpjluh3SSuhpA^`qB?W~t0 zt->s3vn?*+zBOdL5tcL#AcUQ%xr*=bvgd38>$e3PLC-X_buwJ_U5;_v%6-+BPRvTU zJDsQp5Ls{1QtD9tl=l9pxcGt=A C zN;@|
PbH34RcC=77$W-+hc)k+n!anX?~O5W|BHb;SOT#V5eolY+IX+>q1s zruUg_U+V@40bK&2?iZR*#6l`BNf1!pa5t>aQAf9MM_uiyny^E{=|}IWr>}4O1*=aO z4L{a5ldw$-_Cnj|G>$!VjGsbvu;bq>1(!#WqTy$!0lZHM(`U2r2G3_etvT&9Tb9H6 z#H>aAzIXS%Gg~J^ve8FKl>>wj=i&8OYN10eFHsW{^dhxnFx0X607E8c`8@)%;F>cV zuiK9j6nFg5Q;}WcrvCGfr({bS$GPVM4R+Nfb^4FAyf2tj`SP9-I1D_Det6r1NSxU9 zkyMBD;%k%W4I>!+nI41BOIQlWu%WwJ0>7UF$t)y)w7$w&k8$ZZ!d`_4Kx&!e{E$x{ zj#?2iKC?Zx7_J-+UMLU4;{H6-+~i$lE2lpyrF}8ke}hN&;}F8;wR?Ko1cNBh8G(A= zLWw}VpE@~^jUmG?NJL#PS?~7!7Y TdbHv6GHWsHs*w4yVve1}8DG+V=FDnyNp6&I4AKi~D*@A%rUiiwXKaRn~p3ykzCb z2|M%N{Av0@sK0Kbd>CQr_d%uHXp_v{Rl?$P(T2<*xoct;*&T?qG(Q_$FoeI_RH9 Ue*oU3lJobMLfmsI-f6C){t zLBSSfv#*V=J9)T^+50(P+dg{ho^|+wVPt}3VDBqv!v#0mzPdjX-;#%-?sh&)DX<}n zPb+v1LrGQ$q# er2Eb}zE45L&gSA8G3!zGu8w>hGt4{3{7JN{u2 zXu&((1{3wZ?fQPWltGd2T^_vi6-mceQlIrM&6AF$!C6b-s$7!aCVy<0I^}9u+dXVc zwPe7+V|lUto<&4deQA5%V|grJBj5Jr9*HnRVU&iF!eb0V!D}cJQ(21c` =51x>5< vAH_Lkz9}dBVR&7p;PQ=gM|-4=1JqKL+Kbb4>k9!u zs$AE|GRkScyL9)0ix%181tPd5{qVEJqGxRW0sv^oUb@=2k}mU^< vB%fwgpnv&NQ0_A8KBgBL27#&MUo{^lQTiq&F(^AvC0hi?&G#fvV_cq_Gd1nn z8>#;|d(6Agi*f1Z*I{M}I7SYv7 N_0IeXVl1NTnnuaw~pfPWOi9Y+HP2 zeH$qEO|NMJF9FFM*zgjLzCQZi&{xB;Mrn6bKG#{rwH;Lt6Fmjk3Yfa?hnVTG0rNx- zH4l_Zos>I{=J+o%)YHihvR9uC=dEE86868AZ;jlSgO3hTcZn0Gt?U$o^>pF-gVXdM zX;XyV;n88eUxXkhQz80pX?*t&I36%%uflsJ@1+L*6pUowNUS}PdY;0*MmycEJ98s> zxjjlORDSvA$COwkm8(BnKuDA~qz7&q?D9$o6CS?jSr^x-IJ8+Sn0MrO{5g~{Bf*6r zdQoq+67DQ`Z`~b|QFhb#d&@oZ@m}m}h?2I2*Ly Tl?}xZTA_8@%SVIERPsK~p&D9=Tt9UzjbbOEf8A=U8QwQY)3!vi*`z87s%mo2Z zd6zdw0mkO!Otg;=zUB~Bb >u z9xzj&JX|B6OCYPqosHp%v4krRI%suuV|<(~Su9PNSgVqt^J^6Yv+jZA-Oi%V#fX{o z)0wg=W(etJ9&2`* J%N{#<>P3h6Jorx+;>{QT$e^Op~Pcm7HgFMB|WMc!8 zkXRjl5Umw=TgK8FbIxz7`R45@(){?J9CV4W71+dbCMN?v+HnJN)p0Tn2SBp+z(*49 zMaqM5N-Vc`&sSGcLI37