summaryrefslogtreecommitdiff
path: root/net/bpfilter
AgeCommit message (Expand)AuthorFilesLines
2024-01-04bpfilter: remove bpfilterQuentin Deslandes7-269/+0
2023-05-31net: Use umd_cleanup_helper()Jarkko Sakkinen1-1/+1
2022-02-25uaccess: remove CONFIG_SET_FSArnd Bergmann1-1/+1
2021-06-25bpfilter: Specify the log level for the kmsg messageGary Lin1-1/+1
2021-01-27net: remove redundant 'depends on NET'Masahiro Yamada1-1/+1
2020-08-20bpf: Add kernel module with user mode driver that populates bpffs.Alexei Starovoitov1-0/+1
2020-08-02Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netDavid S. Miller1-1/+1
2020-07-31Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpfDavid S. Miller1-1/+1
2020-07-31net/bpfilter: Initialize pos in __bpfilter_process_sockoptChristoph Hellwig1-1/+1
2020-07-24bpfilter: switch bpfilter_ip_set_sockopt to sockptr_tChristoph Hellwig1-3/+3
2020-07-24bpfilter: reject kernel addressesChristoph Hellwig1-0/+4
2020-07-24net/bpfilter: split __bpfilter_process_sockoptChristoph Hellwig1-24/+27
2020-07-24bpfilter: fix up a sparse annotationChristoph Hellwig1-1/+1
2020-07-14bpfilter: Allow to build bpfilter_umh as a module without static libraryMasahiro Yamada2-4/+8
2020-07-14bpfilter: Initialize pos variableAlexei Starovoitov1-0/+1
2020-07-14Merge branch 'usermode-driver-cleanup' of git://git.kernel.org/pub/scm/linux/...Alexei Starovoitov2-20/+20
2020-07-08bpfilter: switch to kernel_writeChristoph Hellwig1-1/+1
2020-07-07bpfilter: Take advantage of the facilities of struct pidEric W. Biederman1-10/+5
2020-07-04umd: Track user space drivers with struct pidEric W. Biederman1-8/+5
2020-07-04bpfilter: Move bpfilter_umh back into init dataEric W. Biederman1-1/+1
2020-07-04umd: Transform fork_usermode_blob into fork_usermode_driverEric W. Biederman1-3/+11
2020-05-26bpfilter: document build requirements for bpfilter_umhValdis Kl ē tnieks1-0/+4
2020-05-17bpfilter: use 'userprogs' syntax to build bpfilter_umhMasahiro Yamada1-8/+4
2020-05-17bpfilter: check if $(CC) can link static libc in KconfigMasahiro Yamada1-1/+1
2020-05-17bpfilter: match bit size of bpfilter_umh to that of the kernelMasahiro Yamada1-2/+3
2020-04-03Merge tag 'spdx-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gre...Linus Torvalds1-0/+1
2020-03-31net/bpfilter: remove superfluous testing messageBruno Meneguele1-1/+0
2020-03-25.gitignore: add SPDX License IdentifierMasahiro Yamada1-0/+1
2020-03-14net/bpfilter: fix dprintf usage for /dev/kmsgBruno Meneguele1-6/+8
2020-02-04kbuild: rename hostprogs-y/always to hostprogs/always-yMasahiro Yamada1-1/+1
2019-07-12Merge tag 'kbuild-v5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/masa...Linus Torvalds1-1/+1
2019-07-11Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-nextLinus Torvalds1-1/+1
2019-07-08Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...Linus Torvalds1-1/+1
2019-07-07net: bpfilter: print umh messages to /dev/kmsgGary Lin1-1/+1
2019-07-08init/Kconfig: add CONFIG_CC_CAN_LINKMasahiro Yamada1-1/+1
2019-05-27signal/bpfilter: Fix bpfilter_kernl to use send_sig not force_sigEric W. Biederman1-1/+1
2019-05-21treewide: Add SPDX license identifier - Makefile/KconfigThomas Gleixner1-0/+1
2019-05-18treewide: prefix header search paths with $(srctree)/Masahiro Yamada1-1/+1
2019-02-23bpfilter: re-add header search paths to tools include to fix build errorMasahiro Yamada1-0/+1
2019-02-03bpfilter: remove extra header search paths for bpfilter_umhMasahiro Yamada2-2/+1
2019-01-16net: bpfilter: change section name of bpfilter UMH blob.Taehee Yoo1-1/+1
2019-01-11net: bpfilter: disallow to remove bpfilter module while being usedTaehee Yoo1-17/+11
2019-01-11net: bpfilter: restart bpfilter_umh when error occurredTaehee Yoo2-11/+28
2019-01-11net: bpfilter: use cleanup callback to release umh_infoTaehee Yoo1-13/+10
2018-10-22net: bpfilter: Set user mode helper's command lineOlivier Brunel1-0/+1
2018-10-17net: bpfilter: use get_pid_task instead of pid_taskTaehee Yoo1-2/+4
2018-10-05net: bpfilter: Fix type cast and pointer warningsShanthosh RK1-2/+2
2018-08-15Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-nextLinus Torvalds1-1/+0
2018-07-24bpfilter: remove trailing newlineStephen Hemminger1-1/+0
2018-07-18kbuild: Rename HOSTLDFLAGS to KBUILD_HOSTLDFLAGSLaura Abbott1-1/+1
~3_\e,xS)&4G<,^Z}^NRk `=`F69[@vP77/|VsbԹqcU㠸9 ^.OeړKP쿋nAG|J ʶuB€=|5 -6H˦v^@@H%'H\ /Ne:>ߋ#&DwxGjL[cUyUJSqorٶD|zO]hʢ~Q(8?@-uyaA捨W=nlsP `;<:?}b7qu꿍xd:/}"eO3fg%;g,`Հh| @%YH)"ᵠ7?q%{L!/6AD]q2v ȃG3*^2D A`{ș6ϧON'QF9āWzkqv5ol,K 5aw5ܼl>. 7mql2; &NvIȠ#r5Ggq+=CxP쭿enG !,gpi1L]y'P˲K͇6kd37 ~3XobbPt.6P ;CFQ4aS;:`;yyJ RzBm/TU%,aVA#1ShWrIc5UR99zP;{Ƈe`@k}Eb'b▰u*NԱr.`NA`"((7Ue8eP`\ @qȣRӬ08BĹŠb~8Q1s.0rą 4S7qTxaN@!fXWq3meLqS)͆b^~sp̓0x0B8R*-t]k`=vv[njtWCb[% -YGc3 =еG&!9eg{Y (u\RQeqǎ5g1pM4~ 4g~Xz$"y0(dG߽@zܠh#C%fÑ5 6̙ CԎES]Zo!QЈeMӼ* kX&PvQr`P>=)#ǽ0A޹5lV4\I9Lx}t0Gsȫ[#W@aO~|I9\Ak" &<PRE)S^9z?HLbϣo>A!Dh"!a9K4b|7WG.#H5pe#DCpx2d 328>ߴT8ca, )JӪz˱WeYUDE.C.0Y.(>[vx tMЄS mPrN yB4̩/WAA6VCW6z(W!=n6B8 RJ:ھjt8"ђ\T_cI7!suA}rj מ 9[X-۱8~ISQ:Wng?~ PL]1Ƴ v-Ӊ7Otju60+7g+ws,;O1 kx{tUٝPإjo,>&ۣsYYOEL[tc8Ztzthv/AXhV;aqV2f|Ѧdt'p̴xaRMf)g[]q[T_EMs: Z9xV]4='x!ÆEX2mO'5t]ch2ѓc _|#=%,4<..ZHnNǿ8YmY -wyj;;Lo&~h(yQl8!~*Ԩ䌻՛z^Uz<{qu5}=W۳-WivdC)YN0 D EWxL U׼0PJK qA&xO!0>lʼnHmREB<!ϒ9뀒B1pW]Enk\F c#CꁻJ3?6h!RJ8{LfW Rha1AEI`&N006 ~zXN{«r]#<r0%yg\!:O:ShE,s&Cߗ)F ю`Oa^Ј!{5†d$x7$O%OCt;/=6?( zz[v,cWُ^질xg?N7wُe8[ߺOfW 9{GV d>"ɏ4>qÑ>P(bjl'F0,< V49\%dC=;f#Ķ5Tۅ[C_xpqEcSci8KҊ}y󼋹i(޲gQ(~Rm"K!JLb\G Q-zg5 Ox˪W][Z/ "DV=F:W@R|t \Qjgxu* ȸmBVWI!{Y.jRJ U$>8oNp4Nu6g .tU(."G6& e )piD?wqtCFF,alàg7QGy$ǯ3]o T5];ْDܣ Ũ^ =:q2FPe^m*&[F@g ܫ߫.'[j帰rqv]!;cZUk m܆0_"5͒}JcP1O`!n8A9o[̾ c=x̍y4L{*eMXd|XoO ma%ry$D#r }ցB7f !|}Xv8XYI4(VV"ӧ8x]CY'GݛULvk *ђx9ڎyjA'\au(}_ a˒\4xֹ<7Gi&Ă_QPI =M~`]""]1 mhRcR"05I>5p8֠j:IcX{fB/Ps T8beĹ^gfn.?/3{@/Ý6͉hlHrQGEvtJudzΣPSP" 8WnSBjx!m 󱿋۲ Nx|B(/5iQUW(wd X^!W6kلc`ʝ{'_XꇜY͚YX) `.ݮ ʠִ;BkeRlAx F挎9R83Y5$2R.mi u[p5and]df3X̗2kSN fv4q41sF”+a[+c2֧wCPi9e4"yѾo iYvl2#ZhdžR=*[ȐzZH`HTp M\4֝ɒfX@9-3AnghN& jTm7jzW}>_پ&RPLg&;-^7_"Q<ٽo!\<\((lud>hhyB6# HY:7tH&x—W}˚} hTֺ3:]M;^[;A ZEMF:QItƙmOfsQ}(14PX(EJrSrl0PT@[vC^F&ՌԳ Gr/(KM%7{!?.ur o pGskKWCtDйpє_1QstF:o@(._nC*%~eYle/=*#"/w6ICMm# 1OLɭg^{mp;#_bkmS tN9 `_i!R|$̥Rr4:)}C##=?=}w5P~6/YG?D>&2uI 3+\QbE5+3=>ׯ?->,H( 4؜Z,62r-28z K }cv">x0Ք@F"⦎i1x{m ZᣅӿqQ kDW>:з{ L?is^3CuU1LGo {stA-/P%0 ԹG$ C^"iXij~ٯs]mgR}1dP7}e~0&샰s$9QSx0fz_cgn=g"Tymdp!Gvn~ }WY@ S%tOpG|==_>@6u ѤX 87PjRηdSdOV$AҪdaF mV#B 龁a~ 4UP.\>O$$d0n.{V=_4<70`ulG  Y\ a$ ^U ;yKdpB3gka/ؑ[^zpt e7|g`2sL'$uٹ-*, ك=DP3R?;H"4)J?Nn(# uؗ ER:8L|~DE-/`ӵq"AOz6'Xuxu}ΦK~EZk<.~br慴J&"?lG;0Hhx2Gml6W4y8RM/"0PY"^,WƼfx_%&C܆@J84>i=ǣ_8?Í1VbUR~pG2L^l=Hps؅:TEK }'o=FE<<%-z[ĎL1$מz93u/\ju>/M-ӷXj#MA7<::y(H[p8A6tK?71/A14?uڴDZul򝺟5؛mJdᤝcD \8l T\2Ĥ[ЋUhrrJ7F1TA4!\"2 ZYy|#P oMۧ^[,4ܾ\:Πڡ$ ]?>׽3/:In!tPNՇMɠx{8.lV=H A};Jn[m9>P%Bd)ecԮ4A.e+υ[sixad^|hEz!}9 bu*^R NE&jR&C)ham/X2sWޢogs ?[O^e[mk::, ˲96R dgNp;IEW\< BH;7s y84+ ѲV )xޕ#U<'M˳aUӛSm9*+.rrS._ڣ cpo@fO<c$INmjK@nZXx`d *DtA?rz<ȑ{@s"Gko4 1'Bp״"~rakxhD4LzK{rĕ̜V!W_{}e0\l /*.pZȋ׻Ƴ ׫õ'=+u)`t'BGvlJ"cx 55 $i9aL3sI (Gr@Tj.|)j7s {Pjx9`5ʢWwwj˟XjZ_iףĹ+eӲžfsן{՝yV;ҕwcSi]M%}A&|phGx'%8G65׾Mnxi{Mŷj'&s,RMPntO`7~V`v[W4}s˘Q (gPX"[-ͥgw[]OMJy8C7*GjA3¾Q@4tojl9/#eM|Y_Yk}HԍJx64o>@gǾM](LVŔDI^la[tkd ^B+v cפjZC?'Iu͸Rj cW۟oj7{,;rQ"PqMKk Oq?+w)/D^|@sDg7#,rz l^@6 ;e kbA㱱ġBv}]^ׂ@=8误kSda>r9P}eb?.co˧9|+_^Idj eMMHܴ݃f$T;f>K;;*(PEmo \+?#2ƒC$볐8AD e[/^% CA" )Qn۹cH4:mQ 6ЗqE< X5jUVë5JС4(~}l~㹹9(]ж| EZ fol!: 0[*# d -jq9%;:§v4;Tk$9I18{g!çoxJf8~\Jx^ k$e)uʬO60V+foza &%0nc(ߗU-{Zp|&o#dSIjXbg]("[p:s^V*ͧ!;(vג5aR929IT#QӰpу9bqqVfrP{lzIIqvP̃ *bU`_N9 Hqh-w0ɗsRXTS}~0aT+" ӻS7>Qu[~^Ƚb2"{Eo|՛AL_fE>wRWTZ n2*TQb);p8J$}6trW]$0N%3Wi7qA# 9hJV=Xʏq W.%uɳśqލv-a-WXMpQDzKia0@FT7,.Xneŕ|[X#ӌ"+aw? &,ԩ{y}  Û9dU5B>#K݇{ - >ۨ;ʤ_ncK(& g! #)nz1 W~ }x"A^ {nohΐ@?qf#z>-}GQ2gxo9Sq&an3Æ̽H/2=W`e䲪(LjfTsB2/\CWgBroe^.q$c ha dG9ϵ'+GjռݤdYe5J>/b_SULktF0b6Xu5Y {?*+cc^ DgXQXSjJb):8\8z@F1a7a;q2NǸKG˪E 흃CWfOר,78`[UE0aQk2A-_aD-z/?>ksϷvD&hMyMӦ ݮ pot?C+Z=cAOɡF2 X1$c{XwdmE@, ObXRy`fVyndmAr~#pc(6{Y9C2` F~Y}NkѻQ=Y]Qb; q/ۍ,ZOb:AmUЀl.)0No$·)s^6t Χ_kݬ2r\QuQ ͮ!CPlz#'^>'Y[3 4mx{#joT#D:.eR/k훟V@M_OӚsY(gs\4LsfK*Ԍjg{zgtAFY뺨đ 5A;6Y7˥%#88;% _aM/ ҉uC5f_wރɾSbؼ/I@JEmR!KN/UP"ispu7^l.s \Dz;,q㠍-`R |,>Hδ=NH{qzpQC8 ˝23Tq~@(%cC%lOӲzs0q{^u;Ѡt_P[p%ڭs> /SiuNð8+o;mÄنY;?EfS~gҢRbzG`eћ:8f` nN+TF@}qBĠr2U*@PpbY킬> 1 !6_[,Yĝ?@b'YI5@*'rjIY4jH ؈p,dVDۭ,֟H8u.G7ev}v@8' ],H>@/p*7V%0Rt'T`PXak|G破>NPM%?&c7:'Fp廭!_ˆhUybhg|GH1L$Ob%E*9]V5WAߟ)G@+/7H4C~FY=9hgG71 l wM1^?gs݆.[b㏑GStE璞wDD_o| l!7aJ0||=ϛ>kHhc9aS.~iWXT8aCyJYg~|U,="T``E< 7 3A1M|N 6J$T7ߢVag_m?k|49^("CÛSz/bdxl =Sɨ*}pF4~Ũ[ _>xN3Aou ;3p\#!3RBO.B?^j#$aU"jLS~orJB9QUBXaHʮo#F(lQ!,t{ų810 V+7SFjc9ֵ{86##\b*~n.lt?#wQכޮ]'Gǒ#ԝ9$qeƕI|5˳6rAvc"DKbH"~t{!|>1w HL}t"?L>GKUTK 6)}zdzs0q(>&b$X \(&α\nGX3~NKMME/5>Id Lʶ~/ g8lx1I*`fCj\5[?QGaЙ UjN{'3{dCshA(f5R55IS5P wT NoQSyvu!X*Æ,~ `dS˽r7?_$IZ+h{#kF)&z ;:aHRpd,] !Ԧ4p^փ6GL7Y16F9ebӓRQ/Q9 o*<.q!!P$U-# ]b׎g yNi&OSQCzC5E˦hpiAì9DrRzŇы%;q35{4ӧ4Pcj_;/nD"9>BbA+ؗ3wC}u_l}2o⃘x5$W3g%-!RۺrcSn7}~ƾt$= ^ \蟚vHfQpӽYi?Sg^$:XXCW㑩Y+g}e>.Q7lsJ̛̱:r3Hl$58 >V/uj,䭚3nKșuxN{ с"fisrc64sC|wIZN%H:9麛勵OO2QP%vP?.zHko/xⲉ$]=P_/TqrH&6xw:#szA3ED~.>3QuZ"oYs_|Rd>3W),֨ze0vjj iҬ.iմE"Z NLzܹ׈ irL Jhv"XE ]9-NyN&:[im5HA&7Klm$p ^NkfL*:, ֠$&;D!]Hv3Q_0p`| eq YҾĂm3ya}5έ2-XwBp]QAQ-9^~ZŸ"8Z2G7z6~cg!zMdnןFLl澎 ٝ]-z_iu~>,@@7~XM,*Mj6y"$tJE[L:]va]pfHfH; "h<(ZAcb5G[;f/bS7-ZW#Q7ތ/v[2ݛXoQhQurPkjOA/5+#5 s.咘+}o[4]%wHx U=s_l7y~3ۢثw:Y[!Fiz@OƏM9skb2cju{mB6s'WW` 9mJy4v!5`nFDBd˩-(/}<~M]4)Y4g xyS9! .Mtsr40jq# KME.'[Gz9r;!ݼ~K@(vuSJ!6%Ǭ7ʃ~(hN%*o0GȽ?Wocݯq(l.AU E hWVoUпh""*)Fiy)A [D:_8^Zm'!:H(sڐBpgUUwH=w&C YÐzK`d&וjo#:95(͛vSe|&!kURGyIyPv#p!}O'5] A5ٗ2;LymV+9G,Jt{#ǠhәNr )&TF%A?]›}%yutxժD U ;_{oCtR|;(e&h5sR6x܄"x_%?7 RT6  eyGu\xm",dΙ]~0b7uAu=>?iK纣wspi&!ݱ:A(?_כWK nk@Pxb~9,H(BC1 z[L@@haRnux%NjT_&F$v8`[]Ï2]dP9m\viѓ1gF \ Y:ajw@ߏ"q<,K HǾ=}'"S*eGU_1GɭSFC_ l9IܛSMj{gm1`:*#7)*HGj٪ b-WT0QRV#Ox[D 88Kl,8Vv9-wT0U,M`uA@J[`Ab[Rxjw;G R6i fɦr\ullvf@Ѐ҈Go rtt B=FۛP>,#5VA|SIhL:!^ˇ؟;]|pH~oJNJ0~MBHÂdJ"_oy4ytu$תkjLl?(?pTm4a4"-o'!9u6hpʤ*9xl$᠝Y*b AAʒ+0|IϻϹ`uiTMP_ UCߟ۳?]ÞT&ijH+ ,"9g[ /zpT<ɂ́8#o4N0{'0B^kE1lY9"?( ;q¿\O֒9 RA'TSz(`PN,5 D]ZUP\IJYa gx Oux8Ln OU˳k!2-f[=f4&cLwG!fvB¾C,@ WE8;rOw7=#`">Fv{59|>Yf2lqL!)h6W2 8 t aJs(rL794B!֞ȧwf dx $(3G<^옣UjGaMHOs PM*X@`y.aÇdqe]cz*]WߎO.{=U q^jk-E%Gn> 3tx?a}YrKyʁ5\#8>XPo^Od}9:]X?Ul`oh|\!%`g>I[Thz2s߲m6;s3=/Fi39 EqdD?,#NiGgȍ}}e~r5x2q/'*O_tN8jj?+]v9NWeҒÁuqynx~P%pGX9RQUDXY;4t;)gOna+rpCdo4p3 552qwo|q{hE`X05wX9{ӎA/ٌG5sK,(E;Lӻj.4:Z3R0[<ͬg;5EfWIN;әǣZm Jv}'\}hqNXvv|K>}GچGd/ ndfɃ6) \ɝ7'FEb-Gx(Nj8f!J*LV7/k #W9{ 8X1h]Q&7ğZ&xgRVSnuLAKyy3{d|gY˨-tC@$v<9W;En|*6\`mLfߧ/{W7$((S#`m53|hbF6]WImb~W2w؎pk5͝nWv:h]n_X3%SF=f5'X5/"M;mS:o=;a؎6(j +(ɬYxdC2< UVwц8: +܂Dzr+tUpJMC;s0BM%a3>ѝɇӛ&48%꬇K"P!$çǣKmGmO<+-q6wV-,jhPI^{ Gэ68σ#IYGCca nɢ̼Gmی#$N`\qTegl'Fy8L` Xn#mS!D?s7y hǦY}"rI0úiRzՊGډ]gxz:#G1Ò]4&*mt$MTesqcvj/@_\o@nKw^u:}]R\D81nRnY 1ZT`g!ILUR|M?f5k]j;7RVxs゙&dωcf0;2-E.Z,ŭQ•.G*[Z3V{ 6]6eN&Gҕ_o|^;xCBf{0:JpWsǔO֯j:ȧƴT{_zqX(6i[kWbs9,j<3eDaW|"}҆Ӵ&4؂K ؅[Nx_I:"Sj:[e:iBNǞ[TtcdNkbH[e޳A(czBɃɳK-HjE b(vx %;v֝Dz"8oKԽ>s wLJ{=LkuXQk>fQr#k|~D./Cr&ng8چ57LcnCbLX:H6J&v8IŰPwN\'qc"GĔɘ!ߺ=-l{awyG\q6Xjɹ4Irlj4ŜpRtqsKk5(u'tsm}o4ēKM]aٌ4aq ._3|rC?<g^vSq: d` +O!(`,JLTs=6Ql#~9Wh-":Is߄{Į'kF -lQ2\[Q6=HQ0f)ʞ΍?K|m'mG]H*]*c@\ͽX˃·d] zks^Qת/3y 7`"" 2|;CU48@+乾"vnnJCwCvBju<}Bħ1d˦HE}uTnr̹j<,jbeSSG+7±ow;aջu%g&xA ;:FD䧩ool:PED)q=> DQ}{vSo(!~MI 8ELM*/be$NGXv.j;'EQvn]'VQ׋FQ+ɕiRr'7BMBn( L 0*s Sˑ8N޹G"&!r^ +(YCKG삳uǟ}c"r~uOuf 2E]54\Mes$ O#R8rY8^\6{f^ʜQg,rjtRXx4k6"P (3m3!]00L2:Mb/kV7,Vi^@Wi6tT8.Z*=t>q@K&V'n K8@wm&DzY٤b: *Ȍʦh?OyǫJ;L8iOViӼm4z ;a\cT7DCQpO@/)5|؅p?R>tacO tPu{+GxWNO.~wãY-y7c- &zKoNqB:{B%7eD7}Y9 tHqiL.ެZei@飾 {TJv7G꾒9,elnK€H8+=};oN27kphMUyrdwPeS߳wMdԇ,jrtmSdn j]u4EF u &ϨBzL+ya35(N`YM ǡPKKއ0@yLw)<όLea|t ?a_;4?HdoaccN̋T-L=WՐhwqb"gZV_=a}UTPHrc; kh7KQ9=^e>yd˱x H ҍ|&/co2ܪJ)t\2R~GKY ywF1z0kZ=y_9cg$:)[P%){y bn?^D{2d_/^& 57Ɣv;t{8 H#| N?5xtmM3(DЗվ]76ze.sY^#B z)%gMB8M>e~BcQ+`KO&o9gLgPcims}͌ZۏYY; q]W?`.e & i Eҵp&)˥YQmFTdT6k) ?[G&ٚ7fvN:ͼ '\0~/&;֚얆`U~냎;'ݠJNKi]p*Z"NjDu'eFJ9'D%L$fr&t?YYO=L a͌>?.]sh9݆0G"2kxPp$`EVMكĭ %y,ոK[x@h!劫87)Š&H.KHΧb;˩FSq"umv"x ^ѨbVÏX^NDjV@cDݛv|hG2 \t8c~k֋tt3$|t*PSd[a5(1$HuJR3ޞkI^=3}* f?M!qm>;x&ax &~[gSLXb"9flcj4죁lS(rx)+~z| |ދ]!V[9OUMMhI1{n8Tџ h!~o~^xyHƚ^t,",;qE2{!S {qX8 bcA~3SS4L^vEsfQeiL Z"G^WHz70vd#7K[ Q#Ke =;x *;vx9mkuI]`\)w_9;ns 0z$\穁>"M㟹!wJd`'nB $"czuzC`n @lJQGd:@G0.XbjIATMD4:SO s)Iw`Q1%48s* +MT_(![5<@f,|;CCZ\18??4v'ᯜ~<7˧;{D;B'9W\+O>m.9zj#zf=(kRX'0VHrɭGn_y|$]y3xW/ 8ɍ[[Ke,}$̹%\UQȌ13H]W*q/ON1Ltb0?O>}wގ,!;(0)oH-:'! 49#3OY|Bxك ]ψ< Y^f(?nD>NB4j>𴸽/֭Agdzǿ=Q-*.=hXdB]J* A`Ԅ3yCK*)9Sxu,Xm-yeB>Pa0 `sz~30kn檅Q'p=>Ƽ8B /e՟."=[s}R_x/Wn.lxF }, 㪏ӝO}CFY2΁$ d'$m.(PQ4~yҰ_΁PJ ()4ZGC}2Bp4G0$Y#B|/o/=%ͫﭿ%N@y= C_jܖyL'O; \+zeїV5|nn beu?8ގW|KBck}B'7!mP#҉ bbEA?uj(]F\b(;,HHTeR)_h˥Oބ@@F!A~> ޣVY#urO7_Wpnb:2pdEyEz-uigPQQ[Y>PH/W^~ لd|HKg!{ܻxԄw.0`` k1}~V^ 0_вo2ll|_?^#f1,dovG䵓S ^Nm̗@<Ү,pZdv] :ouĻ[z>uP ?+oCA[]K7}6EugǛ} RI?;=ΩA:OX Ȱ??ΎhTghu0`  ٜ.hq#~??"Sty?"n':GW0Rz|=}iCo5NL gG>bwδgkU?SH!Jsſ%A;>?wlډvC6ФOX15}je&@~~VR\%PQ!߬,:9EA80 dRsA >Ųk]o)?E!U;={D/9J!/Bv rm3P(ר/}mBUqJYAB03|ܾJ}a\S G\is+O@9^sk?L,- Ը7gNo2O47RY=E%j35R F umqa+-b7(Zgy:%s#iI1kј|.\P|rՔO\[㭒^cT^{cB{ű_dEV<]':r{΀MpltnHU˘ Tl֠Xf1?w^|}BV\`jtJQAeFw60THE`EU FWmWGk|ۮ%{44S` 7syHWtsx߻lhPt(oq;4pY?4(xKBnG$Su!ҡ@hՃ/qKm$/|*EGL īC: }|Wp Gf~n"JqQw>QvgݩE7+3,&:}c66Va>9lռ]D:'v|YAm l`?doG'fؠ`8Ys;膲#9 쟗j=?H>?>n=~k|)7_g1$,{-ࡵIMPapOaM ~Mo/y}PG۬|#ot>a7e*?-BIsoE><\.GlZ=~O(ٝXvǭ@9"j[§$ 5#a1)"NL/{ӿЮ吺>S|^-KQDMYdx\(gzG Q5\2]T`ހ" g`d;9 OwPTG;Ac|l7#V qσR 8`pL@ƈA.rRҬ UdO5oR0V%`#/_ze GOg|DЏ?;G~ZS.V" P p2`PDDDH;Q_lQ҉h cP~{@pDOD7Cmf?n9r5Ȍ{x@:tn6;|2xzsb;%ڎgw;Yǹvc,{ &Q(0KQ?N"9FysXU=onғ,AoD9" ԻH"`>_Xiu{w!:B`0I0̈0 1㿻dAr":MTqDv`Q $,5 唐M92Ƽ5oۇ]?3/^Q?=eoc꿢xȏ]`ZفŖ"@i(0iX$" y|D?F hMcwFkN@4$a-*CãFvG-b Q+Ю̫~}ξ#Z%HZJ"0DEL@N?8R#|g;L~欶QXZX3_w>wEL*ݖd.q3%}J)Tv$}ws\b5(]Ǭn.{CovV&❝`mj]"'ɿ{CCP(i;%W`6Uy{B#, IP68rN"8ؕʏO:P)Ɲ^iZYs89.QoQ uʩ yͤϖ}>G+2klzhXZ#?q\aH@ -9!i`{+#`"Jj7X`!zZ|܋G;;׼z;tjKjٓ;^BZ\Q"Xj'ae]d#ճ,sk睃ŖX+ F C$a$2J{qH5[_:#ie^1\WS~-IFX%c^a8DX++c,,qUp8tXq2[lJޠ@bYz%֦?]kt;4wa4MD[Rx )Fɔц)Q "fQ[xCpLJmNﴘ܃9нz9'TEk4D ksp|rG[ԆIgS%I2TK_ز=,u Bc}o.{;^݀ ACHsX¯0pK7^GFho,5+l+}+.ꍯS)'@ɻt<<+<<$%Q h)S3% B*!DN:2kLcBm&͂@$2W/ő9k9O2NVi,P&q3~@_}+hS{αh m q=ʺKlOuY>B7s8V2ed9j^KdJeeA5a2 Ipb:qcqfA?H^]ak N~>rM'r۪:t%I9EH [a~Q s⽪8鱞fzEպsMo0&[ijFPeZ~w޵r-E3ơto%;îŠyG;ns]q c$.n5bЊc(z;o}Gg. }ܲRzz$F6aeQQ1yPN]ãa|mBvu^3YM"xF? ;RnOe42' T+XOo(ՇCDDusW E* ȄN(1Hqz!i_49Y=\Uo ژ`EFk^^ZxF493uF:VX o sC!9>^!W jQ揖L*oW]`}į&t>mxVN:^zqWg1P ='.O.CFtn0He k*qtU],|(u܋[z#wj/zN:AW!3\2C9R&s EAm~\(p15̭]:p [j&?B 0?B(F"$` noI#fpaxߥ'M(mp&_|kH;}tT="$ )"X΍tnPi^s &<>vwszJ'@B`'6Pg~ jb ,W7I |z]Ϟz|k1djNȀ=#7Ȏ6]砰04:QwHyW@:-J<`b1AR=8i︂;.BO$,pi`b'rzt`gZ (Pj1Fsfg$ 7)ʀ39@-H<1`3C Lk1 `J?d/v7FADF[RvyQ! DIߎt h#r#au>SZ :: }I|?e?9@~?'|%jӜcy}x}0P'{o܁d%\\Ow GdD8v L6~V<1'`ģp:\FL f<\XLP^HS ;<6:K $vpe6lC)K$KM82vD^ʎ`C)[m~ǵx}GR(!Ca,̎I1߷^yyT.;| YͅH@Ie4tJ+[ $96׃N^AMv{W7&w}HgFŃ2vny&uikT 5vʱ.eʉ@QiKE *~ "/ay${2rco@!ԓC~z؏= 0tHxP`bXJ4"望1Zoԇ^0vDO :;r;v 0"2}{".{voy2t ;Wjså:u@?qxu},ݮň]hoo+UPB9I6E R&r!#35 Q %RU/^ֶüSgwX|_u5>'r7: uu3!JV<@wMlǥ#tcUw|'^>> h.v#b#S4p"5񌝵ΞVrN,eVut]_{_Y$ź*a` :o5k*PHs?.H*nkJ_#>pv;YY ~ lPԮjKr)<{ٍėuWϞR\,s[m!@]"!@tnG}nu"ҮEK,p'n "@Gh2r SXŃmvS,UK\.!8sC6C6W,n6P6HQz $kc g~na⮅z6|m6~:z " _]v\pl8V҈_WBi=zf_g6I,O<;^g;(?E@qc6YGeaP²col[dVmǵjpADDUBr# hMCD/Vq@&!P%P -AA!H&]?95l74cl Ӝ&؊=1{6q~qDc < [29%#n0).qA^,}sWEtKi|9Ā1`pl!$2-1|84ZC&Voz3QaKV V$d^"ٙs|^YeBzIJFwxrPy`n{ׄL\E{?^y+*fE1(-TnN[5)J~ EO.3ۖZ]e]JYߐ`P .{'a3" $MHl ؉b!]xn2hnb;81h"p+/N֖ H/nV}y,~&LkB9-:|T] ,0"mیd- TAD9 x"w+q1nTUW< Tɘ@zI{]<52=%W,-ҍϴ Zq_bO7*߱HpfFt[mLs:kq n_t{BMj7<Kn=zrQ}T+F >Ҷt[l:XT_>9==a/w 4H$QawIA@PO D^a"G dAkܜPM>a\r+EO@LuE'몋W/ 3-  raO2ꠗa|yހG\Ej)4U5C>?]4 ta]-zAO#(R`z{np ;CKE5Dz M0lz.v)sXw pxҒgSO_>L_@)h(RT眞$J* ~pDQ̌XC#kCcx u@NѥбGґJϭ ݵȾNǛ \gO6QP`a _U ]k|ᐄ&sQB%UHDj (0Q߻$t K@\S$;-"RI$Ӏyq粇4Նh& BfE`zxOAjt I` ZYO?6>]]G>,P1z͸.ݹQ/+.!!Y1o;^ZHwg`_ Cy.\ǫ+8l{9Q use>hb2t`V}bc 2:Cg1^(-`嘆f 1oy ̵@&b W57aj dvʯj;L&PE%  !Eo,ݰ][ggGX *-vuĘC,Q@8s9| .2UQ2UQ2URTQCTQCTQBE5E5ESE QE SE QETQKT"emv'unlۂ!HD%`U !Ґ>#M .z+}vu pW a=aLňOcRa0[lSIͷBـ>~D v"Oz)o^7}ɪa7#nP{);1@·s ߯x2[)m&a İT4UH,03IPUUAB4EH#LHPД (=횝;&&&p&"b"VC,hD4I@RK bJ"J "( B( Z* Xh*&" E@DDD}N}LB\0(>oCrT 6 PK5Di.ͨQPbt`H۸_ ۶ztd#s\#H9͕W-N&`nުpp8hk>M9ęCp 42Nڹ2;0``ǹ8/qѡ2sެFs󔎕6jNDKL4[NM[_L$S~L\tjv5sgm@ Ly);% հUc=Q. !-Qm ǧxN f) ԢPeuвwQ,GcxQ"b=~Q`4uH%bY($Gm>sĄZ%މbO=u*D+;7L]؝J0j#0.-wj:I64KqQ<6w;m]T~>8{ $s'xk}|hQd8ua!9T$42vÕ# 3ƌ4{)R`i'|s՛÷mM2-s9>#lOYɯĖv=oѝue?qaHk%?n@3kL3P@8*6ǯ=3\ВM:&` 9 eǃyS Θʹ/k-WѺ_wxBh7& x:fq|s=\>XU- hnqkLkpZj_}ܱsk}++j;JDɈ]n.폔ц*ҽ/>'{3"w>=Cy*>˺#:cۆ MXx" ~u?zyR@czRs{@{ B> QD`D[q5Oћd;8yP?$ѮVmpPXt2znPW@(Gp$GBw,x(0#րH['o|50 ~Ǎ:ߑ,C/C)H:׋}'3T߯̥}KQp!" s6Y.\]o>vxA^U,]GaSI\? '^ bl/u5U/ƟSYy_dH"l.4@keIi%PmD2"J`{Gmo)W筰Wlbp1YV^T~2g\+xOmEY-$ b*;ptQUՒO>APs* .}g#?:)H7$03L'L( R@; ],a\*9`%9M%]qsipzxR^{?{y LEbGz/`lI->jȁ 1t?ᅅb+6_RdKI Sa"c$o}+/$)s|;,ҪbyUbH`1"U6UŢ U8:^L&/Nt{VM 9%r 1q<#PsKgFT%$"".m#ΨJJ3-uRjjFB)8,6NͽO͍1ۺ N4))H>F7IRe[2.v* p Vn=etKVLƀA,SjdzL]興{8C`xҺ!(-]|sQ-^CB/A{Hjs d;h3蠦L}ڤƯnٟ8T_wͫ-Xa `\GS*  78޼1`-4K6ߩ!N9:_d |H[ ?<}ȁ蚟j:;NuD%?dlyӯ6fXb X&/Y_dVQ)xeã6En)ps!g0_YlkpdһpAE!]KD97ňN/YLכPWq~ap5Z0fS-[[V &GBUtt~ 5BBF0@$kjGo{X}_?u֯mhP 6X"!ˋ$!9?ݘDHٟb qAyAI9R:m ;{#ϊ Y`/wkt @ B':P00}kB.u<-.\5-q3ztKRE"\Q{Яr6?9J{GŜO]çuy[v!iIW=u#ˣk]\jmf[t ,Fu|8uel C 00nD=jvӄ{kVx$U\=Tx^Ӌ |#{.gG*tָ=#<=8xe;JL 0aX2@Бjyf>z5S={'xxh`C2CasQܭ\W \vg7t·N{QH*M K&ys>1؂W~sZ1qXѫW0 &a0#3A@=bkl"}8.BRA@ݕ.*x:"FAT|ĥ!P*5o'TXNO6} }E \Z Vj3u>=t8X69cY=Ќ""A%\C10ID׉P?g?w;y zJckk%1߇3Cfɬl_^owCxn[APVΏ[e)GWQSXmQ/X]BVqʟM"p( vm50,nK25ɵt_Qb`QH( rE8@H@dja=l폁gmw9!e9z7\fgI|&! aik0Ӡd֒,ɐ&1 R801r_5g{MC%ћjǴyLHwx IiK" !w":?ɰ^v(r#Bu [f @*-nЊ:H0|gѝ2zPhױ}څ ?oW>z^+v4v1+-e\[+ːJ{+gԞ& tWqDbká`ހ"!#d2xp#* (mN$9̛#LJxwι|⠛2WY7OidyBIiy(;d-Vw"5`foC1K{| Y^t繌n(żƥ #3r6OGPfTdN@N|!ِi1C;ҙpNJ ,ΨPċa,fXӫޣ|H'`l?@_Vͻ0e.WĆbӈ_͵`/rF釆W_thD~p`TDZKBFϊ@̣̽Ŵ*;0>Ϲ@=w@iqB>7`Ձ