From 35d6107fc497c769ed83fbf4c8da5f1da6dde2ec Mon Sep 17 00:00:00 2001 From: xiaoting <31891223+tink2123@users.noreply.github.com> Date: Wed, 5 Jun 2019 14:35:25 +0800 Subject: [PATCH] update 02/09 book img url (#734) * change img * change img --- 02.recognize_digits/README.cn.md | 10 +++++----- 02.recognize_digits/image/01.gif | Bin 0 -> 1155 bytes 02.recognize_digits/image/01.png | Bin 16479 -> 0 bytes 02.recognize_digits/image/02.gif | Bin 0 -> 939 bytes 02.recognize_digits/image/02.png | Bin 12768 -> 0 bytes 02.recognize_digits/image/03.gif | Bin 0 -> 1478 bytes 02.recognize_digits/image/03.png | Bin 22126 -> 0 bytes 02.recognize_digits/image/04.gif | Bin 0 -> 955 bytes 02.recognize_digits/image/04.png | Bin 13873 -> 0 bytes 02.recognize_digits/image/05.gif | Bin 0 -> 920 bytes 02.recognize_digits/image/05.png | Bin 13604 -> 0 bytes 02.recognize_digits/index.cn.html | 10 +++++----- 09.gan/README.cn.md | 12 +++++++++++- 09.gan/image/01.gif | Bin 0 -> 2299 bytes 09.gan/index.cn.html | 12 +++++++++++- 15 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 02.recognize_digits/image/01.gif delete mode 100644 02.recognize_digits/image/01.png create mode 100644 02.recognize_digits/image/02.gif delete mode 100644 02.recognize_digits/image/02.png create mode 100644 02.recognize_digits/image/03.gif delete mode 100644 02.recognize_digits/image/03.png create mode 100644 02.recognize_digits/image/04.gif delete mode 100644 02.recognize_digits/image/04.png create mode 100644 02.recognize_digits/image/05.gif delete mode 100644 02.recognize_digits/image/05.png create mode 100644 09.gan/image/01.gif diff --git a/02.recognize_digits/README.cn.md b/02.recognize_digits/README.cn.md index ab11f7c..70b7abf 100644 --- a/02.recognize_digits/README.cn.md +++ b/02.recognize_digits/README.cn.md @@ -46,12 +46,12 @@ MNIST吸引了大量的科学家基于此数据集训练模型,1998年,LeCun 输入层的数据$X$传到输出层,在激活操作之前,会乘以相应的权重 $W$ ,并加上偏置变量 $b$ ,具体如下:

-
+

其中

-
+

图2为softmax回归的网络图,图中权重用蓝线表示、偏置用红线表示、+1代表偏置参数的系数为1。 @@ -66,7 +66,7 @@ MNIST吸引了大量的科学家基于此数据集训练模型,1998年,LeCun 在分类问题中,我们一般采用交叉熵代价损失函数(cross entropy loss),公式如下:

-
+

@@ -135,13 +135,13 @@ Softmax回归模型采用了最简单的两层神经网络,即只有输入层 - sigmoid激活函数:

-
+

- tanh激活函数:

-
+

实际上,tanh函数只是规模变化的sigmoid函数,将sigmoid函数值放大2倍之后再向下平移1个单位:tanh(x) = 2sigmoid(2x) - 1 。 diff --git a/02.recognize_digits/image/01.gif b/02.recognize_digits/image/01.gif new file mode 100644 index 0000000000000000000000000000000000000000..90c8349b08bebc35122766fc6c67f5f9c0a53db2 GIT binary patch literal 1155 zcmZ?wbhEHbe8`~1aD;*3|Ns9C3=C(^oLRMMRa#nFNJz-LckgD*m?0n_P*zs9YuBzj zckU=DDRp#o7#SJ4xVX%pKOd-`c%b-`g%PA$2SkAEWMKWLpwO3+IWJ??x}4X29s&v_ zxtELd`19ZYKd_*{LuVe}Cim<@jT17*R+MM@e4OgR!g75>h0io8K4s@Ox1|M6 zeYkc|V7>o+mByZj-WT2`^CqaXRW#^xv+#N~G^xcgvN}&-<7o5Xv1!-jj@06c zp0CTt#ZXsV8lcW+?aaSUnUPa<`?AG7np<{hGS)M&9!g=)Xvv=D$WoKZ*v7zhx|DsT zHs?-F-g)~q4k~#ZP3FI%#^vwC$)Uo|H%a+K*)^RN+Dspq@|2lB1hX@<$vjXkU@#YC z+9Tk>(Acn+#fIfT(xbEkGwZJFvD!F1=-=(ZAa>!xF~3&l499;`EE0xq8TBi3`BVZF zHcaBL(&Ay^s1RV?ZOkCRqqRWS>yY3FsSITW{R5j=AIwv{-0b7%$-olBtMZY7-%uz# z*kHoMjqH;u4$slmc%2mG!D7>LFC{yvAy|;(*wsm5MXL9*nY;QF0v2p|c(`e)VFa7o za)TB1@4m^3KbYlrx=!ErYz=24Q<$=tMKEJ&Tb$Sn9mQzzbuI}ai)|xY&oZTVwHh#p zr+!d(+;?XA%(ELZx4WbYPEwSPUpBe&iudu5X&X+3ZJDED|Aiw$+iBNPp@YtLpTZB_ zd2pETo}}LyhR+KM_qdk4dY9eRSa+~%vIU=l|AovjrvObnMaBHfHsJDYOVJ4_C>-|f7iC>yY}$*sn-PM`UmGZ~(8 zp3_($$`JGDWxtP+>sE(aCy|f<8{QL7IPDm10=(?m8xFo?=IV)BCCu8u_{xM=z~NNH zqGJvRjE*NbXY%jq*x;~m@+^n;E{>He_+2FbdOZ{@@txifr1Hhe$zMh1)6>>_|E455 ztZOsVa$~yEmGFT3{)CTk1Wd|8{Z}+_D%Ur(B z!ANF7?wU{9t*b7$h{dT+Hca?Z5-4gZ}o9<I*FMx&@dRtN|Md(-!~$ literal 0 HcmV?d00001 diff --git a/02.recognize_digits/image/01.png b/02.recognize_digits/image/01.png deleted file mode 100644 index cb7e70cb5ddf77a870c95f0409f209ebaeff59d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16479 zcmZ|0V|Zji*Df5}w$rg~+n6{L+qP}nww;M>Yhq0>v7LOG_nhZ>&!6u{clEVv*W$gZ zcURvlLQ!4<9tH;n2nYyXN>WrA2nYo0`?D()#P@sTpTDR;Kyc(1A|i@XA|gbJj&`ON z)+Rtek`XCskg6)SClb%l3Ycw4(vuk^}ao!PdE=z+e_6k9QJsdh2FcQ7sR|% z5q_@hDPpyiLL|pW?Ygw^ou=PRw7u>VsCC5VJr$xEum8iS*LK&msv1j-)iKfgb zC`Su<$Co%${G7S6V52Yc`2D-q7U7I6|+VRBrJ>w~kVNpnu zed|GboV}Oyb9sFw%Nyyd!x^Mi|HP$4-39Hd8ns0_8UA?GU=g6uspSaTq^1ie#M{V1 z#LQ~^i5Grngqqy3$E}&o)G*QBjvo%vPXt!)57+9^%}Be2q!QACC|Nt9*Ye1ia*jy+ECZKqNA+osX3OpDQ>6o!TPceleAqWi3Cz`@EkHkVO%;BABQ!fC%`kO6 zjy2*6*w<;52INYR&rk#>sM#KZeYf~-1SjU~;PI}^HMKY7&$zsSx_!i(pYJpQ@{D9_ zs9n(31Mb2A1Dt|jMWHouPEk(y-W>V?9+HGHGA&fT-L^F0DUum7dg5A&OL78=R#ct{ zA2JlFJY$7h^5J;SVsB+=3pxwTQ>;^%im3a5YH@brU-5%u6~@RN;W|RwQvA|A!oJd% zW#-DXRNKi|FmcR5jnR!M3!)ver-k<_E#)h!dX^w;QQUc2Qd=T?a@`U>MWv;trAH;~ z@^a#RIlj5Z{4;@Z+1@;vgt~7AY19ANY@$#1P0umZq5210YOrc_YRI*CT4t>H76BI87Gaim%~36F=6Oq(#`RlS0C!Af+n*ZMawLFVmkXy*9)voapZ3~KEs!6vtMR3A)61ao7TVyOU2pD`G z#6a9&IiIM1@*I2sxqtR7@$`DAJ@Z*GI}Q75c2+lMH`i2v*q)L`Hd}}9k1S}9exD<-~2p2xiPH-(}dkF&SiBO45MyMc435*4AXW=dSSg4 z0;9bnUrPQSKn(iYeT#w{ebs%s0SrOefn-8qf!mN?kh2K<1c4#JVacJ*p_XBQP_+<# zC>GdBxGLB)csJNQY+v3$BxLLcl6}BN__WDtqt~c=bOzs%Dj6L!eVhnGCA2wInO-2M4jACCf~#7-v zqpjAZK|(8~wzFmB&C;pL#_;1lii1S1+xFkCpHjufS!fCJiR?#beIk$K88PRWzXw5j z1OEmhE+&@Zr`NLSvVJVU{lbnilQ!&WDl0fpXD z_q@~nV!y7WYXR0o-UQtwFU>wp=Xv>MbwUp^)s)so_o&Bu&~e{!{uY!-3qqdmNm83i%Hk{ z$5?y^9{FX@rIkz8&5mk>nxtiytIYN)8@I8`5k3Sj_A8T1x(&$3@khQdzKbW^H`1pz zyldY2;*bm+CfuXS@$s>=0MhI=JFRb{lgEw&()1}kP63%h7Jkoqx z-p;!kdksAY`v-g!%nHt}vKAd)j_>1EWg|J3eE1%(n;G>i6tfVye6BN3I(HsdcVP_f zKh4`ud>cL!H%dhOIzK$hm%Cd&8%O_)u-CPgKF(iA)IIBQIj|l6&9FMR!mN|fv+GT8 zKUkTL;NY>nvE}=f`e`V{@d*H4Xb071AkKE7Vqvf(>dNRll^4+Jx z&D(C3X1pq3Rc8C7_xGpk(ne~}S`Xxvo~ykRAvAo%Gqpxp;opcAU=^En70m%v-wQY2B2JXNG;h3c+esv&&; z3t%9!8BijaTqX8CQ|Jtcom*0OVIVCL@81p3_L7=TKtLGe z|6agS%4F9-KrFjbqC%?fz!yI7)~c&5m#b-(B()I4F@GYF6_<# zre;MbQC$B;+Ak)PCz8*%m6gNaJ7cZ2*lKq;hzbIY0ELzp9t&y@lqFnJ@oYF8LB~`l z4iX-vc2k_!5F_AAo)^iWSZaIBa5{RQs^b&L#jd0K?d1EY>2+n7*Yvb*RhP%`5ro3Y z1QHEI+6Tq>Z-^HG`_x9TV4@QDN7e_!0{)+Y3@p8W7c=00FF3{mv0!n9B||g+?@|`5 zcZB~D@jsFTXOQ(FNRQ*0h5jEw5J5ZtN8ta+9peI-(m%vg28{h5)&JH_>0k5wUrYWC zToV4+(b*ysVA%h=4jaxF^8ecPJrEs3F$N_#NoElJ$Aj;6LH$?%b*K;O5D(at(Gh_P z)%ZXDUTr`XUO}yK zJmq%)f-H5)cvDj0m>n_xCw@R`w});1$QsvB>GRiB{L!7-dkR5fle61_Z}Lu=I#jkh zk%E+|Gr=J3td~MhzzUI5-cjFL)v1Ic#AE=n&TzWAJsySX4X+e87MhyE7j< zXF&s+uve&gva>eqAD@A;od6?<-zgPjBJG0{XL>?djX|a)0!jTLck(;k7IrAAhQT8N zKCZwjaX2?8%_t4kU{(IO1Xj;1Tb-n*v=rH+OBhkK@Xw(cHb6@^o&~ z%3GyQ;r4TV=dmyR8$05n&)LWtV^Eu>Vw3g~T3}sUJiFbgEL;$>le*>|JT?v4|Ij84 z^_@BC@}~C6Xh9()jiaGo__eHJA#+=t;Y1!=Q*z7(7e~#FNtk2x zl6ZbIQa!i!TmwKiN21=y@ABPWtET~@)miM;=R2H~*xz`j%&4UficE|!d=`i5KP3__ zU?k~Cs!s#v99{uK&1S%pt@6g^o{ufKE7(-swhp2}^~39+im6}(;RYk&7+h#C{xwFS zN!;hl*ccc`I0F@c3+&F%8My7%bNgX1BQWg1y0PnMPGTF&7Q=LwFiFy*5dD z;Kx!GSk>uEUSE->{Fx+I)e|O1!?|!|)8OUmazzhdSOSgln@V_cp;u7r_4}Og9@j*X z``0GV<~^kIWcaKG#+za^4+<9!iq4V4cMtTg1h0m{lK&Ep5jzo|WGOn$Y6W+CHT+qE zTK{zZLMe zV>*Bun?I7oo+jLA)}}unOOR%ZlXo+byww2D%Mui#Oc~UAhu=S78heCIN?h8yC`2k$ zpLq~3YbeP?-c8qfe7f%#U;M4dJ+7cOhtFKYD6C}xFNGON1+_=&#ZTttfH!)5zOfD5 z>SDQ`cD}br$9?GuEeekb~*I@)N=X>HcasO7K+`R%$YuNelEQhq?58>%HRydpW^>l|Y5r&c0%!eyG5)>AWG5iC>7XFZiQ(kmcQR9q$%EB4SvP#if zc|*~~e9=m$)Jn^>RBfX~_yj&q{_snOg;hy`T&wcC0zv)Tm@-B(J0sSIhXOSL2~+sQ z42ZEF3D&CnU^I&Qn0u_|vw`5>Fy8Z)dNnjm_fkj|#&kd2O0CLb@p6KhTv>vT9urEi!_IuHt@eS5GQSW06OCxHlSK=Eu4g|u-gCfmv zG*?4#;vP>|?=A8ao>TQW1<>bfMJ6)L-my)@!d~MwS7U~&Z20Eo(`sAHOyw;KJ?Yyi z&zv170;rO*`aQMu%#PI-0OmoPopuKDMKm13L>E&=09=UO zyWfTJhy>$~WLn{8dZv@AGbN6Ic30OiM1+HoqKf3QW8vQRTmy)r_SYh7E0Gb;iVbm? zf~~Ce5(9vXcn@xzAe6+X92>dK#?Lf_3wIQ3J!19!D;MG%`=Pg}8ZH;|T!)85V^+GB zQy)*+91)^ZHF+%5Ui1}?j8dZ5vFHXHFWB3m4HGTwnKWV$p`Fppn~~U*)_2A~4$GQa zkPB{UiFx;_j;D?SwbdRyeWsOno4_3m{DHeBgr%RgQ2uiDs_Ok}V%o?9BLbwq-l2rm zL9gHHNN9frvS-j~yzW#f>6%FKdqC59zoPnrzb6r%WgdOK!I4bTNP4hz3Nt072u|ho z!4r0F-4|HohR;=sAI2O}{P`v7wM#}0t&`ig^i>h)B-irJ+VT}isN$C+F1qx=&SGh4 zrIgbr%Yp*HeV#34#4qF)>j9!=g-#&RGaZCW5y6s!tR*1>P~W^44wpBs4v0qvK_^8k z40t)ui%tX%m<85L$N#k*E8pbM5jTH_3Qb8_+cG|7)b_&^4?LZ*@W&%k-`DOupkrx{ zgHhk75!co)VMjNT9=Q#rkl3d)Ej25qOA(F!VQ;OmjX)-obY)^8rV=ffVv34nhuNpqQ4EFQ&>5ez%uC=?=A8bd+9w z09b(Yw14i4JM5YSm%#H~X^CEjT_^d^YC^qI{~f7&f!qUA!KA8`$iV|rrXEjBC{L0R zIu@Z2!%KxEeS1@1w-ZOEB}D z&~o@yNSf$gxKQOlyK`Dq~W z$EU(C)k3vS`)gzE$bLZdILnpMHRd3b9)TrYk;DM6gMOQ~9X9E@vmxY5lH!wh%q+AY z`si%y?j|C8zMcVAbH*h=Wyg=>6&8BXNpefgacOnrAu3h0Huigu@w+E#*?`)U_GXK{ z%8m&%skJoEH>w=bf+=N3zVq1)ihF#snT**1+3WBdyJpP!nI{^LB^5RAoLcP~%2Q<5 z>SGo)A|TEi;jIT97H;sU8<;mT)2mak^-;3ZALq(_upQRd4ms-Uhrq%yt?{9cx>0DCWO5rDAi0D3 zcwra6bs!B4kb2l7`j53r__mO0WLx6}f(OeU)bLuTAst+epteCTPWTJz0#bn;33*_{ zN(I1KR_<0E#qg(0GQsy)%9fr^r-iIz1WS6kE`ceVU#}+LLd8)f|{>Cgoo? z=!9^M8M_I1kE1el$5%=$lz=V6eHv((X5*VzF$@v-dXozeX|yf6m-`io_CRlbPNU=W zA{e;qeFAqXRP6j2dN$+?uaILT8NyT*S0`EZ?tEHlk-o=gN@Hjn8IiVe;-d(y_cOxW z-pDArkciakO2qnE$C?^^{pk+mf{RX7-FmpdPY(kj5^U+~wid8qM~Y}gcwhJw%sn5C zhb6X1T{OOW!DPz<^Tir*bUN1FIcBjV$|#k)Mjy}l@tD0pZm8<^_5tsdHn0h!-#ev~ z-w2JL#kK(6gkGx)+Wv9mY0-k+UTd9WjzjEC!J6n%)MeSqw-6LS@uL?#wNi`qf-mOR zwz=3FkK>LGVgHI5js5$>$eM3g#Y6zWqXnn_`Sd_3Bfw=KPH@vQ;cxwf930ul&xaE% zxVMkE#AMO0{*XG};GWe?DKvYy8V0LFVihtM6ZsdnF#S<#vhsI&E2H-GRv4ZOnxyr*6S6K3F4QC7~7jwG1DPqnDl z)z0giQu&P7FbHZ62zDF*eiHah4(PL?C!eQ@sl4KKP8m9dlty91P+M;ta}-g^#9&zx z&jiZbm}TSQqimst;&j3yX(G(IZxj4B#Xh;>x}*4GvyqLwPJ~s(%;Or^Tes_OA$RNZ zm-H07CR0TOAYBhpy6iHRUKQ_RiP7#*dY$qn|H@W!8{l|uIg=w*uT>BoE8Dh%FnWM* z-r)vL%Q7U`_Bgt2GW*pNjA6Jmtj#2~Q2*5%R5=Va+gK*JkBKtu2WtEm%!2? z$Lu7vL#dg(n}qCcQbn7<=$T6!}>iN2!RNQM{{*pK9; zykatsxYg2xIET=qa%JS$*-ymZxLd%%!*~ObwAZRt{4yuxl8F)>9 z0k6P4q*`hPI=Ny}p(;5X|ITrA$HK!meY@xmB-HgNoFn0ByTF5S{$|~I*=Q9JbH9z) zpoR#gX&coJb!RG8F6S`hqUDI{s)A|bpFd@=lqxO!gRtOIe1NT+J5P$1LtX=vv&K~p z%8arYNm%5Sw9xd7z9F4S$7WRnTXzL-m^4tVG%`O<#Dt{<5vF5DxLmt@QIAD#iUCPb z@*{#|@A|_v5h6yE8^2iU)0>bNS8MqqJF0tVsX8bsz5e>e=yoLt9RG^kj2_I)GoqEs zu)>tC@@~R-R5}tre7L_q=eXV`ua(2F?GNbpey%YZjpH;m+L7>EtpwAS_ph`5Eyt^t zR20^9iT_i07mRD+i|@s+!f{o9kvkZQj@>laO2-3<2Z=G4jw$*$y}oFqk+_GXlmx<7 zi4z`=;?(rNQtR|Eg`G3#+C*sim14@lYe%X(>e@bRBaZ^)OqhxHPjAhFNj(=By!Orb zHIPePxrhKGIPKP$ihLUs11{2%3L#k?r@;#Bw8j!WxLM2s^a$v));5cJ=)I!58-U%> zA9*}p`mDF5YWf!<=7{81R-$6wXxXRyPAXFuXc9*J(~Z#+ktE;@RZ1RcH3s zmLbh1d^8s%=6!K0CKgkYH&8dkwfL;wNRd4Z#d#FWX|gC)eCsrO<*StCB7<8PY_WoWrt#+n;t}GB_vZB2WQ6@kz;Y zQlYA^t`zJs87`$&(RRGbW)LPItdw_6Q)&GbU<(&A9LxTNP$VJg#|9g=e#IfviNYjG ziPHR76QP?o7|>BD{In!n3w2gLb0w7^$#_qcUa2Ni>xrK5F=S^>E~#U>Stht|Dg~sQ zwwo)O*vd8&Jr`^xzV$%@@bAgi%t_#E@2Cp;SzD|!QaxtDB0&PE9@`he1h|8Qoe)$b z)?{_gb98Og|1k`0DoSuBx_`i|V*Fta$Gj{(^D~@VW`iiDPf?b7H%;xWMOd#;f1J?) z)@@d50%L`GUA2KzN`9|UD~sv6V@SWeLn`o2AVQ3E3o5}HmoS7br&&-VtyprU)3kX@ zZi8n+UqYKjdsFGvkohFvjo+jbduS8~nSLQTEm2L4W7__!3$aKmLKcrNk-L`akOxH_ zxN%O&OJ(yx;ThSNxe^Vx<6NjWxCAzC8@HzH@WV+*w>$S2o~V(H^CXRZs9Lr%GCk|~ z%Ylq)tuYHiLdnt#lWb!6g0CIEHFR}BvU0NCGaF$kHhMD%ARwQ|qD^%>2d8EYps^2m?c*w9uHb{H;D!Eq8EY!qXD%lhKCw z#1u$*{6=L=cc4*9c`gF-ha>-e)Jg8&xfYo0<&oa-+1yu{44#!0E|ueqx?eJ>(p7dp z#wVjz#2LQN)(xIWU6_=5mVc8;F*Ps4g*96@fv+?-poVLDO$89gH2xX&D@^FfhYM{5 zcg{96Y)Ld0ru;=kMeQ~hZ9WkL);pqev@V{_w?&i@pXnT%C7EdNfwHY4!C1@)3w<)I zS6Gvn_h2xzRVkfcEQ>7<(Y(OyjdCM~_7_IV*z>2&NT^xSPFBO(NO#>Ldl|BlQSEzf zR%*hr2DR{qeDZ7j<#5%!Cr_T;oFr-U4g}L`q;5;IE_D;8Zj8mWeG_&ViLpsb3hiL= z{RT$1?^cd)V_h|g7uiX5s}8=GV%7}^4ajU<+XNiuf>y2=joCXx;mhNJ8!J=UqGr~M z><9l_p1GL6Gcw9~d?oniJIIQifVA|kQ&#lHLE|U5=CW84tXHl>`Mrxo-htD_%a+@) zW?00=@B0SfpUi3M@)L(`lGt#OKN>>$kwf~4d>4-qi_}I9=3w6wG%nZ%qzY0O0ejm1 z%v2)M>+j?#{n9~#u;Q#rz+w*+2rh<;#JF0XPw`Y*g>g)9U+F`WlQlJClz}Eo7meJM z!TeE?@GK`GiNb6KCKibi-6DroMz@HEEPI$DnNl=+D&q{w(Q%ju-qLIJtOw&nT&Kc2 zOmy>6-YK^>arXrkP}P#b3dtHf5fk$R>3kCk?{h+){&biGiti=~-pL2fNoS=DM!O7P2|)Q6|8QMNkC=X~EC)nukHDt0ji23(a?==PU6R^P6o0|}55oQCtur6yk9GILI314%3aBjFMu z;@7e$9HeG#%m+6$vHiK{l0LMd`~24@cun=GS0X0=<@TXboK|R84dRrUlRSjp&(TRcog*pq3!Y9cle63i znTT(Wm;F+_OP1|kWf|J%d7$mh?)y)}AMYWot0&0PK5EStN3+BEyW%31Df5Mvte1S|SY0Zh$`fuiE^?eNNBHJ`g(^*#iQ3K%SUl|TNmPHN z+An44tr#y=CdFRA0*2L>d77=2DN(nmSi#=7ajhdFJ`agNY6U5niV-DVkGw=Rw@ts$wA@lR#b$r z6~7@2>64eON3sUiX$uHoQ_0hS(E0F|{Q{MGp zvpuCE{jF##UY2t;&);zKW=6R(1~;G@q9QRu8TsM}DDI7jb=pQNg}NEH<7RG7LQ0QW z)YGFAD3|)#7+NPV=%o`d`ALm_{6_b8q}%CT;km$$nFaK|hHeB`ec(k0jjyvmP-uP$ zPwWnLsuG9Q#hh+i!M@y%>%@_3!YAr+#14-;rOxCOnle_i7vz`8CZe`Wqc+q~2N$dm zcjkUG;nMS@Y)8NNh?wEM2Z_JNyFdDS?lKVGf?j zE?S6SXS{fI?Oe_sr|6FQAs|E^O64SYm$j6tbtXhcaIkg+?matxvFmsrTWvP4Y%WzC zQ6!nl5NJAn^5(QxZt&|^U_T1|@Op-e!y+J1WL9>8j5OIfZ`IYPML8>pQEuiuo?^(l$#pU85a% z#eQ=pvLj4`lA%-eBIV*j$PMCN@2M=d3Nc=G!WiY(O6p!%L9^Toyx!vo+}BXch}}kt z_PF1o?DL+?VM1~?VZ_pnN@Rx!{iyb1=lGvrhK7=noo`x9tw-(s^VwR57kWx@!xP@2 zq6^@#^x`XMIa;MM6%$)FhYCcX-pTLa?`%ItXn5A$*rgKZ+bxkm%_tydiWu!3Lyrh4 zV&jT^_^TWwcRLNjCd{RSap#u`=!kD_4mTJiT?hSTV8&I&j{%Mg@loeXex^yS z>2!4A>A-?@A5cf8OCI+=hQ9UjW4W&>Tv5}+%-1w4hFR7NMPj0Ha9NsfJTksH1f}>WEnaU%XB-WCN zdDenB8dOiAdlBFLBr!-0ydEWALRMlb>ty`AHU?mv1`X-Pf0sQ=%sLe0fZGsNb}?V} zP*Gvv#+a5~L&+5FG)af03)yU@}SKj{PC~wHr2_1zo&#N!5Z6wAbB4bui}3#_xZ6)D0Xe${1=y z^piH3^|Pi|nWMxgLG5KT{2f&X6St-)nOOePNy?{-a*&95SNx;3COxOay<)s21jZlZ zWv{w2A~AygGCpZmH^LB8(jx+6UrJiSlVL?D!T69jfhVSA_h1D};jy$V&`TjUqd#XU zyD+FIRL{4KtbI|T4ljX*eeb3;l2?p>rVK|EdMy2M|H^prn?m`eX#DCak{*_8rlVJF zRe4Xa((ad1<=c!sB%~+Ao8>J3*_UiY{PBNrc5mEu2IQUC=jb2;aP=&d-CsAja zl0Pj7E?q21V1>#y@n$=WUE6!+Q~2v6C_;1lC>@oA5X4fJ$6Q`zD`W&3SuY9wUx`b4A4mWn4Q0{nQ$7%bTMdMs7w$gXs7g0$Yx{ zjc3->A#v)unsZHOkC+?JVz)^dporoGzBFNNR^CiWP=6eG<;e5{%dv|O7GVTuKD~}X z>d+_+FJ&^bna?gH7#$fCYewma{EOEmO+4#o$ap~xKB+D*tGpqy&>FTppMN(=qV(%h z%+8F5dtAHPe#B^JTO>L&Rxa===cjX&z7!eTz%LujzJ2;NQEGprtiOKHyuAc|dHN zIEci@uOpz~E4+6a)p^t4#nir?XK$*4LN9ch|E2d$81GsjlCw1tG%r=$%Al+V2cXRm zKF@HV*q?gTT=OEOnf;L9vrzGNML=bZuqhGnX)N%#BDlph+ze84%usw=1B&GV*dN*` z7nelHp6@)iQdMiQ=EZErwDJB1^4jzzz8L?q7n$m=7yj`9Z(yv)^D&>BT`j+5$0gu1YOsj;$uu6c8fcp zf6NY-c>TP4BBYv4SnPATR#t1A=-XYae_HaoPJlUu<{|1+2g!oihMSI?kb>8d(59MJ zpMaQPg205P^%AqTaaqLpm|M1jdre$wlLSd;m%9=Y`jm%sv81e6Ddw^x;!<}t-_gxM zrze5X6P}QuCQ3Sl215uxpe-w(T#cP z#RxVaBg)TChYb3ILncf`Ge*QfUGxTd zKG#yMZO%%&!}Tg!0SC0vpRx#!OmhQ?Ps#~EMkN)$3SsOy;ZQwqYYV&W97o+kZ0SX@ ziYvo#*|`0rXRQzKO@RJ=VZ~{gnDuS7s$*=g-YaAY7r%D=sPOT)k>LhoF!|U`G%rY~ z!+8b#?ay}DFo_N2bQ1Jp=obc2`#lbec^Ne*60redusW4``f(FF@EhhVDZk)*UQ;F1 zoAW7`Mt0&PJz_M*1O=coWfaRX~Vr+hO+<>yL%4SR!Y- zaO{RJxz%Zz>f(H>c_W!bn6DK5`<@VISCmL9XVE4B;^AhSiEXBuaQVcqXdMMae#2|m zAtv`?RJQk@uQrqC+UcY)hrFle0{ktkWbATmsg8pZD1l1V-lgCbIshy})D5iP(IR`} z2G;RYHz71C}{_^S7$7wTz(_=Xfa5 zuo?RRHQLyO>E8jadvl_(K)5W5h0~Sx#4W`QbgZb6u{K}E0VWpU!v>ibm@K3GxsUt& z>pxRaY<}fzYm-d9;0ZF=LW{ejeE;o`--rx~&4d{YbV1xxXaD$6HJR6eltWJvVA%to z^gGbeU{fNXqbp5t$WB$HK{LoZLE|nu|!flni=60@8XIGT(WgeD~#=ye;1$;-8MWb>69 z({PLrpSM#$B3~9Ju0^GWIm#cSj9?tu#u@?3*pt^;uGl@Q4)#Wt7C=w}+onMqxD z(*q|w^}N@M{%PkC!@Gr1Zg*g%oK7P)sV{r(C5^Jo_RtMJN{bOBv>+4?Sjhi;J-+5` zLl?@5+PN)qS;V*Wx6bO{27l z&0?nyH!eJP2o{Ri@4It5RGID;?zupZ{U~HeFEq4NJvm=J0o*ct2++Os^AUhoTFpT7 z_w1=SG9el^;xEhz#>{dDZ#iKi7s4|kn0Sj`Jwomy!^hG^W9PyvcZuw%)q&Oo86z;5=suf6-iwEW zdRKvvpLLKMIxHu+89uvA1?Fp>l-qUEDtdZ9gZRbfVfNEe>d$O(sioyWG92+p_~NfR zC_|$yyNjm@IP0Emi75g?5;x6D0Efa^FHvwknl@z#r*@4U;!ua7 z*+P7goReKFSf19xLpt&E8?`~^i|cl0EG4{E0Mwp?7GUpy;c`aHr!wzEJ7$nS!T#X2 zu?OWJ>WGi6F`_o5cP3u6$vi2itKzkvE=C@$L$KH0oepDv ztp`up=$ez*LLXwb%40)dkP^W%Dt>MJV3Z0}v)p$a%KC)?)R;&^qDv@&E2?IuE^I8m z85BG1$T*Q`b-GEzI|~uvD@YNxFDvH9OE9sH0w_wfrCw<#3axsSi< z6N>r@^rd_Z39(o=N^aH9fSCk&ak?6NGXQ_$hP)6|$U$pYG2;se_COdWseAmp7iTK? zO#@9ZbDbpAF1mQ5s^9zMb|%~-7nl759GQW_Gh0bOTNNFU#X)LC%qEzeq}DFlSoBO z-9U8U5OOn;NRgOnfzlSn{4-Q@`@7~feE9!OLMkH$q-L@ z?-y`Va@|%DFJdOxkQ%_eiZU4i=&84@;6hdvlcmSz)(xWUuStbnEh3;|?FDN4V7psVlA^!#2q8ZpYXmKqF2JprHo(v*s% zNSygSZv#k|rW@0o!I=%l3Rw6@_g=UXu?7AQnOo5r>Ka38-UV7c{6Fk-N}qr1-4Fgl zjQ_ID#lpU0C$>tiL;N4IdH(%3{k-V@EnfQ{jr@P;?P&PlEM+v^H2aYMu*d&jecy_L z>lB-3P)XC5q zDc>ad01%QslxUE^X)z`cSdaj1*us=e$!|*}gTBqO0NUU9*3T#dhVkQIel(~4$NH}K zJF$kQCzA{i7Z0f-!9Nc@?n&DM|LY+&m`0$I>Q;Y>!G9R*6QBVMX%Z~$=>J6RK#AIh zB6qxSnU) z1`ixbz%1(qcB9T$AyFTdO*;(CLUm_L}XA3nQ}4A$Q^YOH@=4h} z(W3uJ5;n(7C7uuVFNI({F;!DgXyhQ@kKMX)D^qH-ub5)LC3L>${r^Evu)c#*JU<&5 z=@ql_9mML&^drjg(#jT>G#>gN^*#{g_&bIH%}`+Uxk-0x`o|v$&F&5m;`y8Zgl~GK zZ;V2rfdMb{VkP~-WINONDkMsGB90bx_(yEMDe7 zhaK=v@;&c+WAZn;FHn%k`^R#xMq8z)P;&*-%5$bmqj!=E*vydr;z(~|77~Lmi z*q-)luj)h|GCt*_f>VFxug39=R+DNdzFAau6<+1!%zTnC?0u$JRW&fX6 enP{kYzoIpy7mB$w@b3m7ASp3<(OO~s!2b{R;0-lV_rB)+_g=;a3Jx6gCzceQ)KL{ti7ED48^zeOy6p5--hC_#P8S!Hp3hjFkjucs z!?Yt{VZ@U6Kja-1v=jo^SOY3sT6Ng?m3Y~BHMp62+a^s`=IPI#IAzvs6<)^XISUug zo5`?rQFyB1gckmKB_`GtF=d9lTPwP=*R+=MC1&z%vg8Qb9J`L8XHQJ0^||9Qj5FDn zXVqBqxnGRByy0F9%K}SQ_B+;0@k|HuUf!x@W8`KN;AUiFb7JM6|I##-nQxEL(mY2M z#y@8?6Amos?a(oLBq3Ok5X0H=JVB(u!li||uivdkXd%O#MGQCoaV-#OWO&S!{@O!e zMQAUJ+q3{Nu0(@3E)6|~0yZy`PoipTo${sRV`MeF0w1Z?-spQHSgNnnDIfmp*I76pa{4eTrh4LW~&|2;gwbW}y4 zL5I~q;k-h2Pk;k2>mI`c4qS8C4p@78{9s^InfBuVvyd8FL`|^Cfpc61QywS^O?#N+ zB*6FWh?4N-jR_Lj;l7Fe@#;D|4)d7a*|38=1Jb_2dytNL^ z;*Ky3ywub3)j)(Zu}rfwHC*lCtXT_1JeKh7-tzG%Lt@Xz`{4yelNgvow{38jcRQfS z?#Zy{#&Z=dO)h4oE`v#j+`5aB8W!tEZ1P^fcP3I(k=I5*gHwB6N+8#ax>@ZO`Vl4K zaq0pem#%8zc;ald;f05`y4NZPHXYkCCU&*mi<%sYGA=VT_6%$1Wz z#2-0vc$i->KtMq7k`f|{KtRBT|Js^R5dZ2x5N!k?AUHA$Vc|cL!oq}q9PLaktWAJ` zBqCDMAeEKIfBB!LDx+u;f+z~v1)`lVSb+go1jfXJp-90&3l7K9P_<(yi_{lZ5x2Gg zHLlgCiPpb_5mQZcs@E4hkb^rvb-&Df%w~A?eFA3n$em87fbx+ik)xdc$O1Wvz9qKb z5w5%@D`Qlk68ghY_9G*4XjgDBu(81iV0-^4?QHw6{Hf&{^ZDBP(G!gtO>+bmFeEAi z6mMydK?3)0cNj|Y0R`iiv*)GKhsp$NfZ##PAT@?$GpAhrK6NG&|80$O5J*%8EKuse zkthSSbnMXp)1EOG_l`0qN1XcytOL7|K&^jY@EguU#P&vc>=#?S%|ag_=?yXOT$qnD zdx}VPr4Y$6{14U4{?sdf*`c4bZLBpzD5o_`04cGYZj<*;W0}}Q2E4j67IlxJb$uWGxHU47NUq|AKpVyu?^&{Im$?yaH8^UMNE}JoXH4CgGGB1?6ZV z&-fBYik~x=-mhQ$W4IB-savJWsX18X4;_O2W{B_BRA{86)Bur9m|)5I_+_HqB-2sx zO6y!qn7|@P8`4G&kC{9EQGrlW8aay~jUy?@%YkliA=l=}qIO(SKF@fHQ&<$@WZ!y_ zUT5zm{ahYjiSkCe>Tr4~<>R=NC_vDGvQb;4lcCD9Ix|0ob}f6*78Pwc0q$lNB4$>j zE^au$2sOE5pGzZ~v04;%CVfG$<}1aE3o3u5#vI z;C9pNgMqUha(F`A_+GT(b@uf8T7fMe1-F$27ejqfdIUl%DW4h zQ}7ULQ#d2p$|GY)`i^CTj|3v58>LrvKHgRh*5s?P^FY0Xd>7bdN8kWKdZR_7g?|jL z+5Y+PsckHX?3*r`z#NVUR18%Bp=9GXA zVAt7k0P2=1U;<>tg1+Pr$^+?lf0Q!&!KZyW0>w5vm?VOfAf)j_`NOd6r4=GZ@9&s^ zQab|Q^h1LA|6za_@&}6tAs^(#?02C8UhJn~AV~ISs>iK{P|+t@19A1=*5@||n%)EB z0Hq6Lv&Y*Cu_}S>2I|?vI}=9=4xU4XD2z)dObzEf2y`d*m7qik86x^E@hdSR90{8V zR>MD;=vV^15xYXvR~&(aA|4>Y?TF(M?o3jbAWs>(@CR=Rszpe=FxQ;$R|I)}(wqzn zBCSZ&e2F=kX3&k$*}>C2={qWKNZq)+fw}|4d)-g!067NIHPmis z>j8Hma)Vz5!G8qT#5hDa;QMmu2Dph6#z-|$dH34VgrBy{LMViJQd8(ErST2C(S6l>aYVlbVR z>7xlpYgU6*qg_L$$=xzz#k)vup=A+f322ULX*17Tx-r&=a}r|+npE#!o8Xu}TOhhn zzpQs@be?c_y==aCys*5CU65VKsnx3S5@`#HV5~{EHbrp4cH##>02UdF3<3sU2Qd&g znXe}5Upxn&KptN`OFX@vYA<~j%+A9u%r5KZ?B@FH{BhQ>qnXo9>;LXG3(nf-?DGwF z3`&RH68MfHu{JYDGiO`058ovk6;Tx4Y_&cQDQymtKY?H&G@}m}v zQzaRZ&uVm53#cMgCAvf|TUna_GN5AKw%)MZurswuHCHumUA^k%T;5vb8T3x^i1Mfl zi5OOo(!g-RaHIL1nwttT$(m|LyQ`(4MW#jDY+3JVT4OfdO4nT5)N3Z(cHcJMRMF63 zD&73lJl(2ew`m%-(XkGFRe4RfS@eAKEcEg8d`$vH(k&J)wiMldF5m>^Ole>4vI`@aq@T7+(hKXW;2-T9 z`BCuq0HW8|>R%Mt?62t5p@K^`5Bt-^mHo#C`q-CB1S`%He#xxYmTL`fyv zl5LhuCTk_NAeEJ=l=aNRP1MfaV)Q+FT|cBR#VUqU`lTdUAz87h_(2{lr_NhoRk%5n z7{N}iA)m>2{%IUE&Y2V^GoLDxm6EXy;wKoAFOEf1jnX?2Iku7h#K%qU<@GEe=Qy*Y?P#lc zW025FspV{0dB1e7v^o5IfZ`yY>$Y>ztt(kxjqQe7kCkf zxR_XqmtM=N!}7HN*M%Kr#zPB7{b@tam&DynNi7FrJ|>~)#h|H z`J!5>Tu`x7lh^R+HB=rRVO?TvWW`HSNQtqcU7^$a=#cv3(!*8mdCN8E61Cc+H>>4m zBHSO!ixb0^YV+AF*?zuqayR|Ns>+J46|M!-%Cnx?{B&iP+qZ1Xyr$ZEJ?T3C9E<0` zEw}8sv~t6;)lrR5leFw|o7rAv<2H6P!i(U=c58A&y9xO`{>=Nsd;Nm*LGsdud&g6M znt%M)B@8P}>N4RS`>6*$Ff?`~dE|M}2%(MTjRo(0@ILN(x^#M3+&PYhTZ&iH+j&oY zzoGZ=;EyED`qW{PHMY?rHgM96cUkt7|QNp1&5ad)4D~U_H9Xu)4CstP|I>>q~GyT$zqw z=eE7K}gD2KhmL`c$}i+pSWM zR|Tv}@0|6mf4eSiruMG&Lf$&=KK0Rm<^LFriqFQG@ss&^Zt!0-pF166Zqm!@k@W50 zjNxG+Ig#QHD*y$-PmclZJ-Gs%{l2@Jg8*^~e6TG=67k4WMtYU6?(X|Ngy(+^3`9Bu zN(hsyz}9aHodL1?K;kY0B%q@cmMK+?T}vmW$Kq~8pZUhEY0qswp7!dIN1PZFx zI$&%EYR@C@L6IEwiO@MNCzmFEISa}^)(5-@WY3TX2~_j%-T-Ycq2UAsghBRS0hUxG zy#oRwGmsP!RCWix_JOt5TFp3Fo%Rm^hFLG!s|`V0;Xo?ew#SWT0#5%GkCTRPHK`eH zP4qxwc_0#lO6GVprczbSX(=vjw`^XGJzSZ>Q8XlJOz|ub+vu9^g0sSmk*^8M4wkqe zk($d&8J#A?ds52|28YUE+UKO#opvD2^px)`hjjU{1^B$_`FWf5`yO5Wj)7*91S17O z0gmVoB)YrBs5V<~5D_3IM2?4|gpv@V(F2R{|EKHw|B3E?L;+X&e?1alq(rH=|JezV z)%E`g-91RcuC)K`Ac;tmZvSsQ4Z}Y{e+L@BE&aa;lHteP|M`^w!@vTT499#09=jp? zFS0-B&;#E8yn?_+{}ZsEK*lfs*+m3U4Brs`^Xe4Te@%)K0hVY{Lm|3z-8^OTt%P!5 z@(nU}E)5nLBjC*AKV!zGKRBYfw7hIES`fb>$`qRPf%9jwdm~0TJZj4rq@k+8L_VF2 zi0)a7ax)2v#tm%j`g<4vdS~N8B{3xL6R6GZ6>G|yV@NZHA^T_4Z_l1hh?@u;&c@F?$|C|=!@23Ove9#m(1!G{Gt8u6qJq+-S zQf1^&*{_zX?-bnoMz15s0h9m_A$=2cp3++HL7Q^zzi>Da_4(~=6dTXWgBr&|lP|Xv z7P`IXRtt=u4?eGsCny0OqJ$Cs-Ym> z!4A~;qUJm@*U*Tuz6V8D?y(SxAk$K@?O^zcxP>D5M@SN4_Y;df_SG&H!g&JjQp=RR zUc-JvZ8~gV=)`awY(K+|bFLD-40-Y4bY{N#N0sOY^n2}U5leZgj<4+dWX zetc4JZ=?u)rvq{m$k(8wnnHu09l`d6uh;A;5l)pr)qnix^3?*SBA(<%nSkj(Sfo>t zC~9T)h8l?AAX%}K8O0&Hy}ZrWHEX)T#9F&4Q9vX`0&fl5_(O}#ey?WP72Dx=- zyc2`eeh}_G6wj&)I5I|ZAsvvav=qye3qCXsANuHjBxuDS*b9JTP7Fo}3-c;bF2wIFOqbSLl(1b2Dwj@!qK6f}8$Y zHmR{}@`x$&odXPVkHpnOh3p!S!*vOunS(SAGuwrF&vgM^1u?JLjcKSlw>2?kpx0pG z2iXdFME(U|CB+CC$vyzFktincGdiE$jsZr}E6@?@p!ce|h3ajNZxw3|E8_>k@zJZL3 zhaWJjl;By~R&=+za&VNU=)eOm6`*z$tmWohp^ey9OmY-VTaURmrHxkQTZqVKat~kB z(@Vg3uG#R)0NBLlDW~}>wV5zGGq~Fh%)ROLCdV-^qVZ*M0i-s&*KKn#DOo~0dU9K2 z9Z4LAR};QP^F1eBF`Sr)EKcv645@`f)yL^m#q7|YQ^~?3Fs7unBPUKcQe)QD`s7@A zYnRCobW7XQ!1-zubXq2UZ{=u;x^>lx?~6s^McEi%;SQypwUpbpQQSlm!M}bqmt}(i=snAW7W++`Uj67@jgMvdKROZU?Clb+|XcU*z zMPSnt#G zj6u>=Ad^O^OOCuF?3Qt|ZN&(wCuEa?L6l2WKQQEY`fZ?8Gu&9g25-@zt9aiF_@j=K z14$dD4q9@MAT~I;x(6GiD55asHt{)rmrbS=84JniS~3S7-<6&=d+>Va5S`5@oi{8r zL$72|2(39K(i^T%C09Qj)G-;m{KBcwF%f$-O=?X&B~J}o{y0R?gYwsy#TM%18Ua$( zN7#l!nzogGpmObulRjYXR1XoiyLK=9fC%!oBprm!LzP{J-^!lyzu;S_31uQr;y7 z>hc6074Rp{Z+UZi;(8WCYK;tAGc2v>Wgp;dv&bPLKKV3fZM(rT-zS@-!=6^Hq?z-@0 z^X>^=MH6%(z*N}ZEPd^0ELArqaEwZt3v>MJ^5+MHPk?jf9kW?`feV>I%-fz(YHeEG z@Wz&gEn!l5q(DaWnU9v2Dp}B-=a>H7>{#lt9YHE~i2PB1X7qY~+#h98l=Q(U3?miG zs}SvT@VB^8>Dt)}a`I9$cp1^b(8$wW=!tt@$y&6R53cW$OM?f+v&#!{YiTj->3y<8 zxv$a=Z#Vz?o@5|aTHXJYV^)D%JbIqsb^z)7)&Yw^M_+p$#83usZb_ne*0zL3s_@3< zSp|JA-GV99)S3z;y?g4I@3etGSIE!%$xL6nU$b=YP7VAn>yQz0~kPZS)IN2}-6sCK3;`MuexjXyf|dKoIu z6Z3Su+xJNWNYEg%f~>3z|59yp+`8c>vi-ArJ`@9#%9g^PzMe|=}F1$ ziMp&2YJK#hVzb&x?Bb=`4^R06d;BPl6+o*kV~uH=Pqb(-hxeIlG9Ugwn?wwk$nrEuPsHW46Y6xU zQfL8ehB|q%Em*!3i+M0Vbl;%}6mNDi2H^u~8|8*rD7Z&|G<63*zZ>agW}}v=Du}muF}f z#q~OrAB4EM6!#`+dU%pqJ9i^b-FmBOjT^Nj^Cv}jd3sQ54KMnO8ZrK$8d?W*gGNRX zZY+&q&B1dgkLDy5iQG4lDdAo|jhp6yg$uKMRZwO{!xJAr3>O5W`}p+sVnltpy&8C? zE^pwjmr}OOkvezi&nF8fCo?BX$RZ-l7;qGgjxJebaal8!7y}BVCjO zUuoE<-Xe2Adh7K;@HZwe$F6>6R=L7*@L``dn~yr1vfYiqZVK#1tPonJKsbheiYZ;p z);{EKPw?uR?B{K@_712&tkV2!uya8wJ`m`<_SRm0>w$!bRgWwV=12;TS%I%%J6!ol z2Ko4)UQNgbD@O;f6&5mdam@6{7+)Q1><-zMm0MeI^w15xaNs|q#X{ku2(45i?G+!C zzIT7HP3|#~dO?L zJs#%vfr4O9&SncI*IdKw2q2$awHlM|QfSW)+vcvnkpDhRsY zeMno{f3v%r8+bIF*Rk4M|B1|)Jj!hP`WACuL=>iy-Ru7#8j?lmzxj|@>)MBY`$hU>Y&%7qSSvgpgUoagi#YgI@6bWFfm5`w}a_rRJ-Hm zqj?^>6srGNP)0_9%wn0xP;6#g=nn0aG~>MtA}j<}zU_{ASyE{-J+dr8!?9u0yp;Ps zHPVUqiz0nAzgfgkXRNUJMYE|4@`kw-Z$#_b++DhdI$Xb3xb0|J;)3%mX6E4bg8%Tt zN$N1-?YkM)OiP9KY`qpR?ePm8GMxb8yn7t__9c8WnsbwZJfbb>q`gV9b(!_-UWJge z>!PEpd$K^Ja!f~JM@R0z!{QlcF;$yz0JI`!$8COVJ4oyuQ)O2k$MV^^cwh9VpM6?m zYvaT#LvrqNb%68-oR93~tN=6tT-t(#nH2#?J1&0khlk8dZaeEuM{ZxemA`vk+n*y6-0E*lzU0Q?XB-~U)_)h%muQW2ZxPNzs7=aCtZEH zc#eu_Gpa0T8mkqFC+3)g&Ui~5H)36;?|645zBaJ9Dy|urzq3}Py?i)ut=Ww~BH!x5 zHfUdFQEPd^zn-}m=rZ2XNZ6}q*>{_2wANp6##lToYbVHj z>1AwU;9a^{h_6J%38wiGSqe1A*elKxPE>(YJe>M z820&82zCZOEOyOp3<<}BWtQ`&tv@AwDisJPr=ib63hOk7n6ZA|vL1&8n5W3TDwxwxxYPZAWg5~jq$H5j&&&*F8Wet!Pe2y0TyO>w?jLU)> zRtQ`I*It*e?Sdflg*^peWn?OpOcQ&P*CdjBDhDRi@UQQMc$OCQ-a-ok7Xmv(Q#pNb ziS9?79FUv&eVRq$c$VDNDTq-zj2V@({*K}C9SpAT-{Ig0zJ+a+aQzar_Kczcw5>g2 z>hu((QF?HP{U6o8RatnO)CzreKsaq-3@p>hZfJvtF=yrb0WgT1D{2b61M#Thcb8EL z?d%$yI~E*w_7mAueS(AGCAnwz+t!iS*S1Y4`x?`EVyN_QDVeoqarvWoV%v+qzs@+G zn#FlJt7mYlQqDR(b-nyMFOj^ zw|#-ntKdyUfyuFy_xC6cbf1r)Not(>$OjoJEDm2ysAt=LiSs4Z`Y~Q{BsepoFs!TpOqP2g%g`J%dt!>J?2dVeV(fx}B49MjKh6kFmCe{jU) zG0oQ!s73j&gmirHT=_a+uRp%9(0bv<3NSOPg>Wfuf)QX7=C(>Yti5i;cyDQ)+^#?A zWbgHAS3B{=(y1c$-85N=t4(29gm16Jbc8`KEWg523A;5o4YOpuySL=z6p!Nn?n^(R z@|xpUHKkKnnHM}H(Awi>N{my|zZe}@@_s3tku7{Ld_I#b2IL>!o60a(OIInb$y2|z zO^0?-R~Km{8?qcly-U$oiW6pU5^dY&af1U;QmRPypPN(`C2b2*a%@#jd|MH3lukhV z6h0rQHr9Dx@^mAt;93EqJGY8E(EBoD!g($GVdmG*9UH3JV-e>{ zLOQm}PN%O;q$`=3>c^_@*=rN_>hvoGdWq9SoewV|3Oe7)@QgTmA* zL=E+u=bx4`KdGf~cF`p)_tnAbc|-e%A%GJZ@^V+o%8^W{0gKdguC2R!BimJeQ??U+ zToHKQqLSpqNBlG6&{!Wu6xoZv3l8$%BG`@blBW`_UcnrsPY$|BCx5M2kR=l#K>IR{ z_vYcm&RqM8gmBBX8AUOGhK z(mF6+`gN+k?dNMWiE;;qlJxePF0~+@mso(vP|(F0KUba<5991C3}LU5Go<7n>ysz& zVnP=%+xCg~WVEwHZV#XzZy;#CR&c1*>df*z#TlcemA2O_$?-Tyu)5v2X1v*9^!VWQ zsf9DtiIzXfeEn)-(7E&Qtz0#7{c`(F(3M20&00G{BG;Ald|Gb%FAv%<2`!BGAlD^H zj$Q5Y0rD{{vDlA{%*&G*r8zxGy~4j602_8*ei1;cTGYf1uAh5xN;Y(_BvdLP&U|hu z@5}_y3i9l%pSRgojdC}nJxYgHI(5L8>N)HO%7M%{S9p*@stGNl&+kYJQ^Dr%y$nz1 zWAU8`pK}XZyy_x?Z+0xJKaj#km%-)o?{E8tLEJ23cqG~9oe3$52B9^U8m}^lid3H> zreb8z7I7A$pdrpX%(rM{9;^j^T(*{D3^`tQdM)4{zs`6JCW&U4XIPHz(bATX%N>mn zE`oqwvWe8mct$F2L zgUXOa-t3Lc3Jnf`g|!w^ijWL!Q+4ADK*JZF{DIH}|@|Ih{B;boc9d|Y{kt-FuD z_J%MF_N)twYgqQ8@0YLh4Yb0rm6-m`iOq&#vif3*WXbEhUQSWX$*!ukEAB)f{l>+J z-5=jdO*O-lQ(j7t8X~$FT4|RghC_3+~U!~{VU&SI~n{G#2W{tweO-*=r!yta>F@Z$H!n@ zflUnB!F0V?p1(Imq&mZ4cO{E9AmM8E)H>Tn*xrStZ(BKz9Q2SP^aw}8=I5OLvAd1a z68*2*ixuHV%REy(E{QPP-p z=C}MQ$NMVn-p{LY>Hf)xeX{^!66>hX^Tic$bnk`7LF`%3@Z1;JalN%Xxg=FcM$lKg zrgiQcZ_paZSG&_+iBXt#+Mcr$avo47p~8}+(H_w~bVT|JThg+rd#gU_Vo}&pAJ%Qj zQOd6LoH#pQP&&?W~+^Itxf{i z){N3ZD7AZqub1CQYwA{@_q*SrIb%A!ZqRj~5R%%@-v>DYf+Sd{3CI zFf9B$zVK~m&PHs1NWdbf{jn#RlCV~$nnmo_vSjBg9Axz@!{n9GQaaaNpq`ew4hITW zJzcHF#k2<7xd6pE(0F~~hHlZyEc^J~oXUCED4!sWFJ6+d_Yla!lmwCNdDjakj{5zt z8L4m;;lN~Joc*Xru9_kg!!Fskj36R!DpPlwoNi<_0i}&S+$&{PWFjSNr=CFQI72nV zi@#C!?TW03J~Kzy3M;?5eiik$OpJ4l<){{O;z^BQzZptppCEfp&{3ZVic>f^jNNG@ z%*#6yhmIYgp|o9tE>y9rP-~^|O1k8Ih(M z!qdqO?B;V)KRgJCt(K0hf6Go(_HfTsq!A2$BCZMh=W-^BTz!R8Qy%C;=YfH0#UgBE^ayK_uSVD#0dO)EX(FqNWMpn zfda7XjqOSiTaQe9d0(ubza8B9oE2(ZiuW;p-G1#Nhv{Yb7|YY^bZ4K9R`R`tj=)dI zm3;$=QlYV?@C&R~68r2#;gJp$p@BbJQ;DA$shIC?u>=k3w3LVf>PUy8P84Vs0{*y^ z+ce8NW%5Vn(8rvx&SY%M1naiAeyX*=S9L&N8<*EIOlvYz*lHm1Rh;9%F52Uxm{MnU z1eD}WnyoTjWwFif$I1o6_%{T%V7=oeJ`lG9@F)r2rk%ALU6bqqf`gCS!K;r;$>;RrB`(_o8COY*m!CCf(g? z%x?^(o%m1j=ym?oJsc0FVWb0`44B_CQ>Bkm3bu#h?J@LA+T`K@C;O=Rer({+l}JbB zV#u}zVj=R1vt=CwgS;dir`pE&S*Y8!B=sM_?FxAQU$b9+rnZ%D(rjs_l*yBdgkk9*)o{ zcgGOlnn(Rfnf}rbBFgZ6>s}*v>a+I=GL**h?gWq`kqQg61 z=1X{r*zCums$f$P9Hm0jJ{cfSnJ`n!B~UXHK!bw=`4N`&e80$j_HNabPqbMcvFB)* zo!s)6!e+57_}q>~UDQwxM4vd0^#48Sh6xa}STj1Qc~NQiwX2gzdt>(}%|20aQz3gB z>dVIvn?m(U(85QS2Cw!54;!+`$1Ty@miRVsXi%zr8Tf=MvJ{XI{YZhOa)1m>_1xY+ zg4Qs6(dE%}rvJuC9+-8?5ersWmKnrPfeNZsl0Q2I1?M_NIk~&Irz5F9Wucm6%N$Ok zhrU1Xz;Gl*3E&jZe-HCBDJS`r!)WOl?yF^*QVzh$i^M!Bkqb}BmC-1B_bsi!S%`Ex z>yUdQOt%cj1CJmxML;t~WR%cZ#*WjL|`c_ybaGn40h@g_j zn%$3!ruHEE_hL>13pRi`ivw`BzM-26oG&-%)E|0=?fgmS_crNF*iW?8gk+^qJg_}# z0^G4LIHU{t=a_G-2HNaah4Pklf&NOP^z}Ilr9?Iec52C^mEN0EMLB@Gjh_0K4pIRd z3ec%yfW(OCrGR*zcUrPugrU%UUNX8nWXO)|NCs`Imet8x5<#?tHq$`yYa9=wMck6d zY<&DmY$^05DIuC?^hQARyN}qw_t9HTmcSM9A=N`R%}gP?|Coe3n2!tibbbG_$% z-KTQs<9y3vt%g{w+%s_MK)!>JlW872n1|K?NSq=@i`4p?*dqY}aRa(lFP%eXn|jb@CTxhs)s=G|vIYB$j{ zTS~dzib2H#R@tg|l-3=+C)SL;J1z|cz!;{v!AyU&_VYdceiv=FEk%HkzAF_yQ?R88 z@+&qs#O5*P95#vew_j=2i{UFDL7h74Bf;U5)PC1T3TQ|#@&D2tY49qCxLmDV2k*!$ zHZKruDVV9R3ol`M9K#irRP044>QKIb3HxQ zrX`%?AC7RqkKoM`Bndnj?tEAOdqZ*SP;hv}+03vps}{|j)(xM`IkBG}X3m`IK|4V3 zkM9@=BMu`)Zg&DZt9v{3#O3b?JSez3iSXp@5M1`%s3{L+R!)>{%Vl74-|zV_C$Vqh zp_AG9Gs4GnPsInnA^;~ZlYvAb2b|UE8l;oh7+-q7-jk2GlR#=pNXaCiev4A`7FCq| zyk0Is*9?Ch@rE>0O&$pepd4tQjd`I2pokE9kooKIuU0TnFx-e=L;TQ~9SmHg{EmTa zNdOyIN<|v)=x`oHt#H!7{h1i-9KOdrq9g?w7W8l2tS$43T1+($L2#jRW@YYC$z<~@ zbeOzcE%kC*gdOi=7W@|_BcE(i3Jil4ggE`e)*NC=6uaV3Yw@_l^sQbR0)_@=CJ_k} zTx>mDM1LPSJO*CV=o{TY0^Leg-ipk!J#R~WVLzf&)*6_(INBZfZ<@|ORwY6}R2Fgu zVk2_3m}5&TfsR0qxVj_Hc}3#QzM(%gxLsXh!j%*x3J7?UWkBOdFyihh(|b*eYIX@})NR~BF{2&UNmL~!8X8C;UK@nX4=9CQje#?l)D;_GD4upNs zyrxF9rVUnMhWK$lo(c1%cjQ3qj!q{ylF9LRCM8UCBXUGPiYOspi9^3ba3IAz{ZbP4 zBVZJKBt@&R9L+~l?}NRxu#E~Q`5(2D3I!q={pExCeX|yP&@|AKqUt&8wKs;nU>+gk zgI`7jea{m}+m-k~3Md09p6NiQe2nLR^bkYbKYEBKPJgoYf25HB`9EZ6COC2`>3`n> v!v8Tp0I1e0ssCX|#{aGE|L@SfAJB83^hcX~AN+p=7LcTM)j-nC- zN~*5u>7ETK&vb3yc&_jJaT=Y(fp9ADj>x2P$!zWnr^kmO2soVBtaiybY&!?Wcfv4P zL5;;Y*9C>waE_XikZvB=pk2h6uN@}?Ap&9*bscyfhZu__eja@n0s{dA0&!o769Nie z83|AxoSq{Hdt+6VG@~1!0ivB4tR$KsrWXZ3m|sQ}0|^@lx*fkWy>JCEG{wQg9LyKc zBF7=r69J^VSO?hvWgG&R9p5t#F>qxkz$D}w;gAX$?IPT?=MxA4>)Kcb`w|TZa43Ml zLqHl11jfl1z#1Bb8weVNXyG6UeC0Gm&3gM7!2n(?0dY@WQLvz8q4gaEC?85@Ki^$(J&7Hg4wo?10S7Kh+5th7FahJ3~%xUHUXu7Fpof6J*;hi_-m4J5qRS5(F(!qF% zjTDHXk9Hd@X@F*IVZhsOzHypEpCVieOrvf-8tJAv>SpPpz+5PSsohaPDwYrxaE@4- ziX&^HofY*MOflRULv|?<>tJk`{v?t>vnyU;z!eS51i%>rcrp?|*D{bS0q6K=7>o{h z;a>q|?Q@b*Y&BQFCFV+iz%dd@a6o9UkdgoaB#vjBUsq8S2U>jOdy~8HmMAa1e%-sS z7v>i7@C3}r+JG)Ttb-8+{`SSLi2+OCS|#BaV1gJ9TzSAGW3HC^kQ5#*`9-d04eP|=Y}_H7S)6z>nt>b(`8!)aVzcO z8VOC~19byZi}AFbm1c`ImRiR~P1zD8aAr3*t7KX?F1fU10@j4Rfm9W2YwsNMLUjO6 zT?h#fPln@UmElGqZUmtItul$TGYlliM3Fyv?&TK;fZS2Gt3cE_1`iB_x~(1{pb!IB z{EW{W(+(|=?lR3@P|&g`fI!mh!t~Uh5(K?K3@(XWET;lQyF`(=l?d>LJbr;dV_;2| z{Rh`k5dBSYJ?LN?@_sK#Q=V8;^%Y&H1i#L;WZ=(zDZ zmcU613>ZKPFMvR>Ku0B_@`fi^n8G%V5C^g|#N~4MLv6e(1VbpI5{uY5bX9;G1zO@R z2=;+}c}$8}%%XS}#b!FXBw!{ZL%|luNX9ZMK`k#xqZ-plL^Hbajc~k!&E`l)I=(QD zc+8_7_sGXS`tgr|45T0jNytJP@{ov3hHBLARst03t?deNnv3^1xGtm3u_Y~ zAc=^SG)NWY32gtX1ew9rT_Ep)0| zP~&=inrQt?7%}x^=kNN0dvb8+r|y^8kGTx5zR!m_J#wehX`p=MDdZ?81z8|R(YM6* zJHpl1WEJ!ZR6>6^%6?=dPVEX#Ms{`>K`ied<=q|sRfSsaai6d4A3f2iu{1|uK|`Xl zhvIGRaY*3)oeo1uexP9da*n)IhESPc4G=tN8KlOLY?hQOs#9k&aVl$+!$6`kV8K!c z&O{lYj_p>H@35!)M;acuT@o5j9|q&LL8b76k2 z>}evk)j}l4a0TkwgXvd+vOj*(wz1ZXpzzc&u5zOu}h13d*rU z-ic+-6hCKfJ#1`&aoh;v)a_E0)Evz6`wpRgGsJgmYBW+(ng@|Bm|)3;_!XkPB-1hR zO6yz| zue0~EelD-CM0q29bvT2R%5hvu)I-pricwpnlcDPKZx#Ux?OKkYZECu30^F@EM2xIP zUEJ^oBh=)M18$9MriRJ(cD!(q0Yb2Pf4Ej>#$U$323GRIh@T}_(4e@4z#0CCxGI?g z$Pd^{tVQZP1VZ5jt$fS`_*}tR@B~80?^G(Wh|of^ zfH4JVAl5hhNt!+P<89SYO};t@FVsuOcY$4Y1P&0SH(E4W_{Y$? zt-^;-ZDT=X-%QCQ#z;hUoe5bYJ_YPil|?6`-y4X;{t%z(K=;qF%(`^USZ;Cw4)}F1KSz122t%XWLgXgGX|g|uRcdBk0F(-bEtGpl+!G=7+3U(3kunc_97nk5U#t__Qxapx9;ylSGgbgfsyte;C&Nv_iz_gIyC) z8b{!pen>EX1xAQrf3SEE@*ysaeiv%srG8pQf@FW@dfaLVReh3m5Lf>leF1ZznSC%$ zQ2Ic2d%W!ss}k65pq_oaGjXKg;CW<-!nkz8)NsDTKzCwa2}+cZVInFC?8Jz0BrIlF z4gX}KV~JmlSQVna;s_)Z@edL_jyN9S&LnjS@|2;A3V6#OI&k}?!iaSqJaz~g?wnyBjsI=6y^rVDcPPUv~ zzDCI=Z)RPOVP8ukc$bsL-GSxtvL(NTCSu$A8o$246O^G{v-@T-+(vwB^KLCM(lN z6OPWT2D3)HhD?*EW!8#siQGcVBFyrkIjW`2Ja75NSRc+wj4^2HcmMh%=giq6(Z%n} zdY4A$NoUu~=8MM*%gfkB*~Oe%tr{;oOP^dmUPqlf&FHoIs2Rg{-KT` z>9AV@-!UY%W|nA{Y>W1hyF`P$ga*a-gmv?p1<4|Oqf!Tdht$8+e~LzT$l*{0Pzxrg zlZ?pcG&-vV)ex!@T_RVkEX}bEs9AQbH!U~qOl?xl)r?!$u6nsvwwHK^yi+`)JnBLs zMt(E(Nd-6rh-hdrJB+0X=!MYY0))X)_a=Pn9a1(H`g}xnhCf4ZJTJSXy`DN zZhmT>Y1OgYG7a18*nqyOyr$nOdcJuEd^|m0lR%Mli-n6VN4K8~Izc&8+Lt@IpN%_5 zJJLE@+k0~@8X8}W|00=-{k%9jN&eHka$eii`ha;#d`f=0M(;|moo1P4RqMRQxYkh{ zQ(Gst5qB83$#{{9Gh|b}1!zNWW4OV;L3!c3*}+H0x4^&Twe`GkAN8dF%X=z%2Xmi! zxpMWiu(iXp=hgSJ$B)3j!O!E98`FwEL(t>mTvnICFy_`|7e+9}Fk_db7uHuHFxEHv zqv-De#GtR$za+TTU)`@0zz~!jNGcQ-xC`k8IfuZH9~crGmK@p~Y8gfzsuscz#R5A8 zR|R_s?*^NP<;xq0gpAcdd`P|(K4Y@h=r!gZoxyjaLQ2QX-$;G0n5>gbT4_Pc?K-`l zVstC2B^FhPV<-s6V`?(}_4{(YdtG1@d2A%M3jc+4mdjRcd&6DqGx;^=?=4CoN-Ej5 zY_nuCSu3dpsjN(;tY;o>qIT{!lkd^%#vg`K%wi~IY-Py`$%-wd5AtBS-+TpDg{1Q5?i`-F7d!btQ|9v(OUc64_5K`-Pv$GGeYUHikg@0xtp) zml8|y(rejtSictGy0D_mc)wkcIUm0A;F31uSvtWJDZMB0LQ0Ognt~%YX z59><07hz50On#Zp$tai3fF>Z<=x0^e!8;D?OU;BSyyYlo^oAyj>U7} zkz4UxUcF)6?x;qnNm_Ba&1|o-aT~uGAbDxSz2mJv z%|9M+3BwGNx=eV-dg_4>42>O49(^7%LTF=sW5s(P`WtsWQ#!LE?i@$UBgLob?Y#f{ zprQBA;U7Kr3e2ezY&467?Ej5={WyS@bXKdUnl z96YvvZTY%#oIX}^0(rjNPIpMQX?p5B`VIpQf-?O!zOC%Syv7p3h!7e0BK@4(lD6Is z8y^3j)*ezkQv8ya&0Xbp@>t!*Tito~9(<_9IK=qkBlENPYPl(ynF{iQ{Pd}C^R`=~ znWzd_lioe++xT`}-b(FV?}fZ|+`df}a@&+JABdI-|O~nuh>#3B0#0MH2DIQ$c!_ukP-n8piX#1_mOX z1to;ZRb=lsh0cK3yC-o6014{ogk?$9M*S5qV=`x*LH3RY3bQBnAY0KY@bk zwGJBFf!g!Rdr%}teIj&D$jPONU(SIFjQ0UA0ogO=K?2qM^BbV;B{ZCXfY8bQ&jT!} zM0y7VBnTuaBBbIDeBFa+t#X>d@cCGp87?2&h&`qLTjRj=*n*l|gbn8!=>4h`kHeb6 ze$C&Ik_mbldKh|HL)k26!~v(y!hHKRbvOca09q0kWgOB0{E{-63clAdy$4M_Scoi0 zYD|;0eEfkfZJ{ta`1yPH;f0UIY}D)uYYTLaX2WUL<0p5I>(nFf#UoEZ?}LH#a2Sda zBpQgM|9=||&lO0+Rmd2C#&7@c#p%Kbo=kf6@8}-46^h&B+545%vFq=$S$N|BMA>fd?EtkuKOY zUD?_qb)2-DZsfaj{^NuZ3#@k(Sb-cAXU*V0+emkT+74IJy7q*b=?p+#ak(ivxwzNh zWX4DNxA~($peoCwK=d?||4#0K+Ex>~wqu=}{2RhRW_sN2uJ8{v9_JrRr=b{WrvIHb z0+qb2EZ&pVJuCM6r203%R70T{zrqnaWNDJYW~kJTOA zWO5q;#u52{MpVGoIpg=h{yQrRE&!$S#{?0t%Bo--%x(3P;Z|XXj|??=GSP=ba*)u0 z7r(@bM0mNyic;EO)({Lcz);+uY)82SHs-uJv$4!!J z>ljy60vtbdAL%VgjUhfK`Ypydi2kFRehtO=hj%LvDK73mLeW=(YQMEB#-pK78i87T zPYY!IwY$O0*_O76_>ws1m>~b}@b^uH{%tSoSn}TIztSlt+V`qVyI8C()rN9ikRJFw zIYO14>R$0svvIy-1miZMiUlkN^pDhZ9q@m&t$!w}-{yFkcb@;?3%rY6`A%u~X!fX+ zM{ov~{3;dpAFf~mQGc{k0v{tj{ePAS#zJi$m-$==KvR!YR29S-hTo^<9TjG>p-y%_ zEd6R5{HMiBq5m{*34+b-znaac43+$mRpB!s(u25ovi5-CHt(Yc??HZ%`0$UT{PKSq z*-?&V^r2oh6)|2m-Fr06no1(igsFVrNMM40}0hW{v0#cTXDlvS_Vsipw`!Cg(t{d~91+6k=r((Hl88Y^br6rV1 z9Kk8+r#3fc8LX|(89O9+2Na2d4Ad~m@{c?Y)jgt@#aLrxasmaFFO}FIzlf#v63QGt zztq73LQ$mjfiDRLJnwA-u;yen3VvCoNA2`cL#9Zb$oaHW5>{>$@(`Whi*k9kFH15a z+|t7VBPmm?&$mn_-V}4$#dqLLm15l9-2tWhHg1Lzj+6=AXvHP)9~CX9;4msFrwU0? zvy>q8h%UsWFN+jzrg)=*RycIH+p?-|rgSHSO~Kv1-a{CJ2$LrYM`9p**PJ@vQ3`1amLWPmWQUImKLx>XI0^+LDTalv`8EN}{b~A@yw{c3*wIfU!vqz7pOT0XYJQ#M!#?9-exL(xn7N>J?-$f+}I1^HYGa?*kts7jOmY4=uUYIYP_xo8r!76wekrD2D)|1dc&b1^D7bRwrOHdZN z@NCdaG1u61RvvP?Mr+>_F0m)R&4gx3GvW0fggSx@SU}t=H%Zf%5M&dnB`q|!bGVXoCz3}731HgWkR;K{Mjdb8_^a}hSus^*n3)duN5)^i{T5a zFyQWI^mKMaDgzbJ74^}}x7Gl?#xXCxr;S^ejM6skM3R^fph#8T3%UC8;CNEH&7^{H z3Z@R4&$CZan8?2RI?l}M#xCfkU|-DdU8fzIoenr(&ybwok4syU`+GxE5&Mj1R|-P^ z^c2hdgC1#%R=G3nrZk`ZS^?TzsjB0=(sEm3`XfWM-Q_gntb z+PPjtvREK^6#tEvBX!rVd6UlEScaoYIIpDV>|4^d>IsRM{$Nh*$xJLi&$8Gt1At zlVBXKeHl87)qBe^ls@>&@{GW0@@bZUY&m?Uw(1=kjG0d`sM5D>yD%BXQU_!M*NaCe z9@DxjRbg7avoZ=@d{@ncsTo!fsEM7W9nJ$vSN;uAti)jG17x|<| zq{JJe#O7Yxh8Pv=cl~)!YP20nm98aNh0kOK99#wNC+o9%Q!7o3Ii`;sLv%4NMk-E(mO=}amo;Xo0Nvl4To=QiA$xFLp*=io;D3Zbd3i=;w zK*QG&NH8k=C{kriWbw&-;2#P0vzKtdQPZnRMOdR4O8GD<7X0yp(ehBC`7n6l5(YAGWqPTo$O#kIbjOtV3~Y0w!UiVxRNeSc)}z-OtMC8{<)Y(b*L$mqqPW{Ny?xFA0?9l z)gHvdCKHtBBgcf?U?&HiGS`)6iC;b=8-^l;U1%mo_4u*$cszm$eI0_*7KZLeA^82l zvQ2`HJXS0kd<$$R1l1EhjVZjJ(cl-S^k|qqn@gnm@}PFV8Gewew!zQX!&66Va=xNKv5EP6a)gfoX|=JAL)ufwoQLJ#b~-Z z_#E|2Rgf}CHaxu23sWH5Q;DTHwB>qPmfsuzrNqK7DV#}1#>OOG-fC8CjQZ1}r#@Bs zkjqMpHk|Q^jeTFU#tfx58p~1n7<~gOedqJCU?hpfii(Py-w_QWweiQ!q{^LdI4WFC z{41H?%IVQ|(xtlWnXuu*EFPnp`nd}CdDX{`0xT=-d3e|4iSFwKt$ENv(wYrc|hgKvQ^ z2i&~OcYQe@8V2%4sV{N6J5R92(h{ghsX5HgTNq^jIY15djfqUO8-z>`B+p|8X~GP^ z#9M*`86oWP)5<^vmdpXF!jIi}mV~ubqiNmhsV|{0jMjaT|T1*^CRsJGn z&twKx3%t^SSAIdwqJs#sd?SSK?Mcdh`wC7zIrF;Ps_ilh;^~-#A_j^~1)%XV3+4^| zQtFy1&K?e?yOmuz;-MyJZR23ju{#$YBe{2_!z^^}d0cqWG8Z%|1&|1J`s^#;o4Jb} z=Xxzy-xS=i%-ZG~}g9NR6<@GpRIa8TMGx}xIr#QKC6XxknLonQ~iQD7ETrO17E;d%jkQ7g5u zN106gePjfxs|l1AfMtOk*z@U5MN|7t#SH_D_=x?5cM>V2mV76YI;Z7ezW;Fa}_2nv^lIJBNA!aSyW3rvAJ!!V>7 zftf;staq{syCAK&OFLm=E~g_=uSp>E#$e*E*R9~L(+sHUdIfwwuo=Fc!GMwfHo0gn zIOyNo@~A`hTv-G=^9z?kEo$zl6*Zxr@>Y4#=Mvo|XlBd^(z&!Kc;QqvyMMwZD7m4~ zf*alHD+$ZhsgNR0#DKIok6SJ`5|S{=1OJmPHAaH|W$K5Z#0ola1z8KT`FDU{hEZf8 z0d)Dk@$Kj^J$NwgC6PmvZ8&5?g7ac+sU6BRf!&d9jSV9T47XCARipqmeso>Z>T#6( z_1EGJ=%9{1wF2sL7Uu^I)IGXV&$Bf-y9t>^e`6C!$U<5*Vz zkSZDhUcM?_U_j7>0OsG!4!wYiBy-r_oZ8SF)}P-rDSM@8(jOR*f4+hT+`B3|%F-^H zMV%h!O*MZi-$i|Ramju%of#-Y3UNAGvx0|vj~ftzOg%ZS^6?bn6gV0$sP+kpkL9aa z?axM@j$DTjy&>kLBOZjCKPAuk9@`cNP9LF4;8jQr!6`2S6i}^K(g0BYPTH{kpsKtY z7&~3VNg>hg<s@ zJK^PJTFqV+r}_-48en?1l}MGbp-26)Y%duoP(^w&-NIs6jB6=tNC7frud-V&N?$0l zdiQ@_Sli*FU&9rXp5sI+JWV?JO%4s?@jn#P1`OX@Z%Us{7D>%wnhS$D8}5VR3pLP@ zqhK5R=`*Sh4|G>$yw0&}{50~8hFG1c#da-ebXDzXe!H3S!COX0Ld_*I%{VBlVqu=r zSVs6tgj}4KRZSRI=Oq#mQ$FK#K2T*S^VM_*U8Fn62`m17x!rXPWbdtHA+Zp(7YaVY z&kwR=FP1#Kk~;m+1ktTjQB$(nc*f!2mQ}htCLpG+Xnob17lG8PXp8-jLp;p7faS+c z2JctFfyacDEN9CocP~G@VB}jMN;f6Ab}!5E&gAJn5ho~QryZPW6h_0gD&@u*YCcn( zZ^m%R6kC2DWXk8SEdC*ef;-3`eR>X?2Fg((SU=Yk~h*X zO|TRRdcLUL$t^|4ywshafglXICj!nQ>q3_xgF|>_{@a3itfJC=V-LA{=9X67=d}xT z`2k&M+<^JoCoeiMRyAsiIq~CrWw{qc=7UHUJ2!+DJ0%=G(R1 zEGgX-4GwRk4uj%dt-=IFfmsP1`5PJ?+0-aWpwitQuhg3bUI-{oyX)W5Av;9nZ!`N zlyp;=`CYwI#+k{lj`1R#*2C?GeE^M7je))@jd1&I+DE;@^U_TL9>h{Lny7t7Y0dmg z+M+w{j=0gIL|TZ&v#^hlX(qJN(tyqh%776?G9}v1c)`w5Nj{MzdfS!mYQ`w*rNVR$ z#kGVkv?A#>Pw?jO1Kncxe(7x9O3A|1k)Ni8^aBG=g+q+RXWFN<%&pSbjDfD>j*j%T zbn%7wcS_-TaKfjSt8&?Mx>e(}j*>J2f|&q3UHdSX>03Xz>FV4PCU*L7@gL-R83XXrV-&T z$PJu!!JJbp1FN5w5*C2Y<)bJfOyEGV8Oa(aNS`K@iwJd$g@)XISNS6BdtOc~S|;J}S4;V>}q03EiwxLF+5j71gEw zy;bCHlz2S07#B1QY|fHwL=8Tp)Hx~4$_ON^zQ4c@_kBq#{JchEzKA~s^eWj9?^Fmmfc2N6@vgB`n7EqZ#l&9 zEzK!qNgynU|DwtLoINk7 z8H^nBO;gpV(Hllee`^c!w!-#*q1KU)ETo$f5$UEC7Us7J4K8kSB9F#BklxF%es)$Y zQAEDAYW65ozDH#u6pz2y23`csq}m+4G@{Wx5CfVM=8k;oQzgu@8-V#Ep$D@n=gK7W zcySzEHZV$tVDK^llgh$;exd47_7kd2~a^OLkhh2Z7PJHXUjuB|1S)wuU z34`6>*@SkcNoc^$(@Ge(xM^44`5C2zcxR-RU1Tlno#Dnp54 zR*UK*nPvH|TW^D%I)No`<}}OY6+14Ia;&A2;?ZyQ>+~u)ydiYm(3cU*Fs;D(k2f;Pqf!a zjJC+m^v!2_s;5Wn{XqHD%8EJ#di>T@R^eRsJ#>CAXVrPdF!?QVRy4U+2U|(!d%;59 zhiX5t%-A=%C`9{Mmp;9{?kk(aNjqXKFVk$@6!l{0m>qb>ocME8@=J^8Ium@trL4Jz zK4$De0+DStUOh%c1i?)<*}}}!JzYj?K6ozqg%+sk|F2 z@D&HSoeLyX=ahf7EY5qZFC6et{jXR3xk4scp4gr=lk|t_KrRz8>Fcy8Sbt&-S?3L~ zXQ5Qf-f2-?k5DJ_oI{}*SNMv}gi$~FaqvpWyIJ85dFE|=l3voiYnzMhv=d_P#kVfh&6j6Q z-&?wMG8^atl1r)E-<2Ku%hk-6izSzJxj+zwo0hIE&A^P@CORHvFs?Iu^8kfTSt>SX zei>sKg$?#mb5}j z=_tALa>(APpxN_Cpz^d0B%?F~db~p@qR^By_|6!#k8Ein7=*PJY|PIW?6UcTVR7oo zgNDC?oXhw6^Az+taaTW3%ycG zEpN;KqZNu_V&blKawDFk8Oj%0fT~ZRf5PE0DG0PbQLx>mZ3Cu8D@hfFx9~ZL6{mSP~7mF)?FDXfuZmr{UVTzD5G9z>%L((|IgqQK<#<$^DpBlZ4vR zmUUpC8Q(~~1UpK)>1`uKWzQ*&%3qEY)))GAkt}}=_KU-O1?M5juEDdJ#(F@0MI_pJ z1FxDxHg$pRdqBj$a-7hLpQf}~`n~FA0)b_Kj>%p6UqP~%f!}r4syT87VRljH6noWm z_$mG6T8@nAnb%j|H{MqcnaO{L3C7s`X7^`uF*<)-pt?=koSjy?mz0zX3gkYX4;U>2aUD$_*&j>%q#L909;EqMj<$`he|AsY5neQtF=W8FmD7WClfvhYeCH{dT z@(3V4m0xPlC zzoMe9XsKx89DaxT`9$c$PY!@hTPz%jZ`{EuQrH%TN7RhSx*OnfKf?Ud2uA%y6yB#U zY;8wT5)L_%R83ZJ92y~crT%jR#N!QGKOWSjea#p?5C!E_}k zDE#Vi0x72#iX7Qj;Bsv_qd+Abq)pr`FPA^)CK%Rhf8-r~z#NIX9V7mM#aIJ^n^0pgYVgID%h(JAxt41)!*OE!} z1FNV`RQcP2Ws~fgSqL)l#UFv;^W8qXeC{oUDf&#eHuqj`FKDzT%uq~3I^O_ea40XD zXUv?GVrfGqr%S{Ma|s@Qv#9ITYk5Svf0riH7$f=)X30mpy!aLSSM4v^z1@@7o-EI$Ai?yFB}X*avT`?{Dbo-v z0+v+&$^4s-P@yel$PAHqcrH^0rG&6&jk>zk9yJ|1R@) z$6h$I#V!Mz^0`TH?<6;rV9S;nqY5!}=%JGb z=9(sNrny((?Mej-Tq$Kj-(2MH)AxurB&|W&3AP+Hn20SqmiXBm^Jpj9MD8vQ_Z>Hz zXJm!4#z`FP3Bw^^6A+xMyJWT1HSPS(&t{rqPOMm*r zN0atuSSgic6G1D^2@fo81PYM7gSz7bywQ_^ne06KK!ruBB2`CVEL&=5kQc~54-vRh zYR&AX%rw8}g1I=il+UQLEAwHR`8cBVy1TR)x@c{l?+)9QSBYL)p++a)H1u9sl6br$ z_SAfzZkY>8h!;3*_L?I5Y`35i#X}AZUzhBf9Jd;9@U%52G6udL7&SIPFG!|^AyBtR z*vuTCqhu0#I~z*wzK$Bee4geb>qzxw&BD*13B78v%nQa(ru9d3-7ElgHV&*2y)6Lh z*{!dOe>oK{uYwPuhzPxeY?wLM8HDJF1f)4 z#Aip!z4_6>37?DN$1yE{;Uujy9QPSKT9N2R4&e4|L83#CZx_W|UQ7;$BgEWVu%>_u zf_B~*o>rkTVTrg({K_0{Q~yk1&@R$yM56N$6l^sxPB04?TX2R|Z%J7YJ!Xg9Ws73t z1x@iqSHYv^;DqYWx@6UiGCJ#p{93KiEcTKtn5O)UE z#q&+XmfD0jI-~XBwp1tRd!xaT%~GE!qP&tnBD1f=KyD&s@2t=Fkb(6-48ka!Ws8@w zYVM~3y>ispSrPpP6Usr0)w*HWayV{lz;P2nZ4=B#3cDQqwpsV1w3^l@k4Jfk4LTJX0+(iHHI*NY(G{{=fUwtGfuBHcoJ>3 z!OFNKn`%Uq)lca>kbVRmjx&T^M%QuQ}BilISIbqI3p*KwH&XxSAVJl;hhC~_2a zU6@L#hY;vsSgNwXphM({L`OrQOG4iR=MAYCkJVbG3{pMkD+KPf@S==V2LyMlLVnS$ zZDF(V6(b z&b0FDFkPJzMxMf!g0_$PyYu3qc;dAEFHHa47Rw4g31PFlg+51IV?3Ga=Jay`W~l(W zOlM@Zk*bDGH4Nt7l{1Qh3wQtOdPQj?9jWf=-hU0WPomZL7T9JQxMSdKC zf9~H*1LzTkoQUdubknrBj4H1QR@hKm^&w3Quz+Z~e)dt$0U~O+(%cn`g5>W{uXlLK zUa5YwghusU6SHV2M_dx` z@-wKUJXbIK!f@J?{NfQmwIz{&KB=i~LDFVjC>y(E^R$Ykr*(y*awg7rG0GEC%yD#e83(CLT#$1oNdPvmaDcREupThp* zeQf0URe~A`Be~RP%#7foSevf(KEv`avhwd*{iK$;R?k2c6(C=h+;=UmHLRj+Vv&yw z(6cNm?g%%=NqJw*=c%Tf4u5QZ#g4K@RqD?_V$8(Qxp)BDT_yLFVinvV(|gHk2pRJh zV`UX$ey@tu{Nzh{h`(5~4<@o(i!(xbG|~e*mBKUminVsi14@LGEc9L%?}!gFPm9Eo z84^TI+BtT9Opl_NLZDG()o3eJHR)UIB_~U|KT#JAksoviAkh!_xR;{iJo@-2tO!be z&!lc!APk>MD*PaBQ6ik*l-2b!(kd&!3@GUKSyz|$_?9<^TcyVF{Yx!wW_}D3x^#0w z<@I@;zm|QJTV&*2usbX1l$`O%fySN7G=;h1E@znjLRj-#%LBt4fK?b^LOzar1Ot6c`I3r z3fHr)TA^cP2xj;_T{;8zB@tY(2B?jc#y|Ux;z60S_?jZRx7{efE;YbKUu~{du^V_* z9b6$cZgw+4WrMQA*%WC%yA4i;gv~g{5jv_g&vi#6GT>%1R3YO4IBe}CVvZRl?i~w$ z=xY5*y7vm!tD4qivt%-9q<}Wz=wU6`bpn~yzvN%Bd`{(K)GNbbonCu+aRz0&$9tWjm>r0dJgu3 zIofoLEooge)(hbYxlF4Tl7$a_UmfzZVwX`>~d zL>^oq^h9mDQPwPwbp7qZo_>&`?bJtszt|+sr6z zLVsne=nKBTK2i)|MOY4kB_!&nN5zm+TjdEzw~7JG0$ORR3voecL={6g+mv;n zdnIr{iL{$U=W$merE>+CX4CbbHDXxu?*I-&Mk(+!$v+w}=9e=BX1e8{z{XOF%!&8D ztoSn9bmhTB`pZ;B+ectKC^LO%CTG4@&_Sa@jLu3$jcmvoA&|MSb7V%cnYM$ty3Pbg z%)JuMkMbGl-)!}@YG=d2EOwA6@fwOI$+<4SMV@w+)Fnb3pdiXc?n*3z(uFLak=NCp zEZCb%drLTO&Q?A9G0+@ohKcWm4q?mv3`H4eiGPJ~rvAu2t=A2TI1~(`cq$Uv53hW< zKs$_unl-KIbs$ge!6lM4;uKiy8`g*#5PFiV^lNvkJ``N%ysQ?n;G=ah>Wy4#Z1*5qhK+et8#cpaeDbqa|5hY z1w0d_Hog`X7A@Xj&eBXOW848;8bK?QxLy7#&Ozp=qzHizDZ^{NwRT+Mco2-*k@1{i ziJ+ddMd$i+3$_93lJS&qUi>=dW7aeFFx@nG24-uQTtj}`HtcJEeqa@SR4W^7 zvLXDsSK|k}2DG}DY7Z^pD4+CWwKfRiDWMla@-I-7sV)n|?$BKff%TCA#q6ZPj)=(T zi8nOqYp9H9Gbu8II;X^Ubb$DL@@b*0%BQ60z7BnQ4kb8N*1BjXkja;We;MlMM)K9P z1^?iN5+POPcm^{*^iGv`VThua+`;vH2!2bRz5ud2KT2|b=|S`u+Aley_LRYO?14%( z`RllkC*gDT!_{wQ+YM%hzCMU!l|p1lNUC*I!-D;Qz=^{MAF>;kUR`=fvh5AGcmN4TfUmACq$4$zh?(zI@MiN5#U<%IGRPLll0U z2Z*R6K;z0esIQWow`Q)6_Oj+}r}E-dh@gn@Q0@qwqGw&pOYlU4!;LHb0i}Y)Ea`ot zJxt84xr?f98V#U(vRKI4CUkyxs!YIOZP#@8d5P&pEn+(3vVw(XZ1zzP=O$n*S(!vq z`cC<{Xn?{|+5@pR3!&$T7sz3dttiPwuw7c#3jY42X~b{H0=a|bo;UH8FVLZD_Dv&Y z-%2A^oL<{KNr{PSW}sPQ>aqmqgo#CwO3zIkxXE#?s6^_(wa9(UG24imTB0si?q$wZ z{;k-gO{|fzxqGq@2MTS`vAFQU1W(U4Qw9jif2)w57rvsE zGA;=+#J<_k0Y1|w;siwi<_W7+xW*sM!WZ4! z!u;nM_k+uB)SNQEQ&Wc8e~H_Udp>E(JHjif;J;Zo&Ls2;G5xE$P%ew6F084rJ3vN$ z%f=T~jr75e7HzneX8%%s;;F%m)qjRiEd4NHfrOM95SA`~z>4^%35Zwt)}&|Fb+ReR zM)$`Ft%%mCd)5O5XcZtR?(Uh_#B20DL$)}>ozE~&S}U`A^xMa~!2Wy#jwL_WL$cD} zX2G4_OrwHAPvliW;Vh@9tqXdyNt|enQXO&qVR3va<+U-{)9G(Bt!wS8V@L^2STq#+ z=!SAQDc&YSkR@8+he&u0&hm1{P8(#xYdu;B!AjrzksfCP?afTms6W>|*_jWQSL%}t zIig`N0;J)9Dv1b*JHCb3rH(z%WDWEy7})0x!4i*Z-)|Q+Lo7nu;%fMuUw?P0Ql}P* zpI&+k8R{0BOG)ed@QLHMCASf>$D!@=#B2xcauDR~FE1MIA0zfCRZ2CiejwE=ywG_WK>*+BwfXusQuo3N_*A&%En zg=DqBjp&uKb?4f@!mVW!tI<}zJJMJe_zUFC2hfxZx*7OzuEObx5pulF30>uvTTCXu z{A2cr&`lCsI<0j5pP!l&5vL0h`;ThjX-jVDb)>5Bg()=~z#-EdulYXCUbAL4GE8eC z?k`L?+j@Cuk34HFW9+f|=KF$cEIj<>}P%8Uhj3rHcqra4cGv#_HX!&TWDuf97 zRH%B2lh0p~ETyo&b=L{QMNQ?PqxgqHu!>h)Q0M5m*yciD1N`r}`Zn^fO%Y$!a-~!7 zGdoxujxw`s+fTQegZM+hmflMNBUc?h%aj#ySbs)d*56hQ7-y*VvUT-^NUm|}Hwjf} zF9UoXKuyuvsG?prZx@izeGJ2hQK>uDAUeFQDBjCuhaW7r{ zSJ;qJ?DN`?_(n zScy|9-GB@O_JR~}8D@oD={k;s{vf^r^fkoshty2n+_+laU7lItQ3=dv)n1mC^Hml6 za#p;S*Nl-8u7i+GLH=_w3`y@}hEeIXQ7DQ{cO2ZI7*#G|ezsOZB!7*xNMR7JUXI3N zWQ(!luG|*M{DRG8!mQyEUTf6YW}4#=jI*NrCo~g{xcDSEE*&oCWsAJ2^aKVlFAYC* zk}9({7pM3{lR2BQ+y2^9lbwlplaE^EoKr@$`F81PJ(p#pCdlpPouO@!I5vNos9u}P zllV9Txn(ip^H5NhD%AJO77RWE>#<<#c%|a#U-cN?#u@S-;dGUqzVeW0}ubeY~hw^>l{5;ojUhngLo#%bb zecb2us#~$?xM@7EBN_pt(^3DmaJK_pEn9u?kj9ngvSN4}_eSh@7ZIg}wh|_Q$BE+4 zixn{Wxt18me%M@NF^km8!xNv`>8 z-?M}VwtP0_{*m|O-EP{>DW>k=;zmwao^1W+d)ZxRbMItRaM*M@Y2Af5qcs}b!P&D! zzEHc$6A-b8oGv{MCDbWt^R_t7ndX9L z>4!EJRPGC^Y3*?F7!diSVY4>t?F1E5g~-0TjnbTUaub$MG^xcZ*;79*Yp*3s4|<$N zTQ7JC$IP7zG(WC3UyTYh9EgwOa$CjhJz;%+xc+vIpW~@3=UR04mKWNKn%P! zY5>#rpH9DY&)=&sBfJL}j|kRNVSjcO3y>aER@A-y#!g9*DcVm8`re+*ihwTazgv2$ zxYq{Wn_$YrCmi>b>1t3l%1qFxB6ckKSb1W<~qJlY9 zVpocuz+_U|t!|76vC`7@a?O35_78n(U8)zSUP}+Ayd?KlCrkmB#sYHyw4mg8F5KF* z9Wx}MP+lG>c>~sdU>r1NFQiiEVh;PD?RMi`%b-4a+O+z+P4@b$19455HKg~8%g~P{ z*hz)e$lOOIwUk`PylT|qeJ|@(_ovp*`OCs?3|2N-&UonC_pLt+Ipa8sPr4Lh;OMVc zNn6t)P(<$~tgzSIEVhydidSwqoD&+qlAER=eBom9Kuq#o&#Vn{dyae3+zJC zf)(4OKHTFxTQ^3X8371A9 zMnhXyf6L}7*HUj*eb5=VsS$Co5%x00>?cpEv~1=Ig0d1vlmLVEY2*dSr4k>r zRYbSom{%b;Q>v1ROHwgrT0xC-W_kdesqh=UmK`l-?-~9!pS*NLQ&ONq9j~{8ykxim zep7~9`*^|T(C-&_qO5O-G${7b6RWmxy}m{|r+w;#_gkZb2cBr7If=yCFBFKjG`Pt& z(sXPr!J*(M_Tc*O$~;t~U{|1NEt6B$b7$_~m1vig>@631-cH{@{;@2H2F5ElBAp9& zQ_c=EY95x*;>lk-F#P6w8Nte9-Pv5>{H)N1UuvH(0VM&)F;VT$Jzs>-!ydtOi# z+m%g=#B27jj>4xiA-f52Il+&|AQv3vrcBNrhb9@fLe?J^492%IwVrKg+4P ze%Lz-pb}PtZZd{!d~m5_${HXNA*6JR8toMIP->a{hx4e4Z~OX- z1|HJ<1MNeLF%U;8>NEcf)u(yWI3B{S#S!s-7n7W{ApHl z>`3$-uZbbT$BsSO(riGwsHokR9O(2+?&?X21+Xnq+FHh>4MS&e8-b6_gBab8&>e)5 zzb-x&h}i1Lpou5BNT(_nYfcqP7oplpD)&ey6HPPO`2E*?@x^;D8M2Bi%kp&=k5(uF zQ+x9+=sRoP?Qo;a=_r@ovZ$I&BaXe%z~|V-G??IS1j+S#vu(zf1=~#E!z{&7FDzf=x<|sM!i#CrHA1ztf z(ZE@#%wT%M^t!NArDKN%P;X_ueD)1@Z@PYM41_`Bt2`sS=~$J;px!g|Pq`&#lljv( zsw9oH=cACZW)~h(DbQz;MDtef+6g7G3z#udS4FF%HD8~cQEQ>tp|l{vZOimiuP zE9T*KA3*W9L{0@~rlxe7C#Pr7Lk& zzMx0F5&}Hhy0I{MZCmfj-Qqg-Jo2^!37i#We_^bh)GY7N6Bv})fipBk0PwUuK;1{n zkM35J^>qAW*qg6CEM&(UVKu?ap3T(9@K3J~s+J3EITouUxJBYF_N0m_|KpJSU#9CN1@MOD;`Y&N`ir#`19d z&^1IP{x{-q(qo`QlwG#Si{yC&F28^ytSsQpuf60cr}0--;$kp%3rV>?W0*R0(;Eg7 z*6+yS45**4!aG0Qh+nGoqyBfK zz6}lNs_F6gJ(+MzvUa#|iVfBhnT!gOiv=1&?CpKQQc}P4JbVReGS`+yuSE7c zUc*lcy<&@7+n4p-0Vo}q6|HF=t|BH4n!SMM4x#d{ytJPufM1psZV49=HM&)=RSwM^PCD*Not@w_I-2Z++! zf}!DCd&&1tVk)?SUeg3Vz#NeUP(MVtR~P#_>gjq*Vs4;tn5r5eVt>_Crd&6s1%{{Q zwiWVS9_51@`mQ%Tf3*?Du98w)!O8gPF;x?5GDcN749kd7FEL76e8WxM?RQcCvk-he zrHQ6^zBo}%HGY=<#;*+9FWpdx9UYRch@GrT9+x-&`N6Fcemq*@Y5Yb=sE**Gww-%? zzpp|TRmMzbnN3bvgh%a9dZ{&+sA#@`+&j^A{Md<$BhEE5cRD+eDL7>h0UG=9 zvs{~ytYIg&Mt(*;IC_m$s>bTYlD+S{O=oMhtrvIA&bm3M5V4mMg6iH#=d*>^r?xWu z`hgo3LZz0cZzp6M&531$xjgGxJJTry#<6mCBoFRD{InEWd>{T?G~aVcW%{UQwT+p? zZ)p2@+_0SE=>#Y}VvY}%I`Z%L(lin(Pzy!gMf0@D&w9Qcp0?E51;S*#)^DnxZ(Ugr zQY=8gs5iCxc~<9)T^Rgczk^P!%$=W?t&l+kEMev$0n=`g74-{6yUbLtStaO1RIp=5 zRdXmb8JRZw@iwftRlfEWT*N9Vw6*WWg}tlUX8K6e3UQ>wN}pB*2T`-F?i}dbyEStyzx=g zMtJ0etG6t#sPqX?3j$f&`gVUWJqZZe&lB11I@c0`&X;Ly-Eh_PEkc9cKHH4yApxzT z#+;z5p6`bloT7u|hktv79rwsiQ!s3&G*il2OmmDDcsvI0?R}Uq3MX|?(p(eeE!QN8 zt_B__Y?xCjrY;aZgv!LyBcf^#ZxZg&_dKA`IB-jbpjK7)^}ilu)v@K)aFGs)3=&R9QjK=lMH+ z&&~PZ+ucGWD##F^5`Ca#+`t}$q>NvDYrMW>dKs}sYsP!-bIBhV)#yOx6Yqs&b#n+g zR`W9glU7P##VwY|33Id8O zIFNW9=^KU8H>w_@ z5C8Btl%y%tB({MWJY_`8xRuhVkTlIsI>@_-TyE-;Fq~cMm*EeD@nsn zt$xC)TZZayI8g1VZhk@}Lka?9!HR+*`dQZ>5i=yApc~@?N4f~Z`)RQ~IrTj<1`>-n zPM$$-2?Vtnn&R~WggyQP90^TlCA~LX=btSyedUk1e=WMo2*=(^fIl|+ z*R(%B$cPavnr`Y(*^K+IF#l(Krwq?2=dZrlKQ8@q0EBwfBznU08prb2lip}0H%Tq> zKzhSv``N`Nnaq@ zHWBw1!4m%>UMMxW{h`X;KSx|ncN`nGJ^(U*w@VdGk853eLNg`hOAK1YLh6*^yb_ML z`zxo1n`|rh8{?=J*dO3XH`Jw96$jvwAVYJIeJt|&3Vqyc_fKMMq123z{9QV?=e!T& zopK7C#~_bE&i}Lw8bUmr7=z5sH-8QX!$>ywtxBWb!Zy;Yhl+5Lj~+rWal0i)xTDg4 zeImdB@I1;T$q7Y^uk_5qi98TYZ#18t?xFun3cl2I-JVSN6*o2Q}ameTH0Wz#Jltq{wW7>j3>R@2U5@+2qj?Nj zNbjASWF6rox*4%c=G$6-SLV}(PVn|!*(OU5podLD*E;B*%A_Z?L}yatZhvU`G2~TSjpEfP?(wIuw^kN zB>k_3gJTJ%`D3|A8UDMU37{1=B539R)%wGhoi{V2@3eXdL|GCNZFPOMQWbdE{{VsU B_VoY& diff --git a/02.recognize_digits/image/04.gif b/02.recognize_digits/image/04.gif new file mode 100644 index 0000000000000000000000000000000000000000..c201c5f480a63b03a58c9d02f5e059cb4a39634f GIT binary patch literal 955 zcmV;s14R5sNk%w1VdelQ0J8u9|Ns90008dp?q+6Yh=_M)j+#&? zWU8)g>%MUIAWMM8c&_h!KiR&Za7Yvai^!yM$vHBg(5TNTty-@mDt625O0?dvmeaP0tf{G2?z~2djx|31dSaE1VRQ3Lzx#1 z1)36*9+rJB1qKF@2_UOM0)axW7zPd#tsb|fDFOj?6ANu01O~b!1Hr%`!^J5E2Nnge z9u2k3AqTM0Ak@|&hX;#l0H72G3kVA4fE45|=D>jp3y}ba^8=Rv3j_pg3l0kWIiNJb z0D*IqRi-P!Q+=17iLR2m%NILjeK_2>P`NIpM(pIJ{5@ z;20p7Gh_uQ;FBOg(;Su(FiLPxts(`E06c;eNzx(+pe>)3lc3z6CJgu-6GfB{0ayi;`v085zJ@Y#}a&$15buo=v;9?c2C>&px`D zCtv_*G5l6R%OODmZ%>O>!{7$5)d8d#FblLStOn$IVhDa=xKj%R8czWHoN9&NgbNcr zOySgch|g}gKI=EB*|NV@*`<&mUt1KBP5wYYPB)Mjop~B%rQTNT#o<6c6=*}1CN)UV z07cxGQbz-PAaIg@Iq7qt1bC4cB4?N6gH0$!c_@i!a6GVxK0!%Sm53H%DBgD&93ajw z8F6Sp0|p>qz>mwgAP+D>9^*?&2DL-O1XEg=QXLN*a}Wg_zCo3d2K>RoQRbT=uOw5$B$ld5pUYc>mlu_Pi3S}+Yri;4jRQsnHm6+o+xv~aa@h%Xlu zdCmg$ajWhRvZm)i0tpyq0RzVXL+-lxe&8*y8I+grzr}(ZZ3&t21n|Kc>ABSJ&~06StffPw%3 literal 0 HcmV?d00001 diff --git a/02.recognize_digits/image/04.png b/02.recognize_digits/image/04.png deleted file mode 100644 index 4aba1801294c97a930ea193449a2bf610c61b160..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13873 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 Dam&e< diff --git a/02.recognize_digits/image/05.gif b/02.recognize_digits/image/05.gif new file mode 100644 index 0000000000000000000000000000000000000000..fde225756e3a9696ef4d8f08c92c71e47460589d GIT binary patch literal 920 zcmV;J184k4Nk%w1VblO80J8u9|Ns90008dp?q+6Yh=_M)8OvZ0 zgs57iiLP)g&onF;fU_ug{oT1;&qpj8kDS8;IUyjP(9}f9tXi)!26m&}dcW6&7y&St z3joEkCSH&=W&>IcuG?pYg`~klxEDisdH{TIetv;>ii;Zv2@(Pb0!WUKl8l&{F$@E3 zlN}8OqNAiz6`Y=$s;eCW0c%yRu&lJT6|SF z%pA{1k*U^xV$endt=_f|1>6$g8v^FhVCV$t1j-x=ralkwE1_K$?;i5%bp>Y9J^C<^ zNS+x69AGHefuX-EyeNnPK_JnLS2J{6nE0XM!!7;>4p=BKi$ep2J{siPR8j&-5GOxc ziF6cSe}*ugx=00Ml%Z9zAN-h7QH2;3`l0<^$=IEM;ZCGe-ny^km;z&iGv(UB0? zjb0k$r&dXuK7HX}+Xl7?%mMJgwq=~_W&V}|PKC)L0ek?220&@^HI|+R#?=SQZwu_z zz$`J8VdAizyrojV$>c8Fl87l+7OfDjzaoa0gyEMVB0O2dEk&b0(99>mNiVGfS45^ zV2=h0oTrYO{J4ok3rp2O=L)K*AuFrt zRRTaHHyi>;ri}~)tRa6`#Os5oNNnQ)gAOE+0DY%);_R~6o`c*9v_86Rw%`V;TrVPY u>z*%`hPx~>k*#U!trM^-qPyy5d(E{Wm@ADo)zs@R4f_5o@G@RR0029Cmy0t1 literal 0 HcmV?d00001 diff --git a/02.recognize_digits/image/05.png b/02.recognize_digits/image/05.png deleted file mode 100644 index ae8d505da283d78261d15039807e3797733b91c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13604 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 diff --git a/02.recognize_digits/index.cn.html b/02.recognize_digits/index.cn.html index b1d752f..2a3df1f 100644 --- a/02.recognize_digits/index.cn.html +++ b/02.recognize_digits/index.cn.html @@ -88,12 +88,12 @@ MNIST吸引了大量的科学家基于此数据集训练模型,1998年,LeCun 输入层的数据$X$传到输出层,在激活操作之前,会乘以相应的权重 $W$ ,并加上偏置变量 $b$ ,具体如下:

