summaryrefslogtreecommitdiff
path: root/mm/mempolicy.c
AgeCommit message (Expand)AuthorFilesLines
2025-07-19mm: split folio_pte_batch() into folio_pte_batch() and folio_pte_batch_flags()David Hildenbrand1-2/+1
2025-07-19mm: convert FPB_IGNORE_* into FPB_RESPECT_*David Hildenbrand1-3/+1
2025-07-13mm,mempolicy: use node-notifier instead of memory-notifierOscar Salvador1-8/+5
2025-07-09mm/mempolicy: skip unnecessary synchronize_rcu()Joshua Hahn1-8/+5
2025-06-05mm/mempolicy: fix incorrect freeing of wi_kobjJoshua Hahn1-3/+1
2025-05-21mm/mempolicy: Weighted Interleave Auto-tuningJoshua Hahn1-60/+266
2025-05-11mm/mempolicy: support memory hotplug in weighted interleaveRakie Kim1-23/+84
2025-05-11mm/mempolicy: prepare weighted interleave sysfs for memory hotplugRakie Kim1-33/+31
2025-05-11mm/mempolicy: fix memory leaks in weighted interleave sysfsRakie Kim1-62/+59
2025-05-11mempolicy: optimize queue_folios_pte_range by PTE batchingDev Jain1-2/+10
2025-04-01Merge tag 'mm-stable-2025-03-30-16-52' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-4/+4
2025-03-24Merge tag 'sched_ext-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds1-0/+31
2025-03-17mm: convert folio_likely_mapped_shared() to folio_maybe_mapped_shared()David Hildenbrand1-4/+4
2025-02-16mm/numa: Introduce nearest_node_nodemask()Andrea Righi1-0/+31
2025-01-25mm/hugetlb: rename isolate_hugetlb() to folio_isolate_hugetlb()David Hildenbrand1-1/+1
2025-01-25mm: alloc_pages_bulk: rename APILuiz Capitulino1-7/+7
2025-01-25mm: alloc_pages_bulk_noprof: drop page_list argumentLuiz Capitulino1-7/+7
2025-01-13mm/mempolicy: add alloc_frozen_pages()Matthew Wilcox (Oracle)1-17/+32
2025-01-13mm: make alloc_pages_mpol() staticMatthew Wilcox (Oracle)1-4/+4
2025-01-12mm/mempolicy: count MPOL_WEIGHTED_INTERLEAVE to "interleave_hit"Honggyu Kim1-1/+2
2024-12-05mm/mempolicy: fix migrate_to_node() assuming there is at least one VMA in a MMDavid Hildenbrand1-0/+4
2024-11-07mm: renovate page_address_in_vma()Matthew Wilcox (Oracle)1-1/+1
2024-11-06mm: remove unused hugepage for vma_alloc_folio()Kefeng Wang1-2/+1
2024-11-05mm/mempolicy: fix comments for better documentationTanya Agarwal1-1/+1
2024-09-03mm,memcg: provide per-cgroup counters for NUMA balancing operationsKaiyang Zhao1-1/+3
2024-09-01mm: improve code consistency with zonelist_* helper functionsWei Yang1-2/+2
2024-07-24Merge tag 'random-6.11-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/k...Linus Torvalds1-0/+3
2024-07-19mm: add MAP_DROPPABLE for designating always lazily freeable mappingsJason A. Donenfeld1-0/+3
2024-07-17mm/numa_balancing: teach mpol_to_str about the balancing modeTvrtko Ursulin1-4/+14
2024-07-12mm: provide mm_struct and address to huge_ptep_get()Christophe Leroy1-1/+1
2024-07-03mm: mempolicy: use folio_alloc_mpol() in alloc_migration_target_by_mpol()Kefeng Wang1-3/+1
2024-07-03mm: mempolicy: use folio_alloc_mpol_noprof() in vma_alloc_folio_noprof()Kefeng Wang1-4/+3
2024-07-03mm: add folio_alloc_mpol()Kefeng Wang1-0/+7
2024-04-25mm: add pmd_folio()Matthew Wilcox (Oracle)1-1/+1
2024-04-25mm: add is_huge_zero_folio()Matthew Wilcox (Oracle)1-1/+1
2024-04-25mm: convert folio_estimated_sharers() to folio_likely_mapped_shared()David Hildenbrand1-8/+6
2024-04-25mm: hugetlb: make the hugetlb migration strategy consistentBaolin Wang1-1/+2
2024-04-25mm: record the migration reason for struct migration_target_controlBaolin Wang1-0/+1
2024-04-25mm: enable page allocation taggingSuren Baghdasaryan1-23/+23
2024-04-25mm/numa_balancing: allow migrate on protnone reference with MPOL_PREFERRED_MA...Donet Tom1-5/+17
2024-04-25mm/mempolicy: use numa_node_id() instead of cpu_to_node()Donet Tom1-4/+10
2024-03-06mm/mempolicy: use a folio in do_mbind()Matthew Wilcox (Oracle)1-7/+8
2024-02-22mm/mempolicy: protect task interleave functions with tsk->mems_allowed_seqGregory Price1-4/+23
2024-02-22mm/mempolicy: introduce MPOL_WEIGHTED_INTERLEAVE for weighted interleavingGregory Price1-4/+214
2024-02-22mm/mempolicy: refactor a read-once mechanism into a function for re-useGregory Price1-10/+16
2024-02-22mm/mempolicy: implement the sysfs-based weighted_interleave interfaceRakie Kim1-0/+223
2024-02-22mempolicy: clean up minor dead code in queue_pages_test_walk()Lukas Bulwahn1-4/+0
2023-11-02Merge tag 'mm-stable-2023-11-01-14-33' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-571/+455
2023-10-30Merge tag 'sched-core-2023-10-28' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds1-7/+11
2023-10-25mempolicy: migration attempt to match interleave nodesHugh Dickins1-5/+50
'Cp7:-QmrG57|'8?Ўzb759QHasiYbNi9zsHj'ľtluA#,۬'zLZ IЭ3LiJAfM`DvD:WfJH$eҚP^0s*R#mwt-AstDW&IV{dvhN8"es5=1N,b nWsWͼ[KN @W~eWf& qF-76^!\/mNY&B/4f*Bvl,t0:e!%F-8d*ۡ3ڲYbX#r,!p7}!>kc@,iZb΋?')fh/lwDcm@8ӘXJ | X S58T8B{~fEֶV+kXݧs>m@31ֵ-I߶ZvK.y}GϽW?9p̠{xkvX8SJH(FUDOUlTSQ!H`@[/RX pKMj_m0h8$i2 dCTh-9@GpNCZtԛ3-'t&59·}Og<ƠKaFOm@;rk.P96ɝY? ' _05(MhfP?ςZ^Lݫo;a!d7+4/t,bpΚ> F E~sϗRҧS8z['|. B$B o iEzm:X!Jˊ$AC~$W7`N*zaYʪDoyѠ hU!)7yc!W@eq3XUcD %he]!bÞBZHr)k-h.g\6 @L LB6QwE=p!vz0x2[E./[%Q'F02FNM켻)}0?yI^EpXd=l$bE[lR?d(6҇|O Gw08v Xh8euMfk lvf^+|2oy'7IMVN9ÚLy:?py>&CVTw=Š! u;ܺY'SݾC3ӝ0$5YkX95MTMk!}\.0{3[sōRFGsz$]g/i`7 m7* vĕNG:C*dXUc! 1QR+Y8oSmQ(Kv)J(0lAW vU^_*{TY]zKȲN̰D_:DPm>VLC^Ͽ1Ȇ` 65o Yuwu fWQrBqYhyR˨+fѱPZ>xD@j,0<}/Y~D1wȧdj9΃6cB4|Z+M 6fX͑'4~=eZI+|xyn=[ԫbVUWjWr0^c{iٚ";/,o=rgύk^*akJkflr!zy{i)8 !t7}wPe}4⓬|A44JeX ?L ME| |E0?1u*il}ZK 1๞7 3O@& cؾvGN$$4{I(C +ض2S9ZFkKF !ZR~&p\L"h/\k(,;\9u_! ]6=6qfPEܬeKkgVUgL8aJO2ݹZ}`ooHȑJcF@ԅ|J82륁#R+MUhE*>leV$xyνƘKs`9lˁZp.헣Ѥ,cjdZbdSf*)!4b|gn%m3?&2p2?NaU;r.4*M\Y۳cgzf;? J9_:PgD~T[HK\uh  ^3Warx _t[nUyۼ3+dE-"{,ͫ|x2hw^a Л"k磎<<\Qc!+ysqT4Iy +lJPA aaZ?.3ZOohk~xM%.Tn*?L7j*͒:{oJA0ltiTT0{6P׉ JD.Kf((sJOABWu!=:Eqvs4 fm9U| `u?_̂rZ$N[j1t 5#-b2b*͐8Fݱ#Bq29(L e%zjl+lG),p.ze+{cvHX`U%wfjVm#g;zὫW$ e872ANl /1*s,n3d>6V2*..h[aLlɏ0J `Iuߍ5ZU*vpTl4ժ+ZJ[GuqB<_̡W[ qbntA /bʆA*Q;x*31h&0'`?bn9*$8?zjXEaTW+A0O6Q#_W~ү~UU˥RZF] Ӹ 䰀Кt 8Pf|%cFnc>:q@ɇDsd#0RSH)$_1]΃ U. ͚Y(P t{5'"8o/ o ~wZ-o[@TjN^9# ?:v:YuO_}9ـذt 73ٞ Dbhv9Y"e={"}tF&]q;l◒8F jR8% e i#9]TU]ɦގFm~e6;r`;J"}߈o5݋03a{e_tɃ_qeq]o9xS SKv R+Z"A *dysjږ*lg҈ qy3IMa|[P<$ x=W(!]S#'ީ#-maCƈdmcCj_ 5/F6o>CX.7SP?i$ \L:9p(3h+b\ ә?$`8aY0zu֤Kq('ZN*v#c%cf@+?V^)By#``BnYV4CfCn; =#$7MnegC1}1?G4@G}^{ˢN|VHB=O7 Z&,[zBy6+pPSؚ`JWNP`VkNG OQjٵթdY60#,2U:N~͘AjGϴW4&Cu".'Q]LٷC sVzƮFIFi:h$ aRe)8V/9c隉Pb) ńt\-mSicT)\lSͤ#@2q` (钵!"-h#IJhF-+.&.I MÊ>G4#|89DCJUO= 8,L>xt5>o=f3 r1@D9T`67_ozZ+ժ5J|xEm&,Jmx7 +>O#%)70%\Btn'עBJ^|>\ᦶnh2)2?vǮ68} gq.egV^o -$->"h3OA2`SXȕ\g*Zҷv+ytc8qzbNt]ESqiRA|#tIvf J?OE ukc1S4TOyp l";a6.l|UVDC]DsgY>o("ITf-|( J^""+&?>/|<&d@;6sPQf)K AZ#(>3q%XB^F#pѧ];t"1h}v#Un ˍEBIk #yZA~ )j{lw90wfދ3R%F -^ Qdf_(-99v`8F .T0w!'X#nR5_34!Jb; +ޑ"8ڨ35z7u`ѭVDzL6L2YN]>>t&2.H[C:*@qȆ^#EGzuXpYh3)uY$0Z”Y@[KKr\{ (,gx;'[cs=^]*=njk u\bܘDǾewe̷osn{~˗~{jߣkhηs+lf=X$:҆PH_7|h9EdiZ&E4wԵ\K.ז1~G6|.ܢ㴲*zʂvpwo1_NgF-ê*zy%6?tV&I= R\(oκL dBt__CIg++1IO.?d1:N*ԡa9ݍ$wb<9ۋS0x)&,=–Hw;7ZPv$Ơ+ff8P~jnC z݊R@uG4q%xJIqh]YMi&@\3A"*. !@K >dJ^ k\k+x dc8"gb;*9sRrfܬ4ꫭ5j^w2%F9M$0ƒO\V*wV-f/8@U~DGaБSJCV]ESi+2qJԠHAMU܀tF&#ldT,eQT q} p&Zg%֕Lb9N?2!w$ oΣ{{Ŕ}]$$d+$jF_ֽvMyS-W;  Qp:KvO דdY 4:76dt_F$t*rC(=HÊ=Eģq̼.FLr |׼ќ4z3Q'Gͦ4h6V/6fZm tR=wzG JG`e5mG&i+ȉ-/VkѹͲ&kxDI+@$0 ;uMW2>jpDt|Z`a?8k/`]jHJ>YQa.,i׮5#g՞Zb* ^\cYs\{g3,zIMOed-AsĊ'Q3<PYkjr"f\&׷Kb YS1ޙHzHu߀&WGB-ۡGOMU9^Z8ac{a;rV@67{Qם"Anha5u;SkrKbR߼,tǏPncS6)SRjjC>iвJ8mܤ<ͩd!3B+p2[~]Eg 9S|@yɈ(7jwLUyc{M^WG{iLR}ɷ&Qq) s4Fh|{zv3 3SK.NZbJ}$!sZ:Z8J1L)RpFKHdpAgeޚ pR*|r:A`ʭحƄP~jC|лݫ-!RcJ[T6h$^ s%-avE6di"l 5<_X}OI/)zc6Ƅ^ڴ -VjXI7ۓ7eHѦI4{pPKΎ+;7 uwÖKM `BxP#'"6ҏ_u24_q@ 7;& O]2 94nhب"_X%'VB#Rp=&;Ȓ95/鸻`zVsPXP$a N_*kn&t6Rhycx}#m)*b#fDqy'­󋉚m*3TIՋ 栬%=ZE_jB&6MⅧc¯z$׻u;ctB dqrzxmlxU8vkeE˙V]Q+XMa4e^JMZ hKG\3Z8_$IsG+Ty;G~+:(,MԁCW٥V (_4lx 75hh% ttX^Uj$7֑6kؒgp-m{!9M9-aָW +mL)֎6C1Y9Tq̉Y^2#$/EizhfټweGG6e_ n$Z%;z"%)NtI<>*ՌE>]uIsH*=e즷stXinuPqrkPg+%Y 9[,&5@(uܮ7R)3ԧ_i@㒱CP Tx( {]?;oLL\SkUAg 3Rh&G>6:3i^ @Q`[(B NPx6+ҐW,tsqU:u0IPE:R"i"?\1ԳҮH\c%~zN!_iI^@jO[]({h=/ˁ~O_ <$#!Kzl휏\TQnE&|9y34pBS3,S1'-xp/[Ep"X1Ib[']Մv{kL XqWl5WԤEH)@%ׂ,q:bFXc^`l]݃ޕUmGP RHdz({ÄRVyaN 0]Q=?HQ cѺɂ XU'9MsK_U0PUT5&U r Z*8u@=K"h2 Y{kVuf$:`:+^.I4/;ZoMLmz)kFΗsZ_̲ݎehn 4@p=/Sӕ7'k|-}[94=i+MJҳBX[MVilsrWrKjտ"ַXDhjmjhja=7ZebA]9>u`'Ͳցzq}syw3c9Vh~+DNQ#[::#MpN1XC3\Vk gVU**ˍjԚe5/T{n+~ NyFƶ5?Т5WaØu:(a[s6$DH޶bMl}kIm]95%GggN:J~c %&Yg:|y6g@wTY uTD+2Oc;i\XRcΜTc(K8 - ӜZ3r1$c#c2[pUެVTӢK A+?Iʋ|,y0ɣBQHO\7fzV]Nesm` +0ϵve0 2hd#5j4ɠ"TRD \pPT!oѫ=½) Y`cNms`ѶVVK:|=vtp4v9C; L2*ᛰ=c*R*5H\fxЭVr⥦s .N]!Nm9bO0_#!Qu}͆1"|M)[J8L<.8g={՗o<Npa |Pwo$OZj$wa]ȞvPII]ʎ>l%85nO@3\$J8r+,'tҐPoQ?;;egB 0jQl$G]C_B2$mN0P \&Z uP9A "qgki';i} j5 w]cm?˴D8I˜@m+!`m`FX R] &L%Mzd̥pX:8} } ~06مn|޽(\BS ^XK9-s~FUg}q,lf3LBӦ )Y!(PѻvLeUjއWVʽj[UHU^JH5 ݒxuO7QYi@0S @{|আSJөօh5rM-uL_W$åӔ l>G$8UK D }ܖJ^+- HzCE-Z~LvF]pT06ʨP+n#&!-#fOw'_G359>wD@1pVݱ:c!T6gz'-3H s K;*bvn-J I%>/>loXl;c#0! r28 9Lj ʥs߻0[j>g2vC݅=\|D"ݔ^6?xtU ^({YhB*W+ xj5x\'VQFN*iPn,;Le CLyya(-. وl;]H3{:.9+%hTZ2mۥa1ֶ1rISsO"^,^N/l'7bYЮߣRY ꃑV{`ITO[ DժTтRS)(Ty?el?uV{$"6%Y3mxKfOhŜ)cP#@CEr&FK^c$*lZk !(EkOs kMKߞ<WAK3Y.I7BԎ@w[Jerp{ 齝=>jV7[{MOUnbFnflۇa`1ҀiI'<1l^ [[W3x€":X8ИG^֎9T·C:TTs<y}YDݣ ©, ҳ'ܠglF8NzoճDdҾMDSǕƯu&hL!3+Yqrj*@z\R4hu#6کsDؽS-7=;X=n"e1x5~Hx׻˻YGZ mPSj8=g|]m$6Gq<#agli$ Y =B&j8g]$QLr#[Mb9MR׮.YFnYg ~ <_M:Yq90lPsKYr5ȣe(K@ {`jR&b|ޞfGt@Gsv13J\K Y.DPPV߹>wDfK-7*$hQ5M׋$>-! XWYGE_%d4h,2I].fG*7 =6,ڑˮQLD+RsgI;^B9|;9JsFemv-9腖b޻ZHjQ?^Bdolvy*ߏ0}h#) - ÂRyR}Kd 0d/CB5 2Csen7{+qzhR𼮕 _c[!J:^(6S&N(i[έ¥NDZlg…!×mߤ_404"E޹Wn%gY'@JZPQ?ֈ.v%^~䪔|X6 xg}gAۿH4oKxMsd@j^ޝ=.eL pNIؾ_tTAϼ1:}Peer41U͒ZZ`,AUr\z>v ܽ{_Ӹ|Fq֎OWhVw(glo9QV(X8B0Kj C]dߠnfV~j;8yy̽9e9X WM%8 v;!6uXڅ] ?~p0B2E(F ɠqg77\\E>{bh=6%I P ӽ kz͐#~H$2/ot[6xKAunUUu8fIt~氢*^C$c1Rm KfcT笌D,)O'gCYMLtf~{w$,9PQMRl\+tá4U]%Ԩ}XΌsQ0 ZR=\DAe̓P.T 8?ʁ(XWqmilJ(1UbgF5~^)1%(Itt)t %ʧ 'q(ZWm~%傽@(_0,t%?&fs8y ,\ u+'&b_x2pzujXk?U fȕC/Iv4>:pg)'K|+k !8JR+f kYy?ޡ7hi+ r$d{>y>gkhq hP)n\zﱿsϥZkJm1v)M-$3/>Q\nmvn#>l,'YH sG]nu T)HHXzS)9vAe\]l.]INPթl7v ъnQt YGZՁ?=q I`AeP9*JKHr iUofWHGm#*٭(ERdMdLuoyk;?~٨>NFغuV^z{Ӧۖ?CٸҧOo{ǬK𰜜 l@ +\X7u)Cɇhdoף~ڪ z7t5<3cԶDf6Z;an)s`G?҉܇ʠ٪-^GSCp]en~C@bئUG CWEX;ީږtEi ˒k q\V&`*EɄe͝F\iЊRfQ;4#90[Zhpg{ u"@4b&#Iߦ}ch8V F^#3Y7R;10xmj[k o`ᰟJKsҾ̥egog*{SJZ1ޒh م?vZj F II"mO-Nvqi<Ҟ~ rcT5SLuޟI/i(j.vpl*cq8vO!:֐kqj^+O lHiYq+#D[?vhG,}*97R2SI1v̒Ի~ɋVg6 t.6T lA FHw-- J+{x ;2mZleE@{ךZ L r^ͽ `Yx_gul8,N*IXX;4ZhPe ;$7Vw-8E囪=lYs6)q\J Wjי$#ia;_8a! B]İF;Wn eTB+]ޜD!b 0#)%FJ_VVvڢt_Y5p5!Rϩ]rde1E,_.ehJU[1co|Bִ@yNUX;l%oYJ<|O9٪.Ez !m;Bhx^ks֯hǢ*oySsJ)>ƹ,BGI9X`CHB#vB p{ڈFo,j-DKQCBDhkT2ѧ.1v߾/}f{n ؖS)P )Ak v#l;rg{o߽~6WԱ5zPӍ=6AyY7p5ʵj UT#]R蛤N?eRYCRq%~{%pCd-1)MR?gWVI ](D`.x:A\XH쁫S;4ߙ hM:bLS9lOXؠtBs~ra!wcc]1Ɏ;3LJ>I~90i$ՁGj-d\oL˳$^T1'- 2p3b@6қZSvo72+`ByLtn=phJr.굄{DttcɹNv6|i'v7Ł5n R vr <|taC%>x/uN!m8(m͜i{z=GN?̗%!'no,_][P]'״(r:Fy}ni9z{d(kIWXCD.D8w]z VDumkc^}CbR~|-+֭%~L~jggTq.E??=_O KO֞a~G hAt&O30(M/ĦIU-YXdR;I1r7tE-R6+ho9 ~pf? THN'ػВQҫaBAKGvqj#M3brG(cs' ?(wjH8KeBZ O%iS/n(" דgf̄"oE-m)4W(T z8r9Q.8\DT,9Uf^lh{TŗW9Tȕ>ϤwpToZjϕ/n.фHʕrlzQ>(f~_BSaʼn6M\3˒M^C"djV='_ĵ3%9{#$x,a:A%Z&_Ba a̓uҀjKQڷkgl׎@(}nb,q sEYTpg튛 ;-=(m1Bm>=o.uJmnbfIOBsujdf:+Eb),pOvV?kY{[?P]vdiV`N$.(j&L NZ7 #TWR{J2:1s7$$qom N]YݾV!huVvpAyjJeAxh&SΣZ)ʆך~|A.ǃa:zZ!*iJ-ҌzKVRmЄ TV?#r<|CзO}P+'~ԘÛF].<R/KUj3pͲ#99FweÎi~j"WȄrpH昵pF~Rx3 lufc6[ќwPx[Ȃk&V.-i4*B,}g4%JRt#>M9e`V0֤ʔvnmXz$s^QN.&BSKL` ˧䭣r+#A>L/rX# ZZmB_'o9HRxFT<=glHt‘f m^Xr'>ڑmP:öN1`izֹ%Q zGY0 "p V rZ|J3uX}lyA "Տ\{`0/B WeUuwfvZO'̦ä.E=hR]`b/PU{J u@4ӥv]qȒaީ]U^%sԻEJpخ[/:р΃rJ,in#y4pHֺe'”#D3 ykEônuIoeܑ,qb!&9:iђ{S`vMzg0fI.Ӏ:~e $2r4lIٜB.Ac;imLݛ yA yvՒ0J4911# ݅ [8J]PmSç t\X>8UvPhUK)~;^JVW+< 3|ۿIE,CT}8[ nY<]6:A8Vr;f-[13= |+ P۸4wfI&5;8==AA&b{Hؔ\V,2wL#$V id>-ytt1s0OPeǟq(i\+[@wT#M@s馜烋.[grw㘑95Sq)PV;DɬP-&PKZkXKۯ悾CQn=l";QϊULd+M6>O,sфW cinS"tM'%t."7t1ʸO.W]PsؾEhq'k+GґS6i*=?32!GE owhMly}k|ס: \YT2PXu[RC}gBtH *ΞP3=lWX{\RY d4Nyox\C4>GeJ 6 [jm!c4 18 9;L ^SucB.H1YpA7 rzoT#46;(衞!uK_ba?Ht|V#3K͠yJ 0H* {84ZS'lؙXj2 ;u581PJ\Wsk/8髤dc JPa0f4*UJyRA+kǵހqkM~oK<ε!=pV2r=-'Жg9PW0>)'gW:{7~.^<2eYJ"~(W)g9YbµٙoK1W`2.8cHYZ(l-hg|w>B35s?7`Cmϝ궠\oGQS/"칮|*~b5. 7(U{] -KKL*-QlA'4'TRٮENcz1ՏXM LyW·[㖏rg6$[RYa!am1zAHHuFV )4ԫTjȲΥv,4z^'r cf=N+HSb9O6`F9z{xu8='(Osޝz5 in>QFr%G{r\ǂ F؜j-zHHȠ)Qbg&)0&(:Z1G-U;P;XΣ?hԉ Pԃ9ɯ;+U~aaJP4W'%|a"pJ#s'UA$JVޜa잦ָ0d1]S7U~N lĕs|VsA\"cuHg2N0\֙|i\ aV/2:h;+;`^Lfܖi?z0t}Gzf9bY'jݾs9P&㑦򔙅@2߀)a.ۜǞ'{/!g+ һ5^衎`hnn&'>+=fxg*Le$/M:;B%*H1x|~lƫ*M.hM+!bEn#4G!YC/£vN}x3ffx,@[*3f$DU땜=`e]Yujgpy4bzǹ!Q^`_va&G]N. y ݛG/'b޽D^J&¢8Bu'{P}0s|䐄2͠g?hQgK)DLA6HC'r/AGtt-Ko+\VCcb+hm% YCI N0z%VhYa.[HltӲd&u$P['f^-y#?%@t2BD=(koAѵ5?ov`'z7w|!,htЏ˭rd#7l Bd>+kX;٘1-*#\PopAUOΫ|(AÌٍ dgFv fv_*ְ*K4iȰM^^cLןTTÒP*߄(n#qtQ$U,hTynHb+.DeۊB qQJ*lgI-vB&:_89oLt`|,ώCbFQXl޿wަ^gjQ]bb4@0@1*n¢U UErP'*IQH%lR簍`aDrT}NAdެ"^!"2Cs빀|Ҥx31%+ҟl3z tł Un CU638Y%5heh)DA5g2/(0@-?-oئq[)EYrn|k׉Cdm|h Yu< Ԫx ;$*arnC̓ϩ Β%,ʒR!N X Zmʁ>-DЗ$#dT\AZQkӅYUyRI7\BYԐS=+I!\OHTVEfuaP>, 5?VG_".E/KB'hj׬հnZ$dKFS6 H KtW{|h/9&smDzer 77p[ss\T{;by:mb$EV+'r<)k+=1@]ѫ$Э#¬wVa$G<)c=Vry*{F oni Z0{/v|3J Bk͜R}SOVQ~BH w bLgN;:lAb;zxb|{^04 g2MRiy-T/UPa4?끼+YқwCeO!4N**RCX$"  E1fur7+ۛCվ oއ1s&֙$|lx"܉O~|¿H5 h XY:"9ܖ]Y»M֥'.%(E"hrRT혜zގG)ұSuѮ!ЊbK:cQpv:6Jv>L#GfYJKM֫X^x Ի\(f`gʘlS|74u^p0 *ZaeƩjMԨIfɀ̓vbԪa^Au-B- I7a|aJ_%:WZL3 !AXRv !N)59H"93X1| _.^$@\U* 5hvJ-b_َ;o;)ͥQDܤRxdZFsaFL;m ǞSP90J>l$:$7 l dNl4)M/ ni[q}0S R_G^na.l &K @Q%Ą3]t;NԸb:erAnV8L >:^Im ;yo!{qX'eu&hM(ۍiGU[ڦ|G (KV FVh_ti#S`;\ء0 !1rٖ&'iZC-cE8W< .`Jy v0C<&ۥZt!6= g lpfJiSGDJ^ׯprs@ 5eHׇ4TR)p ]n5et)ݨz? ۃ?@ny{G\W&[ [3aC@VzpB΃CYpI`Soi=iJ5 Uδ=EPZ~0[IK'7u[cAv%pn4߹5{ vm,3 v[E"HJ :-4p/\IAUާ|u+d;2*5Ⱦ* jUuIIua0 կ W(\"5c; @|/&䇢 0+ž*;AZao08S\}b Vk sU-E9^SYjIvDpBNλă%hk~ o;QW$E2z6-9l؇ 7'!H+p_b Mz h;}-Z7=w9#pK/3cƺw S!M] z_iĎwRCnH닼dN>dwoeYi"ϣ=ϠHc{CH]b@n)u 0z9jgvuT埩z3Vn:MsL05 ĢY6461S<@t3hŔ{k@3\F\(|^aZ_=qihsVIRN9o^tQ4rJҴJx| \cPMx/Ktk)RFq\hQ7<{0Y);=j߱RuH:[YsR&jx͵vUEްҏxѤۂj҉7"hv;[X#~P{&dڤFr3(`GP|IkH)Vk lS}x¤;ICvmYsx?)?Ӣce^w3;,nh|ypPl:ɑ#O v+0^w@M׆1M"}Yϩz%ǂՀ 3;Gp78(q6%0Cgәa$k#! ѨE;IuII'񺔛HWeSUp+qNn(--x^{+CZ+8&x$N'%[|Yi_hM? *v$͠_kdt6*Hov55jk VI5$B ʵ!  W(\r0&uܧt$+MrXS\EOEmm]P<~ȷ0n~ׁщvv}jsq𽰰%15Iju$I>|=y9Kab撚`:Z%hQ{̽Y~\ j;cy(@,`+gsqθ/,O.à|%+xUI#Ok܎Y"Ro߾fdBAHD& 1#L<PŸm "1obœi8lQtDwgPFVo4RvZ-zUm&thT}@fCA2P$5*]Bls6t{ id{ݦ}}~"˜a'ܜ"iL dzX?NF̹oժԝ,锍r+|[|HE7NJ?3IR@PTZԮ[tP^F"uMٸ,YJsvV%p H e .`6L=NyӳMgf.Cޖ?p, /HHdbV#ͼ h2-@%9yfq{9PWgZK ggRB?u98(+óis'FVt(]Fn- u`>D{ zhԫY fi+R+{{Z!|Uiv&fLaHgJe$px>Th`-kV[A.xRuJ ;~y&G6U}0R,ȸz2S~JScRvb/&/j4c/F_zdFC1s4$d">unLdd432~VY&7zoPinZPHP\(I÷WqnAWna ]1n2EwBH!BIt"/$ o\URzb>E !sNl&[cH,xD8 }^qME]/lfNjIWwSei!Dc^jx}]>Kɒwt6ST]G&dTfc mu!<c4·Iο=/醗ܔdu+k>+ U2 <ӹzK&QҠ nZV!OSKґL[DJh)VY̚@R]ZI3$d2v)Pmqt?DɀSwG>Ӗ^Oj\dRf5壎@<]w)w6dfj)~Z̊'H%@Oh&'e4%QY M0λ6]sd;vCuZƣ f1O81HΞg,hSo-C+$d!=g*(O*?9o8! rM6:Ә4K#ArxGGcAKITjjg,{RA`z%" %z H9tQ[CΩIWK#fVX)|oޙ靨q'G$9fE,g#^v)!?IW*vu"eA$T()x?~°?:='|iLu7r`L{92s=azLIYؤp(Ğ VXΊu;;X޺8YjrYUkv 2hQ/WP;D<|1D0p5IԙdpVp'{~|5!a~PL=@v֞gdIὓ(5 _`uԱ /s{A2:O*l~s~\:]Tdu:̄db;P'aCGr_ġ<`oRjˣ,Iy-.7u~pХ`|u> ftw3C|ć疣}{Y8FJm˽q6(,W=KH9_^T*er O VԤWn<::BDhjHÎ% I~@cJEd30ժ/_/39=~yc0!؁:nGb ˊ?껥RR]kԇt>J ʪj-&jjP^x]p$mG,p*[ b%x~va7{^YwVFC9_)#55VdNhuk#̗4J̣$;(ӡH[}6L^iK#V᫭6wk^\y׾Gl)j9ch_:VBK.Q9>?iR)5r9ALNM #pZnV Aˈ&{[=U\gBq]:ɔ$߅mYi!jTRUJFj4KHsd5ǒIR"1RtU׷x R>6;j9V*͍t]G^ם^@e>tlkR)"дL45P@M-J&i"3*{gNrw-W98'sh.V:Ò"#~b6uDžش9f8LΖ,$;;UEuRl13!!>}`jmmBk[[[9G.3ncH|ڬVO;Ue,tsC*ϲB]'0ף4}kdFrK 0l=5[12yCp.V-Ź\f?_mk60e:@]PhE,|- "ͭWbv?~}H{kM<Ǚ!* w nŅ|e mY-l Igۙ1-l͊*;-W|_|?t;TGt-?/AlhC{ƾZΤgpq{W31lcq`|Pq*/߻'Yx&*<߬7yqDXo&%Tc5ZFhf|O_d^d{86;uƢG=_BZp lσsC.4[yLfgɃii$,}f^!c&8 XS3 |+gڇ_lp> pX n'-P [Լ9QE}Ϥ%e7tCV'XΆ\_ϽzÕ}69Xg~z,,XNgٜFiz$IbM=Fߏy7|whv ^RIBPM uo5sP@@p..ڬG8ZҎu}#[{jܬ)! pmHђPp"LE`RbT[o(B\|'cM t5*3N]R_|Isj|h̊ Xo#2驦}-E_tM]EdS3}8;p##(I|Q׳lG{UoW@ǯyQ:' i5T7_$XE/% gȲuVQޖ)7ع@ RTQj hĭ2`,Dj N\@J&PF{&M ޝrh dN4!NZr qYUBqMINeEN*AcQ(:U3QN˪&v1Fҥ}{i1AKBX=gZ4nJώY<,W]i`Zo1V'زk{rip5Sy= cqWݠ:ޞ1%O:D],~J{o"$#WtK̼.΁ehyñs.£QҪ)L9-{&x]PcYB? G,Ԭ춻'-H$>J[ .u7هBB<ם..ol ѥUrҹGݱA#:oI!/^8oO̪9!53FgJƴϯxȜe0$ cH&OP/V>tg ޡ.nph~SRw<׾H]ʋ M2ɱ`]SSmiϪ-}`JtJ\T>ٸO֭C]J"08NCŠM^dz9)v3Wx5FThdإ;k!7ASd~xUL-|lUEy2G6k}FZR'@5 A gZ`dyH$U'gHnr\t}XC0dmL1 ̺̔";|%rqάl˥j3} ?5C| im3$SghK!{>;p_9NO"ǏM6 Rz)4ɧ%i8oqL3nKPȏO-)ѕb"7n7ɣzxn96Q"yb0AgCRtR^_#!m8=%u&kY, z\B\'vl6A 'έft򵽥/9cMߜã>VJ9oφá*[-r,(^Fz{ߓn:'|֩3w>)gWJ k.5JF< cY}{gp5]cM= 79ƍyb0]9!l|,9M@AQCŚc*^ lL/nbڡ|w'' N\xNbtny&tߟzD],j4=D&/?arc>hQSUǣM='3ZP f].G8 ,O,e(23>*+4([-'Ҁ8{RRy^+g{_q|0SmQ1542 C65ʳ>iȷʯ#sM+VR}Pvf$@\I,]Zu ! 46'4pād 1@wy!zvm dv$!w3EڥL?vAmof֓ڋkބvrgvY?n@ 5.xG*Y,b%+Pb|̊vDEvȸNEzg|d4OaۊÂ/H'q '2 @GAg9fm-"jgYk,:SK;sRßPc#?"5~YKW+ِf[b҃Kv}FRcHY1y HqA:+VU^lx2;NbtU,-rb/'$:[3UPk~l^D.@>aǹXq-TfyPPjڇ k Bi`h; p b?KesiTԎ! BZW-f*q6gdCp 6? c񬻭uϒhm7"xj{w,<q3"Uk9$ko+[6\ E5ԞR =7s{6&{C OB]Mn=N k!9zs-CG -}Ͼl >8B+ )cJÞ}sQjXk=wu?9A@w^rHʔ^>&(Q@ߓzآ(f/G7bkjlDK68Kf\D%(A0;0/_}Ov=lcd!ﴃsqc{S0$F<S :ΖA-7drc} ,i( ip3* 7p6豛z83oV{X!Ӵykۏ%@&MR`ϝ?jbvDAvφ.'Lzߨ'd2h)xK7Lf{633)F=B"UTd"vC5}>M3LoFΝ`.Y*joPc;er3Ae]᱔E.vM9a4ϾC&@X."ӐZ7#zBgi's7Z6mD,XнKӅ"iT"h Έ3xtPqA+dxCm҅-txY)<:<ף5^3YgbmtTQuh8XKqV'6+pǡZygҳ:`I-gZJȋ>䙑:bsy!Ne| Np"D=c /|dqOK ̊dK=nHhbaXJ-1<HЧ/{Fu U<\{)A&{gHN$Fť'r .4I/4ueeI֎@4EGIIkhʫWXhSKi'9՛ <# qn ЏZ>Vݣ >,E8)P>BL64bdz*cBFs'p~1Լ'2g14xh8S*JnW6N+1+#l4?fc w.R(ek ,TP7OȆ˵ $gTv|S +˿E{ezCnD|8;EU57_ sMI){цUzo~ 6 :9ƨ#˂( 8ѵ 3i W6CY@S0>#pU_Ⱦ0xWaɫo?H=KdTv@՘Qq-9 e$AJџ؄ڋLޘL:Ŗ^f׈Jj"b${|yﴫA#<7еq0;ý0vM?DN-[[#Fqs& pAtion Ag9ޚ(FPA9TΘsKnJ.~0pli0 c3U4G1^UcR,vg\~" L\xKm2.gen_&#uO|aZ4Ŭ[0l0Qc{=vK/-?jk3ϓD-'T_k^ߘl3F`O֞*(9Qg N%ygN;SϟD3l$pw|&6&,)łt],[~nw!';$aġPBZnd?&I]uȗ+Xܣ0)M> ډ|BG2\/Fk3oS߁Bo+e{n.xLaš_ࠏ kחx3" X3 b@Jފ`.:x F7^T{@wmfGׅ 9Fh,5Z(7=]P=9ӌ-:.lFgJ0D$UaEpfM t/6Ņ.'z(7{&*!yFpуZÏ [2P7VOJ:YUW3g+x4 `k8/  (mʧ0̙C@D ^|cSKÀ`Õ5*MS#녞5Q0@V0RDDD-Ts$.v6,d vF+:iqxD<&FKoiŦg(RBňKȯZJRXjim4-o6 00iNF#&*pecz$g"> >/?ON~g|+7C7xǯߓcK!l~!_ ▖p8RɌ!^XB'Uq9g D?~z}mmqlv/Jۚx~j˘?躵w*oTl߄~D:<>62@8JkgկCѯoh[}Qi_`~/T_!ZA:=#Kn(; V,Rp4_ykI1R_to9`67Ȧ-׳Sxӽ&Ī$9{7o蔠m"4_RIk8Q;*֗]20cs