bcc-docs-0.19.0-1.1 >  A `f p9|?dnC/CX**&~7<@ezѨc> tX*;Nˆz (/ Fhb 9݆qaJ$[5۾DKkh%ݱ]h) qMet 2okr:N,=ʶT;Eo]W1ǭwäE**@¼K RNjJ_{{sAlS}Z [uՊ~y"&*rg819fc42e72f86d9f5c1523e42424e9d955f3b63de3b77371f5136afc0e2ce5076ea94083e97de0cd9e83d3341d804ede07168594[`f p9|xyM~ آO](l"x;%MxwSmO]6fr`UJxD Ju}qE- Cqx-w0KJѠ򰅃@N5EǾ^ @[}\+{)y5V:w)щa@q!2QVΈq,"(tQj֊jjY<HQR9ZJ,I<ڣLcQ׎zvNs-B @Gx{rw{9)}LuH>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.`f cabernetpfSUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Documentation/Otherhttps://github.com/iovisor/bcclinuxppc64le UeKZtA큤`f `Un`Un`Un`Un`Un`Un994a0c39dce4a66bce5f887b46bb793ddc0b36d35a3a7ece1ab914f05efba0963abb0b813946ef3e3c2c8d16a82ec38d6af5c2b185e9dbfe8ba4faa4ddb65aa218955ed015900375aba12be6f5b0bc4e1bea14ba2ed19e5d9bf4fbd9107491900138bc70d8c71de86371c26969e6402894232744e4d2eba4a296e421c5c7a642e1989f3f00b204d2170966410e96be816e0ca370f689cc9c4352ecf827ed44bc0eca65a15c3a670bea27ac806e027dc1b75ace9ef520e874c92ba746c132dc3drootrootrootrootrootrootrootrootrootrootrootrootrootrootbcc-0.19.0-1.1.src.rpmbcc-docsbcc-docs(ppc-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 librarycabernet 16172998450.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-bcccpioxz5ppc64le-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 linesiTc;3wo>JGutf-8ad2ed1550ce200af1afd524d096a5af6f7a39c5802535147fca592b1a9b9aac6?P7zXZ !t/uG] crt:bLL jf(lXVg@>wvl+y$I};@hmez򗎖 y GN=,0a>U`%Q?p& ^/*dS. ǖ|;SŷFCTvǭp4SEnEiQ˪\&sx"kϸ69^!olayGo/G-)L64^o" 2hg@mzP8(MЄv A !D j&PQxSCSNN[z0Ԝ&=|_ڎGl(d٠#`T<}W6% ' v_~EYW-,VXX/DlLFCXJQQޙ`{gt'>lX2"]!BTXW+Ee)ܯE.| r<&#$}E EJa?!<ؕ1 <6bgdU4#&E77 a@j}F 66ҙk X\RL$kZݍ8] sB}eXPEx^A=#bK:G\o2v$o{UkfOp*\Y;UU' -KuwȦ |Jod1Lg8a-9IRf&";qEyaݤջ5K-~<{r.&uF:^}|:}BmV9*sC(z<iz ۏlV:U`g[Q[+shJ@MOrAwApK`Y7-4Xy{2􎣋; L`{Һ/t!}~!/lh熬D4˦empQ4Q'd>1Y3/)ge3whpW 7^ ǝsH OsBv `+O6(q}hɀLa)U_7;!!I;let7gN"UilNFU3 lypxw2^H+ϼvMkn9ExȌ43J.;5kpL/ {? :5+eA"=tp Sx$"JJ> "=iUBm?n{Yȱ.sY FfaMlֱ $w2Xc;0c½W3p n6Fu]~,ZXb zDSV<~R9=TIH0]gw8ٺJ){ݗk2)_\jؑqvw $)`6D4p !!_+sm!ƥQY8T =߃A_W$ iqGi*0,WS%4Jx%CΊF;O\P//*n;̂?/ #&aR![NkZ*4Ϋ>4s ~Q~ka%wLx@P;Lc As>=MϓI($M6&qL iJ* xoB"C`ܽ_`Q^PuW6UH7xBބI'-~rg}^4h[`P6 Jf_C$h',rsU^DHsnkd5A[#lHJgOǽ_ݷ'uH}}ʧ '](H!UpjT8]̓?5P;c>^-ʕ=~Noσ1] xQD-핦wsӺ=@#o Ac8O #gpAŠMDzǃꅀW1*&D8уqkj05m8dHVfrP!RyϚLAqTE?ZQ# b%Fgܩ&7hwu;wzA=%5&Թ|˪7vD'H 64ņy1UL(to^6u>+L<ZnO5Y`=O[\ٮ3]4EH]/,đ{?݁cܖTP`;|!dܧwS"ps)$M |ˎ?'N37k1 _B-"V" :kYɮxe1}큋PT|h;H/-&S.{<{i0L߃hrÞTDz ^bAx[t~#M|p(elv^qG)t MⷱLhEj:\{0lMX:⢉,:=AL9)2͔&󌝐w¯ Lxݭ8xAV  Ԟav.=U݀xoxGO{m l2a}{= ;Wrn=%A^@ 5B[ÕwP/m$(L?X^ٔ$ߥdE|nr7+2^+^VZPٻ0tlAx,{ \'k*<5\^u-I%v2 ߈wC3V20E^ȏ}Bh+~>m>mFז w>LM LV[d% y|fi,}mkuៅ@gA:aYC6p!2n7v7q"hq`[kl[_0#_\A. ,O%prN!r267:L*ޚqBq ^VG 钿ejL¼vaE| WB[s1Y/r•9+X1:qR$&F;Zqu!eTtG{B,>H@ ;n$FǗ<Ƚ"tD(B/N rm6'v6VQ5ȑ65<zO;bM-[@T;K}5#7LGA%Ɇ7j)y@wEI2gu%AUWȥPUҥ2z;Ͼ䱵Vfx5)ѡ`vPs|oa7YaR8yϧ\AAER00'Ӯ O`lo8[lbt$A<9y\|O:S!7Yd{|N= {J!o"~_˘ڳ]J$T"Sf O$]{aIjIfp:>']FiBw%z-W t 1EGU=8)aj>멮XѨ:]0 _,n0?Eg(^\qn( NqAAmXوt8,@W>5Wv/f;{SfoB=hgb~3 &0$ʓ joCVܢZ5mQd s-c ǂbt> AFEkpE8KDՔnr<1#;\K0DR슪h۵p L )K:_;*gj!gڤc+ej|; {GxOT!\M[I ;]ޒaM L+;8eX)x*ڐoTuuQ fي8X I5-#[L*°K>yA'1ŧЮm?ٵ20#\x'ZRF(pЃ*bA=lTagg˘m>1q)0iF o%y ; ֠G}qKubI"V1ʹly?7lڴRFt0B 2jxyWJW06n)_ s'F0]8m$稏IQ|`V:LjnJ6PWUV6:C㛄8NX+D<\%0!ʷTR[Mzs~yϭJ5"7"Q\(e Y9(Z>l"[C0t$FyIfAܔgOQEL>gG*'ûЧibop#=cCY`b=(+޺f-b˜K?H&qc: X#`M}Y?@r>Try%V!y6 Ǿ>p4ye1M|/n$/N,+#&ኚH/@omlfqG1ftDEfc? ϓ0=?~!gߤJZ'vF2{%ԑ |>;»Rճ*?@ _[1C~PO8|_{v XĹ;إ`NH ,KّFwd {Pa-(҂c58˗[b62FZNmAɞChxyÚg #0xNn (+J Uc&Cϸ|n["!N42I%?&z OiI#+g{bEansJLowvp;o@8 c@p4![UpIA/פ꼾9]Fk V&L*e0{gMTZR˒^|"*oլLZ/b(5(yZf$y*dH^V>aH3|&'B{WHW\hVs3r8BAgE.M釭|AשI8} Jp,:BC},[d^KrPwຮKr,)hkLؐ(܉f7QF9QNgd= kz :I9 ?`#B%Ბ(a8]{̩eY[{cbו.wzgQb%NtNv~[(3 G-k,PkMP뺋Wg27HtEF`इY_0[hCi8FRZy|}Ӛof,~0aNf[k\NI$_ xo!L^Y˩)2+$dE rUo(Я'R̸Jv,YǖWOHƔTp!d)#e}48š)5W*։$,gCP ]fh/tg*Evvm?i!X&G%v;6]#&<~n8)K}⋩"GW|j)w[yY@Jorfar\b?'g5Gf,6ǦW璙JJ`.7B<=:VA) a ~97}'e 黾xbM'f_?"%<귔ǙMfrb.3UG̡xJ^hya6Pi"[FXqsIIlT8ҁ^W." F4#4Wh!;cJ#KQɾxGW08Q`'_eI v0_Zr  &#3H3]LWI2M(;oKSխ:nQ_N`ѠǼkQ${]+HӰjhN*z{}/bڠ&ـ_n}5TjA;0&e`5JSV{A/čUϴ7Mnd:kl)Gec"t VǘyCcE𛃶vA?,+0L H9LQ~y\VN˜dv&k׌U>*gm%yQ (lj=t)ܲմ??crd2솠N7ht'%uԳ$;S1,4ȬBȏ͕PIi\Bc~Wp -_x[a\ E^Z3*Ll}NΞ VϘa ƾAJ| \vir IrKc8rg6LM|rin,m,`&@Ҝ,A,G;vٚו"RKvy*ڌZ2[cv\/m2.eGh',>BǜDϱ~d(Uq&v8+Ӗ͟/ASh8g靚Й:D(\b^t1 <_\0B}iG}f4:WA~+oVt=mVq P(|_'0im2A!+krIHe@s!P5 ؖ WDSOβT|Oј<Y_Er -s2A8}u?yw*{W걄%35C->NƭV,l*c1M.m/1]vR(~sV`hi{LM^T tVJlw=p,!mhOdJ]/$%BRw{fI0n9SH>7S jҴ;NҟuF.5@WN@$SV//Sb4?iA:tJhVe<앗ykq~A7njHdKa!m+zI074X@(
@@z ?oCӍS[jAYC<;?>^׷L `RL?h,id8-( >~qq$+7pfT^ Z zVn.!אy[f3w%Q6 \BeWPr0PGpKRXzoBS)r8MX9"aܘ"!:hslCk~Ul#RYM~yDaz-Ml/xĞ@y_ߌAj 6[7&>sǘN/jgVT>/tG$:%i)QLUsِ؞75htX2e[͵Iv)uxv"ê+n*sO1% +W'kÊ, ^l@KQյ*o9* Z$>So0*QS ! hdR&zV(myfQ3؋M]bGtSl~@G@؝ qH$ߎdojDbnP:W>ṛbu,hQl6+SOP+5Dڊxŀ=.X(CxsA^B:wRd/!j<j]jM3܇KKJ} ,)W!}]i!O|T/Lqg_d}\.4OMn]ɭL* GJث fsH'єaP_F=\0=u*r(^X(1GI JB;0#rk:γ×PIVq i0tAL!vc_gZSb-ع"Pٵd67=8B =ɗGcTN>{mVƒ]6P,, |%^fׇ:i(]U,xߴ_δAWXJ>,~`E%ա<+^m+No=$=jJAXGm_!Wbh"rYgE:A/t7RCH贂Fz{PhSZJk=4VǸoíņ-wTaG,:u 6'k(RTdbw&['MjMRv}ss/#֖L(y}7zsxeُ|x/} lG$f596( NM =.~`99?.oXlG_(*VDI<|fM۰@)F(G"Ks,[:BNgCkټd#e$o"'[y"kRo$sHU$n$cf}/~9P,6"O=ZoC ENNAJFFhߠf;QkR`pNjm2 "/4_v^*@t׹% oӑ dG>ӉA&z`q[|h9y;(A}gdz8$ iQ<~LwϷ "Xp5:8ōa]>v?qGG62tb,oGfiHV=h(Rwp 7^حcCGs Q)pGdܷБW,Xh(m>"ܢ}&;·=uuLl.#Atq*|hπW+|#_/+.W3Rch!!]zݤD4/!B1;QmS8rDi'D5b˄.~N#< ځp208D"3ӱog\E@nw&V\f$؄Pmq s<7J*/z+ h1FKrcPD[9Ҙ(eu\a+@T|'!~$(&D/l69R6Ə}JLsacye^ɝ!|*@hK4NM0-bLzJh۰sL=(46i<6W~e Ztui"!˳pZ>sl1vXw&n{e<,-\;}#-yjɋָǤO !|sjg7 K,e*ypDEΈN-5Ơg](P4^f0vTH*-xYɥ\d<-mJPn4&*;x>x$VFinG‘"P1J^ D#JeH<4iCO᛺CzNp;.h au[l\~}Ew8Zv{MG{Ru3p l 6HMљۉ }KI4@\l8P7ptI]SR)Wdm~Xjeա".2`(<$a&pa=b4KҎ}G3_A$oȠ$~jC!1;LsSٌgF,o让tod!'DQh/~G^6J02 ;k?ث"\4z42}9-sxՄ4g{}`P&Oa7#w?;:,W'e8CI(Tnds"#z}lz[zu@\oFԬ4fnXӔ/;A&h[W*E}NPGa5bVhU9Y6Krl.> _y`Rb{_햦y&ɳ;HwMo~`NelPQ._fj@^}98("/)6rB_CX,'I};nh՛i-%4cQu~Gި=ʧ52-ڌnw&րCQuNfnK&ܯ8jBxM”V.(j)D;n Ҕi0!pOd2׶;?( P{cόr|ӨдN$\ Z 9_#ӧylgɏ!Lo@*𥤜=(MK[YW7gn*TFnN[61y塼?A?b֩vtIR>I:4:.t\ğAPz})+B0l-]*=r P?wv31}j+$z6Ğ2Ɂ8$m„WXZ{P>*7d˃;=3ym".67c8׈[2IT8 DNVv. /C u.fl%|%D06!s3s=R̛Cq ͢e!lևdI"dʹOWd F>h얦^W "X*YɌ%=*$֩}w!c Zm(kzi/t5qTjXb£RI2jWj7{0~i0-@!ӗpN1묊L55W(S Em@1<3~8X,PAfV`f!?j]^zPY[=$* l ~#{VSLS^B|f-1]&H tecI )>i _0^@O0md6Xc ~=[h{s6Z,&%nu9&tLe &QFڇz♏w*00Aj Yl> T1瞰dek^@.TTh2d(1)gN‹# OaG5f'5JQ.2@u±H@xۇhuDEA zADBf& .5jy.$ AHZ;mq=,ၽ~l٪ŘbаHaw+RoBB9ߐ>-b7F08.B}A8}8e<r>Vz z㺶&9 ᘅylZ#ZG&/mf&!!/q٫Q F\gO*Wo*Y $_ J;{EI<̀2&k7v A2|KvffE9Q!Kk7Gk@Cƙ˜ ' fb!;+Yzm$`tɏX= V6t1I5ē38}KGA9tyid r]D5 b0#VK J%$o3 V爥5iJ>Foя*ߺ9TJOu|+#0Q~&.]ZBhBo0\^+NX$Ϲqj.f>m[wa[I#2U;Ꞛ{ E+@i+= qRym*jtFL@ o9 jJ_IT{`Vd:WQ#nGQ?`j7F/XERB⮚A .+R@dV_Pw=rm36la_J:+0#Ɋ!THL4WKk>=XS@yM5|co>IO|p͟]e3kg1 ʸ 0BʐŶ(R^G,ՍI9-&ou#O)1I0mFy&+;(NKNǤ>WEZ־`TpcT!f Ee^hDuMKuEA4=q]ӁpI$KK`Й2U-RċF況 [abr-(/.E͑z> .BQO81c+a1|n# %V&j䌯 w4J$6 :tجvBvS[뽴rCR&>ia@k)qc13/GAJ 0 Mf 2Gr3"uɒ;n%cy:;d۩c0c'7t &e69fJ_z@@־ Suhp(*N2txgB(U?F:Ǩ5:B ߍ@Ŏ>-*Qp5aӮ1?j'Ңr T"$<6.~1b:P{_"9+Y5.XFQ)FX1xXyVmߛ%79G GnD i.||g--`/+FN8/& PSΡ[S7тo/Tp[nwG9+ֵ)tZE lO‚<-|>\ [쉆9H p&~L=gIU8n?mk~&L*šY&w]I}/kۖK MYT8oO%~=* n;65+%{f_dh2Ԡ{9<69ʛLog4:3"K|L"vRRGzhxej7ωx/ ;0RV(0P]>cuĢP=ܨތ~0ţXfɦ^ [m A.l>hu(jxALerZMd/Dy$pڗZ-?[\~qu!c˛eo]&UfFFؚ~9xޤR8z4c^jhZ`q`6*AĚ=.h_V DoMֻ`tPo&v/"|F o?FAhuSoǴIi]][mGt)̇)lX,z%nHnQo2k[u7PB,k 3~r{ *_]^߷썞֜W1 *\g$B:ǧ>e.[5Du.AuKHgQlЋgK H?&-rX ] ˀs_QWFtq'ZC_oeDyKak["1@&ocY0V8BhDTBp_Nujߦx aLٔdSei'{J_x̓N-ϔP/sQ>;Ek} p&IEo]AEP\*\"L ~K k$\`P ^L;l lzhL`|wC%#5'޹!M E)MRxWlrr=F=JbH2vUb Rӧz3j= eu`p7X> O bNEԙ/aڿZ ~C 0T4$iv'1?F6] m޷˗M<cdy^M&YfJ0My!n;h/%}ZOEnVV/p۽@7>BI_dn# 1V,~-.!f-E7q;{:O tJJ7/4-6w4RԧtAIV`IsruBY#Pf1?zx/w'^5{Yϑg4q߯:8BzBD*NsUzI`-?lZ==NY._ͨBCpGn V&7oա llV19b3svw5` dXg+- p5*Z]2M9c$>Kbt1? SmzwY&ԅ(3սf:X#W 0c8h,]Og"='q% <{Z зA74tα7(}AOr_濥1ЫYWp;Hd}!BEYp5)H+a!i<@,LVw4:1:@6RҺmI ލ;Fчtӱ֤s5I kO W$Q\ D"H4!3^4tZh阨It_>dU~39dY[`#Nho!5!Ba'Qs%Utlu!EϯU]u2#^ EGA$nKӁn/z XHM#A/\kfNፁ5 :`K[i2-+= l9nϟgn, r:syʶC 4Ebq]1/HKĊ笂42 g-2Ԑ)hN#zFk{ȋ 4W^;H*_dI\%LP;BYj@\UhbJ9x잼Ӳu˰/)<<3 %B.sժyңV1?BNS.1LR#1vr5~;"6 )1Zc{U+GgATP{޴ХjmSkp? t_j'o$Z5(NQ}QЬJ}4t9T8iX!wJ*ASZ 3Oz쐹ИnQޫL@恧9ȫN2H(%98ZHL g0zH䨋v |5-?U%!k C bz 3K1X"[nT~5B0˗n:Q)6)""@rFF'*c OE"G1*Aie]ȧboE>>1k_ 1(C73ҋO?WE1rQ? KG(f>%}Є6g Si` NQtRmPņAlOj'аKgVN\̝=}QΆA7H‡ZmW3*ȭ$*0pp E[ pFvbBd2enu_+%-*WTR D!QsMQYݞӨ10יuC4 x*7Ԯ( 3MƞTDN͉$h hԛWXI胪;q2S@Yz#XLO,>􎔎ś7^8L ^{[1{ݭq[bUJFtgAМ6 ,r&!cdVqNAIz ^ʻn^E8Hq$ӝ=DЏǘl*_LvgHSϯD,0 't 9뭙d@iNGp`ɣY:D($-+gH܊ > KϹu؎Ow<ogFpn m 6" c!{^ n2cD!ߐ) s.{Ma9 C؎p_W v|ndRs0w)Fib&cн?Qτ~#: .UjظѢ`1~-bYY~"UN+82,dCYtgWK!3n&|U|/Pz|\=N}Y*%\8WiE,@&^a ɞl }cex'po5%aj0۽ғ@}wu7ٝ@ <:V5="^yzˠhFn"߯/%-vY@W ͳ9 1# o>bt-{kB+hQC1m~6YaZSWT٦1d۝83d}HJOل(٦`(Z$01I]: jQ?ذj @#0n(';YG]dr7@K?G v")\pr Q\:b6/![Mi,> :;P̶$81I_>|NmO~ʁf(x'EDUx~D pƿDOtaB}PrgkLkf9$"Opz{mHLql<$g->۰ZDoʲ?-!"H/%1o8K+#5glP`ݙFT2T|YK|Um~t3uEi.Efga1| 귖!u}ޡhS Y7qMXJywcXK3$mrЂpg6̣:wրuUyKH%7/-4F!'XO ˨w_?_b7\X)Ք zkS]a/N=8)AKٶ9}tL #!~}ICw 1I%+Q)2? KAn 9-K2@њpp/Ǫ]̻.*I0¥:r{_8 WYLY\Dͬl7Kg&^& 0<(JRv=OME1B^|?NRTœruNh|Ps9e&&kyD80QdBfY@s3..2œ6m~Wep`0q8xu#Л?0m59T5A@*=fRy@Eq'eVbZ-o͔z8U {M046ySaΞϢ4F>O}k /cS(ދ.bҽ0hq):chBDj ׀0t5M+]ŨQM e)Y\V'\cEgeIW_@Cڗe0*?@$]$Uf`ˠu4GtOQ[Enu;0p'@e&2^xBShYSs/9GqUa15S/D#ě|p\R:BWY׆ꀓ,˃ӎDߐ/W;`$Jk!-\<k(#8NR;y$g6xvrUcﮎa˖# 8]'7q%z:$ fOJ-dN:/ٓCS<ѭzJI(%bs:Ϸ1iJ[ *YNI_ W=!&8؀6#-h+vGcF5ܼ:6,6Ѹ rqKzYE#RhveعO%uΑbn =Q3qDQ}EƗJԇi!=U%Avjm;LUOcYLx]anӼOU#'[v-X{ VZ XW1G|ߞB}& }l؉&$=;4Z7̟ !nGm@Bp%^&W u_SuIsd;'ӧⰊ"x;-QȿpU= kթso IJ&|ScD}?y;Vv&X\pHlg;ÜCXlxxЈgd.A[JMi0şo5ϋ~@t}dgTR,+O#M9 $N.H噹nȆJ\Wsw &\( Nf P!4`do^դ)a l'ÁZdl- {;?@06Y`ROQ8<[eq,po:+{䟰<+J^֣epP)CLLBE(]_vXzo꼰e*/^EIG^. J]0/c$.)J_d}AXPV[vYG!8H";Em*%b93=/G "?~l e> X?קj"Z^'a)kHأ'{B]ntp.לsfPbt$:lBC!܂OE;]r7$@вNE ɭa K>,NaWɪ!Apޭ|CKΒٰ9V オm G"wZ 5(NkUez2\XX)=mk{8ʽ]lҚ{0[DLH4CyS@-YsCZrYeLzWI1 -u*LoЄ *<07ȐĈ<8,hlf]baeA]yбXVf]Qڴ9G:> t tOO!aa6]Upn+\󳢶Ֆ[K$iw2X '%LG((qMD#zJm g)pzSPs,:9xfڑx`ʤ7v]rv߻N QH ׈iK)/n=.Zrp < /Vz飜iݾ;!v[ MQ0@ATS Ո}W0Cd`̻,nB$G,Dd2 :\_.+b+D/)KѕX&ts,bSmiQ~PXH+!I y&X7ySQCPԃM _*䳅'(Hs6iMIk"$%zWjIm٫R{j\"9@) xp [&핐f+~4|hkՎB]"٫=Jowːo iws _]W|6G9ipXX!‡R&ۋw7fN%ͪrN~?+j0{0Ug)S¹'3JV:jF׺ X e'e奄+G*/r-*k zɜsHx)')<{Zȍsg1ه-#Q ߱s\R).J|]ɊpLIH 1+BedbŨRA)x\`}#%I;ف ҶG SM38&qL=$?g\m^RȚAUɘ-\wOLʤ`WegqVaczIVpY$ܶIPFhe`{$QzxR)9`fN̔8nZuj%ٲ[#Zsu0fU:\f'pO({#l9ikg7[88!wF{)C`"wmTx-ILDӶ:l"xjQJin%h@巘) {XHIgԻ Y6ߊ" d"$2J蓗Sblլ֕&!7(\(ID"R|7b($Gvh5S hWG]ZW{( S'H'*K$x{#;bmSZ}pW K[B 9dyC٧#=amHԫ?`q.7$,r(dhvQ4>3fx.5rK1xN7MeF,vj%:flga jrĄ%I&ȓNM3/:Yȅ=;hN723Kn^7lK%ZBKE3p&(] NZO)39` \<AqajӀ01saTR0l{(M @ R_ԁ?CYi9J| $"`ߚo~_Z~ЬRճ^d<$)?IQGwϫgxR0UȌFDE=JOij٭S]8ts{BpXo)Gr .k!0hVJP]Y*@;p3|+.G}=$$L.ÒKZVBxO6"j J* >r't4`x]eyOIJQoVV#nS'Wg\D_Ѓi-SQ!Rq7u?XO# Ab /;m1 ]<^ƻce ^*y2)zUKSm1\ [m$4Mݳ`-1zK'L辄Q"c&c\Ab-/[X 05y|^ SCtTEq/U$x-`h !c H,٬e 80Duf^;s3&(tJ&&k0brUgyJ ]!MR4 /fKV{Mi)8y]v+[>k"8A >յ\^>qLݩP*0Lef96B%)=Cރ`y7PgocZo"PsYYim%}ǼhR <6 ;YFbfji@#Ғd0zLJR}=<_8M(BXbhNz"y$% 4'`MiqmC="A8)|f%=wi 8k;^ ;nH/0vZ1aT@l"ޥ|4٬^u.Eֲk^w'W5"P'1'u>.e`9gg`xp &2;ցjqڑ%lD=q9A{ġ<͓#Qىl2X33~ro׫Q\aO\wP 9rZ8N=:Q_oy[~r)O'4f#e?_?7e`v`]~uQx/ 836HV΅ƺ wqQΑ?~)x(6cX+ vOx@1wżѸk@c@Eh ais-m[6R[!Xߘ >ZQoڣS G\.ȪҰF4ofaDDYF&k'Fho &>qQF,X' 2PAbOb&1ɊN:xKKi">QąZ^j:mɶB :#h XbE#%HXTAZ2;b̻JͣCZi~mn9rshl2,9:^Ϫ0ws'ɍ,R!tW@P3F}w n;UT3G8cuz(x'R`Cmf2H*Y"bY:]pYV.Bz/* ,կ9ku[?iPOô+4U{M.|m_c?l)Tl0",ڗ/(DTPcf\z";4hYr9! xÂ|qPpt{Ģ5jG]Jh{v}g{[Nْ+kɯ ΰ3_$(J/n$Q.s|}.Al߅}Kn&~MhuRqs!v2~=`zUi@Q548XEn͓GXVf}9ih$+)P4G8XSX BEoyJ>FSJ[}JqJK~P`dv!Zu#@:ڥɾtc^TD>~ospBg<"ỤN61PbkA.b.)5Z~'8]yP{jSb0 :1Ƨ[$$ I,Y_Vyٹ>rJj R3 z.߃?ʥs}!X0#k8)( ?Gwx+ f~L-mҬaWQZV6@sI|*Ó`γ,10 WkחfX*q2 wpIw8PB&ALyYb 2{yhKvF Hi8y/z_ -MR}er_6d /~v]tzsw !qZP$Y+n*C$%=CXFV7P;K+d>fԈBV"z˺\Gk;Et9]OҞcy}tPKT/q< akoLr%[j{)ԛL3E_;1ȏ:ESQݝ{.v=Wßu/-'Y56kw ot#\F(t)׮,(0_9R? (/D(DTH$+oSzLkJO P'/KbAmgf^2_,*s?ITr2q`ŭ)C>+R \'>Swy +DnKrHf7Pv ԙ|rY?|X1AN=dcU_wWD[9 pM[mgbdҥ6ؚV$ڿasz 4+{V8ԌUd'%ĺ}pbe^ -$r^R[])tJhQ>| ?Awr`>Pv9g̿*dgm 'R+~7 s(2g{P`CrIÙrCExj 㸟vhUJ}Ο}É&HDh1ҝKF`|17j5+VAY'rk>6^ebraYr5` 88nFh+0@n.,AFR~9R+ߤ-ٗ* i?Oxbga?a9Y|5!mx"n0VWHWCExlhά 9l%@cB,4$kMy:<ӎǐqo\6탧Tr-DlsF"jpSʢ~:rתX uI|MΖ@]l>4lՙ9k^MW Q~Y|J3 ԂJ=m[C %Cލeu`n4:~!sbv-no0^rqM(4MQ ۥeۡ׵&$rz+Fd-s9<(m]W⯜)y~}L %' V+=$s,1rk*}~go1K-VpPG KV]a]s[x^t6Ofuhf.E8)-!Fx ~3MsY"r<AP{UM n5[T: o^15B/Qx*ؕYjX`>|V"%7"mzBnwܰ6w0kd~O X!=ȈDC _xC9*?d BH`Z\'蕽V\NN_ U0x{gB=hr.663Zo89{L'1:7DAd"RR/e~j7r X @dmIfVl,e_JHg 8 ;gQ_gT4!羯) eJ!';tQJa 'S mg[ C5kOᯜ0h#3WFg܎)^^ZpWKn1& |%&D ]);^@L+YVDoXmxl_`O_,W1&u;rz+͒ѐwY FW-=-DL؇ ũ,M+fB?4WoޘiO2YMk ƹ]ض;\? .m "lWf(JBV;wXy߫83V,>gHVMDsRW l7vKTS.!"&ٓr/Yx^Bߵ#vGU77P$Ä(Xxn^_|J`£1?BÊJhK x @=K^=D5^Y'ټOw70^hRB  5_EWy'Ta(PKe4}0.ҿo:0Uړa,dWӦzͧm- ]f="cJUB:&Eg{4>k앤NA wPN\7>Gٯ)ȝGߓj14` K%P3N){ٮgK st#|o߱-pÇM^.mҔsX8?B,s-\tU^If?^"VUqm*7kSrkC=klfXz +mo 1q w,<)7?>YfvePgN 5#]-cB(vԦ]䫃fC8fA2B׌ Zk 뀒cH`W=(SB9`A)7? QwL9Go)ֈ|ȶaMbldJjDzd}.Q1{K#ko|Ʈkt\0TJޠrLdOssm0lyKMv-DqyA*zŊ쟏!IA$'G_L\.j8!T'vBn`2dofM5$ssҤFR"AZHn"$7{6TAxLw>Ul WB穪Ԙ]]F$ϰ DZX'b\P4Lq1Kj]!McތVO؞bo'o嬅'J~日NeT\[/xxܢ]F[* $gey:Cx:OS|ԡs% (A/ņqblXav^BAbjfTtJ0NJmW9(R4\DžܩSᦗ, WNܚ%k7`ڠ$^.қj1+2lU^Y&?w|5oێo$jAe ׀c`HH1[4P8ϧxMM!3Ip{.tun d6jDjPM>wָU?_ 6IBUfy<(77'ɥ8y:P-0bV\PɡE_+l x]f NINL}#i@aLT";ajrtvyQ+쥽jgR]brb:F]MtM4*2l 4J[@+eMFaqx2L'z[}Zly}%wlsj c|IO̥/xDFږ1Fܙ|);IU !M7wKœ*1IB= B,&Z;jC2e;VH|6|ݗ;-SlQuLkςQڤ)'LԄen= !.0SG1':T\\9xZ pyhmw'Gc"0VlcpnjF @# 5cko5&[<ޮlNg2>e KShGgS=2(d>M-܀.wۊ4 wrs0㦺 5'QMugK`3"c#"gb R4$Yƅ 0]6Hjx6O-Ejd`SgY);\r@fFF Vp{ԿC^"Yt$"WA&{;h&dj#RlnNgF`:aZЌRz߆ϋѸwYY6kS>`i+e5T $S,?䷆JHsAWe/ut͏0vo=#GVDQiA-_V|DPO$׷bTzˊT-<5wJnP/>D$mIӟO쪄4HL^N:* r+r4lkXoWM ϯس9nZK0#F]}r< TS'Gl?fI (Ԝ=7%;{ur$S[Rզ_o0AQ ?QQHizb=*E,98j򹥗%Z-o7iyLޑ< IrK|uUo#p*N{(~L2P+Vqh|Aw#)l$ SA['L6P7W=En1i륾?ܮ:V?m!L/J*K3QҮWBAh!@; dFzOX/Lf+^H(2L5ݙk"vk6 ڋaq C.' M}^N:jLCx(X"XL$'A{ZdL%na=֋YSjN,(V|Z'BԾfPeի@)Weo,#,y~7ӡp޳e"21rvX*wu rc ^-W /H>Qm*U v3^OOʲG fUVyYAԦ>bTHUZː;ᯊLP|g;3#&d&޹p ՘xiy4 b,dJ(KI# uO:G4c$;mP˧;wz228.el6xNwoͥ/6'(4Wio.cO wF2'~(vxh 3_-ݺT3]HA4S=0_]Wvj;zRn;_Kҿ?•XW߻ECLI9]zRH 1.>[o0ձB7r!m_F˫Je+zl|5Ds t;Q:&8KCbj2NDho_i"[ه r=`AE*쨒UnW;b?\CI0#bY! ~gc6ɱrtj2c0?&) a1_0;5=@! Ռjo{z %x<=9:砺ܶ(0A95k`$ަػAc4F$1ս@JGmo nIجP[] A >WHD>bgRDVdṔ9Sļҗ39 lF%Ow1sՂwhuY Y6hJlC{(;p\$QeD NO)@#?v^5tӕ#:@-ދZ Z3~KFi)9RhĔ7lƶ  ٻc⸊զWS @K.$i(Oߐk;y U“ɤ7`mC'1#x:4D}K \,yӀl3j!Y*tqJenV./a}}R%|l;u|7RpP hpH*P&|NS2]`ݪQpO9wu7{~425MYl9H~yRfC ]ɧ *ѷ0@}*As:K2Ln4͑3sI'Ҥ6yY,gN#b.+ŗHL/RjR=/:mbk^ռͣ"p\qfҒ䴰xc"%|v 5~w Tj?5 ӵ3Me'}ޮMXIȖAIh+֩CrG SeQ{%j%Y2 '  ox^>νނG\o44ي9Zb, XiRPw+_DcOV?p.RU|T[nWX}G)ii1_21ŧ=P]ෆU9Ӛ ") SRQ \Xx 2bY Uό$ScA e3#^BjK^jJu7{1JENjkɡR9FUtGoFb:)D fʎX]+1kMY\}b K6=`6^x$j߿0Lμ= ^4Lxc(V-M!컯px`Pj$LgV}'c8M Xe[x:UA7aۂ%~eޮ8v( n-:dNqFzD{[r{4c.An*Ym 3f<&+1H_KOZ\wgg(Z{PU [1g{ E(?,:4gtsHv+ϧ M IQ`ɑ3bg%,>Og"s'1N~ֹ"}^`|oЍl)O;OlYE·x=xRH ۓl]~/E(Z_~Y|X['ˮ~%uo"}oϽp?hS@ \/pYwG# p]Ƨ z?e od4ѥdenFoTuYuY'3Gvg}J-vp"UԾ'XaI2_r`CnQeY;lYai~5gB\,Gkw MKXjum܌ꝃ*ٞل#l _8 I;uu>h#"0MZA9ZCV&av1r\޳/LL.>Sқg@ټ\2ނ19I@ jMA*а2-rTWhU3 WJ|,CqBtkK$K14oTB> 6h, ;t]٢9\oyw,dBo?TXnlN2xZ' cYESg uC*/ 4OVCPM:%HI/+P+3ڂ)_8җY*to ˲-0`'ͧaWHwb$ǂ g$9ş1HXQSJrOcTAC@ cEWxPzfƴgjd30͘U.O!QZ4ᛢ]GT8*4ݾ8D4}uě昼ۊo7fI*w;Ӻ{gsvLD{ KOU iRFx6XLHP`Prs۠߷p C} 7W%k@.lth]NZRz-F/A8̉n4d܀#IQ *ŇIQIyguv$N($1"!Q4Q=Q~qɹ|‚MѮ҆w`53(OymjΥ2N!6b'[U`az !V.Sns(3oǹ4Eˊ`[l(yk:g K(|[(Xt/@*ڛ`eecaoxlӜ)atM(݈37&w=0ḃR54%;@MFB,#hj/[xU Ö)oϱQrW;qͰTȵylRz6 2{"s,rId9]̗eφ=~^l%`8)p:U!6^C 3|h|} Zф\/l݂1)kmt,4݋eݲ" yp,1f%wwC~ xL(ˠ]&,W(*rToCÆ;HIU657v`nZ=zjM$'kpqDžgg-Yyت|-u~Ą#u`q8ƾ |g|lkdjݎWm}WE&1,dE a` >m?EDbsj}/z,N)<t[&H tQc(F(y] y&zo&/ u _+xLaW HK'#M! wG,TPk= /[`ۅƗH;"wrr1gi(H(S@4g< <'-m\cdS?^ zA;O0I}Ra2&g[+Z+{߲. [[y., ׼K]RMИGs+$ͦ}uF+!DR\eJ#ihd9jdwnU DsM)'pA>T;~gD pFN,9bʞ+VeЙ}+̙X֕:)/h7 S7W.2rCQU jYEgz[6:|d>$ja[Md|R(c DQd7su]RrSHyFrlLP'dɗ )'Eh(tOἿ tLSM -|?z1J9.dzF*LbmXAF}T yk"MkHUg +P< ScRwP(sG`W&US 4Y©|YIގ !~ܬ?=ԂU7@t"Il2O=f` TsӸI'0ExX(L[(YWF$i㈗"&5}ʴXJQ߯3@>埔m%&a@݅" &Qy'sED JzPZ䨔77 bMl͆aa4@F68j3oahc0 5T?#33v+.Qa$n&_CqXҚ 1>D}= rEmWB8QA.(osT/Lua^ȰxmKM=M4fW(YEl[$O&s6NwLxf0Eu^lZSV:u4짇ڂĭL)P׭"LG7""ˋDEʌO"6XAkj%䴢t|PA]㶮vm|ap<[Z+Eg{,D տr (w6Ƹ,4+Y @CL\¹pJR 54G_ x tM-+9uǥJQvv7_ 2)nn;`׆`*t%bMcd(^ө$NXh^􉒚v(r|[pNNS>< CSI5:zp-b\:Qй0q'{1rB#HƻYz 2.%t!M g*w3 0Βў{#{/:ڄЊfvy]__}`Q~Z%?kQ6v~Ű~3w%=wSZ9p0MۦEzW=z5]7 &?IPuD95ư"JZ!`FF57v7zF':H<Xqk\U 4: 'zYQe2(15e`ivIfZ2F.W2 q_QOtAh5<` <`|oEӠ5Je ﯳrcL;eu՛)8v]:"){Y3RHd D4a'*5ц^}kG>һsiK 0\ uv$iⲾ1UI5 e0#ĔfP. (TV>ȯ Tu3c7iz8P臬J]2/E;2aܘJ)aEl) qyg 2:T}EJ%T0 ޠ۪/. FC.ĕ ׯ{ Gr* 6ZHe@'Us!@C32$k!lWu\OiIdzf峌w7EHLRVPac21\:b R,ʉHE؆蛷mtٓtb]9o'b@aP}b-( :z E\|BǬX({-6nԁq !:G\W\ݘԕARFjڃ:<G ڞn_(0qyď &r򒾵\ 3=@T˗]z)S6} uhzH1Uם4 B6bHmKbzlF8{7BSSud>aJ6"шjofOt.r}]N>GIyBq,W](Pر@W)_ i,lǡI{@E-2ltך9 |UIG2ߚgQ;o-[F`@eL*-'y} )kԎMs$߳L0ؕ%ģTBfk9sS+&S,g/HP|"A"gm+@;)cݝ}h􀶐wڐb? еHہ(͇{Xvzn+]zRQL> .v^~9 ( 8`ZXЅ0̮X39$rKX簼G.雔XHԼmW"EtpwRLPVcoS +;[YBRXM5'<H՗Xn@QM@F.aq^Ztyԉa4$ssʪ@C]=Kƣd]/4W)^M C$P "3Dz֠m)opsgߩ9GNϟ$$RheP 6"z ٤[VKGkJ)Si i[!tN܌PC3$%86*-QP];1ꈶȿ!H>tQqO}jխY sn"+6H$pbޔauWseP"* Gc&e8Q߱N$ٍ2T"pv=KS[m3M