summaryrefslogtreecommitdiff
path: root/ipc/msgutil.c
AgeCommit message (Expand)AuthorFilesLines
2025-09-25ns: move ns type into struct ns_commonChristian Brauner1-0/+1
2025-09-19ns: use inode initializer for initial namespacesChristian Brauner1-1/+1
2025-09-19ns: rename to __ns_refChristian Brauner1-1/+1
2025-09-19ipc: support ns lookupChristian Brauner1-0/+1
2024-07-03ipc, msg: Use dedicated slab buckets for alloc_msg()Kees Cook1-1/+12
2020-08-19ipc: Use generic ns_common::countKirill Tkhai1-1/+1
2019-05-24treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 52Thomas Gleixner1-5/+1
2019-05-14ipc: prevent lockup on alloc_msg and free_msgLi Rongqing1-0/+6
2017-09-08ipc: convert ipc_namespace.count from atomic_t to refcount_tElena Reshetova1-1/+1
2016-10-27ipc: account for kmem usage on mqueue and msgAristeu Rozanski1-2/+2
2016-08-02ipc: delete "nr_ipc_ns"Alexey Dobriyan1-2/+0
2015-11-06ipc,msg: drop dst nil validation in copy_msgDavidlohr Bueso1-1/+0
2015-09-10ipc: convert invalid scenarios to use WARN_ONDavidlohr Bueso1-1/+1
2014-12-04copy address of proc_ns_ops into ns_commonAl Viro1-0/+3
2014-12-04common object embedded into various struct ....nsAl Viro1-1/+1
2013-11-13ipc, msg: fix message length check for negative valuesMathias Krause1-10/+10
2013-05-01Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vir...Linus Torvalds1-1/+1
2013-05-01proc: Split the namespace stuff out into linux/proc_ns.hDavid Howells1-1/+1
2013-05-01ipc/msgutil.c: use linux/uaccess.hHoSung Jung1-2/+2
2013-05-01ipc: set EFAULT as default error in load_msg()Peter Hurley1-7/+3
2013-05-01ipc: tighten msg copy loopsPeter Hurley1-21/+11
2013-05-01ipc: separate msg allocation from userspace copyPeter Hurley1-14/+38
2013-05-01ipc: clamp with min()Peter Hurley1-22/+8
2013-03-08ipc: fix potential oops when src msg > 4k w/ MSG_COPYPeter Hurley1-3/+0
2013-01-04ipc: simplify message copyingStanislav Kinsbursky1-0/+5
2013-01-04ipc: introduce message queue copy featureStanislav Kinsbursky1-0/+38
2012-11-20proc: Usable inode numbers for the namespace file descriptors.Eric W. Biederman1-0/+2
2012-02-14security: trim security.hAl Viro1-0/+2
2011-12-09... and the same kind of leak for mqueueAl Viro1-5/+0
2011-03-23userns: add a user namespace owner of ipc nsSerge E. Hallyn1-0/+1
2009-04-07namespaces: ipc namespaces: implement support for posix msqueuesSerge E. Hallyn1-6/+3
2009-04-07namespaces: mqueue ns: move mqueue_mnt into struct ipc_namespaceSerge E. Hallyn1-0/+22
2006-12-13[PATCH] getting rid of all casts of k[cmz]alloc() callsRobert P. J. Day1-2/+2
2006-10-03fix file specification in commentsUwe Zeisberger1-1/+1
2005-04-16Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds1-0/+127
.%*Ff^a.c@ tg i*x`{/l% ?#.2f)X"gEm8-9hPX2%XǔS'.YI>Kd%eG\p K֭M6޻3A&vԍ%:uAOB:_X8^ZDSС*dύJrÉ/t)4zGQզ)L]ֻ}ab ݹC]l3VW>ėH! 3^˯ `[~,5SspkfM9X/C0L8|YwK >dID(˛5IVH_Ӳ8.U:*xl׺9w݇jPu2MUgWi*B2Cwx ѰƒPmzm#)FjZX;'xޑ&GB6/i@u/a؇pOM>\nfϴ,4t{teOw2XD]Lh^PPv{|w~w2C@3~fdLI*iV/ kWRa~2>bkO\WRa1³?=RIA V^nzx]bMb &>P eLV aT,D"[NkҬoB4F7L5׶߂H(s? . Vd\_ _?e<d+K Z~?ɡ=Q> \Xj]HiG6\ Ebgyo .ml R~@XiWM]l3 A1ws; 钸EC ZWŮـ`DC6:jc6nvRa6Tm+Nfuj3ؑ+iE- =Œsrk H HegS4cnK'Ģs'gZYXKVtxʥwH9TkyeƙĽ{9<*{DG|$ 5{MyJ$;d( jF~ "y0ݹ\ڨ6F~Ӯe?%dwk:l=RNgXH36gw{{- +ŅiJLN/tmxdގ/Ƿ)|O9?dKU2 nGnydJMf11k,jP# vL .IfS5Rƨ w; (brT|lN.Hü!&<`y%5, [aD+,7y wlvh&ת\ڜO?D9ޢi,2"MFg566۱##uxwRޱupH5;q06@OWdd,IdѢ Y:f(R`͍t؈NG ˤ`7Pᗹ𸂎W(kȋHT>ޝ3t}lZ'F([PGq[{w@X0b܆3,(`dOy_H@_0{>٧Yꯠ>CYB8D8 qfY<ΤV=C#]1xwf|v޿Mm1"Eo{Ɗ0B`lM^Qdb_RK I3~\yoo:m5\ZӃt:*b"pcU"MB.H>'*P]H"@k'zd<Ը> Rq!*nU>: #QN{Q,S4Q6sY1Թdc4F'zyS]p͢Poz7;j$ېHcmO|x9WJX\Lb6ZQ͜m,lڿHAfY(:&G^-/aۖhFh0ܐԟJz|vs-@(+wV:L  ](<? 7{3z,yj~/Cs\e&EKa9BW $.9AJcTe5ջfO b{22.xX<<,dC]~VDN4!ZM 8y؇$uˠ1gxྤ -W࣎:RJ2gK}0J9gR  ?N ^@rcl< 1jbY2RiUpZ?9 URu#@> }l [N q$$vSrQ>~XS2i[VE5izUp57rW]CѰZk~sXWVgjHZՉj kMvMMH3Nh~ ?ȧHYik鯾oR cD^KF2<0\IE=5,xN w\}>"FƷGGl$0Eh:q(jZ$-=8siL:k;QDn9@Qz$0(Q?<;FNt[N6W}|%q ؎|VQzb+gmq=@(ZxR Xĝ V"BF}np9ߝE5)P)NmlA_Lf9P.^-wQgn]nruQf-H ,tWkFըu:Gk K٨5ev\L?RP 98|N5|LW֢7|}b r>Er+.Fcb0t8Ti^jtY*@a-"ourh @sC&S*!oX$w \ËQw*pGH\⣨-, pwgA,PI8aeUGSGo8wxl@5+8GxF/Jld/l ]u&nc"5[$Dd 10}俠ӎ;vL sb̐]b# g_W~vH$5u_aȂvv}`˗#lN.')r*wdyYyӆXFVԫ > ꓛ1}99!R|cg3|#E1S Tݱ|'fV66&+6КjV-ZjPv"lv%NP$Μtu!{Kq,Il8-H%Eߴwgh`JQcRh uvwVks,Qaܚxs%6-vBuN)ӎxYʒWSRSkb㹙z` XU42CjK9salVy&ť|Hbh,P(I3Vx=`Ɠԍ4k׼P[z鉅w?-2v'eneϖǐpR6{6[̿ấ IcZ<%x_f2<vZ}zi㶶 .;2@Xc0Iԁ%X`{JȢYҔ[2/sY>)UIwM'XtsHdx$ew鰷DĥͩTR '\[1PP]+ⴡE^MH.CJaM7ZY^^rږC,f.E ϩ_ge҃fS{L/xT>{ $dl}_"e:\w$b} oUR\*gCp9F3uewZ~f̰i^c\V`,2z1?~ ITo7]<xI6sUt/~(' ~~U<ƒvA.ܾZ[ Q<8?` ຤N f0eR 2WBJܺu}Yvթ3 }omgV4!(^5!})V`}۞|=T\g,uvRH̡QΫ։0Q: !2ǰZUc]Xˌ36Ib:MGA&!H ?!ۆj?x9یQ7OTnv$cuѝPB/vq䧞|01EtrmIڜrX c'&c !֎P<;OIw 鰁R$vkf8o\ҹCZ,n63Ҧ9 Y;s6&U rq9?WB ]rS[I9-YG~H ^;ךm PYE\d08]|ྟhQ5hkM\Nҳ@2fȄa_ȬzJ09CƵtG+5{E;GQ['qR'+x_$U7M@elxԐ()^b5^7ޏ[ KIXqMHdU:ҫZמV풪B_/%'WLȼ7bN\"Cђ7uLV?K5a{|HM$K7:tj^ʮPkT[|KP*~yzvVs2fNQu4+χMHX3'oS9 vE+ZH#&рD:/x:9//KZ`,\+)(yscɇV$,e X Pqd/k8ɒb mxgL< : qK 5Fzmjw5S> !1Yl:(.XVx8EW''ur[RA/?Xx~W%rҊVfWkGV$qV٤(ب Z> àϫHSm(!y%m7HZ#x3ۆB^$3kg|o2]Nj-LDYЛf9D}Z4i}dxB9uR{b%EX9/sDYgj`OwT3P15g\*.L^fV*5Mx^1$]rM?`Oȼer'I[;q_N?)fљ-O3>V\V!)g R548:a{(ʡAEr"U&C+yg8w^r9bv9儯֐ٮp# :[z'b yFiG}e\H&}_(j4 (w,J>=pxep ozA>ǻd4DiYi8ƟHrNvɠ66UT6”8F on<  [c6i= ~ -a-HbIjubL }heQ7AˎlBuv?9[>zb2l?ࣙ&+DZ u_6lbr/2%?$F0=&NX܌rSd^*r+}DxWqmJ\{LqPi>r@}cHȀ+'w;m z΢EEĕ@]+%ZHb<\O\YW+ln0~4k͓ݩ%Iyu./f#KCehO=Ǩ!u$p3z`C4( N$[N>uzm؁[]lVy–vZP` v-h`v0@j#OdRh. ;!Gf'70DB$JbJ~:|3ǽ7t-SM&vǸbt 4F}5nWMxCըiJ]euIe!PeK}쐧dV}*|6c聯?,dC߂;2W"Q%WP*,GL])cFR*^m%AR)5/f)=a"N_sC|eȣ!j&tiѲS;Z"ʃ{muҶms?4 'Dhv ;[^vE{2ÜsurB4#RA:\A6 Vv&'Ց2jmUuh9l- F9nxU8%yγGkr_Ԋ)(( Lf#;*1q0x.ZcgEފzYB?^ZmF%@р>YE䞽MjNIvQZIAJe3T%qhRc1 yͶe&l!i"dok^&ւUY4n nlJjev U=fjBʌ("'̒z1Nwz{7W[TP뼫ac`Z5!C^'kZo@}$Kr_ܘ2(h4-_EO6E\HXLY$onXepra~;p=_;ރ%\ QUAbHʑ>%xH>+VǬ50Gb,bg zdZzq+ڱV,?{!yz#0ϊ 6IKan8 셻44߾;Glj[3udhV9CQ==05Tkxp4$.)ys,za ;=HHz3s"TWym9FR"V8viIShKnxiǾ~rb?}~_ _#~WY2h|X($Ѭ&%H ڶZƬ̼ U+;TGdwrՈ4)g]S:QWRM)5~ D174CQa))36]R"^+hj!iPZ7s.s =DcsIqyt0P‘׏ D@CG}[4T4>T"K QJ؁]f)"u[.ƪM9л3Ch]M!S.p<|3i=ʳloĎkC|R&90N)=k5VkXJ es> ovV-bm_qOj2+Eehao2*9O'$Z.mvF偳AW9 Ý[/F90Py؞%{,:KΚX[\!R[}\1i^J̶_֬4Id'YfYz^/~KAӯMo֞OL_Hv(9́%5.3k#%"]s;j,X*PR˖{~^-%+@4-e f9ly6/-#ۛ9^,Ҫ6*ɉ2~0vuچ5[]eN=tWomG5@ۂwXaIf!qQ傤Kى# UpoF0I7"B{fY򵗠MKy6[$Vc[notBMa!D[PO{- ⲕD%;J :RWI{[n[4-6SU%zؠ(Zg(v6{]v6}KPCh{Lw:kM@kSpڱ䊤LմhŽ zI6,Oq"@.^S*;k(H٫FW}e:uZi*z4:K\q"7)_]6GҼyiphlF엳,=)AA gO)CnkIlWQq]u@3@@UUHjS91vd.֪5nVJ5S`g(~ĩw0͎IӜ>N|?J: E;%|w1' 8pN I8bx]n '#~ؼW(eU%+@Z3q%VjZWan)I@d6iBVWPg}SV@BB϶tVzFͩIn_}ʎoQ"lVU5ꈈ: =|k- wNJ-z9Z&S8a޺|ʠZ4hצMJI+)w^p.yM:uD9Մ-ﭶ(mR?xN-$lj\ߠnLi%430UֿDͫEWZx6V +sjו  2Flh j5-$$@3dM)pDJNz\("FbE*V.,nJ^U3\l_M~#i q-l6vN1$E9j)57?IutP8g~̌ }-Qni`1(1v97:enexW!˯ϵ^wuVi!H:({oE I|va)Cv;l <"GrY~I}4ZV*V=Kq5S'U 3zL:]L4g碢GNbCړRܫ)&ger7:;шÖ.KINU ys(.dXtjpY>+$1ar gPa}j ίs\=,sKHtI̥UHH;% 0*$hm>|k @X"lo$eBQ5k-+$F˛+tX {V:5.JU7GY*DO W`^X>-u/AF$BUv}uA7>r@y,0%E5얜U@L2 mSV[&GUG_r}\dJ>B˭.5rӹ{9v&~ӭ<[~܄6-b%yY5.}#?GDž"5/=O{C˗;$S:YǬb_H#Ҷ,v.4oiQrq{d_|9K*٪TV&s.4HKj4~ }csjo=@i 3bC4` A]UGo贉ek7nRoX4y IX*k2݈qY8dVvE8 NB@"rlmz! 8?rC 3`? oZ`dzAڰXeZFݪՇMլnTRݶRU xiÌkU|{Zz..oJjk$ڵIM`֝%it'ԅk  p{ۮI建)gy}&F|0WփlN2[`}tsj[hj}5*OIE9a0fMeF;N~=S?,ە QglܥDJӜӻVkT?CTL@%2fEv%=Ilé .Lh&Z~䤎;#qncł}/{IL2r{Y2l# A -g|$(l'JWAkPޓ S 5Ic֠5LnG97ToѠ_S3&+P8O%eiZ*]2K_= \Ew.k2Γ6,`pP#IBoNze3P o,?O `dr-4&}V7p#!EO*ri}aQ .ɉ[b=..TPȶvy>(=4ѠKW!cLHIBf%9A P8C ꉬzIs9QMS#Zl믹StgE1-fGKH=BMt XB|"GBk!hlLv>BKj%q䝜P0$m`_J!3_ZuͲx|-SZrv&_B%AouHɵGp{s;P3ESא`u~Pڶ焮,,X)Ȣ}ಝ^|mska{\ Iht8C5Z`E)FFK-b $p +^^ %=`)z*Š7ӛ[7oxh;(G#_5x;{ jU\,!4CʼxA!0PB'[lA.G8^[geBiDS>ʷ :][Ք13 *F] o­ $"'DӜ $1^R1v1tpXZcofvJ(`\r B~˦kNQt]ΠH k3jcUb Hv9>e/RJ/L&ւ |LH )8l[\m?Fmi > o|KR9}~nl|u8Ku{ܛA8?=R4C7"1fצOW#a:FXNNKAդFzm}FOA&jLIJvF]Na4<|@C"A"$Qa;0 ~B(#a@Od+&A8e6no+JIVa0\h(8 eƶ3:Ll +l3>8JR6ZE0tj`y*1y$@$)}R Y֬6 ^̑Znpvr %.B duQ>_Vf۵6N'qMM?J8:v/y6K^] ktTԫmַ1)äWp +ne^DúGy)Is.ze9: œU]r/CI.XY'%=nX{ԏ{Z\;d{Ӱz4Ҭ>_2eQe_‡!`E.UO"\HTУclW#,j''b/g>]:$`(9ޒn"qZ?0ZZ??H5}k 3Y X3C;O&5fip6MPAr%lՋ6`5 pn"1"'TTs}9bD)[DhVh%p33նgK/Kr,U7.~(怟qtzj!Z,38IaB>y'v$?x%-on 䋛dB a5\hQ^0_ٯL8dU&x! G(^oQJ;P;qH%ag4"J@ULEŤ(IKHC黭B[LɎ\\ qX^5]w4'z[ s]p%H9vnS*Z#AQ񲦄Z;A^:-ʡXtz\ y*y=ҐC "VX2j'~Oq6Mñ܀[s#[l1ɭZl JiXqι{h#-O'I"%&J>=oy7!4KoKj4|E#B!VEkz px黫3+|@Z?lE=eE[Y>`/ޓl_]Lg0 ]f"e6f[7qKU灻N1jg?|]`OlAA)c!\ֵsyN8 ˱HlÈYvԧ> [;?*ڒqu/t|7Q:4X>\dWiU( #a&>-̻)3@NUG8THfLTi:?J8hGj*ĵY"}:*?*I~F=:kT% s6!ZS>f4ZR/B`mP'LYuËhۍVa͚$7r S&K5J Eld7搥I39= :$FUpUK' <#uYUAM¾i~쐮f Almcc{F:B~I_i@u?}k>uƟ߾H:-IU5$%\ʬ@K&[=ˍP04fo6luH䵋Ѹw!TaYqVc9& |kSfuJì{[&9)hnNc5921 }$~gF@Da'L+NEp/ư{$y*ekb]$g厾FSP8~ksm\qSI W&hkZ/i;C`=5 u(bgYI^?rh!wt 7`U{w}Nd*MHO(? R͑Vmp̫$)`)E̜zZjy"ߓf==it͎Td# b-'QVKT7u:qwo{K5O|׶eUK@EsJf ^yG/>/V ɑsV~mwSd~fެ*6Va>u~f~6|1c@9OᖄǠ"FCZu[?u8Cq5~olD7P(#q=a$'j^m5ې"  f-mxcaE.s0\.%SR7aO]yR;U/i z O=X3*nQÁ[s E-gF3#s%NQvr$, 45/ ~a!-IfTZdLFdYap--n0c2i\a74@*vVl:f%"J<O+2O[ rhAG!ېR 7:;w6s;w^qzO$I©'Vl [ۅ5L{AS=^\ 2;W)BG˭'MQ}8f{sx4{%iϿQ1#|J iYR7 s뫩7QxPGRNzbTjh[4q@̀$eBs{ar]MpyTF-DI uCb'):eY3[TI 9SM?܀ Z`R+At7-onӉ/֮So1Gkؚ͓@ 5V¦qɲxs!7{4fA$ ?V>[N)k<2<Q͜^9 }ق\keҊW~'<~JRc'1F#%v[lG˂CÕ^!$rsE0Y)d6JZtT8.mMz>\F1YX=jhaʭR$#P:+5~ B1Q8GStfSe)C%FdїhgDg˫ZjՖZ,;NV4VU{ftzLw$AVvK{|NK0 ,2nD0< gWw-OW Cǎ^i!iw[}  G 2N6FZ3Ձ] }(9$g4|LOCpktfFKryoZ Ps GI@ZLs 78z#RhR++I:Ԭ7j Zv։>$gOm{` +YHӉڍs(M!oJ}:i.I)jITcGg>Ԑ\9#JCOJ-nt'~XOeU25nzA細5!+c)V(FŞiP1PsAlޗBnFg.j)D7d5WEF0YF0m ҉"u?ғ@fZ8v)xsS0U(5PY7-\e$fD/3=<(i%Wb0P^\Q.f$O%v{H`lA=A)@ aVY nn]&+ LB g)A`$"wDL@hk?k{VRPI2Y6,5=IGFL'wyyq5h@ *3$Eku.''oT*GW pW~0{I^J>Ҥ@c;>SybIBAےQǽv lmToDĩ2}ɶrY˃<6[4hꈫ RّQH++xp0f,;F A#%Q/Εy o}6Uco`rΥ\zqFFfi, B7<ˏ2+Aꅊ-l}͒mbTW0څfJDts՚%FC2b2Du#2>\jˀ:%EfOM}<t/*TmV [z໻O+ KtSV,jMMGę#/snZEfHow酜'm}6y^Uw}C0VA&){n5}^̓[{:wáG$OPs;Ҵ/<n<ąIS+j?9;9c qԳw@{fF"&^>JVγJ= 8 ;v%U =l4ߦ٪VmQdqUu'ݮ"I?o6QpAv_i,/42-ne(:W+1Q~MӐm׻+J4wҝ\L%)~]R3#?2SŔ,w1EAj)UZAUr7˅JI+K -w[~}2K g%cMB[546-^,tmd `s E]ʞ55tp.cdU-49Hn r4^R,g}@K>:~v`d//0Sn6 ݖjLm'j25h5&j$3U :öV[Um StDqM/9.W}\[7_^RW5aa\]nvPĭqd/º kv#LHE xlQ$KRhюz$a;]G]H&̈́;d @$Tq >ǑJ_YcZTM"An+Q:Y? v4gwUy~Ρ Xmʹ >9(5k H{6Y󞽄!M8R|M,)UW0s+3e/K5LúZR %Oh=#~$A =>W['1`\Y򻷅GT't;xG'>'<;i).m҂Ldt=o <$> ϐ(oPw¤`+Q,<=2fQAg'Y_#gs#K1wjߥĜ?ԡ+ *Z{HbqI# `@vZ5W2y5zTI$_N)f"-.[1_535;{mӤ<'g]ߖhh4[#䰏TZC ˺SEOTH勇Pn&rx]!SVD=qZ@5GFG&m |ʉEV^: $AΕ:οdpo褚ΕKJlp)0TR]VC$-i}b+yz3$&Mp(93z}ӣ᮷Zy '0t_L5ݨ6EdwHM "9 S+$߁s)8&H3DeI2뿑``'#/Ǥَ<@b' QEݐ c#Itr;; c_N(r.]]5~Hv`_5tO$-G2"uKrR TAҤˊNoҪo`~I9{ˣS/ɖ eE%8Z' .:n5DK]01b"b^~t)T 6ocwUG\mٮC4CԻTU@U&]7' g(6U~zqeZw8 ͑qp9iLm:;b^ܓPph1r]#Og ~g6Ni/FuevdJűG$Q9H=0I)/͚lIZGG$'d$;m հKD {P8OK^QzыtZ3ze<\&^/"R7)~@l[,h#˳SbX.g5՞JBrxQhliD~o늴2[\Ϝ0^e^+zU0MAгms>Զ둌| &ӏhR#F KQf]&bg6-&ɥh>)0s]37A:ifD18WB`gvu5-t"@}A:OeWK~8H\dv)D?[(DIZ%ij[%QM1ZRQEyA¡_Xb6sMsn]Bb6 Njh1㝵cx8dT8EeXЈJqSr?R`e@edJ4 zΐfe0}`l/ R59Rh5jn5'KWDz+IKCta\_B,ۗҊ!*WÁVe b((,׏dl0Ne^ |Zikd\e]W[7|'9N{! X70m.>s *ZxKnje*p $&$ + y>XwP:)&fӫ2ɾ!:]/*Ƀ/4Xb4-ZE4U_-iH(T`\9X/˫ x#97ٚzɅN8@#gϿJ .LR>#' $IMZWs֦0g!lICH],DO HzxۮxCzWD[Rl[?-I=>!ܢ0~ʔ5DC%\xÌ_ JjnW0w^1$;v[IdByVdYW>$k)t*zWޗhRr+K;2w(9i[.k %-w׋)Ra4^"3!iHBEXlO05 Zs1+Õ3wP0hz]e\$B:IRЖ bKf&oǒP&Yus)+P4ht)̎$Z^geJ ƏWP-<žXei㤏hB]NK8BA_JxPfrM]llOlç)r 8E*&n-dIDFBNdh|5r&iL-.R p"4τ{''P1C 3uRߴ;$ZY(m*Rv(D̽ߤa& 4U1L/YVJEHZHҫU.~k6UIrq,˯ "]|*@ٍ#ν-poKiX =<֥Jז.i;\z2K*iB5XrX+*C7]sQCD?l@l"!_^=NQRf=rPTWʳnXXC9kC˜Ȅ.ڴ9y{ F,lcb h| d]ŗܵ,e Z6j\WJ[e "/gpQ/V>CL RR>l 8iɜZww gX@ vTV.mRG#YBV Fㆪ2Gk|B}k\>v>T{@dJQ{\STwmٚ(s@[8C̷Y{KƁs4'Qq7%Dj)I9?~"8xOwW96KzT cUk~U5OE]IS\W,k_bvX_;FquJau;GukѧFW(wi:ņ>~Y3pMx.B A

2uAlؒ[՘0__YU>hzqs|{*i]H+aXN9-Uw+.*Ûdh|}G胯gI&M8N~1*Z饀c}Rd).a1f1kPhb/ N7a7zh{;K;=Z8<+g[2p)pvnujϙEɓ1R\qlC??9k4:9#=y"ND?gvm>`mPGapkD*>8:@Cj'zX\z8LVH.L,`VN##+"H4t,n2a|{=Tz?-cN~05>$*g1ipx8ކ!W6t` _|.7x amX5ZYsIM2oC &8@"pk~xNSgWTAt\X&Eff^`+IFf!M~vkC- zf23d=e^2,u Am-8o%\`)]ɱηIviqNjS׹' 㟡a_6jmOw:{kGFbҀbqo6(Q6s8[3 <*d.z{N)8sF,@K0ZXvS% ~OHuX4(Eq<i.qR<c"6`ƹS%ϴ~ X]adx٭7t!C>;> h+gVǤ|>7ٿu kJ LsT5lNLU e6?R]S͎jUT.ªkHΧd)}Gm5ztƣyPUQV@ﴚq@O3;YӜ_B>p[!TAͶ. V;y p=Zo~;fJ Ir7j!3E]i拹4}1GlO+JZ;& G0!uXTuD`HڨQ8MpJmջaLq~pϢ@ TEŹI{MVצ_.Wz.̝kRY/d$ڞG+fmv#a.E|MKFF6WUcɜIy['dtNyxtk(}C}Կj 0UWgmR~{/k *LR^ߓ_SEB>ߞxJΊ> 4?"V XQ Gu[w$T.„x@ޭ۴b'CZ|.!12߳g6:zk9^B-&#Qt]v[h_54G0ӵ$KУ,FzXZ5a^m%'-K/-O \H&{${y@Qc9N^fB׼6aX%PN΋ѪЬu  xOpOM4W_*HpmЖTꁪ? ]*,֝hUqv},k~ '?WI/qLuZdx'J֛N(5$ha,2̷qk#|; H<'s;FrxTV1q[ Ŵ/] %݉pfI6gY7&'.sSP~>Da}> -VAj[U̓O}R'$;&}g(W9`Hֲ㫀#y|=~u>λLfo  8+ Fpqvϛkd0($EZӰ18%vs{ d_Ң|Y$zyzVF^5EN"Xypx3Goc&=zpD-Ȕ9{wu$1/Ki`DCQ,}%žruFv uoSKY^W׬6ى1}.wygΡK\@`Ck63dAnͦvr U6;OZG,J4w~6]wNӮ7iќC9 Tm}gG"#Y :޳4p sLm{yCbvIK7BqĤqtcϛlsdxVȤX2didHKqY\8Нl_>U42M/jr>S6sJn_'ޭwЍ\aL L0mt0\m CV+ge఼y9^N!ma?Xm-_^ޞ^"˳eYZ~=uuvhZF5͝p{Hі}Fne_~wZ \l/1e[ BܝnV-כUpSWX1)7:üF,ǜG-9IAFd=%5E9t@ɐ^ 3nA\ Oӭu`BkFYD:ʩӋIHbt]|*k{00v sqSJ"K2X&9,? K^E)T}]^(=rP }KTq)& %?Kfw-:K[+=ƳO5H+_qG,a'` 5Mo1Z?Y#+$?WY5'n-: |v1#vHJ*WW*t,XnרW9?Td+3]-hNV?sGѓyf>A/չ=<:LF qyZ[Ϥ5%U$y <=X(xTsV)T%Y}ɌAuw>i$$K^m[mxeA +RkglkS5i,ѱ=wGmmBu_7;[f:1 :ZZҡfGQU]5G dn\ "N_~:~ǞtDzH*-C'gϮC)w-Qk:("#g$b6P zMr 26 (gx\B`#ca!ͧbt &qG߮ gt&Տ1G-he`?햆}$EG;%Uqvqn0_l,/,F {zOiEVj0~} )Kߕp@cG4)iw_ھW_t*d}qVF/[jEBHaxyGtGD.Le_6JaжJC%z6Y"{VN&RLV~^rBHG$&W-L QY] +Cl:Mz*|٣ΰݩ6&QB~XǪ>Pk)i҇{3RܜUB;yL#K2!_Q}.YsH=(ϏP[G~X9Kj0|/?CDJ0 &n}ޮ@ͽJk",p􄲵x.^!OY*)a1'5 JSlS-^JgJ[u8Bz@Fp@è W((#xu1ypg9.+dTY=LY 0]s${gr>#.CRWa u w>jR+Rt]A7+'ED6G 'ӓN)=쥀 + ޑG[j\>,=m1c|'i9^|; <2f֣"庤3z{"OCuђBeBW xVK X훬k@SPa1O0&T<,KjEr\xfh϶$~/C],ʪ$6>$._83_m//. 쳋iI]|]"B% ۜם,5!OC~e4NC%Js 4KL )L' 6x{a=@0qj ӖoKpwz4T\ʈHD%ᬦpڇB Z$LjBBoJߎYdjh8>p~4b0$GR1(w$zAeH+9y^5HRM&K2lj6|p* ba0a|])4@(#Po˓_2,*Ӝw3m":`֕r#&4,NE' ctݹ uSSnnW-IoS!jfsRbJfS̥5{|g-N^]AѺPÍ}'giP{ACQNX( 4Ŭޭ&Knqkx_&'&ȣJ0ryHL XpBBI%UnI:]Q)>qJO5FSI:lYkDn셺%GE#G0m) idKZ)\ <`AmbK #>?!8oK#7:(sxK锓c"4GX؏"`A6g2͗)Gag;(eQB‹ p+&h3>Qo2L%Am# Todmbof;&8VyItR%}e>? #B8JtmM)AM(zkGB?rR`'B.MP]\yZ̟}Zn=߬skuod"^}) 4$ɦ?nt*nŵ 6 ҿ&v>R֪ƸFH0ɔ, Ү`\!;ͩW%2&>7 *̜94w:!m$M\N=zYƠ%0h ,S`P2e_DBjh|L4!kh wߎZ3&ڱv@='X{+#ʀ2k*t (d&/&Ȼb:NU?: j֬v*;S#d<ԀF0ʬ)| fL Q[UmrX\s JJH:ժi?2?t[WDmid S3Zn!%EB JJLf.|ZR۝#K>IX F\O=e׻KЏV{V+с??`>OL?Х$)upp}{HTl}nDkIQ~5@!(.[MtlΆ΂IYIItڳCo"-#߯!;B(1l:ı2tu˹ݗTj%~lb^(Ǿ覎൨hǎ_>>ب}D{o㹇Oy^乲cI0<ߎXr _܂Xo'5crB/J1c&49_{$/srNŒI>BfhVش!,Ur|IS4ӛ24 9YI< `-Wq$q́*Q3/񱆼[kjdHrq]站7k%5Q ˦"/FiĴbKG⸽ ;FT6 \IpJ0Mѿ{CR(V@J{$%Tݮ$,Zv'I `ӻSl u I#哺.\KQ-zg2D8imZ.}$֓x(=b‡RR\IjrЕ_]at?UN @X񒋦i{"1'lF;_V%W'^Yn//'z6'@,Fde^,y#L%X)>l2;[SzT(@Ӂ%>챻Xit3|`G+5l]GI QZZC++V@mYkod^}b1nOK}9Hv>T]iE|hfUM-T|F<0%ezc0S;iɤmuAF N Id`0']`k 4 g5R ׁrv>!ZP}m]ծI3e"-;ҷNz 2x̧'VrcZ^1lZ)BoeJU~c4318FS(0u/Y@:@6-.̠1M%Ղ G[KE {<*Ѭb0qjO@E_ޥVLNwB6޸5T`iVIl=pJ͖<֫>53r>b]ɠ3XU# =7p핯|pU%En*mXP>tX/v['6Jd}[67kג"2GF9v? sHYH N\+xf/aO*hoDм50uHZ_uj2V54=Q|EYlړ^ɋŬ2븋l aEr tnGdmb^#b2ݣҬ8.L@: `$SǶXșW`ܼϯcVd)-4Nbn|x"#۰CLjC.{^R` .6ĆqilQWR3+" 靜T^X \ Z5L` AC D[AyWR&W\!EG#hmX3`ER7k~yKlyQ9]i4[ c<,H _Hmz_I>^+˝[WyO#$ق7/('8f2*dKk%t/ֹvc82~ڇ{[ƶ0Ccp^K,@㵿]RZ^sۢF+icEV6 l| D}6x+k*|Dch0Z%}=>sцD1)#u;ɤӦKqVz+G] 踺,i+vgj=Gg:\j?deFC< 4Pw\E$!X4ȱ$j Z=%t~…GֶԦx=N ! ]~bABĝNK>Ģo=rN5ԇ_hڒ4̯=; -%e+Bl-5b>*7KwRqyF/HKw( }LXO p"V˼xw5=K gX&pI(Xx,i5keZj6|_ u;g%[OL%OF#u`"K9,&-*[fUw_Bپ W>D!)/w!qi&tj+h>vak{Tg6(y0 HصU(49پ.T_J:TQEi,ZCٱ1;=¦uLU]ܩ[6"g;XQΓ>$Y;^EH;jٴ*1 1ʎL=&)-5EbKz5ȲsrK?Kp fwMm.*va#5A7@Vo(㑚 U{8 S$}̗F}0n7 5!ݦ c 1I6L Scp  `tI7'g2\lsΗzDz::˴`4 \7j%ś=f.QZ恎64w0r氉Ӄ|>"# .=mʺ]"U:`D4*}|yΟJ>evE~a@y\&ԬNb GX:n#\/N.3QKzUYftv}RUz+Tn&3q.K]zp=WP 9K;z_x49(  C@-™Llt]XGư ⶃ>djuSm a}lǓ#ME RZsp g(Ž>wsRe:V{YsT ϓVd0rϟ O˥G32> .G†R]]h_坅G4h> R`%B{ӜTk|b+Rma$PZAHQl(Ov[o{jGb BS7Ǥ@Wo6hS%zJx?,'*L0DșZ(Zq.f;s+F5g $z QgP?Z*쭈L̨6Ba:p:KRkQ @"i&k.2ϟ? h]4n㚸bJiB0XG^4v$f0Q d, PmF'nsd=QLR@ 0^3g_729&rR9 &*p]bm,fV<$f lw<NjFu3ոEy>G=ٶb {bs__o PcQEt6Yd/FC̝26>pRvCM݆ꂰSIP#1mdK Sn+_vB玾Wj\%j/C׶xH`dG4d[>`!@ݹ89 JN)tN=Ns~yWRuIЀ.ὐԮ\;$۹&}8b8:O3=s-]J=ޚ٨.=#vS[|MN.h'yRHO[8]V ZBeZ| YRNp g `6}N5yMg .Cǯ ?t<' |+ٖ5Klk phM-'[nH)2?#)eY2\]\_|,d~2utTyK/`DW+_QH.- eˠDzΠ|>{lUaJ bǡWCuO{#abo) _<љ)Y3;*C,7q}U`P| >ԁ#{˪yǬe&o7GO6üӋؘ$4lL zOpΫ5K djHI>WF>P͜% SǘLfܠ,h(& vլ2E^|VO/b4BÐQE:ѱA8;@Q|ư;L{1<>PNа]Uf^HiDIiĝpKGAֶ@A YB␭uZչﯖK]Q 9u9O4]c!4f}<}9$q2Nʴ. ig HSJv0?s#KIYsCo7Gm} 2ʬ,rB/c.Qg."o 3<Mv]MoM"C.q?YNՐ1LLgIVuV6&P.pv@p5Fzv-hU?Tפ$%:o N3PXf6F2k31T8K.!n3M:wu, h"d@|N'X۶Y}QΊ\[OuHPP<]O9w6d*Tw,%)K凜Uz$fvp$)DΆa@r}kX?Ji}kk=u؟5Z3?~;|*I˧S(.~h*<.%VZNT4p8LBHh$Jy~2wQuf P2oy4&c+@Kz~?'r%X"fW%fqovbC>f(\5(732v[؎! lm ={yXX*! I, |y؍wsJhk*ɿ,_ڨ1\ /vr| jV]:'umu<+vRҠc顎ف#dFJy#fR,V+Y$=Zl{u~qh׵=86Xr|mlNY!d`$a"R{'{cldy˃#(ѦQw#J2.-'ԥhAoV.&C5[rvg U.],دJT dȅX7nr;P: pB# m<@gE_|DxJ6p9)H:q4}HwC"f_L>`F{<*~pl[C(cDpZ嫾Z.g\mժq_uc[FF:Q艶t 3N%,38J}r D|ގ1Ұ )2˵ pqoiWy!wdSO(1|MH7u7eDkh E-=z Oe~O vNwIOYz9a e0IɚwgD#~q),S9qyYeʹt=KLE:)N槀;ىb'PF!aKNSɎ,uL_|e 3s۸5`* \i෱{,"=kuHMNDMF` iՐLB_2v1 [hQ_U9}uj&cvC/2uA5׆ž}mؒ%[U47_a3bg]ZJ,Ke>8El 4j6V45ǵQ6KT)G˟7V,E)-.G'b.fo 킡^_[7^M4YΒm|9BT|{¾Jr FUezyҨV*ʫbJ]ykfן 2i4jIgq\|Xz_}p'"4},:^׍y?a6VR,jrM;F4[fìQl5S_!%<ɿu_r﷾&HSj5[n+f 5._,Q}nzY2ثqZ `oߪ[)k_̴=o+o֫)޾L-YY+{aHJi҉mJam{ԙ(z@ >΁ɂŶN|<, (A2\%1GxV@N>q7d" FZWn)'!zp Ώd1@ ]_2}.Y`*F Q8q!Ɋ RKsOwig=w-]yшHFAGh$+|^9^je>t$Q0/H݃M L/YKSY:<֬5&0bo;sDP紟!ZÔyLw֣>Hzet*0J ev(wF+хÔ䮃@gwkG`p.` RldO9GAHDA0t DǗR;wsS9~4y*V:n`wgI+t>z <^.WtM#Wad\8(F*_۵'yvM4鳴#BNV [w7ȩܖe11@|YL :>SZžFb$pv^w'_x4; yisP{$2 pdECX<@+?8+?y(] O#j?9ȯ6zquZUfBfDMG@{FB͟w:򜀞G(FgbH6ހZnZD: ΰDA07xf=!y?>@e$c*;%Yp>!c6>i\T24|L985A@a1by!r@ӳq^:WLDOH}bJ `ڢVw߉*&܌=1}".xXnwkuՕ9ttOQFȫN?ZG\7zh(IZ~n>nE9";Xϯ-w t5m0X"Vw:}0PM*%O&I4`͒wsġq$XpwEǨu%Oۿ;8i@aiHMٶ"EV1rHࠂT6rYdX(-{ww4FeNutt\k%U%7I;\)u 9Z>I[% Ӛӫ;hgݤv`灯HݗӡEmz|w.8؇/d𼗿s>GlW,VW:Gn_e>6T2g%׹FzbDZc#ktΚ6SDbh;Ytְj?W|z#Q /0w߁9IC&NjGLR"0b~9h!ƽw2Ê䁗 󥎼uTCXc?@V(1<(g3NƩ  Uҵ!hXRUGZ.£=k[I.+au 5ѕM LI)M*SRg~;FDddJ Bhe̸1a/zZQqUMnIș+ƣG7'`6^Gm+l Vp?* ֏;䫰X~ Trrb BHd0OYkۛ5mk Tj@rbN3䟌_5Es_%4/pYya=`8}_5ܰ;:'C!򽍫G ϧ O ߱JM t]XFSOw?Qoz6&6jm7xa8}A֦yMd#ʭ0sۣ4_}>b^Gw$nDsyyl^vûIn3ntb݈ C^%܅@'\8C\ɈA$ˣOFWcܢݢ񈤸/rp|(3H#utt]FvN #`9i{UΉHD_"ދբ[e8dg'KYm>Y7+rQ4BaՕp /iL+!4%GL);v * .7 = H?F( q_4`Ƈ _ZGxljO{_JkЎ4"Tt N XNqy!C Y>sr%4JQ)<hNC K@m8g\Fo|_D7kaԂO8KV|9̷ڔ΍ڬ6tp|HUžӾ5ª-TQ~KReSy`rBH숄mvȻit~}RwwT,|nN?wџl5/Y=mɇ@ej2> \ Bx3QY!9яI|hjK.wGʜ\ FSb$<YT U$wcuw`G+oVQ031@ b=:ɋ^KG)4CD#nX_~__e %~ DPlӟFitE;"F*gJȒ$r^)F#NS;XYeIFLoĉgQt#mY>9I,!md^y$:D5luDf͉ 3]9 ,!cyĪX(Yz=+ᬑ]2/8Px(>ej:dYt czHJcyTL{Ic v$,g93Gm&a!ҏ9z&C; \v&ݬ7Wfc$%eA4p#фr"fNj^V}r7͍F_X]&aߏu.7o<]vEȕ5 ?1b) :a#fy pazeuӇZZ*ju X2He*o8DNC9_p R8f'XUM&=O'[!JɤH\jTO"@ 3φ _t CMT-bKUC ]Nkbe%H΍Fͪ:[5L% (TqL:f+ 6L/KGsֈqO$@JX7fh\@ƙf*ɬ\sFl>$)yW\_tp4Z`` 2wfc E|'AHK+=HrU-38ahܮ,1[ytջZzt~7Lw]}z*=&)_сZ=@t`%Q SI]]9`Q DD*99ͷzW{ҹ e; Rv(EI6xkH)uIMv0/IsiZ9޳ĐiI~a=c\v_փO)Qx:C G炵e|ɢ\I{'(H#!:6 FNp'ʭsvǬ6  ZF' w*7hfK9Dq藣-0b/bt .|`N@M[r|9FfꗓhCj1Kw vpt{O DuMwMcS8i%E>ΪU;LNh!akй'2 "AL'rѰ뙠ke;z$'#./quyl' W账%ʾ}$Xf/kbN<"NTAxK.AL9[[l6_>wh}Gmn%ߵ zdt$:A25!5Y"i~lm^482:ڣ҅'##Uxt|. EBa"K"K [~'k!!5x[,SYrII(5ſaxA.XgJ":'txr;]Dlq@H4,׷(.QoȠ) Nk4ZƆQS ke}4mj)&$~@D?F$qMi{U^~Ж%]B+!أUJ!M*: pղEn?B:T]8)1糊.60$PUmb5hz&H?n'- $&TO8 g\*5:6q25ciւ!tyS EyiW@VWl2Wuɵ*؇P$8,<+1BS¢I ǕyD,z]|ͽE jņ{\ *wH"`A4TW-"νX' 8l΁ȭ$awFuZ=9 秵Q[ Rr1UcJ+Sz=,ϣ Mn9sK>CoDB3jt{Kl͐"M `]X?ݗpG)&k +LyܮsF)[khˮh@GDz|m} ԁ9ݝֹ.`^ Z`cc/KzBBxWI7suUq]Vwҙ–7J2AR,BvxK$~4574pD+aL=9"4EO?VaF @ݼ5 )+}RMdGƁhtBKn\ߓF7#-u2[WA)@yb,=aiJ>}]g_7kE`tț'-MrdS"-]7P]ڄ^U{T-\,8Tyjdc$j VocA\h\d:)atQY6]_T%#oe *a x2@) iW/'c OM>(n_~. 陹4~C$ ^+sXmm]p jP8oҧٵ\ @&ޗ7E/[;MG/DB0cFIn+[' $>K<.XV\/2sEo@e/߷mrTtR}O8+?7[?w^ <3@,;àX8aMk< %B b~xg#T"OfUT;/.|K;PSDG&!qq}