From 07f8148e0d8485edc281cc66ae384c505b806f34 Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Sat, 4 Sep 2021 21:44:35 +0200 Subject: [PATCH] Blog post: Reduce Tor's memory usage --- content/blog/reduce-tor-memory-usage.md | 42 ++++++++++++++++++ layouts/partials/custom_head.html | 8 ++++ .../blog/reduce-tor-memory-usage/glibc.png | Bin 0 -> 29680 bytes .../blog/reduce-tor-memory-usage/jemalloc.png | Bin 0 -> 24574 bytes 4 files changed, 50 insertions(+) create mode 100644 content/blog/reduce-tor-memory-usage.md create mode 100644 layouts/partials/custom_head.html create mode 100644 static/images/blog/reduce-tor-memory-usage/glibc.png create mode 100644 static/images/blog/reduce-tor-memory-usage/jemalloc.png diff --git a/content/blog/reduce-tor-memory-usage.md b/content/blog/reduce-tor-memory-usage.md new file mode 100644 index 0000000..f1e4611 --- /dev/null +++ b/content/blog/reduce-tor-memory-usage.md @@ -0,0 +1,42 @@ ++++ +title = "Reducing Tor's memory usage" +date = "2021-09-04" +description = "Dramatically decreasing the memory footprint of a fast Tor relay with jemalloc" +tags = [ + "tor", + "relay", + "libc", + "jemalloc", +] ++++ + +I recently migrated my Tor relay from a Fedora 32 container to a NixOS container. For some reason, it magically stared using a lot less CPU, but also a bit more memory. + +

Today's weird thing that I'm too afraid to investigate: moved my Tor relay container from Fedora 32 to NixOS. Same configuration, only went from v0.4.5.8 to v0.4.5.9 in the process.

Now it's using 1/5 of the CPU, a bit more RAM and it yields ~the same bandwidth 🤔🧐 pic.twitter.com/kWy4NyOcaI