-
+

其中

-
+

图2为softmax回归的网络图,图中权重用蓝线表示、偏置用红线表示、+1代表偏置参数的系数为1。 @@ -108,7 +108,7 @@ MNIST吸引了大量的科学家基于此数据集训练模型,1998年,LeCun 在分类问题中,我们一般采用交叉熵代价损失函数(cross entropy loss),公式如下:

-
+

@@ -177,13 +177,13 @@ Softmax回归模型采用了最简单的两层神经网络,即只有输入层 - sigmoid激活函数:

-
+

- tanh激活函数:

-
+

实际上,tanh函数只是规模变化的sigmoid函数,将sigmoid函数值放大2倍之后再向下平移1个单位:tanh(x) = 2sigmoid(2x) - 1 。 diff --git a/09.gan/README.cn.md b/09.gan/README.cn.md index 23789a2..0180960 100644 --- a/09.gan/README.cn.md +++ b/09.gan/README.cn.md @@ -2,6 +2,14 @@ 本教程源代码目录在book/09.gan,初次使用请您参考Book文档使用说明。 +### 说明: ### +1. 硬件环境要求: +本文可支持在CPU、GPU下运行 +2. Docker镜像支持的CUDA/cuDNN版本: +如果使用了Docker运行Book,请注意:这里所提供的默认镜像的GPU环境为 CUDA 8/cuDNN 5,对于NVIDIA Tesla V100等要求CUDA 9的 GPU,使用该镜像可能会运行失败。 +3. 文档和脚本中代码的一致性问题: +请注意:为使本文更加易读易用,我们拆分、调整了train.py的代码并放入本文。本文中代码与train.py的运行结果一致,可直接运行[train.py](https://github.com/PaddlePaddle/book/blob/develop/09.gan/dc_gan.py)进行验证。 + ## 背景介绍 生成对抗网络(Generative Adversarial Network \[[1](#参考文献)\],简称GAN)是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习。该方法最初由 lan·Goodfellow 等人于2014年提出,原论文见 [Generative Adversarial Network](https://arxiv.org/abs/1406.2661)。 @@ -30,7 +38,9 @@ GAN 网络顾名思义,是一种通过对抗的方式,去学习数据分布 在训练的过程中,两个网络互相对抗,最终形成了一个动态的平衡,上述过程用公式可以被描述为: -$$ \min\limits_{G} \max\limits_{D}V(D,G)=\mathbb{E}_{x\sim P_{data} (x)}\big[logD(x)\big] + \mathbb{E}_{z\sim p_{z}(z)}\big[log(1-D(G(z)))\big] $$ +

