From d89027be61c0eaf1567332564e78a412d7c3c8eb Mon Sep 17 00:00:00 2001
From: Masahiro Tanaka <81312776+tohtana@users.noreply.github.com>
Date: Sun, 5 Nov 2023 10:23:46 -0800
Subject: [PATCH 1/8] Fix figure in FlexGen blog (#4624)
Fix the latency-throughput figure for 13B.
---
blogs/deepspeed-fastgen/README.md | 2 +-
.../assets/images/throughput_latency_13B.png | Bin 339033 -> 0 bytes
.../images/throughput_latency_13B_no_arrow.png | Bin 0 -> 176008 bytes
3 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 blogs/deepspeed-fastgen/assets/images/throughput_latency_13B.png
create mode 100644 blogs/deepspeed-fastgen/assets/images/throughput_latency_13B_no_arrow.png
diff --git a/blogs/deepspeed-fastgen/README.md b/blogs/deepspeed-fastgen/README.md
index 6b440e35b675..b271c112a762 100644
--- a/blogs/deepspeed-fastgen/README.md
+++ b/blogs/deepspeed-fastgen/README.md
@@ -145,7 +145,7 @@ In this experiment, DeepSpeed-FastGen outperforms vLLM in both throughput and la
z-q{NA)>rYDLkL^|#8n;N`BJe5^-01^v zy2Pl%%h(|6K*#iL8o)105Hdc!OI$=C@veU?SQ&f5$1s>HH{ws*sqGHxei5#J-L( fL5SJ zL+eL>*HEe q|5ZC(^veThsr8n 5RPVH8D~=bE$%` -tgTGt^;>3Ez^b2i( ztTTF=B-Dnl>R8F{a)F!TPZSx5aTvT^t_4M!+b%?odM;#@L*kFL))Fzy8f7||TXthD z&>{l-HFTc|LRxsPUpKv4Hrsh4QLnB8-fLb-jAdAk7&&v@-*+p5hT6+)4Z+AY$ETh= zT( z4F}uxkx+K*EXXoTV%Y)7y>VYQ( z!TTODp^jOO*^c?9V(vi;iL$F8a#tw@A7Oc8Ilf7$C8f#yWtwXcwYfsu5-^#+(2hv& zhr8}vi61Yl6uM64todc*Dm?pZ6vs+E3rx%xS%bG&P&((#fsBvjmB!2gBoGbYy5}_0 zyc4$vD*G;=^3@0GsU@Ifaih9Waku> #*@zL&O2eV+>JCtF5~$CjjQ6$Oc>;A8HlBI2O_04Bt&P{ z!Uxwiz_8CnH2HM*w>U#*!W>uNstumhU~WdpubR%ej|$7W*8hZ$aJx@$9^bF#T lCk7DL%;RcYZZ|&p1xc>D7mNa<%%%=^7%K~e#F!`vvqfq^ z6Xgs$p-&k%G!|$YFXJJiLO%C`E@z$t2jrfqeblJhreM#~`?}sF*0GyOispx>Qy!SD zQseg1DSe&~!i}|%>Q+1-#-A=%QDL@-?`Reu;Nu1K>bq_YJ0m(5q-$&1SNt8H6Od3< z1MX kGnW|)JUg=+d*i{^gWWBgq8Y+GnKH_#rQg%{iE zzY~HJ1_<_rmmQf~qE@C9nzJZ=SK;PHKpD(FEmk<-sMIHzqkn7;FH0JZ4K%Y{)jur4 z^#=|Z8^|uH($rJROm0D84WSr#>pX_C#DOD}GDYUi%1l#(BwgpNq*>Dt==S&C8rZ-O z=Cqq#ZEgsA(#IC{UX`HopW*DNY9@^z70Bi#{)Vg2O6GD!i%G`P3Y%VvzG4*C_>>z$ zDly`p<5J_{KLJAGG#n~={V%D(C?(N(!K1x!+?GH5_Yhjrs@uvR?jvu&*$>*r zNh+AaZ72d?xQ04Pg)Flqi*EAt*j+*M0!k)3>z`M6NkjHK< IRi=agFIKgX@rp#t~wmt9^(ElG^b3gZ*_mSfh=v2?JNz|zPndkZ&>~D z=5n;7vz|l@p6^rkIh?rrZ1lzJmp^UhVl96PX;ZUGbiM|CQ7hlahD!tNWJ#b+#LDng z=-=o~YD6}yT_oO-O;qVASY99zmte!-nG~>UTQl+#)=*Ty1siio!TEG&Qz}lvkLd^M zDZIq%PBZioO=Jd#>hQ@njdeEGWHO_TKleUoea_xYA3T;?Q}!u+{}HF-STH*(iPLr? z+$0;tfz1_yZg2y5>)b~+ol&ncaer1setqsxv-(sA))aGl%SYefj=30$3AB`d(hQlH z5merE7U;QYgZy=vWWyurAzrEuSC>)` 3!iHk2%r*Q`NE&%fP1z4iKKAz4&1#b>WV)DKCpgH7!NdIj5>Bt&MQ3jTJn20 zce^}iz~*`CvgKeC3x5cbXk1v*`~ M%%nqpYKr(iR~baWenW%mD>Y1WmRLF}71Ny+bbVbw9uCI`|RSx+qkb(!&J z?g4pBkO4h%y}KclckD1=m1DNNj=4PdvCNJVYO6&y=h)86EuVRM)=DPluo!!9^9va! z1T(lgYp)Wd?C_D!(%8li`+-0xPHim=CgV8#LjQ<04W4xsiOD5_${8=H7=o@US&bf- zrms4`-Dqm{o3XJJDvFC)9Er@Tjhs)LK}CsUB?}l<5s$Y!zeqs*>4D}|a>3h?)&EWv z`K(j5&2Q$|V9 lYEtu*eAoJ-;cr91;_UEvDt zs7ODXW fygKEgA`x?lz|A>Qv^`~Ip@r|PW5sMHp#uS$3r`10O^q7+iZcf| zXxXpc%*pkm|4QzJzw_Xm-$+FxN@*fuXG3B&4wg6z13kJ;2s*I^ft8Xcp;u&>a{bG3 zjSk-el}b{*Hn^SRB9oH89j2HT1Q*THZ?sBl9`CQ^*>G51%u-3faOiHp5(zOBS&tg+ zdg+Q$FNF#l_I{2yjJ)R h`aDRJjpoD2Yb*?NI0) ztfYLtJz~<=z=uJt8t=L^8keIub%SY7jEUpqC3cg#I2_yjyLHx&h9h@%#GwFd) An047*to^iR>npo`6Viq+m;6%iq}!( zO!q&zif8L90uLJlZ0A+bECsLi!c%SvioX@eRZ?_d$&XH5(^9L{6DCS7lMgi1>cgHU zkT%E7ca_%9Ww@+ww%=u)Y#IlilKsS7j4m5ooa` egU1QYDHWSF@(!G9KP;dO2yJqh1$84x@Xm!au|Zq_d=4GA|-Qem1-J1S!n0HWZ% z&dL3-!&;z+(2U|NQvlhmva3RE#)|fWqLChEY?dVA?>jcBC HLPL~~CxQn=@IvN|Koo4C3J6ln&(BWtR5_0?MVL!R zg!4qq04{JY4}zCRH=)#|vRyNY a>$3O=`5<+P#h)2FOwL8DoJNr!am;1bR@(` z;kF?*n6ad0grADWC!lO#&Z~&?5csWnVb>ig`{Hkf#K#OdEz4$)^=6?G_%^mLbVZlE zfGv=$6Fg^grK&Yk)D76+{=_uMC@Wt?FR2n%xg;fJOgoPA;!N>5ygdnJLZHV+Q(@o% z$-=Rit_82J{X^Ea7sJyfMaMxc1PjN3d5ux+VN`B`r7{s?-5NIOi}u@M6%f%Qp0s%J z#*P=@6t-N~l6HCw<`Xcx(5S0Ic(#v0D{oGawgvDrU7tvq38f{7UllmdR{2Zy)rkH% zEXQ_lFG o+w z;!ivL^yJ`*Teg047aXLRk?r!JLZSF+5)#S!krc-A)kX~QBIZs{zgd(zb-SrC>CKE( zYuyE2i~f@ }Fhh5b9$>Vavlz^MCwu z0P=T6gi>sFm02x;O>#Pny)%4beNjwo8D$7L_8vNqPoCbALUA>0TIa6fTY_M>%GFy@ z2l=i(s90LBWYPxMGf(jRqVF)syv_~-IomqtfGS~BpKE=zB%{o-X+pT;7>~m7%U` J%68Gbb{}0Van_GgSJyYgnzmYaqyS46RBl{1 74UM+?U#cvF(U*lxcwl2zZWTf!%M3 zd;!Ja=ERwC^|@#7S&{8Vgf}4&xe%_8mly0*$A Qt8!0*7-mg27(D* zk5rhKDw435nK(shh_I0_pz8O(_u&1@Xey;=YMx27YSm2mo2?s72}`h&&DnJTP)QeG zL4m;MfP NUj3jsX&h# z%h%UUqydea-9j;eh?u@~Vb6k)8gUyS4HP+SF>S|kFD+~mN5G-n-*mXslAxduTmyPo zzK^&b8&MN R_U*d@h@h9YGX3GTM$6?bHrxFJ zwL>zrAGw{5jq#nf3r}@=^{(O-N3yJtzjY@5_b&dat^AH!SGprI07U&*X2}B;UEY;{ zX^RKz`4APZmFaTa?B`$MGV3fex4C?fSC~E}F7KmLeV%}+#CUiX#5cFF1u{&1!WCJR zwd>8 +JSIo+2rL>0u%}n2 h{ zatzymx+;XN?B-fQasdS4xD0mL^N}UT-@2@=P1}96)bWv6_f%EKptifpZiQS=={+}3 zbV$-SD@(UGa^3iFTZk()h1XbnH9C=&B;E{>tnU_0T;JgA51^D`_X`7ubU@xGF8`u2 zAdk?Li+tM;y&fQl$S3(l>L!4&1j5)UeR>4`J}Yj(+q({8KMY5idsXjV=KJ|T^-FlL z8ga~H7uV7E%ceIXT7It+)L$v+Yzv9r)QkWyfrlks7Eds6d#u~UOHTB8U{9*G {zS>+m~; z3a%&0&Nwn#c%_p2t?9;cpC5Mn02Uwi!9xps{BSSOukMrgU0;P=@Pu$th)XmA4Fld) z0fo1(H0L~@1tZgZ00n*$Xaf|0n&%h}d>3?_`dL}&l9?~7+d^OB(5uPAh 7cYVz_qU5Gy>Qm{Y=eOzcb}8Bm*||H(~d)li#kUGkB$u{tx?Y z;R&9}Z57XstJM05ah=P~A>Jvgmw5?|$+iv`BQf*C3%7hQg|~BzS#`LVI=*!!OxHn7 z2dE=ksxel0Iy!Lw^~}D)wvf@hdnFJ^#A>5ct$C;aSL~w?s5eHOJeMm4Saiu1s3SzP z$}DVRR39a;4IFXW)=VES3`2|k-iblTtG 4KoHo1c26khwrevW3TG7=;Y1HT~ zHu5a16>uw2^n|p7fB-kkLcNV^@ZGQ*VnLFLi`dnr@~X#tGOZ&G0t3l>(Sd0~hBFK% zHQ3Ms3H$hgEXi)x9a<8}=i&weT oB{uM{hoW}1~-=U<$Zjm3e7CGp~zNK$(tR)t31OL9d*OoqYk z1fP2$e!&)qQPKcR!mMmv=XH#73@RxKgm4iCQpv1@nm|0TKchAz+1;Z|%XurcRI590 zyLD#s(5GUUvs5Z auF_Z^E+$)#WsNgmO@wGJO+bTg;yzjx^!67?0o?Ex}T)( 0SfRGj+Nh{gDL@&YM$wnq?g?2*iMU^&&V|65mB$G zp*oF1V7%K$#tFxjr%d{f>7xSrimp-~JwCd8X tvq^XMSVSlz)~V%SO+^984! zu5ex%&FN}#iVFY7ubw!=KP8z2z=4hT2jIQ1EDF2>loK+TEeF5UZm)Lk*i46ux5fVi z9i*JHTvkQva`Ba~lKYx7o{qb9>bqh%kj{#+B92KGl+g*042N#I!pb?*2p!8^=3Uxd zMm-7o#YMc(A2ch5!T6zdbTtz5V6bpXtdd?`_>$$~Ffk@I{vu_>0&Bs=Y#Nv9J#;?% zz?g7i1_dlS#g|LUd>gjQo)%g(;22RVSk;%+d!65?d6>Y|h0w))kpeYJz7Q;{>2IPa z8zRz*avxv&7W_!Y$+N%HQ*r2Us^gv25yKqr++rgj13$2EuqR3UW4S2gw|FXZk&-b< z+rlhR0!`iRV!2G$XjCA})QQ~yLpD8bAjN)W?ssU+V~VsIpjknBegOQ;6XykFjUL~m zD^y>)<>a{OqcImvU)tfRDvH(mf^?EEGsShY)m##{s7|jgsk(Ir^7S#GKL2x#t>~>` zWBzBBx7QLa?o*#lGe8+G?TyuMytz&Q6+Uuaf9Ds$dCUDpUk*)K9QW}~@27&T7W7$R znRRZs>%h*njewubbynmUrp 0HUXvTnKJ~MiBC(`-12D=77d~K@~@2xQ*O{a&g zQ2N|ieMmHm_6Ci}&Y19qkk9bp<60S-U9X=GW6*~vAETuv+kY5_;+Jb(`U5r|%WPV} zg7;;dt(rIkuW3dg!a?FtD@mbo0WudxFco=!xh?-_K{dg&mgSJs|9k2>3&rX7rAcZ) zbR7?Ae5=jgj!pKgEW5+uWt$tj!>bpt5knCreqVrRX3O_o9w%D;6#>7hlFmc3!&0Hf zw_QRm5qFY*Gjypd3-ha{0$mJW0_eIh9pPfc=pHo;!$%chB}=zwGj0!^VLadL@O)C2 zGQeI55F5MO@fci^RY1St4e&)rN~Z~Jngt~Xfx}$ M_}EW>q|cImlb+y`aZoS$j2JNIr&)pu|CIh$x|GO(AO!Cp0s@Sme{K_mx1@SbS^; zEwmhh*NHU&VG<}cRu@(h0+oUl&;dyLL%aSkX0@YWC0ssL ( 4QDVO^F z^-+lAXTTmP}P)A|DS?>6bm$M2v*j&mp>e3mi-Ln^}~FB9tQwfuOo(1Yd7 z`K@jKU}}USqPk>;WEN;w-WA!dynGhy939YqkN59u8P@*IY~F$QRQ^AniHAtSOZT zN{S?y@J3P+%O50D5{mP*Hu%MU=nc7al5hz;Z!(h5oCG}X*o!xbgmT?6-hWuf=RvDP zDZYl&Bw1_j|G;?=nh26MDZk6#Eoc41OuO?dN!mtt7N80T(xA1$A*0Xsc1@f 3$qI3pJ@3-#|Kj!DuJKLjwwsiqPb?0)mt}*jVZu_SaYdMSQ_Cfskvxtzn z!QVC!c2u|yww1 l{fc=A>_gU+z|Fm!eritHvIJ{rSzwFrRH4G&yCuR zyV0RHIoqG|=vTVl-hC#noG;w(!CBwkNAYk=S5-ur3+bm_oJ)(YipY0_eBydcAH>%a zXk;lRvO9v%B|LJ}I5T5bXd*?JpmiTpO#A;1bAKaa#c}hzlg@BT%TK3Wm-o3jw8MKB zbXGsTZrq$oh^0Cr$9x(dG5~a^89Wk`TL*III_5@iGL*^qO(}D^8%NC|GIZ9x^9I51 z10cgpb9+m8IA%e)@o;Whs~ryQKy?C 6$(#cL>uj@+;>BqQDK2fXw0le!Ei~+olmCm)vt8`Gnoir9a0_|~lDZ?C z|EE$nVt1c~d8f7&XRqzcp{A9&0VS>>)P_KH87nRClZm6^MkbxYy;hlR7gUn$%@ZSO z8D6rrA!2)V8nJJm(dvEt@z-t%Q6CeBbI!;r%V%aM7s-Lw1Uc L0pcY;$WIL!ov}U*N z8d2y$xOOk1rqiIlXMS)26OuH9cxQ=mvYDT|Iq>A!$z4>ed!A!vsq>c%jmVA~H4`I# z)Nt$U5q t_PU>GkXiq<1D9e#!_=7rwykG%^ zue1#Q-<{&AEWVAZ)>F%@)R~|3J~i$N6X&svHno4%ZBXf8W6XuwQR&*`Is?d!|H)s6 z%t8Z`76~W=3#Qq#@v=Y~Dyu>`>a83&=zmHQ@a=r8vl1v*(v #aeH29ySQDX(= z>fhM8`AZJQK88kzTht~B!MxX@W6k%fihw0titT@NP;@ zjF`;y?$WLZ#6RQM|Mc@faTWGj7~HH%IKav9FcF`|Q+?SlrT<-T{9}S_|BDUX{=^j{ zlV^?}N(LrAN&?bjsi!hZ 6u!SWgZJY prUZ9v$=P-{1Uac`%U7XHBj;yLA#rMHZz^KEI%2 zb#A*j$s-+9b@W^NUE Vr>z zIjjYY_WBK$U@BzdePMNulE3hDYx8BexY4$H-`S&BMkyI7~^}DhwbvdT91pP;=&Hz |O(z(l| |DN*p6z0i2M5lb zc;Ov5( j2kb1`Cy^oK>EpP^g7<L|Z2BCA%UqT)OhY@14#6^Q~W_Jk(1YKIFUA z*w*8!bp9=}oKbLQwXgUTuQ0xqMweKnkgbiy9bhf{KomX+U>mJJDh@oISlF~m09WMw zSa&1ZWzn<}XcWd?s*~*DfmAkvM&fUZDHTivZIm$1de9=Hj}8G 0s$T~YJ( z*Pp1UA=#ENmmLke@g_?+$GYZFAAp0MHeFvGk0 1^!kILvRyd4 {5w z9+VDT=KU4#!(Mrx#=8wzs;>fxC>~T9G>}_lIQ~5p>Iw#NYgI{eQy7RDx3R=7s&Czw zwr;(!f TiCy5UO%R~4owo=ArLQ1HnA}_!;l!EMC2C(!o zJy@SE0}y`AfXpNojC8TXgG0xwK)?PZ=8z-NB$mbWu8&*eR!kF6|F0jlF2`@b(YxB> zI$dA44Gcb7)&Oo*1E{W(9~#!PJBNMT6$6SS8@p-W9@G%FZQ#k{csr^5plzLT8N9Q{ z1P}-WkN=2|uF|>#?5`UW5_|?{=Mrawa=Lg@HmaBKv@JZf5I^aA4IoLbU^Ld*_PgTz zCo_!i3h?eFd$oig7H{HKQjYTQRQhbG-seQRx9Ek|(gTE&@NCw`gSE+Vi-kxMYM(`w zbG?Swl;aZ5$h-~mmxc;9kXMd(e?ozjz9e48ihMW*uT>Z?Ujqj1>s&AXAQ7K7wyI*9 z{eg1c=Rp4drmwzMc(DoIyidQzSPpT=IYUEspbir`U5d4)F^sS{%JELlS3G1Gu$^y@ z-k)$TuXCWzFOQ+({Do!)9(ShS@BsSI8;CF7g?8Ql-m?s5s~`-12*w1kV1?qR4&Y}V z-;qnGid^>qN|gybEDDzIl?6~%$OIj3+BqvBhgcGxKo%s=V5_~E&jO>+tYuop%5QzN zMUN< !uWlO _MS z%voMD5p;h^7k4}ZBQbtV_|_*DPafSUZ~XQv?xOHw#iVP4oO)diad>Ps>bpct1k1sb z>D1 Qd6p#6F^gUWhGyQrkI%b75nF>Nb%;m^T_mZ9c$h6a1P >ZkiDev#8ZcXG;pn5Nd;Uc$Oa=wfm(yu&{ jrup?ElFDi9mGkEu`4>aIAoLCvmkU{GDZSeAUYoSJLfIeG_$qGqw=)gacoil6 zoA=PKig!|}m;Z3*;q}n6xE6z8Wv!;sj)rT$lEs y_&N- #tLA_5qJjJddCzzZ|`u}X6(mML86c!l5X3@VGl*rcOh3VyEY zqTPZW3eYcs3>Y)(jtHe5p$Q%~-l68QI8dd~?yc*Hu|33nc@4ozge9#TVNmMhA25pV zGj1~*RNYH#TkMXcrT#e;#ByP0I0Sg3O`IOgZctqGH;UY1BQ|9j;vqfk8yn|rp(P=f zF=>$0 Y{cp740kxB1>v443^NPuNi%7)hAN%OT1OCPuUh zA93s#<QY&{_W94t=nXOf-H&W;cNScQO=bBZqaPlq47Tix6RtCiB<$q00jmkWS7 z >VxYt=0Ln|FCQhs}bU%b}eTU}7<$u2w!k(*O(4 zblJgqEX_Kb(z%d^^1=n9%LHvc0c~F%0pn=9c~iA~!W+pDfY_+y6Rr^ax-`VJ9C7cB zo`>0`3C1CxuatY?GqFCcJ4$;R!7sV1jxIsNt6{C;&)HV!W!acOm}4D!*q6!GalP7g z-Q$@M)X|c#@a5g~XS_o_A&jv=R$CXy6A<9s^6DL9=GXW)u^+lRXFy-$RxsXG&Z vY@nor7V-%DB1I9hn@7Xx0Q1?6=+oNcVxD*B%?EsQgO;+Kz<4ul%A< zwj@+=(A_OCdILMCbPNZ+EF-Im8~(|tt4d%b-Siw?c+{;=S-g7IVNtDN+K4-m)_2yP zl_VNbK^(t@uZNx=gyyNTtIYywkQ0!D<(hLb^NV~=+3xVWgbA d1feT~$H-R?y*m>{`M3Nin_JI|o9? z3I5+#HlAJd-ygrF>G@1~G0Cy#W1^95oz>MZXtRdAR8e3q%=I~9CFR7Z+hzKP^F{o| z`;-Ls*sGTXWu}G^j~i`XkaK=(xs94%ymmmHug@Y1-o@Pi?!OBibpCXu!EZ?@it#!w zL0V eA{xgmoj4@k+GlbX7^V$7ib0IPLW|zNGi`u(2?HM $RW zL}A%H>w|p4669V 4aLphEVYq{4eivA|YNF9O z9U##6)=*?6)9kH$tvdkg7YkgIMmgkHI)?T42cpEG{WBqxg%_&;Sp=3Ql%t;mt8p|6 z;uvDsUHB*wqQNi^>*T?(1Ad;^;nI9w&WKGcCk%h|WEFdMdgtf}F4REpt8>yZU!s(R zzEjsA+wY^ljis)nFruK130sa(38!TijdvvIERaRKK23prvt>dgcPF^8NN-6*ktp+6 z{H)&0JK=xBGsb&(VM&m)Gu%WisQHm&@vCm~WUj&RR*gq2q NBtWZ0$U zbblRY$a*(~< ~ zZK5t|0X_7^IwZeUNd>uP2YYH;s1ON_Bbqt{<1EMg6TCB(V8)o)GwyLN(GzXvKH_@@ zj})p!Cm3V{DF{u^vNs+z-0W35%OcW0UdUb~qFPIF&ZxRF+Zle?ExsD7>fF;48N$(_ zJHhYI`>Ndei-A0A3WiH9tqo#>Cx#AK>Ll|dA)mMKu*wxKi?C&QD@}96zUq$GNM{dcwPv+mD)Q{ z!0ze>0OfBxx0;maClVHQProg1mo(rg Jo#E!d%_k&8bS-ZKA6Z6-*h z(GSy!X8C7cde}MCQD>Q9S$0|G>orlE8;XK+S!pWfy}v@bS}PY_p~wWWx%Oc?mxM~X zMU5 Ijy&2D|=mM4($u4oa-*Li35RtCrXj2@xeiWVic*fdWe}F~ zq6}zb04NCLDQSZftBVo}YrhbmdK=` %FD2ED2%P{jSql1#Am{vt0b>}Kbmh6 zl6mm)OU8~`Ob%_NhN}u*R=`D}LPPr2u#+}4ve3ZKZ(G!z=CXK&8jmVXr#2Z704vl| z%YK3{saZf7x{!8+aljIm+u+tQD9_d?UeL%P$O)v0Y5qT+&cd(B_6_?I5>gvEYNUkJ z2+1*Ol#-%INlHBe(%m^=bax8)h)9WuGy|j=_(&;@fPk>k>3j2g-_QF8>;sGYy3X@F z&f|Mj@<^q=`N>IXgNpWR?o!Y4nNU1!H68C%w6#WBYDqc|SH-9d11lX{*gcV5_Llf-Q7kAqoE}UVi;6+}Xz|;Envn5vSB58$RKt_S z4QWEYO`aD42NEfsTuGHNjn#T!RdHL)WMZQxx|BV2e^NP>6QB4Fdat9|c7+sm@g( zjvN>4tDG;(s4M|I#vjPIejbni6jXqJl{a)a_GHip^YN>rfNsq4jaosuQhJ*8HZatC z38+V3Rh7&e)2zJ#o^a$`CF_hjO|jvUrOr}h8pmL*75m?$PhI7gm0N|Z6<&?N&H}xM zM=hMh7 `L=+llP5>69`FQvLVu@S48P;}o&T!pX~@5yONGkU zrb4l=#kVT1C&PZJoR=w-+n1|Jm@?TtqvUnY3C&9LF5Vu*N@FFk*OT^gG@I{;-_LDc z`Wc}O$!@1z!DkIhCFo0lx_AqQGv<25m?sh-Bn?Qz!YACbz*aI8>-A!0Z&dzRSY_e8 z2;@s?&Ille{*U$j28t#IA5U^uG}I{`XR4p~SoZ_rEL(_=yo@)q$zZOMEB2%$*Atf} zd+fE)@97t8?U%^E|Hf=mL{qqF0M9%$8>E=a70 =d8hUwT0xxRfxX?7xOCPB zlc8D)C2SKE{3nA>6n%*C6;fW8zav&RtCT7JTD%-T3c*r>G{bSej{<`gHvCQ=vz~ak zO@+@!iqqG->;O?Ufa9-tdSkEwvqqIMmC6WjOp~F!I4d}^%Z-A>!iX^HfnRyHd6zKi zh$b2awkQvV;(1Wo6@}SUuLto|Tm)%^H`lKxH@j;iB@yfa_eIfNFp{HfF8$q!PK@q3 zPWv2JpK+}7)dSLQQ>pcZQ j=o(oB5J&T2Az@tJemi^t{ zV0i&aHk{o!7@mH`9cZMno`L5pV%uL3ajtxy+UfFRoyKsC)jyqI3~A^~Y{f+E@Qa6y zF0Mpe_p)-#!)-Xh^O)o_+k}hNaNJHTtD=1(0rx6LQ;E_^L(1o1yB{L~ l?PZzy z)YqizQTm~zCpZI{qrVm@nKWTW)RhyTL`tE8nyb7WSH*6Z5Yt8rnY~0;j7pvt+a78s zcS*o}Nhy^YS|0y_zQ*WxWNVGgaFTagvG*bp0;to%7Mefa0TK}Ws7W0FfaMO-(j^XR z&^$9VVN?wNU co^87nEdAP>TDJIy4-tyeoM|_>}pF^ z)qD41R+;PfZ28~vwg0-ZsBWL(R^S;v5a#0P83y*muq-f*cL21nxzlND&zK?LWKI@l zn)|uIDGu=I!PqQ7imFJpQKwNhecrnN21!4dmTHUtv8x?jw?W6k$d1G=#NjKSOO{J; zThq)mlbZ&wAspu(DqEow_b9f6Apew!myuUK|3~?<)b*?(ka4`nR|#?dXJ|hup&40M zSxjkJsti6OdE}FrQW@jVm`xMB3UjLTR7_}}UrU8yDzM)AimcfNpDY^r2U!StQVf8w z^`dNgg=R=j<%hvP=|!SW^yI|nGWJ5*`VVO*rnX87IXcp=(h*W7&Cfzl-+92C85DEi zwD{6u0m(n)I=*~i#H(B>nTi|nE$WDlx&qQ;q}*jAx4}s!k@F@(AO5XkCbQ8%2F*WL z;$12ZrtzRv@<_Ej!L^BO#GU-d#-p-Y+KJV4Uec*Nwj^|3LX^hfhCa7f=_qaN |AB@KDEikvSdw}CUkgjsMV$?6+jCmAc#nOFGHeOKf74D!~R9Q9E zDt?xKe8R8XhNXDxw>a(2Z%$IS^+$mU-`}B9ct!h-2Zp3`P zr8Qf?YAXJhPUm@&ozq&g&~V<_SB?!d fz7K~NufBXQRWxwO zd~;hatPI`+UpSK1331I67GwQmfx%MNviGu6=|?FRgEG?B7Oud6<7kprak}A~`{oU{ z^j=4~2I*7XZZEM3FZdU6#z|npkq=xWnG7VpAKiE%$NhS _V5g=++$j*COPdtp zI>ifj?r(~#z%`ZiKmGD+yu0ZC)*9dJfJHbv9+I0FXl{+riG68`iAFnSkTY|w14r$H z7Kap1f)vhJCti+L-kNucmQnt(Tj8bM;U!0t*`R-dSs+(lMEyInx-vi4PwcdlkI{I;&vHL8F$BJC;~jf|%%f$B{2zPYL6he}gOamq z?kXhou$O&CaYH>|^*rs&DQvW|>gK?E&<{F0^oc1cKIO=O#N~B-8mIj*RjPl!1dOL+ zcf!SVDrz=i1?r=0J!e@*H&1kauqq2OOX+>CeN0-p+kCejEuF1*X`XlgV!>kaANS zj)X>xWbTDg-tJK1z-+~`9~1IB!nes@yQ}3PsnGGba1HiJQD@RjF{o&K*XOg&yq5lt zj}(B3yh35M(r ye9BW1yveXpqeKP{;R>E9W=RYJUPMW%8O#^Iv2~;y?iD0 zq(dpNCK-wW#|Q4ZeD6TrglwBT82y12gz6vNQF>4uGcVZo$!|%pINmJv7<(gGF3X3s zvG~@bi)Qhbf_1mnhaBxj3H+xg_H;NV%&@yjU?K;&fZ>mULIe-|7Mn?qU-CkJR=JoR z$>LOx{5@x0IE0-i&Q+ugglYB}uojrvulF;pEn)Ab>H7cJo@=^z*aL^~+XeT@mM}d> zfvf$Ps&Uaj9P_`N0iU5@g4ySo#oV7!LtXGEUgm&TsSZUF;)8P2Edm2T#!5e zVrG0_;2%7H&>h $5MpkCrL;~V>$G5otg*syMQ@9fmEaU@hX>Mrr<=% zH?HHcT)L1{5B}5UU%+C#_P1|TxU-? w@Pm^@&EV(so;ivmiWH=hZy#TE# zxP@Ea# HV7&f9A4fBRCuot2+5 zG&%H_Ll=p_XN+Q16?)RrDpJ2b#b86wYvnj+spX^`_P0zBn9N-n2@Em1+`m<|R;5%K zgma%(lT~e9wV~vZm*+rdgYLs9`%FM-gcSlvrV~vvPEi_eW=Uc2k1b62wH$Sn+Ny1~ z=)e+_=Bh7mBNr1@tH 8m}d`08RnrOl`yn z41ER*cEA#p!)-VQFW)#0@gGOjkH`)2`)p7tDWV=-B{%Q_cZOYiOwIZZwweM=z5)i5 ztt5I8*=xWtD%Vf=o4KZt@b#n%yK@$dJP>wU^+&GdJ~!1MFbSaR$&*&Oa5DPFyj>Ow zz9(M0u0rJzvj!>xaa>EVEtaM!=ZlZ`SySPXWl<@wdaOt(HT=mR JiXwT%QOPbWJF!|IFFo`<$9$Lb5~vh&xP2t3$v_R*K>5S(i21wYM|M$x2RlffX_ z`)2mvKdkJ6xxWRbO?NdDtRk-}Ts ~u zNH;VBZ_QFOzv44m1z7R=flg{iMBCl~?x{u`*gKKqkv=Fm^rtUIL90p U)zfQh~5w$;H=yG7M44Yi9uy>N4qXv11~pp{=0ZDAFE==?XhOb(=>nrLAu2 znRR0mO1EOY6D15(2;(Y-14C5@eT@{zR @}KzFBk9+cSMet@ih vJ 9ki?u-h3bZ)f2Uew5?7`$nL z=?e|sgjgku^uID}{!&FrqD2vyRicGv>=*yW9>6!&OfbyA&hjF+?W-k`asbv>91Tn{ z>9#qcR!qvQ%1Y}N7D1KMtQf-q#P!v$1zLi=9B&WGz0AgnKi9-A&AQFzVPmvR5fZvq zYlSJk8ih{YTYq;;-dMO&gcL}3hwAWFjZJq7yq-c9YtapsEqIC!!`@j@+$!()Y>u;^ zVLAWtkt#LIX`kMi{8?*M;@|5hE;I~meX#(8VIGh*1T9|w{+WK{gwpGinXddK76yut zu?P d9`FAE@H$!@w45_g(?cG^s!nH z5}Q#qcF9u50gg+X11|t%t*~z$TE(}iJi1&+_GmY5cF>nHrM)zKxw}@2 0CohX-PFdW6bgez3_K5VfX2k{AiA@1#MZ`XtAW9a+MT{hG zX`opkSc#P=6^2EtE~~=&AXGS_w6wkE5Ip?@^JqAR9%%sI0?TMvL$uR0fM$xb#D(Vr z*;BH73kCnreW~ci<#| |uog{NhCY&cJSL5?i{}AX 8GN0PN;|QapVejz>%t`z20@Y@sw5`XSQM0Zb~ki0HTq)9*=+H0{*B) zL6Y74{CBRjYDmVfC#9Vo5cNeTtL6Y=VF%00xvtS4_Ekb8QJIp?rODb#k&um84`^71 z)sk=Cvysqd-QQ6mf<{30LR @yWU)e#vE;Z|OQeT+i zR~9%n@7L4V?{HCNN(NNwf~&1; pYUCj7=ghznj1IIo6po;6r^ZWaZHwCPHyE z6ytdj^L%^sYuZz~mcY)(hnswr$v23Oo;UiEt}$L7A!kgKkWyRWc$|pGxin@}jQDwS zzd=?b-=E22`bb3L3FcVk%d*LoCac?6kp6pa{r}BQ0U<}~sOd+Lf7+v^;f~^ E+22@P^{I|C_Vq0V8_}IR27|d>( zp0}-Eea+k9SH{hjAuo%xCeSR_=It8r!1Oe}sAlxZk{5C9Xv1h)rYB0@xKC`FgsOc| z{&G+%wme1|LQX~XGyY_iU$>mDQ~@@iJfW yMFEv!nHQZ9fWMn$?108PM1{s{N_!LGwdUuT_7Z*d3NcB= z5#ur9+-+1dgzs$J!-N>5AXAaaS|J9;=>Bu|u@vtztMZQWjC!%ns)_19T1xZiIC&M) zzHZ#Fg4e$D49<46!W-%qTd>;iy`O<{sn192#S=>>euSvE)RE*cwQgRcHC|{QsM6<* ztSXs#bbp6$DjgXQkakP|zB@)Ma&L@jY(l^4J{14R)aXxTyyu%6Y$k9kKaRMG6~9N~ z1PtXF>`isxnTqzR3p~&%fLq(WOnsejqI~m}VlTR-N6x9F+v6L}hKJ)fZ0Q&AP(G?H z=WlnHuzv)Mj*xX6!!f>?&MV!LAxZjt)=Q62DGg&9mBVA#sKAOkEGZT%p!vIqL0dNN zLt=KSn>ira{oVYX8Cd0lpJy!TboJ=C+@zf+_KAZ2S%B{)pP`}}%L<2>fV7s_EA027 z=YsOlVKV9$Atn9SafphK`$`+UKT`}_j%e0(QQxCqCHQ{jzvj69pY>z87|@QM5z33b zYpwrx#Ek6%c};ln>Qj${V!5MuHcOqCfAWTD=B7&V;Sp55nXkR%){077?vbIJPai~! z9;p8lV&jFn@L^S2EGO_2rex&d{!T$zvyBAJwdUa_)eoYa#s1-fSSxpj7xX9$a@NAO zPKm-ep@cO5kU=454eVz~3sv{!2x>4XR|F|M*->G$J3KyubU>|;226|%cXbBg!b#PT ztmupb%RzBAeHPHiGxi7yl|G8B%ESm6PI~U(#$XX{Zs*lth&Punm%D#YVK-VE2_BB_ zc|tZd@cAo$FI6x5=4mhaCX!4Qttwm&6?jFg0u78HrJmBx Loxa*lL1pVg0 zgKKgr?P+c|Rk~mfRXwj|e=&3_2jvN9uZ9LKe~#Ho%B$%Nts$D~KL Ju(ED9Kxj-*Na-xS%;248FlbK?M(pR?DE|g$1t? zye_3nVy{w}rV?{?nK^$ C|@1-C%y#%Cwg5$7GZfa^o|sd+{gT9|!z~QxK7HzuR{J06dZ*N`=#V_tyP+ k`_0&EBHKpg5^{%KvBo#brMZM#O;s zlZA=$;Ff%DI&aH9!H?}^Z|j$QF1I*l`QHfr?M-Zmip@H~k2E}2ZtifZVNR0ENYd>N z#Txic {A(OSJMD5Zo5T-wo8vQL-N2gmk{y!$b?PWg8VJA3VM6yRCLOAIuD@J1N z6kM4kOAfKM*$O{ZTUA|9=07weIoIq`J*=eEk|aUv)MK{D$L@w?9vUH>G7E)><;gA} z8^5W9W^?wPqAL5V6aRZAAm&ZWXI<`GR#2rf!ZQYWR>oc~QtlHN1s@(^{Z%$y##Odp zV410upB2|!Az98|c3%4PATqvn>fIv{Q`>!c&}D}7>QO1Hp=f955NoU@W{tn>Np&Ti zZt_XgO%x;Y9F$M7aW9i%Q lVtXGqZ~Z6TdjZ>--^tU@xIf<4ctY?c|ykjdR(q(gil9 zt?@9U4}0I4Cb(R^d}B&4 Cyqhe#Gq_4T|{VmUb$Rn|ra@*?~uMpo~qLPe*w+=ylTz-v*~U6P~mUM(O_$ z84`Ms8xr&I{!WWfie!lLA~}Mrabl$G`}JN(Ks04-zCZA2KtGTq5&u^er7Ubcsdq)W z41SbrgZd=lP-2V1ED_h{IvZhP#2L6*apDx&hs&;LeKAi?i0vrG1EbCs%-tIh1t*3_ zgT)L8%4sjTA8|qgSIEKlGabica@Ef{mAQktM$NEK zDk;h+>|kQ!oLbzB=OLgHkbkaV9)o-Mp^+adyfEs}Qx6}F+MuG>R_LX|J>kogvmdAy z3xf~YNDUs3`o!0$DH0AEra;obOaUtEhtRVroc}~HWDyI69jQi_?}DSW=$h=$5dc&% z$HAf6ail0T+_M@EirtcgajGG!Y9B{j3>bj-(=c(H3dBN4D`NOmL#ngS}Kwtxx2Hu8F>y`C2p^V-Gj`l>pUjeO{ILO~*8!mLKCh_g &1K5BVh*H14NjcD9OrjkFWOe&24g^PSSM`=nrzX}0RKk@sQX)Fz2KbX~= z_5;DjcN%q%n15axPs9`28a9Wl4bO(B @{lbNSwf9ZTLoi9^vRdoAzh zPWbcp&cIC(ahhSTIR=^V+^t+J#I-NuR|K(}qg!l3 BX`%4`r#8%CV62k(jzOkt_`~8m6D!_9Ee%m 2`M0mG`DCA+E0`|JJ6LtO>F5U1LR8;?v@N6ay)-NI+bocX>{0L{gKVy4sq zW%6Ql3-SiW#~T{TPd!{LEBKmn61J#nv~pF+`hu7}QGXTrrEL5wk36&e(8mNE+q?ey zB#F~^{qDk-PoyiUs8aRk={7eI`pYt_njch|G}cxMo5?A=f%&%XqCi+Omq;dS$v3%c z%H#C~zp?v1)sM( z4#jpm(;daIX`U18^}cFCmwhHd0Oa;B!N3l~T^zPbR!p9~#D(ZW {r>Y-voWe z#g7VZm a?OQ|F|+2v#C`4 zzEx~m3}4GVe~0g%4~5{LwYf 7h?MOaW_DMu)F0I$UdCa&DUUeO@r9FJ~CGo+Gu@eMV)L4$pWgHx|~Y0wdk)M zm;fO1Csu!ttxkXhh&cp4Ek#y^sG)ZvSRG{>kOl0WPm2_(p8HR66E6uq22kmjsnUe@ zdh`C>rMo~ZTqx!l