summaryrefslogtreecommitdiff
path: root/fs/nfs/nfs3xdr.c
AgeCommit message (Expand)AuthorFilesLines
2015-08-05xprtrdma: Fix large NFS SYMLINK callsChuck Lever1-0/+1
2015-06-02NFS: Fix size of NFSACL SETACL operationsChuck Lever1-1/+1
2015-03-01NFSv3: Use the readdir fileid as the mounted-on-fileidTrond Myklebust1-0/+5
2015-02-03nfs: save server READ/WRITE/COMMIT statusPeng Tao1-0/+3
2014-05-28NFS: Create a common results structure for reads and writesAnna Schumaker1-4/+4
2014-05-28NFS: Create a common argument structure for reads and writesAnna Schumaker1-4/+4
2013-02-13nfs: Convert nfs3xdr to use kuids and kgidsEric W. Biederman1-4/+14
2012-11-04NFS: Remove asserts from the NFS XDR codeTrond Myklebust1-4/+3
2012-06-28NFS: Cleanup - only store the write verifier in struct nfs_pageTrond Myklebust1-5/+7
2012-06-28NFSv3: Don't open code stream position calculation in decode_getacl3resokTrond Myklebust1-1/+1
2012-06-28NFS: Let xdr_read_pages() check for buffer overflowsTrond Myklebust1-20/+3
2012-06-24NFSv2/v3: Remove incorrect dprintks from the readdir reply codeTrond Myklebust1-8/+2
2012-05-14NFS: Create an NFS v3 stat_to_errno()Bryan Schumaker1-18/+85
2012-05-01NFSv2/v3: Simulate the change attributeTrond Myklebust1-0/+3
2012-04-27NFS: add a struct nfs_commit_data to replace nfs_write_data in commitsFred Isaman1-3/+3
2012-01-31SUNRPC: constify the rpc_programTrond Myklebust1-2/+2
2011-01-25NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"Chuck Lever1-1/+4
2011-01-10Merge branch 'bugfixes' into nfs-for-2.6.38Trond Myklebust1-5/+0
2011-01-10NFS: Don't use vm_map_ram() in readdirTrond Myklebust1-6/+0
2010-12-16SUNRPC: New xdr_streams XDR decoder APIChuck Lever1-108/+87
2010-12-16SUNRPC: New xdr_streams XDR encoder APIChuck Lever1-148/+93
2010-12-16NFS: Simplify ->decode_dirent() calling sequenceChuck Lever1-14/+14
2010-12-16NFS: Move and update xdr_decode_foo() functions that we're keepingChuck Lever1-69/+67
2010-12-16NFS: Remove unused old NFSv3 decoder functionsChuck Lever1-508/+4
2010-12-16NFS: Switch in new NFSv3 decoder functionsChuck Lever1-34/+30
2010-12-16NFS: Introduce new-style XDR decoding functions for NFSv2Chuck Lever1-79/+1445
2010-12-16NFS: Update xdr_encode_foo() functions that we're keepingChuck Lever1-56/+55
2010-12-16NFS: Remove unused old NFSv3 encoder functionsChuck Lever1-324/+4
2010-12-16NFS: Replace old NFSv3 encoder functions with xdr_stream-based onesChuck Lever1-28/+30
2010-12-16NFS: Introduce new-style XDR encoding functions for NFSv3Chuck Lever1-3/+830
2010-11-22NFS: Ensure we return the dirent->d_type when it is knownTrond Myklebust1-0/+2
2010-11-22NFS: Buffer overflow in ->decode_dirent() should not be fatalTrond Myklebust1-1/+1
2010-11-15NFS: readdir shouldn't read beyond the reply returned by the serverTrond Myklebust1-2/+2
2010-10-24Revalidate caches on lockRicardo Labiaga1-1/+2
2010-10-23NFS: Readdir plus in v4Bryan Schumaker1-1/+1
2010-10-23NFS: remove page size checking codeBryan Schumaker1-77/+1
2010-10-23NFS: decode_dirent should use an xdr_streamBryan Schumaker1-6/+87
2010-09-21SUNRPC: Refactor logic to NUL-terminate strings in pagesChuck Lever1-5/+1
2010-09-17nfs: standardize the rename response containerJeff Layton1-3/+3
2010-09-17nfs: standardize the rename args containerJeff Layton1-5/+5
2010-08-04SUNRPC: Move the bound cred to struct rpc_rqstTrond Myklebust1-4/+4
2010-05-14NFS: Reduce stack footprint of nfs_proc_remove()Trond Myklebust1-1/+1
2010-03-30include cleanup: Update gfp.h and slab.h includes to prepare for breaking imp...Tejun Heo1-1/+0
2009-09-23headers: utsname.h reduxAlexey Dobriyan1-1/+0
2009-04-21NFS: Fix the XDR iovec calculation in nfs3_xdr_setaclargsTrond Myklebust1-1/+2
2009-03-11NFS: Fix the type of struct nfs_fattr->modeTrond Myklebust1-18/+13
2009-03-11NFSv4: Support NFSv4 optional attributes in the struct nfs_fattrTrond Myklebust1-2/+4
2009-03-10NFSv3: Fix posix ACL codeTrond Myklebust1-21/+13
2008-04-19nfs: return negative error value from nfs{,4}_stat_to_errnoBenny Halevy1-17/+17
2008-03-19NFS: clean up short packet handling for NFSv3 readdirJeff Layton1-9/+28
F%b9wRX5XN R ꌌWT[Nte.1^Y~S\'*!S$bTc0v mPx!OBtIGmL J> p3ɂC1Cj~I `kw*2#aF! v}5GV/G1<>*]vOR*T%' };0"nT}4<է7Z-sLrB(U?$f|pߋ6mWA48&hûc]O1N}\mj "{N;l@kIGinISMj:|BY8sՅt%$ qp}A S*~@0LidZ#Lc{ Ӵ6Ԫ̭+Z7Wb#+ [+b'4^g2Xe,y5%e=,6[٨`\Ec)3&3GVynR\@G-&Ұc4kf=4yqWE f|Qg8F7֘t9L12uj&&؞j>h64%0$:K\oonJ|pllrv 3/,^$I:0qi&xkcd @ +TE׌8mhWːRXW!ov֦疳$o2;!db~cs*.藃E>Ѹr9Oޣ =}3Kdl׻Hl7*IVV$|r.144{oU/ Q߼:RX=mFӥZr:f/L4^ y@Y $`Xv*0 P\jB_6excK]O&l,WЕ2m2TW|ig{gH38r_ /++q>z!0Q,5yG"aGIV .%Z`̥p6cR[&OpG}] cmZk+鶻wFmlmE2!%Y".N}olvߗCe:|FRە"oeGzleM,w^N4FfZՌmSBϹ+p %|Q5хu0#k3d,DzYd`K3 1m7lGͨyyț pYkh@oZ&-%xƩzR@H ;ѩʵ'jq6/aBz1dp[L4,HG`ؖB\ȏ?#1DJح yՊbAWpwy6UY :ޙ[1bEn2l芖#jJi9:FZ:tsq {#c_.v)@Qgr+t~E3ֹe4uP:Ic. !}ZVWO 7g}{8ֆ$Au {ݵ|4Ž|+uER?Z#b7=/ 5$0Jdqo˚GEvpq=)FР{ӡ/.BczhUE5n MyyGFkV җȒdAxiVd:6 %:tЁj^ʮPoVۅ|KP*~yzvVs2fNQu4+GMHX3'oS9 vEkܤH#&рD2/x://KZ`,3)(y cŇ&$,e Pqe/k8ɔb mxgL< : q[ 5Fzmjwj~4CcỳشQ]2p4OOj('w0j"Q_~?Կ >K&K ̤֎0H⬼HQ Q |02AßWNQPCR)+ oA FGg 31I.fb e>75O;"?<|s.h> y,PYNh=15`e -a|/zWe/ԟE;4VktnzaYxKM6ѣ%Om&,kdF:obrC{읯&E*r!t,+\OCAI "f}bܕZ+RL$;x\Q~&0j@ʂ{:AϊyE{.m94|AwS8.7 3"y׹WIS-g.#ަ6DP+pcʃ|J=&$ p҄\m7/jMN+[sngʸD{BK:}@YFϪp)#̪%4/TIjcIMx[g,x@K25]8E0U9ln}b<H9G4d&M4MؒM=c = ,_ߗi0VVzd 5[M .{1OWSo7 Xι.J6岴dݧJdZ#BqJ\%u5W"gツ׊]ZpT&`ER"*XvBcm@xYA | @\ZGe$\; T2(}K +R~{kV9|:aL,-zRM!!^=Xa594葃j:}<-K=5"I}Je,3i:aK @P.;M*QgR*!L^fV*5TbH:4QissM?Y`Oȼer'I[;ҟ\N?)fљMO3>葞\V)gKR54S 8:a{(ʦAE#U&C+yg8w^r9b儯ޔթp" ;z;byFiG}FZ0L4 G?P iRQ<n_P H4MTIxO$lL9'>fM ;SN7ՠ uL*zSd oO<4_/;8ZĒVkcZpuD+.')rX\vL/ֲMF -Khokr:I:˰yfJޯeEzh]7W&4ԃA֪?gϗX&1iDװ_7҆1Ų`fߟ$W9#_#‹k۸(Іk%.5⠄)uN٫i >]y$d{= 5iQ"q%PJAZ1aY,|56뮚oFy=;"#)WGˆ"wŜ#5}$zihl3tzɴ5d"841uF UtVFaܩ"wyitۧNOpZvN}}a ת<`iIqx]-(0@Lhn4Yf;] 5`?~ő'ը ȍ?tSI] AܷC2Ώ*O|o`H6J)u^ag{o2v5Iį1S>&]1I Ojf]S.+H* :@-_b;{EJ}X G]B_ } k|L:$ljD:ZHKb/QrFq\rhӡG>hͺobRjCXZ' G#?I~I5%4aW{c~g_$yS8V&d3C!#/GcYL|C)@mΰ~y}k;#]1f@1$2i0is_U4;s0|z($?=yрzݭ6έTѩWEgq JwruCAwax5HzU7O? iA8@k_,=Hc.kw&j|y}Ӳ(C+?S:Li:!M,Mm=\TfÆ7s U}^w(njpnrIe(}tC08կqy)M2O1O3i^Drod1:5 '5S0A[LUmDuL?˜{Rg[VGJ$0$ PdžӖzWʘnMQ8W;s,-vJzha)`EF&7GXyY&xچI.]Z,ǔ1Ws[3:$Ĩ0xgY\<5" AZYMT2=aAwz;?9Z!uay` hb@. }kz'[ձj GS2Uwi9l6- Ǫ5xS8%yXG癓r\՚)(( N#;*1q0x.`oFޚzYB?^ZmF%@р>Ye䜽MjNI(Hk$w k*8D4k+ĂƔf?ult2z{etD5xSs䪬o7S7v%52}p`UXiBʌ("'̒1Nwz{7t+-]0h Ժ*AcHhXm>k%9*ҫȨuUӡBg(rjќ_^. 7}{aV)1R>> [6yB$ej6cDn³I~OKH%t,h #Y lK6.u䗅|-xܑ>Oʭխ՛BUW#CuͳAf2-Qn5بwLZDß6Mڐ)ҘֈO~ ij췇P057|՗KJ}ҭէT&=xqRW R:\͖jtT 1]wF_"fzTwO+_5[4`V$ o7)|r>‘׏ D@CG}[4T4>T"K QJ؁Uf)"u[.ƪM9{3C]M!S.pk?|3i=ʳlmĎkC|R&90N)=uVkXJ es>-o]QMExv '5Ң{^\6mZ b() ^ީK `!ި<5*d~suu]mvp1Vއ 'D,Y,eIYRv644Ƅ 5Yb̌iOr"d(W*fzV]M";Σ4slD,4Fg ][ ~m߸X{S?Y3!١|x~P3ԸP2̭tL'"HbW|fCI=/;VuyMK9$P'|Rkڻ^i_;GiiS4CU"o[( ,PjPGmΑYU# ٙMw7VT{+x׊5֨d]]^-ID1PUf$#[ў#Z+HaŁj| ,_k:ۄmMg5vN'rA MGّ).[ITL#Ոqk:^xffWx?$[euM2#;εd@ 'A2iIH6IMiNJ⫓+2!W ;z,;2%ٰ0E} :dxn2Kbjs5֮uZ?aoOyH,N<:+DP0B/8ϐC队 ska N܊^kKALc'i$帐k!†=Q 88 -BI:7 :(vx ךVh%9~B cj GߠIU2^OdZXץ&_& {㖎Dîyo+gN]?NMQ޹-l{8E`D?DҟgWETݢ+_r,L;oLLzF.& ,A:Y,u@!f1"P\$$M$r.C?X?grj4V]0Ʋ`)3 r[O l3ϕ!٠B3^"!bog[k=#$'O/RNq|bGqeE(~U{U5GꈈvKsH};sBvTꃵZm^@NVɔ#6evX.m(*2k 2rڴIu^iw%=U p,o0Щ'jq&lG|oe ^[ l!9NԬ0xvfJ+A}9r%_iqDnI7p p]Ws4nM`$TUn'Iв`Ǔ-d#6(q*=?:s W4ЎSV8S(yUp%:}5!? &GTܛǵk֠Jjs nZ-Rt[RAsjTiW Sx9KzgQ3̉+^+̖s "q$ٜܪn]m["/ aգ$M-Y=]EFPfb <;=r7מr^M49+.ىF,r^Nrr`_@q%Jm'W9X&Ox Gc/DH8hmd]_r~gɜ\RFHBe.M=BB!L/$.I4Qi%YGnCXK a{5 1vVo_ȶ˓-oa-tj\έYu%P94nj!T-(>q:,4|*^z=Té $Hf1#Do;O}$b'$Y./`K jpWU@L2 mK֫L( ̏xA έlaY KW׏VƤLͻl7 qL&I;,&gbU ͝IB%#1"G/p'y?1>*UePXCscui8Mr/kZ!/,X(dnQu~wQ#Y ѭ T3QHysQ[;hf+}c cW]\\-)!p%RiFV(Ir .J୨i#aF`f Ƹ\k_aMB;RhdD-N}[s9Ng+.CIƔ.~DԌ'N¦cJ@wm:L[uy MSk#ӷ%eոt"=k].F`}, E ak~_R߯K\{>s/{wHׯYyQK$ῐfGҶ,6]?g}Z\&k%>WCʤJ-}UkK^/9]$%5f>_Oj =@i 3bC4` X]e CVyij5THM@^G*4;aFsr=-=7%.v:q.}6wG"SoϜfٚFwB]IP)A'A*Yox:U2|W5B=4,׈JzMt/eGg1V=Ǫ>PB .4]c*1]PkfJ'y)tޘʥdib(3JQ\hK.g9w '& A ׫S1t |ʪi՚fVdY{)KG $:*bFiGNm=f,gXN<>Vd$c Wi)Cm[>в]\%!@a;HXvVZ?~ڀrYxcISqcXS6鏝dZFS5u \-Li S^Rƛj"3%-s{epzcPNͥ[yR&<x6^nk~%?4)D$p P6>޲C`1` F&+Bcg{ 7%YxZ"+sՙP?R+=Z(!MU+=|h"E4Zc"~ -H %l?iJS{$j*qcz)IhV{$'#58 }ȻL=U?Ipc 9jrijD>Br t7̈1Ŭh 'J(vnB!SV}`@dhh-MT.G\ZYvI }tlK5dKY 2YKNdKH:)9掖[nbnjbVC1Ҁks<Y\S˳.W>u& Ytfo3R &["nv괄"6@ 5 %RW_ jts;%{ Nrx4b {YSw9hVE[eBcX}; +ϱ3 .tɽ)rA̹u] J4|q8:um|I#+^3P- ֺLe~CeG1Ûp *?93,IwFxE~=1/~am|P~q~7B$Uo٬%S%lhF3(?uR;X`Uȃ&݁jM={ًTҋA$3.p4z #ƖWQ9 <ߒTA_õ/By{=z{S?_W[ DflH:?`_^'Ӊ4-d1 UN[_Iu58Q+T)Y!M3kӧ+ɑRm#|R,'%uEjZ'M>>MTN$H')`$%.H_5V=+;&1I}A%Ʉ$?qTtG2|gLH  /ǫ z,,RS1b-Z?<‡nj̫$r5Ċ'r0`O-8@la tw $(XJdL( e?IJ9pC{8GwAp@EG$)gW-wAUz.NçcMcg8!%la`ӏ.vi%OO4ـp1:!cbz5-6&ej|"anVE= nx򞴿Pl^Gx2EBa8;s oqok;loAF2§+^,ʙ+P1s?d5(B]ڥIYIU?҂j?Bz*zxdE-dQ,8ç+V,<7[-K$.MgFkRS^gw-b& #Kurf(rɤ, V E{\p~pb ;l-XM#\p q dɾԜbD)[DhVh-ps3նgK/Kr,U7. ?Lsρ8:fYAmPմ8IaF>k8N$?x)oۤn 䋛dB a5\hQY~ٯL8dUkmB*PgQB oߢwvj- GqRd{*U5)2/M}lDGLjL0%ImB:`Jv=Jڍzץ>YKbϾ8#YDdϱJĕohU7خ-KGZ˚jZhz(sbr[s\䩤QHC MXaY^CȨ8=/vv>&rnv;nn$Z[Xh@UJÊsΝEGymy8)t@i/aݫ#|p~3LCټƣi_9ϗ[q=B ^U{hA< W=cOppI^s!_v O_ O R?Y(leF+(RY_؎nkU{nQ+7sҺp44o '~s9C)MaU{]i@Õ~xX ޘ2.釶$>_ˇ*Za;?Gy7EvIR ɌJY0MG HMX62R/PGXG%7RgrDa@~9$Y+b Ǭ&TKE܀)Wnxmٮ6Z.ɍ\&㻩p?Fi͹4iF2烣TשuP)a r0GH]6nUwXo}e>ۤ@vwy%{ R|bG[/I+-V} fQr էиbpzA kR}UH E0" D /$uD]K~Ns[{ pxRJ;٨,8vs9& |s[fuLl;&9)hmOc5921|$~gF@Da'L+NEp/&{$y*ekb]$g厾ƃSP8~gqm\q6SI W&hZ/i;C`=5 u(bgYI^?rh wt 7`U{w|Nd*MHO(? R͑Vmp̫$)`)ÊzZi~"ߓf==ij]6@>'nzWNH(n0tW6z4-w ëVf$HkxNaXHKZ)'[7kجLcPU64YUXm| )-2V[m^P\hnj,0N>;Ê jmw+o@/IפF~g݌ @u@cLWkF@Fx2;$醂w_7 r,Ć_tLI߄)?q8Vz=HVG#%5<` Ϩ8C No11 E|̕r4>1Fɑ<Լ{;$[FKNhޒ1ufdd"ŒɤqITbh[Z}d,9V"<{Zi~~LG "8݆LQqZ{t4L##K'HSOd"=~"EvuL{AS=^ 2;W)RG'MQ}8f{sx4{%iϿQ1#|F iYR7 s7QxPGԤGjM,[>75Cȗ˃æ88(Zȓꆬ6ORtr^kw3CX>'%HNY4p *KSkI5ݬP}NO'nffx3ך'M!R5߁ xk̄M_*e,'G)tC0n_7îI~6|Rnd6bx@32ѣ9%ڛ }BkeҌך~'<~HRc'1F#%[vG˂CÑ~!$rsE()d6JZl\8.-M}gn~,y7Ǵn+ɽ1(Q(5AB9U!8StfSe)C%FdW5"3NHy\-z+ĎU$)oY -ݣKxKoa.I'߁LKw;;Ѿp" ,:HUixuyص7ah[u--ް~s}_Bf`)=ףVcԬV+wFu(hW.C ,G&Idž #j%i)4e[h׮jqZ YIv0GR/b|3\}D*-b@bxe%IǐZfIk@xz}K_Ʋv>Ձ4l?kȏ:Fԧ&IK WK_;8:/x HĈ-# })Lһ񝄗A`r?WXpG r4 [tnz'[{A_@ U{_ !G=ZPOߒ^qmd ax4kt8$K;Bj׃`GO^ mq~KW<'sz zRj+=W蛢%^`fآ% >|"R tչLA=q _`FTbg4ѬDb6k0Fa%00vk$wT`ĄI^H~,4 D䎈 H }gͺ93$Eu/'oT*GW -jjvW/%UiR IѝI)<emIzޛM#4?Kh9qL~$v\.foz6My1ک:*BF.:Tv$1"^&6'ˎC{PcUըc Tso`rFB=$#C#I2! ueǙ QPRFxB>vE}885-vR-r]C\ Ő?p}PfӺ\nLgKmPؠ侹 30iu'Rb_jjUZO|wipi^ʊE p\98qw >XIjA~v^izVgU{G :Dcn:ϛYӗ%>8GOzy7@~`1dz6k"Mr@˳ M\4%Ϲue}5 f3s65QϜJuPIpL1Xgޱ{-9"dQ5Iunvjj!eRUiHҏ雍)pP!K?L[Y'.~L6D_4l. "v.M'tSrE_MJbft 'Y\fr%.3i ljVP܍rnRʔ@+6+үO3w%d|Ih&x֋Lx lN+RٓxF΁Ve̸>L*uDf9G7ˍ^_K꒥SOhGtoՎ =~s ѤV頣zTMG& TZdawQjJÐ p8^֑C >n襷?a+}kV?,ͽxl `9R L:G"+fj9˴T@.emiKOa9ڵk|5dLNHvQ] d@K,|Y,a5HnJޔ:A/aNvQa]; `g1Ks~WJ _^ЖZ^q\@na b./-Me"[+ԏ#ٞ-7NI裡%]){YܨgՒ:~6hX_.~BY(D# ZyVjT{,nTcB8hP8PN,gʎ\ rI%#xD'V4_TbKR$ ")hn [M6ꅟWLwYj |k 銟HR[eHe&^D 'f#ZIAJUBozosbc'?)^ˊK4%>qt녹I0+A1]th76%:`ba5D rY~t)T 6VocwUG\mitZ#4:#F6lT}04_56:lOUQ*p 8U2W&*><Ǖie0*T6GU@6F&tdwr8'+!=ѡbdn3Og, ~g6hƎ. e\%#ep$m>褔Fڗz՚]NYP'z9RYv9:CtLC $>ZNIG#X1>U5w,KpfYDwwI"^ Ȫa9~q>Fκ`uJo.gB:щQŤ?{TZ9Ӗ~Wl:"r^N (쁩t 0CZ^-`>ttPf3>Үh(D}K?׺4sGny$6~-+x}<2`{}'f=kK~O@}c=q=<\Ulj>(wLp^YRŵ@ }W`bct4xhpwabG)=.MRcxąG!ouX| I4K&>8Gi-'!4j8iw0V۬ ԰=f @p 7lVtQI˞aY'i/F'[r S@tyK#3eJM$Mt^;lOST@FcVe 5 sEkHgh ^Ynk˴)-;rDs+CjֺKBrb4G0V#ڿZ3ȯ4jVM: 8tZMZLmP(lHo\OD8}q@tvtQWMj(ԟa "ʬ$f ܢ6`5 Frk&HS'M>Qdb,ΕmP08.,֮f4Nע(v"05"(Ybz*sɐܚL0Snn#; $IMZWsޡ0g!fHCH],DO HzxשdCzWD[R,<6I=>\엫!ܢ0~ʌ5DC%\xˌ_ Jja0w[^1$;\/Z2sko|I+fl,+EH5]4 n>#_ Kv& $? IV{{&UvO fE{uF|M.[E"L -^ OJ.df2 M 5ZU1EF숎JN-Qd2kxU s_xQKy6N&$cML/tnh% e&7E[.|*hNƤuK ~ .#U6=tkq%K"2r"̇6F#4Idlut!ƘR 8y&ۮl@ŌK1 @|ӪҒ|Ksm3hvqs|{*i]H3aXN%U] Y`y-`X4rᆪE|ZbIcAc=5AE_+puO>%p%; 4,1?# 4f A[%e1f7cآW ~o;yiQ+²A"Gu +f"E;MI @9(y2C]=.V'; ]4sp-pށ&6wX5g[}_ө臐̎E=s}+(Ln-Hg2l[ghHO̥'DJa59Z´͒g i$n?>j0#2DC靈/&דK'ZA]Le)%[zΈh)F+kʊtD}V1 rRKEVH7g# %NJclYF8w?UҋL+7E^Jz;$~2`Gveb u?Wnϧs[ǰd8V-(ӚwUͦ5?R]W TTªkHgd)[6}Gm7|tƣyPUQfDﴚq@OZ?abii/^!J ԒaVGkxÕ7n+%$4YH`zGba /ȡ|##BViWN5 2B1L^9VGmD6j,NܸtdY{n>\5'r3wxz)ӱv&y)ot?KNos)"g Qa<%gvk#`aHc;VTCVr#Հˤ*10!^}}?w+A6ɐVj9K-w~opZP g#>/a]biW?~ - t- h,..&4/AeMǪPiI6xKh|d:(S|#2c,,Ge3+L%ZLNߵPBJ(htIZW(3HNCuҕ#6dQ"D;{But%'5jjS-qzU!jK5NTWSq햢v\KnJNFU*?. ~hY1h3[Sp͘I'6wSKKj|qB[*gvه- ΉAKr]Z]*=sڊ׆Q. 54kA:1R9AЉHB0쯝6RTj,a2WP3RGx`dF ՞T՞dNI95^3txp)y,wO}\- ΤL?+Fm} >7 gJpخ5;3lUuRjyRIOJvHgMH 0tU&Ml* 4Hie_E$r@}e{ }mbcFre".Ny3q,hWkֱs?R0i$Շ#jIٻ#9w}1Gۤ^JLc S,$rb:#/){Lu6(\n{r=]/| t6zjQcr.wxξk6V7UJجΐi]k Lxٹ>W'[AC @ݚHn}?v)ڲw,= ҏN _YY A%q|[^\۫֫F s 3:܄GqwHF~>H_3')Ȉg]C iNը<ȕ`d>ݚC ~=a,lDGD!ABGi#6Mo&בRjQĥB0iL Hcq*eѼVҀO#MO~8D iBiD vZ3"rH!TN5ut^lO$EJ{eSR$u嫜PE_ۃ) 3f`T:N\p2C͑oeih$X/z^O|YP>=]3*CmQO%ic*G]KN*+a0V#qjg9)aXECr~Ф,/<;өs>FsF^̵܈ݩOx@Դ[ڜ4:Qƻ zP/>k$cQR{Nd:d[$x,j˷rk, ti:U m|q<)Hg6EK(eX[hd=P\V;Mwkf@YɰEWRq\R `}DpA eT's_q]vf&ZМ3:aE> ѥd 'i$$K~m[exeA +Rgl5[Xc{r/KX7wlo9w:ASu ҡ;fSC7zRqz 6k3NܼD(οl=c.T4ZG(6OϞ_F*J'Oܵkk-!^Vڠ0BR3zL~VDfWYy\M. R_:ld,M<_N!ߤ59(۵3xnV;ѕr9 :¶ '0{OZ4|Pv#voŬz $_tiפz5 "k(rfw^-`Egd@nrYt=}A5ר > fܨLef~ףI7@HBG+pY] [yq\xpU'tyw-[)&4sR+'3= 'oz?9'7= }K?'0<%Yg90a1{Yz_n9|45[r4.fcm!e*g~6uhdJ=_S '͹/WY}{C Y!4ϚA2`P4=Ԣ% 43poIi_'xa<NU*ZmX iC_"nJGe/ TޕOH4j[Zu~3Yը؉r zIgWN9r8ep%-gdOL~>콿ܧĘ|Tg:aފ_,Tbl4"nV?p0_ۜf3GM'8keq9.4bLt}YcrHf)~4).mt\⊚W:!bFs'k4t ХtL*[")+QuudLg}H43>5 #_GM\z%T+覾x%htR߅(Z$t)7E>Tae c_`3Y]ˇga-{7wMqȷ#chn>(RK:۱'4Y-*+T&tTݨje}vy45olßhBŔ6dX|@I*1g昖ysGlI*ޱ!MzJi3J)\Mo >⒝ПQ:[%R(T \Z< "JyR4g噆C4^_Ҩ4.@Bdq"kh'w1-s=%WPg(zd^C%v գ\r^FT".9~.g53.olA#k#1shӔ63Jk8\XM w.SW|;f=٣ l~xLV/McG)~$\ ص5&#u2$/C^d'.PKaD}h Yy=N켰[S&>?䆉sL\\ 䣌|B=y.OLsYϴ5h l [W$N8а8HхvrS?M7O=]yHb$N󫱚L\IM1|֚{M89xUAG:'C BT앵FqښV6 E9bd ה9QkRkD;q '$3xo{DP&xVnEنĂ0y7]&Jw`)rw2xOj@#[LmU)| ߵj-1dH׳F]6nUv6{a>r ()A"Tm`ijm^\Qb%Ls |#R+G ŏ()13IӛiI\%K>IKC\O=e׻JЏֶsx+с??6`>OL?Х$)upp}kiKTl}nDcJQA5@&!()[MtlΆ΂IIItGo$-#߯!;Bl(1|6ı2tul˹ߗTn%~lr^({Ǿ覶൨hώ_>>ب}D{o㹏Oy;^乲cI0Ф)HM[]T6x$0V^8@XC5]5O2f$\5Z}NJeKp4bV~˥#qptpvם#g{*}$8etIܽz)k {%O= yW&-Yؓ$D҂~]֩nHDA}]NDl ~ܤI]F 7RTޙğ/Z]M-vT|<0%ezc0S;itk@f&nId`0']S`C 4uR ׁrv>!ZP}m]կIիDZ! v\ҷN%F o\2We ۲VP[flML t0FyDȁla>VT-u>5{LgO6N!~9T: LK-5K$3tkjAObp#Cm"vh\1lw VCW7%o)մAP8feQՀtً:]uԮdoLʙ@Yn*8W>b{+Ҫ"yn{k2s,M(TLI: ×eV;-R%puV-[EϘv5kE MZ@ H]PݦNT]2MO_Qg֬Hړ^ɋ|2ۤl aEr tnGdmc^#b2ݣ;Ҭ8.L@: `$S2XșW`ܼϯmdZGh8fܬ)5)R DDaH9qI;\x?A\miʼn 1آ% 3pgg!bWJiEF;9ש.(f4Ye7j4s50 )m^#gJ^roPL#ا$mm{D"ch&/&qnHݸ Am/Etl-,W6 3|!EJ|1Z x ,gaJh>_E= ׋d <[ĞɰL-0QJL [ڍa9[XnIBlFz-v=KU=5\!tM+rq`T`y&}탵]KV##?*{6'ҍIA L-VwXbMjIF6_lwTu2OP8Ee!Lk_>$Tb=s~8T0!(6 $OVbԭ/"B>N@%V#d(?պ/#[.<",6 {u2OgK}aeT ",wĘ &xE$sJ>oGЎw\e~Yi0m)I/[$*esiG1qE_+7szAZCIczj5ZŻYmx|F>2+MBcI l?AVv['#olrndz>PM@l ff A6:+IV.Hܻ寠l߅?+攗Q8 BsVK:ڋWz} {1OlP#av%瑴Phr}B©xt8$h!ҲYJccv{M h8S>5Mm6D\XQΓ>"Y;QEH;jٴ*Y1 1ʎL=&)-5EbKz ȲsrK?Kp VwMm.*ΠY jRr9h T4&c5Xq]:I2&/pi5j\GM lt/$J :>k91oNg*//,t/uih"x~UZCUﴮ|XÏ[^B';f/z[Z|/o{UuDt9G6HD3J"ÌXLynY))/'5ac[׫l,$ ;x-{~c& U臞XfˏGxicec# :υw#+=*!Ldx6悴˱!,܁>z-ś}f.r(s@Gzg;Q9LƭjkB& ʺz EJuT(4f$hT\? | vҀzM ;\y僕@v?/:@^,&;IY] fЍQKzUYVtv}RUz+Tn&3q.K47}kB8ITҞ+ߏ iҥQz=/<{ x! L^b>P,#c_Ԅ\q z\1٫6{o|ga0|<֣6hg#-SX~N[X>>dju[mQcjM&!cMETIR5٥zPxP8}t7Re6UF{YsT vt8rϟ OƫG322> .G†RSY]h_坉G4x>KR`%B{ӂTk|b3R֐ma$PǚAJQl(Ov[o{fEbRS7Ǥ@Wo6hS%zZx?L'*Lhɥ93MѵP&:]"j͢jl/_o%.!BnWvplkI"21c!X<=kb1 gi&gm)ǃ5m.ei/v'')<.0t{UL?ՙ]&MUV`m62K,%|m4*֨D:>w';bd:x8Z$;#[3n;FE#MٲsA$ z4Z*}|g'!c_}t L!Io mNײ*鐔>ӻ+&-jqx3p\?bEtSsnEBOK\ }R{ZV3i:?!0E4Vq>(p1Jx iz's&\M!^ܨ'v)1VZOsUa@.I,v ZguH/0{TuH5Y):HeQ?^\7⯛8 ͨ-ʻ1@8ɶٓM4$zǴ N}z(H${4bEP2wxd vNI :M5N5!}Bk h# g(rv._J MD5a%ɾvG($.:8*E{jW[!\:7ڒaZk..U֭NR,T̆)/~zC~_>!}5_ᇎ2o%۲|tCm-md{+#p˔" s?r_%B'3QGux[ IpG=F$qE"P ZID 'f@_HTP:MvJzeyv{8T4l1F|o)fJUS)+ 3á2ˢ|GW\UM uןH8"Zwwk1xݤ4 hBf{wRozpݑ-Dyv),Xy=)'3!!ay|J<4 źBh s+ՓK% 0rTN~r-N*&P16r O=(4,M "!)~H3Z((!KSHZkuJp:m6D$N]MlX>cHyD8w`e/Da-fNI2*%Cڦ™G0&L;"\JD6w(|ϳAFStE@Ne%!Smu&5JݤmYtknJ`m;kjm^ ;tVD> kWǨl5K{PJ HUδ'( îPꚔ$RG-al.k]f|&Ԁjg%m^ɏ׀;yf:D4d2 >'я͓Q,m[TD>(gEK ɭ P$(xZ(;HF2X *;ytp֔C*C=]M3;8FsY"yWPgCk|YNn'DZ#U@00Ig5Kz >}hJ7 c+",e^ޔ7(B2\-;D4&p~'?h֋ ,Xв>y9/We_B*2Bx\J"%5Vw` 0K݈$GpGҐS&Ɋ Z sL 7m`y IZh4)"xCQ?HvtoPi !/+;;{ ҋ?s] 0qʾE Ɵ?55lϛ3?~;|*I'~ L{?M4mr\AiN'*8w&X!$\4f(\1(g7s2\m,Kl퐄bف:,_LI$OQ R}_<6$nJ+kM2:6l,Ku]\;_ZpI@wl&J=4s(azcGv'R͇&΂4Јx/L|Or=ҝÐaӏ/زϹ {>(VKTd2PjNzn2BqMUR DGM NU{p\E>wQ"Uo>Xxo3id?j 2_ ѮrKVQb~n^/'34nր 28Z2@؟)6.rA#i:`5Xψ#U7GܨLk^X82CC #svy1H$R!˚i#zr uROw`OjэC–J\61M+G;wUMY ƭSWI"xH ԑc5;S5)3Q#2 EةMd؞f[:铯W3 镩hĤk3Ʀ,离 ,Um@HzE?ݴXR$G˚}p_,Di@zD,!P{4/ޚ Z~<4 O&=}5 |+u5{_K2ȤmT&űsb!<%Z"2xdfgz~U垦g caJ/r5.wF]M?D~/ oW-B%l8&b]F+!= szTwŊ88%@Kz$;ޗ/-*=F9v]!6^ُ SxGWF#W` @G|0f㨰ɥ֊Yޡ'Q܍2+@ ]hk߶*7}V|bqAtjƳrJ&K' I0Ҳr#Ny>I_ ד[p~&;A}Kp=kwPDą$+6@H,d,?;ܥU|ܥ7o8VwG#"/Oe1Gw+km{%*ӑDt(j"ɧ.w7y>gR3l0da8Ofoyl2UY LL4a|wB "}i=C<&ן),G|T`^=Qˉ W )|X3]_δ<NJ]jŞszy}Px/Eҷ.a '$ub7~ sAQޕ ww@Y25),%c9>A$kpЎ ]Kz:f K)Ĩ|bT7]k;t9ϮI&<}VVDY^H*x/@95ے,F7q/AgZaJsTKHuwEGsaQ eG2y1)r ;JfQ^4d_or3ի4 YЭ&cLjo'.I_i!@]n*mot$QKVo$I@N?~# I|"`t L |ta %خt2y%)w%r<7*#Sَ7,Ȅ OíRҒ08dĩ8emNnƈ1^4iL2OzyL^)3&w=!19(iZ}'"r32HǰлY`:K߁ VW?Ei!~Gc;k Fp$A$ ckr:Qڧ1H'9=rȠ0tRDw,Y⽁k -KSt{Q Mz}YN25cIAg&w7߭}_ޜcpI(Ѣ 1"0SZ>{/Qިpa=W rJ&oAB슞=ऌ8VBދׯ,QnٸAde *. J(I֠Yc9h >E&!!Q.'-59+uQenَg~AJyr$^$sѢo[o[ulNűM=Fh2]C!m!EM[) i]Bӂ& \$$6ZI?wMrNG:W tDCNwV j/ s%gq7)4<2s:ȠBMn0 ?pןG=ǞTU?kn?|_|_}C3_xu fN`*g>@?}uGO,덟?~/?~?pOԎ&TN _U3|%sjisI 2#3ш!VL^d﹩+[;n-\S$w"ܿ!:Pn˺`s9bþbe8@ev.8ֿ }?l?1$ XKDȤ7f{@a~V![>֓mbxpANr29^> §pۍzX?:}%Dw`#> Z>pG!߀'4޿dg:ͦޅWe Ugh&Lq?#"22%!j2Rf\Gw`U pac`@ ;܍@! ''0!D6 hU]x9m@$' _4MY_?UBכuCUSO ,ʟ~">,"۸z$|Z 9thKh[NԻ@ׅn>qcxQ]?gcyZkcyȫv6hkyڈ74`myYPN8 3=A?s.?\.]|G2PF4'eW1\0`1F'ߍx0J%YR]t?ĕDr]<*dt5 --H/!q 82?_GgJ1,@o/`2#靖}aQ!Y蜘KdZс%X-1+iQZKfp]HpDaCuR q uKC-X]yƴ"rI@SrĔsКaKKr0\c¨7Eh|+Q. OqTiw Kp.HE`ԀDǙ2Đ3*_jAsvx4z߆s>iĚG)Z(KzH: pF-to} |ˮMܨjcA ɧZD]U>0 k,[#ڒM$>/A^F;Ml/.HfFJY\'zwGNLeiMV )s|yH(m߫)X_sOZ|_&aɚ 79 RoWV >~wQ`a8,OEɹ@ZE~!.!JԶ>ik8,g2>$EOh+9N[m z)~LLa6&@RX$nLi1M)'bYzn~}Ni]ߣ)ckh4_|Wd;ػYǑ.yreX\yZ(&ir:{ ֋>bWWVO>}8EIVX/[2C$nD18-#}/} cpu:A*Qo$ʛ5LFUd,A! 9lJG0$͏TH" T:DpԪᨻ!^VŽh۬C;  _ôm]ݾ2MΤcr`S-y2a9~D,'adME}cv% nh֫5gsOY}uoN@x-03pg>͝1$HB#əcy)%I%yA+^8T{ "/T.ҡzWK/OIrBt_ՠ_T/[Źg1 =:Pgȓ.$z8aJ8 K+G,jhT%5g6G_jO:W,DqUB g"vO g+RoN/uJ?CG9I2MF67l?N Pc %X=2ēnY2 &1\ uc0QuA uP3/`M0x}".VINf#)|"M PO? {vqA01-/g̕ nzP)%jUG|\/YkT<)0ԁaO4)9~5ut_uiT`n6v= A`ЈNe=&l)(rwwE~F_EN8A}ޅ cRtȲ\=f鮺tT.p[nx?<)6/?~Ui 9xj'Y*y)^ 2$1l :7BP9AX8X5v=]~{G$b$7V%.Mxw 43:ߴd^Wt$?yM!}_J?VC#x8)kY>[[';ro/]bVJkoA =vzQ%ҿIu2Q}bjB=j(E>ڦ?h䱕q,etV#G9S O:(]GF@(\`eADD|N&CBj>#yY(g 2)#Pjċzup1<+]4~FHEtN\wEy〞8hYo= Q\7 (ASAx$h % % >ָhP#.RCMHb)8KHh㚸f,6h-!JKQWBF 5!GCU67u0er$t#2еqS0^)cg]l9`Z/H e4"6k$,UL~3{2:P-N6[ C)lI2LVmp qgϸUjul)Xek>Ӭs%BN'@498^kӮ0^d"ꢓk%T5>'HpX xҭW c~K ꅦE/+Xvkw; {qAԊ p?u(5ֳ9T8YEzhmiЯZJE O{cN0p[Hª $J]uzsOk3Qѥ!bƔV>{nY!Az1}_o`})߈g'(&!ET $[~/"RL9BeW"י]HxS8і]Ѡn+s&;s]x%o}N]|pclҽxer]wN 8k"jJYM]%ߩT79Dt-bV5+x9e?1UxBіt-dmv8馜<|/$34aEOG[/r} ~x!;u1;$ (Fi𨞚4o^HHȃ-zlO|47^Hd2^h8LTwR@0F?Y-Eӱ\8Y; g"T㑰}3Jm=ܥ{⑝k wט7ђ~ҥV:-vEFqq[޵ڪ׵L@;qᏱOwܗ̚O{;`|d6>ŗ>i"HGnN~Dlg@"UgJNI4YnSgֵ)PFx=cX~fݻwz]ී@(QXjPH\1ϰGO|-01-cQެ/P&wq ',RM9CATrS ۂF1W_@̈LX=w#٥ޫ~[l,3bsqIOHS#}*? 2sJ|? WWT_:SRFI8Q ҕZhorFf0hQ0'GPd5մi:Wch64dY"eOԻHC8N@~֍{2bCuWfJ9b4?]>O':Pi'o-B@zZ:yĔe)5 dcӑA9,a~}O(Sa!==MjTyb̝iK6saۃ1=3FoԒdk\y/@- @B##M4KAqĜ2|;8渿kI8~HeYS^f <ɍ`/p%`d!g*@Cy @d0AON%7v0e׳s wz䏽y:ڒ̠+`ig9(Oۑ A[H;`=]XМAp&Ip:8LʡZNX׭X9PH[vx/bWml\9D驍F] kHr˼O0 U\h$ A'K ۸3mԛHzn>s%w@Nhno/l(e\~g*šk#Jjt"'Vz\~ qjÜ3_$x3n{5: _Si))%w[zl]IO(~ [\߅to_\q){mX^7tN=D/^nx}qU