summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2024-10-15 17:11:25 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-10-22 15:46:24 +0200
commit9a0ab4fc28ed95d417c3b1bc287b3df8eca60332 (patch)
tree99508c343018cd3aad8030f10741baf8bca65862 /lib
parent3eeac331168300f4f1c4af6b9ca79168c2870ac2 (diff)
downloadlinux-9a0ab4fc28ed95d417c3b1bc287b3df8eca60332.tar.gz
linux-9a0ab4fc28ed95d417c3b1bc287b3df8eca60332.tar.bz2
linux-9a0ab4fc28ed95d417c3b1bc287b3df8eca60332.zip
xfs: restrict when we try to align cow fork delalloc to cowextsz hints
commit 288e1f693f04e66be99f27e7cbe4a45936a66745 upstream. xfs/205 produces the following failure when always_cow is enabled: # --- a/tests/xfs/205.out 2024-02-28 16:20:24.437887970 -0800 # +++ b/tests/xfs/205.out.bad 2024-06-03 21:13:40.584000000 -0700 # @@ -1,4 +1,5 @@ # QA output created by 205 # *** one file # + !!! disk full (expected) # *** one file, a few bytes at a time # *** done This is the result of overly aggressive attempts to align cow fork delalloc reservations to the CoW extent size hint. Looking at the trace data, we're trying to append a single fsblock to the "fred" file. Trying to create a speculative post-eof reservation fails because there's not enough space. We then set @prealloc_blocks to zero and try again, but the cowextsz alignment code triggers, which expands our request for a 1-fsblock reservation into a 39-block reservation. There's not enough space for that, so the whole write fails with ENOSPC even though there's sufficient space in the filesystem to allocate the single block that we need to land the write. There are two things wrong here -- first, we shouldn't be attempting speculative preallocations beyond what was requested when we're low on space. Second, if we've already computed a posteof preallocation, we shouldn't bother trying to align that to the cowextsize hint. Fix both of these problems by adding a flag that only enables the expansion of the delalloc reservation to the cowextsize if we're doing a non-extending write, and only if we're not doing an ENOSPC retry. This requires us to move the ENOSPC retry logic to xfs_bmapi_reserve_delalloc. I probably should have caught this six years ago when 6ca30729c206d was being reviewed, but oh well. Update the comments to reflect what the code does now. Fixes: 6ca30729c206d ("xfs: bmap code cleanup") Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Chandan Babu R <chandanbabu@kernel.org> Signed-off-by: Catherine Hoang <catherine.hoang@oracle.com> Acked-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions
x-Xa@ǔ御J'qqA*X\:5pWG}Joת\?Lev4Oju_QCTgZ8:V_ϑc,Fl2ozLP`k1p bYk!*CS1\^+Lt`pGbe2IL u>PPpMKO3]ROn&9(΃!YgͮK NBat Up Zv&!!D#EP4Z!{>َ õ]չ˿Esֿݧ ͥZ0!szmX~㟟o9:ּ4C`hGWo͜GٌCNI3{L>xY9 J]PmFE !V50dz=Atٶ̼xM0l)ը5p ^d]d$xm^#>k( ;%ϿEZ]rWdUUjfp}*Agdٮee;- ^/m%PAύי́1d`i )*%YMp=d%`~.ޅMˉ #]@Gf2tims4Yt '`v-ޘ&$4r/J Q"JZ(icUKB52G`*!(_HJfɮ0IP6 J u~ },uzoyBvꀈ)"!ʨzZjSIÀLUN0MJO{2yA- ' |6#&ko ;xr*b4VN6{wm|%;͆ܝ#W6m%)'!Q+Q{da7N)Y+J=X+eVg$w}L#ICr1]'tGŴ8XGI9] q/6NN~pBi+pl `stѪqv'[f0uFNTjoKB^ԥvBks˜t r9bBW,}!"RNo{-Yb8SIwɮQc}$i8%^WrlvOU )'*w_d'[*+di9>usTJB:VA/ Xb2jV>&╹imn7=׼?j5>17q6b"fb蹏=qCگ6DvN_ a)O0 # CJ39a_ulS^DBe釨Ԅ@c`'oX[UӅoq;Hoһ߽ 4fı ^ -I+ތi,ʹ)+D]HD u5>>78aZftu"t8"a~0P{GcK.֌ 0g52\ڰ}=ʴL l}=ՇP=]Y\ffn*c b_[<7=GHq<ݼ1։r;R X1[sNq>OdaI:8 Cҽuݍa=F[Da@ҢNu̱ZuSX HUso۞zupmW=\1tug{VoIEj~@:z]Daf׀gȈǹ[w.jGf:E!gz96\ρ]&?Tv/?~WU(߷ݢuO( JP_{<4L`veU]Ӯ|d[ۿΫ=!.ge6yzsקFq^2o8e5]}{n2+|Wu^̶^ʨҼ 年2c{K81v{pk[ &&]$cCl&:v5K⹭'C\|Œ#ܖC*=Ofq[z:7QY{4*[ Cyz(ѕE0&+ +mY :}|=w~0l;5Ghh G x ݓ/ P|w6ʋ9߱f,?/ʗsz:?мW iҫߗ!X_}ldMmv{=%|.UԲLߊb7=iOu+{dk -ư8QqXW6^p9[ [m_[;YIdҟnx|~ok\mVlS=]Sϻj'[*T.f ogZ.U{Xp9CmXM|VrѬ]5Ż\!tk,-Gkw{u-nK(]/qV 9MqdЁ?Ipu1h?D4adci7@ 7Cڕ̵(I{ L$]ҘZ-D7@?o^_3 e{s̒OF(u|:9s/E>,T0H]u$/ O=g54, ћN':g\>EĽ}- HZrO*wSQ[/ g2{tb UBVu )=\E9&y;>4nX;^" -8o٘ʑ"Ccm㷜I$I$lrM vZnx[ 2¨H'I(?ߧeJ>GT|_?QC_ϱ:?lͅefB#R/uY`X~B"! LΌI L$\1gȘ.">#p`Q?([, "&L:_pWD}[<4}jwoOwO~OOEKE'llP?j\VFN[ἧgo˸3P`?`gߏ2g8>J?JYX (/!'sxl^ \vCԎ^BX}"}(LIS;$PͰH|ХV>:m Aͪ[J=` h(z0|К}b~U>$:6lH;W7ۍP vJQb*QـŸ}ʘ oUL;hcѿw7lw%'U:q -D nt.+i{]z"kY(z$>.duӐ:/K'`-Ƭ "S0v[! h(5f^~4 Hde2Enxl! lςl4xkDqP@Y6^\{d37=k)^A#Q~F_ch7=S0C C@dv$_](֨9>[1 W]gDoOZ󫫿koe^Yii?$̷/_x~V۲/!FȌ%ȓq|;X<%%#f%[uK5v5Fھ]r1Q!‚%\H1Ud;?;OX`,|(&CeYX8+cM03$d'/omNk1܎~gnQIK7< ?\$KBa]_]Ү80ٽV]y;ѕ6L| K+ m_WnWԹv:$h lCt%*yY8/aZ )_{{FP Daz=ё|3Vw k`欀"'WQCHcbm0,\9}\d#O۵}GƧs@#M'nr:":rlowIem1a6 8/2Ȟ%Pxʴ +o~\.? nYn_~uEŷXmz H*'XF?הc,Jr6:yf\ -u'gaëxKRž]eetnZ~;k*g8nu 6k 7ot8>}b`'vvKA{t s yN ;Μ;M, 1V&C2^Oo`8 >iU)^qSjEafu=ty#\aql$:L@r<˯Af aR?awRCEHA,45,,6 kmpn&d$ǰ0F 4] .tט[v%u뾨9('$ACvIn!v%e#>=Gmcek#ntۭ??gW8~X7!kKn;:a$fF9ŬEUs|m#PZW0E~o_=\ti'bf%dCsfAK:0/o85;Qim wXfH6v E|4I}+ cgf6Nm\lk;zs_1=sm% ]L쯚Ja:[+woc;Nrk^>n qZ/uQcc:%5X^7w(b%E[zz}U}y2V˝mÝzD<4zFcs.Py$;Z/٫T1 OGYKw.[G/6(e14AO? sBpwE Tu=}akQ>njݞ/>;ϧ}U8tyw;tE7m{ޗgEԾgTiذu;نh5 X3ۥd5]ڵI5/WN!1|{y0AeajՇIt3f_ t! R&uۈ ygCo|Y@^0GWfzX\ҋ;>g3k,˳>;D6j 5I:zm3QPy4݋w&T)Kt>G@MA&)`߁vXus(^M&sixhfb.c"0y9m7|1Tu :.ݝ~.az&adypʁQPqQ{ZZuA:pa(fCcڛ0w:] ccà5=Όmn"GÓ 0=%v-ʣ8ֳ{zWgt!fȰzNl H_/G’Aw? ‰L;&}튎,qq ߭? ?jfU4%X UVL~y;=6mu %CO?xRۅqO[~j?Bje_cKO,G|3\?yǽߏ7۶~^hE^[HKA9Y9atP/獵SA{A |ZCuF^>ޫiD!)9Y;xQ.;r㳎 x|ן7\?6ǚIwѸ8ٔA}/<^">֡6*2 B6TO' ?ݧXQ,)Hc|(F񿩃߂2"ubT2P8V&*B#4[op!Bp>w֍W10Rn)RBU߹b] -|Q1 1O1EtBA#?os=>oz[ {B(XcT@icx:yG;nw6_=Cko`>kA^ { ~2Wy78lc-2_2(vM fvHwpR\m@8:M%Bӗ; /W,u Ci(xL" R;-;P-C\>IGFL ͫh[ -`0em Rq0;r3i÷qTpgkȥ! _?F۳Gooun G)!"?>k;+@ *Kk$A0 m(3|Y=0"4QQ JB ]xOTR=1+0΀etrq:5ǍUO5!snA/rn[fM3̂h1رbq)6:s'٪tb-cбdroU@q C:[P֔+^8 .أ!QuN-c7_+r\܏(75[rn~2:t? 3Z% WcvJk|[FÃ'nz *:e%ͷ^=]=y_x(:q#(X. !AS(AlL=,莻 8T 1Aq/%xÄOlE'o@-=WFs|": ۣHbJ"9{50[l➼@D .hwClgMa!"@Zw!u6zgPŘX>R'&=czy㍔'6RM]>\q]c.d|>sט(=nkNŜ,G֔Cʋ!/stF3g?pίtӡYN )HEx-0: j(N^~]y&>p李Bf&Sj@wpӂ^KڣħR/D{yZ=Èӹw =jhLU o5֥3"]yTxKo7i즅Ҿ_KB;.}YgPŬ|Skiь9qtpqpϹcT>؃vsicb1o7Lꍤ;F:>;mS35\GQ)=?==~b޿D@r8>w8|vy_uycy64TgY9zwD:X}F1g$-~1SnvPuG7<ȝD~ϲTg?a<2<]ÀT|}IA^ޛ _9[czy +m_'^Q' O'_X^g>|9jt֎țhҾ0 $Ë&|ycUc 1]$.arC%STVgؒ'`H;S7\vп-~h{(1\r.t7kHn[`(@aR%:9K/ܿ?<?$( ;i>mKW9{|/4tARLuQC̗uVIF) EI^!MtͥuFX+G6:Oĉ鄤$޷tWә+%mޫue㘳 U/@۴dD870)SrI?oޚĒI4C^^/{ȠK4iGc 3hQmaK_8;ͳo%oU(@_ic/~?\?>ZO7.l i{l>AƩB2JL=Vov!egHeB$p; obc&;4Kh'`1H~zw RG_ #C> uo[$w-ޡs6PZ)>e9|Uzm/OAK,ᯛ^mMw kձ;ۭy<9~gd#! E綱p QK]GCզJW׊TwfQwXhGBNAb%WseD 5wD+L.$#聆|mP\[\zwP!sx;k]%3}`8}u ƟxA䒽(G6Jn |U~-CU\(gjr9 <F.=_z=3@?Mz>Ag5@j6TCfbo,Mϧ&9֨b|-np^mڨ%/a e$HÞA:AsYN=xdnS=FR45fӳэô8q<4dn͑8w{b}lx/d SS/굝lGc}H_jUK]L\ -"]g8| FwQGF]vVUpew74sb=&G(9]/\'QBD tԵ:+SD[ lـY@D !3}p'f 8+/S}5hU oR b3eE=dS ĩ-/xHGlj- BLm? PNl ؎CcПFaJ l^g3_6"2)_zBTA!4gQ3>K=3rA_c{_,5>8(&B:Xpkϧpw9$pd"aם%l:-` ꨥAX!NYi\tP6 pY>Jt"3[ P"m+g$̸`/b40CBG1}1ZKCr?ﹿ;pc< ꉌP^ Fy ">`JP8o>AtLv{U(&SHqp `3#>=19 /)R a1J % zRʢV do3 w%X&?JhHD]T*gQHwsͅ[x@s#>ށcBs}pr [3h k~hC I^7?,3#\z4#na}T;ӂ2\,7o npv4އ|>5nx@nU[lvݶg1({54(J Ru".|ҹxF0.Cr7ȏʹ=v>քugk ϛ9ctսZ~Cđ! 1>0w>"e~s6oF{rQK{OTPm݂KH.|mLs_oI g5>=×Cv vppwO_^h\OଈL=@`i 5 qғs\6^Y4e0c:>=\׏ ֖nêBKN @ӟo1[i#oCsft8 ۇ&Ij= ?RȠW(.ԾAj1D=Cvzz|:[(,5kHo{|U%; $†XE17!Hf̪F9@Smr Oti=6*~GHHIQotVlMFA?uш]QS/x5RCAF+1'0U Tm(3"Qdy uh6pV'x4Ń! E'VP\z8#ja :>.qG4@|d (u̩EQ+vcKbӁKgtj TDZ!otE)z7#>Gm*aƂX~4 85+p8 #!ejV>_[+d4R>ޭnҿfy1>̎Ǽ윸U㵧+R צ}Utdcnw;"2~C0@qۣ";k=Ues_N; lz|YnWü|mxo8H|::u8~w}H6ޞip'7c~M'aa#L6}Z!Tb|@xe`}?{ ]˳lΣ*yC>T w]M}e۫) Ga·9iqe$s-x_Z;$2"Y96nYȕK7'׽㵥/lb&F;kWnXMDktk#ri8KfvSFi*k]$(lEb,"/: tb7f9=:X7#HTԴ'Ɲ㩖#Y&y8sz<+Kc:p.B0CWM=DgkG( 6iè1+6 C_>͏*M?}L"{ 7hDn+s@/ޗ's*cjH](0|4>Ms?xXk-Bl0]ࢪά*߅DJ'aؕX]@miۧ%>#_H>}t߄m҉2jVNp2I$hx;D.fe^~ ťKw"bNsY'5uj=-I6ev'gYa#f5ope\hVvFCߟ/N:ZQACv#2d`jt( Q`֤)@1+('A]hm[xYq% x`wW8N.x9^Ɯ #}X1ͭɾ<<~3YsDݼLI𡅪"Ql\B !hAᫍíwYG`MV8F#(hVе0w]^Tycs>4N'l*Ru&Jnr#9tŌ񝵣9Yc&25+ڙӲ/MҢpA/}(pzEמBnRw,<$seKk:I|EFw>ɛÖ3udbTa~8p@#/F:fm=3Lw90uH.!Fh tgnLX0*tm(AOW~=~_ߗلE0_Ss龿疮dO ?|ٵϾݶ/~f-Ǣpk v}c8҃cjvp[7z+A@QG(Au<_D\4Tա@CBJ$cj4C}-AIf߶۞k hK@1*}yM4MGówuї<t ;b a*nEYo,B%6*s 5OB[Hgδe~@g%K91 v0[LU~!:zfRzmLcEJ,c)!-a4t@> .PҞkN.OƸo;9䀖}rȹsK>z9{' +}^deyk{෾|]ush7<~9&e%!|La[EJAP:I((H}fFJꂇ2>l?E.E dʏ96|_uX90V ФYbJVCt*"$:'In82_}q :^..Ң(2 dPs(6/ XG-#]!*O "keFt.M=Ppp ^P^28 Ϥs1N9Ӿ忶tqX-k0`1r]lKWF&H"Gu u\D 5ZʜeTg 8zq5q39 P9mBlpI~ AYo6ERaS:+|S.5l{d bpQ'%au<&lF-|5/fX\}#OHir|&j*[-{S`JD&06lG7K¨7! lYeçCHݯ9ڭq H1 D :lZwZ KD=`H5FYDWZ287*JEO. )e 2ESe1DAHAO|qut?j;PsqO|^rPi \/B=+([*EF`YAqGsPon%xgNV_EHazˏ=[ݴ FM=ov 6 ϿUq|VnK!VKݚ7ē0W/+}$tvvX I0UnVaj-pq#d@{v%k|1f͑ 0-*˦3tnmM`#oQr^zc9d+r B%J0 w;O˦ISpvm> ZP9qW9`0߻{9s *`c(r&(:AzAݸAΓ²zbP;&R}x7RjIa5| 攓'lU #S5Έr E杓\t޿1LsuhX\2+h`kPM Qi"7'5ΗPtl=mx(Fb[A@ZDbXGڱU1MyMڊE<'g~jΠ<wsM~;9nײvX)1 "Ghk*XY-F&*Vd}kJDe'mnD=~Gf{͠j:4y eb,g)H fYfTZg'uT28]>a]~iwyC19R[rtCg@8q3j/S@9۰ }J(ݾ#Xa[8-}^Gu0/Tk HT GŘ_ iFGϙٿqҡQ܂Bi9sC 3 +]eązkOEg{گ͎doU*7+SP ,p r50gQvX0U-~ T BH%IL.E'qD2S1qC\WܱҰ?ݏT!.Y1ߪT?3 _{yUӒ Xx ]-mmڀOh-[%erASh *\c%oX#K(-ecuҘ:G"Oqi;?ޯKq2LLa)SIW"w^s f:+mM؏,K*PE&V!2wXi|51D8X^D5E"gݪA`{kfy fNi#y'^%"1SF!< 7O3_僁1ӇfPJiXF1!B9HHjH@D>m#Th1/̳,bDƒX V|.wwoFQQ^Y A vQ 5y,Z 5=yyB]!ܨ:-{&؇ ׇ9agqS}o`{u fՄJC%%"84g lboP/I{ -l4H paĝOMQI@ 4hMToٹ0.r!*=I5^+8F6U]9D/#p}E`ws.Ca}x~ڗIdtvPeW͗&[P*>%r H((?zkL,Hs:TPYg%fc~ˠ矣m;g|aS%ұ]~z{굪﫞W=Ud?KFM[^ˠ qC6tt#9-~n:koIp9Eq9,Z"n ?Rmez~m ==d Pt^9ЧsA6},T^hY?E@jteتh#u-β\/N<7f!yZ}ZL"i+- W-:;IP,d$56&dk9aS&nr(hO7V k @Cv%IFpѫ /f)I<# 8a2]|8 ϚVuA#?] B Q]2-(3@x lr2-um?a]\1ldz3텂]mƘӷ-LocyDDJ Y=3Gt.ذ{mb&Ea'D_LgN٢kwDe}$t61/7EBԣ(lϛmN _nspΑvZ>.dJ%1pjjG5s+AUGwK ce1ȭ"\|:@'4yn3c{|oAǛˎf[c?uTXv El~UqDZ`*}dgd5jj!؏DY$<#Tv#nkxƺ/ Ots ɸ>K-!`cR //M| :DN>}by miI,?||7ozV Z| 59T KV>9Ӗ=~ dgcq,"#%,1pPc 2 >jrK4mTsMKX}bz`%62" v]1Y7c4qY.y/q73qqp'`A!pzL F,n3&ZGOa^h \vIhP2a`ඟ'kH94KL"1kzȞUz|eu0"Cݤ8MS(F#ܕ]UG`M 7)̞>Ocd*Rf\DRYG ;,s81k夑G2F8`6PZ/[[!oj'MkZz:M>8"tN1~6Ak5Q! nuTXgr4A}չu۫K7vJ`sLys5]ۋ¾`HwJ]S/20+E*SRBSSH*.ô8Q9+BIzMr]N܌4}=K(,v\OLƚ>c,M!bMg *܃VϠQku_#n/fTZ}~Wmʪs;*ܫƶ~^i'hd>[:~%>!ܶd[|A_ec'N7]dL0+ U nUXD"3Q3wMo Sh[>>H-׆z-_A[);%x`ȉRY#<2F6CޖfVԾ0AYhļӉ2I化%WmpL9Ux'ͪ %ڲ@Q zetQem]+%[E2XW3H[Šl]IHC  Bi\{0qDvfB=1Xe nhnٿǼtFs3t >GC+|8Z"hPUD8,uN] s(Cb?=F2(/+JHv8vb.aESTbċ<^Kw3T/=*%oL[$"SH}{qcEzr%q=<=yol"uuQN$tZіk I6,;!}u5Jds." UIYQ]AxYhH16NٯfB&VeG;uqwwR:;F"q 42y!rxs+2DPt)Թ%nfR.VHk$F { $O*,㋑VPf2*unN*9 {ݔU8^tl ~FHQ®T( v>arh 7Ag2? q܈ Nɗ 'jdvwD  āyz! B3xV9ͬ(zR#*lş cC!:#7^ 'goo]n'r㳳̫Ӽ=J.n>] |j "kz2hXA ]J,V/6I񱄤dQ:H7 it_1xa&f $LL҉nxp1"ǂCujsdcc?Ƿz(Xݥۊ;@%&Hvz^Z?>ՍKmdhҶ5:}ȫ"<`N)i`S=jQv˘0˾!Ԅ`lX.nZ&T[R L4l<ᙆO^&!޳ۿ^ Gk^P!(H=Ie=;A}LX;d)FSIHdE#i0F kEpj/߽◭g[9 ߫;ʞWXA"_>~BxGkIԃn͜KD=TI7\ ]jM#u2RfCj!zZ/mA]t *)s"(HN{VG䀠BPÊdĦuJ nDUYG\Pg[iIwljFoE'on}?鳤@~E<{2hj]41~k)Vw9/}68%T}'XIJ h>2vE.#Q]:,<҅hZ̞eZ|Zp!#UɄDϡ@^aǾ :޿WZ  A<\Ug +dKž>,* 6Ѣ~#v 0 9Yg%~wKqwUGh%qBS  /b$'R;էijÆyc'g;HưvUtDTFYWrt͈U 񛷸Nb}"tU[*G-Fb<\T&&"]DR͸9G"*ک[gUG a XQ1חKl-8buA.ro>pЄF@Bǁ%wdî:& =l{}aEBKe{]r9T * :透m (Ё".gˑ5yηwb\ iC'_^1C7XfzEW!3Uշ}tb`kJh"c`x.$l^]B'k"ϗ7'~T+m#~]Xwӭ?8;Y sX,xcn4ߜqJ1M*Z8m7~9s\\{go K&$ 1R=Ws9? xj#^K=&5 )MW,6ָ5BεM23E=*%/=JN^Ŵ 9UɑLE]sT›"P ^yN v[F'@?F.Eo-.9T< TGvĈb*\ Lrp]r, ex'DDytcCe5# ANNdIp<}e^g lCMrBsbt2B N[ySN ( nej]b6Q׏>B./xsHC"xh4AiDk# <Px?':&I5EG/8cou8J5!l`36SLt< A]4nߨ 'uƇ6~WSS@,!VȈg16*ު 7gM]Z5T #yӀDo HXqfZa0'q3Ȼ|H\g,_.Hcc'v7R x / 1r) i`%vQgQ} 1`/'uϟw",QWW˭f#|]ٚw=_ϭ-ә[ unO@DE SSB*jpv _WJ8&bSmO fwlK/]g֟ ܖo0|T[=oep($C=vp7a0?.ϗCg50fA,[i!,~uێ7'GTNvV1.ٚ@퇀3x#ZVridkAw,쏠G``i40AT% f-9s)ҁi<9OyQw@Vq[O2=64n0o'eBL‚5!"nMsou]A(ҟpHF{Xo5KvOuguNJ)U_u^*,ܕ(3B:7rWl ScCXfaIHK"Sk vBVRX?']g~pPA!xYJVOFYu<Œ؅ˏ-Wk#_4B5ь&S%|FRz5]z7`@GG vtV =u:aN'5@gVݲJ|LHH %@y򈋓s+]/4SV6im´Ɔ85ti/fsnp4a>Nzj5%7~txϯ q*sX YzxCwxqHgżĸ=U&! L(C{B)sm o-D!VӁ5^8wJE.YoWS^L2(c]+WMP RHi(hKU)͛J Z\p)*=j A,Fd]y&ikWTgSւ~–" So:Q *N)i6U:N1"o&*qT\So~r\i}M ,@Pۇ)чa8Z#䓟iv )DR|kfY$W3|<=mnmlJw%L@HgMHWc ^^Fp<:"5>@;LEdr!3"q @h<.IϘ0K߽:Y'Hzi4T84e*Ne(A>ʯo{[l<Δ!IĜe7I ?_h=̥8}{E']sH|")je<9${O@F13Qzim5jZ8#WNs 9C/N7tk,%w1kZ9 ҩ\vsuXzfSyfc ܴF~}5:6n"l-b\§^MB~7fb{A bLX0f yThLؾC*RFĺHE#?$|+^ux]\^XDu/.>ȋuy)8?vcg#I~td/dַR}[tqG&fk]aX|+27 )ݦpώ7,>0 #¸H~,nIrou+}P8ͳHoEoM` ;yZabc̀[ٮ8EuCa6 وBɰ2]lR/R"W5[R ektKj٭zQʜNx6w.ᮂ98Vl 胾h2To&- ]h1Z_ Yڎ!ҕIA1LaZ7\JXEw/:17 嗶P zXQEb*-nڨ ;v=݂?ƪrb`Bl"DlrxXPr˂Ə|7-B_Qe] n(?׍x*74U*k1\z!W%ݡ?~֩TD M*pe9d9 > 쐷MNiV=# "\Fu(:MSda3׽x ڲʟ ,΃X W si]W&>t?&+gzF#tq"I] (.4ܜMfƺAC缈Ӑd>s [Z0|NR +yPzmt]}JwIu}ҫUɬc\W4tjc2~[[lre-U[+/ӱ@Q()C rell&6hH 9ѴU-ځC?b~M9졃候zU8LA0eݪ׹c6Z#c[רx_Jֲ|vs9)Dгjjߖ ~e,w jTsB/!Nia躾pbD06>ϫ|~9}E඗Õ0kwLAVFdӎM HS;i-X9Agg忺Iz$RSHNvߘYw Xt;5yZ1}nQ5Uĩ jPЋd>bH~E`[ "L>&xK~H T(sZ @@!n. ώֈ5{W<526Ň.di^r%yGPGhtm_G!456iRՊ$^ Hþ?1U'_dd&OKǥ=R(˂ (}, bMkmBM8oQ 6+\)Qb0X0+3qT' U;]y1#U-3rq;E3v{%9a) 5Awa}󳝱r4JO$&װ}O4fT?ݍk$@7PLvZXlhp8=x2<6c)9.#4!q"zoQE Z&>/cO[S柌ZtG'<.y6^E` Y}v`@m翙K|SkD89wDyx(`w.QGFeTc5QN?(k߮،-c͈Bkwi3$ t~~P^ȥ5^S9 kT3 3 @5_Axi{m}]Nn:H;g z1_/F|#:;ǻ5$r|, *#%pp-4T!K/M<)~N8Je(Q'! o=6pakߎ.cC Ԁp$Hݓ2z1Dc$b WƏ/GM)(oa~}<͌\Oq!pbD~ߌ %8<۸+Z Ӄ^R210rQie"ޘu`/bcxhq0MF=a⁈Ntܽڵg Q򂞀Gb4د<7(/QqV j^Ybgľ}q?Qqn8+@ƣYa-fv; +Ѩe9>}'މ0,:jNtہ[d@0RAj8y=j{Pm۷e#y,0Y`+W~}K~NTo@} K$qQ.aeV">\p^] |V $C⫓K9GۅW0BdFy0a(hVk-gECp D{7$;c^Rܤ Cx?I%$Z?V_yļOm}n撱僂U.?'i|3/ZYGE]HffS rWs҆~/$=^'+* jZߩu& =mT{Ewk x6jGSy HdkC}*%(cF!\$>=7_Ckڤ?& St xC`ByP7fcTgR:v<iP&$ O;v#5>_Q3L/D[߾ 3;_p&لeXQ%0,1NqƹVكخwVɛ- S8w$G@.q *ׯSۋ#JWSJ-bn>Z%5a_`4pKb/[iqA}MY~  Ox9', XQ`AD#D&]IW8F |s"&٭g%1>^$zzL9^>*|& -_JdhwT:3F}χ|rD#I?v^ 8M$e4BmhF"9>GK0t T5Ƞq#/]%sGA&@;ݑؔ1x9ŜvNkYn$՘;(B]ui.̷7( [-lEzZxӠW܎S` !xНP.yntb㫭5Y{Ϫ<"Xi{Q(sV{1u,,^w\p[zC5P-LQ1 f(o I%Ѩ= ()#,0)V*3aEu tIX{kDvt?ň(9lHPs=38 R2o7W9k_|}?@&h@&%ItWOk6Y<4̠uTaeծ4% \0X Hńea> !qy?jX9 @Q"8ϤB]MHn-RӾLpZeR@t9K/)A=nXٲUhˁbcf`U$w[ѷu"q: 2hy:6F2̸L1jݰٲ5raQk}ɳΊCkʽiumpzdr"ij|=6{0t]Ѳb_EM0f`Rn՘8;,_OGrlc$?@| M V֯2?|dԷ)2i&cia8VD8Heg>>~vZv0I :Si *F,gX}lEp0*JIY=ޙtL[cRe^"}U|O٭N&qF ,Ӳ wwKnQ|&:'1}QFӸ֔5XmZ3M(/wP+9oǮfy~<Ǎ+?RCbyc3V`cC9/w냿8% ~]R@]E"ʴqTPtge.Hc,[&:jU[;mA)QcDcXQ]ǾyxkMi1;霮hI^E%u,w2Ou)C/BLﳲ4duXHG1ǃ{ubcƞɺ& V_ Y7xW 6~HK&qʄ1aӝE2vNVg\n֍o˙ܑBdFP(js2;*q/y{=s#dXėzgX;x4#f6pcC߶4PqXw)atTKRd:PYJ]f4hi "ABm Iʎ}Wr`ՇXk}sFƠ4Y[ 4vAOKzw`)#kP%"M1nPéoNq3i7*jfDaܚM>hɷ:Gb88m 6W e[WyݶExcMl}kzN!h;v:^2߂y6=lD-3vc)*أ3:|)Yr)?D >!Tb}Y2ΘfB6NEی(=$BCnybG2h.p\o(l.X@iv:UZI Pji}%ԔC ø".-$~8):o1tW1*YVxra'2Fsy1"+;贴:Vsvٸj14F:@R? gc[~,p36245ov5Q&8?D#*>xZӊ"9*J. UmvN H+?#MX? χ̶w]N 2Ɨ}8*pS!dSazr]jJbS=G0&a3PT7};H/%pUGB((dϺE-A0";ipj#z-H(+=.W(8X>Yl/a(pUo剂+T4~u?ۅiA o6[H7*#\ SWzoҜZy G<'VlfDdf&hcSA+̬%xB$~clTt'ÇxQcğRg= y5J2Oo:ywmh)(SZ.h7H>5}J 0JPR$o+}3D(*dHkG!yGT:P?LuV͑]-K;- 3^R X?(1e")J1H؊({f*{U)Ӷmލg$y9#aEkKm`dC SLT v e@?#m YXKYθ0DHe sQBq70y]e(6΅y8ky]fزNϽz6˱8)W S6m#"agrXvWui)G1J]pu9Z.,)>lS0lQ9A _ Ki/nty9DӋ a8񻏉g%VI H}ѱ˜y'_JwO^G vs.p#Ж~u41<9xgsۉ{o"ӝ'ˤ#D+I$}O?ع89b7>A|/K]nO6M]Q4oO";l7r&둵(>u*uJ3b"&!,{9dEe `5:R /A׿Yc;% ,lC|"8xĶT{F  hT2Oe*=KGd+󤷯~1ߟ<8& D!֘=)9&kZřs'!78l2?EcUng: PBAE%Tt*=fǓ 8Xk7~ G<'9?FRozU>?umش)aZ|lv-\IibKBI2ނA?!c]ibcA={llXq ']x.p>ߵbM_ f36~++9x{w6ZMhz7CN;vHqNᗆf 1$9ikBI|tMVx_MjH"1'k|kySw *|O[=&p:44e g0E4b}ķ ]vs_ƣ>9,׍B ?H7!1=~XJB+}nVIվrqu>NCNHdWvQx.s9iA Pw뮡ڽV(L՗0spK!T<-^"xLs/il^[j%W{~hG6b*zU.]"0DA%[Q5^_O5>z/~BXNj߆ئeg/?3B/d=w t9xK0DWvQn…~YC,*H/dj ~n>s~ﯖ4/q1 $<*!A0m%#DHPCNAA3@P% @E/OXC#HOA[$hUJ.bA]llcUOO-PM2~VWDv׷=%gg>h|QjjJГn̢/@NN\__F_׃x2zȻe{PI62)l2^F`·ޫj7X,HqJ*@)9/r1oW'\%-Xf{K͍.fpf#ؗ%_<#.]ӬTTwwhNAsLa.\k)!5iI֡*r"rFJ:#p)(w W<ˆbf_0rnF!ޱݭb^S^5xJn&?I޴و>gV_z:bCy>nuFn_$4@?A eSB>(zH}"DP(H̨0G0 04΅ -SJLK@'@"/<)ܡ^_a7g A A7D(R4oҾV:lo?եDxν0LG`>4pe]ژ&:\ lm5 jpJd|g3}B@[QR400><_s1?'F[_`ÄsܱY `j흾d}Ϯ% o?Oau?3K;) 'hݝ!QW1SrE06DZ?"H&g|0h,?_ƗmI`0Pk-XeP:uh&h+[F :ߧ kþ\>aldӲ4]tV }6uy5/_8/Be};.} d.I57_dHx.s!UwKly_p$xÇ+p7 a1_+_*K6.y;0~1G`BgWqN0s8KVv,B߄e/p/S<-ϤK`y!('o U F|Emd>owSwlկ6ݧ9[G_赏Na+vn/Ӳ(=0?8U!!}G&J'G N>)"d??/~q6)P@XD/d }Y_YA"9wBTK%n13hPsΞALYb2~.3~/쐍+h@?U_}97z5j~]*/ b17\.Uq>K\N$ÅŅWu\CѢsu#2:J&zD"!8BW:(~KMZŖL@(,vAymqhߛct~Va0H[)7ryj0{2iyw XBø`8ZmȠ %jc D b/\6Úl}068)իngk[G]~{B|^eWx-ǻo2;FRq\'\é&KlnYrpQe/x^ =~{Sv֝5Ä]|xSh'=W[ {K:tjx zϡL<_W(+m^:Rs԰zP[=óu8(h޹T|_9'kuw~N(;PI_ ؽr߮אynylOEtuV^=08mknW;"35aݲ»Iйe9_Ɍ|Ra9K"KTu7j"%-[f ?0m{١ɬep@,b6T!GV=Z~?۝fs!T.}zbӇ^'ߕH|]װ0DIlX}RQ"5!D"@A/6@.J]Хib1S<ǹQi(YFhnԯqkٽt.FP!pkL7fkPP4#3Yp617&%:>0:9"5Uܜ/Sm?V);ܵ98|f: JJWr>X̫@moQYX4IX8;>HH\)çu.s+\|oY W$V4ʈLzlcn>n6q-c"Q5gU_;]5}X~_구J̍)b5ǽW%ا&FIyѶGZT9⮶iM)A&InB&4V;wIע%w/cN[ eDxߩ7o= )6Mj fGnt|Zrj:tk6:C)mSM?SO?VPC nK5K۟4lI593ѥUg7EL0l#d7,Ċ:{,rkX.N[}CjVgb @ qALThA ;r~HfVX"(CEU#fdoXc7m0fZѓ^MM8LJҧ#]N8NdYѶ&n;w-VsoV[bTAo?% 1 .PuHlyzm69צPgrz\T,d,Fz/IMvCuM7SNsj=41ZT()HKH:5Vp?>;sP5rW倿pYU{r>qNd*EIFǗ8U +Q~ V֒/up~Ʌ9kw: MYMX;aD*ǢP0@篟Ȓz':tY,5OU[~o'"L9,Tyyl5\:vAӝ&Om'黬ҫ ]EWܵg@}%^y{>躐J9US75*]E2ԣ skhUX$Y-1mF ϓZ| 09V.X+2~BUYέW)= ڝbȲqE/d2ZOEn)ÒLrhRmcS 6,k|FD8p+KJjF٫g;c=|Vfk=gxRf3ԥƮo~1Oفs$2EUy2ΐ?E(ywtLEk{t^q" 4aDHZV7 ?C6GXKFY62 u߃GcN_Vdy"%g~S.g*1jW^-RpPЎ(dU e(l8E;f:f/gp=,fɳ|O0/*=, I:Lc USNJgZ+)dL ݍᳫ ʛ BRaCR9]t7`E5XTU$:gREV$dUG:VP稶~u| %PmoR)ե\4N;m ŎG\9AV$@"a5 ޸,IID⾅b7zj6. =Q81YPosnmmrz%+6*uƽURk78Pp׍[4K}JU󶧧 מ6=N '&ϾQ>xVy>ō/1B?~~/}a˩}*o~ rDUұHɽ3ю ʹ66 Vqٯ3yƯBOx؈S6}znNEpՁ?+N5~P[) ה[9W3-ٗ6Rhbh1PN~h̞SZr!I>57 0\ׅz[HH'3ňJw\`k沗[:Lxd n "t}ħ2QDpG2fZ:uP`b@\}|搻$5&}.` OgYw$zF%ѿְ!B_o| /C7MD<(dLe0wN{2y|𿮶 -P Yb;UmELV!3{oz0!ǐ@;gB'Wj&ǀ\,­϶~zRra:rKyU _ll5xrL)үEPO.@ϨY hUs)Fx6 MAC^Ӂ/{YuQZ+_m#ԼvYd{,[s}7ȑgBj%&_nlRvyɟ}?m򨤁9g6J?bǃJb֌XoPNĨًI!VG2  x t@e4Qz|xh*%h-s>Jm8cNaKq`Tqyasw)mz A~uy" geWPW'JEOIc $A~^0AoU>9LwCp$uG~u\$yG}ցA2 (u8R*'\9#JI @T`ߊRӅ7?\P0W"e.+fnÂ8 Po"5(FFH5PtoV Nic;;3p` R-`C1jŠ́rXc"贳hp#XE(Mk{$%5BBLg5JZu گM  (}|ɠmdzG~H:j40i7^ NtOD9G DC W,Wa2OBQ_ON}_CŖ>꽜}-~=]O]OB"_|~|G5[p~q9OtQX#?rAR7Y^IgI@E(upW{3@Qe .Ծt4{\=9 {bg-۞ rX|IchidqXkyKanJ0li"r%6<ƢO?S7dhc9%)05vZ?RЦ.uʗ|Fp DjslhʵzyqNܫ! 㕖eI'jNDa]UL`jf5dR'a+vH[cы  Sni&d/CX^-b6-:Cb$n@&9e cj6CmY8:SN7LB~a ]cө_q۽G=0AYqexIwwY-pQ8IaLDcusxJT>}<9w|e[L ÷1Y}Racvu>=guF7e_MlmO:x6@f\GMoe;}9D) ,Ë e u׿gZt& X7}c=@IM7M%2eadz^)("_нWfW'*]媝Wu7ƠK{7v=2`++y9(&4[E+RR mx Bc34#13ooHY *m\dR'hAݛgȄ*/z0mӆ!*B4uf0eVAw0zS]10 wϞ.g8ƶ_ .ՆaA-z藉>KI #*=oTDKOdBf_@qnꇈB.ۉ[#dKLHi;MtRRdYckplR5]nZ0` 0Q)T/\aZ(jY^@oi%l4`0JD QKk^ڶLﳆ%h=sԜFˆp19o n:1o&vK2$uV:Ź= 5T){dt ٓ{75 {f YHש Tp5VIruᙑ?]ƎAw7YwAb4j=˱ S PĶnCH΂dL`H$0! 8az@K-~&\4D#kvdfLQ;Xqc."y1߮zάD ,v_ҨGUzc~ OSZ wN)s% ޯĺ`gkF|l>f ( W+]]SO{n3J_#v)SRXwa/n"ODKP0%ξms@p~'}N3ŸBRP#NmA1{cb/xу`*QV7nTkAٿ' E3 ۀH9d9`m#5Hb8.TwJ^zQ}q>!;!XSW畜=f= On}Uy9RbNn}YH2B!V\r'ͷ|AJݓUhmQ46Jy9-@#!Ar- m.4rC^ȕnnI> *: N&ERCI% I+-/0"vdPr: xnwq)Q}q(}>yj>+rw_(N"*5>Gwc'1BS&~QEUD6,XmXryw }H%ǥ"*C|A:n "-P4@&]OW`Y #~Y>Ǿύw+)_X3>{,ttD%\c?OtEay^06˳v)s{g%m":}݆ @G i+"9x,o",30$p<}vkN !?O U~ :8exH%U  xO[f,WRyu4qk }7blٯ/.\+gZi 92yp)/BԪ vqD֡8K=1O=N[Sjg8k#y cn7ECejb*Zꙋ[EKGIg,d5OK'E*U/v^v8+DZ ZBGnEPw- X?D/T'VцTC՘b9ȥ dVHMD2=Hd d8q!+`(e=[:"qSoaۇolہa0 eM.@ $tіݻfi5PpU@r"0NOcxCX޼St[7>[͸\٦힄(sO~EǾɐPITQDELEUPPRQBE5E5ESE QE SE QETQKTUUB@.9Un9h{{ ?un.v*NvvC5Y 3-26V2-ϯm%hj L}g %~0>ie|;h Tv*o܏IfGᙃãL%m!n% 8۫8 b'~mތHIґT{AUi A,WNǯ 厛|OB="*TR0IS%UEQIJ5 0DJ4AAI sB=$'j0mAhhhaiXڴmXȤO*b8Z#Vh ]VVMd֬ZBU)uZBU)mmG5W89՝Vvh !Xڱ6lk_O_/6D3rnNp 5(=|[zQ7pи`0.Q=D%Sxz {ҵJMM)nv)ZtMvDחqY+[Pf!/F;6sMc2ry:朞鿁{>zwK%`* ERwu%vHo޾}B}1`)>3*7Zw.XdP,V u@'^z `#q(Jdrlzu Yb',+&# Ո{t{h$5 :?1[q߸2_[5@ϧ?O yxfhYJV^:^&b-xZCZЩH-@ iCvLOp#w|qo`#\3,QTEnsd Օkt۬L&dll݅p"!O|T+H!Q P{!EQEAjMb"WFKDi hiU(ȼb*PXZ! *0U ϯ .N@A%IF?ZAKE:gWKa؞^29I2a)C Yʇ(0i 9J 5O \}^ "dTw+--=71VtY;nyÖr³D yf]==z(={n:rwgT+*p0@`KFXxBc,ݧ: BUe[5BYOV=lۙ0ŗ__U_fqbOs3[8vr$xB @  XqV|nm^4M̖7s5DG?_0:ok_/悠g<8/E<荷#n i FTBDDe\M b F[M%HyAۂt+ǷEFvYYG -.:QjJa~q v1Pk紏/w!.\7o͏j!;NEHGV5TD6O(/R2:G(5Z~-EAxEіQHEG[<ۂ.}Q@B1!J7G.WeoĐ=|QM d,"?]$C5FGu8KGU ~p C{T오ߏ=?d9H+ý-C"~7E@0U!{C0PO3Dz[xltןq j.^̍_f(/PcƸw~za<#iZzKhTo1ɉjųAzcs iJ svOf[1{a'O?P+ʭf/{ܾ{O[_;>oL.3Xm5\G~ɚjl/r4Rl+d϶VpNk^4ۧ=׷_S_/ ?9:˷VY͟p{9;z;o!>E P B$ AiT ?]\M1aPI1W U Հ;x!І *)ڦ iV<2N'c6U7p$Q^bh?VS)|W3ڡ<J"O*\3sc?nBMVm_`-F\!oG a(iH.PTLׁ 9_!G;jaσx`@_- H$=hްI0\8`!C5&chb 1uy9\cpE$~ vMZrġo"!Vjg.UN1b# am,?>Mm9v!.XWbWZ,3y^fo:rC%_7݇;ou葿}c'Noqx!9XSaߌqWkSE=3x~ETyyD>W5Q*҈F!uN٘9>/.]:fn;,L }۪GFms-3RQ(:qGo Ej4a%/N>d?aAt+frxjwD/,F??]c~]]*\+ :?oXv ƥ%c*4};6DVA(*P=¾^җHۏ?М#XJ$)N2PuD!U,{]),h Z1w92ߜ@m^9ϩנ: R Ы px )&SjݪҧA3IxPOOl 8g6K)W P! z5AAB 8pb~ƶa^ޒ!!AO$/)'gbpzc.  מZʽ[$< H"m"`gfOWe-2">!7ڹY6 T43\в/QCe1BM<(DqP#cYtmc3]"}}gh/#X]] T?6ɬOAzAE.u<_Fy7M3޿ً}SS6мH(Q6M(D8=7ULi 2(|`r/||Tt/ ݤuD`o{tc1R-g/ !;j{0w9t~}I@D]_p?t{˦6 &&%jQCkαr~_9 l}s(e쳂  ^]#]BX$"%Hyر;!מEY z0_5ĩN*Us=Qۆ^a]veq$$I&;rkHje "9.#]Q[\\HDD e7`m0UF45[Cr 2 A! ~o?{[HP%l #2a(dvmWꢽik:KFbi\ "DLj?p><`۾^/aLcW\oX}Đ%(xϖ--"P+BKvaՐ=Ap@R 7ʋPHtnٺLK~!u%>(LyJdSWRqRU!kcK>8l{CH-w K*!BKt.j=eBޟVgI3ߔvM{g=BzuCfa&Õ=Xh0[q/#&-Q`Q\oGDK [AC,kUQpO,qe,)L _m1-CDT۪)D߿|fAO~KnmV=pX?;Š=lI~( /qQ^#s`$-߸]_n,zܒ l'&yE{~e3tCwPDx#fCs |`.a(^Wi%cXWg۞"R.M~bP"9zP""A@Z[|EQ]aʃi%KҸx39%D@F+_C[:rDWo# }z3H2:'T)1YX0KW&iY~ dan?'k6O#1m˩FpVn.Tȵox&IV#iHN/S\ǕF&Ǵ~F5dZ<3HffX; cJ?bjo:##EQ7K0Gu>x㤜-r* D ;k/n9!" L+se"1AK|r*N E!q˭;6uN(aq&nQнc !FV;DG_{;"gu  M ^Qwoɿ6UN jV(C%ƺ/R0$ 3- ?`>/h0GCwO#Έb(&u_c(5EeO|1wGrq {PuXJ8(0ʦ0ۈ>e(=B [Q`\%'ϣ7qj0`; @oQ-O?l gakQ6jR i>(#ζ^}`FmWY4n7Jh`Sv} YcW>_l:!H[9\=V$ KP-[8}5CcEij"4#iV)Bh72TZ3sp/0H8:t3u'/WDK|jk<c_~U= CS0Qbe:" (%>{,BH=<*c2l+5bE:]!"T<!$mXn|08W@#Dձ2| #', }`&,6[Re@s±7}ˣn_ ,E1x| 2 3P)o:?ۣiI[laWo—;]h`+m[aa@5gm&! %δڑ}z\!EpLo) R&cN_xKӯH'G|Wu7c7{x^%>qXy~fS}VS&)czd#{g pU.`,Dl+RN{OGdLxCftӺ筓451AP|o 4w d&-Դw>\;<P@!Gav}.}-N{?=DTĀ61N=a(g8"cׇ=9p4!Tڜ˲/OgJv,ф![e:Qw}oWy- ,%N|G4ѹ>4+tksłL*̳p_5.q>3|yehI0U[1|6()FUfFpĽ5!OveO@5vSP!a}zkǗ Xn=UAopAZb>e5BK{AfEdV,9kai)SF!̃?<Ҩ7@>oîf 7R=NCGJm?ϟ,~PfS~7o(M-g1.h!{ DD N,(Kd<Т~Κ)h[}S6Vz ~V@ Lxrב(1aWm"Zw.F4TD=#YD@3΋3ͫZ$'