summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOscar Salvador <osalvador@suse.de>2024-05-09 12:01:48 +0200
committerAndrew Morton <akpm@linux-foundation.org>2024-05-11 15:41:37 -0700
commit88e4f525002bd3c28fe7a272ffcce743d07c02bd (patch)
treeb0a61002968700286c99ba6b95fa3fbd024be4ba
parent8e34419f4de3eaeed57aee69076105e5d88fbcbe (diff)
downloadlinux-88e4f525002bd3c28fe7a272ffcce743d07c02bd.tar.gz
linux-88e4f525002bd3c28fe7a272ffcce743d07c02bd.tar.bz2
linux-88e4f525002bd3c28fe7a272ffcce743d07c02bd.zip
mm/hugetlb: add missing VM_FAULT_SET_HINDEX in hugetlb_wp
commit 1cb9dc4b475c ("mm: hwpoison: support recovery from HugePage copy-on-write faults") added support to use the mc variants when coping hugetlb pages on CoW faults. Add the missing VM_FAULT_SET_HINDEX, so the right si_addr_lsb will be passed to userspace to report the extension of the faulty area. Link: https://lkml.kernel.org/r/20240509100148.22384-3-osalvador@suse.de Signed-off-by: Oscar Salvador <osalvador@suse.de> Acked-by: Peter Xu <peterx@redhat.com> Acked-by: Axel Rasmussen <axelrasmussen@google.com> Cc: Liu Shixin <liushixin2@huawei.com> Cc: Muchun Song <muchun.song@linux.dev> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--mm/hugetlb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 262456daf327..6be78e7d4f6e 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -6067,7 +6067,7 @@ retry_avoidcopy:
goto out_release_all;
if (copy_user_large_folio(new_folio, old_folio, vmf->real_address, vma)) {
- ret = VM_FAULT_HWPOISON_LARGE;
+ ret = VM_FAULT_HWPOISON_LARGE | VM_FAULT_SET_HINDEX(hstate_index(h));
goto out_release_all;
}
__folio_mark_uptodate(new_folio);
}{O>go>޳YbXf%b!NXc+$ C~e&̔@p<=VRpğ+(%́E3P *" ⫈7b i3?a<f7{1z>‘UY*Ӗ7 U;j&hR M bS5P)vx1"!D8F$!a 77}7ɐҥfÀGSZ /ONo 5j4Cļ}t ={Ikh[<z(/v,A$x4`Ę #_}A&rnɰR9E/>u3Rr+aqոKn{6o_y[ 5D->M̾Qӹd=8OBlzO~^Ln~2.q{x=Q~|Zwh˔3_xaz̦GnO z=,cpWv\S)74~6-j{zC=a̅CjnAtQ?wLi:C[7vaS$*[õMx'߀|6칥 ;oKmط#p׻X XjƓh1LKOg7M t}n'#=tf{{JGlVnE:B7JltnRUu3ܮr1E4R-)7ɼfL55\_ UHY etbhC=eAڭ\>?FY؊{LNlrKbqGԛ 'xY'4+LH6Mr*Q^k!" %CCwa 2bQY"5Yx7Kbc.ASF@ ;g .χ:l{@\Õ|[sbEBq8A2n&/ OvMd8=ҳv؊R9Œzl⡒̗n_!у<,FG<(с^;1bd΋O䎭| Pّj2Ҟ3w:?b|"5?:uUP;`SYm5:DCM\IuP ǩ+Hq Ic" zTP!5 Ƭ$$XM\8EkEX-ޚEn԰_G^t\ GYtިp˱ 6r OeU EGPCy2>j_l''YR\=ɫR,ݸ !Rx6EfQY?^{] mWo_6.ϻ/j5;Xܼؑ)l k*rORp Iܬԛ/u䍯 ((\(qKQX?Rүr+9>~o|KFR/]^p{ioIdru˺[?|+#?Ke9=_y |d|*ue{;II=0c ;lK(vQ L{vt_RCSܼ86-SIW SV* QƱ1ԩ#9&W|pk_ޫmߟ=??7xxa|x=#={5-ڪ_Sˠ\: ]71·jo9u[gfNs4{5uUۦ]Ԥ;G] LPx) "+.@^\3gw790]7F[tI4:h7ZoE! Sk{6uh(YP:[u;ezsMp#&+\ |>V՛gxgdyvog'O?KNܛKS25B6)BX=tV}?wWJ><۽s@_? l7gm{o7{jH!#*jMWw;=\=Vhu~=}Y,p*3,;0<*mΖSZ Ec3&ba}S$_}Wҗ$^"yU^=(OK:+f;c# QR.]~҈~TRdfg5ӧeq`h5OomR~5q<4--I뛛|LB]]&5ʭ:K ,߿pI \h)}W!Žtx/tս:tX*DL܏i&7/ؗ i\*˕'4z퓋˛mq{OkG.'q I<*Lҁ!XA+v XܬJ%6{i{bAtLqAd/7ݑwKVϋʾtI_Ӥj~b/ W_Kmgmu3W%UUmD&GZ,~!ٶsC㩇 :5M4/[M,X<{'7O[o(\1r*įy6&4o_uS,|j9&Y6C\Tԯc1C ײWvԠ_rpI0.(N_~^jlt؉"H]Fbu\,^C1G$#K$I 2cɂ)JuRҭ63A]Maޣ<:|5D4YlѕHKIIx,k (xVcbe3vmu~{**)N>v|~FE@/ΓwED!Wt8O}B\￞FRE,gdB^K(>} 뉍ZI{+t(_HqTd梤de4ZΉpHxoY݇ W_[IcVw#K=Rupjѻ9l:S&>5F(f$;&'2 &=~ өOluNӼD;=Įy5,z}i{D ⌤]w [4g drR'ALG#Hl<0$HZ6qlIV^2@V"܈9vISN.S#T@ŮMs~/:0Kp&Y@gc=æ8!*JJkM8 1't .-Ag,qA \{l1vRjZ*NbJFʫWHLzC{5pUl8p$6߻%N cdt:ﱧ\{LJHJ$2{#WRS@ex̴}R=$] UגW 7Ķ& >ٻܠ>d!QogxPp+٬67 ,멱5j{&EW|;u(8KǕw`$i'!^nH n$4K*S(Yg0!xn#4l2=x4IP%Գ*Ѯy?H&)'9e1۪s'B_X='M5d&vnJV#Od*Կzی^*]v~`=Q$bb[B~نԷ~USbw77 T(N+ G %C3/0'z_'Q +13B%ͺV9auP8qC&1:shGCqhn\;F }6+唁tKzx.L#ۥϞ#^dĩg~/eHIM_r]kkCYxQLm[e!;H@=i w2yKBr;W|'G;&[H"H1,^w>~ȗkf*Df€R|k  XuZwM &R*"6wtToUR_K2g*M./e|V%id?bR %h%6QKřc*Rg[6l8@PBt_;*TE߶ωM蓗l"9ӡCD..Tƿ$1]aG3 Jeb,Zx'-]\ G+_>ÃCC'mv7ż =}93vGRBWڣj[VG = eӥe9N)<{VNOoUS$\h0:!Ȏ 9^$9QG瓋4̱ҖY%Z@1F^pWJ'&:],컏ꤐA|plU͉{&H뚧a?#^J%_GceGI2Jn_ L͟tȶR;RؽBv~l њ^kcIj@;>XB&et)ZFߌFĺ [a ]2z,aC*\k#jʑ )zL&$gT}K˹ aHa- ?Q/Nx+({=HTfc #9W/6H-o4{W$_I6[2*i;ǫ 9/ٽhڤۓ:oBkv[]՞ d]EZ,SE@nPxn2Vg-"&Wtd8}LCL=MR;%cHQЃuIA?k=Y*}~e V9"o^ nyCbݤq}H)# +B`]ؽ-Tb y ~ /$PD*=XuJM'W[a 챿fsR]N|'ݷ ~_F(d |/ml9{ =!:cj\ZSv 1~kF|7A0$}^sh5=F- nUS)[NN,%V{"M+VZAr~=*2An[4w=,/=$;>i˸li~]ffϚI4Q_B;R$^}gTw v'ݹ 2 a Ipd\i4o##ROlw- Ί7=3[jjGC~o ;y 4\5mҶx03Fq8#^JT7 ^AJ0* UWc- LjC8iuY^T޸V!jE3A:2:.gאDy񭹠_Gdn;Q2WJLTo-0a(@@H9!}l>^ d⎍pRP:4kb5ty6%}.^?fEŜ;9l|7E! dc` [rU'Z DI@k"{g4əsnwevGp4xýĊ9Ö!]ЪQM Bgq;G3z2Sfޭ6{ Ef~u$GSm'A;v٫Tj)ܢp! }׸ӣ7˽YǨ d;l9mCG@7 sL  zAvT˦y67j;ZȾ!sh!Cqh5rahfڰ\bgV );pP>!PzQUɐNwNZ (#Rƒq/ozçq|C7ioY@ΦYXjM~׷C?9bcd(t]ho6a<;v+obw(|ڞDrWGQlvVEtS2ԋSK˄@yZj\zo=쥱z{ՌM&(4C g(y1 QxƊeϊx~T3 iO_Xf0${>Ph+- tEn/fs@oe%~nfJNݑhW]ggONPϿ0q[:;B=hXBL ȆP-B^d|KJ# ~Pp9ը+.` rI{D .'$X׻51ӥIX')$MEaСJ6=9Gf魊 SOf$ʒDMc ~&d -S7b\2{K<7Fq^@9:FjRY*艫c؍Ņ/ԠeNjW`VoZ0[5ddo)_OۜX Q.Ök^:QRQ̈gSu)qh?d;3YRO] hԮ3ohX;j ZgXQ~,ГJS*+ ' VC]˥wU;naUlLK-V `|)Vc6oߧǢ'b=<;ZI<8g@ϐHLco7C#ҕlk h< M@ZQI+*!i/'Pfӽ\ BYjgj)+Go[@ Y퍷r,g&p:>K9J22ZQk){Z},s,wafwljheݔhT u$b+;RhÅ:SZPSUmpT@>f|,ʡ,[:"'t-Yq 6Tճ(ȩ%=*XTPKNyFD3ɶ5'u#;Pj6 Y͆VΡՉjHTi[9cL1]KQ{AȴW=?zJ =a GyF>2ż7<Ფ-,W'-ǽMEI2AV BMf@jdoTsR {6(Dy c-u#Աo$0!Ѕ5mGgf{5鹼5ZB @'[$i,` @NU']%)蜪xE-i+n&(<.h=Asuâ>Hѻ=f$CJqG,dݐfcI2[l6PV~I8.%8zԂmHYWmw/r b,ގug=.ϖ"+[r,8d_0zOzwIcbR= , xLcR[Xm(/7/ Rq/^_ir9ÞR["xɇ 7I6(ڎoY٨S-5$B;xj?H T}o}puf}nNAh유.t7}ch4+RWf@ iq $b4UҚ԰z'[ g%T3ԙa/C,wnN;oq3:Ԁ[.׍Lz|sF+iK\zvVmf_K&Ҍ?cfZŜ]lSy)_UXOf=i&~%ٲc/u^/$O-sn!fkU',q*,II˕]5D-Z+F遅?mKobP_URednl醠NgMjEw(M'؎~Y񽍲z '\Bv|ŹڅUeH0:Č|mr S먠– Vf G?GA "X?>˓B1ߟ:^x>)5&eo5s7N`"qw6%|>@bN;똟j Zrƛm'pЦ@X)`p̲-,f6\gHVxTG,ZZx\|N Қ&Ȼ#Qx(Rz hjKЕ{r@3yI.dr7}blYy, gaeb;d͜)̈UA>zMW ]"Q/|>='[.׌ F !"8OqKbs)^G;y.}R5~aBsw,1S>Wo!'7?`}x RmM4eRaT$M) ҅򵍅`ÂIImSmp7jSg>ZCӯI-'4ip+c߈2kNThUjfim|,KEVaDzۈspXwTU1]ɽDz 7tZ@1F ٽIK4>ܳ{bFǣM@CshcZ:wPsc[e?gg(vSHjzZ\ 16ڜ*D7prI V4ɲzG@/! J9Ô6dvItV;@d' OOQ@N)*BZ#qix%A8g.h/ߥd$=X}/Zh}mσkMaXSgD~l*FTF+\E΂Y^\3fهqsS@?t`iV&ypXBe={ j[I 74Yk 2k%=[o⠚kC]L=͑NqRqB~!53 eyvHQ(ZRjKGkxT6b#I kPVU~f[`}3Kym6{{uR+2+mM&OmSĦynᐖRH,S )YkNHŭ7S%~e0EJ5Ykf"pY7g/7十}H 4Gǧp.SIw>fx.,\BVjdrGb?{̜+oIyxeSp9Fg .~85\Q/޽H9渙"cx$uxNy~VOӮ0uIM[&C'_֞[v qj w,g7.ؠvg (q~BTK:5X0&[J\U۔S%#%i v(-犿 JUWjGa{۩t_d5.H2h3߳&:ߍM@7FSQ4[zۆ"mݐ^Y;m _-DQ\œ=Vg ټfWߧà &,:yrI-+VPF< em-Y"X &#S~, ? M+jbyOD\Z_3\:wtC)@ױ) z$RI C < Zt`tcSWo[iLP(s5]@%Eod\zr*]ۥ9J[ц,ywG43D3:Pc1 RhО%?Lb>?mwQklRq\&t |4W+T؊⒦[YBDdh+xAs<%r|8C/Yx!I'>Xk&!^F&VsD8M6,Q*'P>歅^C?O! gȲ{lO[>2<_Оc^z P{p6OO9E;5F eHxPx#1wީi SA}T *,A~L#hrSjciѵv 1sbDZ,j)cFR"pSr쀶[ ۲Zz0/xj6fQ{QgZ%}ZFdhҶ"YpP0vHSnePV640ԯNLנ KkU 91`So#x<)2,I*ц$Z8̆ȆX{x2Ϥcv9E} N3Ofd|oP0Z)IGG}QOg;|^yO)VeɴhI#lʊ>AGE;nCJ0 or{•<Kz뵵lhyޟZݡ3ۑڞRǶ^j//_Q@ &)E7&zCCeYWx=QPh^ SC`Lz]V;+aJ&RQW2mtnV:7G #\idtGs9>AHW,Y2A"=*iÕJwPN!s2L{W =(ysT4)"l%<=%Y@I XBu0t:NjMJ)id[Jˀ ~P XB5Հ;"#ݳiO3 `La&iV6>R BI{32 wNj5N{WmkkU|g>Y<h"?^凊?T}ZJ3k?9 k[fԁI‘2H61gr9ۢ9󂦓S K[ HݾnmH|lj1 7$ӹA& Nb۾G$"z(} +"}P9C+Kڏ FRn*߳qr[̺"eo]k%-k/̱9\9u^!]6WݐH qPPܬe;kgSg7nBvE{pN3&܃6ÉƌB)&T=9X/U"_iRE;ZvA9iVM&NNnIGG޺}DUe粯^5qp8 G>ʘڸSo=O,m9:,x<4W "]U? 7*m C?.S;݂&f07̨ ZCCZ @U$AE>VR֔.Y* LlԀW'R ]dpNmόk45-ZoNWI5VW6*`18*ҍ.,7%:Ӥ)Bw(ܲiϘ@>.b= mgA\.btru:M!m>a ֞iRcP7µE.Zz1417&P߰$@rmCz ȡFk'4xdgb_|^VMAy[0 Ls=gL?0d6w#Zh\nf%,R2V|~;e3lxNBs 5?hY$nxBo w[v؅YJ)~1I F\$>w=Lʕ&Q:۰s:nY XeKTU%>yN,[2AE{0%мb+{oMeSs}n7q:`z7=<ī}MɣCrԽjR_V® Mëѐ*N(Cd:/PGc'sܜr5S ;v-3sPMn"s BVu6~jb?ܞ_ޏ?Ny3sI,XWҞ"tJIm!-DlS+_i'-l@;#CC) WX*'U*C{ꤪ'pAE;*pUT|ޚRJYS7{Ϝlӌ١̈́ic}ws@*kɮ;)FC4E!n#qI1ZzyD&Eni5t 5m,b2b*~qk7%RKBStp .FgAR+*B fTZ{بi~AH  ;mBɖ^w9S-譜t;C:~ s3}Όl@CYlX:l"1YIj4Zi2Hd׬N8[Bd$F"רKۅ|\)b2 Dj4.RdS#B3xҏ8y P%.!YD[b/y)E_{i^>8q/-W\ikip /L1Nryf> Ӓ&O0+f? ‚Q5}98l? H:7:(Px k *(VC bmJ_`IUY ZfbK45*8$&ѰKd}~* ^h?⥑̌Mz?!!cD?1B!”NNo>$-X.䘓S~?i$9\L7N/q(S`:;bՋ>^ ?$`8²^:i{S.š\^h9ժOc, w2"l0XLj`MzLٯ;eX͜^oRzfQg~Lu= >ZrXӁvbd\'Ȑ +Z$ޤfyVfi E:4k8z)\T4SDx;u05'ՓiO^ٽթLdY4Dma4!K;[Wd JizK'c RO+.0yśOh_4qDyX_nhL#_D+ C 2A[| RjR#_odyXQ@ Q|C'uꙎHBD!:\@{Q !%/xwpS7D4GK[_j&gCwU`r8lr3;7^ M=O2-xKX\g"Z·Kythea^rIŜ$:ldR 킸!ytH f J_›8'Vb2 bށ\i_4xl Bm\ u ̉f`|>Q EGJZ63QҕDD=P^|~MFHg(e`̴Qa)FlY4}4gdR>a S0{6H F_v*զ4 ~DZ~M$wYE|"+7w u[J6i >YwNѩe{/ΰJiẼ4z3D |I|,sFƁ7A2DPP<م`5:\8rK|R`2ZK(,@:#ghqF>X1;Zƴ;7g9uFHЕ4j[ȸ !YaLj?o_Jĥ#z[6&z):v=ҫÂ#FoB[OH}&1%MnFZXR< Db9CthlEϝ 2z Gu- ,Y5=zqc2;}k|?0~̩g)o~ī-g[$:?YDpdHBaf]&hi GxԹѫEyY2ps>sqferSJ h`rΩ0&7@Cy+S;R:fp,0M& .m,s8_p<:m̸=<>u@0X8}Yd:ul4.p_UU_C3eku6Gbe(ԛ4\Jj4J^eC]"Sj0lIN|P/blN;pW/Y~g}0TSÁÊHmd=F8jfRUNH}ԠU&;^EhD~/PTzi9;ʩ4mQ{`Mm"֬TMj,-1;.\:m8y ޑ `f5+4KdƄ*zIiLWZI bN>_V4$S6:~_U:jCR cڨqٖ, *7ʪV \7.ٴBOS~O:E϶TRi/-2~Ka/iG)?r^aЏǸN +U1IStfD=ʪҬkZ͜UmbX2I;ix~",xa-X vDH:[ZAt=Kzq=#̑Yu\koʟn|$~Y;`ǞGOOiy9qIoL7Vlּ 0P#'d3gd@]&e.zC9=_Z~h"Ɔ+7T6-u89JɡrɉoUmek4j) .NO KYQ֬>G;]ER w((ͽo xQ5W\5-T&)-BۍڑaB{M$*E*hOLcZ;1W u/Z [t!-rI X@lhy`p5jMꥼi8"O6&XY?"Q<֫Z/Ujov֏4NP sփ];4Գ^xϏиpBx#%UX6Eec_ZvTHyjobSպbP kuT}O?G7z..ZSf# ߭z]zx~"E px/ʛvM +U]$ Z\}:9_ldwI_kV&%=-~p_Z~u+wS6=qU)elrzD[gɊGG;CUڴ/ I%,050N^ dĝd" ν]P5)+VKѪYψ,)ѾdLsEgXXΥ7N%uP5i>_DfO V24-n̖3VE;r-R_rwiH65+g<9I4̠E;30k0'JHD[atJUM$Ve;CPŠe 2y|t0*DpkO%yrifF?".~i/E-כ.Ě#5+)2Ɲ ꑭz^73\Hd 2LC|rCHкM?g$gaEn *ǥVB5?!=,ɔz[?PqDN)$w4@!Uk HYjk"#꿄Oi.0h!q}Rh3{~'f( O\R*'no,ʉ"DJaIˊTaMATl.KIid:FFł]JhJ yc2cH]i]Hj*$'\apamyhq䐄l>4?tcMh+z)r*TS0jʒ!N|Ga<::+^sQ+LzNTnxiZqohc\o:PA19)R)Wic5U4hS r%6Rn\@D W&3B+.`<[^㤊 :rBOQnƟM8YY<4)Y-b\ +zoM0%0SHhFr/@/fo2,f~/iV@ě+uݒ̆+ ޤ.Rw(Ŝ2%t |@H­- 9UK~#i㗍v5™:6UN/M2|I.a@ f6Ď'x^S~ܺ"h=SE *?˗t_d >ѹ\~"&R ,fpĪV3M|8O\GhΛI%Eʰ:ȂFֿa4N8,o N'OμU{@'xti{(D 34 [4')fX.5t0ɾ hݬߵμ]3uc<}fRӤ ,; תǽ7iIs3r e!XjhVUAz:Oؒ+xr6Ӹ>p 2v UM\-5Mw IfAA+Ԟ:/) kD[QeqAg`\=#o;n}^Jy[%oиQ|;]S g9׌RN610T 5eIzZWX$2]2,0ŸmfBFl7RD4h%Py  @6 :~"  ( Bm-mɴ@AǮ !#! h'%iQn[L\[+8diY mM} GܤjƊ7#^ߑ(eEmHttD)bBfA~(K*nR=;X٠7AI2k=1ش6M 9RmVI~w(5x'H{ύֶM*;|Z4貢L=udlAB0 w]jR\-u4A.Rn刯SDMLeڻI8?ljnM !i1kECŜxE.3"3BGM7 ֕mNۿha]8u22~f="qKZCDR)SV7u]iR'Rr|EgBUˍS\R.ɖg1n(T:UtfB@<` ;ifx+F}G!2H<+D؂Wd;:TT_c;i\XRcQ89p{(Z5Xgb&I8Fd4"S&YM$=$.MXa/2Ez 1OClOP-hc$]ih<xq]Ӵ.suNᎲVLS/^;UbЋ+'Pw:P{{i>7pUݧCJ-W@5d*Hvg۫J_Wʎl85g/@3\$VJ8r/,tҐPoQ?;ۋeWB 4jQ%ZCw } ɠ6JCtd(S.LcTK4gn5Cp}gbvAzwB՝\\asqzyz'Tp%dY R+6w쥧,*ߐmJmG]hZ}$U="UQV (5P:-iYI! OZFzm:(î_Uu@ݡp w1&UY 7@~C 9lF%v@Uf&aM]f' 3d%|X+z}@Ҿ[TO{84%hz'dB4jd Lj &b2Rb8byg<>pz4^&'6I#X2|9DΪ;v)XrQפuL1dְex?r8zx #Paig?FU]\LϭV&`g=y8L;,Hd@-dCC1rܢ~@W;fK P"QӠ0ψ@D2+oεq ʵ|k=ЫJ)zhZEjԃJe[$S9i`)S^^.xK>L̏h+9+%hTZ0mOJ5.#CmbĽ咦8"Dv{a ђ k4Mi8Pn){KBhfi;%JZ zn>\ WưA1Ȥ@0>%"FAnjOPoVZH1` RjƹCᑞo9 . F4fjE@Omڰ+G Rxy$1G|{F-r!A ly&. 3&~1.d8}=ZfN #\Wa\!HXy|+%u:-2VH2恵Yo9fV0GV1|Dt 2u|kkkSZu`g~ɴNinQտ%bجse\s}?%v HQC\Jr) fe2~|mўnԩD7su1^4L:\ N1c.BERVߺ.&XfK}*7*$hQ5܋$+ ȮWYnHEO%hN-(J2\Im.&G9+P= =6^DQ#MD+xIj>F«94>%Kc3FnB9C HjQt%Bdg8|l?tY:[lZEl`+ H/Id!(,i.ҾEqJ C8tev;]ϔINЬO(x]J 1ԕ-^1l^X텳HG`s}n[y+S1CMCL)0j: /տKhjJR*i"; bƗV)_*0$pNǚ?`8|hX3sy8 /tP|:a$E"<&'5Ί'xaI~Ok|NLNF oY&4')HSR+?t#DPD4.UQW@ˋiԫ$GK X&Y/эgk؞Q1cXvLVdsIY[X[;vnMl7Eܠ] 9wdt}$4S".OI% ]xUem՜y+f۹H Kو.ɉkx =%Ԑ8V0A!Ov~wFP4*l]X¨@5 C𗓆4PH q*9tݱ$T7I]G\?ܫ Tf1N˳ځ,lF$' i9(/&ʟVeu3Wľ4vAi;!J$.5i4Ʒ=ONcC($iZ>9Cb3ebx %mK܀¼sknƩsV65O%;< H{\Ϋq3YE_$ZPW\@ֈ~%^H~ஔ_6c`AH4'vx¡u|yӅνQj{^̘",}C[tAZЬ6]Pae´x9EfIn-,;tU _*pyh.=%>tᝯ_hP#Ŝ||o6(+ewF?XBP3 `8Cs.yQpоBOOvp39y !b`3.?SލɍZӤ|7;nwvs%\4Ψ+fpy4 Pkm4H%h?I׌.8GD"^Pn+eR?iUUu0fI栢*'݆R'&s*wP%VpL[{ْJ;] qzW9*d?A{6Ē$|<JSuJQ2J 㲋LNWf}ӠuXkqz)ʅjGJ9f*.C @.CBWl& Xwب+e5?_< 0 n4`콴ě@ B 4# %@VˏJӝQ/<ۯ; .:$*vwRo: Q¥7rw=N pe! EG 5.FgWIye،_l&#/h G6w୏Ua+vyK63X:^Y{$^lau[qS{0H)[2q3T SHuėk/ƗEN;<Њq&|H `?sN]pZ3&lr,N3+ԟuA_yCeI U 3\`~yͥO7Ey5w{g]'*6 _#0 *KYW?]Qɤ;λKmRdDV*MDRxI1 JYAp%7mB@n/ \='$,ip.6J.7 sz2$a2՝=જa1‰r\HR/9qg9 L{Zs*(KέEj&eJGz0W@mx='vchqh\P'\$e=gKk,Nإt"0ाoEK ğu,ll'فH13G]=(` w RHI, *:k;stS %5?A=(>{:ܤ$BjX Kprҡ*Di\ MP}3+qC$IMI,%>j/)5W, ½:b/#&,'՚ΧG@!pVkpzZ!QD0?/\InܯeUi5U!7$-i'-vjZ jR#2RuY>{lj_#ݱ=]ឿ#iwliOQo6.Svw{Xu)~ӳ>\H\B )=˜*]/y %=Y W1eMo9|kQ &VpkvYot!CҮRlHQׇA"D~Re2^C`pB{Uo{1--D5P?6$0T%]T= TN"x] ;~5(9Zr5m6,Qƒ^Їc3pW[lܐ4RU8@J A O]y:_ǵ;JGN{6ȃR\L15pdhdJ9qjء;|kXCŹx$>5ـV1W?X j3.fھY.VHULei`i2.R}JGG2 7yA{tVmp؂; d 7ߑ1B6^Ӌ5؏<}-֫7cEm ֣(:nQ5U[mҠTB$t!.z2 uw(gVHֲ⅀D9voY$&й;@w ^Ngif'2y?@lO>McLs7' N\ؠOrqB\k##]1Ȗ?G{=F&uhŧ6JMa+bO~c]aڔIhitԝQ,zj}=xNONVFp:QLέ'M n6Nʥz-!";&Ǖ]nj)qn5[؉5=q`bj[u.rR){ M7jլiѢCZjUeͧA .Pѵ*0c4iY1͒^ѻ"k(,y?shc>psoW`Q"KaV|l8qoV8_tl$Ff>1)4^N&J#śSٓ2Z̲}exPL?DU4doVJ[YG$sNXwg~|^NxD(v{v`ښ5M`mہoOіs9zr ;Q_HQ\ d>=Ҍ.M׈] p*^IRW%=PXֹԷTy Mk Z-?09!}ںw6 #NϞ :xi>p}'^c>TQ]Qtm<,rQp`lDWB!9U|BldM+ŒosƁ9h*V]q&eӺP=N7_~w"ׄ48vta1Nw{ m>!tl=:- k{0& `u RQPr {0Y&4OPl: WlJ&]%Sux'3ڌsGҶhb5Ž!5ř[ apU'PN#I{{5D#כ -z*`s# :t.jzF:r%ۛFi8ar\Nl*߾bةNqcFT겤W$d${f ר!ql Mig>/8+tcޡm+ ƫ!y8BܯfT>9v~ O\p: [%nBv.[+[ mqfcM9FBY7nRԭT,85qI{N@W\,]zIGje9+o#"R Όl<ʜ xB¥Mݗ)v)BYYaDHN pY>#]$d ӎ6Kkn@/H5wZ?Ro+xHkM |oP0 NtjSSրdk4fVSiՓzKzVR'+;n[;O9(eZw[vXKzyѮ׾{|y+_Sap(.ׅTo^J#zrYp/ȝW>fOV.:yLH/7~Ykg'%P7(0ءLJtp&GJ_.l| ;pLJB0-yƖTheo?욦FDIfx31J 4j0T]. إKOpzN44*өÂ7\%4KD(ujm|TR) ~uC$ a+uni#&_δkr$GCͽ`V;# IYzlׄk2|Bvd[$ dg暽wIpDԯM}nzd6 mt6\ 1GS$l~V)$Jz-v^vBH#-W"L˕O%EYU(b@F{i4s?qQ[fTGlD!tF59PծR'e0 ;pbZ`R;b`Ѷ8hfI0 T*K" l׍pXh@{IAk[xTTwXЁlW p8\{$Ek]= #D3 ykIônuIodޑ,qb>&9:ҢiaS|`>&J!Œ8]*>aq6ʰHeJ9#qTykؐp9\v2d7Nvk `ݥ0 h 6b2Rc ;x2 5T8vZI Mf4@Wr=cTARf/FVx 8e p7{.hqvl@fw]DJLŭ*z;-bf{JV0qi>ʋ>MNkz l\˘bxJZV,A2sw#Ǜ$gN Ldy-pt1U0/peq(4Ϗ {`s:D*&}sSNERᓳAQL$ɚ׀M N;dVRږL0 Lt||j Û E5LjWWsAPoOЏQ36X%y̵2dRy,6{6)"A'|R3"rC'CbtiAk-<7[4&nz6b|T87jn!1=-Rs)9T"קݓwϧBtP|P: Vވz7͔RTf nTj_"88lL+I tcňYsj&5%ԱcrIݖR|n9+Wf蘻,I!W<a\Md‚b?f~")`$ěuzmWۀ9)f|1+.e]5Ff֘YFq QOpKT%Hba?mIV33 MMylj-&0H* ]i;4A l[0뒵8y;u81P(J\xT3k'h竤Fc JPa0MVd(UH=RA{Z+ǵ^qkE}%zֵ!=pV2Tn=-'Ж.`:3w0H>3'gW:>B-)cԭ1鏠C1՝u_PU.7#Ѩ}ALT>?kԦXFf6h\ƥ%hfJ( S{Jl24֟~Ux7>npA湪j1.:P,Yn j9:0L@;:.Z0V'au,uz =f#ߑR)'5YUJVwra9&2Ke8TTuGLP_9L$_I46]-"NUr 5 hi?c2 zŕ |*i '>r QP@Nٰ7!gR{Z pp-;}. OkphkuKkSK,P.g`T.yt YRXQJ\FK#YCI&صf+(aEzY9ft*W9̩^5ShSTv;i0.ړz9I{ף^[qo&0E~xhT֝Zڷ=6]Kv|m%6,NPx. Wu ؤ @8,;FvԪ>Kk9`Y5 ܾyp6{ ~ƣŔ x퉟ab񧜪 ')K »0r9A?>ɹRִ㊁ky9q9oݹ2L3G[s iݯz1Vz%p>iGԾW׬gVhݣ|i͘Fqn{׵W:׵9 }6Bər[s2: E@Y{ρٔw7٩RYɤ]X%Zxzm_ږ\Sc_BΤpB4yr:p*ŵ7S?%4"0`p|>+h t#jɽTdz!7\ dr/+{ [6-m8"\P}ʪU}j ~^/.:TصV=yk[).ɦvIgkuu=Hip^\ihԈzҧS[ сP'L0q ~qn5?7m;$֬l0Ŧ>\ܢEy~z߭u#oUi>Ta~wjp*Bx:VN"jKZ%oggTʄ R [@}=ދ| f{saAiHmXxcڼߠcdrSZ!'ixQM8(Rа3 X܎ RjJ%6DK >dl~CxGw "zER:9o) (<9y#5n0Y$ MF]g͑h}H]Vg8l5ik[jP=iZ$dCFS 踫lq a-;b9shyB !' v#5oO 8Ll6Nq>T7LtĘɟ!4dV||7]"VzCM~v|)^0#@\R~)|cvcq MLBz onh Z0t/6v,|3YCsZwkMRӛnISQ~LHw yZ NtNb;6xbt{r>8g*oLPi{-T/UPA4?VGc2t>RUjUdh8 ;l̀&Zf##qo7}$ϼ \cL1Mߋrِ.y{ӂWp < +[@xbwOÙSmHؕy 'ɹ;o"5&=q)x%Ru?hbNn$xMrݨk UEvְÔ;;]}P܏wӑmiW}a*[Rj^B(S}&QΔkի8Rohm`pu:hvjf薝5EK`WÞj&ڢkJX%}2ONVZM+ȷÔmii@ K*5_bM0$Ň{ ;u2NI?ZrIN5 Qr*hUyӧfFKMVj?v܉m~JYl3":]\f$2Fs 8ݩmpOĀ42,?ԄQ?ݶ7+Oo|k^'3p*ٓv3dj5ul¶zcsOksVKb!fC8F4+l5\H1\l9" W{@'YXRk_(av v2P͌4k;k}2ygRWGnNa-wJVO<))M& g;.bEOjDq&Y@|vԹP{@N4s?"b؛OT@eF2@3RJkMygi9PP,֑?o:Fű"#?CaBt`O -NҴY[`-=^P] m'`=5S~LE>*&zuUuk^uX.}ZMlUFR>եN* 7(ܡp 跋Q;z7ERw~6Zn߾ O=,3h6e>zX&*Gl>Ds|%l(5)8Cq+o-T;]]џ+S&[[י#XKI6I$.>WCG'fpnN5%߾7G vm,3 f E"@G :mp/J\IAUݧ|sf+ӃdO~n_UEFdO*:v$ˤ ;0ՊU;n񚰻Ũ/׷hl4QO"یXk@XO0ap.~g5P<D өVm$d;ߝ  1VfGv%IQGى "?xu+!q?Hm4 ܿ3H?,~I˾:]M]Nb+64\LܷiTxJ1n+N*W t}۱ף,͉ԉ6,L&hΜۆVf5Gl El0,9H.gUT篩-V:-sL05üY641Rxp.g{X+@3\Fk\(|L"aFO=vijsrGQN5vP4%piZ ~Ej]1|IVHiizÏyxt\l7j?Ru?X3R?jͅU Eu?ҏyѢOtRI'^`KwQ{iW!.Vø%xⷻ½3&l+`O:5K~+有@KZ(Jz^So"u~O]Ѓ0Lam1ihҮ>e>C}ϳA3凕G>q,02:J /-o!ٖ'I /)n,p8P m$| Ըsmp!2@?֛zWjYRX 4c֡h}Dwsz2gMO 2tF2r3h. c1)$^rYlj{釳JcL0Ď.{:sи ]q:OC SZdOhb՚NoJCR웝fM ONjj@kP 6PeoN$_+O@܇w4Xɧ(3^'\DۘL"yv$ll7` $0J;!C[2q1]74c |-&Hrmձ &s!be/7Z%hQ6f4?~{qdC¹ 깼y `Kgs˸-/vxZo$KxUq3Ok}fĜ>AHD& 9#{PUq%5Ƽ!U"EZюޝ~ZZPd6Nj|ҩWUy¼ '%Uk;nI&dEf:=N=YgS~8zSeNnnlqtApwOfjUAn/蒵'lSzLIE7犿3IR@Mή[t^]F"EM ޒ,YNsvV%p e w/`6L<רyӫM' .Cކi. oHHdbVt] ҂ͬ௧8<[(R3w ˳){ {]xwF~&xm$iEuaiM(2!˧ bRh"7mp.X2ɗpoboƜF跂>ur^ M"<'`sIX;/KnHwh^j*WRǓJK0KhTĽݞ.w@79 bW0^ FOpOi 6BI@b_ Ǖt%;h(fΌ,CDFq:g juerڨiő+FWB0BݽwtS*pǐO3hIlwmt "&1~Ps6B2(JKH\rvKuyL9l4tΩ;Zna)14Z%,vm4u=Z9% ^qaOA%C|Liŏ"uAMu"?F\LN|*2l'2Unac 7Tqv'];Ц/)A7P_2w.l=>+ c26 <)sK&QR N 0píXC1@ijs FhE?P#GTRT35C㱘RڪI.r'IPmyth!b@O)%[&eKTD>'-.2Z+^M+C$Yҹʯ@b)dNgYH.@*&5%x80>>xw=/ꘕw [)N 6? zJX(@Zi'H/tBzT- _U~|:ܼpA ]Dru%|5MS#B2cLPcK|>[v8q"Ot]5N J 9t!Y ΩqGK'8rS^ ެ=QboNH*raXtA-ȆB"+TU$mA?5Af4Qu?uaP/~rh JFJ`^ ŊUS+ϩ҄h:-A&珀G×[|b0ƵFq>)Lݔҧ"7uLͽF9ö Dh>&z$nRBb5QlJkW,EOW - t]h 55{dGiPCF"^\ސb'_|%W_g͟$'z$puT GjLj [<@$(}ō=M,IPz^ ?T8,"֍28:=sgl6PzdM:!{a;9PRڏ#7E \-gKǙQhI kX =3Gg44M2*Ḛh.71PIp ;asd\ ҹT9ʗ)&si[V;Oc\`#Ap<{a}VNZ4}5,*/C5ӣ9P= ^r)ZC;Ki}k%n)ILFgP;5M[%L_Z2DPZ-oRF]A~A׃ޥ@<>m+Hr)δ#Q5Y@Oݺ= &قEg+gFrw%Y9ϞL9䀟'shnV;O͸"~b6uFN.۴fb_Lj,$eMuRQl1)"y+`jem"p'[4. nb|ڬV~G= +~q[!zO7b⺝ 'L4ҍҭ&yYPD{<,Fh{\>;Dvz'$@.,0Λg%Z"Iwq֪VS%H>Mna!x;(qdN<8W4QәںԣM/E8NïF-l ේ+= vt@AyF#=4088t'6 mmSцti]ܝ|VYPSӊ'(ň+ ۏ! o= 7Orv&DTejwG.=a*FgNZEw'40>zyUPX\qϝVj/x9O/S+r1[f ]P٬g_\U+JZrQkkuK"Oev~ϗaAu]~h^~o6 ߿Wv7ǟ=|iJƗ\k4,cnW-5q&i-uE1,xb6aiGt펳H.9+Yl9Mn0Gj$r0לP({@ #TԭeĬB3aC[G4Ƕ`I7 NRR9 G?u6@RZmhlj4ֽ 1 GYgNU1h ;.xNCҐ7goď vX)>vs hh)o3rov&RP=9nQ2vM j9$ɗ?ŧx ً5U7\T~ u܏1ՠ|iJ5+G~΂آ~5p REۘzlE'pNaSOOFu=BdzWoqDq! 9F4Y;aoi"wɬ )*ҝKͽοF>iMԉ׌ET#saݚ+m~|c h.?Z7D*HAIZ -b G KIFVbܹu2oG{Au_ q禣< !Mͣ+Lڡ,%ۭnš7[FOd+sj Ԩ~qX(ҲMFF ɏZ ozk م.=̧cߣ{Lom<(SaU.a`Ӧh>V;+hC~OaAroO֢\i5jZrER%.B_5[T8{\lVvց =Sם [ÆB<`i,jvwZYyMxd܊FǨ4SǾp|Bl4Hٜ[~ {r9%!ҹQR%ό\>ڹ=[Ft<;=Oq)ݳ7Bp/7MDIs^LD/ĩk6d +7';$l=>.B;kR;E\Ht65v@K-{w ˿J׍Y(~iߜo]{%aQm: n H~yZP&pu!$4)x^$+A'l2k7]Z42魠ģ1j72|OhkPjn[- (*$xȨt-?/hQ>C߰2uWV!hShufyJ":o1[hG!maYӾ`bt7`E.OL`?AoZZIF4id~t<&-f&zTu6Y1;pFZ>`NIILsf{X]"gmgœmy5} }zdϝ|Fs}LCdFpۮB ^zoJ 5m@R 'ފ&xl:S$V(4MY`b I4ee,ZV䆴NdL7\kIۊcUրyj[%oQ?aq? OlɧOuhPjN]Krob" n!–TFso&8C!霌~̢Ԁ}1jxhA)qHA4lMi? >0c͗e,썺w! k }<`N`$h0T V 9χ# uV2Ӗg~&[W)+2T0ONҝc;LhRqq)ih8}b,J:uϤ-\wVToT~ůDV voI3ڋ1 /[ N6M dwq <7qZ!n𣍴^!cJb wr243x\K`L.=WS#Rʟ88< Njj;Y_knޖgwt9#C03t{S`J>:#$"hh}m& {9, &ۃWGI1o> >ĴFt8 ^yqNZoʥj +3#]3pF)I..S*tA~M/"ӻ F zb*p2i[D4̻8S|i*No~AR l¨/&X#Zn^4/[3Z)}9~NanUހ˂qckD&T7پ m6ܒ(ކfr̜ UZjt3p .-\/S38M_J 6M^ٛѲ5 ?BO ֙9_=\㒳+NΰCέhAsOPY!xYC K# arq= \ϡsE>[2D)3xE}"Lٗ/'\=q#Xe:xp{-174c鍔a\Cǎ6mL 7'/9t/ԘnHR Uaѽة! AӾ#\~! 8a$DGJZfv ԙd7RS 'xڡ}]ϻ38k&Z~рsSMI.NN SpRcԣ#!!iMz/J؄ 0y/ og(K,mkd hYzX^ӈ.ޤzƌ۷$Ao7Bn>,wiɝ,- n!۰&Nܼ1_@b)xVuaq) CN+VRX2&&<;cTT~+ۣ869m#B Y3 ds;F}Ο<$4+].)XG$a=xx\/ ~Bh7 u_3[faEyKr_|qE[nb/4酱3Kd_X)5Ct-,F8k&Ȏ =<~aZ@p^)g>[06z;=9Ս)C>JChd9 Ut[9x NAbA҅?t"^Lh~Q2[Tͣ/*.I7Хe'LI{M#R;15C%6專 zz^8*b?Z2n{c'{Hwe$ǢU:.٠G .l$쪌!}֓~ͻ M>^ Nf=\sJ9~DYϣX ͵?6_rlpnvPrt?;y?3HLH|(Hbs 9{ czӏ/7Gz]CJp*LO%1GЉ4(7]/>f1=%߷Wǀ94K:>oR9 {7mzyekqV@P {Sۭ<=>@:'7Xd|E&qLo )]W[ O&}QjJQ8{ $vJ|U˯;J_|~}eJZ ?}ȼUG:+’Cuta0?+_<`C =āʶm>u 3^Zs=ZB[ ex;ЖA-Ng"~l=o[ve]}.-}fRoIIg׀,U_V+o@PZwmކwMoYzD8o]^19 &MNHBTe퓿w|Gl\}g AS#0OJ1[ݖ^DӿM迷%cf }OFpF$i0!_p"<_si&R){'K"isKVk3U;ω+VVs*~q?ޮݵ}^_an]"Ջ1y6k-|Q9vY~LsWkGGD+46iK[qK&w[85^E*@#XWw{hR\-(haǒc^6~nT༂j:766ۓ- %NM2luT^ի<0 nWpvm}=?_q"{9Lj}5g>UB(+3ߵ_!I[H V׈^/qY>9 k5]DoWju#liF[޵@@0w./*nvl~,Nt&ҾI˿Q/4CCEnw f/Nĩp.Y'B-`hV_Eo4xʢ}`&|MN-[.NS;d'ײx~r+7WYE<R?.\z?:UU(XTrY3~]):Bk b-|}i?~*?oZzS,Ҭ ny|^[gi'p6THnl32}'oo7H߲W\-כ2K,v %R81צ\Pr!ȏD!$paX8 0qʧH;BtHwAW3iF~@zf3G BƤZ&.˚_zLL0Y%;;HOv-|!_Pxڳokk7(ШW$Vf oyNS蘞߂Cf o4^fR 5/}KKODT+@o#n_WzqHWv[~ٕnk_9 yQ M3}w)EmJd7Yx˿c~;¼!ݕ1 ) 9/~ ,c`@DBtCMU&;*UU|~a]<0[&?J.l R(?~UVԝBv&%m!!I!s[{ nq- Mni5HikZ (NLiJݷk N~j3ed,ܵGNA)>j"!;kְqZډ(2ŦI=>Jw%H,C+oa%#*~ qMJaE/իL߭`z Nb%߸{ScaBl|\_]Yz뫞&T"Y9~Վn;?ݯZog$jG㭅<ʨK|<If߫_\eZ27 jV \n:!0ck].|NG rB]9GjWS6k3{ `D)hLN'k`_E׸*oz6JW؁oΡ.Y8*v ~Ք=@6 ٫I^v/_Z b/'4|oA6p5jKFWW="F@:}|Iw]F <^W~e;.9w33̈́ЈOMࠗUsS'>[,՟#|I;E^ds.|(]+g n?!ɾ 3оm rGqP8Lnro.S%6`̞^߁a "7Bj\.S$/5T /~F%Gv2 DuG2$xvn$J8x:/Z,مľ&T%a&ϧQS,5?Rϴ{g׼<|N>.l}dN=&a*[ޅCZbE]>ܠF\;Mq%(Ϟ+cj3"\mj~ߍ堘C/t6oy)s-}>7>~3k෵f