summaryrefslogtreecommitdiff
path: root/fs/bcachefs/quota_format.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-01-20 23:53:52 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-01-21 13:27:10 -0500
commit82de6207fb20ea9a467065f4c8ec382affc38405 (patch)
treed8f9cda7d0b35430f5c77fe948f0e490005145d2 /fs/bcachefs/quota_format.h
parent43314801a43985aa78cf475ccbdb3c520aa1e3d0 (diff)
downloadlinux-82de6207fb20ea9a467065f4c8ec382affc38405.tar.gz
linux-82de6207fb20ea9a467065f4c8ec382affc38405.tar.bz2
linux-82de6207fb20ea9a467065f4c8ec382affc38405.zip
bcachefs; quota_format.h
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/quota_format.h')
-rw-r--r--fs/bcachefs/quota_format.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/fs/bcachefs/quota_format.h b/fs/bcachefs/quota_format.h
new file mode 100644
index 000000000000..dc34347ef6c7
--- /dev/null
+++ b/fs/bcachefs/quota_format.h
@@ -0,0 +1,47 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _BCACHEFS_QUOTA_FORMAT_H
+#define _BCACHEFS_QUOTA_FORMAT_H
+
+/* KEY_TYPE_quota: */
+
+enum quota_types {
+ QTYP_USR = 0,
+ QTYP_GRP = 1,
+ QTYP_PRJ = 2,
+ QTYP_NR = 3,
+};
+
+enum quota_counters {
+ Q_SPC = 0,
+ Q_INO = 1,
+ Q_COUNTERS = 2,
+};
+
+struct bch_quota_counter {
+ __le64 hardlimit;
+ __le64 softlimit;
+};
+
+struct bch_quota {
+ struct bch_val v;
+ struct bch_quota_counter c[Q_COUNTERS];
+} __packed __aligned(8);
+
+/* BCH_SB_FIELD_quota: */
+
+struct bch_sb_quota_counter {
+ __le32 timelimit;
+ __le32 warnlimit;
+};
+
+struct bch_sb_quota_type {
+ __le64 flags;
+ struct bch_sb_quota_counter c[Q_COUNTERS];
+};
+
+struct bch_sb_field_quota {
+ struct bch_sb_field field;
+ struct bch_sb_quota_type q[QTYP_NR];
+} __packed __aligned(8);
+
+#endif /* _BCACHEFS_QUOTA_FORMAT_H */
kZQwslt.+]1]Ngi*si",b3^D:yܷ~z<>Y :o!885v& R1g.hVJӮ=C)5ξOE]uduWX-wbw3ߧWLt Hpzia]3r vps۾1JIT/|dAɹlfGT/c1 0pC@~?hYd<pWŝrwyI&UF z*/G.P^7z"2zSXG4w<3,?557~!$0UscՔDFudAS'=K\~t|s>,ry6L8k)]v=*R`]1 %m}6/}R-&Uv.B 673$h{ 0{fϪvA<CZ$ک\`e s˃uICΌds^^v,uo賓rTH$I˶Li\lќ#D1Vܰ_qcsǻЖ<^9X9nߧ<#8?ƈ\gHNA(Y)ouKQN/\2YNs`Q.,qƌ|kQڡ.}Fhvd$5M\]UUaTɳ\ߔ[}4 ӈ^/ 4%PẠ6p8k>wFI*Hd ~:ͦn1ҋ$8/܆^ J=_D$PJ.9=f8oZ*ZP n<9 ka6N]-}τqyۓdjÞmP^ ,yFeFﭑ;hd(Ⲩa[TMync:NFr1]'tGŴFOGYWQF]~X[,#N{A%)^M%v n.לdl[ I̚ pUpkڔ[MsԮxS5Q4UӞJEZ87_/J-t{hvO25#,o~ ~Q+zzy[>ӽg~9ߦo]Ů6ArN|Zf-ws]]\c)u~tWy.ɸ]j%ލDGDόMf 7>&H4^$)z{$d @Y=@}MGp8}[m$=N4&^yQN!ӱ=۾ŽU]XG7fA :>t7C >Yq,CC/'`c8TJQ0? Bν-Hal|DWg1f>-Jy:-&um%وt7dȲԣ E4Q8ʼnۥXD(@=9˶3Ӱ`֦0#K0 9`]W|I(?8|#6}c2LZًH-קƝaݤg~Y'[y[a2I"˶(z-1k}pT .ߗ6Ï|?]aU}Ir5"ݽ4;Kjv[eң xTA(Z~6ͻfz6u{,֯{x9pӜUYFEi~@:z޼D!ú͏ϺU?k?-^^4tEgy6ۡVkS=]So@Ǣ-nNSȺ6hVWXp>_Sϥg-_IX\L0UsAf| y'oCsq7u Քsw.YriɜZ"Z0J ;L}]K@?RQ;a\TΡMLEY7 WUZAL ,ڒ ͷDzcV>2Jg6Jd]-#oK$.q8j|SY8-.(zj.hX/W7 YH ?OAԑWQaŔR+S`CHDA(~2(ŠJ:šEj B\mn뛛c1VX#w·JxA`U1TmƬEX#tcY"1Vx~UsjmmUUmv9ͱjjQ(W7#mȿVdU-̢cnrGmmUUmv9ͱ?"*VmUTQFy"{.^gsr1d2%Zq׬f|vc42F}įp܃2I1ƫrjVLr8[4Hsfs%GmDVskџ&8#`3n(%6Q)@:eI|7g鱭6Z 0ͯ<_ҋI$9C@T Z@0щ!0P@F(Gsi@P׆#}hm޴P$BdR)"d(C.M"- {xD껙(*Q-\"yWxaMһP2NvO% x9 _̂s<򗰠ŀ`[ACd [vgs΂`"2^C(A;)dKD8)Y`iz< ttbI߽X /HFO݅F(Y% s4|̿v(؊qiq{ BR<u#07_?5`3'kW ;>s! =d)!NV4%t`IAL {oZ & OWb)1FAALQp0޺GZn}, ~ aWtѼ{b/h֕v^z eB\`}1p9O)n /|ʹM6HY;X7S CaitN<.[cׅevC]yuLuY B3xfq(Csf[Ìx U4>=c{}1cV0V-~?!QK<6Op;JOB+|FDb,6 vFhIj7D%5F,}]r1QnHh!m¢%^H1UT:?voK-ϐǹM4A ^[ #Tryi^HO` 4i/{p69=SnGR>u~؁($DkzA%x]?]yҮ80׹N]Y;ٕ@FC7j;U.jt65ͺxaэ74cD-QɃl" Ks:D7 5_R>ccR>-j!; 4AhEZ.C6<(ACQϟN g@HOS1tXFT$Hh?vcēg@EJĜ9Sۑк(o`DEH6r{>{)8leU% 錦Qr6$0,ь2lc / m!6Wޫ@%B .6st/_WHVXQE Pn|Qxe%mZp_$fFG L87\-#(.HW'Ɯ==ag` Y_4I|;[u!]C'ӋTlk;zqczKmhttV;,vpg{1h7p&ot?oϖg=T>hBzs8E!ˏ4=0秕By .97g4>/R].n t_[{+6/>.e|Bck4Cd㠜8B{m<,0gmQ>pzMι螃.J-wh拮n۠zi [J:DOG3bkf'cO?? ^>]z+!m/իWPk^÷cN]\pY~ijèV_]6m.!*_&OoHw;Y#MΫ]Yr,S$f)Ay$8RH?!.AxQ)dޏU=qQ.6aPkQZNOjuПqU`1$/p(ۭ6 Ct'piVrg[JtnO0 C0O5#wm.,E^[HKA9Y9atP/k [6{9D菃@wнt{F.j[S0 'vqJ57c|yՐvם{O~-}.ϫ_hY{:Hfu^c:K^Gے.nG^Pky[ Nz]V~&C_d [,ovVC?gc!+sժ@lWXMQ/7_.;5cՕޏ#GьQGBǻ!;H v(2riK(#H8'OApz lTY zۦ|c6s>Vtr<6 ^<}+LChŠn;m iD#D  }z'yDrl^.7D%lQHOh'Hsca-Wm-$fD2g}ZO"sjx94̺W'le`3}0>=mfjA;8g{cg%6@+iOϠT!qDz zz0rV.˱o)s ] чՍB \wӗ&0'5DNsnHܡ̊@U1_U4%۞t}bvq{TI'׉ʃ3C.ÑvLUIEދݛ9[zxz E~]pEG$5=lAowߡJ?H{e^VAv|l/ߜ#4h]ŀyfb[HhL*|d6~mZFD^T :Y!iV':dPEbe_ʬ WV(SZ݅i;HF|np.8j9HhV~m_arK_;a tSIu.kh ox&?W5,uH  ghRWOn>/OlJ g>ZmMẩ})0ͿAc[u%@ ^yP3NL qU NϢZMטpY40AYŹfO>g-.kcK8 2rV|x-ԡr4PZ ߌ1؜ϞIyEEU^k otF@1K,}O ;c}4Qkѵߩo:u0z"N[1S߂Y$ht-"z =++*!EEC3ᦀvs TG~! ) p|:F4P9~+}^hho1yTDsC$ps!\^X b._1x$HB C 8WIgt-z +uql@۩PKdA e$@Hn G| Q8YN=O(v%%D$C'|}?:'޻y~91ݣ!"pp>ՠ99[Xg F,_ duRnQ"A~U-]u3s3Tԋ{u7\3?}rv*!dtT`J9@^̴pqHR&S[\(kR(Q?9/pM0=K-1@`IA%C>;3A[o:lՓ^-]ȁhU #1\C* !=dWO\aLM :+En__IP9oHe9;~G;/^,5v[sŷKᒤVu+oZJ5&r J1FbOgaN(4=Kh@DO W+Ƃu5ظ;H{w6jlsj RߜAըH??_+={__pED(~Ved Q;nx@:Zƴa EJ%~suG s*3<`*Xp&3I Dy iGT~@ A٪>Ck@?iLA`wBe $!@=)H#сDҞ{,dP\ٶ,oSp__9*4l,I`kLJffgKltq(GؚG!0>MQo<2!F x !AU tu'yB$ iu ^qP*Hk ~6(w尐 <>Y/E׃QB[y]^SaN->׈^97 B?JӼ}+ ͷDaxg5nKu ғ*pQ D"v rLK\#p<P,.h,gʾNx.އ|=5}/of+} M6쳷etgcTpQ Ԕe 2]B"'ěW.4;t@P)Ma#tAw.7zA/otս$I1=0w2'6qٵaăU6L!EP͗20WIuPX9˭xk!w t \jp; ͫǖs5Iw+";8Ty| u5Fm9con7 `;Nv2öǐgǛ@|p;,هLS0Ē @yϐRcdS8qX祜esSHdPtq= ߖǡy& dI#:dƾxPy:|[(piHo o{|U%:$z  CaW#z2 p)yvStڢ0h= {  ,EПAlp^@)PTkinXK[o_ט5RM9ڞp5͘a*Zd ȵkMW1s5 hb~FgQS Li ^$ 洚tphj}q]z@LOr#u]ĠpՆ5kNH b]UÉ/: [ 27Wf-P݇B<|k*AƂu4})*mr5 FDS+ />\gc$y` b1P`={eo旷[Q'un馑 wy_uqwzM;f$wኸGLn~k"3KW?0- /e 7 Dwm{4* S;uLHmX.6rm0:xHvsa-8mZx '=7l~M{'d_&S0Iv-bYlUk(׹ ,ͅ6τ/mɖc$gY`և,vh(a& TK^W({2֍1P,by y,y%ySj-3*R*sgD`J~SIJW@G٦9,#{~Aw<[wØKRnփQ YM;ytT;@[ِ&ҦX;@r#~iplVԥW'i~MB@Qs7SէN(x-v{?uNR5z8U"ޫ$&;c*:̾c2n7Z7VP{pH}iXn w$cNNWZ"ZLFi. ﬞU$ #z83x|o381w~X"n)s:87#b̝=4qzx lVM⡳H!M?(c O`^uJvvCUiB)J1ʎl<-OmdQ~cc>}suBǗ|zSrOēuAj"Sv0 0y "yҩ}. 1bߜt9 `?=a_~q/6pQU}gY1 ǻ祥O2`T+QN`Cߦ !߲>Gxqgk~(ڳxuc҄ں,eʒIF&/cLRgTB4 *_'t:\;wKױ֯o5듘L9`z:Z 8_./Req>5 >DX@HBALsZA;OI oAIݫ&G5ѭIa@0ìW.4bؖo4q2>^Ǩ{ ׼C4ƹ(E&!3FZjF1w 'mCGv٤"kkˀR'1#G>>qlןCC4%Z|^g^#5R95XPЭD=k`q:<|9WeuivN'l*R|1&o`pFp{ ?ōw2.ף^=&W ?v8|ǚaQCӶxDzrNDK~_th>kYIӹ`<_$nOEųKѬ\I֓OmGsgPCћfVEve>8;ݳ5oFf\33L`,nMiy^Ԥ]c7gӔ'(;>iga,SΝٻl=/?_g'ckh-[j}y}_̟;ol.7_v9'[NY}-|~r A~Fi}zy`i*RrDSϔ*$b穢 RJ'ЫR ڍA;CR|Ҽ|=vǤn`ӱ7'Ӓ;0{UR*dF/?pedm5q=l+J$ߺ07"f]{;nَn+Zo XꂍgΖs,M_kDK$SN b3(H#^&d 8iMk :P0vu|e$%7MWNab:ǴwPieO:%mVYk$dkPF>AUk^cn>qWo"ZPdX+6%0158eLR`89wrCY8K(A@21zWD Y%]+HTX@gg5lopWujX9 qE bfR6˲#jIS*]Ls}w~tqX-k0`1r{$7F&ctrOΫ9Uy_ƿAߪbSxLJӳtVQϻ\~:R_|(q[ nfQ{|\VsK]c,1q bqQ'&Gj0 HgYctL}#OtC1I.(h$LxfmX|0"|TI+M9`MbP0[ZZɂq릷.2#3L4=e:F]Y,CKW& h&l@պN#0yJhk5.(##L6qJ$hȋկSˬ:SLu:K23!YEtvYiciZ0ghzDo[v_ǭ8Hl]D|+iT?g7&eS٪QTOzkzkMQrI ߶2kwKw =}ػ# "Y"mEr}T X4h#1hKYn|5Haz%a۰ɪA`FvaA@kAuϘC^--?xӨa͗٨ZD]ڣmТ7"NH)zn)[)= 豼;젖t5V ./Q[ϖll:|h,>.pߵZk8|0nmqGys5坝fM@|̸3gh U܄E* @3s5{4М6hpeh] U{ tFu^WC0[XH"ÚIrlmYic[KahIaݝרܔ]v5AFwίlGYفΊGݩ=I ƿ&<쯸e4Eٝޙ ;aaxW-k1CG,_a.̳|Rr"tJ6Lɦȡ{ (t=*bHnКαkqhLsy@yR"eEZ߬:۟k׳Xz}>CT˜ysVLA~ /Z{76_)XŌl@FQ`MJV$ezLld* _$|iP0'CX3:×@g0jn ~CbhV.uHz^x֠Wi2n1DH"吟HCu}HIހ" 0frwBCh|.9hq}!xGh@8GXéRZ`װyQdc^7/V )p!S" (rRϹ#d,2| `0UPv9(M87oѩTvD|ƃ1ՇYO#Pz.hsxA XyH/MQ "h W,=>J$~Ha[xKe݌r5)DjđC- ٫Ѿ,/e_8aLPb$ӣX翚Ѻ8gI1_ E<'76V\t}8.xc4^zEM帄g K mCS xdpBֳvZ.Hre: > K淋 N2Ć;Z}\91#aݙ/q>Ē;]31#+E>H3( vɏvP~]C#0ϵj o*rAŌ~XOo|{_~%H&ߎ͝k&^$&Ç|!YԷ]a2=Blq*Zޣb /)) P 0DUE!5D y:%R,[al?M,}*30DNlyف`,BDǖD<$"aPPU ^NѵA=6m#mJm{uTDF"]g~cy{vXK2Q+5lwinM?f.qޫ:.mBG_i/xr/{~wVGtŌq _ճwn/!_iڞ7q^;ß"{)瑌x86(ۯT3%d1hss.J?wu"E|C}Ovy4B#Ċ̒QH[d -w'5m}QaxS>`GkųPCCVI* /Q/rp2mNCV7; 8 fA8(9-24[F8k+g<۪ =}<ݥ2.be,Q4:UqSD>n 3U#xo |,;dwsiaX~2}M +lfW R`1l,@\T_Ck]>q7qt؂_'D5E"gݦ 0zVs)!>M E=2X N(y$EʔJ ,0!!,G.ceO -9ˈ BաSκ*\kYD":vDV {<*nԾHLΎ;9 [4hc>%r7*H%L?>mC]=|V<+_ 6ɒg%<~Zώj߄,5iu49.Y[;(+}dJ'eCŧXvI*̄f̞:NXTĪF2|c$[L079H}=I>S?Gm6isгyFRqόa2]n3%[M_ϷYINr]B_=na?s [-]v2%'9Ñ4M>&bӵ˱NXa;?Px>pӱhyVJrq.%F=(]+K~%1ƿG8(N-)uVO 2 Y C"W)K?}!}x1Xspi> oÎZtx99*0pPc%nŏDAGi$qY.$UZNG32l$3up.Cʰ,H&("G\aXz&5ijd?)dYF9|uv;ǡYQF#=/63 V1焂yּ18^g-yņQFmPO`;ɞٺQFNci%m'Sm b嫷ˍm- wZ@=l9&]Kc!ᵒT,p-Mo,?,Z!* LR'@,%+<">uf˿=SZa՘~gtA)yn 5ʹhX(%e8x,ilE?8aLn1p+B:9bK8 OT`6z($o,αm[$&2=E ijKQi;vGZRo; \cJ% #F1@, 7ϨֱojbV­9;p83_)j}1 9)gγGbc'$AFKK9ɹ4 ^\S{43`G"9ILp RpD|Hr]~q_9͒0kqk_nڑ'fw[j|"Fk瞫lws}mվ>lb.wC>cBWڒ$ + y#sDG¿!کݏf%bC!(EkЛ54PDo+BߪZd>0Œ.H?t'4ԗ1g " T`Bk9d_lh-5 yL~QELb"k;Uy_?PZT(2V,b^Vl+7D9 @[p{2 }҇f: {C.[tA4'7w׻VQHAkem^~YWap +9@c kjJF0ڑM L8qw">B= VL2;wA7{Aƻ8ygXJ z.WqsᰶI;N5cuSǦ+TF` \RQ{?>qi0c,cZ%ʈ}qƔ}oetcQQl%2+>;3O,}z8}&ᚋ4ocloe7IcSSy~0aD#UF[R6y:& PQShke*N*ݯ?݆ aCu`31M/#NT]617\C E{切Q6w.^QZ N?`@)DOgr$Gs~y:ͱ*;g;<39A_QJAO! V=7v.Է ??H# tTGcxÍxk/]G-,5~:$pe=XFnAzxҶNԕGm.b1j |S Np4"͏D>yC z[# v jI5fǎ8 L% zфjM^xUB='d_4õ7Ctwj * b<^"h3uOK'/eт%Vpȴ}!ޢ:iEwCd q% YL: .ZJ pF'l"us\6GKZU35$ zw,;`!}؜oBdq]" ` MIYVZ˝a"^;^z 蚱Z )?ƣl&q#I}*̮ w25?ϙY)^ ]10e"dvO&PAdrD8m0*2ȪC_9=.AmEQq|EiQ7'wz®NaLĸnz̏gtN~\44%&9G;߳q,!TT/]s,"C>矷wq ‹|*qI qПT/"'go7u;V6UiELMBAUb:ѯB@ xK{Z#}CSl,}| xȿ 9%WZSe#XNFNNqEy:/0[;{diBZQ fn7NHc!cׇ 1)̑:&+:8M[2qGP8ow~Z?ƥ$3D9 Ks|9T6y~ |YAk[F˛ł;ah=p÷ϱݖ$O^1l4[}ty2FdQǽYwO7`812Amc4IEg [F"`أI;?vDWtz`l>uU"_4}rS^1=ԈM~:u(ܴJAēs#>:&lC17z2R_EtzW]75j8c"nxD(AiM0)AZfޅ8)oz%bь5FGڶ]d|wz#WlkAm 3%g{C̀"` žko -.@jn-s+e2Ќ"#5sUjȦo0ts&m>թ;v)(%Ha72}?`W薬s|BpNwym]/n, {#@Apsy }0uR\(>v^ļuŇ=,Mb:U@G NŝZu Qڠ|!mACɛJD"P9<Γaݾ?:? #S4GþlvP bEU@B P@ vyJR3p\῵fyDFC @a_P4-9)԰1BOuv98Wk7B]0(['M(bw+G 9Pf@>= (@OS泼 |yH::\a_'FƮ'<=zz{b\s0e~6>Y˅4O"bb@Ly /_يw'3DnUk=S͎ _SR6/DZ׷uoeI?L]3ҢR=Wr-ICP`&E3Q*DM*BW@6,*+c|iݾ=b]Vt)E!oWљUUU5C}"3Q̬q!Gg &9_#ft]\~O׿tLj^3 8ں^H/s)F3a==x Qv^ky@dh)Mo)ϽQN(;k߿3>ovkdMUk TZ%fePYdގAP'jt,Lg,_>HcW6A7:ҠKw/ A] JȌ &Gf9z\|S1VӨ[%#j>\\G]_~ٿTAu,ӯo4DP0do˭SCòM!9*-"(vIiF1])O N7'uمu5O[R\ !z}Dָc>] >CqAmj=oڽoҍFn#Ɩ[U潹bNk ]2 GTNwV1]ϳB@쇈3x#RV`?ЛY=oCK]8/0٣Fp׋_@Ѯl8 >qmRpʍƗڙI﬊Ss e5:MfcU1@PN5X%rS/싫9M痕! }J싅LfA3!X;lDU]G9)CaC\bTmaNYJ^,-kA|m:qcw97a+I;־%^]@S耖JYt?2p_.V3gBa(I$@R<`2)woemr}YQLDԭ6TG(De{kel"Rl)Ԧ!oD:V: &3F!{=} .**3.E|U;!\ LM0k$nIFjlE,Gql'p:FlBn4}-1sx&3 R_J4".Sh^V7N(2@8U~%7i\,]QؠOԜkdfrsb) 7i6|ruep7`aˡ|Z LHuwʯj[ ktc҄r Qa8ԴK$2s 9@ GQz qqil{" z^Wpr(#69 #"2ᮯ|||۟T!zl n…^>a2;瘞s!S}+,W8aK ]Z8]%y2V`w]]QK8C.ظi{bc]dÞSXP5[BQ ^[W4Zl顂w:b? xd dkpf= } L?~ut1db4GBlw*on\Ru|*Mn^[Lz$$0Cyʜ&v< |=ٷ''$`2qg Rn eO}6 8US[ >n47a*j! fc%Д1=nk<9Taf@m&>\SԵF 1cWkȒ1| dxC㻒nXGr?~hFsʃ_S-xRH ~5+k oOS4fkBC:م}$&Bs_dPN!˝YPD R=LՃ5'ZOkEb *sC,` ݮ\qsJ47ii(l{nCs#z8Ppe7GtaK Z\p)*=hФu a8ગbMۿBZ%;Qn<[NV( GwD3d;_V}Y^[ :c7E8|Ymں؏ Sr 6N< p;Am9$oݫJQ+ g;3#K>P3|6OyKx(x,LMCTD!j*5kO&/5crN&Z}uV2Ai4wvD\zW,gi;NI "T]3oeOIS+Z c&֣Pe0 12a蜪c%DD9!]Ga_a;wힸvnJߘ}kӪrAaQl><ݚׅtrÞ:`qy#lL>:G!6,2 􍢐j1>f{vLv)oR|Η1]HP(`*7ĈLhVNGϮc]׻Jq}HPE[3J'UQ @7kux@xY tI,`+@(Ot%Dpwš/w:܁!|ҶMgoJ@m,H;Gj[Z]wMt0|X+sA0sa;<nkܱרx_Bֲ|PN:)Deгbb-nGHfXfΩ^Bz8E,FY޼-}^EB]㭼UcZӠc@@lTюy#Z+۽r9۪wZrxۢa=xV rPGiKDB8݆Ndr@ #1B0!ݣڒqN{!NfB]t}%AZsk[+.&oPn`n Awݞ2!Paj= =03}\tb"Z+k1LO}{6ueoA&C>5"ghxhE.v`N%I4hE$!$VaӮ$g|b\Q__{Fp؁Έ_ oCZ&o >ǥI契c\/o71BPe>9I;ʼne1yE)HAtBG:dHþ3 vAwnIH#hIݧ ~wI]V-(qh]7X)'K\g3' C삜v(/ =Om.Tqx>pg\^ #jZ(Qhf=0QBIcr|, Tpp޽M [xxL \+ |!.B2p5n%Bx2(_/ޡr`kem&4?YqcwdU0C*;>1bCAy?:r)Qz [xjqA8D.R^o,b@H `lV2бV%P 0}2|BD6`4~ߌ`W3~<}5t<ʑ]фÐ2MW(ʊraӀ c3CGk0y*6AO0b4˷^հ XO;$="xbh;:뷎 4#/29mB(C !H|uI_a4XJު\v*XG ,&A Ҿ-@>eD(!+ zG (GNѰ\ c8[]ρzbB4bPxcQ hFY~آ,9EmȐD֨ ꤄WvH|R`o-N(w| n>p~|M wZAAo? M~S8Jfv:8)khl"g\|`%'qps*Q<&IY'<73EQ)D\{"!֏oG"(␀[NC܎J[CL_.dhp8:TUlxAJ Bc_zoSXzKhߌUێCHBaDRu.^K$0y8&4KR{:)遣b7Q^U_6efrw5AM#25%)d؄8p|\Sj[>v OѩX:L޺8JsgR3i!~tk[׺kP&_k{{8)sTo~@$} 8)\!JOh5V .cW1YAPNzYLm:m]jqG/ڱᖍֱ}~TbqgKn_U"k+МgْnA65-[\:#B¦?a{}= MjsG|=s-:0H(ӣ_Ғe}>N4HnBSG,`93`}䃻P$zJۘPApUOSۋ3+sJ-bn>E[VZ $ }p4 Zh]~G>|AܪU e 3ʤv޷!|_E Hvj0ܠ]sEBOaOQGY$sIWceQM@5/e=PhFH'1bN:dy7]mq(Ġ(ָ C-އ܆N EK> -ՆyEeWހThP DDŽ7ᚷܢ41I`7AJfv4: XXeuS%а{䙵 ^qfB[:0TtO]b}c$(9Yud߾nsFo|}?P"-{UHy6jY: Hb\9/jF PXS+.=EhX9@)@.sHFu0!~ȸp-BӺLpZӤq;K=҈\#q4TƸ $šC()lLHR,3 \N~QI!'@Y QIh·fb~jFp'?:˳Cԋpb4swk /L϶tZar8ES~WPrx&mͯ}|nmf8$\2ePLcj;?q N{^+^/$?P|f lx4{{~K+~{k(7B}mb)8=쨂3,-8xj<8u\|!@.wBN4*3T !`r>^%p֠0)Jͽ3X爦E-2XQxV▮|>'ֱ^hu&г X*z"Mךehmd8Ki|8TosSvV0sq;MJ{c ҡS:Zk29NvsoV4 =N# B"1!dD0Sȷ =kWFWn$1;r*c(}uUIOGԹ,J8p֦ " 妭gp9)W*DJ_!PYmw:r;-N#ڣlq8Y?KK7#꛶U3W|jg+zY6/>G#ӎn2uq)8.d1۰b%>y . $J_Fr3y_#=5G;^h-c{p5 xE(*)֮o}o p 7­aʜ69gSwnLUs[ŦzM$71ŝ8=4D_;| u;'\Nk3|FDUA,ٝΖfN,CD2"W";I9'H'}p1\x\]pdH* P:b]8g${]u"&Tg6,A|tB#>Su:519]]fSkNANncUA/ڽ%lG`%cu'9 tߗ<+ry( glU"X2IaK1v:C6Э|!ziBf{<޷:^ؚ=6ڸ}]?=(f̹j] l)QcDcX}k|V8Mi1;r16*iT?2%u,e"}9mD{H;*\#FL[|3q¨u'3σ,X>S]C\fXtIf5bq|$%C8Bi͢F{\N/[h3uߑ@ތ2Di`\p5< !ㇳ8;E]LfM^D2U<'Jvw0ޚ-)DskWI6L>Rն5y6INS2ŧDc|C Zz> Fۿx]_\X2VD#.ǚ{98}vN2sV {Ԝz5)"`deqV@RC-慌$HI19^u2fL٠2^u @  աa'?5\k6g1k38MgјQ˭!`ɘ؛mΫs뢡65XZ=$ L|$N#' H¢]A.ff+ڡ"13OO~Ƭ3XJZK-OgmpWlj~w;8FQJ#c7YsA5ڨl{O}ŘCBOo8'<鷣A ;KV9_;$:{7̷,B" {p]% caa+YQ]DO}ʡ#T8gx՟fJ[,ekf{d.i~ߡV}SŒB\g_/Β,SsBfw6B 3廤|qcp6. WӄW?N(Ӟ}*HSBYMO#4묎[F;hm[I~&0) Tm%5jKoIm대xF-s~+ԢNuG{߮3W_>NDSPۚU?r8d6;r j},D yf G Zg/oG^Z80OuvjD,29$,6It3>!Vw^PTe{=ẑ/Et"{ `rn\٭6y~Gl,%x:_ ^#[NDИ"_LJk\qa]?mG{+w[Cr!'4F?o";tZZ[W+9c{|fMKɉB L 0)sr:0ءwϭ1͛9Yxz浬Q〿 u'Y-OGwIfdऊ.YjĉBd`7;u?8ÆrTkKC^( DWIE[[; qYQW&%p\RSKƱ@Vx7ūaЎon (UYCP\g}ҥdb/-h3Qy$O?+T*sh<똜_?Vp l p 8#] /o'Z.:BN"|?۠;ZP8-*C_MW zCQꭟ9kכ#Ph:]UCLWҕp &ABnH("[ѭ,I}&3%:zNVg|y3r^?ө0WaSH[}T c 0K#`Qa-D;:yDH]Q1"m"`S^=`{:Re"2a ñ2>p.^(N^Ŏ<-iq}֜ /v2"XU,phvv)>{*f2WMWB"PA2H'f!hBy78%tޕR>U+KX5gu FL_IFe5P(l8u9FAF2`񳖦rSpz'~X~89&0 l^Usbotf3dAC:hgP>ݐyEVQ2֋e}1'{_"> 07MQ u-,PQL7XM|I0ZN]3*6'0(@JŅZ uL<UBn7HȌKK}*f8(X.qSQ ǖ_^]v|q;DDJwmņZ4e׀`zyᢾ w}ޥI:s1g8lP?ڠ"kIr~Y:#\t84B]q0A]Pw9j>k<8i)f_8z{@ 0FϬu^W̻.09c<iIS.yOX?3*'4hKBKnbT؅, v=(#%هOkj_7 ;uK\%)b<`8?i~eE F]&'w^bjK:oG>qDn]ry-P 哕=q@$PiM'}ڙXb=%kL2")H˟|߭dѪ?kc,Mr;% E[pҲ:D>nϡW[=A2v/]mUT~.8)WkҨ)`H*h^f"١ 9cc~ +9vt㦄/`_\(geu˸B9 hϭ]{Tkٜ7Ås_y;|OCI )(_74 8M Bv^Mb@ !(&?B{"B44DiGQ _2vBB* ,CQ8hmPjiZ? H3+f49m( '-Je;D̜||oMoI,ݔT]%o#{ʢfu[[}oA&+E#%Y_z7`ؠE"2ά>T{IXMey5b!)jFCmċAİZnQ5ZdaK_=$*lJ=rR<}fv7~/}q0rНKz;z]qйr׬RC{嶨PRBnzKuX#%GRxs8wCڔ;x1fBfoWeZތCBz߯.EU>RkVp >Nuԟ:ӕ~vi.+7?,3_6r.8z5LHqcPmTKٗяIH$<"i* ?C*S`tR)C*t&)'v`ʚڂoW}/Fv=oK*}9G2ٻ&dJ ,Po3"m.|KsƲ>7Z}bgTx_ݯZ{m$Z'"C'㷎5w^ۙ}>!Y(Ad?x[Fhp=ok_۶֪2t8Ӷ 'oN$CG)Cr@ H AD,"R E}#@|`SSJLK@'AtD_P//a7 (@?8Ĕ%hL! ^guTpMuM9ĢvK|5~쟇/l mky`.Kꅎ{u0~˱P TKy{pp~%..ggvpx[jr_ oc+!Zzoj>][VÉ!gLgږv/S ;Oh֪i 2.MJ:D4PQF3^c@5)vԐm& Cú(R2Y }i)r 8fA珏`!_=^G/0quxݎ;eg&;>op0mƞ_Klt/녛q"].Ә;^:[gcP ۾<wy!0G<|>o?Fr*N1kю#`h?WX|Er6߯mdMbk7^1mKTX?NnOT3lotwo&{%;`Q!A 8Q2zn7XUZ0o [jף ;?EzՇ,۾hNȠ>*>ʪX`L0)Cũ7Z耟 ^p6*P@2(]*7^3}P,!i ǢQD#4#- OMXe`AE;O\ y3ŧ#MHGDx}nG+'/,&h}tr B~y[uqXs~]KMZ؛,}FI៱ѐHoD}x|~_cVcz57R?cz3PQ`m3D8~MtkX䩈yAT^O߇%տCőG&V}} '3/d; zu'l>{ +D:0,6s,s;SHv#]o$\͂ڳBZaIKLog}5mS,^+ǔǫUuEu}@yc!١ꏾ;CȨ.X| sK^i*E]%X,eB[Gћ*oD_Jt{ꬿ3uj Z&_9THnHmH@A/ TZ%O=.Rs^_c,6&yk*'h{㨣4c7iW D_VwpqCz2t rqdhFɆb~cRh sr:QRln.AaQŭ?F+~,ø%_h#cϔ3*v?>pOt}g`UXÊrg|%B'omR}gsB|D *j*>nvwF (wyğ]N%v۵VuUt՘/`L*!T?z9pEī_go^M=էkRS#Zou=jsسuBʪ[.-6N,䚅ܶ9Vi_,J79]y'J\8ۧz)$TN)&x3i~a| u-s/oUhqʰh>\4V-W08St$"׿C ]7`:cbs<{+P(|$],wWvcC :>l4//o e0b>IΔ*R[w/ՔK P ـD9y;pٷw`N@vF.weUb?\& ?KRO]+j kdHjej6*i6'J-a{ / uĘW_dJh(Ao^P[4_v> 8< i6A%~ 0伡nuQǽG08בơ|YxhaݯӀJ3^HKٲn(!LXGZb0_Ù:?T_I&&Q5VAD=ۃJ |`lo\l^c_ ʶ)Gi~ 3h HE0o&ds8wjd/CLr!` ΣףkN*#g }OPޜqWF<pbS1ĦЬhfZ8ucSNR@n2Ө=@M^3^0Τ*&`=2qX' njmۤϥzb"J v;.ϭgP ~>)}<:?3{fſ.aA4xLLsZg?թ۾WxɅh3!$l{C<^7z{Űu>:n)偘@iF$-}E `Y5r ߌԉ—vjwq(i@6܉9jsӘCOLWz&2&DK4{k ~K7(P\j# jZW v\y雰2kN s=6tDv_8 Kyuz[zM^{Qe k'-FnS0Feϛ^)@F RJ@l/[mྖ hy=9o?4;; DW~dW6\ ׎aS@xR7qs!GN^h睷v;gGێ_Ϧm%ڵy^CMf!E(`t;y}[Dw6HlT"\m87iHH~;|7eYf~j$0ZRz1q[[{??_l\!^3#~V9(QI]C_oRctNs0鹶؂*sGk`>aukNCA ZZoj@t'T@N);n4 ,`q>|`A7YK\~צ ZnOK Ō^SU3Ia$TQ RZ%FAH2x,CvoFXH}cy&0lM\_pocgV 8<;C HT q I]*bG]X|ሔ; y`7]K:- tVFc;aFB{u>njagg$+[#(r8[wB=0䢣ʹ{]0^MW1kcնNwAZUK[VTZ0r7NFgԀ$Qʨ;SQ.  skhUX#;و rAbeeWǚ1Z=: ዀl/Yժ%'Kc@X& ŝ,] .U$^־E= 3pv}u2S5o#]7*UtQ{B8M[9U[|Sg+HI Q),h^_!eTh혗9QlQ7(*=́vҊL6f,'#}^]:=wH 6Jۛ&!0{-HQC|P&i"(R.bYWU=-!$uf@>Y/ LR4%T]Z5w++d5|x%PeΘ`M*쳆 7cb!b CtȰ5  .ARF>|W̶FӫT#kOJk欘Dx]Q[LFJIFΥNYbVѵ^l.*}tjҲt–sFǩDQn~+}/Q0\)L%?K'QN lCQH*cEU$>vy)&n}s9XSwRVuWΌJy`>ɬ>غruxG>0_5.I9{C NYCdF" oaڸ-w{o~dB>qW`ysM(ql}w%faGnTX%At2"ں az҆>^DUحY Nk2<x>iuE z,+,$Y?,TcNb^qݘ=}A6.'":97>=AF`AhC@9KgɆ@Q7SF",0i䚙[}*1QQ}A t;DPqvqr?k#F"UD)Z9YHi0*{?ZOLa9qr<;lڶ;U'(l}Uw놋I,E\8)cq0M,AQh)`rf;B2J9)7wQD.Fr\3v}Q+gZ0*:= B{6X ^>u?c>8 !N?q._> ]Y~8آ $G?sg]w}%8H~ t6cHk (yp#76 B%KΕף/L7I܂s߱<\ ~AcSRJ)C~taH^ʎ .Ծ'l4Yk=R9= nΒ]eXLq9,~}14e29'=Aﷃz.)va .T!H]"JARaPC8f9H8Pzs%.(NyItE CSfC] b7\7B<Q9Z2^5}^9uBe+-Jp184;#[h!iz@L|gN.amu2ڂ{)iKG<؉p)>Qxjy$娲qtn<pʐww녏Nޣ.2F]o0KEגok"&8jfkI5eC|wvu|Eby)/A+$ɽ&5(-9Ѳ/&_(FfݫbcUPa6pX:x`;-6xuPG D$cP+-HHR\N\o|ezfxR/_ rK+*5SPVl6dz~K\>{zP.f5=ڍ#˷fF%B,foXcB,qZuHX ΪTܰBs}56>iVutXIs`Aۛ)PgT6hߢz :bm:_$V#6¾J_xݐ$`:눋$Sot2sZY:k)MnWS"kqKPzm<4r;[h.4!ߐ s|t|آٸh:ovgY{k[Ot 'j J0lͭ=Y{~ԊLo 4c%lsCcKDC֠h9QǮ%,:d)\ 3vTt0Ktd DI68k6Q)ޯtZf񘀖C*jAf2K reUK=JڡB0gͩ1{cb/Ʊx׃`*ᾱQg1x۷ &bL/҈6<]p䃖H@< o G}3ʖRUE[O*c9_. 鬗}tG,z͚z ynrŸ:Qe Zr^ֿ b~:_[y m\[k(qZs, rN.)GyK[/Q_q%'6s?! [*u0X \?:ɌЁH%pa9EO?MT[g~NT Rt*5?Gw_WyА,=P/hUXbŶj˓ߐ)II@(<9ܠSNu6 QUF" ()[_zUqa։P3i;] ߻C]݊ ! FJ`*(Dfj)VX$ `B J JJ HP 9>Rcj  64442'DrեcjұbVK$Q<՚hUXbU _!VMd֬صi ]Vi ]Vmc)+-<\9՝;Vvh )X6m:}bj],x01 `U)_̨pԻ٥ƳulHcTG]nT~A.!Fڬx2܎O ǻX]Qbs(+ xGgѣR#y/#=7yj9-ycfS 0WrmY 4*%Ue?gOQWTpI=Byw5Τ{u_a9&;e lsmx*0(b,vho̻an'oBCj(`\{*1%Sxz@ d][ބi ,$>. !=fWqT%وyWRAbQC #35)ӧK9% lK0\* ERsJq#p7|q0'"'dnsN׫퀢0~Ĉ 2pȑ|@l].-F} ׵bP"2u\;Tk9sȠ8ӳ@!"{/ A!@\52?p=vI~- to>N'){N$K&㺝jZ9IMD;PhA )39o׍ݡ |t-7I [G Tll/ycշg}B$>R PK( P#EIM4! (QiiJItt4Uy /%X XZ! *`fXgˢ pu EQ'3C;@4SHޫ%ʑbNppO>u|}=N,$5sIZD8vWDȨJWZ-*"m bDE@`&,5Pd8sB2@ 7~Ç=9+`??R! ە!U/Ba.kb'mN!:(sO[3u@9@ fhVID<8ﻇA=$`>;_?{M~NfqbOnK%-QX1UUAQo'"# 55ߌ=TUԔ8.dMm7qRHGOzF" `VOF ܿ tPCy ="lbDe\T39~< #m2F?_ƪfI \Fd0k8(!-^#-ދҗ£]E)PȾ X#eRY!WY񲏵Z]t-44['~9&¶ωsbKyD%˻*ٚ#t bߧtЭ1Dz;#f9OHUHtLyJ_*>́)NRNL`}-P^0и:2)^"˛v[lKb?r1U%U;_Zg1 qT@M͠ER--atD"̔2|JmtF0{w[4&),@kԢMj\peAGpy B/ÿ""+ -L9WظHV.^gnX\k_FBymnLKV- &:1@`f ؿw\%sLMIVo?ɷ5&GmO3}O ֘Kir,]O٣[}R`?J9Ia 8NQ)YMmUBx5u^O:&F|w7o|qlwoƞ,yw7?<d-!@R(PTI@]E'®C{wՙ}U@u:Op~HFIІlGO Kk(u;"i$nv+!5D!{~;vuj*Ů$1P#-9 tG,BxJd@ :VSB@߾dS&"ʉ߳BݳVG `o7!#kQ\0:5?8%{?_[P$3v <̊hVӐrҀfM@OTX2C % .H8l߿^kJ?T82[cCq忳b(L aR|s0cJ]l_e=LL_5303/ ټ[&빘yL HyDv ^Ť{nƹ}IYDk!J تFI@03[D0aJ9g.0ޑSC9|wlQ*҈F!u]0s1}t_CO[ܺtG}~~NCd!y>?2?m>]&^RsKq.~p!l\j޵klX/BFN\ህ6sj6tV^kikr?]`d' ºNA?b;`l *S #m)Ā<:=T}UO$bn0htZ]oaQAU z7@Z#';vuU-! h |xyyOD. ]T8P0K L =vG8gƴmk5NqJ TG}\}/))Hֶ2>Sv#fS|]co:1@{f*p^=4,rQ1w1ߜ@䫨xwمiB+WF+=E}Onx~!@z]؅RQ mAg8%*|@ ac~ln_uv8|l*B_𔫐(JvQ(˫b ۠T'O8kC/4*CB3 JqسRa'N p  nΌn-AJ.p1\Zh\2uaGp542\в/bz֪։Χ'ό(Z][a`Eu>OƎe"1?s?YѿJ@ ~;p}ۮ.E= &O?56AڠГ9~KL54L$I@MI=}5g-̇0 5ϛ,E%r>v{qC˺u>20+4Kb%hC]?L()__7m =zi z"D)Q,`$2 }k\:O ~We] 4lIթXs4礖tY)|>`V)bS!&Bj 5y:60(D16^F>YΆL|ʷjpJd"sؤ361פXa!0Qʤ!6Wk]FVwcp*o;[d&D]ImWM QLQCXq;:< BH,B3? L7(msƂg lM0֟>&|gbMew~ڮ8㩈f>@dU%6T"j/8tѧ:*N#3DЪ[ObQt BNdEMC^"zzJs%+x t^"/֔x^/`nQJ%z۫Ir sWy5Gα>|D(T -Ρ 0D/ " +_o/@CC``_̽NQ?}Wo/+Uw{3R#6["/ .C 0 +C?]R#Kn_^o~g{uZƁmͦǮ WQV^&QTBlk;[oUĺxGX-I ./7^B`_mւknFg~?ofRwXk/ ~g5pAitygcII2 u0pR'hA=b)Z>9@,`,Z L38A#<1öQG "wqogGRFDD$5{ee/h Z?En{ -V.e |I^GVk$uqBfP_w "A2<ق JT4|HxE@ P(?L;<LEʂ߾_:0X$yT%D@R+i+.iݖ_fq@J2LQ2n fgX'o(H2 ;3 zu`=4Ur<[  A%ćMԕTOAneu[1md { [ɞ)Um( t+(T +d _X͕CƵZ5 ]Ąʋ Ky=tTMi."NjP:Sw+;_ : 1w=|EݎT:VwǛ{޸Ǥ WqjNxxg3=6eSm@٭=nV"xO^Re=X \F8]`-J,b@yD4 h⽌<6i]Pa&{E ?xDqBR Gm 7|R|/?q1^v*/O@L[1F7}@?ud5[7-j͙vyWd/[EjWܥwҶ޿k)}4 盽Ytksłh 1)Ƣ>H!8bV"2v0U[1|6* $O0Ĺ5C+}Go]cO(5jgݷ<7iҰ߲ UA\e\FG=B0Ar]CJg8 M4$̈r"`H'|O8$ \lb t83Anyb/,5 RNCGM69cmt{7qә`UedCIIWjl8w}U?gKJ1i/3- ^>x šZVNc%7-6R*%