libbpf-devel-1.2.2-150600.3.3.1<>,|fL_Fp9|pzƇ֫:jRH Z;2ɵZop8V)[eg홢ïN ypXѬo}{ X^1\bK炁y~5H;~|( z{[ŚOuV{žBkFڠ/7{iѸݓVP6ȩFaB/&|k נȽ|ԩn@w^#)C\!#it}~$q1 M>"նY3C]1fs-IHFJZ>>I<?I,d " ? /5@   H  X4X  ( 8 9 0: FBGBHCLICXCYC\C]DL^EbbFcFdGDeGIfGLlGNuGdvGwH xHdyHzHHHHI(Clibbpf-devel1.2.2150600.3.3.1Development files for libbpflibbpf is a C library which provides API for managing eBPF programs and maps.fL_Fh01-armsrv1`.SUSE Linux Enterprise 15SUSE LLC LGPL-2.1-onlyhttps://www.suse.com/Unspecifiedhttps://github.com/libbpf/libbpflinuxaarch64NLs9I E${! !?qkA큤A큤A큤fL_FfL_EfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FfL_FdfL_Fddd1674fee7c38d4f90f8bd38cacb0eca8c1fafc02d4890e078ba8e2c481e417334f8693c88554b9377dbddd77efaa40113919b3245fe5a517160492e21f409328f64b77c97b089ca06203d0451407844fe93933b4e36e7315a294745fa29d058fb7cb679c3641e9ca8d0c317a13dcc3553985fc975cdc3678413b6e1547bbbf6a7e320a7681c18208003b15c222707f55584752ab1665fdaa8881e7e020885141473b036a5f154b2d5a9eff74e4adeeaefb649291fa151a830eca2177d39d2a410e28e5bca81a5d782e27088da750712c747acb9ab1764bd944bf3e7fc15d4b50324ff5032adf45d6cf35aeb15e8335b8b8b509d5f63a43dcc1b2ae345d623284856479a26578ea1893eee35510daab188c7547bf18be0ab01d38c295420ed95b24b09b8535b0eb9da94e8eafba8edcb2abc742bb07dd870bd216c3eea955a18d8ad556d599405c7c779b8eda644bfd0b0610929f1140734aaefa961dbb972af14a2f7fa02729c0bab05f5bdcab5b0b46e0ec91387518125d6bf6c4451d536fe6ba95c0b514ddb2996af399caba5a312141b227f36dd91f7e0d08573282c9beaa6d78a7039f0c5e1dc558d775f8f5d353408122b4524b1f8517e888243622fa39500c7316ba0e2d30f5a95983aa7bd5f816aa9c94cd45eb6908168a44f22b76bb6847f4addbd56e2d5be20c4ea0845e972672fc07b755fadaae5f7abd35d71e349e1638b9a0c68ca90fad3df1d6b4e430804d2fbdc15e58d02cffddfae38953bbf0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8calibbpf.so.1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootlibbpf-1.2.2-150600.3.3.1.src.rpmlibbpf-devellibbpf-devel(aarch-64)pkgconfig(libbpf)@@@    /usr/bin/pkg-configlibbpf1pkgconfig(libelf)pkgconfig(zlib)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.2.23.0.4-14.6.0-14.0-15.2-14.14.3fLd8dP@ccFcjDc< @bc@b1@b)@b%b!@aaQ@a(a@a@`@^(@^6^r]?shung-hsi.yu@suse.comshung-hsi.yu@suse.comdmueller@suse.comshung-hsi.yu@suse.comdmueller@suse.comshung-hsi.yu@suse.comdmueller@suse.comgmbr3@opensuse.orgshung-hsi.yu@suse.comjeffm@suse.comjengelh@inai.dejengelh@inai.dejengelh@inai.deshung-hsi.yu@suse.commsuchanek@suse.commsuchanek@suse.comgmbr3@opensuse.orgmsuchanek@suse.commrostecki@suse.commrostecki@opensuse.orgtchvatal@suse.commrostecki@opensuse.org- Fix null pointer dereference in bpf_object__collect_prog_relos() (bsc#1221101) * Add libbpf-Fix-NULL-pointer-dereference-in-bpf_object__c.patch- update to v1.2.2: * fix a regression in perf tool caused by libbpf resetting its custom catch-all SEC() handler on explicit bpf_program__set_type() call * fix possible double-free in USDT-related libbpf code, which happens when libbpf runs out of space in __bpf_usdt_specs map due to having too many unique USDT specs- update to 1.2.0: * completely overhauled "Libbpf overview" landing documentation page; * support for BPF link-based `struct_ops` programs: * `SEC(".struct_ops.link")` annotations; * `bpf_map__attach_struct_ops()` attach API; * `bpf_link__update_map()` link update API; * support sleepable `SEC("struct_ops.s")` programs * improved thread-safety of libbpf print callbacks and `libbpf_set_print()` * improve handling and reporting of missing BPF kfuncs * `bpf_{btf,link,map,prog}_get_info_by_fd()` APIs * `bpf_xdp_query_opts()` supports fetching XDP/XSK supported features; * `perf_buffer__new()` allows customizing notification/sampling period now; * BPF verifier logging improvements: * pass-through BPF verifier log level and flags to kernel as is * support `log_true_size` for getting required log buffer size to fit BPF verifier log completely; * allow precise control over kprobe/uprobe attach mode: legacy, perf-based, link-based. * fix legacy kprobe events names sanitization; * fix clobbering errno in some cases; * fix BPF map's `BPF_F_MMAPABLE` flag sanitization; * fix BPF-side USDT support code on s390x architecture; * fix `BPF_PROBE_READ{_STR}_INTO()` on s390x architecture; * fix kernel version setting for Debian kernels; * fix netlink protocol handling in some cases; * improve robustness of attaching to legacy kprobes and uprobes; * fix double-free during static linking empty ELF sections; * a bunch of other small fixes here and there.- Remove requirement of linux-glibc-devel >= 5.16 for devel package- update to v1.1.0: User space-side features and APIs: * user-space ring buffer (BPF_MAP_TYPE_USER_RINGBUF) support; * new documentation page listing all recognized SEC() definitions; * BTF dedup improvements: * unambiguous fwd declaration resolution for structs and unions; * better handling of some corner cases with identical structs and arrays; * mixed enum and enum64 forward declaration resolution logic; * bpf_{link,btf,pro,mapg}_get_fd_by_id_opts() and bpf_get_fd_by_id_opts() APIs; * libbpf supports loading raw BTF for BPF CO-RE from known search paths; * support for new cgroup local storage (BPF_MAP_TYPE_CGRP_STORAGE); * libbpf will only add BPF_F_MMAPABLE flag for data maps with global (i.e., non-static) vars; * latest Linux UAPI headers with lots of changes synced into include/uapi/linux. BPF-side features and APIs; * BPF_PROG2() macro added that supports struct-by-value arguments; * new BPF helpers: * bpf_user_ringbuf_drain(); * cgrp_storage_get() and cgrp_storage_delete(). Bug fixes * better handling of padding corner cases; * btf__align_of() determines packed structs better now; * improved handling of enums of non-standard sizes; * USDT spec parsing improvements; * overflow handling fixes for ringbufs; * Makefile fixes to support cross-compilation for 32-bit targets; * fix crash if SEC("freplace") programs don't have attach_prog_fd set; * better handling of file existence checks when running as non-root with enhanced capabilities; * a bunch of small fixes: * ELF handling improvements; * fix memory leak in USDT argument parsing logic; * fix NULL dereferences in few corner cases; * improved netlink attribute iteration handling. - drop libbpf-Use-elf_getshdrnum-instead-of-e_shnum.patch, libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch, libbpf-Fix-memory-leak-in-parse_usdt_arg.patch libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch (upstream)- Fix out-of-bound heap write (boo#1194248 boo#1194249 CVE-2021-45940 CVE-2021-45941) + libbpf-Use-elf_getshdrnum-instead-of-e_shnum.patch - Fix use-after-free in btf_dump_name_dups (boo#1204391 CVE-2022-3534) + libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch - Fix memory leak in parse_usdt_arg() (boo#1204393 CVE-2022-3533) + libbpf-Fix-memory-leak-in-parse_usdt_arg.patch - Fix null pointer dereference in find_prog_by_sec_insn() (boo#1204502 CVE-2022-3606) + libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch- update to 1.0.1: * fix inadvertently changed struct bpf_object_open_opts memory layout; * fix btf.h header relying on struct enum64 type defined in kernel UAPI headers; * fix NULL pointer exception in API btf_dump__dump_type_data; * remove struct btf_map_def accidentally left in bpf_helpers.h header. * All deprecated APIs and features removed! * support for syscall-specific kprobe/kretprobe (SEC("ksyscall/") and SEC("kretsyscall/")); * support for sleepable uprobe BPF programs (SEC("uprobe.s")); * support for per-cgroup LSM BPF programs (SEC("lsm_cgroup")); * support for new BPF CO-RE relocation TYPE_MATCHES; * bpf_prog_load() and bpf_map_create() are now smarter about handling program and map name on old kernels (it will be ignored if kernel doesn't support names); * BTF_KIND_ENUM64 support; * increase tracing attachment (kprobe/uprobe/tracepoint) robustness by using tracefs or debugfs, whichever is mounted; * new APIs for converting BPF enums to their string representation: * libbpf_bpf_prog_type_str(); * libbpf_bpf_map_type_str(); * libbpf_bpf_link_type_str(); * libbpf_bpf_attach_type_str(); * bpf_program__set_autoattach() and bpf_program__autoattach() to allow opting out from auto-attaching of BPF program by BPF skeleton; * perf_buffer__buffer() API to give access to underlying per-CPU buffer for BPF ringbuf; * bpf_obj_get_opts() API for more flexible fetching of BPF kernel objects' information. - see https://github.com/libbpf/libbpf/releases/tag/v1.0.0 for detailed changelog- Update to release 0.8.1: * make shared xsk creation network namespace aware- Update to release 0.8.0 * New features and APIs: - support auto-resolution of binaries and shared libraries from PATH, if necessary; - support attaching by function names (only by IP was supported before); - support attaching to USDTs (SEC("usdt/...") and bpf_program__attach_usdt()) with initially supported architectures: x86-64 (amd64); x86 (i386); s390x; ARM64 (aarch64); RISC V (riscv); - improved BPF verifier log reporting for CO-RE relocation failures (no more obscure "invalid func unknown#195896080" errors); - auto-adjust BPF ringbuf size according to host kernel's page size requirements; - high-level BPF map APIs: bpf_map__lookup_elem(), bpf_map__update_elem(), etc that validate key/value buffer sizes; - bpf_link_create() can create all bpf_link-based (including raw_tp, fentry/fexit, etc), falling back to bpf_raw_tracepoint_open() on old kernels transparently; - support opting out from auto-loading BPF programs declaratively with SEC("?..."); - support opting out from auto-creation of declarative BPF maps with bpf_map__set_autocreate(); - support multi-kprobes (SEC("kprobe.multi/...") and bpf_program__attach_kprobe_multi_opts()); - support target-less SEC() programs (e.g., SEC("kprobe"), SEC("tp"), etc); - support BPF sub-skeletons for "incomplete" BPF object files (requires matching bpftool to generate .subskel.h); - BPF cookie support for fentry/fexit/fmod_ret BPF programs (bpf_program__attach_trace_opts()); - support for custom SEC() handlers (libbpf_register_prog_handler()). * BPF-side API - BPF-side USDT APIs. See new usdt.bpf.h header: * BPF_USDT() program wrapper macro; bpf_usdt_arg(), bpf_usdt_arg_cnt(), * bpf_usdt_cookie() helpers; - new bpf_core_field_offset() CO-RE helper and support bpf_core_field_size(type, field) forms; - barrier() and barrier_var() macros for improving BPF code generation; - __kptr and __kptr_ref tags added; - ARC architecture support in bpf_tracing.h header; - new BPF helpers: * bpf_skb_set_tstamp(); * bpf_ima_file_hash(); * bpf_kptr_xchg(); * bpf_map_lookup_percpu_elem(). * Bug fixes - netlink bug fixes; - libbpf.pc fixes to support patch releases properly; - BPF_MAP_TYPE_PERF_EVENT_ARRAY map auto-pinning fix; - minor CO-RE fixes and improvements for some corner cases; - various other small fixes and improvements.- Enable building and packaging of static library. Explicitly enable fat LTO objects.- Python is not used during build; remove it and help break a cycle.- Update to release 0.7.0 * legacy BPF map definitions (using struct bpf_map_def) are deprecated when LIBBPF_STRICT_MAP_DEFINITIONS is passed to libbpf_set_strict_mode(). Please use BTF-defined map definitions. * ability to control and capture BPF verifier log output on per-object and per-program level * CO-RE support and other improvements for "light skeleton" * improved compilation when system BTF UAPI headers are outdated- Update to release 0.6.1 * Introduce legacy kprobe events support * Add legacy uprobe attaching support * Support uniform BTF-defined key/value specification across all BPF maps * Support kernel module function calls * Support detecting and attaching of writable tracepoint program * Add bloom filter map implementation * Add typeless and weak ksym support to gen_loader * Add RISC-V (RV64) support to bpf_tracing.h * Deprecate AF_XDP support * Support BTF_KIND_TYPE_TAG- Update to 0.5.0: + New features and user-space APIs: - libbpf_set_strict_mode() allowing to opt-in into backwards incompatible libbpf-1.0 changes. See "Libbpf: the road to 1.0" and "Libbpf 1.0 migration guide" for more details. - streamlined error reporting for low-level APIs, high-level error-returning APIs, and pointer-returning APIs (as a libbpf-1.0 opt-in); - "Light" BPF skeleton support; - BPF_PROG_TYPE_SYSCALL support; - BPF perf link support for kprobe, uprobe, tracepoint, and perf_event BPF programs; - BPF cookie support for kprobe, uprobe, tracepoint, and perf_event BPF programs through bpf_program__attach_[ku]probe_opts() APIs; - allow to specify ref_ctr_off for USDT semaphores through bpf_program__attach_uprobe_opts() API; - btf_custom_path support in bpf_object_open_opts, allowing to specify custom BTF for CO-RE relocations; - sk_reuseport/migrate program type support; - btf_dump__dump_type_data() API, allowing to dump binary data according to BTF type description; - btf__load_into_kernel() and btf__load_from_kernel_by_id(), and split BTF variants of them; - btf__load_vmlinux_btf() and btf__load_module_btf() APIs; - bpf_map__initial_value() API to get initial value of mmap-ed BPF maps; - bpf_map_lookup_and_delete_elem_flags() API. + BPF-side APIs and features: - support for weak typed __ksym externs; - BPF timer helpers: bpf_timer_init(), bpf_timer_set_callback(), bpf_timer_start(), bpf_timer_cancel(); - bpf_get_attach_cookie() helper to get BPF cookie from BPF program side; - bpf_get_func_ip() helper; - bpf_sys_bpf() helper; - bpf_task_pt_regs() helper; - bpf_btf_find_by_name_kind() helper; - usability improvements for bpf_tracing.h when target architecture is missing. + Bug fixes and compatibility improvements: - improve BPF support detection on old Red Hat kernels with backported BPF patches; - improvements for LTO builds with GCC 10+; - pass NLM_F_EXCL when creating TC qdisc; - better support of BPF map reuse on old kernels; - fix the bug resulting in sometimes closing FD 0, which wasn't created and owned by libbpf itself. - Remove patches merged upstream + libdir.patch + libbpf-Fix-build-with-latest-gcc-binutils-with-LTO.patch- Fix LTO build (bsc#1188749). + libbpf-Fix-build-with-latest-gcc-binutils-with-LTO.patch- Depend on new enough Linux headers.- Create libbpf0-32bit needed by libdwarves1-32bit- libbpf is now a separate project, stop building from the kernel (bsc#1188419 jsc#SLE-17288 jsc#SLE-18805). - Fix LIBSUBDIR + libdir.patch- Add python3 as a build dependency.- Build libbpf from kernel sources, not from github sources, for consistency with bpftool package.- Reflect SUSE CFLAGS - Do not bother with obscpio if we are fetching direct releases - Remove patch 0001-makefile-Fix-install-target.patch seems to build/install without it just fine - Update to 0.0.6: + New features - new extensible bpf_object__open_{file,mem} APIs and DECLARE_LIBBPF_OPTS() macro to go with them - bpf_helpers.h, bpf_endian.h, and bpf_tracing.h are now distributed with libbpf - BPF CO-RE: added field size, field existence, and bitfield relocation support - BPF CO-RE: BPF_CORE_READ(), bpf_core_field_exists(), bpf_core_field_size() and other BPF CO-RE related helpers available through bpf_core_read.h header - bpf_object__open() API now auto-detects program type from its section name - BPF_PROG_TRACING programs support (incuding BTF-typed raw tracepoints, fentry/fexit programs) - mmap() support for BPF global variables - declarative map pinning support added - probe_read_{user,kernel}[_str]() BPF helpers added - bpf_get_link_xdp_info() function to get more XDP information added - a bunch of other AF_XDP changes + Usability improvements - no need for int version SEC('version') = 1; anymore - raw_tp/tp and uprobe/uretprobe section prefixes added - new bpf_program__get_{type,expected_attach_type} getters - preserve error code on program load failure + Fixes - btf_dump padding handling - bpf_object__name() returning name, not path - ELF section handling off-by-one bug fix - mem leak/double free fix in BPF program relocation code- Initial releaseh01-armsrv1 1716281158 1.2.2-150600.3.3.11.2.2-150600.3.3.11.2.2bpfbpf.hbpf_core_read.hbpf_endian.hbpf_helper_defs.hbpf_helpers.hbpf_tracing.hbtf.hlibbpf.hlibbpf_common.hlibbpf_legacy.hlibbpf_version.hskel_internal.husdt.bpf.hlibbpf.solibbpf.pclibbpf-develREADME.mdlibbpf-develLICENSELICENSE.BSD-2-ClauseLICENSE.LGPL-2.1/usr/include//usr/include/bpf//usr/lib64//usr/lib64/pkgconfig//usr/share/doc/packages//usr/share/doc/packages/libbpf-devel//usr/share/licenses//usr/share/licenses/libbpf-devel/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:33984/SUSE_SLE-15-SP6_Update/fc35553e658afb5b81cfa75f5cea4316-libbpf.SUSE_SLE-15-SP6_Updatedrpmxz5aarch64-suse-linuxdirectoryC source, ASCII textpkgconfig fileUTF-8 Unicode textASCII textPRRR>OcLC°r}3utf-80a323960ebd21e66e6e2c774ca0499100537c9628d40ffce73fa7278966f15c0? 7zXZ !t/H]"k%AK37i2Ϸ=P+8O. x-R=`O+#5I"RݜԟtKkfKDfX2`+Q8T0tgb+f5ύD7g&?j7*)PQ%DYqNQ^C`Ҫv{ LDc5W9B<;mDN_T@z_^5;Bd+rL9{=uaY$\W&x^Mb# H}1Qw<0%2}]0iӿsxhɩnGjX 9t1B@g9b_h ȾikF4i6Ru#7ZE^5LNvGfzSA`i$5rO4O /M?Ld=mE!+UgcHpEE%:}-걄mퟱ 7/$jAVr&l~8@jv:e4ݐ4n9!Z9]yU+NIF4Dn?%+r4CǑ YWlg'3bGh&8O(lx Cڸ9fCo 0M.mBҦ~nsif+ڱefs"JJD?٫ǯVCȖSZINf#!7 )MN]g:Ak{a{P{*)4ddm!:pQ LtU %6EzE=CB =Y51"5$X flT;B~iDoiO|)f3LD.UWqi(ޓ~TЉ3G$!KY` 2Fer>Htؾ@協ةz/tiiD7"=y0[i6x믒q.nݽf[&c4Ӂ[92gư tUc"QC=},)^?$ykpb/wqTP' CH ZZUa(sGtZ߱c la_!*̤iayOz{u]L}({ޤЩ qmaJ8ka4{6`k*^f6lqc}ZE:=p԰Y-;H`]hm&[Hiy`*-$hA/jKDF,f)g*zT .|`_T]b 4)q  䥆Yq9Q1A*bB)[kV۾1ɻɘn`F^.|Lå-#=#Clpyxݵ~~wq5 <}IsC6JZ(֍ɯ&{+(AtyS{oaK:&Rq\z_͊xf*#+ps +l9l(m 2 XHʡsQ{\ƒxr[B@;0KI=f^Eu㈫9tA.%{Wn,az5$+&-?L;jZbLK/]e!j&䂑?|4U5FDL$B#*#2V)x:щ&[, ԻiAR,Fh[%Yƈ瀋nR&;Oܷ o vJp蘶 3:vP+$금[Rb߶r=Y+>>0+jcљ y_fk d(dL1ګ3V\m* {iNL4HfC!5T=Y=P7z[Dbq;↳fElx>#Xmtjc (QÑ> yINO=G4rne.tR~ ǽluʲ Ye]`I2ƏINH4O8ƌqeU!Y'4QG5:h*33I|l(-w'.4 =&Kɹd'f>Cc]pTn>:"/؁Ն65N__Kޡvnk5Vq64fjuej37!f$GJOw1Zrۢ]ufVrC@B9a}Po(\9l]?N;`Zι~v&HϦp[aP,GFjtu Z9<*-I fq*6`>z\|ʌY(SZj[| ?ypP[ě^4I|`ƺ8$Xe_|ξd2DYձw7l?&ZǮ lsgd]KHc:gȘT2 a,c@Xض.uX/&TjB'1‹:D5g]CqYf;!}q0~(`FMIhTM ;o>U`8 1Jda#F]Mx@P L8Ln/Q7#Y#Dp#=Irt"s7p1c? IGFXoa!?9g)54eHL%؆uPaPHܮx̹453{cSJV !/eaΠcv*~ʕ4vM^r]7fѪVm- J}.SJI{(O.VWCIIC |W)O1j?8qń-vF04އOWa*WpDKޛ+-jgwϝ{ue z߽i,ihw2;rwVnvmr=x,^6 ͫʄgc'2;̚U?].JWNCEHGi~R)ƅol8ÐS|F GYyPoW0eO( @6$ddra duiJyL f"{ւM%uNC"!}QZ #B$kCBu>O_ *Xrj K+,ReLD y[OHcZXON,n7_oxWM1f ZGfW?؟ @Sn]3 ` mfܡmFt`(p]@mrɣ!cS9vΓ)Dz(RN`ɧ.z?V=SUD\R硕s*sܓL27HˀmHsJklxqx &=H==o3m IDZkYȝBց Ӈ#Bdk> Hͮ2i \G i#y0,M1p;{k|BۨP{¥Y{ FcYAb&٩w{Ґ# ш4Iy[vuFu0, 2۸{*I(JCu,J"hBxVr?S-J*E4CG M<ָ?<.Ϭc@j@zZ5IHxc2=.\~ѺKP<@g%$hLr;ߓ&erL$"^IEcVu_dWWBcO}Q5$)~ާB֬wNgy۰dﰀ(fEg54w^;NԒb,WdۯO:;J("JNpײw/89݃q+mW̢Έű`+OF^nظ>aXLvPM%īdM2 ?\>9.@Ǽ*&`Aʨ#"uHD{SԢċ x)Nq!p ܺjAXx0^{3k$ʌIi<: 80^2O&+mlk;6_f1 i{qg>4zЫ [nY,L%ˣe!T[C]:o\>#Bֺ=! g^o*߻+)^֭.ݫ9sQ܏p{6~fN?snXW%Ոn1ژ%8d,#q[‹Js}<|du XQ1'~Oscmz+ Z(#aޤƜՓ' ˡ  -LȾ|R{ ["|_decī|$n""3Ize%B'uMxJDVnϓchRW7? s8 / L}-bXԼTծΤ .i`'!b…k6tP弤ՎgqٌםNҪ6j{@q.tKs_,ɆD2ϔ {iGnN|C..<\1G:|Xlw 'zB8?V{WIlַ:nr#z 6Ԁ=E" !nY[4\|n=Щ|{hMX5BQ]'%Yaߪuxpڰ w q"[<NMt`MwAUqXȌm*2u>/]'AIRX]hOLl;K\evߍ~>wbAɧ"M!Wj[mrWH IHny DnL~ʳf71=Ï;bZ][{H4Q*ηHY%1l'h3K9t9NŊ\̘QNu;bsKōX;8<>ŠQ#@db^D˗:8MTUFT,`5˿LF輆+4 K {e7u*F-; I=rX&zy,Ma$"p<5?C8m}7KqdF9kSp Fq0TcpZs~sZC\HՎF!0>$ 4(mݭxY㹭!,Zsf-xE]' ̈uF @;#{tj| lX" )Oq\0X||_8vʠ=omÞhuqfaR\_FRb2I2k>D޳WAGOfns*nێb)Ĉ۩zoq)tYrN݉ Vͩ2jخ\fto uo'~"=4Gjєּg5}Z=8M/dfJ0 ܢseg*&† d2*,$2h6aed)pDb+ȽwX d}ムe:iv-| Pjf;DỸL7XpT  BŊRgr"ɝԠRl|)ܮ`\zC Io5U֑xFg?z&a?/'|TsBL,QZZ]pf*rBzioԫk/ ]%L-;ՎZM |= + W C$|2}W=O} a2t?`l8bL1$7>7FA]РyAAa l)̨ϴ ::.ہlB0oI m/Mqd]3E[ Ey+c gZy{m!(G9noa)PBLn#i GeϻS̩j%3H1)\h[Kfa|#v iK HtH1e `| &Apr nԷIlGIޭϠȗߐ( ORkIw?503_6K0v)–֔$riF)9:;GuxJ \g/7̟LJ݄|G."O#̫^ Mq9ܺF[ވLNZ 4TG{?ľ'{o mam!)tk3*[| l 4[ nsm]ə;&N7dG| pRʿv!g+(gJ/d r]&k8duN˨c^T@4հR Y|eM7j$EϢa~Vt(sa ӑ" t:_:l]#jA'i+034g Jy9xɪWV w$۬OtF]2>F,#<+`[sT?'g2sF&=ԖuI~Mf;rԀڮ,T8AXyR%r30?BW"QT$4Բ ,/"[ B0j<Ձo/\+M6(oܴgv 3I\.o1ɐLfFz2 {mQuǣSt)9n {O#F3A!i gY:pIh\&7ڞC[WrӂnHS-lAcòa:{[0醞&f# U/0qƏ=3$ Rء11N q?̟/P=jvY9.kk{\Ɵq^dZŒP?Nj#Jۭ)MAȢ"(^PgWc <HE\pLˠpX bo39aX؋6n_p=;GtaV.hR LԮƠ^BΗ5 $THb)M~L@ (1xnGt@ rEȩjjs.Ieyj(ۨv¤ToF2[.s|IO>#n\7bsJ͕Gdo;nT~7S#!gԥ6udLHl 3l+B 84y}{{&9ac2%}4Yּ ~3#q&Dppz,xR.# s5ʩ8f5ugqLʠ73u"[M TͽdYݱyGQR^paЭa`~Ubց` bBFȈqqT 2]`ŸP;-ۨXAo @ IbEcvhIWX`*[0r27Agu$ 1?JbFx &co [` 3|C'Уf4y?mn>r޳P̞jt.k;ByJ=׵/(CTà'<]\6Rw>hiy KKj{VRRLҘ E-1#Fꍢ\UEvgޘ0WOuz'$Vhy6U]:0.^;۳|/ݓLgPr,'E DчOt;|D{M+RxjF`sX;'RHuxx=Eы|2T.#6 EUzDLnðWZ<߄^[?'peǦʖ 8 L&k'#ukLaB%؄mZy|fOepe@ /ﭛi1Rd#ؐ5 S$" 63)SJ{;0feCG{2#ŽJtJQcj95 =س>BAFď ƠuO̰>>6\n-gktXWPyk *^&L/ՠ]XZ#-"faoJcVog!B70WPbvY+a2?,M#[C):k^b&GM8m^P:BwMAt=@l!7txt)ym l&~ X1C|B6v%Kۚ|@5J{IׁR2m); Mƪ5k@4I NFLk$qDo{JZ1HuMd8?i|Yؠx]hN2R Z:9 O\7jX0}ٟƗJ\I<,' %t{2Ki‰ЇudjZNѼw'a%dx<vÙnGݗEqZ]pt&"Qz~/"c)HGcͤmj7~+?Wx䇤</L|e(yjexFbyB X}Afx.[790ZEu9#vP+/jQWbQ>7"5{ڠw,7[,~ |KOj9,PDjTn{:XAN#֊f5ם4|~@`ؓEt,Șt pP_B(D5n)q͹P) QIPnkc1OG:8gᘓ~zݤS$ fM3 ']uU6904sSHcb?Q';ao鴉J#\^ t 9p~5U 5cNkѭIKH͢#@B0ߟHxsYGdqO?YpҲ%Ah83Sծy!?~t̎2HϬ"X hyNA svbtx?^)3W,a`}]a ={I!$rתϦ҆}Н뜵jqX[)rɿ!(*T@8U'?] )SIP` nD؊ֵ2JǒG,gl>H˜4;oyx`$]bdIeߝUoxe)E1KdG*#e:PYG?dZ5qػM B|^ӌᱦJ;@:j#"4ab(V?Zt8V7?1h&~Q ,+R;T߈nB,X[V:B;2+ ֲ7pjh(HZ X ]G*8)M6~-VGV'D7ug R/Tg?Nf>Q;ltotfvy1ߔ UoR>j; "`nvB 1w¨P? [9׿9Q(cZط|0ie1-0L2NdÔ*|{8+6p W]ڿy]Jo1J7[^fzDFn(+T %ѭ%nR5#;: Ģ߃=bJK*N}(_(>u]ɼbG YYQ6i=8'=O| FҔmP#Cs}xhFV ޣ;B~y)yYmHl6`;˽0L*X{mϳNǛ9I_épb G #Q2^u]L*TL$LOlY>^'뭹#kѲ̡Lz\MPy@V!m{k=(}ً 1BcՂi;eV-![bh_iLkFosڥ^Wkփ6Sj7k8j!9)dsK}~ߠG} v]S$yN{Pt7tޒv,}w=O٨{arH$#7."ݿiSQٙO%ܰx8 U.ZF-H<Ԭb`{֭:i[ljw]>uEt37Y!i3!61JsZ'/`#Fiת㎺iL,u*@.Jv"awͥ,“[%b, OwJe?s&!sKQpXۂyj^:0Io??&AHn=o,,<}GS&Ɂϗc]^9 |ON6 RKaUbҰhc;=˧4|ٴh {5eר^4ORuF+ł=j@u/Wp3Y?Num + 4 L?A >wDkwrN;[O.O똸eB!l$@V05e!h.'b7e2/֬.}6v6hF}2Cá?$!IE.MlGe[7*vBY۸lԎ4W{ 9+VB'pl Ow<8@#@=g=ѡm 𨌾HUwm'i@vt vDOMщ˹] *zɸ=lz@ύX_gF:{QJ ctb;XpMS>N:d\h;ժٛrTb?36ot e~[ƍUJ3!^cxl5wXMGJbZكDڿrgz*Dfb oiXV6pӯSn[z,2Lx0CJl6 zLS:^ydL_2}N8hHfHC~2J6Di%r]H]ߩC뉔p0̴8 vipEQC=ћ?9AO.$\< WR4 2w,BX(B>f3/ Or8 [(#v"i{TM3PhBNoU"$ckYfkb~"NvX9Dhjsn5 ɐyiILx(|>-\jcGX$P`iN)FpRt8 u0|NiiսCw kMv+qoig܅[+gAxQ9J/ujߏ,А:Pvͬ$Z ԦBA=) 17ą i>r&sIL+ѣd'=nz,4؈gN<~e#q -QSk`$"L묕m(1"r6 T[buq$X)kTs1LMd$B>H9"k(i2o@Ja~u`}k 0JPTp04>)igcBN \8' E'^7`Dx"*0-U`V] n rpsciW[ZV|SP֜֞3Hʺp l{ުpU/{À% 'gxօ[k6'EcZF̓ۆ -?& QP+SqyЗ#]j9WkVa2EA>uJj v}[*- \fnjԻB P9/X"3ISϸ˚~g&K۲ONoo# f[VePB>zvã7!倈zQ?E22d3Z-Ӧ\׈%fl`30cXKQ*2KawC GQQ8/(Kqk@`EBU+`z*q$ #jnd}6.hE^P,Xd Q/`hh@e`N8K2B7(88w-#3P'8O?$Z!m1Tp,R<}R59rraGb+,+9D+C41Od {MXTZ'!m`ZtVo_{`); (/[{ğչQ*]VG>lZ2+ !{57[m΁ L5l1scNlM=P: w*A pDѻ^d_R? bA+ll7=8ש yf:dD=L&?i= .$HN97bMN6T4>~k{u ruyq-ɇ{ x5Ռ R p9L<җ.3D+cW+C0^2GZfr ZlPfG*7o+.U46T=6fl\\K<9۵i5= _Lh5=kZ*GPh +W2| |*K"6Ծz{42U;O*}睓gVZ U58Up#;KFAȚZ+c7l-M4f}H6_ZX1 .|G(|N/<0+?|ΝyM0d}g."vKǥ 0э CC(+xSN;zͪn<\4Rdk<Qӧ3ZHttdi:OYޯ"{|:օK 4ksasFLDx}nb*tf!yk`)nxd:/i5wفA410(K0xx15xJEe쭧cjqFQ|䴼,;f*(af-/e 0=xQ^WI`F~cjk w7,ߒ~tEqoȷ3ń~޳kpJnsYNRDsVa81\w zӋsv܁aJ¹_;Ĭx)6dyC91[B0e yst[]a%+[.GE])sf)~'K-.)8A̵񃼫Ѕ0۝{qNe5 -^ T83r ,Ա]*. u~HmzHiIqx<H F%0%<0U ?#!ɇJ;dpRh uoH07-2erݣ|6x K.ߟg֘W\p9+$cVM ůS 4Z]|!ʶ9H?/ ll%=mTZ*w ʁ@fܧgo 졽24_awTsXņ ^J=Nfi&O}74*23Br҈U {|҅;Ҥ=GhloJ4NJGEYT&w@uFv CZp ZsR4r,Y5O/L2;5qf8/bD ƅ.~+z"ݽ]n!ĆP AْR&^H_qe'i_X 5i[  +"8s&T-C*uN0h[uʸD4Ga2YRI_'ڍB$D c^svZ Rq6S83׵R?[X#̋2M7W@@y Wj\}q:|A($=qu0Q"EjoY`Ba:RX0&D("ʘ\d;Tj(:e(}G(rծٙXLjJ>;컚lo t>OڄiNzu2U1KyjWԑA1ҐB͝#Sco5%1Baw]@y5l %\3^o۫vkHhMςt+GW[YCY ?)vNfa#} ȇӭ_NQ'i]W~q)fW`7ˍN9S7VccKCkG'PL",1ۻA{{ ~#KAbĪ61kCM?-ۨ W-O]şjX_xkk=nN~d5根Jc㳦ՒڤAQ_:5j; fGbJ/3X "cV_C_LTb F $0l}g`*(8x0SLv:OOVnz#E!$zEl ,RU"2CReϸOQ&ȨAQu`Ea;T4'cmPb֟G@`|3nsTl q@)w-S0g~@CQ6\C =Kx=]dбӽuh&&pߴ})Pu'vai I#ֺYA[҃#hk_aLt]ݭ`I6(.ۈVs!ٔqF@L5GoeޤwXCaN@%$dzE,{D %L):X[bVw4H M< }%?Tg ϝW4 ˥iOuVya̟yjRu :you נ%ּkD$e5M76[*[Y۱ӧ=BWwA*.T^ eϪ Ltʱs N%rTHU:?t& Vm?+( a B 0[ޏ0j-}–ne0SJp.`}ܧ2.o?@IOPN jm~ˑEjvbj pLWs K{2aTp . 2b`aՙKinuW}q_vkU+31 Zz:6;5Z9:P0ο8Bg ,y }1e"wC?G~ߠ 3CM8(o $KWء=Z`eW8T`V'sx /e.١l|\.^Ryfq=.۲)Cb79R.[V5yR;MlsA/洊*_SVYj"þnD_!bH]K^ƥL#-%Ba8d{4v`ޖ  Q<=ׄ|o:yDyKRQ$7޿aYtɛ57团˺b2?kbGf>R͎I_ߵ` }~]/w_H7KגnP@&{͔<)[ [p5;6wPI.PZJz %IDe7_O8iuq676|2x/[Ipl>>z2 JJyZQՊWɂ=͂ & ^G4+i~ \$=[ J e<]} &*?'!l%c&t6[DfE` |BZ/|u)vBNQ&K;X4i}^]?kG#XJ(>} f+Cw#w2m&Qs%yX :o`ҋ( Eh(RzRY[Gc$bd^.BTqjGl[2Kt5~k?Nfo*B櫢 Y !Jl1.Ǩ3ܼt>WK4e~ --P)qN *k3U){ͷ .+d7$eq=\ 7o B'_!P8Ç. Y>ֺWT%qv#Yl0lXn7Ѱȃ2]XJlIyWDR8{s(yW? Ks}яXǒ'`.4u!Sq+ fI؂L}\'d5%i]`p13 t-ChЛy2"]jlN;yL5\+s6Y $f3Nq^XEA ?iQۤ}%\;=3Wq&?HJdP m~&/[c8n4,gxBZ\Ӷ|6&zm ,{oVO mUJW{[P?zU/}[;ɭ<,R=e:b{tAU]^0NBv|[ J"Nz$%Ar !ǩ-i_/0E0h*Qq]cob&\S!+?h EB]#fm>+fqɠ\^WF' .BdN`[ܢ p9 bM^ R2ǯ /Q>;vu#X&x[e[5IɱRvO[hy a7{/FM/5+ʸ$ح6XA l{v Wyh_A4N E Mf3 ^g4d%r e`.i3+Y,9e,Dy: W(wܮ;;X[d]Lz(\DDmԌ~ԣz4vY([FݽgJJ\$+ _x(j(zR= $xU\JJt'ic/wxB!0} MҰb*Ο_ͺ¼#s}OD8Iwe2Zɵs>^P9CY2Wl." 讛 \HZ4j\ʹRů%l˘rGfd{Ĕ}!BԠG5s7ץ5vʐSζYe B35NyFd!a2լ>n0v]qGpYRD<[F%.9WEl-^4Eqq1 % fJ$lP4GFy׹&R-tcЃ޽i W_~=$v6p6V<,@ +{s@tMo[㷐,V,${ӄ8o4h=3jMsa/5r%bEjt7U ."=odҺ.C&?/.PjMs2}Dԋ I:v-憭†'o>V5Aj`Fv=OR\R˲ffeL9AER8]X[3cth7Fpw6pӎl#鋑 3mgTٟBGix)IQv+P<,91;$Zyq[Ǧ a,rOKIuIո .NSGsyʸD|x^$IIO_+gS/MhzX mkTwC$ *-RMH͊kȮ3S/r9uMi׬:\L#PTw7A"2BԆuA !So<}S]j]RBF wD%M+rKwUm9U qVt3nHc+xAB<䗺%.eͺ=8`! Spidx#^ݾ"rɊT\itts* -mkYS6E ߺJˉ CzJ(=%PZ^w|zm ;﬊QVgy+8\OO'_GOx9Z1KvGKe2N/ӺmpI?Dž kM"沟vxޝQDa\%-QZjε?2*:9aU5X ɾ U9p\x}=~u3k½/kZ$AÍ @io"\!mw9K5B^uWyZ!ê M%,iM;#raCCJa%IH!Dl~Y_#مkeG#"-G歋v) )/(g,n ٙqbr`=کB>|k Y>3)G~M!å̿밠>,= ;;oЯ&C%æL%k0n` =Ztલ_ E'']f;cO 9@ikZZ|̺Ӡ ?a*P[~ Qդ}qCh@-a}0GI8"ocP&iX~5FC_Y ;e\l GUܢ:[|ź{$Iݢ8lN?\PTѷ,ED0%@d(f%(O|xFco&| 7 =~ eB, z5Zwv2qI"|!"]/x闙x|JG5#Xr qz mE#Vd0Eݩt"dK-|fXArΔ;{DqˡRТE.~p4LtvKkdŁ` w:,;)wQqDdFu ?@Z2pJq_z}X%8Dhu0P|z^X¡cAXWF^ Lz}b$5( -EF>*ß=c"tYwR&IWk':F<4YVmc-(W~ !\>gMG=_lь#]iмO;Jy@5Ext&TQ&;ڲ68Ftoa|baOe dt^LgpciFA c5Z' aKPo05)#)ۈcYzP#SOpяʠ|ܪ 8*ռZ>foΫӤq GږZ;YXpo'Krxh=Pru %d λ>[~a8Uۮą_DU[9 "|#RsOviU2mkGyQ/3pYx^,E TKSǻSc g9ΚQ"i&!Fn4u g,ߪea=uxV]B-ngs9b5U-.aF3tʤ;!@nJTGjH'}a6cIA?E7 4u]gkFJm4]-W|TvPϕx}8.!\|?Y03^?|vp*ks'!վP3ӢDi= _@!a$p0:_YÛ/6%sglcbQ}GT£1_#lj\[k{مDr"ʘғ,S)vEfzjhjiGԕrtML;|͠[b\\iFgNVE[۪jGˠ K16YS.N5oFAIwq!$ұi^ k'GA$se M/uG~XG]Y|etυ^T(XN ܺF7CB,w2Ҋ 阇v}ͼ`[Ձ.Je3lrwg3vy8k"gd3!=Ȑ@ݲ=p E=/E㪘6qy6^4: d-n˰l^7 $WIE`bK=zEh:XOdCqHQ~:|^I;j`* 2 Ri=ˡ1!]/="iz &wښYT?rk^!FY뉃M2߶_QbFDerkGAcj[i1lǡޒ4n /2|7 0AT́Z]R%jC xdzVansO{kNmmxi^AmGڱTbsTtRB3qX sc QK(xӽ_SD1rQŒdAY((reo.1P ^ Պԣwxp[rWnl6o[3HFưnK 8|w;3X{DLF #e&3Є'cu2޷B-JC{W"k??>l8y9D-"^/"([5s@^jۀ"IIUeQiLT`sD;dڒk]iBsF3Ʉdퟯx=0~Jۧfex;֐{Jzd,&Fhޝꗞ)պRyNX(X,Jߖ _!ƺgpSE3!"/r9S#((5rhB6]IHreYh}, *,A3kX9uƒ\+Ž~c^kkJF~nWS}&G-m9nJkLv]֓uv;RE)فW\$20`ZwyDlp)eSLtѽu lU7ؙ\Ϯ?߱U+ D^wgg~_aE$0 vhMe}e|vҜ≎9B H;Տe 3ĬxXjX"pJC+zk"%@XKqo`6~gx c;1?.fD7Q_̐91\W|Z+T(1鹫A.43pӠ&gkd',/+9圼#]a SuȊĈK>rOh1oS2 -rҒ|umIP2w$},La| t` &'>Fd =)6^b) j|Bҽ(=LD?,{&v?Ή5$w:JH %揖rI-oPK 1TzBk|qFS(<L(XlnŅxĺR%}kWy+f`ŨY"īaxοm~1|3\HF3`%65svXAusޅ?s/zWj)K7YpKQoJ?xV~E6*f΋'uQNN;ңewQ3xHd~QD۔Z x%ߦs%U"۩LQ]?|mT2Z 7x{ P=v5m^DlU}a范6WxQc<87,%7Uk~lan뫊='>hf*vqcz52jTZhJ4yAXC'Utu nl50=DcW5%.[LF`ʟ6JR hQߴ[jL4_,ٵϫ9q 9<*M]j#!UMA^EM[>]Rg-}dxˮ|SNt~PGٜuFH=oE%䅤0Mz\ D? ¿}="X!x%W[:*_NeA!L A3\~^}AanYp@ńщg)/;Iy*(f3hUlD~9vM#9hS:n]A{7[6_#S?>-8cEvT*~}[_o5=bspud<Δ h|q"pHZE SAn~մ TOvzgC UOuJjwa[gd2v= M{ zڈ1T~d(T.\H=3zç1H+FaG2rcs.&S/Cayd8z1/';qV,*g V=y#DTt S22y3H{@#, ^"1i m8-Q9RpW`]6Y5qX0ի*Xy:*j±r_'M#u#Uvu M{E 3V}4+9 6+l}$7vKp5Y^|M+3}Bol&+DW!ʨ)WeDN)Bkʦ@^z:,C"4=6U,J8?e!Cvy)亷+97^8@SS6 *U2#rf%.a2![rZ7@nfV#cQ./PCz݀4%,c=ZccbM3_c-JrQsKT?aKcn9c U bE8F1TOs駾폰sWd^~%-?`=BW`T(XӈV|]d04. _V3Ѓⷦg|uK瘳!9WeX`^nrprq~h+A)3)zK;B:l@x0y_mۦFt!e/`eALh,Dp[!J[cS{(H6kA?HR]oo-KTm ".bitXmDwc+ T_PLez`FP{nw_jj͋;J劂ucm"l!'iW %@8 *)@}S]f,/ +sN'`z[9d7owbP :fDA:~ PĩLb_"lkzG?xVwD$2S#J 0 Ix0W>}Ң.ܯ=PfQΑہ'2/1~Yf )W!2YX)eۭ#xSF{}0m솫toяt 8[XzpffQνlIЖ٪_E@-^Gruy?(r8Vs pFAYka9^a8tޅAWU)+;e>~P\T^2:\doc`Vט_]Yv OمgD{V Wʎyv^JƟHg&)IXD*(fu@IDdyCq3HC\yjJ6~r<(-zZnfp)%,cICwݴᏛA\=w͐`K]gX r@6kӽj>wV:M >pZidIwx)zY; }iȞO;K@ɒhRk{zg |p8òq1!=V$Wq261J(Waޙt|V%w~7Rm]Cc/Y+/T˖ueum:Lj< .RUdUHzND$i ?,!ZźA4K8oJ{}MuFTȔ(a93?;핻F6gM6hLoX˩&5\58W~"B)ABL%¿KhƑNqEށ۱I> #fϗUyDKѝOҧ980fNBJs-jh&dY  F'bzʥ.u (jeъ h"3K^qld5DQSN~󖈨m7ոfjji9"M>)*4Kझd6w% iCn^(idX E^v -(:hY *YmPZl}],~LsJ=q_8z _=\ͯkg !hv{("RoQOyB0޷>΀#S5KӅ: /vfR*AnSx=P`C#SLZ.؝: u%XcxZfY!T3&Cy0aUA D-H(>ucmSWAUaܑ/3Z܀iT4=N ,2F"H#MxtD!|B8= {w@VjH*n.<>|_ 3siJFnXZj{ᮨ̪6l2o&By>9q{Nl16ULjrk`P/8- ōJҪb˟5#$0ŕ%JD?`Ŕ{bU+}MgtD6K K;׈rY-Uxpv^ix+e65[앝M? ~;4}V+f:1ƣc Z,\*[>}cc^%շqf%BDo*XQ#cUN8 wՅT7B(#i$**$&&0WnR{2vT82{ΧD%yr;qEaۓz=&L.j &s!  !Zg‚Ee+f{WisRT} W+Ԡ*!Wq`1bS4] BGr ܡ+ozY vyFTHW?jO֠HA%l=KOz]s0 / cVt=,q.#ܵySi磐 vϢox++@Zw=xC2ȎC2;/r\ZA `͒k (==B4s`Iy .DR&#XchD`[ 7eʐ'3M#ǼAۭvf @&ao_$޴.ej)~X "|%.I]kB_lr5ָ|sVT eOGY(nZc̻ jFC'WkdU;t(*ǮJ 3fk'ݽWSw|Ly XxgĄ pT(ꨉien!zaiCLHzy0qV)=wpYC"%)-^\:Օ0~ $`Y\ոOF)a}iIstt57g.#.ye ـxAiaPA7rTLLf~4JL@h0mV_{ޝ0dn7kHv=4A e lj 1F~S l ÞW9U'yEPK8tG-W_iE8wpS= {@ѕZz5+w[nY&=c-0||֞