bcc-docs-0.22.0-150400.1.9 >  A bvp9|9hXp;t?dd   C .4<X f t    <_K(g8pD9D: ~DFGHI$X,Y4\X]t^bcde f#l%u8vTz`Cbcc-docs0.22.0150400.1.9BPF Compiler Collection documentationDocumentation on how to write programs with the BPF Compiler Collection.bvVs390zl37SUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Documentation/Otherhttps://github.com/iovisor/bcclinuxs390x V#KZtA큤bvVaBaBaBaBaBaB994a0c39dce4a66bce5f887b46bb793ddc0b36d35a3a7ece1ab914f05efba096b60fa3b29859103eabd036f36b33e94432ab19b1f6723ff68212ec3c08584e4a114dd6bcb4da22127c8b28057fd33c650176a7e3201ae317cd730d5fdc734360915bad61c14145c091c468660ec16f192d06fac7566ec7a5eac8c20e66e8d577e1989f3f00b204d2170966410e96be816e0ca370f689cc9c4352ecf827ed44bc0eca65a15c3a670bea27ac806e027dc1b75ace9ef520e874c92ba746c132dc3drootrootrootrootrootrootrootrootrootrootrootrootrootrootbcc-0.22.0-150400.1.9.src.rpmbcc-docsbcc-docs(s390-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3aV@aD@aD@`@`@`a@_@__m_-B@^@^@^@^1^^F^%@^@]q]@]]c@\]@\@\M\\@n@\=@[[;@[(@Za@Z2@ZZ`@Z_@Z|;ZaZ8@Z3@Z)-@Z%8Z!D@Z Z@ZC@YY5GX•@X @X @XF@X@W WҤ@W/@W Wo@V@V޾VVŲ@V@V_V@VqR@V\:@VI@V*!@shung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.commimi.vx@gmail.comidonmez@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comjengelh@inai.deasarai@suse.comasarai@suse.comglin@suse.comglin@suse.commsrb@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgglin@suse.comglin@suse.comglin@suse.comglin@suse.commanfred.h@gmx.netglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.com- Use shared libbpf library instead of building it along with bcc + Delete libbpf-0.5.tar.gz - Fix build on i586 due to use of shared libbpf library + Do-not-export-USDT-function-when-ENABLE_USDT-is-OFF.patch- Update to 0.22.0 + Support for kernel up to 5.14 + add ipv4/ipv6 filter support for tcp trace tools + add python interface to attach raw perf events + fix tcpstates for incorrect display of dport + new options for bcc tools runqslower, argdist + new libbpf-tools: filetop, exitsnoop, tcprtt + doc update, bug fixes and other tools improvement- Update to 0.21.0 + Support for kernel up to 5.13 + support for debug information from libdebuginfod + finished support for map elements items_*_batch() APIs + add atomic_increment() API + support attach_func() and detach_func() in python + fix displaying PID instead of TID for many tools + new tools: kvmexit.py + new libbpf-tools: gethostlatency, statsnoop, fsdist and solisten + fix tools ttysnoop/readahead for newer kernels + doc update and bug fixes - Update libbpf to 0.5 + 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. + 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. + 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.- Update source URL for bcc and libbpf- Update to 0.20.0 + Support for kernel up to 5.12 + Some basic support for MIPS + added bpf_map_lookup_batch and bpf_map_delete_batch support + tools/funclatency.py support nested or recursive functions + tools/biolatency.py can optionally print out average/total value + fix possible marco HAVE_BUILTIN_BSWAP redefine warning for kernel >= 5.10. + new tools: virtiostat + new libbpf-tools: ext4dist + doc update and bug fixes - Update libbpf to 0.4 + BPF static linker APIs; + subprogram address relocation support (e.e., for use with bpf_for_each_map_elem()); + support for extern kernel functions (a.k.a. BPF unstable helpers); + TC-BPF APIs; + ksym externs support for kernel modules; + BTF_KIND_FLOAT support; + various AF_XDP (xsk.{c, h}) improvements and fixes; + btf__add_type() API to copy/append BTF types generically; + bpf_object__set_kernel_version() setter; + bpf_map__inner_map() getter; + __hidden attribute for global sub-program forces static BPF verifier verification; + static BPF maps and entry-point BPF programs are explicitly rejected. + libbpf will ignore non-function pointer members in struct_ops; + Makefile fixes for install target; + use SOCK_CLOEXEC for netlink sockets; + btf_dump fixes for pointer to array of struct; + fixes for some of xxx_opts structs to work better with debug compilation modes; + ringbuf APIs fixes and improvements for extreme cases of never ending consumption of records; + BPF_CORE_READ_BITFIELD() macro fixes.- Update to 0.19.0 + Support for kernel up to 5.11 + allow BCC as a cmake subproject + add LPORT support in tcpconnlat and tcpconnect + added bpf_map_lookup_and_delete_batch support + new tools: virtiostat + new libbpf-tools: cpufreq, funclatency, cachestat + add install target to libbpf-tools + a few lua fixes + doc update and bug fixes - Set ENABLE_NO_PIE to "OFF" to enable PIE for bcc-lua (bsc#1183399)- Update to 0.18.0 + Support for kernel up to 5.10 + add bpf kfunc/kretfunc C++ example + add PT_REGS_PARMx_SYSCALL helper macro + biolatency: allow json output + biolatpcts: support measuring overall latencies between two events + fix build when ENABLE_CLANG_JIT is disabled + doc update and bug fixes - Update libbpf to 0.3 + kernel modules BTF support on all levels + ring_buffer__epoll_fd() API + xsk_socket__update_xskmap() and xsk_setup_xdp_prog() APIs + New BPF helpers: - bpf_task_storage_get() and bpf_task_storage_delete(); - get_current_task_btf(); - bpf_bprm_opts_set(); - bpf_ktime_get_coarse_ns(); - bpf_ima_inode_hash(); - bpf_sock_from_file(). + ring_buffer__poll() returns number of consumed records correctly + handle corner-case case with unused sub-programs + xsk_socket__delete() bug fixes- Update to 0.17.0 + Support for kernel up to 5.9 + usdt: add uprobe refcnt support + add bpf iterator C++ support + new bcc tools: tcprtt, netqtop, swapin, tcpsynbl, threadsnoop + tcpconnect: add DNS correlation to connect tracking + new libbpf-tools: llcstat, numamove, runqlen, runqlat, softirgs, hardirqs + doc update, bug fixes and some additional arguments for tools - Update libbpf to 0.2 + full support for BPF-to-BPF function calls, no more need for __always_inline; + support for multiple BPF programs with the same section name; + support for accessing in-kernel per-CPU variables; + support for type and enum value CO-RE relocations; + libbpf will auto-adjust CO-RE direct memory loads to adjust to 32-bit host architecture; + BPF_PROG_BIND_MAP support, .rodata will be bound automatically if kernel supports it; + new APIs for programmatic generation of BTF; + support for big-endian and little-endian endianness in BTF; + sleepable fentry/fexit/fmod_ret/lsm BPF program. - Enable lua support only for Tumbleweed to close the gap between SLE and openSUSE Leap- Update to 0.16.0 + Support for kernel up to 5.8 + trace.py: support kprobe/uprobe func offset + support raw perf config for perf_event_open in python + add BPFQueueStackTable support + added Ringbuf support support + libbpf-tools: readahead, biosnoop, bitesize, tcpconnlat, biopattern, biostacks + bug fixes and some additional arguments for tools - Update libbpf to 0.1.1 + __ksym extern variables support for getting kernel symbol addresses; + BPF XDP link support; + bpf_program__set_autoload() to disable loading and verifying specific BPF programs; + support for attaching map elements BPF iterator programs; + new getters/setters for more control over BPF map definitions; + all destructor-like APIs (e.g., perf_buffer__free() and bpf_object__close()) now accept pointers returned on error (in addition to NULL and valid pointers) and ignore them, no need to guard destructors with extra checks now; + bpf_link__detach() for force-detaching link, while it's still alive; + btf__parse_raw() and btf__parse() APIs for more convenient and flexible BTF parsing. + fix an issue with loading XDP programs on older kernels. + CO-RE relocations in .text section (in sub-programs) are now performed properly; + vmlinux BTF is not loaded unnecessarily twice; + perf_buffer__new() can be used on old kernels down to at least 4.9 version; + libbpf's internal hashmap fixes for 32-bit architectures; + few BTF sanitization bugs and memory leaks fixed; + btf_dump handling of GCC built-in types for Arm NEON fixed; + BTF-defined map-in-map initialization fixed for 32-bit architectures; + various BTF fixes for 32-bit architectures.- Modify URLs to get the tarballs with names not just versions - Drop _constraints + We don't link the static clang libraries anymore and this reduces the requirements of hardware. - Drop the unused _service file- Update to 0.15.0 + Support for kernel up to 5.7 + new tools: funcinterval.py, dirtop.py + support lsm bpf programs + support multiple pid/tids for offwaketime + usdt: add helpers to set semaphore values + turn off x86 jump table optimization during jit compilation + add support to use bpf_probe_read[str}{_user,kernel} in all bpf + programs, fail back to old bpf_probe_read[_str] for old kernels + tools: add filtering by mount namespace + libbpf-tools: cpudist, syscount, execsnoop, vfsstat + lots of bug fixes and a few additional arguments for tools - Update libbpf to 0.0.9 + BTF-defined map-in-map support; + bpf_link support expanded to support new kernel BPF link objects; + BPF_ENABLE_STATS API; + new BPF ringbuf map support, added ring_buffer API for consuming; + bpf_link-backed netns attachment (flow_dissector). + bpf_object__load() better error code propagation; + few memory leaks and corruptions fixed; + register naming in PT_REGS s390 macros; + .bss pre-setting through skeleton is now supported as well. - Drop upstreamed patch + bcc-bsc1172493-Make-reading-blacklist-optional.patch- Add bcc-bsc1172493-Make-reading-blacklist-optional.patch to make reading kprobe blacklist optional so that the bcc scripts can work with the locked down kernel (bsc#1172493)- Amend the sed rule for python3 shebang- Update to 0.14.0 + Support for kernel up to 5.6 + new tools: biolatpcts.py + libbpf-tools: tools based on CORE and libbpf library directly + add --cgroupmap to various tools, filtering based cgroup + support kfunc (faster kprobe) for vfsstat, klockstat and opensnoop + lots of bug fixes and a few additional arguments for tools - Update libbpf to 0.0.8 + Add support for BPF-LSM + CO-RE relocation edge cases + expected_attach_type handling fixes at load time + fixes in hanling kernels without BTF support + internal map sanitization improvements - Drop support-clang9.patch + Upstream fixed it in another way.- Update to 0.13.0 + Support for kernel up to 5.5 + bindsnoop tool to track tcp/udp bind information + added compile-once run-everywhere based libbpf-tools, currently only runqslower is implemented. + new map support: sockhash, sockmap, sk_storage, cgroup_storage + enable to run github actions on the diff + cgroupmap based cgroup filtering for opensnoop, execsnoop and bindsnoop. + lots of bug fixes. - Update libbpf to 0.0.7 + Major new features: - BPF skeleton support; - Kconfig extern variables support; - STRUCT_OPS support; - support for BPF program extensions; - cgroup MULTI-mode support (bpf_prog_attach_xattr() API). - bpf_send_signal_thread() BPF helper; + Usability improvements: - BPF CO-RE improvements (flexible array, LDX/ST/STX instructions, improved conditional relocations); - generic bpf_program__attach() API; - SK_REUSEPORT program type support; - bpf_link_disconnect(); - bpf_find_kernel_btf() API exposed; - large instruction limit probing added; - improved error message for RLIMIT_MEMLOCK. + Fixes: - fix perf_buffer handling of offline/missing CPUs; - various other fixes and usability improvements. - Drop upstreamed fix: bcc-fix-test_map_in_map.patch- drop python2 bindings - don't require python3-devel package- Fix build when pkg_vcmp is not defined- Update to 0.12.0 + Support for kernel up to 5.4 + klockstat tool to track kernel mutex lock statistics + cmake option CMAKE_USE_LIBBPF_PACKAGE to build a bcc shared library + linking with distro libbpf_static.a + new map.lookup_or_try_init() API to remove hidden return in map.lookup_or_init() + BPF_ARRAY_OF_MAPS and BPF_HASH_OF_MAPS support + support symbol offset for uprobe in both C++ and python API, kprobe already has the support + bug fixes for trace.py, tcpretrans.py, runqslower.py, etc. - Update libbpf 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 - Replace lua51-luajit-devel with luajit-devel to reflect the recent change in Factory (bsc#1159191) - Add bcc-fix-test_map_in_map.patch to fix the build error in the test case- Enable USDT for s390x since 0.10.0 already supports it- Add support-clang9.patch and apply it for llvm >= 9 - Fix sed call for python- Update to 0.11.0 + Support for kernel up to 5.3 + Corresponding libbpf submodule release is v0.0.5 + Fix USDT issue with multi-threaded applications + Fixed the early return behavior of lookup_or_init + Support for nic hardware offload + Fixed and Enabled Travis CI + A lot of tools change with added new options, etc. - Update libbpf to 0.0.5 + bpf_btf_get_next_id() API to iterate over system's BTF objects + libbpf_set_print() now returns previously set print callback + libbpf versioning, build, and packaging improvements + convenience helpers for working with BTF types + experimental BPF CO-RE relocation support + various AF_XDP fixes and enhancements + BTF-defined maps + tracing attachment APIs and bpf_link abstraction + perf buffer API + BTF-to-C conversion API + btf__parse_elf API for loading .BTF from ELF files + libbpf_num_possible_cpus() added + passing through prog_flags through bpf_object__open + new attach types detection added - Use version for REVISION instead of libversion- Update to 0.10.0 + Support for kernel up to 5.1 + corresponding libbpf submodule release is v0.0.3 + support for reading kernel headers from /proc + libbpf.{a,so} renamed to libcc_bpf.{a,so} + new common options for some tools + new tool: drsnoop + s390 USDT support - Update libbpf to 0.0.3 + Also add the source url of libbpf - Drop upstreamed patches + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch - Drop bcc-libbpf0 since upstream dropped the so file - Enable SMP build flags since we don't need static clang anymore- Add upstream patches to improve python3 compatibility + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch- Update to 0.9.0 - Add libbpf-5beb8a2ebffd.tar.gz since libbpf became a submodule of bcc - Drop bcc-bsc1080085-import-readline-from-lib.patch + Upstream provide an additional argutment for the shared readline- Correct the library version- Remove unnecessary use of xargs. - Remove idempotent %if..%endif guards. - Update descriptions for grammar.- Update to 0.8.0. - Remove upstreamed patches, and un-needed ones. - bcc-check_int128.patch - bcc-python3.patch (replaced with sed pipeline) - bcc-install-additional-headers.patch (bpftrace has fixes now)- Switch to %license over %doc for licenses. - Add upstream patch for bpftrace builds. boo#1117223 + bsc-install-additional-headers.patch- Update to 0.7.0 - Refresh bcc-python3.patch - Drop upstreamed patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Remove bcc-bsc1065593-llvm4-hack.patch and set ENABLE_LLVM_SHARED - Remove COPYRIGHT.txt which was dropped by upstream- Update to 0.6.0 - Add upstream patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Drop upstreamed patches + bcc-fix-build-for-llvm-5.0.1.patch + bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch + bcc-bsc1080085-backport-bytes-strings.patch + bcc-bsc1080085-detect-slab-for-slabratetop.patch + bcc-bsc1080085-fix-cachetop-py3-str.patch + bcc-bsc1080085-fix-syscount-str.patch - Refresh bcc-python3.patch- Add bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch to fix build with LLVM6.- Add bcc-bsc1080085-fix-syscount-str.patch to convert ausyscall output to string (bsc#1080085)- Only enable bcc-lua for openSUSE (bsc#1085810) - Amend the spec file to enable bps only for Tumbleweed (bsc#1085403)- Add bcc-bsc1080085-import-readline-from-lib.patch to read the symbol "readline" from libreadline. (bsc#1080085) - Add bcc-bsc1080085-detect-slab-for-slabratetop.patch to detect the current memory allocator and include the correct header. (bsc#1080085) - Make bcc-tools require audit since syscount.py needs ausyscall to get the syscall list. (bsc#1080085)- Add bcc-bsc1080085-backport-bytes-strings.patch and bcc-bsc1080085-fix-cachetop-py3-str.patch to fix the python3 compatibility issue (bsc#1080085)- Update bcc-python3.patch to make python3 default for all the python scripts (bsc#1079961)- Add bcc-fix-build-for-llvm-5.0.1.patch to fix the compilation error against llvm-5.0.1- Replace clang4-devel-static BuildRequires with clang-devel-static: use the unversioned one, folling the llvm meta package version (like all the other llvm/clang packages in the build chain).- Request at least 10GB disk since the clang4-devel-static needs more than 3GB and sometimes caused build fail (FATE#322227)- Request at least 4G RAM for the s390x build (FATE#322227, bsc#1070362)- Tweak the installation path of bps directly instead of installing it manually. For those architectures without luajit, %{_bindir} wasn't created and it failed the previous install command. (FATE#322227, bsc#1070362)- Update to 0.5.0 (bsc#1070563) + Explain possible reason of an error in scripts that rely on /proc/kallsyms + bpf: fix a couple of issues related to arm64 + bpf: Add support for prog_name and map_name + Add a few introspection helpers + Introduce BPF Program Snapshot helper (bps) + Trace external pointers through maps + Merge BType, Map, and Probe Consumers + Fix exception handling in python3 + Add usdt support for ARM64 + bpf: make test py_test_tools_smoke pass on arm64 + Add soname to libbpf.so + Fix Module display for unreadable Modules + Use bpf_prog_load_flag in APIs + Add flag to enable verifier log_level 2 + bpf: use MCJIT explicitly for ExecutionEngine + change frontend rewriter to better handle anonymous struct/union + Move BCC debug options to an installed header file + use user-provided log_level in bpf_prog_load + Add utility for cc tests to read command outputs + Fix 'test_libbcc' from failing due to symbol name mismatch + Update perf event type and config checks + libbpf: Support unbound raw socket creation + force linking the whole api-static library into shared library + man/bps: Add a man page for introspection/bps.c + Do not keep Loader instances around + python: make _decode_table_types aware of __int128 + python: Avoid unnecessary pointer object creations - Only exclude ppc and s390 build (FATE#322227, bsc#1070362) - Add _constraints to reserve 2GB memory for linking with clang4-devel-static - Rename armv7.patch as bcc-check_int128.patch to check if the compiler support int128 or not - Drop upstreamed patches: + bcc-bsc1065593-switch-to-mcjit.patch + bcc-add-soname-to-libbpf.patch- Add patch (bcc-python3.patch) to explicitly use "/usr/bin/python3"- Use the python3 package by default - Provide and obsolete python-bcc (it's python2-bcc now)- Update to 0.4.0 + Fix helper to access stack pointer for powerpc + bpf: rename helper function bpf_get_stackid + bpf: print out the src debug info to a temporary file + attempt to compile with system bpf.h if default compile failed + sync src/cc/compat/linux headers with latest net-next + Fix segfault with enumerations + Allow BCC to parse vDSO symbols + libbpf: print error to error stream + Avoid potential SEGFAULT when resolving Kernel symbols + Fix 'tools/statsnoop' from failing to attach kprobes + Update USDT argument constraint for powerpc and powerpc64 + examples:dns_matching: make it work as DNS sniffer + add debug option to dump asm insns embedded with source + examples:dns_matching: helper function for adding cache entry + Traces external pointers in parenthesized expressions + examples:dns_matching: fixed loop break condition + Fix bcc_resolve_global_addr on shared libraries + BCC macro for the creation of LPM trie maps (#1359) + bpf_probe_read*: src argument should be const void *. + hardirqs, softirqs: Fix distribution mode units handling + Add a generic utility to check any binary availability + Fix 'test_debuginfo' from failing if a symbol has multiple aliases + nfsdist tool (#1347) + annotate program tag + add helpers to access program tag + examples: fixed http_filter example + nfsslower: trace slow NFS operations + Update after lookup in map.increment for HASH types + fix a bug introduced by previous lua-bcc build fix commit + Better check for compiler standard support + fix lua-bcc build issue with cmake try_compile + Fix segfault on incomplete types + Trace external pointers from helpers + Allow the flags to be specified in remove_xdp() + bcc-lua: --no-pie, not -no-pie + solisten, tcpconnlat, tcpretrans: Remove unnecessary bpf_probe_reads - Add the new subpackage libbpf0 - Add bcc-bsc1065593-llvm4-hack.patch to work around the llvm libraries searching issue (bsc#1065593) (Also add clang4-devel-static to BuildRequires) - Add bcc-bsc1065593-switch-to-mcjit.patch to switch from OrcJIT to MCJIT. OrcJIT actually doesn't work for bcc, and the bug was covered until we start to use the unified LLVM shared library. (bsc#1065593) - Add bcc-add-soname-to-libbpf.patch to install the shared library properly - Update the group of packages - Disable USDT for ARM and AArch64 since it's not ready.- Update to 0.3.0+git1502955391.9de830a + avoid large map memory allocation in userspace + python - set attach_xdp's default flag value to 0 + have uniform uprobe event names for python and C++ + Remove extra S_MAXSTAT array allocation in some tools + Omit include of ptrace.h for empty usdt contexts + Add clang check for -nopie option + Correct commit id for BPF_FUNC_get_socket_cookie + tools/tcptracer: add timestamp option + Since LUA_GLOBALSINDEX is obsolete from Lua 5.2, use lua_getglobal function instead. + better state default value handling + add --state to offcputime + tcptop: Filter out negative values in receive probe + tcptop: Cleanup argument parsing + Use unsigned conversion specifier for nlmsg_pid + Fix wrong netlink port id check + 1. Use more safe snprintf instead of sprintf; 2. Modify procfilename buffer length in bcc_procutils_language function. + permit multiple pids attaching to the same probe + generate proper usdt code to prevent llvm meddling with ctx->#fields + MySQL tracing without USDT (#1239) + Fix a clang memory leak + Update bpf.h and virtual_bpf.h to 4.13-rc1 + Fix trace.py for library filenames containing colons (#1252) + cc: Add open_perf_event to the C/C++ API (#1232) + memleak: expand allocator coverage (#1214) + libbpf: fix build warning on setns (#1246) + usdt: Use ProcMountNS + proc: Enhance bcc_mapping_is_file_backed + Fix bcc.lua build issue in Ubuntu 17.04 + Added helpers for BPF_PERCPU_ARRAY (#1230) + Add an option to strip leading zeros from histograms (#1226) + gethostlatency was rounding to full ms + Change clang frontend optimization level from 0 to 2 + fix cc: error: unrecognized command line option -no-pie + fix incorrect code generation in usdt- Update to 0.3.0+git1496334311.6fa3681 + Improve PerfEventArray clean up + make libbpf standalone-ready + Add support for generic XDP mode + Add option to control bcc_elf_foreach_sym behavior + Add bpf_get_first_key helper + Enable recursive scanf support for char[] as string + Fix computation of LUAJIT_INCLUDE_DIR + cc: Work around verifier error when reading USDT probe arguments + Disable non-static function calls + Added the option(USINGISYSTEM) of Cmake for controling whether using -isystem. (#1064) + softirqs: Migrate to kernel tracepoints instead of kprobes (#1091) + lua/bpf: implemented packet direct access + lua/bpf: support for NET_OFF for dissector + KVM hypercall analysis example (#1082) + cc: add support for prog table + cc: add support for array table + Add TableStorage class for wrapping bpf map tracking + funcslower: Trace slow kernel or user function calls + map.insert bcc helper to expose the BPF_NOEXIST flag (#1085) + bcc container improvements (#1051) + cc: define load_func and unload_func public + Python 3 compatibility fixes around string handling (#986) + Verify format specifiers in bpf_trace_printk in rewriter + Add build option for installing C++ examples + bpflist: Display processes with running BPF programs and maps + python: Allow module=None when resolving kernel symbols + mdflush: Add missing #include - Enable AArch64 build (FATE#322227) - Remove remove-isystem.patch since it can be controlled by the cmake option now. - Add gcc-c++ to the BuildRequires and switch to gcc/g++- Update to 0.3.0 + Added s390x support. Needs 4.10 Kernel + Restrict rewrite of unary operators to dereference operator + cmake: Explicitly mark static libraries as such + Fix bpf_dins_pkt rewrite in BinaryOperator + cc: Symbol resolution with multiple executable regions per module + cc: Fix assertion for debug builds + cc: Don't parse the same module multiple times for USDT probes + add XDP return values to python interface + python: handle null module in BPF.sym + filetop: support specifying sort column via cmdline argument + cc: Retry symbol resolution using perfmap + cc: Handle nested functions correctly when resolving symbols- Add remove-isystem.patch to unconditionally removing -isystem, looks like the gcc check is broken. - Add armv7.patch to disable __uint128_t usage which does not exist on ARMv7. - Always use clang as C compiler, note that the build system will always use clang++ ad CXX compiler if it finds it.- Update to 0.2.0+git1488325605.4d0d430 + Fix long running test_debuginfo and python3 fix + Make perf ring buffer size configurable + docs: Update eBPF features list + Improve matching of file-backed memory mappings + Fix symbol resolution by name (SymbolCache.resolve_name) + cc: Resolve symbols from external debuginfo + cc: Correctly treat PIE files as shared objects for symbols + Migrate to new symbols resolution API + Simplify BCC symbol resolution API + trace, argdist: Treat small USDT arguments correctly + Support base + index * scale addressing for USDT arguments + cc: Fix SEGV when there is no build-id section + syscount: Summarize syscall counts and latencies + u* tools: PHP support + bcc: add support for lpm trie map type + cc: Support for __data_loc tracepoint fields + Fix python2/3 incompatible percpu helpers + fix iteration over CPUs + Fixes for LLVM 4.0 and python3 + Update [virtual_]bpf.h to 4.10 + add bpf_obj_pin/bpf_obj_get to pin/get bpf objects + uobjnew: Attach uprobe only to the requested process + uflow: Trace method execution flow + ustat: Activity stats from high-level languages + ugc: Monitor GC events in high-level languages + ucalls: Summarize method calls with USDT + Example of using USDT + Add USDT support to C++ API + Improve linear histogram limit, and improve error message + add runqlen tool + docs: Update eBPF features list + Improve C++ API perf buffer polling + add support for bpf map flags + Fix bug of missing to install simple_tc.py + Add support for aarch64 + Avoid unexpected log message on BPF program load error + Add lru_hash/lru_percpu_hash to python/lua + bcc: add lru_hash and lru_percpu_hash map types - Remove the clang workaround since llvm 3.9.1 supports gcc c++11 abi tag. (bsc#935533) - Enable PowerPC64 and PowerPC64le build- Move manpages back to /usr/share/bcc/man since trace.8 is conflicted with the one from postfix.- Update to 0.2.0+git1480569532.5647de0 + profile: -p should match user PID + tcplife: reorder logic to catch missed timestamps + hello_perf_output: match the data type of pid + Remove debug flag override in bcc_exception.h + Use StatusTuple constructor in mkstatus_ + Implement StatusTuple class instead of using std::tuple + biotop.py: fix compiler error on newer kernels + Determine kernel dirs at runtime (fix #743) + Rename exception.h to bcc_exception.h + tcplife.py: Catch passive closed by server, #788 + Install exception.h and common.h + Fixup test errors in clang, c api + trace: Avoid passing -1 as the pid to USDT + Fix Tracepoint example (#809) + cc, python: Clean up BPF module and tables + Fix warnings covered by -Wdelete-non-virtual-dtor + Fix argument type for increment() in documentation (#794) + trace: add pid/tid filtering, fix symbolizing, misc nits (#798) + Expose destruction of SymbolCache in libbcc + perf_reader: install perf_reader.h + Use headers from BCC in installed files (#793) + funccount: Bail early if there are no matching functions (#792) + python: Grab all keys before zeroing + funccount: Switch to BPF array instead of hash + Update profile.py to use new perf support (#776) + Example for using BPF perf event + funccount: Do not prepopulate location cache + python: Filter duplicate in get_kprobe_functions + Python API for BPF perf event + Add bpf_attach_perf_event in libbpf + Add BPF_PROG_TYPE_PERF_EVENT to bpf_prog_type enum + add tcplife (#773) + add reset-trace (#766) + funccount: Verify probe max limit (#771) + python: Fix kprobe quota test breakage, add uprobes + funccount: Generalize for uprobes, tracepoints, and USDT + bcc: Make regex helpers publicly accessible + stackcount: Style fixes for linter (pep8) + fix profile.py page_offset_base breakage (#768) + trace, argdist: -I switch for trace and miscellaneous fixes (#761) + cc: Support glob+offset format in USDT arguments (#753) + Support filtering by process ID in the filesystem slower tools (#756) + trace: STRCMP helper function + mysqld_slower: Fix breakage after USDT API change + trace: Add %K and %U format specifiers (#742) + Update opensnoop to filter by PID and TID (#739) + funclatency: user functions support (#733) + tplist: Print USDT locations and arguments (#734) + src/lua: LuaJIT BPF compiler, examples, tests (#652) + stackcount: Support uprobes, tracepoints, and USDT (#730) + trace: Initialize USDT arguments to 0 before reading (#725) + argdist, trace: Native tracepoint support (#724) + argdist: Cumulative mode (-c) (#719) + trace: Print USDT arg helpers in verbose mode (#723) + argdist, trace: Support naked executable names in probes (#720) + docs: Update eBPF features list by kernel version (#717) + fixup the issue in which distributed_bridge example (#716) + Fix bpf_common.cc include style (#715) + Fix argdist, trace, tplist to use the libbcc USDT support (#698) + [tcpconnect] filter traced connection based on destination ports + Fix bpf log buffer for large bpf program: (#680) + opensnoop: Introduce process name filtering - Exclude the cpp examples from installation - Remove the isystem path since we are using clang++ - Install the manpages correctly - Improve the spec file to search the luajit pathes and fix some dependency issue in Leap 42.2 - Remove "-DBCC_KERNEL_HAS_SOURCE_DIR=1" since bcc can detect the kernel dir dynamically now.- Add llvm-gold to the BuildRequires since the package was split from llvm since 3.8.1- Update to 0.2.0 + examples: fix indentation in tracing/tcpv4connect + fileslower/filetop: use de->d_name.name, add filtering- Update to snapshot v0.1.8+git1472097662.4ebb7cf + fix biosnoop after kernel change + offcputime improvements: use less RAM, add PID/TID support + Add perf_submit_skb + Adjustments to the documentation + fix build with 4.0 llvm trunk + frontends/clang: Safety check for invalid opLoc in ProbeVisitor + Tool to sniff data contents before encrypted with OpenSSL or GnuTLS + Add bpf_get_current_task() helper definition + USDT Python API and example + Lua Tools for BCC + BPF: better format for `ksymaddr` + table: Implement a StackWalker for StackTrace tables + added percpu support in bcc + Fix error handling when attaching {u,k}{,ret}probes + Fix python3 incompatibilities + Update headers with 4.5+ features + Add v6 headers to proto.h + Use pre-calculated function addresses in funccount + Add name to address ksym helper + Add a table.zero() function to bcc.TableBase + Enforce limit of 1000 open [uk]probes - Drop upstreamed bcc-kernel-header-search.patch - Add bcc-docs to collect the documentation - Add bcc-lua to process the lua scripts - Add the license files to libbcc0- Use the upstream tarball and add the URL - Amend the description of the pacakge - Use the right group for libbcc0- Remove "strip" from "make install" to enable debuginfo- Switch to clang to avoid the c++11 tag issue (bsc#935533) - Update bcc-kernel-header-search.patch to include headers in /lib/modules/$(uname -r)/build/- Replace bcc-suse-kernel-headers.patch with the upstream fix, bcc-kernel-header-search.patch, and add "-DBCC_KERNEL_HAS_SOURCE_DIR=1" to cmake. - Fix the formation in the spec file- Update to version 0.1.8 + http_filter renamed, README fixed + Migrated filelife to bpf_perf_event + migrated to use bpf_perf_events + Migrated killsnoop to bpf_perf_event + Print traceback only if verbose mode was requested + trace: trace function execution with custom format strings and filters - Add back python3-bcc - Make python-bcc require libbcc0- Update to version 0.1.7+git1455766673.13e74d3 + use __builtin_memcpy() instead of unrolled loop + http filter example + Add bpf_module.h to CMakeLists.txt + different man formats + Fix segfault in ~BPFModule on syntax error + Add bitesize tool + Support array and pointer types in scanf generated function + Add biotop tool + Added memory leak tracer + Fix python map.items() racing with bpf delete + Don't show allocations newer than a configurable age + Add bpf_get_prandom_u32 to helpers + Added --stack-depth switch to control the number of stack frames captured for each allocation + Fixed long arg name from stack_depth to stack-depth + Added option to display only top N stacks by size + use bpf_perf_event_output() instead + save one bpf_probe_read() + 3 tools: oomkill, dcstat, dcsnoop + Implemented histogram functionality, including strings; added examples + Added ret probes + Renamed to argdist.py, updated command-line switches, added kernel probe pid filtering, added verbose mode that prints the BPF program + ext4 and xfs tools + tcp to bpf_perf_output + 3 tools: tcpretrans, zfsslower, zfsdist + inline C in /tools + 2 tools: btrfsdist, btrfsslower + Split bcc/__init__.py into multiple files + Split bcc.table.BPFTable into multiple type-specific classes + Support native integer indexing in table.Array type + Fix breakage in open_perf_buffer + Embed runtime header files in libbcc.so - Add bcc-suse-kernel-headers.patch to fix the kernel header path - Drop bcc-workaround-gcc5-abi.patch since it never works... - Drop the dependency of bcc-devel from python-bcc- Update to version v0.1.7+git20160131.143df80 + Updates to use cmake GLOB and libbcc.so.0 in python init + Add decode() to ascii string in offcputime.py + Add libbpf.c support for uprobes + Add python support for attaching bpf programs to uprobes + Fixes for address calculation + Fixup objdump calling syntax and add docstrings + Add uprobe strlen histogram example + Update test_dump_func to be python3 compatible- Update to version v0.1.7+git20160119.f50ca1f + fix pep8 lint errors in the rest of the tools + Close fd and unshare when public map is destructed + stack walker typo and improvement + optimize code, remove unnecessary filter check + add -u, and change from 2 to 1 traced funcitons- Update to version v0.1.7+git20160110.a0aa7f2 + Remove runtime dependency on gcc stdarg headers and make + Add ability to set custom cflags when loading programs + Add ability to export maps, enables cross-program sharing + Rename BPF_EXPORT to BPF_TABLE_PUBLIC + fix pep8 lint errors in biolatency and biosnoop - Remove make from Requires of python-bcc- Update to version v0.1.7+git20151210.23b87e5: + Fixup dependencies of bcc-tools package + Automatically bump memlock ulimit + fixed bugs in control-flow generation + Fix breakage from LLVM 3.8 API change + make sure LDFLAGS are propagated as well + Improve json type support for misc struct/union types + Drop broken p4/docs symlink and create README.md+URL - Drop upstreamed bcc-honor-external-cflags.patch- Udpate to bcc-0.1.7+git48.g1c7debd - Add python-future as the Recommends for bcc-examples so that the scripts can be compatible with python 2 and python 3. - Remove python3-bcc- Update to bcc-0.1.7+git34.gfa9684d - Add bcc-workaround-gcc5-abi.patch to work around the old c++11 abi in clang - Add bcc-honor-external-cflags.patch to adopt the external cflags - Drop bcc-fix-packaging.patch which is already in the tarball - Amend the requirements of python-bcc + make and kernel-devel are necessary - Add python3-bcc since the python binding is compatiable with both 2 and 3- initial import: v0.1.7 - Add bcc-fix-packaging.patch to fix versioning issue of the shared librarys390zl37 16519627100.22.0-150400.1.90.22.0-150400.1.9bcc-docsFAQ.txtREADME.mdkernel-versions.mdreference_guide.mdtutorial.mdtutorial_bcc_python_developer.md/usr/share/doc/packages//usr/share/doc/packages/bcc-docs/-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:SLE-15-SP4:GA/standard/3875f9acd8b4e0c306a8fc4aecc634a1-bcccpioxz5s390x-suse-linuxdirectoryASCII textUTF-8 Unicode textUTF-8 Unicode text, with very long linesASCII text, with very long linesPython script, ASCII text executable, with very long lines+A!T'utf-85141bab1ee2db0635690e15ae1fc3aa0b7d0de76f8da2997a76cbbe0f597e056?P7zXZ !t/㬇̑] crt:bLL ihިՐ[|L7pFP?GYeE@:4w-xjUtCp ofJǸ)OSZHd.ъH{n M5 %q,’c3g%1đ6#l@(:1{P2(,1S-̠ 8?b~c7_R6q\̯?F>u9l*Wf)wT ך7MY7ɴtVVxY@n %)7tw/B'2y7jzXuro눫ިF(ZŲl-uJ!`G` N -Vc0`J6IVL,`6J`7ҟN ⫪2۰ {ՐGC( za͗ʡBɍQڙre2`8gA ٱRԘpQ[E\FV<+Of:ءaVDI V}L]H#P+ t˛s't&DwBoW 3 LĞB#dڈ>kyt&H @%^K|-9(+A,(L!E.Lxxx }놙,GEHK5+o*an~A Y۳g~٢i扁L4:|g' %kNTVŰAoT \]NciUW,d&g 2vr oƍdUAHQ۬h(q®X6LRk!I$U=9bO9*6͂*DiolR-WJ sm #~.73g_kb\QJK%O*bXr(ׯ;\ڛP_X',J\Hhab`yz1r(~Ӻt)Fx~R^Zn# ŝI;.L W32hx ReLIKR-HޏV6^AHRKP}^- )>**q*iuM\ޑT'*ZиM/MnW_Nz4?m&0~{ؓ,fK{|.c)#ҟB3'NARb &ε4jC8-d!Wh0BTXD-cЫ%]wn05v/%AfZT/oO`jz߄nHO?u2f!8ʌRL:9'i8%{#˩ _5?wX!3,ro5Un^i4Gn~2&<ı8ɥ -1߸>zOh9" k5;C6Z:!uڐ }pD@;IY ^iF"$*abZ"ln,Nꐉ$(ǧ檣!roOZ-;$7SUxXyDm+vko\MoMk\( ZlzY 0RTN$x?"!W!`Xqt`scΑb)8m#ĺXƩ {IjvPXx\gd0ig\_]Mж[L!Z%iJ[ gZKa ɼݒ("3@8 ~H r3D]orceE,0r2. 8 cm)q'XLZ5Y#GCP`&a*9d WKcU1d7öUj}Ѽ)wf^)gTF#]rڈ*eDg  偓 gt1E2w`1.{=toLn1VDD}3 a; {Dpİ)œ@yC {R>t@3/KukodBr*,+p֨T)kTIZv jo91U'8܀B̗w' X$Cw1!%tQ~A𓟏2%˧ݺ#%vTiּ:/)ـ ҙ'{o;`) G\2[ N.Za|E 1) ܳ<{Q_u,\47$rSvɎS"Bl}`b&v뾡+(OOi mhɐBj)h[>3~*5v ޕD+c8wRMF84\#Eer^`!Faֵr^>JY7~=7,V;{C 6ᄽ}`%2^Q0Zr2ˇ%5673S"vochxNW&2L3L(@~f;[o"ގaGOonZQml,HX[ROzR@1a\n &j kr:dAUR o)q<-ӂ>֣-!hp_ >!9J$K҆䶵ݗ?.G RPNtuu O2{q4Ubo対Q#? g$j:4J+Mkة^ -$MF$ 'fF+e|O/[nnB甔X)$pdȄCzaA&@,@/4>\-6cmEۀ~9-aY#*ߍoWĨPpI6 39QkYWmGbYr2 \K2_uL4αisH\h-u䚓7RE:%q9\# DIBm1Iq(Ǥm0}CT)ojnv`5{Z8mƀY`Yu?Lm_Ѣw*p9TE88M~ҳ`tF1B ^^˫9: -ѳ$YȄ֭>3*7C81yrv*Qt i&~W"ф@ġywOh {ҫ^O'5W,)1 _ 23`s%嗕cvM[Y"X1Ԙֿ$H_n]%gq%;yAllתRWdQ O {x#l#lݳ!z8R.^@@^Xk5!o$N!`lt=Ѳ Ye>VGl3r5yU^{&)^UsGgffӆ|4zbİ_*38|nNm=8Pvd -szIk3Z["sra\q#/8ɤLM82HH nd5md0DM0`(9!jz+YTa qXk1` CLFR#D 78\/HXƣ L4q2_ A>40o 0xJaqzL0awC=h5zėwmוynZ:Φ&FVĊl5n D xHXq$⊕3ap|BBt@d+swC|e5bWJXGg`h4F=4amR/l4Z3rACq}#.E1* C!$nZVq H&(\jLAܠLEs'L%2TH#$C?eFQ"nFTH[ʸ &a"? C]bz}Y=zfUFiA7CpꮽX-(Z{ڎ*)$kuP^O G+y72ȢXnrƜ8 Uv~3|0tTe󴴟 ~q+"/>UgBt޲wJ̌wvcl֡jmV3y)wwg2C^!%m̖.\SwX 4FT, 7Q*Sg%Xede:.p&~ Idm̧򷓏ԋ(9YŘLyyw|Z%PwA62 (&X13يxs( b1f9I*yl: ;0&|Rb"46t%[4ay^{O% oAlRV5\0~ YʗuW1ܠzjt۬[sIE'6XQ/Ph฿hбm ~C'M|>h)&i88dJ+u;Rc $I`}M`&"ۜS㡥MҒxeF;^b Espb}-eryiSףI2*:Gy4዗9d&fwjPz6O'm s%sݾA6vzE,:4}oCUh4d93{,Zllݝu&I.pFCjw2fqKJK7ʞf1x\IZPkb/tul~&&8ב}h 4+ dT` V"c<-cZOpLlpt3CGo6 g Ǚ"n)`C^0s$QyKi{n,<Id]V+ LF߾#(}tn~% B|쌭j8q7Z9G.`1m?A=N"7NJw[M&Ę+qKߓ=4;팍X37AҨi+(g܊ ahS`(󫿭1RgL(Buo"D>v&yΏ..LҒX_f;coyBǕL3r>So:()AsPJR>Z^ڵO1M0739xjjgGw] q[p~,O=yڷǡڤ:q0CO9#v˭-y<;X}\U|ZwϏ{57{U!,m[6~xAoHQC};{صnnKSECY}ܧ;aTw3F`CPv%wHڵ3).1%:sOBƎ$s3K:^ćNXЍ>8h %~59$'z])_'\^"w$=І;އRcpt7 waV}"b5SjUu2Ow/suh! E\#(_Kp(hS aÆaH J>UZ\m!8<8O|`nED>5X@ rn{0X =RN+SC|礓?aqz(I87띗oTg8.VOX_+[ Uh-  \J<Ҫg8e-Li{jhM4{-jX5E K @YȰbk 6 ^5 [xr7WU\@}3Q-94:,7HjunFYčR"p璠~|OQuMҤ[ן}=D4랑~u/癋ڪ evϺHڅet K3sYO77u[I_۵YE;V%pYإRf>qYX6>ò<9K+t>cMy|l* >VAmL4G^qq5 aV|e Xn<Lphn)z!ph$F͍@݃|o;RK&RyY>x)hy^u%ʊ}(z@%5dhTa:U {Lv`ʙyW&{?[mtw\v@p;z)vv“9?n'>8i+=g1nnGn4wV::Oi8A/UWfY:tʹ3K4!>ՈڿD-lH /tYAG7.!הRg[d^/ ɕ늁b:P#BP1 g6`NjӶ?gt~aJF:s>(lxsouynݤ' bJ`bfOlAA0IA\A܍N?=,pG a)qgGü / + _"=J&;z j漋p%wA]|gk_9~}MiXzDWV,nƁďn9_ϢO>hv$I0E%E1Ш9oM>^MN?&Qpw0Y. qP|=ٙjK 61z}R2GZHa[X*Hf|]0g6 Ȗ: 냨UCFla#_| ʪNEćm` QĒY64^8G"F6]`5T*q5 ~khK:8oD_[|Ff13P3zC[6bwEMG_;ȕ-W»:]E@AGF>5Ej1>^ 1D;Eaˇk<#!Nx/(tkMp?Kzk8a*W),Ey)`K~u{_u#4ERxO6>h̎UaPe 7H5=UZeFS(W r&/TUʎiXª?!/F?w O~ j`ddf` M~ng.mhytmVm_I7Qܜ?@Zh#*r(͌M~h:װ7!>h*3^N[PQŬC Q +5#,wuO([ih.tV 5*P_'(S|g]x _NuOsaK1>.{qQ7\uowAw´Z?2(2K^MI^0wڴݝPhl< I{zzjM,$΍ ;QIPpý}TBli-~ /\E͟6 g )=?ݴX&.96]LnvGew ]RwEX3]ە]ԕougSu8ݞ>zfA55s`qړ֘ڋSO4%'Uaَ BxI!b2`.!);پyܚh bɮ iFa I'~Cfch3OyKv]vv+;Vd|QLKieaM&O?bc|L9~16kcE{mq4YWQ5DњDT-ST͚&gnk> ڃh&B 2F`w*4J {4 UZ"ôQDg jDOLsdxzm **4~#Cug]!mE|\r̾1zb󅏄;V$3 u_fxS">BkIL%j#ΛcA #M✊͞NdOTYhu{d fZ:9 ڝfAexݑ'$>́|xO^ J3tn5%}{mLO,-\GOIi!*w c΅fYHTan`Zϟ|bgoZM~4ERv 8lA1^ºpWWOK~ɛ܏"QZO8vbW֠^ %ܼO u&ιs1d rP5rȊ q< 4Kp&]-;ظ:' :j<ղ!M"&eWKNS-FM{Y1ٽb\~e.2D8o֚}< P#&$h/?ƑP>Ɂ4tORʚYP Q뗣d: M&8΅g FL>tt@$di!V@ B6Šcq5΍Xw%EћYbw榮l 3wf):+_.ȟ{nAybx QK 7ݺ\tmEzu,tBD FGie;Z d 91±]lL W;WP+~8 ?z OO- ?xaD2AO)Ý0: Irk8NݽV,RB`|m6w4RWz첹/_|/:_~W+#@Gv!mH= %( O)-hό5QU@kۛ09p:GqKE[Eh]g?d,C[^x椥UG*!QJQ.*x+0Ț/SE2Hކ}!\.Dz4м66u='I |2|FAr a+abȡ29} W5l;G6B$Di%IF] cg@ݴjk>;T2y~~*G=1 ID=ݝO.]b\vif]&8^GxDe}O vL0=§2g^.`V;O#s=Մ;:ĵrQJRKyf!0 Ykf3~UޡFs( 1{"&^!;(c~SGvXAHglrZ^0>+Ɓ]4N}mPo$!Ps8j3dL[Ԇz|dʡ/_aPa 9(D]wҼ}%mV@4bN3ZG~{O4 ;İGxAio}\DGteZKYޫ<7"nsZs*=39.s 5ḍ$});GDqfn701~vaNP]s4˄~E!IM!1T4>Sxo7R*8{{%ªb#' P)0b6]%0ڝ#X^w64s3 tlAj'xU\ g`.~It ݒw_uePnY3Kݑ &E]#|PԨيޘG?:_KͤBw+ ԟfS4d7\A,W>^%J7< ~saSQsf =W<8p}z;$tܘ QK| IrG@G8Sꊹ! r#^}hI' Ri,_'pe0t>G?b^7/6b:V0kDU!6qHV=˹J1 ^6[l]OB%b-pO׈dN a L/|fI{.puBM:}`w}|d;u,,Xv L݁)nF[aܲ@UL3WƦA-u]|(#+1 ~c:ZiMqLpMv.@ȎrFSkvh#!Z3 P5ِ2+{čNѧJu6bdrֆ*Vu#${rx_Ò̖qU1 3U%:{F)xStwGیS`zjYZ+/`pEL-cFPAWl&}BKbP5ړ&1Oh?DlyWƱ W"6y>!&&*h aI@$p[$."K }`)XLf^hЋKgOx8z]zؓ!^&G/`{AS>qQ:tv{T .?Q{˒ Y]}eg}ZkNOwɌ{Ҹ-穲׵ &{h ɬ$"D:3svi0poN _ ΂-BnWd Z%@Eϒ1OmJn"9Vs!QltV5B&"T7*V;lc"c.Xt/3 E1nrNNs$>y!0$\f9g>5L&bVUĤBQ?$?DL60Qq&6pB~ŀ+k2~]~jۢƙF,gR⠯N}BE_hMTܫҩᯥ6oaڭ(~=Pt;ɠt/הHQ$Ȱ0QtJmn=xw5zCRQ9?K(ҩTu2 &s|krOh]bƴevYsiCqS(5:Ej6 @"C;ӝd3w$_lv]+ hևȬi.n n7PTX…Zwz1&9NDj+|N^]Qj{ԅGҫ,|T .XlؙN[Hàc04&?.7M$Y{nN8B*A4R)kg+Ajn* ]u}&"){ eBTG]_}E2aPZ+~vҼ ~r$_E&-]1^rl{8os!x`lW܏a?j$*l.1@GC䮄l+ ;RL`E/dL3ou=WD;tRd*Fo L5z9K%%j݃^Xq8z]:^MabD֠@k-BIz9]̕A!DIk!.v^iHYwuܳXwԾǎ[s6[PtH,;H .Y\יЭNb8)''Z -|~꣦ [>wCӑ) Ϲ6ۑs n=)p"%75͘]@x\ A- %¬4'}yNrUfJBܗ5 P2`(L;Dg|"&~:'wiF$AR{֯5r%8PWwŞȃ/NHeP1-g&Is/lt,ZITΘ.!L|z GRl)hH:3H 32J􅯢K!C;g4)Hii(DI.U\̂WJ_nwWSVjH ZeӇB1|EC ҙ 7 @b!kPԯb&/.DRZvSm3φ҇/K m,$^?{ Ҍ QEXuV k\㤬J@ \EF>}+D彙ݎlΔRk2OB\N ;'UX_<fͩF;6Ώ6I|czQ(vv'>:Iz];*u'+H~Mdy)J^`\gwj\h@c)Ϗ3l\jЪ3fdBS.Rg!VlufI{ٻnM/BȬw}_oͨب0 wKSqփi fdVVnw!%^jZ2./ Xe#0c* qvi)ۭI*'ۡG9p"F67޷F'`p垲]̌ Ӥyy2d:ݼFuAl'Sf#_bΖޛlɲ h5B: -;n;2$ˋtuTiBOEa`};4Iboϭpd3̃״,Q*{@}<{ uv>&kZ!RVmK.ǑRԗo{2@@C (yGG3Xi J:l|QMoWM֜q87x:,/F'%G4i=hBÍoc?;o0YO)$-: e"vPTRL]=S>AN9WW09O4i=Jv2S8Iw/RP0+BһąK\M܉9'tѦVHzPKONڿ =FMu4V##c j7? p[O P־JX$j: ZPGI i3Zbz^[?$ N5A%k;ZZs>4~vq7넲R٤ LN(>+$|UXg::8gX8Ӿ𹘫{jkd0ށ׫ހZ` & tg4W5;{fmk4 *9 X=skfD1HMh%ʍ n߻/~gA^51ߩ$:mT,>M?$P#K:_&., XFxh" k8(U|'׳4r'@|Y,KZe|HbOf'* LNz$ghTW%qq%<׋PUɄr'%<'p/'kntϺҧtn,;1z]}2%dm&u{9y$ԶBh5FL[PlF:B1s!C{6M)IMdT'd-)a@̮$E3R[77ib2~Y8|: prT'dc&ӊ1H="7ۮt#94As1t:JD摊lyuHMڐ{%MVy$`lwTȖ`nH!D (N=j)\>_Q8?awlmRDχPGو'۞]ݑȃh)|ha3bԜ9U`ID 9yږM=0e.҇2#^V .˧ l؊݂10$t^ P"Ee#8A,vִ놮XyQSƕrsLm2-rpaP%b ,)YV&s͸T>!X2 -Nb>MdQN?Y'*^e=%B`h ^fI$韩l FWU*B"k3ubCRiql烄/j_?0 q f(iu n?b! eusvyF"L޹ΐ]2=n0\W4*9 2Xv )-W4e`\Nlycqj9]uln/^'=9aee}ߪL~ˬMJC Y8ZϵN Y|NnT;:{z|}*kY26;"I1kѥىZ`gy?IѸSN%:3nz N?5ˬ Xp,\̯v5ȥ'<ѶzNlT荃S{z;_$Z$0#qq\j "]=[a"N9E,I}}l5Ex iy12Ė\)d^ʙQnGs %<. +HBwOϥIh{; 'BEnpk6iI;GByV~^q$=Ivɂ*  O GLDY@1xp WJTàc%;ǒҁjܤF4OM~?vH fw#bnh]v? X&7|#m9%H\Ek@?7t'c߻LK(Q e"BES(n#갦gypOH`/@<(:L,Ь߀%}˖){Yi&Ӊ&DPhZƲ bM6#t^40D:e7rUs;b"ftu8JtAZ8:D-W/*b?[ %Th-W\q=Bں| 8oVA]ƻb{UDQ,&} 0y?9}cT0+.1>CW "=mM{,`Iъ_U]#э2[_sKz9p*zE|e5h*=\|06Ov|-QɆ 9!H6cnn4''Lw3=/$~lU{nc~F 3P'3 WG[&ÛHhF;~A 7:z[5°hM؇BlkٓdXwr1U !+S\@O-3xi ~ 0=)6"ܘ_/7cy6I'g"ƒ_&@:msۜ y:XgF{1Mm5w3c_!{z+V냨+ۆݬ"6 `CTJ 2#.Z-4;]Ґ~yl+MqNTkayQ?m-5G ]_tbl%TW 5<ЎI_Xe*&*#ƫH7Ob;@!W:T(W1 >VH`m3,I`bքkmj"li o8]s]X6zVݓ2u;B]{r,$+CkLA]=%iO|_m'x;Aê7{Zĝ4Ef)I,*?[;ћ9sUh3L!Fu#W%q/r, )P2d:3Rƃ̋x KHS˝14pђ2܆ꔌ=TE)Ų?.6$t:t$x r"f1^ ~Mlvִ];ņQiO7Ȏ~edQyl*{]%2Cl *,+:'a&+4mRSfYBSG_KMOGMFçmw;}gɉVӹy1>}U_BOe2V]vo׬%{G0ȵMGsi( Q! XOo/Pen#+ %ŠNsiK^=WX"*筆l0,2ރ@{mAT:x>G/;Sˍ HOORmA'&lmjQV~D>[1Qcd_o'it?jTQWa`q/: fE-})[o8-FO˭Yy&,h|I$\02d3rvNC,e:iC'k{Ԕ e?RpN8-[q=m^:-¾FO}2KÐ">TJЭֶjjodIHLinr.)1;l{]'Wжn7,V;yi[vX㓂'Ȁ3V濪v8&DNlRKoI:TP0q9n2޴nHǠ^@̣q $Ug'KoaE647;KWaֹl.#/LG$B/sA&LlIqf! hM1@GEX)BX|4.E>ɎQ|7E8>-l->EYXz|\d1H-|Y-BZa~_lmIic~"uW{#T`0ʓ=o`nM%YY-Dr| 2^?ABj\WȊL+\@Ә~rBLCU+#ԇfEy0s JJY22䍋V %jn oZ]InC2UuK)y^0aVcoRv]s -9FXڭa}m`Ⱥ6=p&hAZJȴfcLo} 3]=Z' 9f4,bs f?LV{'r}{p1mHJcrh?BmKR@3 |_K< }[}#gu¿oc؀[?rz vh ECNLLQY.r1}^\[0"n y9]& )y?j 50h-vl|~zͷYtŕ$<"/{1=t{H;XaP0UaY[ro]᰷hPPYm4xOf CnobcRoXå*Mħ-2z'Ekqsͷc|(wdlgryڴ@:rH?Va6cli |tF'ב6ߥiŴ;[G/ꕲanQa2Ѭ36cѶEWk+ DŽf. |E%C5uGeڗ'9k&?#OW7k ]cU5`HU IQUlS0ԧk<|"l;[R`ՃRk $yV;iY*fЦ_3F!kSs^X7+77SՆjjua-.*|,LةD(Wy o59wwg#AZCNZPølSC=B78hCS /*R %'W2AﱐϢLxuNuxԱP8ڔ-ul5dML^/:]im3倴j8/8sGQ]G%!kL ldpŁl .﷢5[ Ivg[Y6Hi!Tv~LXCX39' @aC?v𜿒޻j|Wgn0y=,XÌe5\B3ɶZL[(@ nF# FDVJWE v$dk*: ) ݂4;E$^xBF ;l|W|Kl`fbW[P8\*qn'ёZ,=^#%\ё1y˜2&+ه#qr`٫s8>y"?vJ@]' ti7k0n?sWrcsx!a\ݷOR]4k€󙰓*>յ R !ryU[D`CHl. h##a K@kOU{c4/Mv glUm^7˲N\Qjt>\úy_xfK:2}сSWvlG95S0ѢDQv$ c` 5ER}F{{K\uSi B\4 lDe.Z|Ⴑ1E(Rk:"'ⶅ Fmvaˮ;5B G{|/R} fȠ7sc’hHNdkUt>c/A鮥fYƸ 9*:bfƩiSovWAd;sp֌ Diּgee{D. [ީX<(fs1Ο5OGŞiVHV"!?E4DE:\7 $+W6oB>(~}G#Z_!"MkYGxzԺ6i=kw`UWj|aU/uE~>-T".Y` /NPV0n1%.A_V$µl2F:[TO"v ww[f^(TF3?e*',mW7[ג0U7;i_8>`$0cqrgO]?pZ@,R䢘.)|} ucZ27@扙EY=l5Ezr>ɴ-BF%C6:6>@^ts!kMSR<<O9C2{Mϸ P)]. ^3pi;tFD7muG h:*ircXXY$$ns-NywYRO+$A {d͎(ڶ&(Wd]W4666w5" ʃpo[v E A"xZRbr'AFxNn`f3d٫ߋꓰ­ ^YI kS)ApS% #&< =\ӄLn}+d}hFϭv!Z qYCrUe(^5{;c¿A C-S ҳkel1A9~W"&vfg#ZT,*e!wwσZ8KAmV4/]<0;HQ3]~7`Of붫\X b9${Shƛl8pycF-D#z+b?QmيؤM8MK$IB_rAe1j ܸ{n -k'c8R|x#Y`<WhB/%?7džUDR*sD i'mE:xI㟑ɛF\V\Vso\ζԊL>Cъ ~rXk8We_xFTU/}4(o&-5XJ|F -妩j(]Jvj4UHWSԘ^?#+o5wpgT#9 "7) (- `e-ʉ'fVjls &w[QsQ:gZ_H †R7bڰ Ix0lXze/7I#%[*\32Qx56h]OYcM~@ gq(jǖr\\ y JinPOFHG" *tMvf׵ Q1,F._Z<|9OT2(Mw"b5)@D?gsCsCiL7;;36 Ue.]˿ UFp ލ<(M"6HVK[K݃'oܺGOC >ȆOe#8߽ت_5vGKFϣ9裤U(£-ŻdP%* Vl YP0^Fvؘ:ʸRi.u2c+=YQ)vYD@6*/禕@ľs^KT]g,~r>ՑRhnp7‡ҷ?_ɮL:T| p-eGM䷠ *^fS; YZkóX8 dv}+Yѡ*#r ?q g c w#|4P67AlPjs~.w.Rl5qR4ٮ\hg! /3~{4B ıyްVOlJF5-R:6qsG<:ĦҒ7YJBw2,!D%U!8{Ö>$]!Dzg_fq+7T+P!fIzx"L-caHy-% wU}ʀ`I [W z-֗/iV?અ1lZ0D%s+TM㛽k&s%# c0fCh_c߶,Ȭ U(S{ e- lʢ|d,jinSa^B7z|VԶRvG cxbBz =c9Yi*J8 Bq簃t)іop:4oqWѱw,հJ#%]m0(V+返+ޜ@ GU _rһ x"uؠy]O\'WCZGjUZugc} jλ\e[EL2S+Y(Y9UYUQ/NN{g U 1M<+G^)pA]5|J˽N ҃J@G3pfUXٟz.PbvĜ ( c1D ޑHQߍ3ԌŔue6l}< :昹Oh]0_)c9,( !|6`Zd~:}Į_\yM,` vFz“zZI4) ]ͮ]+a:J5k˿=MF%Iccm⮀ltG~'_۳:RK,ZƷ "nZi *Jw_ɗge^4&`a'/fb[0P:nd$dvsk4{YaK:;|FoCpH⚢徸6wQqc {% G6sTϟ$͛՞Iyˎwe^$sky/ 80u®T<`# un_QN*_!vD޼V^Fm7>"q\Kuy-PUkhep֦$wOu\GjlbQh!:6p_`๘av LEv${L:|KaHW*uun d6&+p1to![z/cv"j:ÜҥoZcQǨ{qcL|\x;UeՉAA>hlf ωY)Kwz)FK"SԡQy+Eq,L짉9vX286y]EĵE3C4Ot b#Vr~MWOjHITԪ,1.'YuOğd TE"mH?0wұ'>~|+S$YZ\/,:⌒n3A/>|ᒽG~F&^:8)9P+ ؗ"'jG][9*GeP)FP6S f̧Kx^O+%AL[~Kศft_x9A@c{g>j\ypҍfB+N$$U## ?cͼ]7Τ?[)joӍ}¦YӪx%V8;47S㞙(S r!VOL^c8 zM1arܿ)-4֊1+5RxLE:X! t303.Ȟ1`Ҭ(.[q ù?\Xc(˔(qxw&3@]KzM[ -reVO36%#L ,H?tgSBG eT=gH67lk[="Anr uR /!ψLӜetJSy+C>E5fnU6E*bz GD:Qv@yǞVVIjH`sOl2ޭ³R! ɷ\&$I3liW}/9cDRHdwwil-[;pUY2i'5NjR?-Z /H򿁲…H&V*m ҝfRiڲ7jH,4#r &|RC/5g2e8M0g$ң ͦN~M@¿vݎWԾdD˶\vjwiùVYgDYw)lK4Rd]*|RccK-;;&=f5:>1ó*4TJq}`I}b )1wţyOY zg+wN%#n%:l0&qh ƶTK [ki'cwة8Dœ=-Lt"/apOȊ:19:6$8vn{htol^HtC^>]Dd"+%/8VD#:U{,vVV|TNNufMM]pmf&L 6ڳv7ek$?Z{WN{hDbȳ:nB6u?>M=J4{¹S! 5|p-cxnrmT)X.V 4FzЖ?rd(Qlr€+:gʍWG=<)sb%vyfhR<G. i-|JR5+>Apf:2qZk-*dϰexK+뻴B݆јSvfi' HNM3Xvt (җEN|-9sOd%~ I\? f~eߕBKԑT ;"zT7~&W*i^\FE%AWr ־EȂ1KTHu׽Ŋac Qo1Ӝ@*g \ݛlN'#OW׆Sb֌D~}._Y͟E0m.r MQ'Kqn ̀Po vYZ|r]=x}öRѷV'l/ *pV;_267ޕL+ٕ}-kw T$oTN؟r>jWG.O!Ȧ*EXS T4,ێ>~SzzezѲȮb0'VZzW-f @.Ϫ]gwI4(a18U6 [EMH3IXN:tPmW#Ӗ{2G֐;_PӺhHKY]yQm=r;Ąyz~$ [/rq'Y(i{~5f9iR2dʱo w,n8ҴAB,Rccwao+~TĮܾ!c@6ZTiSdTBc#ŅJ-#МXbT2GX42BD;›&g+Eza6W'%} PN֤vp-Rs:2~ZXw$!x _feǏWZμ&Ut^ӌ^Ą=[׋@CH\栂$Zq|n覯Ul7vvi8sUIZF\sJVLK. Tt۬8'#CQY@Wlx$ V-mc9.  be*( h4Z`媚v1[--/WIȠ(]eOAD88ݢEvk)"7m[g$ψ ,DijPВD Y;]gً=df_d} uT>O1Yc#^h`v$ye./Ly3\\6w!J7)_@S(x!M<|:E%#!m}%2%ᐶ|d D!+7ru`<yAKf8p9趎G QXVQ#lÌkp>'VY!0N[Qf5҃I pWt* sγQ 򰉦p7-K=!"rXkm?6ɍ eQ(9&gKA,j?gRTora ** KYnA^Ge) JmJ~h"V:!yRd@Gl9o2W!¨;Evv' 3(̱\:cYV4m1 fͫAMЮ!6M_+\2? 8>Ί-@Ii< ;G&ufG\『eooLlyX* 5afkBv`d~a!K.4(g/% )\H_nyk qЄj6uRaĴ.NM9Ee-1 T~ ךmhot4R؏#4YN q~Ȕb<΅&w0QrYT?d+IT({6) h`a@hoBW |Ϩ^RŹ z#ÌE'RPU9Z?!ZPP]!5y6-|4sh_GRwHy.UW+V_ZV?ը1-hGX>CJDnXfqQXBLl%g\h%hI@bb>OѐNͬ !˓9<#ؼ끦i5Y PG_f;&%i'-\5l(<=Qz5<(߳kDžԹ־9,.e3KRam JC oqq5 *0cL6ۍbs6,%X]U_6g:Bjr$GT~v42$NZ!׷@TbBWɎK8x=pc}~KzΘ`:imb4ہh7(P,8KpLZ)Ex CLM;jJ{p'8"rqJKC݈Y!iW:&AQ7U3Sz[dgJ jm zqp*BF@4Qՠܴߒ9_;Ub壩 >_$7f_x+/IysAL CEpKj?υ+m`SIL0zȋUKoX` HkfED; iË~R2[K҇9Qgn(S5"bNi\9@Ƃ {(Z)[UL5qDV|xJAh[h"NKn+[!IDTd<*gl2wu4f|vYh4^7~i14#;%_p9љiG+}SŌra)JedeaŸ3~-`~Y;~=8RCJbjŮ}Tb>~&32(x]rPb Md.{&ѱ)1Ω(T'jjim4 a{FL;N{3BLW~2:wٜwͰ3!+-ub1a `믵N@¥HW+P ^yW튡W$hCޘTm{V㡖иQS&:3 egJô\D/ ѴUBCu0 nRET{HU=0bnL>z@B:AZb%tРpSw7iCD隁|q &\Sp O-1ag^ٵ±>FGxrQT5r2Oͮ} x'HŽ99*ۮG_bC7.. ݏ zN;]8a@jf{ ^~mDq 8n tΨ-Pc;0$]0$ͰX\R%[λ#Oq*{R^IiLJ>.fyFOj%m?B=@n+GSW0"b @6>iLz_b"nWNo7C&*LbWEsҟE3(IJ1O9B^c=ōFfM\4^?,o:)Yy.L !CFevO^7\:n[Fuvl:h(qJsM&88$^R.P /!'Ȼ"#y"__Hxq?8^\23}}HT[/L@[|s@Ғ ږɛ"y#,oӟAfX3W+2b ]Av8M}S@I > >sߍi1V**CuŴBS "w XngUav6Zk\.UV@F Dǩ|e?E,BA`okYkc߇LeR-YEz[Bʁ*҃+i9)2Pt+#_q x sڑysX@У߸vW/mdf1eHU })dZrTxx+M_@l |Ւ2.4јMK&r^+TNm #!d(=JYeD5̰BNL2b_HڙQ %h57l^ r:;(VEI oeŦȘƒv:R⸾#d*?^:@}.!v}Ŧ@1Y+aEdS2Wɱ_J\"MF/)niۋtS CDPk+-IZNdk8SA@)4E 4+qN$pa:ˀa+|669Y3FpLU3yC%v1k9+;lgu   ͗0?,D3kS)#JQ,~]`)EmtdKѷ:3-MTcuZTXwC3U+wP`ނA|fkZ2#c@iO  !b]JwCueswЃurypWyt$Lϵ-emH=%ڍ筴3rH !1fdNMJٱBH5*$nD JAn#[P˓׆x}ϧ;ԇ,szQZfW%qpV%pTW}8s}N0И C{Y;g#\c1jh\cI0 I}YULus,r#?C+>agN@DfP>1cAl-;JZ'rSj>^J $P)i:=#VaL7flDz@*0_kLA7itǼm1@68X ABwSneȌCa78Og*n`0g礢8TO=TK鞣zī/w1wi;J j >oC7ZMjfs/ZZÑL@7Re(.5Vt,B0;E'8OomY}귆Pn+eEsAW`gV11[X${+*X$hj:dy{FA~du.X$M q@bl4q}#%8Q?\݄\bYL:@ %7(Djށ=;#6l驪u#N(n/ha\8U:~;*r2gRh\7bPnҋ A>sYty@,GXP=aV| ;JV_UBֺN'D5\uT /ow$ ̵ ('j;|>p_San3e\ ;冞|܉ 4pbwJ_҂!ăG+I<=K(ǽqn?xtʣ ٜ$[b4+$8MhmfGO0}Ϟ}/B>]x r<)RZ11 ZIuV^ ^Nhk\OkDªF2֓;tUF~~G A8IZe^~Oڢpk+I tȻ޼`*ZqZ`Me Gsu ޟZnxTd7` 'Ad 3lT~,4tکCw,)'+ᝏcAdCy"gmO'V/re PN+bX!'Mx:>~a̐c$NeMzH4i,Ƕ1&kUyJg t'c[퇜:0F0h⺛׫T~NoG@H&e"nPH 54$}^nn@N7۶#*jU͍#NƊnj:>d)qͻ.fV$~Nw!418}oj? %jP!EyjF6ΏenoQר˹l3&ίe.n,C$ol7'SeU{F]jzVxfܨi߬:-SvX;ȧrm6r)TRbZFv3}Gҵ&:IFnij}~̂9]OZ _M zR\!cv0v 9W5?͠h/ٮ\g@Y17]`6CBZTA BfM_ުVvIВ[r"K![%e;2βD%=6S'Z#r %*[>Rg EeQ3f+(#yW\V(و(4Gui& 'qAh7{5-H`,>1%ݎ"ik֤ڕA6. foiai1DzHC%[U9X "QQsm)_3P"^v{JT)Ɔ]W \9c$sM(HT2 ]}!0G=8~Ae|)g0RMr+CZoZMLP98ma?k^~`ﭿXAS*/6۹gG^ʧ<4ٗ7'xwnSfct0~XNp,e7*yhdstT G i  V ! pշ ؾmW'"va}ŎBf!C}ށ_Mb.;Xl \Da:i&x͛\XƒxC|Q Anٶ,SXIN!3ŒVM0҈_)ϗf`Ug03ngf{Lt6]E]%%<tY"TZhz(2y仝j p2fHeiJzx @&w`sF|xDZmϳA{Xz*soUHY`GRÄG <7G̙_ťL> GU$]^lQ(D*FJ8֦´5l XE)߄ĂӒvc'`OY jź}SMoߣpϜB'm}곭[K.YP@}7Khg譡k8*QYvX,ԃMT-M8`ZJ<}$k ac*-4NI7p26D31`ᚽBW՞=OX[E}<ٕmXQ{YkLjc)@ \TSC<%zƟ'<4lZkgȄW63f*VPpoLEGtÐ+GKAQΞ"f52yhAZa ?Oq2>Hzҧ(h2y?xWh8JJ"JٙlHTWk5ޥh狞)tзi)nR~/{ؽn6$F-Nb]LӠPV̴]*2RЂj~>7Ģ1(c~,ȜQa榝(]ޙ>}ǿ ^Y|`=+PӍ \g}lټA_!R_;=x7Db!;KJ#'<' qBbIଜWov)RZXQWpcϸ@G9J*fpՙ̛ϓVm<_ ]Fz =Rc|vOe4l7Znu;=yB4PL:Ĕ1z!fN&WY$OݹQK6+!=(` 1쒰3Dnz%2Γfܵ Y̍AE>S`B4#w= VJ QZ_h$ZoIx٦=_Q=xNj?B80eGHD;{I@0Is=7%Y~J0eaOh:@=WBTY3XH+6`٬R@ShYBˆ?$F}3=L?s:K9/:0%UM97p7N (U6s:JEB/(C {0'50jQ>g1A5/hv!Lg`z:NhW&ҷ.1 s]TK8"9n@mKU]1jcb$OܲAڛ[{Z)u'F[ȟކmN6h~t&`&Է =mcw="iԮv>O{ĒCS.>c`Ƣ_BjX:;=J$ZYU8Y{Zc)1S4}4SYfkkCw%z6LJ%Yн 8 +ǖGB:@:Bi0AA񐫡ф*DaQ~XvH14j{ד~)boa-7A,+~, ]e$Lī=9t^,n>CJTq~*aTWm6}ɃF;qLکFY)g٧j"nwQ% [8hxBrȣ__(Vg8ϫy$ /X\d տ, _i2qѕy$]e1i ?4}FXF&_ LpHO^HÂ#akWO)*Ĩ8 7 {8ő iBȉRr^^tau>tJZpXͣ_-]0zKJ1eż$m_cyukxut.%Cβ/4e/tȑtubnX,\D>86$#as%8e*|MG12oewd@h\O$-Yyà uVcv:1EٵF :WDE~^MwٮDi:/`Gn0๊|%ŽOW@aqΒ"54CY e_kQ/_5YMF I)'a*YJvef]&M:ɸu1_;򋉽2%I_A{݈sQ:'4˂n*X)QL@T:,~e_NK+Uzfd>{v!Kvd \06}oMZ Ku4g(dPBv8ou7bb4֎*]~jQj[WTmb ޅjSvŝ.x<(y>I`뻍ݤ'W .ctěY'k+|N!7j>{V55I`jEjat\ G檲 zE[ҡ_QMb:`玾3Ņ`0Dj-zZNd;T%YӅ&^J4ށE%sQRO^+$5_Ҙ39/?نXe,z^}Ɣ)ĔLa?y Əp64We 70 =RpεҮyHu֎ۼf_RE"++ۅe׃y7ʉނ5p`y"49aAo1<3f'9;OJp%qKX|y|/y+xDˬ>9!K.j@~p4z˚d3Ĭ+.FEiBB[ʨQSg?jo7:) 9웻>T΄~Sw 8\!{HwZjq@gN8{L7`RItl::0}sj{Qϒ 9zYCh{jH)G'q(pEBgT/)490O Х3.I CP`Ɯ7Mh"x-5܁܎\{ 8VbDLܡ7wt +K.LNjPXӱɵJ`>_W%6W7IYe5^rZzI^{uWzp`C(G-a.x pMrO4PGoNIG\|:wmE~ ٿ i*҇LQ?z?FL |٩USk Jޝ)b!`hL߈|v5yw٣tPW ]X  tR?L2g_w0-W>ꤦwrױJLscf #IQ>|QHV%,DROp_ 6 jL|9xD6籒 DQnqGe\9kg ub .=2^2mq%1/jo "ZDC DLAa|ZޚEz3Cng$ء5_ ~ጃ6gLr$~iz8Rlř< YZ