bcc-docs-0.19.0-1.1 >  A `ep9|* ~./1=,/%,|#rT4ɒA7.Lb:r_,2c^U#6YZ8u(ݒ KFB=nh}']g^Mql]j@mx+.L\G;h!\@2JP0`MhLP9~,"} eS-r.?mܙ84fbb46a4cfaf465547b0988d61f34e548baa55560834ea870d9e6732d218a339d1f644cfa1109655b6ad2fb730b9baf04e860e5[̉`ep9|qHT<|׹){^Zރs%,ܱ]8z Eqsd6_bU )+Z p}?,g)*K(H,;Žes7΋) ޤpIumZ3uzIAf I57ĕ jz9vYNfb'`jINz,p{8yնog~0!/]/c;Uޱ,[+*tC{p0nhWnuH>p;?d   <  *08T b p   8[~C(_8h?9d?:?F(G<HXItX|Y\]^&bac d_edfgliu|vzEX\bCbcc-docs0.19.01.1BPF Compiler Collection documentationDocumentation on how to write programs with the BPF Compiler Collection.`eAs390zp38pfSUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Documentation/Otherhttps://github.com/iovisor/bcclinuxs390x UeKZtA큤`e@`Un`Un`Un`Un`Un`Un994a0c39dce4a66bce5f887b46bb793ddc0b36d35a3a7ece1ab914f05efba0963abb0b813946ef3e3c2c8d16a82ec38d6af5c2b185e9dbfe8ba4faa4ddb65aa218955ed015900375aba12be6f5b0bc4e1bea14ba2ed19e5d9bf4fbd9107491900138bc70d8c71de86371c26969e6402894232744e4d2eba4a296e421c5c7a642e1989f3f00b204d2170966410e96be816e0ca370f689cc9c4352ecf827ed44bc0eca65a15c3a670bea27ac806e027dc1b75ace9ef520e874c92ba746c132dc3drootrootrootrootrootrootrootrootrootrootrootrootrootrootbcc-0.19.0-1.1.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.1`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*!@glin@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- 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 librarys390zp38 16172931210.19.0-1.10.19.0-1.1bcc-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-SP3:GA/standard/eac4487179bdd2cb3c646451d7ce8905-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 2Pŝ3>9utf-8983432ae6a694e0c1d83119492f9de3be68c96c0e6bd6059377ae7bb5684f4d6?P7zXZ !t/uG] crt:bLL ܰku!f"(xC1M&y=pDŽ6H}ɽxXp9ϕ4[_fn5qX(1:cs_2]O$j69;k Rv̐G`ӭ0pkU/ &pd6g4X84e*Q8=ǎ-ˏt()&̸y_OMkx:B+|. Ty (jq5>ͫ9@ sщ3]>u`kbK4 UGu_dv. d1l(I,3<_QŧAբPGoz Aun?%2?rV W:WĪM9IW"Y_?&U^E ~9?,ǷpdrBrEGU'#S3{Qvj.gFH #? Q򗯆L9eR]spL|bO`]dj9h\ucƳ$s8-~rLc֮FJKI*pOb]N-ߥAe\Z+n+R䚫u /f`1(m<nb;W9C%ACdb%i@\anL-5+"1A!C!z[I]3pn`E="0E)cY?@%@[=;piLz9񪇣bsQ(P8'X0yv eI*ԈCU&CALX_ KCNxJ/l5d HNj1XkV+X]92-f_Í[/'q߬.dwM O~V+?MhERɄ~}UphyD&{[f2YJLEˏ+08xj/D 0"ל>0CdAr$ 揪o- xrD)ReD?v༼m8!If(11*D5͔aLA8PͯڂEg'bhFlkO}&yR]GA VW59.4&͏Jm/;+SlR4}pi:H:42YX3A`O؁Db|L|!KlW!Qxg-uq1h')q~$D鷥zV`\R|#@ |;?'s"ƾS~[S ^-\ c upA=6#S/pV/!Fos2ǽŔg+V7E`!N,8%RǗ.y!1k#}+=]Yh{ @G}}Xj{09_]Iw5XlKSP97W> 5-=J"ڼ]:j⺧]1T_~ N ʞZcsxL8*<ȋ OQf40wBHj D#P{sJ54v{EL $n'\]z0r!4 W B[f~b+A;T1#RBJc|"*܉v<a/ j lR*&DŽ _\Ӕ=tFH"H F1D  մp;O'"M|뺦C8~*^J?Co\t?^궠 =YB $I}65L/'h=/QW#J,WRё/]6AN~`1W [5=p[ l38LqsDSV/hcpneG'.}G{1@[d{?{geV>8ݒm #~Cy)vБ^ 6;ೲ\0䟒WT _S窦.y<͈r$،xå*U[QҰCo(:"AGKn_EK;1  %<`W'< be.'pxp.aC0'0"=,5r t-AeCZcw~A?x lI`" PQ;~Ak+f&d7UX`ᆸp%0i 'W% ][١Br$Ws>Ec9OV-"QTUՃ$lT r1Tٻt:;hO?n^3yRFV1ؒ"15lx41yY21j(޾77Կ%⻘=L O`9_TA *w0Q9 4>X[cвm{:C91m;yM ޥ6lKck~W+'}8OcÛ5+ @26zg )>+]b\=lЕ/ 64Pf .=4b .cTrh",+@Y|;yʕgs#皸AQCU;hC3F Ԉ =fC}EVvY̨G1ÌP,ܫc$4F\rΎQVSQj9dca"%1JF躋mdk("`-dkQBZcHth̟B +y,ԏ+k ,+)tC\D&eWDwrGɼ ﳙ"ӻW@`'+Fnj({}dkD⒕`/)6zC \P9+^ۇPn<Q %j0`abT{Lex=QTrQ_>-6G~#z0c$}TUDs(lh!O]r_D=h(iWGfۗ*YH9Zo ʼnGp2D+ }4FX{:ID@b!9Ra0';#%޳ ))rgpP [6:|ҼjHbpHlb;j;BڽDRie]߰Ӗ𜇩?L[k?p΄ݸsu+7{czkChw=\3t`/nQW@cnsHS|.T M³O&ǸiR_iEZGB+?S8geBv lcq;3zxD2_>qd9n'8jv%j, !Y7_ r(v.Q28.I _é!t<1ˍEG$ Mm2O%Rz>,&0Fd=sک%ΑG!2ز|,#krsJwlxZڒ/I*}_H_-Qu*fg>~*؏/~c1/0U~Ok-Ak%!t;2Q(JJ r}4kͭPkDPinki9vQx@Q}iB,kqYfEZYi!Dq,,Wwsƍe(0t6:`iZ*(..yʷR3.+3O: Ы‘r4,FO|b`uCÌ`cHo(|:P3W*ɮP]B3Ak -'Ʋ<<=2?CܪKqE5`A" qH/!u%6|ZDE1s{8^A.Q#K|՚vY'FvS\`ZG$yn!۽9q*T C_09~Z-Q&4QkyB1g 5 $]k飓Y %oEoq쐙գ˓2'`r.jG^IX֑^OK^():LR0 w2\tdc^ '$ Ffl, #9$Z}&u"ʺ䛌э72(qݮg٣ सj=OY~0>&;F(uinѿ8` McCɒ KǨŢS_ؖ![qaEz\35K vٞuWvn7جC?ŒȩgfE6ř؉V,k79MÛ-Y/σ^}#wjdV<;~ "3'$\@?w<~STX]Vť=l(v*<6#^r5˟ k+]sr$,vCX fK;ݥ[$iۡn?c%y.څU>1s,u9bj3u VO <')j%kVNQ8Pl)a6;jm #4;}ciB8*;e5u-"|͢Շ<{͒U'hK@@[[J埨A-fpE)cC)l.bk((}ɸli\_S5^B'fE[)`źOYR}JYɹmt]krև:Ԛb#,-WMoUL1ʸl~3҅WQI h,;TkJ.Q4$ϖ"B=0i16"|oSqO&s_;Ns3o v! ͱ WkuU#` ݕ|= "@t9_iD2( ߔy8wokѫz^Hހo}4}BUՕ_eLZ:x%v3e4D#bQKW\Y%TTC'97 ߐ˩'Z6@nC*t;r<#|@UbqɫzW2/B1 *$ZZHWCQEoEzyVx\0LCuCV:vD>5 7Z@())# ho؏XXRiѡeaVaHI[r)6-[GkO^մz0% &\^hɪK@"_!.G}V>Njp -%WD<~~QfFikɦ /ϡNPb`5)NT1 V8qa$>7vmdON/շI"mxn#-.W/}3\+/$2L2uzk]z1f@:IxȨsKJIDz"xȞVKZeJO>k ;vێhx-;pXr*Y3d1^xӉ=ٕ?Xz'_{UuI`@ +Pr4)չ?E?bn~%f.MP,-g~{ojB<ΰp$Ksu04ʩB#!P<d\ϳ̐X0<Ϊ>8ޞR`ŨN1 Rpsi_ǧ@UoW&o9O ~CA`kcga, 'e$ 9ofy`b+H+eCP7d!IEm y9B~/{]3Np42(^?+"̉R%𡮐 .7ᘁ`qͼ3U=}C^[xY"Afk8OG:na/OU ,S^(.0Ozs7Ԏ@r0ݘ{uJ r'i+<C@q8*y)ˎ?TcaY RW psݟܾ4v UԜD@ u~!ZNo\[ A]pK;zA'5p5j89L&2 iǒ3Q~̬DFۅdm8T6w里p`rd03UDE y4jFq =i)` Y_S-rۈEƴ-ܖ>ݶ'{)lMnLY8_yK+:Ą"K>k0)4nIpYH^ּ]vk`M$ud{lH|>P: V؂5RΑ7uXzv,{D)w :j]tl~-h6h.P_^e,[ Èg X: HhˀB4bRT=ptLJ=QikGco=G(6mWeՆثDzvb}Tfdܴbpn0VMj `+gcrsV)OoQOY2X;eIǭ};qsξ_R }M`1Sr̈#Qj}kA4XS-Gs#&x8pBNtwޠb\zjsVncH/nAU^쮖uNß/ʆ%l%H:'(o*aqn No"a/] u}F&߄. YBxeG\y2g[qSl@.8KTw٧ *qƄFBe¥g5wJXM Si] I>LFNmffukIfUs`SYUFxqIɳBJ aUX.MⱈW&F{(j/˽^Os):PJZܲ15ׂPl馘\cQ%Q1Y/稒KG LZ"LPDȄdLo¿Abh/$/ܟI5iG, h|$Pi~"\@)Lu,Wp /HkF127]3*Q\:.6xgVTc QKX{WH`]vPk#YX1g75  nTҮקçsQρ_»hK2guAK @˵6Zo1 P$DZbҕjG8}sH=B|>D92GJhpP H V\HN󞉴2]!1ϋ)5w0,-I?v\`'n!w'sC%t=`c9 PTcvN"-Ba6z>g@Y s&٧/S(*V@tbR!T,#n|򨇆 `QgŹ@&Gp ~lei_ 1wn ]ߚ4M7|vu@0JAвqty )gQS?,:hq<qȺ&}WC)pt3 4 jXd(At4d* 0IȔFt~:(:&k.& !$=*Vn(7i׺6l%Mo(CF>F[272ZetKLnK{o\;q%=u+vpfyN*5( \7*0!tگ pzH?\ITJ9 XZvX IyRb~4hK].}g.K?ssO)i$w:3|`X6b-Dl[կ|SC> 8~CpXPAigoTNh3FZL[E Ӭq3TuP[wCދIqU̝}dQbbvڿcIu&ʏ D ʺdIP:9{ʁd\;,L} coq9pșUƋA?k&⃔~_tSt\eӓpHw{elz@H俐sH- .f(*H־;GfGʼQ 56VzFyy/oЪ;DBqF^´168-vK;[M\O!_unJ;c͕,CA&D!0zrka=PM2R&XL E" %@zCl$|r%xR"DlSP/-NZ[Ru*uzq:CMy lVTY &y;3~ ɡuND\tԻl1ie狄=,@%}`k~3Yx d4aG`?,*$`>߱[hxTPkP{aɦVPY3m* >鵼`c:c ,{|iĎ7ùW(ԋrb.eg߸XB؇Yu,>3y@OT @yxIc6qyIr>L~n{X$.($V2sC陇djF \h„w/ϦH6h0J\Bfj L҂ W gM&xQ!P}^H;;K;2VYiԞ%*%SG!3ݷmQ;zwK$>,C4<3IYVC1ޚB7/BC°`%ah)r|#]!Z -+qma>,*wZS x۰G~^V$IJߪ(Mw{,=e_}MP]A};2eq ـLY"q#>Uv%MZkJ|R#rݪ]*!Çf R|@F٦ל+#K sV:w$r?#hXV syM`J2I5C]L +X)qD~-1ǂaI 9l((h|GBhe5[j6O5 -13A?ӗoKHKZuܳak~ ̾&+c7N .Ug㾨/c:*ЉJ$ԱLg'VS~Fqr%n3{bKXo#5,O)B }7z}L-  s 'L\K>`%-͚6B e9Qxۏa +3&\MD\g 58l*?=x*Mf0eFo–iOBJ*{yXԷJnn3׳fYץĪmϜ/|4_wsM,p=>сG(vgm JuQнU? iLJ&nv/-VO:ܘhvn5- / )f@3{Du.5e~, s}L"4voAT&pEpC4#^h%3(^0}ynt[lFӨ˷ !62HV™V:דԺP:`"\qcޙı>N- VwaG*0/$<&YW}ƩVgxFM[ж'QQ~ *=3rg.œOqj8F$}p%jY,H19e^ś_&$/q5xDZk (Y4ġ3ۧx:\(BQ+IRwHx#UXXo4ҖLNC q|p$ ]KEwu7&Գ=A0yKۉL!R8HNʩSiɲaRLAMg) RI1A_<ӃV&8fld5ۡx8קܾC'Kx=lX{nNh].^A_%Ɨ#%各&fGM蕹N\̆_VB(?h.˧K,$b pE7lO;][jLJ3Q.t><ҖuѶWez7=Puܔʱ16f1[ !mzc7TAeA`*muߔ;%@}z{Q/!-s,n:;TCn斄14 &og>=V h-"NO`mfQ-rUJU!S.# ^ﵾxA*x Fr_e10Lu 8O[]=oQGB7>Ԯꁬ8+`#BW6] ?Rjhڧ]y3\QD8=WެŴf.^ۍ JoT~LFXw.joc YY{f2mKeV:Hmy^e`vr UmSlʅ1W"@Q?k1z\=8( 1potmgd% U xV8Z3>YXu,ۛqؕq\+czmj} B=  c:F\]IC\VX;!`=).ay cB 40ʤs:6"'=cPO3;,?. {5~b'MvZvq z O![ ۸uyR]2C$ש] 6fʞ]Mu1q th8%4 2GvJdaųNt6y=0ѪzG-+t1׻1!*DOU⛄*o0›gTV^K{=!| mdյZVtYv7Vٜ:w669@ڃy02lO^,7Q:G)Ïq;HIe4́'CQpp* sp!=\+bTy>cBX?Z p/I_dtZf sQyqglHQqRiK*0%Cg=nL2: mk]N7jS^DH@.R +J$S"JtHY(IFpiCb|[>P@Xv?{XV7'{5'G86va|Q)9d~96_.=UhT抲q&So]wJ֜*R}4@ x$0!& YTF.wǣ,8. uOystIW3QeKJ"Yc^Z)H_%Kr W1qI\hфϥL} ⿟%a%13W܌Rsu\ǰ4끭a]EA7t0N>ǻfGQ$qvSSYrBJ&b21w'Fu'vL!վE0:XG_*}96g-Jj1dxK"إ:TǖP#g {4 yY$FM`SjSg~F?pms3| BЙy4# !`6SP |nW]#&JqOK&rľTMWC@\l9k=ٱL#fN/Ji8Dz;ZGZ:վ>jUCZ/2Rj#sGajX:|kO Y׾ez4ƭie!aו#ݕ4+oM" H=+V(z9Y%͓HD8{z3n((V9*6vݵ !^f2 *0 s&rʆ`+HxǿC_ߡuy2la8a&>h[jz=,pۄ\aµ 4sM|!JIһUv"yj"KccoPԻJ7p(MR2@yUN%i ʒ |ӢhZl7qXH05=.MV.W=s&Ƒ:䘍T^PQtܷ`t\8OS?-S tWOKw Fn# q^ob>φI.J͑wEU;ī jGTIG`Z>='8ODNz5ǐ21`0x\/9+`RcEYb9 \`֋5>( VYx r瞻c9h0k@'7FN BT+aF'ZSyhFlxJї!@ɁJFsB>g ʹ-JPWQywa>˶-;+>2B?1Pl b ,EAC+|rpwǎ,%#ּfC⒄3$o>E{pl:ҕ) PK T++-۫g;|°^Z$("}a  w/D5$Y5w L@֔xcZ ™/C'†oTJT$]Se@/f_zifkK Pw n(-@^RG=DvLW0L?*g_h/q+Lo)wthtl+`GTzcׅjpr;}z]63zVȒa^F7zSxtvE}"Yp^I7ysfj lйwK>r@RM#Ax{HBjF 1(O;Cu[<oXkqb~cn5⹖NK 'MB3xյ_y&JS2T%»*4ȿhEM7 7U͜tjY.*V0sy%M8U'q 4/ڑ>_U`$mg'u9?.~ bZ:ސ\"L:x 1p7b~-8/,/%@}Tfشⁱgh%OO>ylϐhƬ`iBp)i>C$+|%_r0 _c@ohr#hd6U2, Ǡ4rH11}ojȉVŃr_f?#;JD`S4A o~سn-NI4k~^KVTmqgb}օ,nqz ؛&a7yrz!>N\G%njTo ]'d-Ҿ}:Y-Z7[ {N(%P9< Sڊ_I3c8ްDs+$jx(P5oB$𔠧)nu\3}3Nf%&#~+"b/#!GkP!fiuLQD+R#`TM+ qq,"W,Q@e&ec쒰!bB/a>K:2}Y׽vFPuxb c#J_iNu)6A%z?(voȤ:l73I &(ԬjD煌h T9tn ! pٶ#ÞXʟcRN yo;Ipr![q*Ҭ{Ғbo]EEg/0u8s`[_)hJXzpH6I <`\!xHGC?n!| 25bK62 )ɲ _uײe+@ݕưQF ;x)mX lwx5)50U'"KEFAy05!'z3~3@)6: 6.6 q! 1sPxm TG11y6m>:4_,7^x 53+x$w# oH塊mdKc%^-~RxNRtϑOZBXͱFzdjʴ-Ft< jE <yrѭylQFPa0xu|Ho+ h# in go>Վ'El*þ),v;ho'Ѧ+cŎɮaBRK9$yȗ.}Wc6h/j1Xz{7 S#%)tө  Arܘ%L9WbJ{R;6WD¦J 5RMۻ_WDv?i}R1Ub{B%tI/>]6LiaWoJY#QԵ 0Ѩl6Kt`3l~M#Q6 fxz6A#Sz4B:!:g}bgC2WJp[_@Y]pW9,H=owwQIU5bd 76w%O! S$'Eg1p~Y%^Prkֿ~m31T;ҟ)>i)ӟ@"&p9<a8L"Ӎ8+\gEHip(|q yc$ҟ]2J&atTa J J.sB\=֐4;d jϢ 0"vWL{JV|_;/_G`C`dvoI{ [E~u:P}gه'sߔXYf^g(|FZ*)M~T͡@k9!Z~NGMr8Mph%J^xKA-F CpVlb5= TH-=H 9F+Yp[D |e,gERC"[~(CCŢ1 .#뿓P1x'NH@fWHXe-!{FM\[mB8GQ8,+l' c!:[ϗ xX}R"6O c67$5@a?=n<ʞq?y/~|!\sv(pTj Q/6ZX$"$2G tPmb \so 6^;jȝJBѶܕ_RNOyo.8S]syfV @;ˆ@1J3} "f]r?XpLijsa!nY7V ؟r?<L+dt b,2_᧿̲[6۬[-hJ/d^Z; Dn0A)2dO p]D?n77p'fѧ*a%OΐHݔa^C,@WbhخN·We.u\j] ^qCL9W{krt]:I!Ț=7Uw%Ψ~3 yK #Bär4nkh!{uB^Ĺ\aR"[U,zJN"h-xnlԼeN &d}."Ct5PUyNX*U0h?[ݺ&T߃DB#]nZ\|M7,8tO XT]Dq ;圲,TA!m(yI&$$f߶Zy8 *abK!~G0Չ-GkpHfQT%9o3='=r f? ۅ@4cPDo3qN©z5t&hejظ17%5 K^c x2ElRXPUnQ*g6S9YGvY&}t/J!/RF޶I9~s0J^{ ?%j1`F;^iwsZx3coU5m Pr@-FtN:_])L>L\##-a us zr56uc4xMW N\O'nq,RA#5cA%NyVGFTvu0jƲZk=pB3+L`ՑӒ>KJD!Ci>x uJQ:UOR0$T@E?Pg'!v?f n?(tp%BARmγ &o@wP!ޯOJ)bQ^Dy|`Za2_*0 ᲳEv醕' ci؆4_@\zqC)$I ɂ!vhU[~CHR4Eb;.MfkX_=Ts/ܯ"Zu|vi)r_;~Ib6:}f٧K#{ 1ڱƞP 3o6Lac>6 JUeRу%͘c(9{y;H{NF,+^;uw*cb/TlJW}`yqj ;Akjb@uO$~bIA֌pI<]NSFP:Z.z蔧G Ymɒf*2Pax g9}LEx|*B@db)""iæ,2$4F#s%WSsd99,k[U`]g=@S"8*y%0dfl 렦0'l$ca&Z^gLK "a\@1eUQM |mkS.cʋ w[xƐG'$&=ɂ(u1:sHQ\B% Hn"#ms9)Ʈ)& i~;O5zж-jNXk{&9G;l2e8=xA E҉͹P \=akq eVnBf}^!LJ'y̬wћ[JX@ Ȝ&\Ep_Ǚrvmf,aK#yΎc蟘0FwڰRM|9SPm"H$_#О7T|gEP\հdGr#x_z;@%P!ҠDw,APJ-5HEAlyteET9 =S.l½NDGL禦@K-MMcنZ tHL\XiAӆO6EfOG&u23f_so% Y&M +ө݊!'{> }zPT?5Fo]Ba2ɵ}Lҋ΋rQ|4X1e*V u R1*aM,^QUѴ!ǰdfߙ-TDHܩXNؿgm⨊9Z`V$Ut[PVyzPB(5T^AK/^8觽oDZ ikEU!20:6?;GoO.~>-TٕMx<} D#=>hXОFju,S)}a=Lng3m1LYƣc;cZx!<#s v 7a+%Bq좞l5JƑ `3x A>]}[zОAg"aEsWSwqnƤe8qMH(NRTv7/~"uZ `SM3Voyy(8Pʢ;$Vz#ye=rvF[+,kv< y?3ʒ bΨ|bS#-H3,Swn?ֹ1 |;E')V d!-N!ϗ9-NT# (?|# F$t8G78uf@$賶O0Do F1`رx[R%h5w ,eU֖= 81w'fځ0ƥhq7dR]Õ,9O6"W z?O`1Y6_KG)ovcX,H{^ɑ]|4ᑡX 7\Q~Bi3Fh a&`Y&Q0ETT0I1Y4:4FtZ1>"zI/e(4mm4!SW#T" V?==v\LZ,cI>p0:si?BM7)—k&r((Ke\;&_LڸXK2`06f +#*%t o>|R"=vlqN#HDQ)Ш7Gjb[`k@kb*)sLK7.Da[s1C@_ TՐ]L-qq|>!ꪵV.#A /k0ACFt''gc抰sLs>vT`'#շV0ODPR-li3Mctf@yf[H;|nx J_Er,۩Zo'w,~IQ\9\ox!6S9{\(/ʛp-O nys̚2rrL腦RW2(\KDDz0t&& 82p̐"FЍ&0 7a( . O3b =|{WRKs#⦐9dB?kF&GXȇD\L=br*?Ie}qDn!y7k~a 5VK/)&K%a(p.Z5_{etk}֧Bj7Uϭ )/%$WIbKN14Sɯdقc1^KmM-tC:vG[ŀZ3#:*"p0%ni)⇎ n0I%3$F1cݼRl\1MǬMtD%Tq,1RWt?p@}_5mQqI?TۏA;5]桗^R{kznc(s(deIBs$i ]9i ب(9n.v*TP3.h0ˢU%fV0Q|0&GZ SɺJ֔s*IRl^v\HG%3Y\y5d@nN"sbz3%qq^n6ALX!RA?G32R@#8@+oȦB:\ԉ#%$l3/,HnoTFk9 {+m;N*.Ԡja/c3< x\}tĪkCud`9A#GCQ0 fQzo<ޔLVK}:EDn!Vx `$O}]#5a1!`&Iד[M 1LJ:[nk$&+d@HP[4@^=DgKoc`{,Ju`UkfO늻ulǧSO\bT^:_YTϢh9S;r| &N+o(0 <> O-Ԓ3^4W"zaٶ͵M5݈V >_ȒDt]<_.kmMQKPNN)xa[P߽9p]ۛ, )EUZB;L2ce">~%s~/Khu[an9vFʷs3uH14ёI@5"R(F:NSNccP:Q#=m;W,:w. 2\/X(DĶE(?,TsrLɵ<1 *Wa*a\Kѕ7HzU|:-?}mq!lCQHlbj%z6n8-Pe9kj2Q-8@䈤0 Y)K29Z &KEf?rkPڮ>ҋb.̚5&eu$XimOd* M Xyok.>)wx`n=nVIicA7:+t_RʗFҖ0U~il}R.oކmYHcy H3).wh0,BsihPIF-, Ehup-xr,8E Ꮪʋ 7$Mb-p˃O{:??~ZX;0Nzȼ|W!=ɾ8 xLǙcwZ59_z֫淸,&Lhţ̌ۜjþ-!fD|'m)Qg$|]Ϡ28J릎F>.Z,_|$Ӑ V`PzP5|SZ麷 &RzlgQf+t2ݫlU5z;}emϨtBxlH|[¢:R[)clZ8KϨUP@{6H#M=7Z@( "k&dTj]h=JRI6ߗWu:X7 =wŪ)|@ ,# 02*%Aُ^{>RXZ ܻuI &=0LݍT:?ZJhF)4Z~m veΘ1HNVG] p@`Ž_Px o0\f3 '^ IiW; 7 0Eڹl6Nz^X/!BMYerm7hqțC=i&Bn2CgJINc$tVx? 8hs'ϸԕ O<k_:Ktaوy!mu 8l O^$ ig/&dHxq1%`u|yUZ- T=0*!nIɀ3KM|zFmsLs;(!7vA{8Fz>GyJdIl1:ˁ67=1dYgSF%qM W0~nu9nnG1?l%++j3:m]ݑd̵R{D_K$\P.кL!3/I«+4(>^\ԋ9X R@lFpX:}wNzɚw<=b71m\ŝv6ŭ$~0i-_,Xo8w^z1aD"&q VI%maH)'Y`lnz#R yfт<+?H}o>Yoq6iYTRVQyKfnŭz{;SG},,|Jy=@\s{S=D䉦*4hRxdP 6BBȇ3պpQ۾~Okۭ#?{⌄`av#"f y~kૂ`-5)N%҆`F's8k_UCXNPlć$TKc5yH!fedG$Ė J1g_=G^>i~H5@Q<;uEf8 &v2*ħ;KXMXf=!P<wl~r1RC[ [[>o_ōq_D~~ƬYM SkK'7V"Cesc^IAR\C*?v viQtʄslAЀތı E 5`3O 5tFB H*h>XcDIOR:G vZwc= mF&_EpQ]'OW cy&=VyLKsNю< SgX g3LG ̔V-[HxF@bYxw{-cuĕ><|Z24VKD2$lkܞ$e~9bүUvEXE1E=DC .Δ֙m6T ;)ni3i~;K8r(tB=:2U,ot A./Lp~c_xbgd3>Nأ;׳6YG߮b v,10u 8{۴XH?7_FOA̱]-Aa٬rr Hhx"0ۓr?nw>\ M*[ޔ,0|yX_(28@@oCΑk3K>W\Rߗ@qՔ-YlK Ы !mߍ'7&[YyHI9P/Þ" aeuT}!mCQޏodn%IAf [cdW)&&)Д"| Jb]I&$$E&3·G{}9[5P?S\F(&ޟ|ޙ;QtC >1` .ޚ=6WכmI6D,*;=ʟ|/7,Gٴ'M3"@~Z ,@_fKT >@xk4gnT!e$mp;Sz0mxkuFT#s a;˚n ڻ*t>dI'>|T| *i N*'*u^$51=L9p)H3f:H*D޸).WY ؔeF|sU{͡JN+8^;gH@35Ta29^_vgEy[R(B$̏V8BdO?z+bm5qaMޡn2{A\U kԧC(z5m:2'wX4ZVuߩYTuƛ#~Vm=hQ}h vO[ L0෌Aw-$Pͤ)h՚5vD@ 96A&??%x7T/qn7>fl(#n~餠僼`Cֻɥ\g ג ħ)inYf k*<{e3܈,%U^_+~m=O+YV0#qYO~uj$"*30RgQc9ɼd>?7z4d+i|Z.sr: :mҺS:Ѐ-^uZ+ Pv.ipP_/DFxΠM3jĕ5y騰2ɜC*;.rfb+uj0t۱:Uk:ڹ Y[H5PW3 [-h`U0Z)5tnwYdG(< %"j>Bg2@%ҹg|%4x.EªNXL25`^:#yrt!ŽWYcD @գWo29kمٜXZ qJ^BLծۃ=7ZV 8ߙ-뙚]&qgƽFH@<Z˒ 9N/ԢH3T u%@lq58I8xa}Ӥ<@/]n^RNs*L4V_MڹC(%H1 _CGYG.A>•檲g5n+4 SgdS")$v@tgXeCDPzfPލwPxbe' Ea-"V%SYcɊ[$ xMDgBU(lFh=;(P'(`I0fz$ܶЌ3݈kHLC{hvi{3Lu9jH)rTL?݆@xYZf&o@4{& v´G2j6<[ T 3uĚ:{Lk\5ev#6p<Ӈ1Bg % #fP֒HjQųkF|1 M\N2OYWڔ"`vLJx])q哠9G5oQ kRB WN IpM?Fd礲ÉXM [z*pe4izL@I`Ia~AҚwݾCMհ{ 0+y;5FryF 2t=;xGH0xCQ2i!k`Ƈ7͈)?5P' Uw T4# |~qP K#ɶ\BnJ)v<3 46sЅW>zu %hY]H.<Lju/½rt^JTwe(k_ph$̨Ѭ %+7-gZ=l s}"~h$z Jc){]P#eQ*v5K_S3h<$IMT?{FJ+X si_RBK6|Hy*DԦSnjptd'1tg !?&Z3&9c rNYCvnGa+ UG/gG/9sgt N"LR'XIoogI\6Ki}JvݸGVɝm9a|_{ٲ롌i𧳁wu 5C:–Q @]̷ lmoCP}2LSۃ5wzb|͞9p s xjz};M]ո[\U )S/G.b>&x09 "#KZ6dMlhsXj q >)+Z 9-VT KS;Q7 8%d'tvs.3ErPI +M+bm\wx`8''weo%w?ϳgQPU-,*p5n,3}z6 h(3@CM( #Ǎwכ6}&nm~C%82[BvS;̂Y|j:h|Gf&%2ϕ5K0 { H>#6\mJUeeV2r4 iήi/0)o3s'=+~GPD 3/zCB I緿FJ7,,YY^3ȥDxVwPT!4! S#X39 ޠ8.ЋE`$&aE㭵>۝blbkcgE_BTF (+?[U y4z2=jfŁng{)tu\>)vB҉I3ؐ>!O@'Pb`oҹU ||$@q2\6g>8$yסԶ1(:D 0W CI0Ma=F=h~!KH(id6lׂ`>)X*YX!ʷ'Yԕ+ggp@S$UsX5*]K11h:l6 Ju[w,nv`2ȗ N咮;yl֎O[NXg|ӿc/,R J 8w mhyU*陪P@gsKhvR}s;Io BM#[l|ܿdy!ñy='Y:؁vy)KA(tYIxp3.B$BP]gTL gmDhKEX|@&g9]b%W2ZUocEm%mnYr x(|4 ?xGj|:,oy>j[/9]&$ϏNH W3?R RZf^Ig(&%Zi-W L}`=w-7aX*0cp-]0g*n\/2;ޕq173[d5SB0!>*k~_Y˥SrXXf"=뒁%F(q7O 96+*@]*{9-7"+LJNeEYLF[j8!@W6;ULe̝)M5 rߡ19Tpq|4`EnV)MqވbfǸVȍ}?O;IOx -DvzqaϺ֙&_,T]T`t5m̐=r_I7D)m):{juτוH T y9g`o &!5z@ҫdl_H_7ׄy+`p,Bl9F A^ܚҋ_™&P@o-!'^Lw껸= 0ނOhpXqad`@s( nט-E55ܡCv )),tt>ZߋGaΩ5vFſtn23f^ڐ =.نzxU g' b' ikPL$$:~!ȹl!7X ۅ*'h LMMwؑ`?|: vC=1ͯIm:H]DB$K(1`PTÃlrڸ^:"ǰ0|qcE jf u\lkb /z5αK; q4dg*I]]+ 4'ӚCL~q}v]GeDL(nWI i|-UBd$j‹Dm :$=5ɢ6H9WVFACc7L,> 75UտrđH:NZX kyMz⫖%3Vp8n?!skJ$Ө8T:?)(hكVzx4'm[W?|Koqzi%C7S(">Fc6Y~_:'q( +Ƀ™ εE%ȺwjdҝRl_%bzuōjQy3&A9^UKI/:ɹ%-t׹^VxչvbЕN{X={kwi,BN^M"`'0"96w6m4cD`-Rm AiDnB)lf?JYh{~DrD|2yJ<M"t3: j Uh`&%b/[/Jsi'E9j")Qq(ՎBNO%+} |PXPŽ/zJ@؄{ ˮEAMC4 Fk$eҋ7Psxj{9#GЃ+N}xi1r|2I1Qs-@!R7- `;Cb0IzD ]R2qFO?0O ?}2"-i v$&fUIaFJ,^OGMJ7N\9| w_LSECA| ,juxF +t\Hv|Wrt@ mm1 $!7P 9hgXear?W*LS 甥#Z' $X:ߏ'AH 9Q@i(&NP +1?/6{FBe|o f%5jS>| _PfZ]_(tP7GLD_,[N!6J~Bi"c[8}:*U)eLY%GzPf);* N M2ey@" } 2XFD}""/xu:Z}4?_1jYk *7wAFmDΜ M+&Se4M 0% (8R^%G m6Y͢c6UMg'kbW޲?GtQzQ+{Ƹ1]L<*ݣ)IKEE0s/rfG Pt[oⱋc٧k{#XY~%Ys0E0(ϷJP(Rr@ ,y$68U8q_6 nCxvuOvi?Y@ ͤC` ?/wcƯ:nL.q:`';X]= u6+`(ID2_Yj&\a|aa,BEti!<؉^'?֤l*=߀ W1_1>'g12}z$!&~BбZ?6 ++3`u>& \#4vײjƼzɾoqi@F/vʏԝMbpY Bݫ}PȚG&`H8 G1`6@&^0%˩XĒK̃!4>ln% NJBrM }th ~`e\шf*^^-G!~EkOIh,rB}[U*ʙ϶?*M&8TŁPFl,.ihWsy᝚j`2PT15TgL-wIЄ]F:>>D6+-oΓdGDHL<~wyތK!vixvpN+m8`fV%&~ct־5zd)~8H#l8b+3%S(qɎkȷa{/, +F[BSI#TH0ٸ3ݒG U$|<~N uִ2( }l]ȡb:|4B=E4he ȏ*A5S @q4"r~~B>>eBHG4M~)y%)Է}O,tkyhC >ůku֚GN,5ѷRU.3IbӞH0qg q>\Aa]Hz~C3n˵M`c t Jw~S~܂?}bCtڳv3\V{;w3D/2V{i NRϩrB V BWz/>K-{|:3Q5a-i^w4.V'faԗAk;|NE8mX)V{ Y%.vJ NeC cfK'0W|/;PZ@[9]u&Rw_Xn>-=0y:K?WxY6taPN7w]N)~˞1q^*3SzOAlSMa{9qW), W|S}<PN!I?τ9# 2dݔ_j$'Bʋ 5kЉMeV[~A-5j5Uj<~!;: bǕ$h`?*zux2I} ޙՠo0fXWmT0>&d^ "j 'Ơ~n񮢉yJ9N-8xOJR)rpGxa-BrF2Y/Wi:~%L'Idgi~ԷkoA񹌗L2\+dXĆ_dDo30ERйG aFӱ짽{ JRX՞(FAYs ,^ EV,4R AsS[5=&=z}'UEWE_d|c~ѸɸC+3Bd̔^; lN!%~P<&ZLi =LZtI3xp Hh~-=8lCOlE:%X?Rf,rM .A žC#ϡ?]^EW(9pph4;^:G,lTJ#v }pǯ#KA&' 4,mpI.G!7_L~6 l*lDq85./c/*"RHQXS^@Qv恣 V2z5b9EmpW*֢=MGbʣ\v]vLrtAEh26)AM#uo3/C|4%Z(;<DN+t 2ސ$r3ffD֧ @&VE 4Δ:Q9-*Ҵ3 cj;(cZ.'@ '#n.x gr899^"|>%) ;76)7)VM0 <j+'!>悿!+RwTZպ#u'aڡf[1[7t_Kx7EOf# cˣ/o9V%9, iC:UIxo"3/ў)?vIXϱm"VqB9G^9Hy:6b~gS6>P">@!-bZaGzSn pc3Bd[&&j5k%,$TrعPU)ǠR+0sl`9pI5Ƀyq*†#`mxcZb)o $lPp8G(, R( wİr-0JF^>(smNuO B;jbnQWE`Kӂ[roSwWyl0)`SwrI` NEw=['7!e~--ٿ_*oY) 7F] :"*KAc#7K![ D, ProZ^80UF'FVr!%\oO@;y/7"B>'m!X;Ie2̊.<Zv&5pԇdqN_/W5ŪC if϶\yͲ@slv)@>?.uwG3 K.G?xF.{xݧ[ȥ gN$J\pCW#vٞ] bmE[Bߟ31 ^PtQm:oN-h;^qp=,-`z]`Rl}fyXYu ^uՙ6=v,C,F}W&n%ˡUoԼ@R+c0{R!1K9 >s=]n^!FVL4i5*x\'$rX$!5<\+/|#40rxbk"Or t73R+3Wz-ݓ{>PHN흻0HxkMxmaGK>6'&P:5jG G&!TlE1Uo_Xk@ttH說"[-uFg{֟nw/<ixmK $\#3h <8[E;ItMd%wi&3J;v149 y\GI2 @>27^٩ĞOfydә\;bPWFqRkƯDH5@ܙB؟u9I5fvLn*zoG_ă ;SQb iN;uvdB[.zhP P"C>KB5g㤈Ҍ%$q,%o:9l&+F eng_ CNo=r`/yUʳ$ya<1b?+f}Zy߇j2VtcOK@53HbgU@w*+W8/0ը +2K(mnD[M~O0)D,1]zJALk|'*XklLi "v =c"O?Óx]~9e%! %E} /+%UAٜH~:E>)!C {SjcNb|P+ı]Dp_!늙/!>ܭ -e$SI.]ҥ0ԍY z9QY- &\wd9]Bv,$ ¢(Huh!OK1~O;~UTYqNLctҘu3bNazz$1lv@//C M`9yqʡ [!$+FBjgLH A]OVeyu*[3!(^He}g٧pf*8rCQ*p_8zo_/Ikotn!Ȩ)%[*mǧIR/:r+>rU-3FƿX4GV+2AkOJR_nT%U4Ř4)p֪au!ktDD9)~m2'L`p8 H,.*Ƶ! M[u_7W@q& C x78GH6SoKBTN2s29G&& 4qJޱ.GFڣD7ɸ)"J`SZeڦ{ 7 -ֲ4%w:aTmQth&wS( VH k+vBl(t-Yl꨼&4sxLyxqB\3M%5B^|%6 +)1Y6$F~/ 4жjN,ptDb*wEu|{,H'ZMQQ%x\;2EQwqŊ8XpdMBr``~im5 wJ6_.jSgtfHϓĴYnqOzլ!톮R-f4P"OJhT $$\I/>Ql9I)*cQ W;"P_}RԪyl6‡)NoB)_{TKzk A8d`Ek Pf_z% & jIOju`K&iG{ĵHk?~8+ea\t-XUBO)]Ě@/{27[|Vww'{)Q `Lŕk TC6?w37Gx˛G*Y;UQQxk[{ت.q]ƁD9 % rf[Pr`$M-E,̷D8'ӏMhLWK520!nhu B_c֕wT,[M_,5w4RH0)t`vw m#JګbfiɏLe U3P (9Y^o膶Q%u4@YWxi%SnGPx9garMb?n @jPVMRܼ܀ c|M1eP aǍخ gas)n; : YZ