— Alekos Filini (@afilini) August 28, 2021
+ +[[archived]](https://archive.md/TWw4c) + +After a few days it was clear that it was struggling with the memory, I could see a few big drops in memory usage where the kernel swapped out a lot of pages. + +[In the official docs][PFqdPo_link][^PFqdPo] docs they recommend recompiling with a different malloc implementation (which they also use in the official release tarballs), but being lazy I didn't really want to spend time configuring +NixOS to compile the package locally with non-standard flags. So I decided to try the quick route first: changing the malloc implementation at runtime. + +NixOS supports [a few different memory allocators][VauVPy_link][^VauVPy]. Most of them are designed to aid development, by trying to help finding undefined behaviors in the usage of allocated memory. There is one provider that can help +us, though: `jemalloc`. + +[`jemalloc`][eJRsGS_link][^eJRsGS] is designed to reduce memory fragmentation, which is very likely the cause of the high memory usage of my relay, since it doesn't seem to be connected to the bandwidth provided but just slowly grows +over time. + +So, I tried adding `environment.memoryAllocator.provider = "jemalloc"` to my configuration, restarting Tor, and... + +{{< my-figure url="/images/blog/reduce-tor-memory-usage/glibc.png" caption="First 24 hours of Tor running with the default libc (glibc)" >}} + +{{< my-figure url="/images/blog/reduce-tor-memory-usage/jemalloc.png" caption="First 24 hours of Tor running with jemalloc" >}} + +[PFqdPo_link]: https://support.torproject.org/operators/relay-memory/ +[VauVPy_link]: https://github.com/NixOS/nixpkgs/blob/nixos-21.05/nixos/modules/config/malloc.nix#L61-L83 +[eJRsGS_link]: http://jemalloc.net + +[^PFqdPo]: *Why is my Tor relay using so much memory? | Tor Project | Support* [[original]](https://support.torproject.org/operators/relay-memory/) [[archived]](https://archive.md/KqwVE) +[^VauVPy]: *nixpkgs/malloc.nix at nixos-21.05 · NixOS/nixpkgs · GitHub* [[original]](https://github.com/NixOS/nixpkgs/blob/nixos-21.05/nixos/modules/config/malloc.nix#L61-L83) [[archived]](https://archive.md/jAieS) +[^eJRsGS]: *jemalloc* [[original]](http://jemalloc.net) [[archived]](https://archive.md/TMIyN) diff --git a/layouts/partials/custom_head.html b/layouts/partials/custom_head.html new file mode 100644 index 0000000..366669a --- /dev/null +++ b/layouts/partials/custom_head.html @@ -0,0 +1,8 @@ + diff --git a/static/images/blog/reduce-tor-memory-usage/glibc.png b/static/images/blog/reduce-tor-memory-usage/glibc.png new file mode 100644 index 0000000000000000000000000000000000000000..b8738e25568eea76adc796ad8ecd137c65a0add6 GIT binary patch literal 29680 zcmeAS@N?(olHy`uVBq!ia0y~yU|zz&z^KE)#=yXE<#3%N1A_vCr;B4q#hf>HUsj8x z?qVzW-yNfnWEXpS)^amB-R+4T%zM zP-JGs-xsF~ zv*|aV+U#Zic*c1BgEu#|XUyH(bZwiX&7M;0kSt!M#gjkWtDZl5-fTv-BLh~7n=f%Z7&v2p3A2=T_QL?Ut~0mNoTY=3z2$dRADi~~?ui#FG5h~Xrk#s9 z^m_gNZhpHT%9DbMT9lEjna`W+5q+EO;$>^bsZq_g>*8iu7IUVb-`6a@Jigg$?-$M8 zpQq|H7xMSMaF)Ng zP_Q<`1x!tOw|OD&%Wtt(dwxE9KOsIMwMu9G0;c8u=N*^E-I-vuv*OX)?e@py!u1~p z%r0eK*uTYD`PYSZw=WaRGF-q8(oT1l4w_o^(B#fxf7#>G`Fq+wi?4e)Gd->`-$5cI z>+|h>b8L4P+@AjBjMGDp*_GIhI4d2L_I2W6HYfSacDFAeM=HO)&|zn?h`%*|DfWH$k#3F`>!0z_4sF(3e+CX2u!6EQ2ejcv=ZV~^ja zDKEM+wNl%~8=qo*Ha3B$?^?yZP6ddHY1Y)fJ8O2fY|gqhPIH!TpYT2Ybnc16=NNa% zMm=0sZgl@fi@4V*mB*Xo5}maSif%Z(00+^Rg@Rxw9G~>&R$j0CvEvJ`zcQFJtFN<1 z=i%#=y?3RwwzBy}MX$Ibb;jHz$;MW=UQViM@7A+z>(58!I$wMj_aiNXLsao$z)I5_ zo33)HpE~7xzWSC`!nS2%VY6hH9sk7C^x*Y|^t*Pq&z{qpqqBZO%lWD{ECIE}vUXeE z)~HYS%QyLM{=08|pr}~q#4S8~F5hF^8`j=+f#Xa_==z_##8}uKuUB6DVMFnr_nSWV z`dUni&-nG-A&6_;)-6u!uP)RzW8AN+G3k!k6{+bPR{dXZ&dd9v!~e+TO4fjtrWGdI z?EPs^9~^xYlyftywcg)1QNdDl`s`T?gR%wQy=wHYuKM^$$lahkce`7C5Z9it#9cxA zUc5EU?z(>1oeNvA<@(K!`LAFzZ!WidyKTklg@WR|yvv?jJrW9#6WaEoT+8`T;mVDi zT3gwaSH7&UQRgq_?OoyP*&MgpdCl>-J8#}ZeYMJXXEkYiNZP7ZADs#{*KOUh$W%>E ze%sc=0+O3Ec1}NaDsgwQd7tR?1TAg$^&ue-QzBXUQc@o;{lvv$z1wm9Rmb&LAIA8~ z*2sK&kWr@?Q&RQt_Jz(%Ml!lO$F~3euD`oyY8tzqxvBH|tBMy-v%lZIJ^A>yxj%lt z(D)K1JL%i6NBp*XPw?Mi-y7Dx`j}YDuBrz$v9>mEWj=nt82Dz#^JzBozkhq^QKxt> zKi_>>{DbxXa_;l;KUOtca;6HNdfhYaZkyZ|)LqzJ=5f)(3zYjdTio9M_6Yyt#T7>8 z^5U;}3ohP#+&al9q}^TVz(v;QuU~z9zf$whvu~en$zH4YRQ6f&*`vntUfmV_J!Ynr zA0Gx@$S%FH`8MBwYs;OhN^dN?*|)RJZ3+bC0t)(+ot~>bn=1!;W zif{R{YwT@!_J*m? z`#*Qik<(A7zJ8>AJgSu&mi0{dn>`IiIwYnNkww(R(AAOO`8M z%`UZwj^$>5due-J;l-DQix&&amzU3;btZUfsDaC|1RdSOB_*b3jxy^{ovMF3pzhk` z?v-m~c+{3ZYW`Lx!qWQS{o=(HOBZF`yuZ`BuJ7E554;DarY*jZt8v$y;d$0;pVvwW`FzR;wCol%*pBn=TrCIm9p>YOWL+8?Bj0<UHyG z3GI^$GMg0i!ddy(pGo&um{uImI1-TcYf|r-_P4SboxSaGtDWa8H($4HOVYZ9f_&di z^uIrQ*Y+hQSN2jZ^R$}(`+Iv7PU{QURjF6p$!qxltc0PiFM=wZ^SJy!htM6T53qy~=u&liWXFO|2!*Sy(bsBJSD$M}EJA zCV%{6D`SnJ(_xDV%cYZCakFT1x zd$*$PjJeJKmP~PdpWD%MaI@=C?|=Iq=S2r!u6}><`qwk=vU5L_mWXZR-Fr93Wm*1# zw%U8Ymzry``r8}`ycFS|zvue3zSnDWyY3&qF@dW`#!TRshqcL~{!2AUw%;D@XXktH zQ1^Dr`tA^Dg4@5uT$8mw?fJS&<>GSZC{eM_aP8G%d%wTlS_-n}Udi3L*2`6+U#+_M z=D_KvqAT|QwLN<^&pCWn?;+lIei!7z|7@&JxH^A#MZ8Ab`n89T$FAN#;i}u4U3owwQ(zf??-Ge$C(f%Mz0Gg$@0Yavs@}ubN}=FT5PF%s^ybDVx}h#l zYhrD?zO}B)c9wees_}gF?=w8VgeG5KD!9$W_u@v09nUk??OrR_*6~91uT8G(ge}+0 zFFtnX?)s3DXLs)EHAQ=ailezNZXQyKF_fD4R=(wWR#vO@o!R`iZVNu%D1P!@-HhGm zSMJE&$XT&(he$l{nth$IuWR4jJ5pKoc;+FcIcryLe(~zycTkN~FliCEaq~IlC+nm6 z!op5@>-5ASj(sZp=uw|NKkvhemyfC))`iR6+r%3@^Jc-ejpnxBauNks9adf#l>MQ9 zqv4L*mTR(|S6$bOaX9X^nK^G;)t!v@2ePl49+F_x6YF z69xB#1$W<^71gr4YQ|4FZLP?XK3R8etm(EHw(*-RFRhA-T@MX~mHhD*z8cE4%i zi_Da=V(%5NEn2mSD?K}_aLWRY`Cq?0DyU=p5(Ubl2C-3njZZ=*fBr9P(*bU^Y`gH_ zyQgSX^yT0jDAK&fsd&16kIQo6d?AW^&Gv+4ma_tRy zocFxp;TE2r<>`7m&sx6QcJ$*VBNMly5j9VLZk1|wnsc{c?^fQbwS02h_;#c|TzRA% z)G&j`Zb*yUgWnSce^~4O4}W|%5A1EFnmupkekd&8zH-O^MeF(X%4N64oK|`N_2|=O zX@4p+PLzmV-MEFvXG!`Z1p|raS+761*4tNI`?%$1we+Q?0||3huQa}!9DM5JC;mh2 z+uujd+HqaH`t95^^YVMT4ki?7#c60B-uOs}#d`O{yJ^aCn(JNCorEsc{5d;KpO^FS z%~@6=@3{|#q-{I-JjYk|-U{;v8{fqIu(VoS5#RCQeBFK)tDTS1(#55ek_FzrW3A4X z{^Pc`@vWZpoR#Yi9>06Hqu}cSe_`PpNe5TH%r<44tFzwWSgd&Gs{WpXr=L#k_#X3j zYV&k%>7d4kDz4xb_cKG6V-LPv%~9$7Xu$zvCMXYi{1(e`2|^9;4sxw=MPa z*gfYgH*X8RT)1uFBv)9j_zvz*co%=mkV%DPMLIv&L;il57 zJ1JtUIiuPXt_yXY8$w z$$9h9HU56r(G8pZ`s@4r*ZkZi%HICyX_wbSUZ~06Z`~4n^F}R)=as+L!Gmw+h+e;V zskWDQ>8(%B|CUMbxk&%S*~d%_SaMM zyY8*{wJVyo|GO^l8m0C4wQH8R) zcdy@=z{R7k32NhfF+4A9S-IoNjh1USSRTIKbkA+2-M=4oDJ+5S;tts_7pa{x>1@)M z*`=R$UcK6yQNI4S*xTn>uO~cvynosJ%x%lWmMSJ5k``KO9`hyAa{cwI%2&T%&%eDt zjmPW5r-Ntv{3>o)f(oebvF_gAP0f}tZH`m}TYITTq_$5?LJ?q`w%=EQ~ z&-VG*%#Gi%sK5WP9H`MAdhuUOprMpf^0hC3O|R5YzW|87=me_p)D)9Y(Cx6f71Da%lOy!qy0m&MCo zMC?h;I8c&lSvPBjgJS^4C+23u>o>MM`82Pr4-~+;8#x2=Z?@I<^eSfbYumki=~xx= zX4Cu2v!^uuUHNjgR!93~BZGPKcBaiQ{Jm}NkHnIY3gb`k0tX<FG`v| zocO}m>maB!cRBVT!%^@PbA9A?>-%%PzkWO{UR(QP$#QoiyQ1E_=kM76$=;4Nn`FG{ z=0ev@j~Or1&7*C#oDNNo{r7m?y5IAD{knR90c25ypWLCCx}ATIZG1Gz_5S~B*`+g1 zoH$gFWpys>`lI=eg*ggJ8skS_Vg5-?<-;4=~I-r+*~COX^?s1BN1| zZwK%Fn$GsL{bFFS@&xf6{OQ4JPTaOk%-qWA zql=&1tt4TA$1i&~Zs9R;J)X2|l@$BtO@c3pQoj;`f$|@v{rU`D603+U74dW|E2Z={I*d`rvh=W6$#RLwC<5UVQ)d#x~*mJiIea z*Y4{(x8vHSEG?P&=d=%SA6=TA_T>GOPpj+R&rMUlmudFs<;mV z{f{4W+iSG2CBX zyKjd``=?JIBg)>buRAa9edE@$h%A$ z`SSM+rF@s)4r_OPkW$I2cSZU^PV)X&wTd@x^2UGre*gNDueZSM0^bUiU&50g*8S#q zb90te$}iSOr~lRcsm|h3KYjH6yQh9r?iE~2f7-KTS@M~t%NONK=G1Lm!Xvs+kbg_x zw7x=6mg+jXV2YEx)W!7AKV$N;jsOl>)h9k|WI&gmbpKX$BO@nYdvPEU*QXiyAR_~*-<)Q{2Vv)%hKwcb8X zYkfo9>ci#A$~STkmRGr7GWt*w2WlFBds}$)=B!<*(`zeEn{B?_X8lO0K%@L2zZht= zYWBi~uD3lM0}SS!IqUA6!ZS}-t1WJIbN4wpbL-s!oAi&o`RYF{e3sO$sgoYPZNK>{ zYRA3L?vs`V&6&WnH>{oi*6ojV)z-_5HrIbO`+uLAJ#32(AKy{qR&V*AFFX8?yj+#F zCppH#`Qg345h;*Z_@birxO2`P(d}FXU0tA#VAWba#dUHO8<+4@t>ybaZX3&t!`wz;_mkNcqixP>+igMj^%TAotd_E^R6do@zTXYIXS(e{P_VIc)EGn?U#4Y9?7~^y7W(G zLP4NmU3v4r&sRj|l-<_-xm)pE-jBo_9@&qbulMCgB^}AJlTY@!(-oimaZB-$=X+~A zzJGD6&S6?76+KO6dH)mfN5?xk-)y;+T6NBGweybE?Jskr{H@*p?A!gj@%qI}J6m{H z9`M*GF$Fw|l4Cc2_T1PNy&Z?XUNd|6dXv=RqyxVStnUz_W3 z>oxb@u=e{~w|Eb)<9(Ae%Jq5He_FM!YAxT?g@P5^Z*u5YFHfD`$=~mkox?OwQzvd~ zcE@Jvb=$W+Jp7HX=Wek{?E0&T`xXio^Y&WInci=qFAqwY31Qn_cFp)0XJ>Hi*y5C_ z-!J%l{B}6L&0TD+(r?##`#HI9d|!W65SNU~y|!uQj%$~?icPovczr@6B#T$>?5Tsd z&$`7JN_|}4+4)=U>&!DJnyxd?G1?y(SasNS{?y6u9`ApV^``vM+VVpW_tccAs?41B zf6aFOb-P;sZqqlEEKHnOQE}SrkBwz#^3kO$cK*Hl@zVo?8e@}|&!t~2!lT;_#Q8(o z-5>pYbcsFA-TS!^Xkh4QQUGLt^k)sIbUL&^;LfX8Li_Yq8~!RxN;>PmHTLwLkg$C( zww(U@C9|*d@Wek(UsRSZurs=~MQ-}6S%nt*_d{M-yxDd%_-Cuf$8XVF&hZ8sR_xp( zRLtAkvFESt?S)fJKv9@|)zl&~tZ};bwEuPU59dYyNzZzQ z-F<%fUE7X=uMtJIb{X#-I=X+ay7qJDBcUVr>|DS3UCNu!G<#duWh?vlZ(FQf-n1iXW=XU7!mSg-O}?>DyQu^ z61Q*P|8$$PWty=Gs5`Q+?_9<1%7qj6MC2cMY*~4u`1hCMc=zKO|1mM#xXx~3-nGYBXRQ4_ zb5&N#Z`O6ccioBAdGGJ*?mp+|)E4VU!e{I5Wp3rpmy~Leezlc*d+JPMlZ5qqg}s~) z`G{vl>C3mdeTlS-`{wt;&&TZV#ni1QyE@~)mu@c6OLW#U2-0C&3Lc`Keg66JkA)St ztsl;R%zw`&^(X72&GX`ZSiHF@u(-U(t>x4U4WIZVBeu!G;lSG(|5IBcV!iEci`U)@JYUt+9=Bf%y!^cAPHuO8 zdt1TIm6BRt4~0rvKN9*7mp%Jr;q|iY%b$wZ=6ZaN-SPBP{jy~(_4}+}`g&DjLwD&P49xjGA#AY|VYf&jVqWYlX<)N!pe`V$x#zwV0UYc5=V=eyI zQ}Yn-`zPnhm+(J-s(j&O>fKrisf+G)cGJ%NMad4uKkw}1S`fGTaE!C^w%pqrGiFx! z=ihj@>ELP6(2kO*2RJ7~zJDA@Sd!QdYe$BHSf&XQG;<^~2X2*n0yFE4HnWsCs)yG_qbo z_UJy_br-VF<}*J^ecy80_w0@B$3^3Lc|fxxKg#~sy~w-2`ol!`ZHx7cZk0IBv39$x zx)fAhhHI}9c(CJ}d#9Pv@htN#SWK7kRnrd}iVws%E8ok@ za&ygSdHFpmS@=U%swikkFd~ZWUY^+^ElpAJSG>|?TMD;w78V{qdrr?MO>bY&+kcQa;$avvTJR(i1O2153PlQwM*V5zx;E)EhJ${7>}3kmxY40X4Cs0=SA0;8Zhh) zYj>{v*}cwf)~m;$>GNfr2AA~(*f$q1xc(|YR*rLjwO(y~{we3f)Aw=&ZmYkr=>B@X zZWp(bHId54a%vVTe+N(h_g|{jnfw3d1g@SdU5+bTL9;KzhcP$;}}jx%U{)NPTo{71WK=fDlytfLFAfO{RqKYv)fF`TP5OIo1iXPevR z=kw2LJGj>@dZbol*$x_p>~(3kdxU1&tsc8=yK_F&6uz8v{%BRzW0y?HZF+^$!Yh9t zsjfPFHZ1?wO#w;f{ndGUh2Fer`+n=z!t1XDwj39&eDUAJ$c;7&%zuGuG^%7CKR zL`e2m$M=m}+!8?Z_d3&FDzClZQEAuesQ6>Y?&^zcJ@$O{1EostuWV1){uFJLf4%!1 z=gy#KQc@q==f$nK!o58_aHVO6&uNzra@R|L%9vSi0kwy3z1=|y5|o0@C4+4ZZ{S>6}6=1u2Sx@%K-^hVOG2meeB8`nm!1@&+HcCh?8|KLJf z{KILje4yb_(6W#v?~*gmCS-Yh=F&1KPLo@n{_NxJ^ti^ohxJ{(f{XS2&YwwscE%>^ zcDql1{{5wg8=LnZeL1soj-74$lr4W$@26B%i7od#t6O#F>Roa3yqexsQpzD&yirlV z3!k1kZc+V>D=mHfgC8G@Kk#x0$0@7}e-fc{**$9E#7{MSVj>G|^%&P*zvj5RcKXZ0 zS;V0)eE&M@H zvM^|7XM0uk$G89fW^cM@$5$O7DV6x^r+siRXc@uUb$K8U&4<2=9hXC|{>VyT;GJk#ar#2StOt3eWshDrI@(N}+&*y&PtCR4%TIL1oCD2{ zJ1bvY*k2*c0g8dP14~d=i z^YK5gq^8HKwUw>+>|P0(DiN)%Y}=~R&z!I4SbHw<;%p!P^N(I#^%sKx$)y+ zs`RB>yUb*)Y;^ZH#H>HDF=AQ&7ANJOzb!IzegBtTc=h4y0fjG7vNf`EKc2lHux{Iy zM>Vmwbu#kpv)>+i>s}`zeK@|&eZlot57Jg2|9Z{r#a647Uu+NFrY(N?_1(U#w|6z~ ziFbX!eXHQ&jix;ZYC#F%<8#m~NoSnhivAwAZU5K*p7;FgHM2d{*EM$sad69ma`qx; zWhkB``ASQ_*9UOg0lv--DsK;X~QQ~5q~uQo8M;?Ua4 zwmkjW!^h$|Re43PI5riX65D%n?&4L&#qzWI4m}eMNve6I`Q=;hY||yv_3s}#Gt;}` z^;-UdpPzIscE5|=cw)SHc7c_X?;BUK%uJmlYqQj>yHl_Hu15| z$F}&$tX*@c{jTk@{nTfug`#Uk? zMT^(kgQwT;Vf=rffah&}$xY=YD_^qCur${H!*Q(YsJX*0_k7UmCXah|*KV)&vUquT=Vq9F zn>law%52x{+X^9Byz^?mg|@i=D^fk7>>lqF;&Td|Bwb^i*ktC~f_%xr*L%=gUEg8p zwS<%}ovG57bZ5=oQTRCf&7Rj&%v4=p9o_WeLc5#S_m9`CABKfb|KR!R^F6yAuj+Ox zO#1aLv?6@A^3T?ces2N0m#0dVreivjS=?McX3vj(FPmJRiuP7~y1*T<(iCLr%ge9y`XVQOwqRxu5CRvb?_g%Qe4fxnk%_Q;U)csptAJ z#m+a z9p5AVy%zfZ>}{H|Q7vtsJ7iidpXZ?|ML&8thBWG`lay3%UB<7NhvGC z;%DD-^pZSxE)>c;L_9C6-Tljma%;| zTT-6)yXe~+Q6K;FhpyYZR9xH#74TpcSE_<%+q+GCXo!s)(s{~&> z$=dc#_25F#Fznoqoy*k1IujRy8XWE=87}fGe@8^|Zv?ewVWvJWsAIHxEZpiJWcqL- zs8M}A`nJI9jpZj(<5#bA-4?I#$Y$@yBu`1ZS1&-*2+yQv8{EI4QgdkPXBWNapt*;I z6JK0#-_yVJs{m-N4KySs)oi(4u3PnH>no{{mKN^$OBUVPTd;aHx8(PqaxZdxb)QK| zO%&h3-*!R*G^cj_W1&rO1U5rWg+PV|ZPYmmN~9kzW|#iB{)0s*Ki=Yn-@5JF6f4)S zS5aFjApSl6tJM8>_xq0*e`@jHQ8W)N0r(|>8nBwvmP-A);Gt<(+4vjOzbfwaP3!+( zSs?JwPp@mWxp#rtM$ zZo%Tk!5=42xdU3D+F=JPldU>I<7rDHre(cwR=#Lwz3uIh>fE>AW8Y15-}ZRpo0yQ6 z7U!kc9(ZjQtm``mT4M+q65<3cTAWZYXXUy^ueFY~DJJu@wZi_Ws6v~iFD`W01%2PR zB@Q%|mZSE`ckGkIBnw^IChb{P5uq7p)!FUsXJElNU5z zI&;>c%RgH+?uloaWz=7~-2CoHisv1z*2xyVpg;jNX_V{byf6DluKeBOA(w<}!J*hdbl@}MTSyFQG@n28P9XD^P z)->H(;pz1bv9uV}l-zr)E#%nIO_!YIr8>X;{QW}1=8a6aOpAR+wtIchsYSkwa$a9X{7f|K~CGGwFOTms7IX&AHZvE&i9{;%(-}Yt$SHc!f1#eoU$~ZnrbJ#W8GkiXaL(DRdbYD(1AxQS3XwM*+ti#r!# zmFfF7a^C#scu1XRsb5eLKPYkj>fq~rpKToMXPu6dSDJxg+Ad_*XOY$CBmj=ghu&|GM$!!lR;O;kxJm zmZ?$9;?mVBRX-mrTIl#AW#JQy)Rud^EhND#8B|0>3hfPR@3*pgxN5U`wat;6yzjSe zTWF}ow*LCHnR50qVU65h*>W!D9GCvew&kdr!fktw&%C`A>(|N(OGa8m#wpfp3iyPP zp7wzXy4h=IF5vH#Q+fXS)x*^19m1(kXRKV+)*ROU^O%~~}Ad;7w>iMvT&m6&)%r!dVk-CPJ0=34GUj*dmX&q>|C&Iqq}E;#<^=(oR(fwxN%fgv%0oW z!~DL9hTYWghJQ;$WOOwSH9iV@vDGT1#chFtM#@EoTQb7!$5u!@oZLDIBQ=!DO9wRu zW`ToHDtxZ3-Rrl}MHh-M-ULk~m8h#d-n*?#Mq4j(%NfyR?thkceOFdQJQQx6au_W? zBbzg;!ax6vsfnKThrj!FOTXW`P4_owQ0MByiF1~y7+|D`-=OuML9;o3T{v+GH1*Ir zX;Uh@oqW4(!M2Ulk0|KC+Xc{~1I4O~TX=ewrJhIt)R%$ zIqRMJblK`>UbO_2g(hw&~-X~|?1tqm9w|p+NyL~@ax&1D) z?*F&{{(dMenRXP53zb0a3~ysc`Il~dZvIc6JdDYeM*&8lrU7vK? zIy2Ys`h||B1p+sD4i$k1GNd}e)X(1$QTm{<ai=5~88ee+5snKn7vhQ`>TX(sq z&+c7zaFw#1p#O96MLHHD|0SdkFI|=v($cb6-%#@HMo!SM<9s$Y!B?*oS7ULW8)ykz zTen@10axkQ1HFBIdjj(}yeM5`Vm)EYb#dtMH+V3IWhR@peziJiSbF=eT??+i+K}I` zt!BLGf{=9oU(HO=daKWjlORjdKw~f&F7iu%M?`gloNgBLWn$CCblbfg#UBqyx3Mj$ z`2Ba)bq~n8sXy5@GFn^Ns@C$w^YiFQZRisdQM`LRKCpQMVkk`NqWeF)Y1bB|@n)um z3dhZ^m3Hr&XA-?)CX&{)8y8^bzXLS`}<1|4;;Mz=*t-!zxnf=y`uh2$~UsL z?G9f4Ow9J(t9RYf=KI`2dj++&vgxkbw6*!|Dfz@C^Q~fru7H$We|Y@f4)-->iQQ@H z%a*4L3Qq^kG#q;t$HQmKH8qMkdav=b=k_gO&o{jAUA8>E@awDP9DKco)q8fQ%Y?75 z%epq9tgLs&yz|;C4tx||&#nJ!=`9}(Tae3Fp2^`^y2Nq))q{7>G5(j3Hn#m;v2V1VgQHLBcXy-n@*W1*v7|n&HCVRCL~n(PU_oz+*(gD zlgsOyps}JW{cjFT)s{be_HzD3rnX~xCZ^wK)va4)xM*#%J-E{e8V3>bIdA**OQFm0 zWqMV;FJDIT^xO0?v-i)EyPR`9sqUY1Pp^F3HpR7TvkxykeECp!-AXfIFaFwV_g~CB zq_pMOvDs`>&b6q3hOJKfp6&Sl2{fOeaZkLf`zzayo3DIN%j#+zI`~G$XZnk` zA!f7c6!&l7QeND?ASk<_DoxI=?%=ZLYRmf+w3p{xoPEb~m6iE-Mey)g_Jr_&&X1kT zFWffIyEY+iUk$f$y57UJ+wBfKJ-z+Gn_b}*7xk~EIlWwX{+IOJb*tP`BbMA;5F{be zbZ!UBi>+2me*JiSzPWkzK3?xByT$+6S#{mw$n@a@uVe!^6r7cRY1}=2sp=c3n_sJV zvEut({|Ardxu!-nf9i6xDSu-U@+wv8(nfXhuA8dTmoB-2llY4pAzRAdwJ%&KthJR* zfBz@8Kg@>>xBS1D+CO30GVz3GXZ~~@-7#nK)XC~KvP)!st=WHZ>p8tGX=%!KHd(%t zLHy zr_DchT-94~rCa)v_4ZoJ>Tg`jmZv{_Ew8la#q=!Wg+OcwS3snuEA37R2+tVJ%l&roycZtur0K8kLgadta0G6V=(l-bpH zbmOC-8hfKptK$y~E&g*LVNX<~YR!TvzcFicQ$tWQ3B1DMb48inFQLhxT}yR+=cMyO z#06WERhJ%O_u7dil7&H&eUK%hnz=AAf6I7D{dyxA(z zzqex929Dl9L+Lz|nG;+8u6#+@!v8Y!8#ep(FPviHlbV*l?u ze9wRu`hpg;{k#$R`h$J5^M&lv6`cJ?v_(Uu^GX)2kqJ$lh{H~CkSA5mK?@5!t7{7( z8yPh3)$O=;Y1c!y@L9blKJem*kX_)I-}&&?8M}XedKSU4%y0R!K@IiJO+}z3A*)40 zD;D2tc)d3FM_q-)yt2Lv*`WPCplyQrJ1+j`;Zr;dD30j}j(QU01V>@Bb_412-f6jm8wE1-68?W)LO;@?>eSJ9ORi+wX2Gd(m zFg>|da54R7L}uB8;~xuuSXn)uy-@K_at>&{;`h4~?O(oZY@hqMO>*aL%LkX=$vtdd zBE*K7eCLCbuZ*^{w=dT`;34u6+5%gyB~Q>=L=8iMBUt+&06xp?B1!cod=DU_3?_=hWV}Pw?B9N>iW~?-Ywc}{?}T+K>nVQ ziH=c~jkWl(8x?=*!b}wHZyw2S0@%>}F*ILjn zy(PbXaAQv@f5A!R255;WXx?e(qDQ=v2}w5J9?gE3*t0bCz|CWFp!IfrReouDHTB_qYVZRg1f9qaHP3X>nbZMWy= zRlIOg)Nl9OGxMxLOY-k-JH+m>6o1MIo_SNk%QN_jg7WhVpjqL5&_Ew(D_*V6T0|prto?4{Yr$IWB_(1ib$r)u(2+p6B@L-bxZ~S${ffQ|)cPKL%E- zb~w77TgVTaRfhIxoI!ciY{~cUKd&EQiAs9hy8d+5qaC-!>SZJX?qCb^g*PW~@kn1< zy7=Oo0|{PIT#to7GrJibU84K^R{#26QgZC)uBxNFMn!zJpn0ASKJb_ks0}DJi+AM- zwl?0ElR#5?_sh#4ubmdQ=l;FEXEQ7wzTPq`OJ7GQE_ilj^mEi?H5Wb zcHivqxzF$?H-~4r*6IsdliyF+cI4ROmw%k_>i=6<1FkCW-H(3X60Wt%$NIv;J2fRo z)VazdedW%dbj}azdW0=;@SX)Ns<<)XUvZ7oi_qND&W8#Yt+}&>*>>98?s-R29_p<= znd7T_%K5OU`H2&jkn<9(z=L&*OXR(?GeD*N(Y7zoPkQz&P35Tme-hlSnOU}gIr652 zhnL{HO|$O2c;PZ<`F1?kUz?D3GplvJx_aT79WFPl=B!=m>RGTNlYQ2S6Ndt_b`{LN z`lS70V8snfjl2mHi(kN}LZmLbzqFfn?EwOH() zS+)Q)SixnJ^jo3qet(Zf5jF!ZLJip5Yx~c{pkwyjSf_jSv(v2qS=!}oV}9%JdpyN$ zTEXn!suxa*%5T}Ojn@#+&YxGW4#m5>weG3kuvz+EcDDKLMz%@8g$CNuJI;FD+;o-8 zIP_}8x*aYPvE}M%pj;i4?QuB9rr_$0rux4AqPu&q{rwwL`t8S>?fmb`_ySg% z{@Al!Tv6{`nstDC4AZ=G`XYIogZ906Z5*Ay6kE25ngyCJS*y5~gY$UjrXri*h?e7K z4@_F!;j=<9Xz zSg&;a;gd%%e~F;>5|VobYr>aYn_%X4{L%K-qXoBe+i$*-`l6<`{%7@#=-UUpHZyB& zW&1yKR@33UXwU==zwKU&vh%Kuj}9-sAS2xVyxY6=wvM>^THSq85&>VZ6+z3-N(Dvl zHTIi7@9^&TbxBzs&W9g=e6?B})ZNIr_~yu$FFHw&E{RFa01rQ8{kr?}C;!5$mO53F zU%rft+51bg$vOFq-1~Qu$FHuQKg)E<+*svh&p&f%75q8!`q1pYuU%K9F5O!qVl!)Q z_N^VD-Md$=9{#dt@7A-m@sCSVMcslgKYaaS&x@VzayR?ttEqveBj{foj9BlnR&g$PXV$LF$6g=59p1PoX~h+(CBJ?= zeBJ0Mp>+2DiVt@`7(^vKS`d_Nke<gi8^{-|}* zrqH(zr4uiL#-i_}?VQ5W{wT$DDGm>1d3c|Cbq^C!_sl-HHGyHgdPj~FWjDgXN}_CnxA5zb96FFW2{*JL~W^+1=sSC-m9w zbaLMH<9FTV%bPp;d|j)b*GWiOfwr-K(#}6%Zy@9RTR!$1M`l(PW7@eh-1c1C;wIh_ zyd>^@>Vkl1@;7mQbMThChk4IIYxUN%u{~I_6|~AK+jJ{OVWE4TgTOp}z1T0;Crv-C z{joA%{@m3ox>mB~Tk9{btnWXZ2wO1T6^%o14qz6 zA!t}7uI?%Cp8x;CK|@Fj9%x8NSzXL|WBk|2H'HXF$0Z#J)2vN5{&<<7*#`ifd= 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 literal 0 HcmV?d00001 -- 2.49.0