From 7838d1b6e832ce416aeb2400c7a1007e84df5f22 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Sat, 18 Apr 2026 12:36:28 -0700 Subject: [PATCH 1/1] Add overhead/efficiency graph --- README.md | 4 ++++ overhead.png | Bin 0 -> 21688 bytes 2 files changed, 4 insertions(+) create mode 100644 overhead.png diff --git a/README.md b/README.md index 9e7fb71..8f3d1a3 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,7 @@ Use erasure codes (par2) to use storage more efficiently than `numcopies`. ![parity](annex-ec/blob_plain/HEAD:/parity.png) + +More drives → better efficiency: + +![overhead](annex-ec/blob_plain/HEAD:/overhead.png) diff --git a/overhead.png b/overhead.png new file mode 100644 index 0000000000000000000000000000000000000000..95a49f4713d122956ed52d0c965c6f5cd9137a3e GIT binary patch literal 21688 zcmeAS@N?(olHy`uVBq!ia0y~yV7kD-!1#cJiGhKEdHLDj3=9mM1s;*b3=DinK$vl= zHlH*DLr9jVi(^Q|t+#vmeL~Xr{m;K~vSn_7(~6BPJ6cqQy?4btlDa0~9kc$W*%g6n zTh`d$_UHLqh=r0|Ub$kPs4+gB>o4&Qy>ANr6SdOo%Q8nFpqC?(MC9dTJ^oBcs*aypxku zGcz;y?%iv=DlUF4UIKznGDen_H^?P++C4 zY2UYRW#acg9XaA6FF$|D5|y7zu3Wn&CL(e|-L)lu)qIf_W&yqrZZ7&yo@`pQ=up`* zlLHSQJ`7TiS{ueM##ebYx!?Afp~3e<8%tgWZNL5I(xsrEOWxeud%JAe(WJ<2IX6S9 zX9(~)SR9bP`1-5A-OndKeiremU(NRQJ=-O!os^uME50^zvs>D!mKPpjVPP2=E5cS! z{dyyA1_uw%l+XKr{HU1gr#^KPN4t%&y1KfC#)Q%J}$M_xNCt68&VX-O-*=I7+}^!JySmY)36(9kd| zy)G_p-rdzHTU}jUh4VJdpMSqk*7{2Nz7L1E0|NtJtxi!64hmvoVp_uT9^mxbIVI6SXi(v+xYA^SNq+Aj~^J!cym|wjq>iP)*2?(O3KPpPfUK8 z@ZHiPCOv;W;~~ZeP9C-zXV>QPu2U*qdZj-zGc(BAJ5(cdvr&CUhR46DGmUgZmxr{9 zii&QUw`r463r!FsGnpj&?Q&e0m`=n^YZyA|&!FRK-L^TvNL|?jcCFOS4ZN<=(q@+bxnuD%R zn?7CJc&Xo&43nUxUacCUsbyu`e$`~UFIC)_yCL^>{_V|&d!^0w;`ha@43%ATgfFx3 z>6HMrB@ZW_)zj1r6mM;9_0^CGay)(QR#`#^`w45U<@5M{xvJfM@SE%StE;Q8ZlBgW z#m(dA^%SF%`!7AwSiAMs>W5F3b%m~Yuk_@}lM|DdehGP45HRUd$m!^Avz6Uv(l)ON z^I4s%^y~NUjSeH4>9I-UgCOpdwc$-S+VC%rzTxp75e(x+TdvJr$Rj@{GXyM4MXSa zU)^{naF+JUYghFcpWdG`MdWMz%&@G` zuHCwN>(h{+XC8NJ;~#FYy%=u(V_)ygT%StirP?pf-97F6>HWjQ?WxIc%i9XZD;0t9yTi%={oRl_# z*Ed}-XTr-8tEc;RzIyeF)B4HOd>;?jm3zY0KF!US^7Zu%y_J7ld!m(yCc% zsrxQnlIV5&YRTp4=_$ObdB>Dn2HIDyT+y)Q{Vv+a3HH(3)j8+0r(TW`sod^79b$y@pC+LAIdJUl#8j;-9gH};lgWl>4VmP?m3 zLMwxVC+|Ac(!!!%ZSn2R&Bb9ajFn_Ic?JvdEp0zsHhIp?E1cC9SI+SZ@*Uspymaka z->CRZ>!(X@{;al8vu0C^{@l#n9@WFg$ISlz-4nZ_O&3Ixl9FUzcF5YihcIL{2&%FR$&l8_BO?xerbDx6?fPx%j;8@_VZ_eEUpngzpu++EZW=(RoR5 z?L2X>!^-J5yu2@8y_$M^n)h3s<@<%r*gk2k4a=@hjg7k8(7>?NY5u%|8}pP-R~PIo9~m`ru%dEwi$KawCbnI|I^aa znsm%mMaAWo+*iw>*i$~4w|m?c=T6;~adA=Y?{8nfex2#F%ryI2&Yc~FUWXngsLIO9 zdZ}+aGhNtm=Ki9mUY5H<<5btK&slioMA0<;XgMhObY0 z7;9(+_WbAHCk`6g$XO<&sIQCO?&sxjFV;?T;>3xKjg6=NO7fM>Z$4bQ?YoqM48ywC zEB&j()=qjABxV2f_v*6cJ5O=WF`0ZSa%tEv9fB$XU<$zU=iWz=-9X? zz>jh1zG=stR~6l4Sh{SQ){jp0c>#4d6kh9HYV(!wJ?D7&(xoL^r+xKSPWgTI*h|iK zlg6O1pnxvM6Va=mzxLy5pOWb1)zuPO7vc2wPx*$Go3fwuUb+8p!sb^C7b;qVin~Ro znk3=Go~PlvH#_NcbVBG1$Tkq8uzV^slFXe|Ixz^>Ul;Y#>fA~<)eDJ{&rF=0y z1_p+fWTr`zC;$EP$IHuW*6i7zKYy;Rsd=(~(~1=TX1M->3vsl z&>Sk{PfkvDbabq&tb8@6rKM%X3XRmNkB^RKW@f%xbmYj97cXA?*85cSaDn>d87iu3 zhMrvocjjNY5;BoF-1_@nWJ6#)2B~cqH++nGmHGz~jFgIbb-4**xd5FOZM%Hdp5&IjlEl-?+|PJrw0d{+4<#+e|(U6=;7(f$-$A4k+EU! z&5IWkuV)5EMXkD+(bnEBt5c*Svu#DxuHSlc#%I|!zP`HpJ=TSvonOwT;=_Z+f;)#_yvWGNc=7A&>)G#)W^Fwc)O=7uFDN1+ z!)RtvQIUyM@2}7Z_U;|+&ECtQ&VKiB2m8fVR^f}+uP?V*xMPQfj*ibAB_*Xp878;( zT|21M(!2z!vgL5`DQ*S^hKCLo0^q1-emH~m#Yq)V!t$AafKAZNrsq@9_*OQkP78aI$HqXD;Q*dV?B2oKz zBqu+9bhP{NFYDQdzxE+&w}f(j~_dhlIi2)yl>yWZHE%wt2@G{@E_~dPY@iK}%cPvL#DyoZA?+*4EZ` zTY0CNs_M_*zqRczK748`6JwLN5T3T8{LSvSYoLpQ)goXZ7R!|pxM|;7J(#o9*UsB*Da!d2#`Ad$ZvaD_kGiJWhDe!wpV%7Z;bRs$VVZh1@;8y@UVz`uOzp^|@L6m?I3WUi*F<#925w zITaNbAGhDUcCGKB>sPO?EIxJWR838dju*L$~ujkUGpk6m)8=E&f_T&U^ zE%_chBW+gZvYBbKGD~l*yZ9yL;RbN-Iu*MJ)N}dw?_Y9qveDY>ueayjU8UF6-ygrX z>gyeDslU}KpzLXi_yr-#Ri)vG64-n@BJ zsyFTTx3{NO^RPAB?BB5ALWJ0)>BZayY6LJGY6MXVG91VMI1eR-SKhWR-nw<`wr$rkOisnmT($@7 zvq?geAB#PlVfZj3Gt<+@hlhtJra+%tT<^|?#O9khZjik4lKc3J7a2i8lluGpOG--o z{Q53!ymXOnEbDo}_embbK&j#F7bg)>aEOUCAZuG{aqaPn1m))~$-8#P#mwBB9 zJDA{Q)?I&#OP4RN4SQW1uXf(k+uIou#!#2^74)Q+lx$hDB;|7~4_mXbRTCt*gN6He zrOkBW_u0JF^Pa9J`WBjx*@gP<-HY38si>%!wf@+R8xau^5{DiJU6||%YTwRKDYbvd z!NGB3XYum4rNV|hU#mA5Exi6({!gr~n0HaprvCo^J=5RT2+o=_N2Zc{uHW{Qlapkv z%T{zhdi3bczQxt|_lY5zHR7Uu%a$#B@#4ja6CPi?wU#bjdg)L59apter%uUz(3O^! z7T1rHk(Xb8HS2AQv(Az8=hrV;vSjB@P#MzW@=vQfDJe-vNN85hi+At9A$uptLgZfE z@7$;6`+oiU_2hnIW8>p;Ng0`%58FkW4JCMt9=?8^tu2FS^U4_ZfSSBkN=iz$wzc<8 zgWFg$3?B*{(KXAzCnF&d5fEVDecxxJaNoxz%a-ZI?TMJl$H{r}>{(ZfWAM~^rMK02 z;mVbnKR-S7p02lc{rdUU4u2w$o~~9RtT_9I(s>5>mzXO z)ez0)?&al`k?~?z>1!b&p{AxLBV*&KKVOMXJ9Oxfr2yYW*}$$-r%s)W)4r|gUtlv2 zTsA&fbZFuA*Y0j^AtyOFIXA|xibZm`f%&jt1QjFY170IMcvA1 zuHy#|G#K5zd|6mZ%Bs3jO{8zilqn4j4Q*{~$Jd)m^`7Hs*L@YZ>9?NG?z>;!)jQ6t zIJV_&-qRhavmTe-TmDw+Y@~SKojWm^@59%{ND2!-e*fOSSv+8lU|&}k*V-`aduD6G zR^RA<8@tHU({od0a&qz)P(s}i&wu>HiH@5&W)eK9si|+@zU7Ns8CN+|3(}P6j9#*2 ziN@tce2W(^Ubt}K>+9?DcZq-OS+`DamR-B7W=@_vckRWDZTa`@zC&6EXBrAz z+}yeZER=aaoq4%8wWQ=rQ(;HY44-AJ!VCZWh;Vjx&dJG1NLY~JRZ+3SI9C78VR&?P zbGfIbE%RG`dsFJ^6nmL_moG2Ab7f^+cae$&)8n-(aE{HtJKrelarJ4Q+`H9Mp&2_TJ{e(dFG6dxA*3`$y=k$b8od26nvRH1=Q<1 zu6xKZ`OwCUi;F%!-ahl}vjqzjpiNxKhabLvwJm)$VI`%diZU{P z!8O#$!tR1IJp~$HzI>6ft-6w7a_!2M9TT%Erh=^4vA3W{-N;A?(%nw;vEY-j_;ATv zf9-ZfD=RAn1qL)bL_|bR{BCV&Srf6*NzKLd&)>h{>tZT@d`N@@HZ*c)3i9oZ+n;=# zFEwiM#S`}r9z1B8ea*z&9NLaJ!_mHeeZIeczm=_(m6q`Fe);~+PDe<=KU1*JwOefK zmMt2W9UUEIWo3;(eZR{u1^A{n!5S4SrMcamoDO|@dV1>19Xoa`pI^6Y>sC`^&YYOIxOH5|XPIW3<=g-dk$~eeF)=YUHT9LW_Mt?hnN3Yia-ce) zdqq!we}Bf=ii;Ote|=>2@Zm$Y=7T4}!w(J7TemBR%50lPUK5Wvzxez>*@hbDs#F;Z+zJEV|^5o(_ zKME@!&zd#s(4j-E+~TL^%&f|{eh3=kFkiKLb@1~kQ>Xs?@gqV5qb`X(`+N+kO_SR;_vxyKDFEtCqaHyhh7+?!0+WspT+t zF7tB+h7U3i10>|+rn&9iwQJYDefJ8>4>fbUM@G(6k&%)LdOqW9+RWhS=+_B?haMjM zTg{hqxOr~#x=hf}&^-;A&8KQx7cX6!YVhv%J%iaddQi`}XbThmyIuxxVEWv$kq#YM%OXY zm5k0KIlgxf6WS+DnQ=sAFDc=Gw55lPA@gHu&^*9V#W?v7nhcc z8Cz->HoM-_k&){u=VE7Q2$FpUcYyJ{_kbgJ&PC^3e+EJXlO+2D#=VqNhvBSa&u!d@7<;IC1n-Q-2HohyXU5t z^Fl`oujGO{AO;#59kbmmf8Eu4d9l~lecu0BvR*-;=zpguGevxdes0_A-A(7?@}-w* zFfiP4v-tJta(R1EX_YHm;3)yZ?*_4L&Iur_rSo3aqGkDI7<=|9G>Oe z*|Bl^_Up4xpJrXCewnfK*J;aGm%sb+^{cO+pPs&cI5=%co8^ES>~}RX z-JkZBGe!NLoxc$>ta(MWRar-8&6+hnwaKm)K5D@M0Ro2@-yMBX`ug7ddHHpJwOkn) z9uyr~cs1+yuU~IkoS&VjX<@!Iaq`OP{B~DeEg2YgOe<(E`QJuGG}giP=%G@QkB{#jm^O zE5CmGE^qfQ^s#pMjfIfBEp#YxYm~8(QHj;vruv7kU(cR3>($eztn&`0M~3&FAD_Q5LPP(9gx*!&{U4c&%g>sNureH|;c_o2DRFdk ztgp9!`t;F-$v+j|{6E^-cKmAg=j5yjTmALp$H=W&p@oGTt?Oc2 zy|oN-?drDe{&wAV3Nu56da;&_p`jrwE9YXo$_?PeQx$q?r!e2@t5Lzhlc!CaHe<$)#KUbpJw3a2S)J-$eBXNV zwST*wKTh8bDW?VdB*pk9pA-=kT*xy|NJ>gdNNCa3tf%*%o}Rva`*vlS2d!JC^G~%a z`ZlX_$|BGpcv{Qi<;&GIG+t~xF1LEsDk*8{;IvaMf3%HV?e4sI7udp_Heq({{b~P~ z{4F`i0Cpx1hr5?oSKNAesaX%K8;yd+Qd3eCWb{~VXBMCQIKBG+zti2|V0kR|up;1L z#HJL_z`%8zJGsx zY3bLL^XpcvirSKKQRk?%tZeSC>Edw}j_a>$Z=ZDJ$PpD4l^c3*LH(Wtxy&E6_y5Jm zERbPfcsQf4z+?BkIdg1oZZ^-o1)9A-<9lo0KD&+cnc4X?{=2!jELpz%d^LD*?40sl z)BAfqGJjsWD-o1HL2W4?UyCIgrc%8ZGi3f>xpXN=UVi?mQ>S)%&PE%$Y(Bqp^~b$m zs~?}Ywm-e=5TB|hXmY^E(W0gF^|h1MM~@v76BCoOC`h=!ulDCp(6S1nV3mZtMP(%= z9p6n%OjZH%7#u9-i1t~R@9$l7{dMm93o+YrW*$tK zv3W(=U1_I;gatXyuCA`Z!NGZX>%vy=eJ@@j$T!2g>UI9Um8RvP(HcLB9U99`)`Sa`7tT}VAI4CISh^3pmyC7ecQEXSUf9YJGy=M@#VMe1oT_ijyyI6^IH$i_ zvBz(|W{6&J2s2PzD$t)mxT%(=g>_TB03f3}nSI`!}G2>X`t`@_=wn+xM+Pnn_OY7r9x zY9pwmS61%4`=_m~?Z%B82M#!_4U>iqoF2XCe`#gW-rSP#4>!#YmzHVh8iHapAdX@4 z>50$x+wI!eUc|uA()@{OM(nwFQg{9?-nQ`bc5n=7=znjX=VSh8_PdSWzdk>6^!km3 zsluVr4I-y0vY`rYe# zBlj)70G^3?CRJr*d)qQ+{_kO)FbN})3x$7m8+CeP}R|^491NvM;vCp?B z=l)JRy#G~QaQ46B%jV6yl~|?$p15Lu$S`A5rNvL5*KglP--=1g-8K(T z=zz!17!8bh;(vYXwvYd-@aYfx|FSr>C-J9PK%tV{25P};G3#!Zx}^7>%kKBZ{pH*C zS!eA1YikW^N@*Ty1oh2Iwk3VL!uLNp`26gs&ky5E%inF^;0&sbK=Vcibc*&Ry?FmI zHs7{nS>ETR_kPV5;a~uT-GLm#w4d)zo3F3^@gw|w>pbhJH_P|tPBCI+XkmUhL+VS4 z(B(=U@x1zfS@ky;zZDIXT{f2)+?)cnRyf!X9lYp&)HXWiXU&r%`BmO>dA0)83*Y{I z4V&jY#AwhRWAo+g#3Spu#cLuz%g3KKVP%2@d-oje-E|7zoK7BIt6q1x`srsuE*9|I zS6?+~CerxCTE^9x&mCMtj?3@_o(9c&3G#va-}mH#WfyHLI-0`^7v^U8H~qA_ZB|DV z19(ns`Z43S6|4*`kLx=S1KRKI>_3+;7cLd~{3u3f-6ws!Q1$3eNB= zDk|>Wx%2V!?OV5c{@At4s?;wsa%O*j|Is8z3jw|Y!8tOE!fcZNG+$zNuy`hdG04QT z`fL5MsudU`-S?DbN_=;7|F?Eod!NPmieCmO-^gqS6%c_IOw7#Fb)&-q120~=GG+Gc z)mO8QT229vet)TtKWRMstkLpq+r%C^SaiIc)l-{n@3NNp_J@S$4|b?(9(veyC=pbP zS{#4z;zb2$^wZH|#}cNzMk|-Kpho(khir!eV`Ft^9@U+~dD~m->({SF$5V_zy_g-` z9PA8-9xjsTb#t|_va)*f%h=1?+f?f8hYuSbf7;~wmi>0ExcS_&Ad5Rzk5ex1{@>dE z^wXr5zi+jDdaxt)*3sp;<*VCMw`7~xMp~>1%l7y0FPgr>DJW>t{{8=N+?e6>`s=T? z(c4#bKYIK)e0`kl_a-;~<2Hx37WBV=Xz}ID(P!7!f4g=c)FQN=GDBr)d-ApyuU>un z`qdXaPM)2Wb?V%?YZ)fDx95jXlj31p8x|b_ozqR3_;!1WAm8retCuN@@7w9NUSY@d zf|8JX7Bj1U9zMRm>M{GXuKA@h^*gukt$E@0JhzLF;o*!#DJiL>a z&zUYJF5ceSdU8=m2gl-z7Wz-0>K&T+^XS40UDxH-|MI?gbMmx}fp#_z#119?exlv0 zyqufOu5R1y508tN_RsnITVKC!;`REKc{hH_i!n2_9PT}RI=02Rvgq$r?*BJGJam4a zeneh(?T&<^?{7+ctG5+fR9ro~FW>t6-Hac#^FKbHo1b;Iy1r_k-p`=f4}V?wdHYQO zsDyN|couIF@-5!v|Eg;X?#|uz^2ohg_deI0>wKAY&Ty&e7xVkSKJ{k1&-?$Y_V3O~ z?a`|r?XtUn?f+N%w*7m5%7Q}D)k2`}rwCu`?fa4UbN|1&&%al4&-1BU&ad|4|8|dY zM)>E74^!_*ZHTkTu>9J-uXeR{cWJs^hfTfC%S$(7o14>jPU2`NP>}h2cIj;Me|LhU ze_rgX|DDn9b7KD#&I&f><@q!3?hW$%;RT;u)_RDvC6 z{;2S`TDN&`=KOHh_mxlY^Y8tc_d9+2{>@ccL7-89t*KvjZC!oqQ{=U&fA{bBaLqaW zRQ;v6->>Hxt2SRhvlt!_&tI&6YrFsDk+`?-w!~kR`WA2U*;0Mkb5+sv0=EU83w##% zFTgD*E~qT1pV$tX_F+F{cs(S>;HbQA?Tf!XXL+Z74c7}$crdXia^LH9KbL)+s?9$C zRh9aJt#2-VTP$6D=IC`czx#^{z(xAI4L!a4Dz`oSxN3h(*q&)Wk1pJ{uX9Gx`7T9e8neZhD`)?2Vr<+ABBPy68?1@p!eVCjalg?f=p~zYgcOExu^o+WdGL zo5;flFXk)XYWp=+F)RGcErG2Z?4Ggnf8T0bZpD6FmsjHuWARzf^HPh%5{}J%T>IDZ z>HCArclGVRQ@tx;!RlL&#FXzheFvr1cP;5Wf!qd<4=uFu<#D!g&T*dOe1@5uv8DM_ zQEAMc`txNSx9->0eQ<1B@pKZGr>&=j+L2n_7N`r#MfL9P*|_)Vjb@&}?t%$dnCB!* zWfyaEKLkg|fu{vU9k*DQ{(pL=`4fwIQJ-YY{?(Bj@!vslb)dA+#zprKqg=9F@wd3* ze8oQ(I6&dxdgvkJ-|ABWTkF2_1-{;T$nm;~;oYN7dp;jOyJJaHfr3oldGqglf!zfK zFN7{n)jg73A0YbB!D3Iig$;jdN0i=5h8>$)KXAX}U_aDYP;u&=vjs!U4JS}b?coQj zhaax|v(;M((wbWMN&L?5+4*;+Hf(YRtwHIl^B3rQZm)UXygsOWXR?`Fej;dq=W6lgXDd@d;{k~iO4hH1^J)6JlxJDeP89QB=@AmXL`wL6+m%scz zKm6~b57GSpzxLbT`u$43f7-rJ=VvwFO<(r$@G=Gi2e#{NJ~@61HhrIB5*i+7aW`}4F;HhC{k)}I&C~lO{jqkHoBuX1)c;rWb@KEo z+1LduXLfU&+$&4gIn-F7Aai+t=9c^;L4UvAyzVDoyX@Ou`TuXXHf%a`wf&w?u1&MJr1p}{CT;*Y^%B5i3!^n?saOL>^&E=!1CvA&G-c$&*?K%?$&0U5 zsB?N^cTPjPv6^mclD~%QiENp7qaw-wiMw^(hS%lx)*FmpKDpm@TS{tuS@iz@eM(FP z@mIJ_&fcE8+oAZgb<5$yt;&{`H<4!c?jJwyjy|>b?gF#Dbw^@H`kt%bUUsW%AGJAR zf5hpC>k*G5-g$M_;2^YBc(z15qvU^aW7_#k|93hx7gQ_&IhvJ~_36{6D~pd9ELyZ^ z%FB+9jxS%nRO;*7J&&9HEInxBvU%2XX$S}wquFZYiz31QLmDBt4-mL6;{VV!Q`1{xA_X=P5b&UVa(*8NR|2=nqd_K2* z-p-0QN4@8#eVO@*{T9#l-K%uNrQGvM?#XSgdA=!eDdXIadNR}VCQa9k-d6XwD)rX= z`}J>cZ4C?zw3@4DVPT=Hd^l?>$WuPUY{nW0{XB+zYoU(ih`}<1OcPDm7o^Agg zYZ5QBudjfiVncz?k5%v2-oO9m_qSP|PfI6KSx`KPF?>$1i#wEus(@LN)Q_5B;aZrVA!3m-aI=|h_~%E=(eqY(N8&6d z{rK9scJKWB*XH8!uUG6TT$%S{R^^wp``hnF?{~NO*RLDB?M2D1Rjahv&#zp!ZrY=a z%uGj%18+C<^wt&qT>alnzW(3jB2Xc|zIewix4y`IyDwJ$_IiBcsPp|Td+YChxzD`( z--YrwN4?wU?acU7nf}xNmbbj+?_>OD-m`4kx8DBy_803{J=)cm_r`K&)z9udb@|BC zzW&CLY2Q^1@Aq+E_St=C%j83aE1tjEcK2xO?)yvc%t))MTRwH!^|hOO;$Z7S}zU{oLuim`uDqr3jw&z>L)%d#5>>p=W*4F2()P4P9(YEh3w*&U4 z=1h?Vt-URA+f`t*r#-o(#Kgp;Fd|CCrk(k4_7bV1Y2tMelqVv zg_X-W+JF7IeLqsarg-hYQ>|Ux%jTx{Ew7FHDnI|v*Zcf?LG1|sz4I0MXHKY3U8XZh z{lw)bCqD^QF0594xcc zxq6xM|C=8Y|6IJZg4w$H`yQoy#ro8!XE}K*rY!v=Q~B)W!MIA%LyQk{&pnLYf4H&0 zg41>;$MK$mm(P07uP=MQKcnt*j`K6|cC)!Rqryx^fF0}f?6^wK}%5lvpR#N`SWZxs=qt2`yxB{m#Ot!8mIppTzB90ljAr4p7sCt z?0PZt*7rD@$e9;I=H~x9a^Ygg->)~1t-d>VTK2ln(kd~QkAy)>kHC}Gc{hck_y1p) zeaC_w0cJ3(uDfL%lieJWjb~u0Z;cN5#vd$J3d7hvmfJ=WqK~887+&Vec3Dx3!@dMbgRU zKOR!kLmJpb9x^cai}9&TZtN@NkI$ETv2th0x<9L*HC+>qJlj55+AgO2%!XeVW>1uV z%W>~>S6TTj=lAJ)*V{dT*D8y&2kUVZ=b}Mt|wTi931J2+4ZawSY?V3OQ@iJ8(Q=S@cegAjQ zt{3XZuFL;a_|3k%PCQ`R%JqMOzZ`7Zq5K{cPg_4K9D4Zi&_Pwv7UqWvnueK+p3Qo_ z-5nIYnf2EXzBAr^OFI7lrx}wC=l@?~v-9EM`}J{K&z3A%@U>;nwoiv%&hmbq68h}* z^xf_2PtQ_+*6ut>Uk?`-;1~3@3M>d zApH2X{jJ}tK7E}dzi;}#6YMvCowEO1QvdJ#>h4E-8}!{{4D$&oB7o&hwz?m|A~riJ4r@$CRg=OH&Ko@BOVT zz3Bh_`D^X}Urw;!v~u26lzgiH+rD4Ik6&M8=dLUKu{J&H{_TpS^QY(6O}Q8{_j=Ip zV>c(a^{KTS{+xeGFwIKskmFk4prlDtzP+s9Soi<#*W1c>4_`lfUBCX;{m|le&m#{X{aC#8b^qS|FOS@tZfClzHty^HS@!>m zz2C-1y#@^hG@q+~w?D(KXl3k_6_pE?=dOsq7jBbz#OfFyBw}x=rzdy$bOd!obi{R} zbY!Lc|D1f0Zz6x7fS}+-!HJWOum1Px^537J#@gb&>+SwrxBvHHZ%O6aKT|VjDt}I0 zX>(k%R?vA?WG!f@tc96DfX}~AbCJR>g-Z&r6qppH9`@|}^XNnLxfiFomVae^=wKnx z_rF=L0<@;H;_8$yPnTT&^(f`iiT<)bZw~ks&b``xuV&S=x$$zkvE^qz{84|pf8G7r zcRoDKx4-@W_xaVEX7T46%U1q9oy@vcz3aAA*;eyu^;csmAAULb&N#`ebh@?O+xL@l zjpO&%{5uwU^U6NK(_e2Zo9~yM-K_7SEW^RR)$FaXXJ==@4#!KEoA>sH?|!{L=7;{WJe->=$zC$RYCorCX; zr;7VcufMuy_1=v;)-GJ|^$4ir@%GEbHO~(3|G($e_W5u9^L~7|{GNf8NdCOY2i`BUKvL~x%@G$1fxeFynEkW3<+7;UeFRG1sP+v=;+xk>rs}GAlB7s9x^lz z2@Uo9@$Ow-sh_iR^O?-NJU5Fy%az-~6StF>a2$UV6c(oTu)VGAie=j7$Y)osT`P+C zUpzoU0v|VGk67s<{`t$A>rY-V}n+%Uq9VaZF1+~CZsJ3k{Cm*ObiSSnGcp8 zQhWg!DgA%!`0@2|dw+pKafj>r&fPgH4kld4+S=OMsy10uUEO{0#T#|rV&I(wGZ#Yk zt!z;SuK?ck86*nQ$N&x$@NN|ciXX|5Q&;&xQ>KOZVN~SG#+8n9C&ZNnU>!U(HfhR(@}t zw6i*KW5lG%lWS{g%HG|{-0tzrTFLe3(J4dgxNFC64uYiA5ac5duSXQn%efqR& zT43PB8a5+iW7}v8mkmpTK8HN)=+ku{bmi8(SEj9rbPd@9MEr^SomwQ-7 zRP<@0Av-&}xNelnwuR?BeSAb-eoMGLp*U&f=_ffif?Ji9l$^4*SjRQ2XnX6vY1_7K z%a$G6to;4!*Pp+C%Ucv2_`K-k@=M$HiLQ^@l+yY9sEnlK#4>Yrb@#cOb8Z@C#@Hyw zW@fIuRH`WXw#E6??JZkOZnvpfSxG&dA!1qi>5AH^X)4&M+^3S_)u`ZdnM0<)Zf4T zgJfA*SSliXz$>jbd&h=_J$w8(d1Hh?U#B2{?EbpF?DM~$&YV2Qh>eZS%*3Q3%O`XG zlP#GgC0CkTozFEKm3n$5e)(lqcJ}m?l!_-?KO8*hxbjd}cem=AEup8jir(BT7sFaw zQj%dJ<^Q*0+4AMx+U90vr~GW{{_NOtu(h>SF7om%)4f8$&rW=NbMR1LXlSbWgqbqO zKr6N+AI@mVy}iwobKACURapnr=hp<)1lv7vb#ZJKWM70a13X9k_EymxmBmsq!J zkC#@Sziq(MTb#VSYgev(`S$J9E{~8)!SCayH($GdKfWxry1F_n?AjvN?k67aUcUUO z^)NtBS5Zb-M#gIHxx@Q*K4Gx*s;Q~5SyS(SV{>}{j*$BL{oBE-%W5_}ef&0Y=aZg* zqN!7++)$nBbw~Moa%JVtj>V4`uDx58@3l2JFmU0yzLm zF%c1uGJb2-4Z?g+H)mFRE`@H@Yk53xv$Lg|&5wC)*5&J4Z~v=)aDdU0@7AqbHag2{ zHmLuxZT=W9_T8YzZLvF7`_-(e#*DXb^GtQV9=xAfhkXNky#GYw*xk?EGZ)$X(AwtZ z=GON7u3WadjI69|*3xKDip_ z?{jx=kMML=QMcc_cW*ntJRcul-NROK8>5%IN?$uUIjJNU7jHH(EPA#$?p0~|ty{OI zv<2DCcy#>KmZELSvs8__xw(DSg8lsZu6S>YzxuK4VZgpUPk8rh=p5e_a`O}8gkM!B zC#e=`RD3JvwvD!UcjxcE$ef%tb6%f5Zf#?8M|pqr3Z<>zE-m#|UHQg$qqcvq=GDFs zyKVLto>%hl@_Gs{{kNquENq&4S-ys+dCrXu1rMD(e?6J(Uv(*UF=(Gx@3LR4a~?fP zy1D;TW^YG_fmHA1I&rpq(C*tvcF6Tguj@r@Sg>i+ zrLtw8KHs=3xBoz2E4O&w?QOZ|gi6cH-CbRKY)~p7eHi2P>C@PfYO>(o|Nw%{Rxo&bz9* z`udtkW39q*Tq-&wTu4Xb8lWl?Uf zF1s1SA;t$qhbGRLp&@*Fn(pl_nU|-uINy4IT&`Nj-hTh$#mc(6zHv&uOAjVYsCP|T zvM^LH%OhLs{1o*q+qQ*;hI&S8`|jSvmf4p2S5#E=lG*gBQ%`z#b#+Z~eZ=BDUC-Cc z%SfuX%jbsDY^~Rp1rHi>R@pedNql{6tx^2Eot2-{ZfY3{WiC9Xp6FuQBbV2pI@KJB4uUeOF^ejZQi{3s_Ugcr+4n&RdhT2 zrqcVR7c+9K4UVLxgm&>->?l%v9a6WW0vPc>D|_@ zOBPPG{QLLssZ&?qv0G!Tkn3{e{=Nmx4C+&!`22>H>A7=Er>LFxL}Q&yZdyVNG0tvXU~S# z2!e9ybg{m3=ltU1@1Hv5^}O})H#wi%!c|ZI#EJH;S)*eeYf<_tq_p&FQ)j@w^@`f( zPn?)hF#G%4+sie&t(Gra=JqzAP)BB)^qg653nwNfcIo+O$Xw#_cea=!t&>x2aVD*}wsx;ihc?fh?xOdt z&G}P$-aiD@jJJOIIa{!?vokX@FV(np`}WlJ?C$RFx4GKit`^yunUxjvTt!8t2O2tS z3p#8&K6WIAgoJeb)%ad)p{G4{+cq;pr>~bJKqpJ-X~|sLqZ_rw!*5^c!wt6L)1Ud4 zq(~h~tbX3IWzD5Nuibj@RfV_RXD?J>-_{|Yu{G*;wS`Lt6BE;vYvodh7RLMws8&w- z`|sbs$(-)t;nQ=2Dlb2H@ZjV77e6xjTAV9Bom5vnT72GCy>HRG=_gOE0-djstr=wD zwVwlOd-=Pvm%o4hTzTl@m&^X$DJN#`nq#Z3s_MyY8~PA*^3t}l-{0OE1>` zD)Qt$+UXe|_Z=#H{_ZJf=91N`S3hm7{`O|$-i1X{hb~^c`0(-L$y2AQX0Kkqe)`#n zokgi7C0|mamHvqc2`NRMN&C#Lzehky%IcxDRmH62hZB;f@J^oTw)kS$Dm5MLjjFwF z%6gYdr{B2~Bgl6%Qsy=T2YZ7zcl(@fcQ?0HhZK81t_odUVl`KZ_mY-=?5+~8Ll57- zpFe-TzTAR8eC>0#^7Hbpe6PAlL3g9cOh-q@O{zuv-t~ayh?Xv0dQ$Bq_tEy8`mH%t z-wQzdK!W1q<2SNw)DE24(7=#t`*^#{t*`3yDx7{c_O98j6S*nn&uvSP8v}L~q%h~y z|GVlK`S#x4=(4Ve=^|Tm_UG7ui$Mm^8ZHLVo=8xI#L@oRsF^vV7iB6<==OUbt79J@ zgc|Q?U1xCPd&+GC@5k*s>lzuhGHyM%CA)cR_I1A>&N{EY&vm zBlz_CJ3+n~>}dsmUO#z~VsF2H(xgexo;~~Xr$%00{^#!pp=WsV7HWqWZY$*C=AQfK zQ|s&ZwF}G^n9cZo%b~@&=G_$wP*PP_QB(7JsIICS8X9^Pe7ILjYpZA3?fb`_Ee@QW zAUtcq0)^Z29R!Ys?N|S)5Zc2&|3dz)Etz$#%xV3HSmT4F1EkNC`E_7|G8y&O5>rhUQu1e zyP0>Lwsy_T5h!MNeS5|Ow4uh*((=@nPudS&JrF;2>Fw?9t8Z_}x~jGH|K$`TO9{o= znp{2U^?z<`n{xYh{{FRR$_2cBGQIlI_#pRnjGN_r&GQof!QNbY>%d0PRW0|go6MVJ7a3@6d8s@p zX_3*AYjbxWZu6{FzuNUF-`%}EXzGgF3NNSW$Lr|_)&(Ct$nmo5L``IFXz0{6!8y*` zT$ahU1Zm~1^jyj{dAbJkLG9@kxvkBC=h9D_rCqaJ!MlR@O^frj7;`>N8BH;HdHLJ( z7csUx{%0YPR<%j%Sl)!!Cy#9lvoF0Y0ScY-A^sIxOT7*kpMN8!wYtcl<7bNN+b16P zcbC7PHp}BK&&uCV?w>p7w=_T4@4=f}KVH1Zxa}8`?&cBxDr{@G^U;qd-h5iNP4-sN zGZp`7i-OJD0?(yiHA}kyb4J&pe3`Rn&*tXlZkpS3qrJd~m;JDh^@^l7Jr##GuFdWL zv68RuZ9?aIlC_f7uXp6ZaKWfbMMMLp2c%^cNYXm2S{5~db+-J7nFXy z`Q@%dh4-V9zsd1!%i5H^9e5>u-VD_ePP&nLmwE)G%9Fe|>69rRM6zpbm95;EbygPB3y0lWwAK!Dr zeYv^SN9<2LxV}wIPC($og$oJR#RUZcdpBv^wud-D-Fo>(S&$p{y|3B&KIB_d$l}w} zbc6jKEV%^gXMNSaUt51b%kAaE4R?Q>tg^^)_B9jOv&*oj$S>C+_d(g#gL8l1HIWh) zHa3s{>1biIysOaQ%$F4B7XKe>SA9&5zAgJPSn5xe&8L&oc{i_)KV}TEb!w=k1jy2| zx+VE5W1j4B57T&FR{rjuwBpsIz`%(iCXXNcEbahRI}sCoBg4dzSFanxx#jZ z?HspzYU)yv^|`yO%ku-K3T?J!cC>i#zW{1?#8Dqe;4eM6{_TWo-gZ%oKKp(*dbqRo z^Woz255#V*%i834MqNAWx%)3M#eid)q54s$PoABm>ODp3xSn55&YBRhB0bfu^FD|6 zOqmhVv8k?dVMwvnT)&+@uM<+rX69Q9?D@00hb4QrVNcOJu|tlz4!H^HGQ$5pOfT|$ zaqjMY)4+WbwU??y>+KSjl$4Z^u=rqaIT)gd3@V8+egc-er(nK zbaUQ^S1()Q<;&|T-bvnZx{U~&_fJnxzs)xNlf4=VIqtnHw~%;x=WA>8t%h3%{4CUTvQ8%5zP+XDYgXju zpyZCpCp+1vhcG0BC7hX3SA zc%1$4g@YaBFj;T0#yD`^!~=dW>qBthodEa@to&bV^!8<$jvthVLL z+mmmBivfKZ9{=~R4n1tzakSw|*BkBTfYZ;Gf_C!?--|ubaOITA;mgY4RLdU(4iUr8 zJN`9X=~~#oze-E~1gC$t#DrgbFf||-GgJum%zWf|h!NEG1+SL@GZ;D88RR3nKou~o kM+h6F1a}z^eE#{LQDxPNcjpoh3xHI4y85}Sb4q9e0B-YotpET3 literal 0 HcmV?d00001 -- 2.51.2