+
+

在最理想的情况下,G 可以生成与真实样本极其相似的图片G(z),而 D 很难判断这张生成的图片是否为真,对图片的真假进行随机猜测,即 D(G(z))=0.5。 diff --git a/09.gan/image/01.gif b/09.gan/image/01.gif new file mode 100644 index 0000000000000000000000000000000000000000..9f952ae8d77ff2a5c07d4fcef90743393d9dcb59 GIT binary patch literal 2299 zcmV>Nk%w1VIcw=0J8u9|Ns90007L)%rY`E+}zxln3$@ns%BM)j%2AJ zOsbfy_@qfI&mF4Lc&?W(6Yszlq7bwc5XGdjg7_^jL(cKScv?42UG#b)inf|5MLZ!> zs@yc?a7D0bg~lMUNF)Y<0a`uFRtOJIZ&-t8GjVfucX@k!6n+zcEQO8}lpmK+lx|F! zjZzJj77hym2LfYx1{4pd6%Gvn4zmXgD;@|A39}9e0$vJ%Gy;K61Sz6IP7Tz)wYL-HOuD?j&h8u66!sJN6WJO9nUxO$Sm0D) z00tkA8aUGc%N4T)4h_;E;DB4gZzjS?Xh5I^!U_He6jG4rf#kl46_|R08SMs-QbM^fd#Bq&7f!zfB{s( zj)u^P0BZ}V6{IdL;B>9I0+z9`E8zg$%D7Y;P(32_qtTv0q(9dqVy{3K$zT^q6`2MEu9lK!3%vFX0!uMb z;UlUg;FJLm6yQK+x!iYvUa(j|z+eq}<)H%hCEy$Y4H{*HgjPMMK!iz92*rgUEu&!t z9C`?%10o8Oq6Ep!P~smbrWL?~7aU0k5emErqXj9(*wSE^0kaqa>Vd;$ieP%tr35!x zB2fX2Fz`kKJR<2|UKkuX)Fo2U2!MGX2((p24K%QTZ z0C+A^`kK#=v@e2Lr+kj6ru796W)_8(oM-m|K1ZW`!^V0Q1bq z$$WFNLlh8DS~y~GM@yz=s&VUJaVPZRaw9Pb@m%`zQ7frU( zf&&}3&0(G09+WLt0JYlwNb0OJ&Btn ze9g$`rTiPv16%h8%}X%TQsu)qJ7ypqDS)0?V(ID5p=XY<=fLuhv(2u67CQnl0M^Z< z0JTe1%C5#R4IDry2MCq|$7QZ^Jq|dlQW1FG)d9ezE(9N%fPFStvP~>QJqReB1P34t zUFak-4Pao*BW7<4gd)R3B1_yj}Y#|APymb3HO)6Os%kmP8a}O z>?A7|#PAO@w4MH%q9Z{q=7Swjs$Z_|=f7mt41b@CnV4SXill4-PA$n|J_1m*eOQTE zXlg)B+7+iO=3{8>S=tD;;e;mejy~L&%PLZ%mn06#XN?g799yyq4Y3FupMV6I470M& z>`jDdn2B@ns2M#X#yM%4i39}jqU`LcH|ru~k9emU0c-<^323BOV1xt)Byf_oyd@@w z*DPneBri@dKqzZA9c9sglwzYxGXda7Gy&3%_sHdDP7%m%T1Pd$Oh5o^k(zOCMw|(- zr8s?API9i39ql})Im?+&uUHZgu6aN#P$7U)9N>;09K%8!pdVV~(gOW#%-$UEt`!(+ zGA%#^9scZq2RS(Bn8Bfs6XsNar5zxWg4`32Fxrw#E`vyLQ6eN?@swp3xxr6#BQ!@m}j1rsH0L}y>4ruDoeh$FR+n!V_uB`&5G$SC5h(LNG*lIo6 z{sLO2f*=?KsE=$9FemUB#y<*R!19;@7wB@2xS2h!Q%92^Q5D7N!1{&;@)M5AvCq7LLHo;;l)L^U+;ED{|wSaf&LcT&^Z3a>+ z1sqpK0Tp2j0f20n$5vs;L4NE65K9{o2T!LD&>b#xtiITRmJ1s5N2Zp%fhI2)NKj@S z81_Qthn0C+XtpwHfr;D}RBe?HcCVb#2jprv0LUQ(Pe<-Ni_BaS13TT?oDcG_W7Ra_ z1?>3q1p*!3K|8twa}@x#Vr&x_0`}3EPC|H~KshH5`pQp00qKwuJ46aP)2Jr22GrUf z9MlX(r%ko2(@>ThIJyUen>7{|U~64J8rLUC8V>UH6d(Kg*vL+{vX?E2G=akbJ}|ai zmN7bJTl?DB&bGE&K +
+

在最理想的情况下,G 可以生成与真实样本极其相似的图片G(z),而 D 很难判断这张生成的图片是否为真,对图片的真假进行随机猜测,即 D(G(z))=0.5。 -- GitLab