summaryrefslogtreecommitdiff
path: root/ipc
AgeCommit message (Expand)AuthorFilesLines
2022-11-22ipc/shm: call underlying open/close vm_opsMike Kravetz1-9/+25
2022-10-28ipc/msg.c: fix percpu_counter use after freeAndrew Morton1-2/+2
2022-10-12Merge tag 'mm-nonmm-stable-2022-10-11' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds5-40/+73
2022-10-10Merge tag 'mm-stable-2022-10-08' of git://git.kernel.org/pub/scm/linux/kernel...Linus Torvalds1-11/+10
2022-10-09Merge tag 'retire_mq_sysctls-for-v5.19' of git://git.kernel.org/pub/scm/linux...Linus Torvalds1-0/+1
2022-10-03ipc/msg: mitigate the lock contention with percpu counterJiebin Sun3-17/+40
2022-10-03ipc: mqueue: remove unnecessary conditionalsJingyu Wang1-2/+1
2022-09-26ipc/shm: use VMA iterator instead of linked listLiam R. Howlett1-11/+10
2022-09-11ipc/util.c: cleanup and improve sysvipc_find_ipc()Manfred Spraul1-21/+32
2022-08-07Merge tag 'mm-nonmm-stable-2022-08-06-2' of git://git.kernel.org/pub/scm/linu...Linus Torvalds1-1/+1
2022-07-19ipc: mqueue: fix possible memory leak in init_mqueue_fs()Hangyu Hua1-0/+1
2022-07-17ipc/mqueue: remove unnecessary (void*) conversionYu Zhe1-1/+1
2022-06-22ipc: Free mq_sysctls if ipc namespace creation failedAlexey Gladkov1-1/+4
2022-06-03Merge tag 'per-namespace-ipc-sysctls-for-v5.19' of git://git.kernel.org/pub/s...Linus Torvalds4-141/+205
2022-05-09ipc/mqueue: use get_tree_nodev() in mqueue_get_tree()Waiman Long1-0/+14
2022-05-09ipc: update semtimedop() to use hrtimerPrakash Sangappa1-12/+11
2022-05-09ipc/sem: remove redundant assignmentsMichal Orzel1-2/+0
2022-05-03ipc: Remove extra bracesAlexey Gladkov1-13/+12
2022-05-03ipc: Check permissions for checkpoint_restart sysctls at open timeAlexey Gladkov1-28/+29
2022-05-03ipc: Remove extra1 field abuse to pass ipc namespaceAlexey Gladkov1-17/+7
2022-05-03ipc: Use the same namespace to modify and validateAlexey Gladkov1-1/+1
2022-03-22fs: allocate inode by using alloc_inode_sb()Muchun Song1-1/+1
2022-03-08ipc: Store ipc sysctls in the ipc namespaceAlexey Gladkov2-67/+126
2022-03-08ipc: Store mqueue sysctls in the ipc namespaceAlexey Gladkov3-61/+76
2022-02-04ipc/sem: do not sleep with a spin lock heldMinghao Chi1-2/+2
2022-01-22proc: remove PDE_DATA() completelyMuchun Song1-1/+1
2021-11-20shm: extend forced shm destroy to support objects from several IPC nsesAlexander Mikhalitsyn1-46/+143
2021-11-20ipc: WARN if trying to remove ipc object which is absentAlexander Mikhalitsyn1-3/+3
2021-11-09ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTLManfred Spraul1-13/+0
2021-11-09ipc: check checkpoint_restore_ns_capable() to modify C/R proc filesMichal Clapinski1-6/+23
2021-11-09mm,hugetlb: remove mlock ulimit for SHM_HUGETLBzhangyiru1-7/+1
2021-09-14ipc: remove memcg accounting for sops objects in do_semtimedop()Vasily Averin1-1/+1
2021-09-09Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-armLinus Torvalds1-33/+52
2021-09-08Merge branch 'akpm' (patches from Andrew)Linus Torvalds1-12/+4
2021-09-08ipc: replace costly bailout check in sysvipc_find_ipc()Rafael Aquini1-12/+4
2021-09-03memcg: enable accounting of ipc resourcesVasily Averin3-6/+7
2021-09-03memcg: enable accounting for new namesapces and struct nsproxyVasily Averin1-1/+1
2021-08-20ARM: 9114/1: oabi-compat: rework sys_semtimedop emulationArnd Bergmann1-32/+52
2021-07-02Merge branch 'akpm' (patches from Andrew)Linus Torvalds5-21/+63
2021-07-01ipc/util.c: use binary search for max_idxManfred Spraul2-5/+42
2021-07-01ipc/sem.c: use READ_ONCE()/WRITE_ONCE() for use_global_lockManfred Spraul1-5/+9
2021-07-01ipc: use kmalloc for msg_queue and shmid_kernelVasily Averin2-6/+6
2021-07-01ipc sem: use kvmalloc for sem_undo allocationVasily Averin1-5/+6
2021-06-28Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebi...Linus Torvalds2-32/+34
2021-05-22ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiryVarad Gautam3-6/+12
2021-05-07ipc/sem.c: spelling fixBhaskar Chowdhury1-1/+1
2021-05-07ipc/sem.c: mundane typo fixesBhaskar Chowdhury1-5/+5
2021-04-30Reimplement RLIMIT_MEMLOCK on top of ucountsAlexey Gladkov1-13/+13
2021-04-30Reimplement RLIMIT_MSGQUEUE on top of ucountsAlexey Gladkov1-19/+21
2021-01-24fs: make helpers idmap mount awareChristian Brauner1-2/+2
yŀ'tAoj0+o$!WDmT}G~E}Q׼FW՘? ǵSt5N*1C#}]+l XɣAAs=tdݤcP>vXW* eJzl(۳msί7;J5P|Ece3X׭=ܷTN"w~yJ|貢vF~h~tӡYN yn #h"ZH[ kSЀNE 3-= Ԑ܉pjvvT?h~G{}EVvH+>w+wrTŪ$SĆcv^R }ѣ(4Urⅺ^{˜Yu}.AZ<}c&dOGo[i[63h çoW>厝2N_$c%=36@+iO),6f/#+@0lGDo"PZڅs|gw<1HCؤK۟QeB j>i*F2 -y-$U2moD4ƛ1 45#x[Z ch4טdbz |  坘d54SO$QT!D\pa٪"dԗY xL<:#7@fsYDaMp_ 0i lHf]r[{v_.EtAf=0+W8yZ+9*,fq{!dDOpϜ^'k 1GΛw㻟N(C =-p\r.t7kH=T#x8eqxXB?7t?(J_?gm#˩{pq-nL?O?MNX/"H-etA-A*?dSKyy96X>?7.-塅ՠi]Q<1WKb!#wWfKL'5$6v钶JoU9˿1kJ?}nќޛmx`\g}RiиEˬ3|!$-%! =U3T QShh$5RW&AsldJF5M1:&lfƭq 5rvch x ٻYl\nD@Xc<#"1[ߊ[$h$!KlaslQ[$Z)ksZdU|, E@+{ Xu]a5pΫl llU&i#J}z@oWG/'Z^P\Hηe !w}^`0}/ƖӺ= _`<{&Lͳ gl%AԌ69nuʪ}y\*>llʣ$/8z%++Gv;.H*};VjCfI-k9"z:M{dG&cPKt:$b@ s[<6Q*~ {K v惘LU*O|KpFAyZWx7`so4_L<4lu^Ȝܳ}ZO+gnj R]LOc]"vyK,4.5tzϥ (R|VUud-]j˵9AQ9͓eWWss2G{A,|{HmァD:JQv/\Őok_Ե;J+SD[};M w|"I% t|0 tٷ8{+}|yY~bQAX@m_2"B|+T8#EIU}kV!d^W~hQ$V:-hon{kySX-"axNFA3(zoZr ;^_{\ٯn !F,Bxvׅxv`if:︈9'Ë 6d[lH/`;x8@3ڲ 5ՠӞ\RI? OV`E޾}|lޯjRB]=@F ccl][Q9Fg'J;XR[XPH_b =- ꋡ8U:OT-54 EݿvUfD K"ޟ  G뺳ڹxD!oun[["uxxazIQ[A֌'ٻG `.sY%X&<3lJKpZ+4%)GbK 7B(2GþW!qJ!Ck9{ȑ2IqWZ>1ʝ_}W?10M~d .0NjuЌ L#"9 +%1b8N1bP(yzSDB"ɬP )4O~gt% WWiLhVWBi%x7h3X~]缕3@]S@_]tkE,[$'ؓ*pQ Dp2~ifXг!Є2 \9m,7 np;2S gm#1uz%%5O!J_}ZtDh<ϩmkVNCͳeQD0RPXAHԏ'ANl6Cuy!'-@V8̏xz!'}\օ:cˎZꟾ7DZ%}7>HCS}S@C̕!p;:뽔\aW#Ǐђ K9^-$Ås[ڟ9Sѭ2p7nԁtޮn_.jQ}'30XCJ{avEX£s6CnH4_[K@P<]Y$ڿ$łUUc9ݟ>=\K7a!T%'xР iwAeυ!XJUohNf֐ձ19y(~+"\ܻP^+|4ڂ9=ʻYHUm:B2q@u7WW;cee'$rFtiI17UzJŞN{L}H3ǥ]tr|Qp"d5e*.~RhmT~2";zC$Ps s rܔ9(j i3Q"!NDuqe$4Ꭽ3 '1Z0FHb$!2-}:(Ӹ)yVFԁTڍ.ԑ$k":l'1[8ɨ`]E;*1aSccɢ/H]y XkM9Fb֍gSxZn$xzo 'zۖDK|J k͛ ~ZV644 Ah3^>? 7zy > [9zd-ceCA ->W YI#Q]@!n;R{C$a΢ˠp?hT|8|:)⨫9v9NWBx in@POޑAKj r9]׺+J_GZ[TrsVs4`Ìx07qmZM>,BGoQlDzy:oEƿ+WZüߍWZU'׵j{љv2#80i>9ni=LhGo4UXM PZlZU)c'רj-<^|ڗrݰ11b(?:~e4%j-S@dNDv6=㜎1CҴ ?"qѺ2T5/&Frz5V`E+PL_ı,,U/ΙUT7#+jS|c'꾪 Z/U谐iR$E=kGVͪzu>˘Ig3M.Q"~j ց^jM4Xp((O[5U&&l-Q{@B*w7%:Ux phܻ:?֯:%r,sB7_=e;c,o~c>hvvnOEL޶ؼ9|1I҃Ð5/OVTڨAgt^+YMMkm2!HYm*d _u"n3R"nEAGG ZLĝN>IUx{($_ŖXcMO c #^t\]Gcq '5RXY{+V"[("2U;Ckᝡ:9r_OS "%ecW*\—݌zg4%7|.#3ߕxqҔcjy@?V/ "|mg+q d!Q2FJ7&qwA":?? u^䘽;̏D h3IF1̢f YӣʾsL"R|EpJϝ]WRj%!}kDm|tw뷼{nU`\% `8VgLQohr5s`m&1^>پ xnϋ^|2dMM*F`YmpЖsǶhlYnF*\ÿ?mk 򘥅(rF|[d 31t ONN88>s2Ύ+&D9N!Q;03U^$vnҮr'Uoz̪gxX6#VK I k^=P\_qyԕkr_|~p:\Y+CYgoӉ[+Gx?P/#/˧Џhp[jk1'˩!'#!̢3^"KRqKas.2ȨQ9ٚe@Dk88tn67aؠh5Z95hFfH'[y?豶?FC|KD=90A*/sYmaUր-ߙ$2gf E /PƏGrx -X)clu,{3Ŗ5AZm쎆嚴+ C9^mQ&VA#N}84$3 cAܼ]oѷ\2{'=(Sb= iy$RO o1ܴ+IF'NKsHD*YzUiZDZ#21jUGj(ɚ4BŢ2if庁$Wi4k Q##q3qKwdp M]:R3ZcHua3V`*qC47l%[j&66/yJxkC#zMN&@H0~z89mU2`=Dr+ҵg12#Hc{ I7GG ?N&]A"ο.^ǜ~Sr9)HkǹNNx;6eazJ̘8R+ɈO&䊥UFRllLj\/#C&b٫RZ], #!W{b4[ކ u$i"c2D;<OVL ׺NgK&)M5(aΫ<+0uw6D +a(;\4|HuG-&ijpRHE^}Ub8R8JDʛMhTo=Щ̍k` m@D 7M]Z'Mځ3,|Fr.iX4D8o'7>:&)a)vrdxzW>REڳ=*rqinSir%~5Y :~6Xwx}?[\j  K!Qoþdw:cHF0\J21(\qK@JZ+25!<ڕ'-"좏J?xgֽ. 㙖cWoNY$]]"C?ڨl LIs p9WÛZ6,R,͚6&KMv a(I¶cUqNLJ"DDҰ0hʉCVfBQ6]fZMngۘLZ㿯+㐹ToEXWDnUg0]-WA:_}g\l/S?nn8jf@pyvQWD<6K>mg &Rh;hYaA& cHr9N~ "XAw[HJ0t8D'qgǝv}N½sei2eIxY_mDj&[{p6#* :ctmr-0iƪizr<ʡ?0"۴OpK1WB?u~D>!f%$ok@"C<@xz̋!gu f7S= h!]BaP,DGG+FBH=|-EqM]tqQxt(K:mޣ'<ƒ Dsdgpׅ=z7`2Ha Ar9YM{UjkRSD3H#BxDz?gc{{u-; vUG%ܩLCls5pF$*Y;8T|jQ⵳@FWLPL "bTU@E b`&H797j q=Ս>>曡pPz籌}ux'Gfg+xsCBoɓ?he1˟"(_MY7ӿ(VD3su@3 n SqL޻ XX0c\ UiL|]l}]^)6&6&rșԚlÍؼ&C찶c/=n*X҇pCx r#_7z_r҄KtDɞ;xmt^ZvZ>)>ϣhT Z5<16~UMiy3Ҁ #(grmֻ^a'j~xM[+[*;Ty?ṵ&G]u. |>">r\<@\b!M[[GO5P+tP8N g^+؏KʚzOE6"t_l=[L" 0)ބqj}N9=bʈ8Tkz +Y8LӘpa}071I{2 `'M* F3/A )"+t(dT+"bN.V!V;ʽrc}Wn@:sDŽwXYճ8CrrIUss^ߎiv]tS2w/V!\QWyo%ӆg}e%_`M^Sуۿ2f.ELGpXBaQ.oLFXUOI,[4'\rCI@qlŁϱ!2 KAM=+9:"w$c8ŋ,,Ca ck-> ک1qgC:PeWYXP*>%r7 AM?+ơQ&YN4S >e2Wžu}ލP)>~gh%a[}A[iX;'=wlx;W)kUYG=Ԯzdu}Hu5nvzKs.-M#CڑҜ"s-~~:knczrEq9w\; "ז}=N]s|8.[rW.`:ߠug4zg\n 6G=pBeتp#Քda&y~gW^͹msaSg˩Hv'dGfl &,bSz'ǔa$V( n0@Cp~*ҫ`?|_]Xm9u0bXVQ"m 9[84ow5+X"Ovw0P݆K뇇q*ه۶js ̸d[m3tuqH>>ę~\罝F/Jcct+z$s7'cW(6Kb=- { M r@ڈ JCN\uJR8Osّ$Il D 0@B y)_5jXTZ5vgǎfe_fsp 4#UтOtI}(O\|xx>Q^y$u]2 %9co뀈EAoY *Dƌł=>֪ˊrt)V zwӀ~3R$f}V`(k׎[XgҸǓY>۝(my~?zJ0dDZ۠܎umW8of4g6LG Ln6??LW+b?{SOuXVwZaK^'9}~X/j* r4?ʍ=dum:`{/#־x(S$ț WAa&X\ieqBO 5)#ja73q'D7+B4?pP⭺ f !AoE@Lo]G`xL !#,,*J IT6Vuт_ ="gvXf^bC;^0QikvR XMdT8:Ezɂ=L2@̙,܆j(~JP3l?-qdcÉհpCU>R[NH2$7@,:RP [ф".<ͽSJa~=~чI1òy^ y,Ц˕hvh>EKp#G,ilEaL~kP1qײ۫"\ ^<`&z;K1.-̱}( )gh՝[o1~C|,Wd: Al$VdQ2^a`O ToWTRa {Hw=͎)G;-Gm TG.yAWG|1uY,٤_Tߺ$aϾL-jtp#;̨&uS_Ω߬~_ `Ź߳SfAYOpnWwΏ_- }uH:8v#R>Rt :GR[E$HcŮ};O7}^{)R_{IfLbq!mgi 8ֿrAzR3/HI bG.DmFS@[AƫpG9" &wjʑŒ`#̍P꿄`r1ak¢f<ݾ'mpnBb"D^|(sG>UzRǁqcVnHILd"} xvLvsks97: g;)QbXs@%`ʌ~.aNUxs*/|;yݮ;L{avy)mw8/RK80D%cjP6TLc69i->OFXc{(o+%ON}xyV*Z=V](ްQ!^iMlEZģ(5>TqkZ%=E)Hw7Y=qV%d^!@?}E>rS;:g6}g^WBU}XdG{|_vnTJ-w QM&YV&zM'_x~rQ{vwW3L?- %m]q_ddtQVIXk#)ޮ~d; ׷|mk6It]9Cu0Ml TD'KdLϥL:+=dY@l/{V5Lo-q < T: fGɸv_Tz߶a&HݢspCps^/)G**KcjwNhM{z^1~q>zN%I q.!트[5F*DCUne)l`O8}iLwLA?,* M"Y>q[8ۙMGh槾Kq#s|SFk}WwkV]y[|GQ NDbBbGVUkQkfb^peV96ݛo2OgՋuƦc)_Mڜi帖*srbwhRnkDxxJrHSk4^;ʋaɓ;Cd(*w:aϻfΪ.8u*+jm>0**[W"TɁE,nsr7dq!kziLT$Ig-Z$ELGo\Z戬e eXf7WuG4g$ş:c'K!:#4.?߈ADvv}+Z>!Ϯ +N(w"*cYiX?$=3 xaͽ(?5tc"xlkfgW"t!q{Hc-}~U߲OĤ,X nid%䉽t #/~:ᐱ`Lq P;o7n[ۖOnMVլWxDC=`N.iUހ K,QΡ`c(/ n<ßnS 6sm A 90Y'4m^kp.rVG U:`-iuULbt+WHmO2` b3MYbl} 8![L00pU\2` _LzWi,v % Qq4A7AUx273Թ-ڙb˪ù¥ͷ*Ou,G\՛+׉DgVs n=C.;@*vwge'l uM݌`ghBVr<60R W޶CFgC-80$b(laN|''ǒSqd'lGYяK3W6Y 7a[ "Dyw$ k_\|rv5.P渺0_@LրIOOt{RiDU n"R0{s/㧖w7JȽ\z1qG?\ϴc$+۳ P*ú,YF<%St7;%W7`G@9@!y;c s#]<|yD*CMzHNFHƘqׄ. Ht!Kgгw#p-LT%E&?Kw}[b265 v+1v)&'TH؍C67c(%*cY쪰[y+bDФ0G.0TT9 X&9qnӤNY i9-'c x(`Azy+%Zۗl T~>h?ƚޏ@|jU&C|S4Q|kA0Erjs^a0HxTcUDa >dP&QX _lb՟|^P\cJiSa6}jK-Ϲ -ouoeI_.Q)s=WŴ\Z *Ȧq :磤7"0DRT s¢78[:e:L|\鑤D*kYR%vqYd,p.OWCn?90c KCD ?1Hs"jwwRVjj AWYeaYȈB jUXg]ʵPkn%<vk[/HZqnZXT䨬eB "=x̲`W'2H@v3~JcMuz 0gD1[ϳkQ?F, uϯwE>A&*,S9Am!"AY:UD[wYEEdl4pv 6'!PQrCN҆qEgJ_r*,].G_ҷ;wն#|/zJ Z{"XL9R?[g52ל+$dΏƎ#Qo5bg >x, m#g *@ubD1C!<<"Z.Wa q@I1AcY 8"HɐdEmd0sIC fEjMq-!ލO=Myֽ蠱m5KҹtRXGc1,N}o8k'Upޛ(O&f mv,Q*y!hR2jr(&%S4VRQEK]JޱH_]ǑCxO W̕WNG_a0ӱAߠľopM4~]P@]q[MőfAQAEvA!·ݷ?eFx2c.k%xAj%a=56)v:|/dZ73J!bwKjctm>>KmW?:En1 ΪECv:Stg ouH0*l믏CsZع/Yv<ŒׅÖnAϾz4LP uδSE}Le'x;A #&$8֚NEoL\l5#dlJbɲU$i及zDT7 BO68g×V?>uijw rq5_c} +"AB `DB= hbw=]MxR߃@tg)j<0)KٮiO뙺P):Bln+ s"/+<͔S=ҬmW}EeMDL gP,q‰ex/niɮ̒Lqr;v1KZsQGύTVWA;a6V3yn1BBQGjV,PLjdD@xl6BZ A!e:Q@Y [Kǫ>^7O?0os`pϯe͜*po4oZAΨ} 9q*ڽJ4ڴR {k4ޙ}Gmgᔮp0yXTTOO+>JFQY-X`"t|w>}#~a{ԷYKdUL|OY8\e!3}J 1h|UP`TSdyѿhBky1Zʵޜ;{yɾ g%1Xռd<*4&a0]5&'*%@D8apBZYЏ RH!_g8u G #~Ⱥmj>$l<B0 8;m7e"㚪gB_} dugM(L'QoYu=gƙ,Z5+ GNLX.a2N1q\єaNeB""r]Q'*jg])w/x :2zOsXEF<IkrG "4ba$hwM 'w56w!X+ 6_:>fx %+u!{r-ȯ.Rg]LDԚU!4)Ýۨ_')O_!p,E1hXr+8}jEn'/=( -uLK*jjf!CgE5v~oR߲bfp ,f7,ƿwbqbZzP&O$lpaUq%4F]j?+yϝ r:?< OM昁y|43h"xծ-9prTzP0̟;xh]M,c$ٌ u٣ضhl;Ĺ|Sr梮 M_6V?D/>TPgUSI ̷|*vrg6JKf< #ABgxe* .ɢuǟ;V=u!q#(\j*,zS/U@jtڿW.Ლ)U@ ;4ͤuU;gAR/@_H\ܟrecC}Q^] J=7bg>~z7\+Çy>tw=gL H rHQ"µBOEӊ,v*o5^=Z,۪r踂N  E1(sP}8Oa$-_gaq{W-P$%K{8Z扎TT,whp=*S{Kuq?Y <ުCC}j)9VKJjؠ0h0W jv5tD#(EAMA~ we +vYlkd >kȔr]N%2;޿@DXғkj4эnlp'ETD9tJ|ir،^RB5șkIJ) \*T Ҵ`r4Z/R]s$9~ht;zM'9gDCMp|DĕVL'\A0j66z/n'Q/J\!A#_|@vթFy#>ôH޹vhx8kdamМl)ga{4ZSOLP0!&Ba&w<>p+E Y i]ƏcmrBuZ="0oC󈃄7duvmVJ37$$ɔ3=`wl9E}UT!lh"740Qwޭ R|f}ZTu=(>PA&~7߀Krn[ʒlF5yqS (~(XG5|`O2B<=y8=A{<lO H_ob3D|t}n*2ـw=E IGGۊJkaa3u*Y0*2XYģk6+/f`u'hw9'ڢXc<\ E!|Xgъ|Ƞ uY=gO"%P9 NoK}do '*Ü|Ţ[]ݘװo9J~Ŕ b4/i;϶@s<|07LBJq/w̹306JemRP!J'sm`<)~I=n%Bw!r2 <~v7?Zz`dg/[?WPAI脄7N/8#3Ko{,q U'4nvP%sNᎡTH@B biZ5@,5ٳa3k |2tBA37 躤?gPrG'ONݻ:,:2« Pb?~? -$rh7knEuRb@`h4. Σꅾ/7Z#\sAaL u9Pv#xGolT;i!D8d.}k]xݓȇxxrGZ_J`}KKs# 8M؃%J tgߘh0,2; RpJzP(ӚqE6ں()l+ѹAh+<ߞBOs8@,a`y JX+hŊf - . =d^[Tٱ$H A`aǟV~EuN uFxكr$Cx>w<(ErH31zGAlbyf^ұFEm ёA*Mpm窿2ldT{騪8G6JqcըP8px<,qeQ.o-7KVx AMV@OZu٥-$% <γa#җF%Z 8*6T!.C4%(c:5o߆TB(Zv_La\+ +)Em/1(mO*7j59pAJ /Srg)K#gv5מRFaԔY$#}\ \ϫu2Є -1Y,zps>1oo~rZ=ȝ ҃m+3R]8Ac glK6+ȣHOːٚpA65-[\:#aSd0z/=vo ^'&N#kh}Xɏ5;&9$`|oMT% I snJ 3o?l{jd,gbm.3 ^G i<q|}y0 U݃' Ȗ|mvçVox;J  #UhD;[!Pd[~1ͥA)'ra8 oj"oޠ]s㨋c`/.]dp"!z4(]r<91N4\ O:*ffC`u>q8 gUf|Ǽ>ye}^NA !Mr3'hȽV,ǘ- #B]z5"㝽좊_7&Oٶf ,+;x( ;I,'B6/lr~iN1ʐ1@:,P |S~IuW| EyMu=`pZmےH:j{k_Kuµ\(ju~FBԨUrh02XV@nCia/e SdTruϹӰ!3węb\QI'O;XΧq;6LP#r;6&_1a"NWew:)W*OOrY#8/g"T(2u mTG\wwE %K^E90+q f ^ I.#ݺΦ0=L9 PI%VU6a-Y=5o׋3SGCnlzgX\=C;./޺|[ͼWR[ "V t3 H{UT2LЪi))8:1iL=^ r2yQazo~"w:7$Q wxNu<-+WX+Wp>`gvd>Ԝ9uc^RJ"<(OYOuїoϧ ms/+7A,ahwtTѪn3}=|]pRfi]ַZpW5v$ۭp&맃r7<r(Ӊ*S6 ‡}'g7Ac8 q~O9x*wOC sYv1Q_S}f`JIEn5w}'! >xۣ3}7X94煯/6C4k|\Œ;gmJ+!ɀJPy¸uQ=S٥b" 1;霮h?Ʊcmw2Ou)/Gi~*6S3seEh'`ֶp%QrnFkb:*ջUX 1D .'ɡr X_D+Eҵ|$ݣ[2zn+t7(LhX9t ̎ Tfy9=,._GcF[ ݓݩPqnjd&7:n$^+dڍXl,0PtQ|<t%qPe.Ӷ"]Ѷ0]I NxYLb1yiQGݸ[pD2-QM drjn'rr =s0wK"zL"߳|3xLUؐ„N~VXCȩ2#o!p܊c%D >!e~e>X *D#b.`OIG-=术bo/Ty1eR˓ ?ߩ\~)*37–Sq 0*ƌ"(GrD1,C$İt`Sωr>2hPٽk6T"$dX+Սk18_Q,'1ۦ3>.;Ds>4U~l9 32+3m1dܕ""{P,̶Kuk 2}d 8\!|&sAZ7G@ ͫBA}]P# ?)]@ \rͺE;N)kdٽ+oGED)&TɤjCRF/MMlz+*֪Hu/SfE^{Cr2S3T*5M%({%|Y=aF(9!I ]! nԃqp9 '~|疌'^dhj.(!%{JG"45Y?-3gƳֱmr GyUw':G$~`dr c)!,h2Ձo7DREyH}$=( )90)X1 ^ʨ-0"lK!Z,-.Vz]rW(DD=Gob9G ~4=SL51XC|XzƵ{k yY8Wn6SJk *M-P<8|<.063-;TMSdBՕSW78{ a1 Gge$O:!=zC39$qy5˚g̗ ^mcSZ XXY%cxP9бdSU_2Aꑒʵ+8FsyVk0!#[-gWhf c`Run5 S GgG ~nP<iOy/8sΆU-#ǧ9S5QGDDv87+=XuNl B%8`I0+i5-CM|~(qFʁO<#n < Qa-d:@$D[ȼ{o. 9aWt4%{YhaC"ʚx?BN.01(Jg&ʿ,y}yloGGsF{S 3^M}[$AQon[l+ĨYZ N[Lq8N([Pvgͣ`'LVd4SP ]H^;k;ؤ:2nΑs6cD Xl Þ8x *D!tb0XIA*Wyz- E\I$j;eQBڗ) Ma "U'C'xJjLSHIrZa꽺I[耠" Gu_ƸK?tnhh̺dCbdQ_P@,hq_vOdDim zZN3?IkP]LڍT[ӱTCpJ՟pY:쨪5MP0y)z;~UHIgqD{]4GW]&7ZS3׶вW|ޑvO{T&aF}esXP-aפ6Jي˫mއ5՘^a8,=1oC/A׿)0g=)6MҟHN^!zC5ګ> lLhT2ܰOU*^Β:A1J !0hZc Φމ?.7oyLDVB9ţ%AvC` w J؛ T;v?woo{~i~+C/YۅF_F>[s@<=q^zdLnFRZH̴$,zjUyoxB C??-CDXȔrұ/􍡄!DLú:qM[Ù5הp'-}vI]+]z nxg{S܃A <뮡ھk;lcMcA,Pj9z}1e{mmiW{>l2f\;(! Ǖyo#`gR6 M% 㐾 pG9C;a1zG:as?G'L]8쎤/_zُ%I -HW|^O<b< )& RPBn2"Bd: ( #%r*pO8(0lġ-QUUbl1 ?"G5i"~BĈL`A𠐨?x4y?V^^odSޏ^JLXz |'oE +Yc׏[u~v1cDU@Ylm`٭SID$H7&Ğ}ǐL$PײV\bb8Dm"iYQFTۄuB-=qeV ;iqf=Up.I/L"s&8wUx&D\4oR5n<b> *UKnjKTНF-ۅ?/-pc0)r-?CoizTxIm7=%*<”.fp;Jf!JO{EclR270o<i5ޘP鞸kǦPxp'T#k*R/t߁LsgnW'6t=Ek<~pK&BRc37(Ps!1n:rv|~l~hr|K)vGʰz R?7"t| Y\)0 ǔFiwË/$:GbhZ@ AiR"bG;$JD@"{4*d"tɈ/N]gn$Y6{MRMPrvY}|ە uʞW݇b`R뀢du~j <=z?`;=٫ :T πܙc{iMrA_HlU_kycl?O :5ܗC#bd1O+;{>,7w9i o?_nf) 60P! nHq&3?rςpD&go?౟ͣ\f,1;6IZ5E o!jH*F2KTo1:\0P89?XOo zEQǻ_qø ,unux~M֋7cݐ(M_?N1p>7 m.w=ò[WS6KÜgV02_axOGɲ"&`@?6ByHw}8AQUxv20Ú(G8_G~&AO*ϱUG*ign^ ڱT-;Y[X(~EʢOӠsXIGꭟPE_.5wޙ"X ?"UI.eMh hc` ke'3*_ v*jB謹⬚Śf"Zg?EX>AVH}cjo0F˜Gb|vhׄ oߚΚ )l:<'?U#ܪ?on|eFRq\'7RMƖ @^HzwgL?_]ßxwvA-=a`sg<[ { :sj[{3w w_O(~+m^-}8H)9X=y-p~׺M ^&h޹T|,s%:O'x]{_'d Xnv=`>bkz]!۩=ҍXA{^\WV?نph\~krܸn q&is6iP z>Kt gt&|W{A0͞<Nd_G{\M5r `mw+eapq[z 6AK_#Ozxҳ.cnAmފʎm~r<̕6ɘ8;0#}? N" =<+д1}pf>$RVM 6S(0tUC쯛Ѯ'CfNF, 8D-jĽ d_՝^n&oOw4k%7䍸V;=Ͱu 53A6g;Ê 2KIQh T=_D8 t}M8D{DF5:0q|,0ᜩng=α0Q=4NS0̌T},tGCl ztמ7J W]'uۚ<~k/ǯ1t4TnZlqU(G)nۜ_7 1\l[q`%,:⊧avXzT)o-,nQz}Y鵧fGo nLcB1V{kJS)]5v^m.(Dj'n;^>/@G@7. *jL(-Ȧ.OKe2GktfN Z NLK!Wc*?WI/__~'c|p\V]KZC N:H}_d7zRh}}MC_8)0'6|^lTRb?/.gVFի9~MaHu<3ɫ"b1َs~y.,o%#0xx10N/ek(Qč JXY{֤=~GQH{|sؾ0֍>NYIBnٴ}>#H .(#CMz8?>n-RB(Qq*N6yA[HGG^" `*=}?,٦ysNU7g{{S1$✥Q| z6>Օ%6c(f}_f>zǓ?/lgRŨjh}*mBVHX7bBSǿ`nipPб@δ/& .֒@Y iL0[ג@\.6$E6`_`L 6%a28>hWcC~33lX1RMA/~\k3bG%-*knCđJXm1:s !w ^zc`,g^p_JRyAO9}`ǂkD36$.]o#5e`YVȹa=W8[wSxv^8Rh)~9z+M׾@6?FAy =8D Ь"aϑJ "L~,i44m% :1߮,)ʲ7uD0ֻ#C`%hɨ\&#n-5Vx)]/ރ_K\Jod.5xah,3hn9L2.tYFU?db;A´վ)+8$O Kvm(s kK< o8;dmAeHέY/&oȶR0#~hQ x^;a}ݹe?|ݚF6}vkelv' Z _&󛠳$FEʾ.)/x]#rqwBI>Kp%oGRWwuhwz(h6 JW:H1 3PBf-_E| K!#рff*UT٘ {Gk}{ǚMҩO;00/ݜw^0TnAcWϬuZ+vngy*ou.szK0d!Ԑa[ ] ?\Ҋuܥ9m at{ !^P7 x$s0{bJ<2H8hSMOmNy Ԁꝷ`a|5"7MA϶^7n}A0F1^&)zn+eҽꤚI b&9>4:)pEMKj"*kx9C{mr+S,D2D$X~/Qa󥏖_n ^#X~~c/e7 I>%z .߲\T^;Z_Q^{f\a*V,r yyXκEfEQ&J78-^N6 L`ۛ(C5YXm^fJ -rd~纏HqA彛ȪY;D.ZQ4*(/fc}-yquObnhE|`x!X~vi-ZF6gkZ%'Yϐ,0,TC%XQ:s:;kьۋ/tLqڱPWQʖ.bF٫kVcGuSJۺLz+Dž)i5P#V00w{}40Rr^=;WAκ]jq" 70[^L$Dli{Mb0aW--'$:A2"I FEB*$Ɯ9EK&fS. ʢ[C&WvRrgWh(dU e(l8jϥ3lڸqkOcՀ,׹91ai~E۟m+hda\3xgNT*ĥ'1 JF J0w!6[ 3UM\L "J悯Bgڞ멲beyy5|W(k[t%|%PC9:f(~]^H}&o{y}שV}E *atW3zwE$ C>Xd}';/dýqYjTކj49Q%~1]OyMߓzWE`8B; M䣻'+l3+;ߐp^z.h>:5sCfmOnTlzAI:NMo 'رDQCjֽBPr0EbpW8!|gl&d%tj}r:2oLtcBm&͍ewkgﯲp u;.<RL}.̡q= XwdDŽ<ϱδe fLS +E?$fOD)-rHđnCN:D?\Y涼-D Ao|bJ)[#SOw 'I+!flFd_i)(`SkҘ~ &SB8'eL*kVQ،얀WKP7rrfWu =<<ϺQ]bgc'VYkq>++#]#5"x5WFffD|B] }aEn_(8w ǥwK>Hd<?>]PvH nEe ܺYX(S[CÃ> + K('ye)_R4Q1Zmtf؈dx^=h"~z]H9m.sWu;p fFAQ/NHǑmp#ހ`>zȃTl|^o2?E | !.^0AwSke|I/4;eƬhdT[)Tf_hHω0cQ3TL H PL2Z ``7k9ͦ @ `ч(j~TKR8h Zo_Q5vŪH`[FwbЇ&0pDVu׈Nϓ8IAEMKqd!jw`LAK]֕DNcH)ܖFijŠ́A\ KK0Q7R;ɸ(㍴M8;ɱdXMfv 0Hr:ɬq]A+8b4$ Dg%5[74q©;'t^!P8)"${y6"VU"΁ݥi  >?7jӻ-o[pr}|s_l 9G!oZ?E_ow&̉,}K.U;yqoqAx1j}HWB}A?1?;#h/4h tD^:3j!]2O$)f_YEq+|yI4mz)i ΐ+EZX' 'ԈBwF/j @Da .E!R:,0+& 6ߊ$LbIN ^ExH'ҒՖN{u[9R c['Br7W(f#XLCke:n^ 3@J8hbz0Xavսom ΟX,PIP3DzxfC`ԩI6zb2e&)؆*[laiU\n69ە˳liDm݃:qCxقqd}kO1;9:5BvI }l!ЃA "ܑ%=daEh5b}ױsU+{ZSdK6܆Ή"MOz3_1 Qr˽_=Fc%,g|^*YMx)؎%KZ9Ӓދw,yYsp)4Q;FTu3yݪP–USBFtn*mH.ң<E1|/(n㒯h8`|%W5Q{+ b>Dc{=8SK?䳅YO8-o[>Tط'J7>,!WKp=M\ O6Y+vO!UͷGF~.knb s3٪2*+aE;j.#utB". u) |ŷ̞dDպr +O?Wć??aeNEmV3Ϡih/o.#}(Oߢwtc-{džRJN$Uׯ}_m~t3^$!$[$I$̲ 1q7(> h%0?!{ǔDONyE ؚ@Ў-g^]ɟ/Yov{sո~Y$,,llr;Vurn/~~;nz[ 9G%\?}r,tay1mnLu˓$Ǐ| +0#FʦMh56hP.{w =AGehkNEz$EiaYED4ČLm ZYaK&m~un{P}뻇/\ K-H"x&?>FXYDVL 9ߍWm $# }eZEz瑷UgS D@X/q;%76l]+j+cKd]=iuFueP<)/'fxij2BfրW'ZiCԉ>}&3|Hj*cpFv kuH]xYȁ^z!>_zt>eE*aeđQp:>Aw(RIB[m67eC7V~i_&|7Nqy/"UzrkMEah61˲=RAb#Ty$4žzΨ840S$\!-$^pI\LܺB5zkYΜO EC '\:dH֋|gj"r>86pWyG=~8A`#=,}\rRȘ]qu<./$jktI 6q݊/^ Dd 0#TF;>65Zzq1]|XP8LDFLui ]I "3 ń>uXOvΤZyb+5VVD$2>. kvؒS8Z 1*&ZoÞM430 75r+xwַA*0jmIkwew;~A^"|BxMU#HIґTwҫpd=7gĘá}V3΂8epWISiw,s^;䳕Z@!dS bGMZ*)6R򛚑Aiyw1 4Hhƣ E 3:ZN^ܖ ZD]oD,G#`kP/v[L kR~&v4ClM_ߚ\6^xS#T3ܘhYGlYc&!q@hXГH*}Z\ƖB 6WDb{¢~tς%dpGaDyCB;pͰ TPj^@¹X[#KR[p>B*.BGB!CI+|8s0}]MΩ;jyaQȢ]G-b@wm@ vؒll_e:%jL1{139D=F ped%:ڬ$f \u\2Uƙs+2;I*XA.]Pvwj L[BY𮘒HidUN{Km#i P!PPB c0K(e5HQDQPF5dĦAI."2B@P7"UIGI` C(9|L03UU r 1űjQJ IEUKg (Q'èwZ*=KbiCc4Ig8XчwC7Gx%@ nH* EQR ],nط EilpZP( wa".l.bJ+Aj8GAjS;5XB"~ȋh,@7H<`W'_9Tuu[VQ@x)o H]ÈuY W. @DRn62b@ bG9Ge:V4 ̥QW]&kʨBŊ=h~snEUAU))WI!B+(nbaK`Od330|ռ7P)#t( # r$\~?1U } `8&`E)&E`d)$uAB6\7oZ沯Z]n.t-~1Vߎ` QVHb/IF6ojD%˕4Ft޾o=ӧ#IV_b%~jIA_ְvYܫůovAjha )"<݊O38f BQӖ,Udѧ,C7R|~ܭdA iO\e:c|jBGtjZC9.ba|\q4"i##LI/ȭ VQc-{7wטB̊uqTBs$V{yܴp H4x 𤑯ƢbMPU]hޭYWgj֛!2^pW /0\7 p"F[PB>qZH;}4acu#=\ȈE0l]S-00p[ܨqUEf?o^#z`BZ]wŁVzRm2Ͱ{3kٝ;dkcyd?~mףO¶J0N{6+˷vÊ'O+Fuwã:ó~=?}" h$}t8w@%bERT!q~d Ba4 M!4q`BJTF cQJ7?kf8Gm?`@piK]yP |ޏ=^IZSCׂ4hJ%%OQ>ˈ]HHڒ(K߀̄- Oi _9 P;\&JM%nz8U K\-Q/,x% "G ]~Q_WAy#p)&%[N$Zjj1q&t)1"UsJy׶dkE)֖P@Py6ۢiQ!VOmzU],e08>D9.\`3)~Sq@LNH;8%)%AsbRݞ4Rx 5–u Eݯ)"bM)g$s돢[>eR`d Hz~3x?t}/Z%69fbwل]φHo%IP8aAH%' ہwu?Y1\FȘq+%ZQ_`èf{>/Օbx'Ӕ"$?5B)fiN-%ԤQʺ:qGo* h7(#E?W0e:{?|I%^*'b[ܬ*_?;%151ޛG?'>taAdTkn@3!?Pz  h\_c["I²n" c|*u0+l{?ي^zd NLI4'&1JZvjz6iYhIrm62fG^(b}).u>hXG).e | [J]Ò\Ns?7ZֲPt8ʷ_IB6c7QmH@0%X-󿗮zʋu0Sc8:,ϽyiÁKQ9g'֭ ?#>"6wl+q!z?.FzyWFKxYNVꆓ.?۷A$J7=0 Fwrl4xP lW7>Gtο !UF>~zBse 6=cJG!ܨ#+Y sݾtA}x0B/T$/]v\qڢ8V!C>p dڶ((.2">u\ٴ.˳@89h֔a~YJL_UY&TlMVk{}W$+_sz)dx|Ӎbu״/ ݘcNU@^iͻn0ެH#!$x4篺PH ˫̬}m-lz F_W.$tW@4,jY!5[ >C[i |Ϲh6;:*3z_ݔicH&B7#_d}FW[W˟q}/ Et)L;R@doCa!&a?5 ؑl2/0FPfCtk1Ryfvdd yQU{%%!"DgGo맒,|h*4vr>ߪÎ8kTZ9*m\K I[B`wZ>`@+vfm335Dw)J|˒2`E LZESHiZS#qwr:V~9CՆ0e{r*T5k;3I^^w5 6,wOUS{Fe!rm#2 3wֿ adl˸/K)//")SG tY3,*u#NzwP gerlUt3¨ja^!d[>_[T͝zw U EIĈH`D@W>mSd)iYs1xt)t