openucx-tools-1.15.0-150600.3.5.2<>,(ip9|lI̓#MuiyRK)vĉrfUiyzlu;S9SL FӄĀ._DR 8,)\E61Ef_tϽ4XKN(7x8 2qwc;3"bZ!\ҕ lۮ+yF; "AB3[P*%;6?fJ21S|?ol yD09wؒGq1Cq6ǥtk,qU–k@>>?d $ 6lp|     c    6 \  " "E"(8%9%:%F{GH IXY\]`^b-cdXe]f`lbutvw\xyT8z4DHNCopenucx-tools1.15.0150600.3.5.2OpenUCX utilitiesMiscallaneous utilities for Unified Communication X.ih01-ch4cSUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/System/Consolehttp://openucx.org/linuxx86_64P pXHgaj: #P3AAA큤A큤A큤AA큤A큤iiiiiiiiiiiieficiiiiiiiiiiiiiiii785efc3d66faa2ec858cae803352a6e1ef63bff07c88cde1b5854030e1ae37b7a5eabeed87cc09e9c07a4b3a9ff9dc0031bd34935573fed1b1a65b55622fed01de09da77b6efde64ef111e9fe770718640f26d4a4e7d36374da9142099731fbfafa7483ed6376ad7ff3ec378c5db8b56af61d54459c936bacda5b098fbca58ea5fbfe61c8d3bad5d286b202a872e99d3d8e982e986c0b7b8eedd815490cf0b5bfdba7a97203e661fd08de4b1c85f9b4414569c474038a4fd7599984b4b12f727425c43b7b37d5a4db97b6152cffcf2a9e9b0e2b5b24fa4c4fd70042be2a48c3472f83d13224ed92e9264c0131074c5d3ee761cc7a74e3889aa4dc212340ea8dd090459b884fa8ee2543d12380268ccfcaeb73b1d49edaf4a30f13f83df33dafeebb5c7fa3d2e20fbee5431a975c7196779647490324dc2346cc561f0f044048dcc291b7e22e4d11a847ab0803c39646bcc05391d488974b29a0f5c2626498f226b7509ae9e5f975138a0dcb2744e67fcfdbba7f05f11485b42b211310d5af16e84407297fa98ea0a90b062f1eb467e7cc5badea8fe505c9df78977cbb0f5cd1bdb51f2499d8924ad1e62ea2f1a050e6aaf5ab9f3117a9b1adb40a0bc15e8495e9f11c5785da9c00f24d015d74e0d3c3b53eee08acce5c970dce443cb5560d4ea0d618d4650ed8674b28dda1a4b88df1db885589e7269f80d1bd51b8afb24ac70d4214780b9364cae0cceb0afc8bdb6c3cbf7b837e640fb311bbc5bc190138d3797d82a722b7923ff202c364754b917fc91d11fd63bd841ea0fba528a525fd6dc989f30814d5755885cca495652cce1d88f4a051470fe7e8ecd433908b04148853f3f460a0bf39b3273dfcb590e5db476d1d68b3b8ef9970e36894dad3473745a44bd26f5f50087ab4f124b228d267fe88ba0833309861d2a39f701a46676fcefe24145afe1640ef437c3ffbd3120bc734f0ccbe93d8c8b299ee6094cba118c8d9e13bb88a603c1223dac70b509a7c00d8d47583dba685473b89972b469329e29rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.15.0-150600.3.5.2.src.rpmopenucx-toolsopenucx-tools(x86-64)pkgconfig(ucx)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    /usr/bin/pkg-configlibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.38)(64bit)libc.so.6(GLIBC_2.4)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libgomp.so.1()(64bit)libgomp.so.1(GOMP_1.0)(64bit)libgomp.so.1(GOMP_4.0)(64bit)libgomp.so.1(OMP_1.0)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libucp.so.0()(64bit)libucs.so.0()(64bit)libuct.so.0()(64bit)pkgconfig(ucx-ucs)pkgconfig(ucx-uct)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3g@ed@dJdc<@c< @c2a@aLl@`6?_{ _ L^3^@]4@]@\@\s\o@[@[ā@[l,[!@Z2@Zc/@ZaZ*~YYYV=@YS@Y9<@Y(We7Ue@U@nicolas.morey@suse.comnicolas.morey@suse.comnicolas.morey@suse.comnicolas.morey@suse.commliska@suse.czschwab@suse.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.commliska@suse.cznmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.denmoreychaisemartin@suse.comdimstar@opensuse.orgjengelh@inai.denmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comjengelh@inai.dejengelh@inai.dejengelh@inai.dejengelh@inai.de- Add UCT-IB-UD-Use-GRH-to-detect-address-family-on-non-Mellanox-hardware.patch to fix an UD init issue on non-Mellanox RDMA HW (bsc#1240204)- Update to 1.15.0 - UCP - Added 2-stage pipeline protocol in the new protocol infrastructure - Added reset and abort functionality of rendezvous protocols in the new infrastructure - Added zero-copy rendezvous data send protocol in the new infrastructure - Added support for user memory handle in the new protocol infrastructure - Added option to force ODP registration for certain memory types - Enabled lock free memory region deregistration - Updated allow/deny transport list feature to control auxiliary transport selection - Multiple performance improvements of the new protocol infrastructure - Multiple improvements in error and debug messages - Fixed assertion when sending from non-contiguous GPU buffer to managed buffer - Fixed the race condition on endpoint configurations - Fixed endpoint reconfiguration issues due to asymmetrical selection - Fixed endpoint reconfiguration error due to wrong locality detection - Fixed crash during connection manager cleanup - Fixed rkey index calculation for rendezvous protocol - Fixed rcache dump function - Removed logging from rkey unpack in release mode - Fixed dobule free of rkey in rendezvous protocol - Fixed rendezvous pipeline protocol error flow - Fixed error handling in rendezvous get zcopy protocol - Replay pending requests of wireup EP CM during connection establishment to prevent potential ordering issues and wrong configuration - Pass user-provided memory type to the function that checks whether the buffer can be sent inline or not - Avoid memory registration during UCP context initialization - Fixed CPU/device atomics selection in the new protocol infrastructure - Multiple fixes in the new protocol infrastructure information output - UCT - Split UCT_MD_MKEY_PACK_FLAG_INVALIDATE into two flags for RMA and AMO - Added put_zcopy and get_zcopy scheme support for self transport - Added base implementation of is_reachable_v2 API using intra/inter flag - Introduced MD capability for non-blocking registration memory types - Added check for dmabuf kernel support in ROCm memory domain - Fixed exported memh packing - Fixed an error in checking return status of multi-threaded memory registration function - RDMA CORE (IB, ROCE, etc.) - Added implementation of is_reachable_v2 routine to IB interface - Added option to control CQE zipping per CQ RX/TX direction - Added option to specify how DCI selects port under RoCE LAG - Added hw_dcs to the list of policies to select DCI by an endpoint - Removed implicit on-demand paging - Added option to set RoCE lag dct port for response under queue affinity mode - Improved IB memlock limit logging - Fixed dma-buf based memory region registration - Fixed memory handle data corruption when PCIe relaxed ordering is enabled - Fixed performance degradation when indirect atomic key is not supported by the hardware - Fixed remote access error to strict-order keys because of wrong offset - Added check for UAR support to memory domain opening - Fixed updating port counters for devx qp - Fixed ibv_create_cq error message on node without Infiniband - Fixed performance degradation due to using 2 paths on NDR400 by default - Removed unnecessary async lock which otherwise would block UD progress - UCS - Added ucs_string_buffer_rbrk() to split token - Fixed lane selection and added bandwidth estimation for Sapphire Rapids family - Fixed displaying wrong environment variable suggestions - Fixed VFS warning output - Fixed SEGV in ucs_debug_backtrace_next(), upon previous SEGV handling, due to ENOMEM situation - Fixed memory corruption when using UCX_MPOOL_FIFO=y - UCM - Fixed conditional jump patching - Fixed mremap() override - Tests - Added a rocm docker container for testing - Added option to send client_id in iodemo test - Added support for multiple connections to the same server in iodemo test - Added synchronization before exit to hello world examples - Fixed wrong usage of ep_close in examples - Tools - Added user-side memcpy option for AM benchmarks in ucx_perftest - Added wireshark LUA dissectors for some UCX protocols - Fixed memory access flags in perftest - Removed support for librte from perf - Fixed worker flush deadlock when using multiple workers in ucx_perftest - Build - Added support for binutils 2.40 - Added versioned dependency to switch between packages with the same names - Added a separate xpmem deb subpackage - Added aarch64 support to the binary distribution pipeline - Removed dependency on libnuma - Documentation - Updated ucp_worker_release_address description - Refresh openucx-s390x-support.patch against latest souces- Update to v1.14.1 - Fixed ROCm to prevent the locking of host pinned memory - Added CUDA 12 based UCX builds to the release flow - Increased the maximal number of endpoint configurations - Fixed filter for a slow-lanes in selection logic - Fixed TCP transport bandwidth calculation - Fixed device detection for ROCM - Fixed compatibility with CUDA 12 - Fixed rendezvous threshold for multi-path configurations - Fixed error message in case of static link - Fixed BlueField-3 detection - Multiple fixes for Azure CI pipeline- Update to v1.14.0 - UCP - Added API for querying transport and device names on endpoint - Added API for querying datatype object - Added API for exporting and importing memory keys (no implementation yet) - Added support for non-persistent active message header - Added infrastructure to print protocols v2 performance - Multiple performance improvements for protocols v2 - Added support for non-contiguous datatypes for rendezvous protocols v2 - Added support for reset and abort request in protocols v2 - Added support for user memory handles in RMA API - Added multi-rail support for RMA API in protocols v2 - Added support for up to 16 different lanes per endpoint - Added support for dmabuf memory registration in protocols v2 - Added strong fence mode for ucp_worker_fence() API - UCT - Added new uct_md_mem_attach() API to support exported memory handles - Added remote completion mode for endpoint flush (via new flag) - Added support for dmabuf registration - Added new uct_ep_connect_to_ep_v2() API - Added new uct_mem_reg_v2() API - Added new uct_md_query_v2() API - Added support for IPv6 loopback address in TCP transport - RDMA CORE (IB, ROCE, etc.) - Added ECE (enhanced connection establishment) support for RC and DC transports - Added support for hardware DCS in DC transport - Added UD interface and endpoint resource information to VFS - Added CQ creation via DEVX API - Removed support for accelerated IB transports over legacy experimental verbs - UCS - Added support for auto-correction of user environment variables - UCM - Implemented CUDA bistro hooks for aarch64 (to enable memory cache on this platform) - Added support for CUDA virtual/stream-ordered memory with cudaMallocAsync - Documentation - Added FAQ for using pkg-config tool to build applications with UCX - Tools - Added runtime library version to the 'ucx_info -v' output - Added support for memory types in ucx_info - Many bugfixes. See NEWS. - Drop patch merged upstream: - UCS-DEBUG-replace-PTR-with-void.patch - gcc13-fix.patch - Refresh openucx-s390x-support.patch- Add upstream gcc13-fix.patch fix.- openucx-s390x-support.patch: fix use of clz builtin for 64-bit value- Update openucx-s390x-support.patch to add missing ucs_ffs32 on s390x - Drop baselibs.conf as openucx only works on 64b systems- Update to v1.13.1 (jsc#PED-912) - Core - Added new objects to VFS: local and remote address of endpoint, statistics of ucp_ep_create success/failure, failed/destroyed endpoints - Added support for UCX static libraries - Added profiling for rkey management routines - PCIe relaxed order enabled by default for AMD CPUs - Fixed not deallocating memory from ucp_mem_unmap if no rcache - Fixed versioning infrastructure - Multiple code improvements: refactoring, debug prints and assertions, etc. - Multiple improvements in build, test and docs infrastructure - Added new objects to VFS (md, component, log_level, etc.) - Added configuration variable to specify which loadable modules are allowed - Added build-time configuration to disable sigaction overriding - UCP - Added API to pass pre-registered memory handle to UCP operations - Added implementation of AM rendezvous protocol - Added 2-stage pipeline rendezvous protocol for GPU - Added support for fragment mem_type for v1 pipeline proto, disabled by default - Added active message support for proto v2 - Added UCP memory registration cache - Improved adaptive progress - deactivate iface when all p2p lanes are destroyed - Added support for user memh in proto_v1 - Added support for selecting local address when creating a client endpoint - Added option to limit GPUDirectRDMA size in rendezvous protocol, UCX_RNDV_MEMTYPE_DIRECT_SIZE - Deprecated UCX_SOCKADDR_AUX_TLS configuration parameter - Resolving remote EP ID when creating local EP disabled by default - Added client_id to ucp_worker_create() and ucp_conn_request_query() APIs - Added ucp_worker_address_query() API - Updated ucp_ep_query() API for getting local and remote addresses - Added address versioning to correctly preserve wire compatibility starting from version 1.11.0 - Added new client/server connection establishment packet header format - Enabled rendezvous and tag sync protocols when error handling is enabled on the endpoint - Added iov zcopy support to RMA operations - Reduced memory usage of unexpected messages by fitting receive buffer size to packet size - Added support for modifying UCT and UCS configs by ucp_config_modify() API - Optimized unpacked rkeys memory consumption - Added request flag to influence latency vs. bandwidth protocol - Reduced memory management overhead with new protocols - Improved performance calculations for new protocols - Added AMO support with GPU memory target using new protocols - Added put_zcopy, get_zcopy and pipeline based rendezvous in new protocols - Added support for user-defined alignment in Active Messages - Added support for offload tag sync in new protocols - Updated ucp_atomic_post() to use NBX flow - UCT - Introduced API uct_md_mkey_pack_v2 - Introduced UCT iface features API - Introduced max_inflight_eps parameter in perf_attr API - Introduced UCT_SEND_FLAG_PEER_CHECK flag that forces checking connectivity to a peer - Introduced UCX_RCACHE_PURGE_ON_FORK to enable/disable cleaning regions when application is forking - Disabled PEER_FAILURE capability for XPMEM - Added API - uct_iface_is_reachable_v2() - Added IPv6 address support in TCP - Added latency estimation to uct_iface_estimate_perf() - Adjusted knem and cma overhead cost - Increased built-in TCP keep-alive interval to 2 seconds - RDMA CORE (IB, ROCE, etc.) - Introduced NDR autorecognition - Introduced CQE zipping support - Set the default MAX_RD_ATOMIC to maximum value supported by the hardware - Disabled mlx5 ifaces on verbs MD - Added detection of IB NDR devices - Added check for CQ overrun in assert mode - Added bitmap usage for releasing detached DCIs - Added configuration for requests ack frequency with DevX - Added remote QP info to tx error CQE traces - ROCM - Increased maximum number of HSA agents - UCS - Added topo module infrastructure - Added memtrack and rcache information to VFS - Added API for a per-process aggregate-sum statistics report - Added memory pool set data structure - Added new ptr_array API for bulk allocation - Added ucs_string_buffer_append_flags() for string buffer - Added ucs_ffs32() - Added ucs_vsnprintf_safe() which always adds '\0' - Added thread-safe put to ptr_map - Improved accuracy of the topology distance estimation - Added prints of leaked callbacks from the callback queue - Removed a diagnostic message when fuse thread is stopped - Added configurable limit for the memory consumed by rcache - Added configuration for VFS(FUSE) thread affinity - Added memory limit support to memtrack - Packaging - Added cmake config files for better integration with external cmake based projects - Tools - Added loop-back transport support in ucx_perftest - Split ucx_perftest into separate modules - Added process placement option for ucx_info - Extended parameters correctness check in ucx_perftest - Backported UCS-DEBUG-replace-PTR-with-void.patch from upstream to fix compilation- Fix UCM bistro support on non s390x archs - Add ucm-fix-UCX_MEM_MALLOC_RELOC.patch to disable malloc relocations by default (bsc#1194369)- Update to v1.11.1 (jsc#SLE-19260)- Update openucx-s390x-support.patch to fix mmap syscall on s390x (bsc#1182691) - Core: - Added support for UCX monitoring using virtual file system (VFS)/FUSE - Added support for applications with static CUDA runtime linking - Added support for a configuration file - Updated clang format configuration - UCP - Added rendezvous API for active messages - Added user-defined name to context, worker, and endpoint objects - Added flag to silence request leak check - Added API for endpoint performance evaluation - Added API - ucp_request_query - Added API - ucp_lib_query - Added bandwidth optimizations for new protocols multi-lane - Added support for multi-rail over lanes with BW ratio >= 1/4 - Added support for tracking outstanding requests and aborting those in case of connection failure - Refactored keep-alive protocol - Added device id to wireup protocol - Added support up to 128 transport layer resources in UCP context - Added support CUDA memory allocations with ucp_mem_map - Increased UCP_WORKER_MAX_EP_CONFIG to 64 - Adjusted memory type zcopy threshold when UCX_ZCOPY_THRESH set - Refactored wireup protocols, rendezvous, get, zcopy protocols - Added put zcopy multi-rail - Improved logging for new protocols - Added system topology information - Added new protocols for eager offload protocols - UCT - Extended connection establishment API - Added active message AM alignment in iface params - Added active message short IOV API. - Added support for interface query by operation and memory type - Added API to get allocation base address and length - Added md_dereg_v2 API - UCS - Added log filter by source file name. - Added checking for last element in fraglist queue - Added a method to get IP address from sockaddr. - Added memory usage limits to registration cache - RDMA CORE (IB, ROCE, etc.) - Added report of QP info in case of completion with error - Refactored of FC send operations - Added support for DevX unique QPN allocation - Optimized endpoint lookup for DCI - Added support for RDMA sub-function (SF) - Added support for DCI via DEVX - Added DCI pool per LAG port - Added support for RoCE IP reachability check using a subnet mask - Added active message short IOV for UD/DC/RC mlx, UD/RC verbs - Added endpoint keep alive check for UD - Suppressed warning if device can't be opened - Added support for multiple flush cancel without completion - Added ignore for devices with invalid GID - Added support for SRQ linked list reordering - Added flush by flow control on old devices - Added support for configurable rdma_resolve_addr/route timeout - Shared memory - Added active message short IOV support for posix, sysv, and self transports - TCP - Added support for peer failure in case of CONNECT_TO_EP - Added support for active message short IOV - See NEWS for a complete changelog and bug fixes - Refresh openucx-s390x-support against latest sources- Update to v1.9.0 (jsc#SLE-15163) - Features: - Added a new class of communication APIs '*_nbx' that enable API extendability while - preserving ABI backward compatibility - Added asynchronous event support to UCT/IB/DEVX - Added support for latest CUDA library version - Added NAK-based reliability protocol for UCT/IB/UD to optimize resends - Added new tests for ROCm - Added new configuration parameters for protocol selection - Added performance optimization for Fujitsu A64FX with InfiniBand - Added performance optimization for clear cache code aarch64 - Added support for relaxed-order PCIe access in IB RDMA transports - Added new TCP connection manager - Added support for UCT/IB PKey with partial membership in IB transports - Added support for RoCE LAG - Added support for ROCm 3.7 and above - Added flow control for RDMA read operations - Improved endpoint flush implementation for UCT/IB - Improved UD timer to avoid interrupting the main thread when not in use - Improved latency estimation for network path with CUDA - Improved error reporting messages - Improved performance in active message flow (removed malloc call) - Improved performance in ptr_array flow - Improved performance in UCT/SM progress engine flow - Improved I/O demo code - Improved rendezvous protocol for CUDA - Updated examples code - Bugfixes: - Fixes for most resent versions of GCC, CLANG, ARMCLANG, PGI - Fixes in UCT/IB for strict order keys - Fixes in memory barrier code for aarch64 - Fixes in UCT/IB/DEVX for fork system call - Fixes in UCT/IB for rand() call in rdma-core - Fixed in group rescheduling for UCT/IB/DC - Fixes in UCT/CUDA bandwidth reporting - Fixes in rkey_ptr protocol - Fixes in lane selection for rendezvous protocol based on get-zero-copy flow - Fixes for ROCm build - Fixes for XPMEM transport - Fixes in closing endpoint code - Fixes in RDMACM code - Fixes in memcpy selection for AMD - Fixed in UCT/UD endpoint flush functionality - Fixes in XPMEM detection - Fixes in rendezvous staging protocol - Fixes in ROCEv1 mlx5 UDP source port configuration - Multiple fixes in RPM spec file - Multiple fixes in UCP documentation - Multiple fixes in socket connection manager - Multiple fixes in gtest - Multiple fixes in JAVA API implementation - Refresh openucx-s390x-support.patch against new version- Update to v1.8.1 - Features: - Added binary release pipeline in Azure CI - Bugfixes: - Multiple fixes in testing environment - Fixes in InfiniBand DEVX transport - Fixes in memory management for CUDA IPC transport - Fixes for binutils 2.34+ - Fixes for AMD ROCM build environment- Trim bias and filler wording from descriptions.- Update to v1.8.0 - Features: - Improved detection for DEVX support - Improved TCP scalability - Added support for ROCM to perftest - Added support for different source and target memory types to perftest - Added optimized memcpy for ROCM devices - Added hardware tag-matching for CUDA buffers - Added support for CUDA and ROCM managed memories - Added support for client/server disconnect protocol over rdma connection manager - Added support for striding receive queue for hardware tag-matching - Added XPMEM-based rendezvous protocol for shared memory - Added support shared memory communication between containers on same machine - Added support for multi-threaded RDMA memory registration for large regions - Added new test cases to Azure CI - Added support for multiple listening transports - Added UCT socket-based connection manager transport - Updated API for UCT component management - Added API to retrieve the listening port - Added UCP active message API - Removed deprecated API for querying UCT memory domains - Refactored server/client examples - Added support for dlopen interception in UCM - Added support for PCIe atomics - Updated Java API: added support for most of UCP layer operations - Updated support for Mellanox DevX API - Added multiple UCT/TCP transport performance optimizations - Optimized memcpy() for Intel platforms - Added protection from non-UCX socket based app connections - Improved search time for PKEY object - Enabled gtest over IPv6 interfaces - Updated Mellanox and Bull device IDs - Added support for CUDA_VISIBLE_DEVICES - Increased limits for CUDA IPC registration - Bugfixes: - Multiple fixes in JUCX - Fixes in UCP thread safety - Fixes for most recent versions GCC, PGI, and ICC - Fixes for CPU affinity on Azure instances - Fixes in XPMEM support on PPC64 - Performance fixes in CUDA IPC - Fixes in RDMA CM flows - Multiple fixes in TCP transport - Multiple fixes in documentation - Fixes in transport lane selection logic - Fixes in Java jar build - Fixes in socket connection manager for Nvidia DGX-2 platform - Multiple fixes in UCP, UCT, UCM libraries - Multiple fixes for BSD and Mac OS systems - Fixes for Clang compiler - Fix CPU optimization configuration options - Fix JUCX build on GPU nodes - Fix in Azure release pipeline flow - Fix in CUDA memory hooks management - Fix in GPU memory peer direct gtest - Fix in TCP connection establishment flow - Fix in GPU IPC check - Fix in CUDA Jenkins test flow - Multiple fixes in CUDA IPC flow - Fix adding missing header files - Fix to prevent failures in presence of VPN enabled Ethernet interfaces - Refresh openucx-s390x-support.patch against new version- Ensure /usr/lib/ucx is owned at all times.- Update to v1.6.0 - Features: - Modular architecture for UCT transports - ROCm transport re-design: support for managed memory, direct copy, ROCm GDR - Random scheduling policy for DC transport - Optimized out-of-box settings for multi-rail - Added support for OmniPath (using Verbs) - Support for PCI atomics with IB transports - Reduced UCP address size for homogeneous environments - Bugfixes: - Multiple stability and performance improvements in TCP transport - Multiple stability fixed in Verbs and MLX5 transports - Multiple stability fixes in UCM memory hooks - Multiple stability fixes in UGNI transport - RPM Spec file cleanup - Fixing compilation issues with most recent clang and gcc compilers - Fixing the wrong name of aliases - Fix data race in UCP wireup - Fix segfault when libuct.so is reloaded - issue #3558 - Include Java sources in distribution - Handle EADDRNOTAVAIL in rdma_cm connection manager - Disable ibcm on RHEL7+ by default - Fix data race in UCP proxy endpoint - Static checker fixes - Fallback to ibv_create_cq() if ibv_create_cq_ex() returns ENOSYS - Fix malloc hooks test - Fix checking return status in ucp_client_server example - Fix gdrcopy libdir config value - Fix printing atomic capabilities in ucx_info - Fix perftest warmup iterations to be non-zero - Fixing default values for configure logic - Fix race condition updating fired_events from multiple threads - Fix madvise() hook - Refresh openucx-s390x-support.patch against new version- Disable Werror to handle boo#1121267- Update openucx-s390x-support.patch to fix support of 1.5.0 on s390x (bsc#1121267) - Add baselibs.conf for ppc- Update to v1.5.0 (bsc#1121267) * Features: * New emulation mode enabling full UCX functionality (Atomic, Put, Get) * over TCP and RDMA-CORE interconnects which don't implement full RDMA semantics * Non-blocking API for all one-sided operations. All blocking communication APIs marked * as deprecated * New client/server connection establishment API, which allows connected handover between workers * Support for rdma-core direct-verbs (DEVX) and DC with mlx5 transports * GPU - Support for stream API and receive side pipelining * Malloc hooks using binary instrumentation instead of symbol override * Statistics for UCT tag API * GPU-to-Infiniband HCA affinity support based on locality/distance (PCIe) * Bugfixes: * Fix overflow in RC/DC flush operations * Update description in SPEC file and README * Fix RoCE source port for dc_mlx5 flow control * Improve ucx_info help message * Fix segfault in UCP, due to int truncation in count_one_bits() * Multiple other bugfixes (full list on github) * Tested configurations: * InfiniBand: MLNX_OFED 4.4-4.5, distribution inbox drivers, rdma-core * CUDA: gdrcopy 1.2, cuda 9.1.85 * XPMEM: 2.6.2 * KNEM: 1.1.2- Update to v1.4.0 (bsc#1103494) * Features: * Improved support for installation with latest ROCm * Improved support for latest rdma-core * Added support for CUDA IPC for intra-node GPU, CUDA memory allocation cache for mem-type detection, latest Mellanox devices, Nvidia GPU managed memory, multiple connections between the same pair of workers, large worker address for client/server connection establishment and INADDR_ANY, and for bitwise atomics operations. * Bugfixes: * Performance fixes for rendezvous protocol * Memory hook fixes * Clang support fixes * Self tl multi-rail fix * Thread safety fixes in IB/RDMA transport * Compilation fixes with upstream rdma-core * Multiple minor bugfixes (full list on github) * Segfault fix for a code generated by armclang compiler * UCP memory-domain index fix for zero-copy active messages- Update to v1.3.1 (fate#325996) - Prevent potential out-of-order sending in shared memory active messages - CUDA: Include cudamem.h in source tarball, pass cudaFree memory size - Registration cache: fix large range lookup, handle shmat(REMAP)/mmap(FIXED) - Limit IB CQE size for specific ARM boards- Update to v1.3.0 (bsc#1104159) - Added stream-based communication API to UCP - Added support for GPU platforms: Nvidia CUDA and AMD ROCM software stacks - Added API for client/server based connection establishment - Added support for TCP transport - Support for InfiniBand tag-matching offload for DC and accelerated transports - Multi-rail support for eager and rendezvous protocols - Added support for tag-matching communications with CUDA buffers - Added ucp_rkey_ptr() to obtain pointer for shared memory region - Avoid progress overhead on unused transports - Improved scalability of software tag-matching by using a hash table - Added transparent huge-pages allocator - Added non-blocking flush and disconnect for UCP - Support fixed-address memory allocation via ucp_mem_map() - Added ucp_tag_send_nbr() API to avoid send request allocation - Support global addressing in all IB transports - Add support for external epoll fd and edge-triggered events - Added registration cache for knem - Initial support for Java bindings - Multiple bugfixes (full list on github) - Drop UCT-UD-fixed-compilation-by-gcc8.patch as it was fixed upstream - Refresh openucx-s390x-support.patch against latest sources- Remove libnuma-devel on s390x for older releases- Add UCT-UD-fixed-compilation-by-gcc8.patch to fix compilation with GCC8 (bsc#1084635)- Use right documentation path.- Update to 1.2.2 - Support including UCX API headers from C++ code - UD transport to handle unicast flood on RoCE fabric - Compilation fixes for gcc 7.1.1, clang 3.6, clang 5 - When UD transport is used with RoCE, packets intended for other peers may arrive on different adapters (as a result of unicast flooding). - This change adds packet filtering based on destination GIDs. Now the packet is silently dropped, if its destination GID does not match the local GID. - Added a new device ID for InfiniBand HCA- Drop doxygen BuildRequires: The documentation was already not built with this enabled. Removing the BR causes no regression in the package but eliminates a build cycle boost -> curl -> doxygen -> openucx -> boost- Rediff openucx-s390x-support.patch as p1 to be in line with potential git-generated patches.- Switch to version 1.2.1 (Fate#324050) Previous 1.3+ version was based on a development branch. Supported platforms - Shared memory: KNEM, CMA, XPMEM, SYSV, Posix - VERBs over InfiniBand and RoCE. VERBS over other RDMA interconnects (iWarp, OmniPath, etc.) is available for community evaluation and has not been tested in context of this release - Cray Gemini and Aries - Architectures: x86_64, ARMv8 (64bit), Power64 Features: - Added support for InfiniBand DC and UD transports, including accelerated verbs for Mellanox devices - Full support for PGAS/SHMEM interfaces, blocking and non-blocking APIs - Support for MPI tag matching, both in software and offload mode - Zero copy protocols and rendezvous, registration cache - Handling transport errors - Flow control for DC/RC - Dataypes support: contiguous, IOV, generic - Multi-threading support - Support for ARMv8 64bit architecture - A new API for efficient memory polling - Support for malloc-hooks and memory registration caching- Disable avx at configure level- Add openucx-s390x-support.patch to fix compilation on s390x - Compile openucx on s390x- Fix compilation on ppc- Update to snapshot 1.3+git44 * No changelog was found - Add -Wno-error and disable AVX/SSE as it is not guaranteed to exist.- Update to snapshot 0~git1727 * New: libucm. libucm is a standalone non-unloadable library which installs hooks for virtual memory changes in the current process.- Update to snapshot 0~git862 * License clarification on upstream's behalf- Initial package for build.opensuse.org (version 0~git713)h01-ch4c 1762188828 1.15.0-150600.3.5.21.15.0-150600.3.5.21.15.0 ucx_infoucx_perftestucx_read_profileopenucxio_democmakeucxucx-config-version.cmakeucx-config.cmakeucx-targets.cmakeucx.pcopenucx-toolsNEWSopenucx-toolsLICENSEopenucxexampleshello_world_util.hucp_client_server.cucp_hello_world.cucp_util.huct_hello_world.cperftestREADMEmsg_pow2msg_pow2_largetest_types_ucptest_types_ucp_amotest_types_ucp_rmatest_types_ucttransports/usr/bin//usr/lib//usr/lib/openucx//usr/lib64//usr/lib64/cmake//usr/lib64/cmake/ucx//usr/lib64/pkgconfig//usr/share/doc/packages//usr/share/doc/packages/openucx-tools//usr/share/licenses//usr/share/licenses/openucx-tools//usr/share//usr/share/openucx//usr/share/openucx/examples//usr/share/openucx/perftest/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:41432/SUSE_SLE-15-SP6_Update/2317d2503d39928489709d2799d2b271-openucx.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d207698cceb8939366dd3f72bfddd00390085f8e, for GNU/Linux 4.3.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6e0997b93ad32d637bbee4db8d02a8fac4d311d2, for GNU/Linux 4.3.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=86e03bf26a85ceb90a8e1558b27295e6454bb27c, for GNU/Linux 4.3.0, strippeddirectoryELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=50caca16064054c680bf4f70c96a3eabd52c6689, for GNU/Linux 4.3.0, strippedASCII textpkgconfig fileC source, ASCII text  4 RRRR R RRRRRRRRRRRR R RRRRRR RRR R RRRRR R RRRRR RRRRRRRRRRRR RPRRRHz:^蔽\utf-87c5655b8f02ac6db8845fa9adfa82781aa925ce504ce761df357accc85883350? 7zXZ !t/e]"k%N6cბbMb-.v%;ZB`^q.Bw`]I 7F8aާU>[+0iogYk/*μJ(;<\JS{I1]Ts[D'Yndz=KYYd;BAj"ROF]+3Y5C[L:8\:_BzΎ<*tj%}[AkWHGɣYZϰPm*ҡ#pE PHr<=/xs>?;aJv?TZL7˶Ai2U5TcJz-GQ*O?*M]2n(9a'hFek{fmp<݋^nǪ(&% W+o, 4U?/yJϾiRY-XZ(lj!pMAF*ǟ0ONwXࡸU{v U wn'ۧ;T۶.  :~)f\aWWM2"6/P[?5͋A%k1'r`ɌF8,1i"{;ԭӔx<>eT&uM78^{1#^799|Au>OfAZr,Z4'7(yL DJL-QhBv4?R@UFj*_s&3MD8X*Lxh|(bn@Ȼf,T`J~Wz |A'arušx*bk-2% #|BPڶ,5] D{"mh,%"/,$0B Ӌ)2ǟ@AԽ#<+' I\oopL&b؀B^D pz#'sCmF%ݪԢEEF1%:'S/d,U, v[?#9y@۵J*(d5%t F\4Q4s |ߝ68 PRFNLs#O^9(#+5\n"ED"iG>P,I tF ih5 dɨZT pk6ئ`H7F Ӏ}ZnWk[\(-&@N?R/G;j#ۓRٟ<˘ kQVJ.9Sla =roL ;nۛ;58MP}P ,[EW #d4&S|n 8i3T77tz5`]Ᏼ|ZϿ-O#m2V'Ы!+պk+PL(.6PE=،ptOhQn ` N$ \Q:S ƾgVVy]ϝAZKR9*KSZ<_<6:  T.yY U*5Q _S]14wx|;ЫQN34u%*wqT_*u"̣L$=FJ YKiHmC(TM8ϔmA=($rp@5'Ԉ? dqtÜJ3㦭Qk|_jG%}-:EkJ>ۦx@ 8#@Դ;Q!hTU2YGŘ޸l*j[K_nCg&|@ӉߐCn#f[}~f ?2 xh-ɯSL v4kg!uMRjS2oSXY ED$>>Q `S%X_^"¾3MCe3BXm[p|}Wd~) 2Q'!?B YpTcmpJ :NFq!aX }ˇ"Oؓ(f#[z_"> ]bs 99bcB i㶼Bcyķ\`3;£ M\k"Q=*"ŠpijcNjR(Uf͈ýOv,OjZ|u])%PgQIv<3< ]ծATHbK6{A;=ZAZ`c>KA_/*cJ+L$X>!U&SΉeq g+xE[( xN0cE7G3yg39Ýxex)lIM|{iͼBEӝ3jFUIYхft3޻n* y<>)]CӍٝ 5E}xcb(Eu I\ ң'?ghd~. Fg!Q;T\,qqN|_BՏ _.>];[t*RtР:s7ZY?x%wJ1ץ4G)]~[պEvY/%NЍWyPxۭÎ̲T 8YBliChgc .ZCVC^ 0sHKhKLVm.ԟoa=`!Jf~)MnhR(AщABrRN*i!0ȋѲmjz ר@_x Ötކ o<0X&pO:OVK|y{)S"8is} 6/NԔH ñ>k0& V>ZF#^vHSP)|]zbO1tQ26zps=BGU$:؆(2e. v`Ή_`cnKu0xyh֘5p8]giZ.+!-}?Вܮgۿ2N0"R"4t=Efhi( wS\=*;r aD3\v 4cg/˃l8ΐ#~C 4[#mQI`$Ԃ?s(5LkM^[ rRJH)NPv;v&Tss{e! #:u4In};.o4HH>:1^^XAY V;eIsQ mFNGÅ*?e1<ާZrG .ąP0^1z?paI:6'qй5'`4U@CkB=2PjFVqU +}،-I~BK@-\>?& .Uq˩Ő7&F2@nsoKV7~3k"N~<$"g$hwdb/t> Ш/[h7VbCfD/JkB*bnRjƮ >AirPXihJxJ ՙ}FGqw9J6 omyh!4UGL' KV6!w^O&(WD=.h%G[{`ObIDU.!&Si, +V`9>O D>˪ѠmNm+|Jg r&|/,L0XY]US^#>Og岞 ltW`5!߫HeC#Mϒ#j o<o)O4Pgv7c;9-Vr1P! fqƜPin=>W!9d3_iw?pB*V($shƬS:V 1xrn,oIQ&yBn!bf*t;%u72H憻' 5c oH 59_a`jJIvFH3E-79r*z=y]9$x QP7Tv}X+1hs݄h/]~ V(_Z#zv$L}k&U@;AXA9xH8<[E*>/xLGFd(*B zxv5Nd+NH"68hoA{ jY`E24Ig+< |I l/ o[.6aQxf$PuL'>Tpi6wF]pļ[&.9Z0 ^g-/T5yNl󶥠vF]74%A2ĕ/Pr k .̏ɥu9O"XZ">[F1!UGO1 54a5<jқ `r[%0jXmz6qM^}V[MFloXiy蚗cZv_HƹD&Zv۞2ӍY*^Ś= ju}\ ]9n3aH2ʁX qB㈣ y{%6!\[mg}KG4YT'|/k̨ґaKl4z=m;rD@b޾[ b845|q欄e@k`hQB<ubIPm:ZNu8Bn4C-_sI=T{؞\ "'qNYz/`Ԝ 㢚+1A!jk.jB)'&1{ǒ+[IC.9*FI$-[$2y O/.)F&'a-@"kevQ S| zwϢ{t{Vs*U:Qy)pƶ4vIBU\ܑt<#5~1D/]oě|wf}s$v=Z1(x pޏ s_?A&3n $6zN.r?ά`'Ϲ*rF8Y{d 5_C@>:XX>}W=O *x>pe>|v` /FƸ-\Wg|Ǔi02qܭ=T8 ]Ul6 nű'׉rGUeӇ_ 4$rW9l& }-"F{kԖ{vb 7O>| q"OقjZS Ӡ.{[ٺf q-jtb"@33t}tHLjC@[>.իP]S3c\F~${3)c4C×? R_j7P`vKްcA•|/\_Rg[|Dj<%NCEQ_P+OL%D0wgI ȧia&})[}:T[~Vl$49W8ϞOB\p։Ϗ9ʁ{" ?B>Wb=[;TI]\ ^];Q)m %Zd )6%.ݭ3wlLSaqE%s1̻lZzQuէ2ϧNZZ1oZu_X=x.o (Z8ZX2:B`0p|5teZ.c|U܃R 3IK Di"' vP~"u 5=9k2^j4bhT3iF3G ?f&Z)uWTy<rSf%]r\ 7"Ngds5ks1( 9}dlNMK=uƚۤ.;-;L`=SFFɊB㌹֡b{4qL飶Ѐʾz&vg~QC%2ǖ뙥 z&@4dE1]7[d Ca_xV7p+5=_T N(ka}xRpJ>׸0} 3hjqxSG{FtXX6TM8fK9[[}zk[vգy\'MH)l:kH?);'WMfg)Xd2ڦc7˝NB6Wci3hLHMa=&L×`XR FKU6hxRkT{6 yF!T!b̒zd.Ll';m,^k)8V> ?]U&M E˟l4nydNѶtv1Б0PB}O'Zg4at6 րh*IMъ=v~Bĝ}9e/Hܕ:w3s!@XAr䣧- ZWP%#3d-=!'aKE)inpHifhY0LV̧Ntzq8ӿ!GdݱN],I tOlt_w'=]YZaiTOD`^$aWj{vUwo"mY9Niqx_)pEEߧsG+^^/`681hMKѦ krykC%0,8 t5#e +%o04uaE!IHHh-94YVJ])}ie=Rrl ~)˫5\.G(oN:,̇coEO#jH6jxKe+,zmFg {8I@(E_ASńg(*+324( ?(-;5|M+R@ ׼\b˄=pqXְC;Kl'Y 1=X;)*LK1 ӐXZ!, * 0u*iD'pHޝ^pk('p؇RRV6?7ჸH1Qv&>,ofXfYpl$F媏r ةCp@8(;3mx%M.a4)t@& fD=\_ r`^3Rj Lt^'6NVqӂ;Q^T 8%eosNu2$s'(X,R}[8m)yp7{,T#S`3~ ѿ&y0t8 ֢}9::W [붱Q|@l\c )aBf-6v3.ΤxTo4hZ4)ղP:ɵ>}29^X:캱9n^ 3QpZk?Ȥ+o=/+ 0P2wP|Dܕ:3 "UsNB$GO| 6m/1>PYix GHp^(gNC;3z\;Q;/ۇU8!iZ sڜb+ ~!,*oXۓyߜUxD2#; A> S BE\+8lsa NJ.cʽ = `x:/ R \=zdd06sZֿf&4{ГhAu"d.O+":%ud7X E3SāH8t%>_O nEp-OlשVd!#td`foBPSNo7i%+]G.=c #ަ=owB1_*ڑ9D%HOKCU0UG(^)|M= =őNPerhi*Ȍi/ ^m'HtۮS.giDYi+Pzsc uȳõxWRj$⛶nV;?oXNhdoi\`>`i31B `Kt D"AXAȣ Q&2z|t/EZHF┥ٿoRJԳ7V]KQ O͠h5hިZ]FaCWEOzZ̃P>q~h߸ڹkK͒ʩLy>%V?fuQkS._fRpnPPONkV;M7(OD< d;d^_By:WWOSGx"~Fs1/\ u^o&EdV!R2ZTuy=֦S` &-2zQ,_2f{{"}&VYRjl(R 쪋%H^$^]Ĩ{qʕ'hK|dEI%䮤 ֱ~S!)s~tx-W֩6AͲ c~(J/شJֲ74XR-ïB`'#(jJӹJ* #k"қ 9V)3%L!.A,A"ҭ,dq odʣ+3GLkWAw|+QPG + G]8w-3L^s3\'yfI`6Zgl,7a +=l!UJ &l_iTzѓm;y#Xؤ 6fzm[,.٪V L$x(Ԕ2EX pF{ 2aIm`bRHR|2ǩ{-]l&*=MEq,5N,g`/n*.1g`> Mvݺ8 VqrbɐD3iɌ괐r&PkX9gt? 퀝qSp۷ mf.?V-Ї ~K|PcJb݆}\~BӜ y0HmQITʘ*M?8m"ybIbP}03I33 E'r0;5d!6^1a/1_QyFb?WionNY5~_ȼ!i4"jzk{å@H;9ۈ2Tn]`q{m?%ЩMQ _ , UٝL1cuÞ׺ %I{R]{YLC5FntMkCgt0>ć4MfTFB؀@k%({3c9FGoֿZe\p"!))RkXۼ+\b^@~sCDT?c#3 gOdZun/ɗK"W s1a`&׷l&j1 i2/N#_U_/pfĈդ)\7o1VN6y!Rx*>}0H]eB " nu}-La(HqA%a owkJ-'yMxY:N[)7*dPlp)DaJ]0OO;pnNWB~NfG?ui>oX /w?&\Zl.|@~!ZYJ4JUiιA:zm@tSWW5nӪN%HW7y{^iwBԤ%rV&DK+@钁ND OH;d |Ug>Mѻa,WFR9UQ,4^=aV摔9z37<"aԆMH EG2Z2n>+$Gc;d%61Qgn |R&I_cPcK/;DEFoRda՞Jמmmq3e1u`qBTJRұډdw1Kr7pSv>f#9h-j-i{x[w 9gz3Vq&/#s;B#m'g$^?q7(-?}Y8X(9"t,>{GG#~v"eR~M[#A3€I'LK~ E^iNLmuJ(AIK} 7(ybfqB׶c6& #tWń}!BUcT`J^R}?9٢@o*@|qnRNn+ч#*]Q ~l?pszx;&gcL\ׁ[^jRr~F+mQ3c=$JHnw܇{I/up ;qJ- –~ G {@0`Ic]Ȓ]c`{h:c"6dyU @ Ug(E^ߦOϛڰ=5wO?c Aʩk umk7HXRUh+@I;EFYQ8iQkE@!]wvUi:Z0QQaQ+G.4!qTqMb;Ш 8˾"U7jQKBu|hY aྦ_3 %H?&샽67Kt+W0މd0QdZ-eWRL}wUHH}ӸxZ<Ν;X(kimZ*4<sĿ!etJAjwƢkN֑D#@uVnOGwP)A9i~.UϏ;<춣K28u d͊h'4bK,8,VMjMf cV˺hBqDPW9jbK!*̼RpsN I1 .x'Ⱘ35~d ,hnx ZSE:̡.ْK<P*2H <ڨS\^}O|4MLwaF$svı`p;`Pg>LhkNNL7"s# ן2"? AY k_u ػӸ!KlǶiN?a-:s-`|dX3Q,uNx|c y=嘀Mzv$R{RSq{A.VXm&p:t9l3JDTωOܥ i"^?o`n-e>V&`giHdv%'؎\ѡ.ag L%ldccA֜"<0(!4=ʦ0Cn'ܽ{n']U܂IDvz& pĉZ',)ȾøN{hF0 K kCP'\ˁN'jd, ZmoB1},m㴌F`oHxS\ב.#,NV3Zꨐjϻ@;G-$?1b ~KXuvx4gfw?Y[%p.7r~BĔt̀G w7 ald<"㘗aJw`7F=,\Y7"Xf`[ds"?80}hSnx_+d a ^i8 OAkCt~-Q2KDpǛ/ ^p˹+,x|HA%nSD!zUfEID ikEOѤa Nh|AAXL6oNRߋ^cK Fҝ,J^~i68N R( VțUroNec6-\&q|az<ݲy֙ws Νd9s2 WݝPpEC;4I]Bo r-1n  g\#BniEdz,)H~_Dk,R3Jmc ont<Po׌Zu-쎓B*Zmex? >) #P]BcS!›eYOAgipA$kY<=.0%CWLaaj!M ?!F3SBfPfmŔ,RbECM#(xa̚b 0TaPn#׷W{geړ$.l 6BX #DRCD5UA܃ˁř념Yǭ; jMՍ\n [8 8.u;cR* ݨf3k–1ʝޜ-~g2T1*0|yv❠DŽj--n$) Ծ;OI9 U)pV}޲Mh8Jxֹ:P5jҟ2C5g(Jă.NSY[C7VKWz1ҚA;\ճ|n3}xuj 2-H-`?7Nta?H Jзo2T takFrfƂ)g5<:2?8jE3H):AǂV!bp8:+9EdcCA]r-Ov2 ̧[#dc؃x8(, &݆ ( ?ʅ% 4ΡYL 1[+U!+zB`ltheٯp)V2{(Dg΋Z n Q=KBG5Ӯs5:ġetep._3 Ɓ2J҃x}a(^L&- r͠eM3^U}_Wf Eq9" n622†|롻+ 0Ha}Nw= *bj6hĚEwM;E]'^ˆ}eC:jIICr”(ggRlw ו& p2X K_ RbB "ٛUz[NduPܸCWTȕYyL2B8R2,M1 5b]8 lL53>XnG)3Ր\7@cA|-&i9Kgש#ǭ=ubJslMSxw< QRѭ> jk?Ӈ3ee2=t5:81v&JӉrUu(bM*;66v< DeM`u*S1h#?;# .1E iĕ ,p96% W.U6ⷙ 7la,vYr4.FfFh8gFjNΜL^-9g٨dַ3 I8T]jy"I g*\XTObA'"}`qZJjg3LD'(%\yr ;|BG5ֱbRC^-˅N[V.҈mmug|Fo8r\>DaE K+>ZwimͨF\텳O9PSB<&?pLCR[mDDr;h /NcށpKG4XN)QtHYw}WI!# 1HQ<5@ӍD_ؐz8,p9} (n-/g~x!oɀ.QTDj\ 5}j^pu]]})颼 bTLi !5~2}~ IL*ĈvVSڭ<*Æ-O +l V&Fwm5q>)/5Z^V4KIL}*=<5(0.BZUFӍS<5_="AscݎPJWTG'jދҭ&"s!t&Xl Z`^~w|l<ьle.|l.Rˍ 6b3Me (I\[=6ܜLrA2qx[uĔvGi4a"z`XnH;cMF~ת $ߒoBlt@$z."H˗x?dEq@+S(ހ#GG-}pDfdx})Ao- ɕg<*{U[ HZi5$_v[@|iP"^wv=OE˜ Xk+vMSo[vm׊$u!!|,ZȞ_ $BJ~g6זIO_V~'](V 4yNbML:쯊_(I*{gd)/y%!Gi菓 *[hy\nVmW 7D-8N樒xCR-r |ݚAoypdp.դ &L*4r5^@yi=D53.ةEhVF'J[0h: >yZ3%-`8HۢiJ+' 1r@Ekg"VŒQ-Րo٤zT\ qh.ԒX+@PD*1_ uv^q t2!sTxQEO[ W^b=0ub(/f!͡]YH-f g b5T}i@o|VJ< $RLO-yѴ7ȶna4<Ԏ,.Ҫ9lD>f"T Zs1%-KHƅ%J¨0Q߄m)Wt=%JoP' +!>pb'g# /΢c&%xP[٧ d47j>kNЅ7Bc)T3q =6 fEPֲuc sOxZV,=2唹"д;ڱ)D 3K>kMzٔ0 w,7G uͳٴ4gu`_cԢy8HpPm4Ck(8xA4SE\L񓋹ڋP6,OSr/% * !nd1h" GJ jJ |䦏DSx-!-ؗZc8Fp<߰bJ]\g#0Rpp]c+d[*w=ˆ 5WddfCI1@YKZ"l_l b KIYޞ!OS*L3l=JpK:!"i,qw0RPMpcMafCOS+qac~'ٸZYl {#KQ>YNCF"u) Fk3,q8+j6N kdvge8AzK$:#N \wKH$o_ #XȂm hqc7Sho o޾R[?-%*\M6Й$*p޶K?A"4 wM$t}=Iz[;vSAJ&P u*apMKeEtw[QuDJ/V-cSWO^͇Rh36%/Lc!,w(gp'hW"a`vU /N:"η*eP~n"g $_xeB/aB_ГE%:F{Uѣo[B2ˣeL;!mY|Wm_~|"!.EL 3@rod_GE.a3o45 荐`0[\=Åi*XhHTßbZd~=q|f|C ϽqT<)淆LEjltM?5S GkcbM se+SLT;m $\XB( <4,uO–HTM3{Gl珈A#%*Y+&]Q+c!)nĔE!Z,fEඤ ]")G%.]q_DBϬ-,ߤ!l!Q0ȏ"Q7XTF9 x^ȅB`GZMSwhw\-]}ħiH{^wjYXݜKHƭH]x2Y~Ply (`O `֚P%&}ܘhh' ΨU] +G@juW(Ʊ7 V"pl1čBA˰?࿳Vo-sa0?$˸V KVQcMP~*" Y\fi"'U|,lvdw̰>aҨdG٣dլt=1児FZZFCVbt8^qW.t*}_O}a}땶>cלθx ڃc |QDAbp1$l1V@O&Ќ@5}iB&eTI~m 4&mq4bJ.p]WjQWiD;R![v c-JWK^kEd-v(rw\"]Y8)b/oW5bq#Sn=p)gFp) tƮxz-*'Dt$D!LEADŽFtX Ԩ)OQ/^p}LJ$5B_)H[#>Őع:nh CT/QRe܅^w!XhޫȕwP46F51@α_(TsRNAy7JH7gk6{v~vc|,֖^22Hq W WwݚD4n`څKnԤtCLC0aQCyks//C:@.&F]-]cڊȉ&\U9K<[x_}PˤPP7&ˇ |X56\ĵ<@dY\!,!DpM=Vzh6qOVmW/?J>+Ll!7l(SXi5gͤvYٽ6 7vRZL+}!MIy Ze7ss>y/yHu4\7<{ #OZoppO@Y YiPxKR݅bӔΤ+dldfu=9"4 'o3!O? _st:1,(G/i1,So3.?5 ~oKQm1wa# 龍йF2/G͋E@XR;f;ZFٿ3Z?kk8 OrO8[ot١epyQ5> 7bx!-Nu/$Ի3 U?j'ǪI;4n:f;Ykfo NRHz0c Eripc.+Lj'!s&-"=i; aS=uPwS\c턞 z`Ss.q֐ y@AG¯ SLgE!&@ m=n7ܫO`mUM0Fv`r ds18"ݘ&leBsL|cncwV18T #SBV'"ebĵl_\n{TsǦI Mm,~s7fk`-H2MSp.TF['@!zc EHTRO\Zfxas% l\3j7PK)FРL}*{Ds@S5qb|{$>fhu.KJ;dp'H#pZSDG}7 s/]lf-*-ۨG!D.QgoDeݲeoDi qWt ,v =_,^bX+MoL kgeq8Hß~ɚ (Q)(mf d}=r!LihoAo}( =?iΘ bg_;jd\vs {NH)8d/cV* \&vw.vz%UxKs71f3TF#$oRpʎWQf%JȒTe"YYO ݃anmam:Z" HҔ4|{ua'?/=5yO S%b'쐣Q(Ah5(tPBХ['T[yUjD բwv_a]MW`{r4x 4=}”mQ L{ZzP XR|GepX6gw=Üy]ln{S,vy ;iG-vÏCug2W/en)5nN9Sw (ND+fN+=r&"?|cR{fMagD{!)cI$[e1왅+%D$ex=)yPAa}'(Ipw(3U\_.ǪufŞy 996қϚp֙໹,܏V7%^+F(;gaW1?А3$5-CEf2ǓOcr^isN&{;BTrEg2YIn]Saiio,#Ӭ@3H"q~cKBēox`4?Z#`5E1x ^4lPzP%fAͲ HO^_m̗Qj mVN#W3oI ߻2˸u 3z! HOmշ k&T/n^≍m= ϝNcF*#R4KdS((ŽyWfgc2a8QۺBa^]DX?\_45+.A.n}TQz ;zAwY O^Tu:@!UpLgxO߿Wo?1E32'&"Yz{'|8== b[v+Fl fƝ7GϡmA`LZ6j"͆$r>2ݑy'MkYZHs_k;WōqNtt{Ŋ)Ο~UH3u]oLBUS2@fY |=?r>BcIǘs~+`wO$|L)lB^f{5v~r *xeYj++l^V-APWD8c5Nϕd=`^C7$|⤧Uע\DGyC1 j16K$%4eJ noP.S7q $?m+b#\Мmla6p2Fa?QN-WGdג lvJmfu H΅ lU"`GֵMI;@_MCp 7rgY)NxKHw Ћ?bZP*"4w0FK3Tɐ$.h%-w8N@P4޳ zh2m?Ywէ.N0!]k:ÏgTE\/x}lk<֣uVk9"&VBm&pp v&I'dԅ;e0깙'0UNy4Ν:'v~3F0MPF ._>1C_6`i`3d'q_V! rE8 Hʇ,H%^:GwQ -ɠlZ{ǽeyzqp8*]M- f*&>Z2ܑu 9/QQfĥ ,Q vO1ka,(o2Mt˘9<% ?*LRD$N4vRkO@Ous匕@FU>i2:3ށ8i$JyW|Hs-(&U lE+DΈ\59ʀ:@--3륧U8x24F,e>`K.4ҏkb[՚5^,Kg)mvy*" !=+p)lPTOqЩB‰IςzP#}))/m+D< Z.1`]zʪ*?'QnD^Υ+g$RC$ ZKL|'HZ ::#fHV%&#ޏPȬ`D}Hx G֤<{be RIw`e=EUm ttvՊ?@Tp& ʴ:-_cH:_" *f8LO0d)z c_Rp"MY*٩ꦦ(0&?aF'k-t^#dP#4X;h>UQt\.2cFMh,)u }?`Կ/v@ bg So4RaK5~$"j:Xo1þ7 gAW_ThppxȹjMD 5vS=xEE "rehU(YԊL A̍e>&~4 U%喅T`xR6cTI&g?f:gf08&DjȊ ޟ8Ң;UzTgwQ؈ sg HɃy ̨jwI4Uj^Uڹ; 6z܌q8 KᩧY'a1s|^jC,th Ϩޜk>V 7 V&Z ww44ې9u#I1y߉D oM;kKV$: tA09Vaua$ObK/3QJͭao֗Q,^|6+4 yh* \5LoQRZfz< Cv2tc-`*q]%NnHT@\'yT٤,C`&$?DѩW#;2˛W?+>rӶ~p$wo_L _@ɂ +BQ) љ EfN9Y@KAq7M!5G?Z49m>_;X5q ۱Sz%#aM5,`hk2#{@4oI?e@[0ufN5<ܴk/ wݒJ- SYIǃ O^TGjκcDe8;a^>z>$0  \x^B1mA~1F"S3e1Wv˄]H#R]Vko.0K\nj)WhMaz`8W;2ZѱjIY?[| 718=aBO5 ͏@Ex-jLREʐWp1su*9skCP\)ٟAb@JHMTpiU@٣% `* R4Q`췟Ts'_ƈ(Jul`/j_T'N '4e;\P c2&U$ \0Str<߰S ڧg|P$w J#l2Lp"8=B}wHvu"b2*JCvTI΅ò>;Ҙ l^XH䗴-J%ꏋLli(StI+g-z)G>=RFvKj7X2 KTֵܖ85?>;F˒j U>& Ӎ?>Lwȶ SŬbs$e2ai7r~u٬z;Ң昻C007b,V4ج@$gW~"HB4|v5>5VǦ4GhGg,0uuIJ >dfUR޿$Pp X~eq`^Wz'6` *~$#l(P?;P{} LԓEԜ3(g\ eח닕uqY px.ʐZ/ 2x #R}H^ޤUݍeּܭy9}҄CA6MxYrحB bQoEfMY %fm 9q*(/>xiZ2Q>e 덋v*~i 3-3^^O0)D!K!#~dr);Rw0M8pBPWh!ؘoT|6wiexWU뜿hT޽Bd=e2gp K̈́]FWøoGOr[hO!QG;Q\E=Dog?t-q+ƙ,"{qݏ1UB*nK!Tq'aXkW[z\GQD|UJlÁG6'0ըCg}hN{483 ~AS HQd}ąO Z a_Y2xd ruh_Z;kuHJ}y?SO=}hpM ,X)gx79\ ցַ1rF/ۼζWy]o VLO3'GUNA%TDS׌{Ȉ7/E?~ҳ7"}ؐMރAdadWo8r$ɖt߅F=&2"}c@Z4b8^hHiիL5{^pD|qv?Zfhir׵\4dW af3#0;fJ6{bFa)`XXM>`nX]o!@HgNG+량̸8Dz-&AessH11>O%z ALn4@KWJfgaX>_ʼ2G6Y6!0g5VhC\e S.PpY}/#@1P*!y5&’8B?uS8M 3Pu(BQtQ-MS$ԣ0=r'?H2, %M4=7X|_@>Pzh|\2T폊@3mÙ:9s)g7X<]L}u|'Q.KY9TJ Gt]C~RY{ӗ[KyѧZF%89 KQXxW! T!-H#$o͘pV<QY,,.JkyUYkg߸_li~X#Sjˬ C- uaS;NIZY[ iزf@z4m*鉓Ȓ*d3ӵLcxϴՌ3orD7S%QQ]:C.]DIzUbozepCPյOu-d#jUq5$sP(V#5}vc%˜Tk_!N.  HY zz_z3L2G7C@͚\%AvN9w㰺|δo@!/$ Y~hT&ApUn8ƝNSZ|Q>CdJ81F K8a`xOZr>3_R- f% ~\b \VT^=S[^Eѽ%6mOK92fJ%#ۥVZ>[{7|'Fckrqh<:8k2T+ # FKG5*dRTOgq1l N1uB% _fpVS&{CΈ ,tԶ|D`C[5PJ>U2qON1nCϜQB$t]iCV"RW(LV}fzcܴ2&b7I_^[: 쎐yٗbg8v'YR&ȥt=\L͠B%YsL)]WOjJq~eRSb-~l\'Heײ؇0=лaC`q#Ih!{Qju._#DF}c2l$n^:3B ]5G UJ!@SҁPO: c<5}Hztu,;1Λ\hs՝fOqɮ8ss8ă'#{}~z.$m/rC%A{?kSF25®cj5-I ֠&V2Kv滸"^´BTt].pv;&EPT&g-hXmݚ*[_X4lYZMmECCGj)td#ܱ &ߪ}m`^nEOdRҌ5:XtQ[;h*gU{U)kl]JvbBCݟsK#(aM4de qa[&vl`űȃN+c7frV''sGxl>%b -P68 ^24q.<`q PnzIQ'bR}"s$s>2[yHwj]Fĵ09BkD gUQzj&hU\ `"W2ݴMP.1HM; -qLr!EzbX9$>m>CfL[_6LegKVtݵ >8C= iY-%StcȮbT^,\`"CʕT!MLXG'B " Hǡ1N/Pi: ,Ez3)/ W;B>@vZR }$Cto[U~ˁŸx$ȘTNK?FJ,J=;FlVJ)gU`n̴o"fi3M,`^lUŕmlw@*e8Fpb'.֐k29Оe.6>sVŨ& #j*A\n@ @C-=\sHc ŸR$D;@aBy$):(AFD񑿏%}KD͓(=ݴVឩwJOJdOJ=hx$Y.+)u/6?}L)s J5}Y<~;_? c yxyDGk4YnFND49kVN 8Q zulb_kFh%Ow EcL~Qě(3g#N[!`W2 <`Ƅ-=iDRL?}|ld'BW`#o<@ο9@?֙i!o]ӱ-U w:l s|F6D.~>XV?-Bj]Σ.iJd;Ұ^572P&RkJeXdzҫe $bDh3trx3lJ+Q)( t. (& WV.`9,m856j%#[Affto;P7W}O] sB1RAͣ}ݲ vEM31З,j{QW'A%$ݸҞ#J&#JX^^ p1V8E#!ƺ5`tI.[B1Nd'\~ YbeS/RzG|H:Yȅȗv>IwSNr3Byg(1jU %[et@au5#vWsT9ۿ_Ij?y3u͇$x(1O3|0R3F3 )#5x zkNnUH%9Xx|B AYifw=`(/obbmB̶At&|H jiUAL)j"۹63, IȚc=A:O ;Yz> x9`~V)1B (kFf=YR9?iY(({s MuE9FJܧ7;@˃c{|V8|+-Ǡǫ [U  :8_\)N u~,>>!,G@ausQ9̖< iXh[RrٙhʭFծkn|ݏڏ2٢.W*WsdrxfG5J,LZm&8z6]9 qb Upbhrr7ɮ~GJmEEsPwMȞoJ'!vaN&"\8\N[!~f n)'Kff|c\l=yb.\blRD$B ǧ!A(kp689-v?*2VE=&{#B`>:  MNRJI"A_9' **E{}XH^/]"`]d3SIr;B 'xe4I:?Xs69f|fN952lԏ܂rv$BDS*̭j!cU4Xbn  E_]Yi xV' a[L+dP[$)aiZ_m[  X éѬl ^{py׮|vb4# ñ!7={eq6!0QX*.amRLOQm C/ޖ;p!sG=2D(냗'IƳEm_Yfz IOdejߚiē-6GG^ %-!.B'w-2X%Ϗn@X,0j@%">V#3^wtv)fd1`TN͟C#Yzڌˋ}MVQLz.]oKont,o?&[~򙍇Rn_G1uoAĚicw=9{ۏP[Amhޚ`1WAa K2Py( ogIߊW@*רq<Tf 9( 1-tW}:|'1qwfd|A=]g:t Ob  u.x)@!hs01N\7,.f -;c|C!XTx;H,P?EHb5LܣIx,)BB52 rYg>W#Q*޹^I`0xe3(l1V?.@E٢%W$ ~W 5R13FN$k}qF Jټ}ưw/-)]i( /\[YF01z¶q/$+= R?,wx?Lgu!8/o) tqK#ڽr%E1eн8;J}*֞ݹ uAɭ:_ojsBorR+0^RVsYŀΧRrg~7Ϳ 0Z;s«Mb|Ͼžĕ`q*F&!$~F/@ `TjK"ڇ$PsIkb'$[Lx6՘6E)]iJD;%.v \m6L(<IlT<EwyE }߁aQ"r a`~XelxT*=rsD"!V$ \\07 < _d8LU({$YrZ${S=_uF"rG'"nL'vvr5Yi u8ٶÕFÀyYJZ/ǿ)j9wf NGOF>Yg}-~ X DF\[:ח"2c.+1׾̋*ʬjt'ݽ`4mK&^.P _O״l=;S _O7sW }{(g:sC^(1 \|-7ջIoP0E"ÇeFSݡA-Shriҕ`(z|QBgLU?Y:0AJ FꕚvaIn; Q $Le~BR6⍭!)i4v#q{<R#{OoPb Ct'fҌ!@6E`0:O[M"Xymt_$̹q56w.1 _+`4℡_  :~!~`| W3BK]F̿ab/Q|艔9'Э7F3C_|5`y RbΖ`zIbjkSp>A^=mdBDC^rnp[^EÁW枱(s7op}qQ(#>gH5muru[ͥ|>e]+`k_>G\ w5Ts{bpqm=5j{VtM"E&0GD+1I>&30%eC0IOh'g,)5,3Vo-@ SY[/;›osMHYf wP˃EG't!{Wa:D جfMr_e6T| x {0d|8xR/\k}iZ ڂE12ciX <phDpy=j5R*O$w9x.ȷb=7G'u\m&g\s1 B԰, TI M2Ǹ¡1snS1~4 ;Et?:J.+^TKjMtu蔩nqlu4-ǷJaFÒ}đ3yBrDŶ \bT v4 die(`9klãmXU2ɔ=ߣ5Ģb> 9np qR.qIn)A\ru[d+P#ҡ">TkRߨ6 us>Jma7M7#u Ó|{ZX@V⏉/I{ra"ɔ'̡un,Uz{V5HjtfȾXi#G廑a&~ e]O1|ۭ#l"aW]Ce)=s{JSyۭߔ qıJ/Z+v.s2LB4T] D4ȾaI2sZOCl!/ıeQ;.>8TrtMN wXtϐ#7sL?ˌQ$M."ǛB8c|1~j)7dć4̸@/H*B!U@,[2 "J6u(\avB7]] $nk8J/9KM"DCXІu9(}πCO9"(REt[ؾ@u/ lᇁ:=?1{.}M?zվ Nᨲ֖m^C bȣvAoezKՍpr6yA_ ׀-6}Ui4 +' yCx~\KLUqʾKk*ƚܨC, noi<Xe:B$] n)yy1sl(BjZ"XC)ɭ9"%q'_=/%23koMpb(sX$FD?lTBA5=ӶEro пg~,E "6} u md:Vk QJxf/q Pxk/-g\ٜҁP#'īS Hy˟i6fa)<#& UyS <>J,*R)5^JH)G?I@%m_iDcΉʂt95LXz @>{ܓZIJd'me,~hdlSm]&28eV*cq߸'sS7iڐ{UGq ޡÉ#:P ۋ{6zv7\ߡ`p4ʒ3?B>'\P2x֓[vh}V$*jae1Gw&}:ĸ4mP"+U5 Dz©6ZRtzJ znozlw\ G 9K_rZn&o65~feLR;o.)BlƺAbސ˭jK—g%pPvqJM۞qDDR|bvZ#îMR; 8E{5{wi+OShiH( / 4: udDŽkz8bQ؋PCN~qlWޝ HO:}֬љY#$p7x6-\2!5ͨѭQqǽi)?>a݋~jcEYeopk[:@33Dgw~`l~P6W ׳vhtiIA(XGD2$1H[~>EK_b81ZAK) A#!NqO 1dj W6K!=AkCnuwMxUpdgcȡt'LW&xmA$vge. 54yw_$JYSN7ieJ㍧2i&Q\_78BLj`ew|zrF p$ &CGNf7 (v)}V|OdK+'U]OS5,jn|HC3Ԅ0YD2/!Β03΄ΝB[ě?ok6%qi„Ў_LD{$k"=DF]1Q~EݸvUណ],D~71G3lII8U(!ьuy*ϳ,޼6&@-¹LhD}C"<ɈxZco /Ay RVFCTx3,Wya#&ڰ``KD.u2RljNroBuWIևXv%@K 8 #)(vC!Dȡ%kvdwP0 ee=%JAu0r]h?dZrHT.I6`ߥrUl*zI3pu$ex#z`wōSfq@#M$輙 B&ST"dgyPL xO Z㪁iUt6kt-Ja PMkh}ThAB޵p@Y}\<WʦQc1iΉNduM%ES1~ BMu/5y?5!^dڊ'Eyf;Rf]2>_0XV358@ dõ0d wX a02vJ iiSx0w| Х[D(HkŸbXg>/MrTfػ03i0.RD2޹ $#_ +ǡMDDF#:Z`xRVl]>(:Tvw<(,9CR,|Х 敱W3H@%{cNLr{em?R[_d2^\5 x"ܻ B̕>$̅3*G*V̀w@MB&L/41}J3QlD}췈 8QCT0a 604)T% Xr+,%A,f6+9Y_o쮸 _d[μm!$r, 9[nED*CLm4;w8Bj>m(^[;;gL(K9 3NCTVk\O/yo 뵒<{G)ښ*B3>E@93? ʍ^"Vf+y+KjL(trKb\3Xc_tdAa 8GC\ ,Ek^1$'Si6]ղB?\UE0Gv 'a_M-f^|gMжÖ#!aߎy@z~ZAEآ'B$/sz@%޽(ysG*0&:FóI`e#*EwHT. wc̄Զ tMJHt p}f?~ϵfV""ްWi<-ج~8Zհd<̨Gq]vV?s-~(~[F`T PEWᢔVW]a gsӘJYwN5$ZbPalh:"ԹB)TѧrzAS6RQP J>nQiЀζNQ@:6zs68}2)hM,:JHd7̰7#'%r攟J=+f hϕ0t73R!espSBr2=3&_`AצA ŒȲ)B?! `>CcI>&-1jMv^&Í5oLDn'+Nq\M絞(6_W<1`Зq:M&|~΃'1ZVFȂ]4?O8 <]\H',{uQh_6)4> \]gxtͮOߜ]TZ4y =!uD-'54` ҈$SQnVEizo`rZh7WMdE/-H'R}MA:ll@  MTO[YZK&] X :/&C~4S?G"=[PhPjT\~##R35~̃Tj%8E#FȮtdSkIJq"v2Zq@i>R(d8B>Н2!xʓ@#GQS4 !#.و} qvO Q]mWwANa 3B"-yb>?,BjIGV(u4O]+эX-zV'l*jC)E9 l2~(xZѦ}֥Yn hoߺoWP ƓyW8(t= c")uw'X8ƒ;y +btf̱{9 J$ 57<<5olZ֢FN7`3~ PF}m򳐀j{_Aɦ,݉VK-dk{h9o,Xz8vb ֢]"S(h)Ep~9Jq \w`8:Ƈ)і[_ xgV4)9Nvz^7=#Wl<Av`m08C5 $iOU!@M.)Pe R }V‡#}H~@ݞx7]Aw<µ:6K\ 8?Cl7;VcxiXPxP=dAZ<8L3#P@ TvU"-I(f]7oזd\PdXcӐG}h%7V邢z|Mх˅$(Z3^tRuKD24~<,U]f(-(%Ak%H. ߯G8Lc@~"_i$-wI$T? "L+^:*&e~iL T c {Ʋ%Ta%ۑ" 4 sSAQDObV)Z,ZU~v+$kȏhIRXF@Q #/Q?Z24l23ɴ0=A1I*E$R6B kZ^nڥ#$%5aتɑ3f4:km~Iؚ B s^ִ}5D Vm6gІu!&{3!8%‘Z Viax30MnC8qP1i0x;]a0Kqz`T̞kwbk@e[\A*,URWj/]Zi(+%|xڄ >,HftIA3ČLw0AѳcvQ8z5]]Wa1nX Z\ӻ3ƥYϴRK "P |e^ Ry!loA罎NL; '$'rg9&]m3˾x b>3\P;n𒎢F#X7ƲeF$xFL٥^6rT=dž?N;#C٘ iys@M-")Muwb}ߪ,/9m[ٟL fC\Vz,w;wNA~Əb4 ?+D p`S)y'6ʪCb«`Q-Dhf!2HH ρ77`NRt&t̸1ZF_J"a%b̳l6G NYs ~->sQj!r^Tw7$gB;e D*|$anSMc&AR+SKLh":U_^˵;>!EGM4a!Yᒀ|/Ɩ}!H^j@U>K`ت Ln,MScK۟' IAJRe {ϲ-#tSk #{|{m$%`(±%qy ~D|,#0h,b&Z,Rqqd_us'PP[q=9qU ߶:="A5pRW)\sQ|3e3@!c|\ٔNkl؆h _NSD2tIw:e vj7' |CxgLb٪ ^ :ae; aiLgLP.VM[ʆǓY 'gq=OpmtkJ9~= R/_t؆ ̀ I`3?Rt|aϿJxKD t  jR#d aqߚL=8 ])fL[+OXjWǟCݜb-M!Y2W(LZQT)"-hcC Ϯ6W;uљFA!kkRl򚃿h"kP7uU.=4iuf;ho̜fd=[jI*)c`$ mi-Hh.SۯX1+5SZjz8OQNt{Avoofa^ng,Tc?\ ̘­th[Jb <֔@T6{ðx@g=]>Q' ~ˑv 3JIIDF )u ^/+:g&hzRUF!ex韊7z}^T1?FoHn&^jWkl͇G`%N>aHdlDrsWÛN{aAn@u}hL ZhoRҘ01BFt̟֞ec?=CfHP{ |]?qWU@!T,RvJʣ"e?f} DS8U.R%d,>Vs5:`\T@kB.!^6%r`/83RtӌU|ƭ#[4Hٿ(썙j5Y&~">$m[ U5DP o?23`[RW)h>g7/uO R1(@;ɣ=4ؗu(uXC8dayPPTfb '6&[Bm W3ȘZ=&>Ed5fsOW1+1A{iA\;}~tjǟ]l/C]YR 3!#MFwf,\+'(Eԃ mob81Yީ3}Y}n-Phc)MiȚ,3l\uQҒ ,Xx I_  ,5 QesS̋Co>͖TxOɉd*=r֤ĝ>ֆBģLSq3@gNr9s1/^Rf$2xVœ e>|jLZ:qygS32P5Lm\(;9p?2U&.m ua- !{T~gw<9oa1jxqP;؄iyKԘNv7ƞy3泀{nq`iԙat|ê/ ̨mQys It-*%Ł6)~[p|u?lBh`pKM(OK"C]s'oupEiÄ$cTȤ*8z/bᔙKJS7qo.FteҴC8t%u+Sm{^QRX¦T0 _4I% J swneM'>r'h|"\ BNEF+o]b>0O~  6W_M>2$/&4j  D,cQ&P@%ئGz գ"#u!:OmwbդԬ^q-c\tUc/}SWa?eqb?FQ()YB€sߌg|\m|DA TR'yY@MUqʞQp%p1H, Y=ˉQq57Mp{rM)-o`7<UoH>Y1u&m9gŹQlvWS­'.Jγ!*y+WaFy` rmBzSH!ro+K*HrNL[UO:߯M]caU6$4<jQhɵYɤp$ Ɓ48v· XjohyZ̆xZZe: Y hF}59*]!u4 ɽQʕ9&h@c=-S!Y5j}K Pҏ$ꀶkE^hl+#)/BV8>j${"ƔIk,*D F34X`}L.r:žOE$_6r/>~g v0d?w@ȗQs%Ffh.gs,hbG޵c,Wnu.?Ё&1bBNOa! 0{KI fɃϤp®I'`כJ.k`*U!w-1d^TbYD?%x)q OrdQ;J=4$ 9sZ1&禨57ioр/;1> JIR`iep5͘腨 OPszٽ>.\bIwFFb3YI%PNP'Wy,\ɣ9:4Fӻ˒kr_>TZ5L DJ`*í[PyC'OŹF)r\n_Ṭ]h'bF'4ΛٿD=cQg0rӶ/%yMfl{V?""2hq{=l;A9XrvGxLeuU(z0' _l&9uP,] #ٽIO>'K w ,`' U6'G z̗jR*}:5F{i_0zRFOz[q\P1>gho%C$de^Űu`I+CD*ڴWpWt0h!b"s_&^Og9ݺ,: )=S|\ҚvncyFכ̯Ʉح2F$ T]'dՉzost9kRw&-n1!HVDKPl)GF L &VkoKmcz٢[;Xiϰ=ebJl9sdY1NEPh<ݚz4k+!p .ˊ$& EDTZz(Ut̅bnVV-ʇZd$0^iވʸyjb1]dFMy%ga .lDNe3( T=W`S)xykz|@Uxk$#2v0 F!R}( wB^(QV$7ܹy6<ɓ1I8'. :#:yf) ijEY]i,8"? eQGzpQ)ZzObd^4|!"ghz57tpAjS[E$ V~<ցfhVTŀ72iNOeB`aC= 881ͰNQ$w)aL1*?N%?-XOz2f.sMGbupU:q1,8Z:QM;0.$x\ldX-mDee{QQ 5dZm4x?DC:l/P1h]1YBO:~>o. 0iƃhZ38 QcބvKI-bQiW1jf'փLOEq-H0N_QXE4ݜPHv / jXrG7-f/%B 6e~,I7`t@|YkLyգ'ᕖ:WAzc^wqr즘Y2"7j\:Bkx܍u@PKCbL({|2P<4PUܸ)ϒzPeŊhya*ĺ,-?{SLU [P7<>`+'sjtJyJS 5?m7w,![.<ۻ.IfN3+bs] eFxX$"OR37.Sii`=-޼C:v|E;y }=G] R;y%u}7"ߝΐL"4oCLDcIhj-7p%e.wL!H\F,X= 戤w+X\Yp 4u_v)YQՙj01ȿ)}Og ;|3c$)hb̢6yan׿-$9k{2Ҝb{X'Hh!4kzRWʊ`fR c('°V\!˼T2]%{[ $q~g- iV 0h`4ku ;h*D&q:W$\!ըoAJ;̎ mU3&)D ~Z N3Ǐt 5K?(07Ղ%t#Q0 J}zPL ]Л旺uc 9V|S\Gg CSv?EZy4 &Tvӈ-N%(v$ufoM[.A՚̖V6Vxc\2mjB9 (uvM/ʳßʣ9'eD.1@'G(ACB]Ӕ> +\S#ϰmq46,t1?,'w;R,F:FgJZ*Ѓ+Wo.lw qO_i=F.@R z@s?'9/S_a<~M{u3*TSeN=>*o̹yiV8ߤi/pDַì!&ޗ.3[2 )NI6A9wyжA nHYQ>`>a~Vx=' dmbi[Kt14CT6JHOoŃn^W\8K퉜w B(7 S]8m ׌IL>Yn6vʲVXP^Ȑ8FJ=0 a8q\ wg"IPni} z['qϊ2)m\A@_Gw,j@ >uD\0/%(6qiEW{>{PYSm5,zi^5·Õ\oPu|sWg/n;5 INZ eþ?Y]긇l7׏@fTñۢEG78 r֍yBxkWy*k}8mSGjX\RI}Os]?<%%d CE>2?Jxi6^ Sr/m@JMZD`BjCֶkq.#[W||s?) 䶁_ULKWQ>S {wg$;oucN2}DLIltѥXJfx7dC#|6G}3AkT;NVc^Gy\X7!1ȫvaoPnTD ffˡ(gx$q:7̚٢~ƂFrm WyOZ3#W.>}m5Ha}Xr=lj du d,6X!kB{Y* 8.bFCKt cQ ؀DG@‰LQȤCĎ޸(&%S@hO' :*4xȖ!4]۳a4=g%lJ~冩7jq3u{<^U,("dǹLt"@G+H] E+nU)Ra ϫzBX{ZM6'K.Sai[h3b5+}E%ck!~TYؤi"mE|@6SzV:cFҭ%1˥NEDsFXH:f _H.dKqۍ,8YS׏7Cw̓  kѱ:Pݱ}o$YRGDC5ׂa#:aBA3 U& )z|AKk}$h(iд '!<.4 L"BTXˣP,~fcZ VDP/]2 V+vjE9'y{ !8d6i惿SڍϭFYi0tn>")Z %0UH\dEc%Sdt&qH5&B J4R(ʐ-w5 f4zp(TBy(Søk1EeN+ /bø'^6XO#EueM>"{v\Ihē0\fXxtz%5LY]_(\=Z8ZWPո*|·x^؈VHb-ڑ fbrpSxkHlo}GhqF>^cİFlypoŠZ=?5U*z.ҙ/T>~3uh=Z815O>mӶ=4B lf6.֍~]УezweMi\J1& _,:SD0P6 rΉ?j彡i[%SrbKi9cyo\6j䆧s[a7)_e T]<c?N񌳘*LhQRֆ\y>AOi"DI䩣%sr7V-v7xk *9e뒚q]&T:(o}/Q_@7/qy|!e@ ^}a"7nA}O(McUWSWpayCq^:闒k^pE Qݖ{?ס XBd؄DFhMF.KMPhܩDsw?*@g ճ{CGc gbD}zГOgQ} ߴ%HT6R |  Caa!+K GR>TTjkSfcOd&{ל>XJEIZ6 5֑3kHˮnZbcԳW^vШ[Ve ^E\%*UՂ+x2.p^gkԭhI=ÝҞC0)rˍmI0tMOM<ޒ3-re4 p|aDX|ܼ i&dQÄ x1&`X:Tz6B (r$쪣1 DV̗:Or^\ T'"n&t<@GLn`a-tnu'CDxzgn+7&Z0w0HhbwtWO@dTa܂yx؝|< ut|P>Cj\g#buہ+Ip Q+"ޝpOg0䷸ r}eqZ4A%=!],J_xQ&`3`Ą9*P"$qp~MÓOuYs&V=z ވI/覩m'x} T\Ja5ԙ<="FQFACliΙ%={}7BԸ?):S[w'ѝ`f)桏"+!ֹ+B* Og=🀷'noXIɅ.(ZjRBYg{/8f+zn:&&c$(uxwӞFPxmjTW9zPg>I%)1W %=&Ү;Dd',t`^sC57 p45<~ qUq{{Da8z-l_ۈ\R}5EEu/Jwona֮wٻ}dфX*(چQ6I+>B+#XOfZ՞\MFdAݣ; ݗ-茟s]fy QFỪYG<,f;WL9hܬuc7,:L7-,H[󗢟6!RKe}th>c>\eGF)4ڻ' M2d Ѯ(~ a*"'^l+%n(-=pߵ]7T& 6ī5[ wF}Ŋ3N~]X nrtP;P&.keVzko3u*QLk`6sQ%P@A9_C- %\Ed9 ;C,ܗq3lNdupvTHYiL-ǏZ\: f+.E=P:YK9|sIiyqoI0-RNv=OMǽ\j_{ [;Wm.)8)ʊ ڊd(THPxDžom9TXP[{-б>%:r'7O@֤_Ƈ|dKc3t(( Qk~d<q׉|1 n?%-md"Yx5\O]z8&@VԐE“хѪgЖ;ƣY%p@tyKl` >1Diq[zҥ\± xɬl+GW(_k!h& ChCrJƬ'&i[yעE TՌmy grL XvnaFe,zՠ߽UynWdW]"/)*qv¦QM`m Uxp3dNP3+W`tŐ>^ڊؾdpՁފG-)̌rp/vU"|C5fuvtDЧ~uQj=o }v0gkAYlyrH@*!kL?#b>!4:~mq .HE]\wT↧zs}A@:cF!ݵפ.mA,+;7]E8/{*֠;椻80S|-1 kB -[Qj0Q2eߢ{O rϔS.ׁmo^_<,⁻vIP=$:ƟYIFw !|o0micC0b)X=`F^ Rp5;[Q|Kl,N$topZiWr3]<E; 5`YCd2+3G;< >(W]OU)}HEW~[x6g:Q#䊙Os{o/»XC)L/-0HJp(vr4~AOR9]V TNr`B12nܸ|X5!&Bi7cHo( m%t:uDL䐿zF b+TKPLpqdUzݎP;+ՆRn/]MJ+_֛5j1?NL-FuFC%R oGd#ͷPo(lEd4h vr[CCuҸQ_5Jjs| qs£ Xrv{h[Wu:Rcn`g=R)ZOa \,*Zvڹ5e{Lbz$24^><268Փ )w'X_dCSH[Ed `]`DN^ga@tF0 oGƲ7ù +0V>L-D|]ܨap52Aقԍ"6'%Ëm_ߵΌ˙͎Bw7TPOE.B gk2(ɴ >IZF VS@)Zڲve\8o ]3UKf/sF-@KꢎVI(^Q @F[f)1r/iosS rK財6egsakS^_W4B-4],ϚnN?foG@Ix^~UZ73Dt 8 !R ) g4Lq,z x&$`cd퟉ wO851dsXqf"}s ,},k~ l^P!xt\g]VoèF s\b4<ij͏B !'-}gp^2({_p¯8#U|N [Bo_,4P hm}[5p@LPQ*+npzo?`jf1,0~;x~d?2KR Isj'i_ ؈d85.L l;i[hGs3y++ė)PSɼUkQQ \k Wŷ:<ԗا+A2^%Uw5L؈>0˛[Zn޿QE pTyhHrނ"m6Cb P<-;5'Fm?jUj˛/Tb. 1LZY> Y m娦VS7[ʬPy_08YBLbwya;T[i8x=}AsB_< ֖$axTp~\FIUFJ볡&J 8^- {AQcw %l!I@fa!|/9Lӹ%W~"}(y$޻h&J}<_:%C~ c~"V9MnjRHcclW{iQp?!x>@Y΄A ]! bloydx΀H7<SjGÁ.R4]56 &g\Snk΃MLj & yx7ߟTByFW22{OVHJ4ݙk9=x27ϖ9>WJjP#uVx"1laѬ]*l) :[.mzՌOc"tr`,]eLxzuJ838K%;vXCk͐癗(0$*7HݰX.(Z#f\CT c]֕NJ'X]{^`ޞSraÙ|ZoFv:A|Y*CQZp?zmC2ʱ.49fFl,qΰ g{*=zKƸ6skakI{!)M%4ĒD|k6peҟ6Y}oN7%\HmX]i^ܑVL-U6'r|!6i) iU j|NuLt%&s^?:|l4 hIl {!Zq1ۇcbK"oE|׬6=k#NLl* Tg22<]>1<͜Z<jKOH;N)J[]ĎTݗ˝ ju(p@EK3shVE2A^`%1Vgv#aulbEj9Cȇ }xǓ-RJJakO{󝒚xa!Z3-6|bnnQ; ` {݅ ÆUuGCZ3^,6}J'=#эPjRpڰLMpZ?}p)q5mu{/x}o|$R}':v2.8@ j{LJ傉Vt~#tPW+ha^ݻ49smb^0Gٯ^v}|{{,,=ԦOJczCE@$avUSOsY*=at$Puk!tFϨ|2KZk0ZS&Îkg'29NX ѓߍo?_΀{fgk~g*YTQE{i]s:I~u54_ѷ#Ϊ jҙ<0(&6ĬObN1MVXHz(Ap2pFOyYi0\U.x#HWz|7In`m/"d76*)MC_\xNs5u/ZhLg6=-rYŗacN2(D _Z!헠8TS˰'+[}zxw[IQKt &*PwL(A{Mb\)Nn*vΆ)]PƪhBjK^4E.l]oψ]td<xíH{5xe: =! X8mڟ6*+GǩU `88%DRkCLd&ۡJ\ը=V_|,-c6CUǢNOP"P83lpڅcWER܇#!X|p]qeT%ڕ`y2 ]a2~ROETbl@}A^tM`{|wvfqᑋU$< /tޕpl6~YM|]] !pW~TmSm E6c$4}(V&)\֨F0?߯~a<\X()f~?3jڤ{  ˎro}I@y8Wl/8մOict[MSRf}ǥX{8ؗ0K|$I(XuBj,S.Rw.ج ^ _2^'J/PtSDJV[vC~r"[yg20x ٵFJK98Pr\&`qހH_V9[n{ W¸(p[!mMD$ L&'PXcUCh1쵬m3'W]SS ߈eR.'0bĭR nLΐ3DWAjGbԶ9sgYNmvW-{>PqȾ?SD#*MHZ.] WqOUw\~ dܰ՟ r^U]0.]dzP;…qZ޼qQk\ŻXϼ\vGs_KM+)y{ŷR׾V~`*gLԵ`Ce`E!ͺI{PMqDF=mJ<:<#o8µ.zrj=r֗>2עmxO;P ؉軙ەC;ft@, dvDM_2 ӻ۶cgZcc`r]x!E .ù}-VQЕ 8 .9gD_j{G\d}oMKy-ۭO-Z^}EciPׇF yADOTc6-γWL=g8|Wh~:09_Ҟ"{x|cwFj;Z;'E 縥q#9H椓kh]S( %sFc/nUƪw@ur= xp>gc] gu:@͏$ VX:WG F:Z^9E;W/"P$lv*~ͩI);NB_wpt 4j5]v\dx=~C."ˊx{ŵj,`^Q$IN=F۞pTEU3;ĿR^, SouG冞$B@#~i h(q[o*ji ŀ䂇M !Jm1Y`ьug;[CY1(pѫpmnq{n YdԬ-M| YN0Dó>e9Gc9 .ֿ";E: !, EDO 7ud;玿}ٺʮ$D&O<>aB .mc&B`tKdߟ?^jƸ{TnJP*:R\loP iͩFG=}+һϱ!|fB𤊡3Vb>UjGZE fyӍyp1f$BK#a#GDav}E|.0 ExdHTYsE֎YmSw|=QFԫ/IMh2r+>&,@e-(W9kλi"n;>P<uc@"ioUHu@8iau8-WAlCx><[m Rh^حDY 2=Jڦ՗}jھxDXoP"9dw̚/ӆ:VO|>Gi$^O3\y"=הXTj[@JjWX?]<k*uc~[$춥l.Ǥ6%3HܝT"lKF=#cC(6]: +YL/)ePvvMo*YɉO wUZ?UT3YO|d_8ڃ,>vPNWU8OYy/fğJx|Ӛ+CfZ`wRxrvN!gw7zdTjt#a0+]1lh9Yné$N ևAˀ|a;x`'x{e#.NƌGϙvpb+ (ל`R[Hm2Y! 0ꨤ\ژN3@}u2)[CC}i9iQ{ʦ\;DMӽNku_4hB $VM~JISf9w4Iv>e!Ov {ʔBSEio{F մ v:li,rYc(9u!QaONi:AtΦ~[IsE`QG2@uEG\3_@c+~Vֻ="W2J5 lMX=Ьr7J](W&?Q:6j%I?*qrpD VW)sQחBzV {3}]ʤj*b[!! ~UpZR98yRlEkĦjJ857XRuJs#`r5ZUYy6\K5%+]1WA J!=CI_G̗-rg`'ax:.1 @ <5K Ka=9^@_.0o&k}#Dr_LeO*0eQ5 KGl?xu/D'A2Zsr,Yɭc(|%D6G̚B% !і/bA孰nȳ/1&B_dC:T׿`j 3S8uԓ΍WΙp-4m q"<,x]W`kyzfqs6 [1 z6<5bBzbel yX&鶔8[wYymes\oe.1t/~O8mInY;7R 0\0ß\'f^ףh9+iqжw.8rjADBO x ]fϼ5SCB9r­eDiM71Ӗ+b [x[9ΗͻMaY6dDL{bXRwbm.Q/x~ !"2@LR֛ޒ$cO3@rsV D@dgycWĉՇwk@_bޟ-vqCY ÙُMOAq"ԥDO0 ;1P*mU2b2Ó=B aVslu]@<^pxvS=.֍zA69NJG:sg}s< AuKvX鑁v ik|SUl-lx۹x9yWĎ[z"{ϩ0| .X^% Ksa_@5+;/vUJ<* rC'ӏ"ߞejxPf$%\#6)*٫IXgOɎ_bgV&C Vnӕb%*jU98FI P YZ