libucs-devel-1.13.1-150500.2.17 >  A dZfop9|iPBLkC`-\vHY3 vkUu3(I>)(62XB YS F勎-vH_2H0nϿw{Juaet>>d8^&64iݸ*eѮN^(BkƗ7^܃LN#*W5#xC.a cFFS!ETq̝ l'jYͭ#7:9П9+35.. Mguům|H[v9 QgGq5|+-l}ϥVʼYߪشTd%Fa]h+w?'X %a54!wKEp(SRݣ΋joRC/ԓ; Pu_"͠#| Ȫ󝢆핎oi݉}<r,K=޺'T' qHj>p>?d " ^' =]qwVV V 0V V V VtV"VVL(?8H9: FvGvVHwVIyHVXyYy\yV]{4V^~sbckdefluVv8whVxVyz 04:|Clibucs-devel1.13.1150500.2.17Development files for Unified Communication Services (UC-S)This framework provides infrastructure for component based programming, memory management, and system utilities.dZf,sheep91SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Development/Libraries/C and C++http://openucx.org/linuxx86_64C J4@v: i:|^(#G ,?!`k#9"4 V=&2(S(Sj' $ { ?x )AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤AA큤dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf#dZf$dZf#6e22c0bde2472752547ed0bb23b146fddc2041c38d1aac159504ba570593c997b1f5a51464a27bd226e978cdfbbfa29ce1c236523b3d11c7373c82f716da7a136223a9e50ee221db7e3ad298ee5f6c7e0b4f13ba8ac7ee8f485e2ac2a8b7f78d9bb9768878071721961bc90f8474803496dd0428e615aee8c424a1d7af80c9439506ba0b867a3665b3fd3bdf9472ecf09156530e38687d0b348a01d9b7a3c7c2622b792fc6a25b9f431c4674426fcaecf9b057fc559cb71d36131c4e8577091872f593d3be421c18a19f215cede686dcff8d4df3ba1fd3e81760b58244a7cdb72d4f78e1f338c69acb66a8376b09c00e9e0bc3b4fb2626253fb4b4badc818bf3f2eb2d5daf248cef39634289aab343cc83413bcede30fe0d80f05ee4ab8e57827205b0eb62a3d11299fc12162b5a31ca67e5fbcf5860ad7ae52d017c9107c3fcfecaebb381dcf04e37648a7183dc78420717d89ff230ab12325eed20ea34e3a8daeefd2f720abb3d5351e7c7445c26f79b1a93b59af87173f66abdda8bd19c596bd5d9f147e2782f72c709cf7e372d896722f2f0e2f150b5c88674f7b8e934165bde1f8813f417629f11682a7610ee510fef875a7eab17574daa7a39c9384ffdb2932c6d3ae9ea7f430df29a660113c6bc908e99665790a9b6e1cc8adcb70a9d4875f6c212e3c7b4e947754476104467e677f8542a0566fe339d68214919d7e54b8712efbafc055eea724140db81b3ae2ff9e85a52adeb08fa2c454cf28835d66a387c83ce3bf3ea04ca18d09825364fdd1dd393deb4bcdc1d5f96867fe4ef57dcbc4cbdabb4218df03e88f134ca869dc4c99f46d47c927cd8a36a1badfc3a694c7996d4c040a70c810396e859ba731af138963d90509e3eac3d6b5874b3eeea398e663e1af3afb67911fde76be99428a5a0c421ad5302ecd793cd9e53c4867067725647182f8b8c18b059a28a425ef0fcf42f5f76497fef057aec46a038e4c18b1a53b12e2f5e2b506faaf7f3a5dc793a7eea22328a7e1f23162c2cf78a4768e0b3b7e24c8f4a36de6b2fc2778e77cd01dbe45e3a65fd9a7c5289bd79522fbce968b56d44c51e70aad4a18d4f381f5348f9a7be644c6aaa6c8153a755036ccd75d00cdf046882578b7bc60c5fa9351df10c190f49b2330aa4c4e54f87b8e6f4dc436d72e0e18c151666d9b9524420a8ad273e01a5f8d4c74ec7f5061995e1a910e49f231c3bee284539cda6b12923eec434383b7a9e1e7c32400b8bc22bc606f7faf943e3af16c43013093d88e331ab1b0ac07e90942dac57ffdceeedff7ba66238d777d8fc15fc576236415a19f9a4cfed71a1b42059b92b096a3cf64d1a302504cdfe3b948cfa11549195c756367bec2d4456855417e62d04f39f0bd2c9ac357286ba0f0f2dcf319da0c08ac3e076c9e14fc4071c6ddf72e20245e2849e749f764cf6edb43ba87881dbf46728a0ad95de97bec7b64f1d4d80727c513957087c080c5d499144fe41117af5e85bc8ddb28074a6227ed5b5d3e42903100d9f5942781a204a45a20c7f03ec35e174a167f73fddf22564af1b51dbe57b112352c89015b7783e046803baecdc55afe2fa3d24b89f385d37aaf4f37eeaecddbd37eeb2841b4711fccb243cfd40b6d0b0ee9471979a6d63059971330d78f2ca8313543f689e40fa4c4c295067c2fb4eae7c2276518e93d7dc308c4f02779075f2fb07ad80bc578e2363c3e41390033ebc72a364b57d2e1b8c16b5af04c86a033d6b49413ea2d46a325910eea169e92ea8cca46be08afc9af2545fc93376751bfecb71e6d59057c9d6efb1959743a6edf6205b11181eb49efe3594a5a8d8e5c8338a9923991435b700e55ebe242ab06fb58af26a868ef8bf4b3f843b1bdea2628c6556a687c449af78fc0e94a572157bd90679f51417024a2b7216ddb1d16a4d075ec1cfec479505821a4a3b5e309c7008d54f2ada73bf0b8248f796d898dbb00cbd55a71c7267c7a86c439dc51b719bd9e927ff2ee70a29b7f4bf3d5e5b105672cc93fad71d1a425e0fcf7f9e535d3905fe2aa5a79c71d28a86b57f32441e69d8c537e8d18c0af59e37c58759355c5b979f95e870ecf21356feeeb0d98d866e49bd73511de5162d368ea01760e07fee7302ff2759fb41b685a79e18ec205e7fb2868244c1d4bc437c0e75eb1dc9291beb3944998df3b28ac1205ee2e2162870eadc20eb86f4906f8bc47012a66705c745229a92be2fdf10de88ea038781770bd6075ef63d174dc60c59db78a7f68aa862a81ee9b57ca5ab1baddcf795d03098da0ccc71efac7fb56daffbcda33683cb794a7d5f99bc439c839f04c826d3b55127934422fccb1d1fb8f4a879e9d95c62a72944921b55f96c1dfc5e24a0da1ecc0c01e604b25011adb48a3879774669277db21a92afcf67be2e241054bf99265833fd5a2a2938ad46b1038c70cc07fdf1da6e1c7de45b8da0803ddc36a345e8238fb1fe431b3cef8b9b2fbcabf504ab97d497cb76388c9beb9dcf101ad84ea5394651ffd08d05011dca1212bee25d1c7808798cefc9c67cd6a593e0ce2873739df35572b35cf2aa6ce522c57fb0da91e2c5b77b734e4d8071029dc5dc6a4f1c7caff8eb82da40a5b67bb1799281e8d39842e3af310b5a60be846f194cb2703b59d5f8e6444ff20cb11e09c3d792d47b0c40b7e2b773a77352b0957fdc2c1df3175df0a67775cc2b9463d680179072dce54dc945e7eb58a1050bbd41dc3c75c82200e655e591e9d697a5ed0ed3cdf263a156ff23977ff3a8e062af0bcec1d3316af5bad7166c8181f24e1d115a8b0e61feb498e0f32857f37c06bfaf4446ab10160f0851libucs.so.0.0.0libucs_signal.so.0.0.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.13.1-150500.2.17.src.rpmlibucs-devellibucs-devel(x86-64)pkgconfig(ucx-ucs)@    /usr/bin/pkg-configlibucs0rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.13.13.0.4-14.6.0-14.0-15.2-14.14.3c< @c2a@aLl@`6?_{ _ L^3^@]4@]@\@\s\o@[@[ā@[l,[!@Z2@Zc/@ZaZ*~YYYV=@YS@Y9<@Y(We7Ue@U@nmoreychaisemartin@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- 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)sheep91 1683645996  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV1.13.1-150500.2.171.13.1-150500.2.171.13.1     ucsalgorithmcrc.hqsort_r.harchaarch64bitops.hglobal_opts.hatomic.hbitops.hgenericatomic.hglobal_opts.hppc64bitops.hglobal_opts.hx86_64atomic.hbitops.hglobal_opts.hasyncasync_fwd.hconfigglobal_opts.hini.hparser.htypes.hdatastructarray.harray.inlcallbackq.hhlist.hkhash.hlinear_func.hlist.hmpool.hmpool_set.hpgtable.hqueue_types.hstrided_alloc.hstring_buffer.hstring_set.hdebugdebug.hlog_def.hmemtrack.hmemorymemory_type.hmemtype_cache.hrcache.hprofileprofile_defs.hprofile_off.hprofile_on.hstatslibstats.hstats_fwd.hsyscompiler_def.hevent_set.hmath.hpreprocessor.hsock.hstring.hstubs.htopobasetopo.huid.htimetime_def.htypeclass.hcpu_set.hinit_once.hparam.hspinlock.hstatus.hthread_mode.hvfsbasevfs_cb.hvfs_obj.hlibucs.solibucs_signal.soucx-ucs.pc/usr/include//usr/include/ucs//usr/include/ucs/algorithm//usr/include/ucs/arch//usr/include/ucs/arch/aarch64//usr/include/ucs/arch/generic//usr/include/ucs/arch/ppc64//usr/include/ucs/arch/x86_64//usr/include/ucs/async//usr/include/ucs/config//usr/include/ucs/datastruct//usr/include/ucs/debug//usr/include/ucs/memory//usr/include/ucs/profile//usr/include/ucs/stats//usr/include/ucs/sys//usr/include/ucs/sys/topo//usr/include/ucs/sys/topo/base//usr/include/ucs/time//usr/include/ucs/type//usr/include/ucs/vfs//usr/include/ucs/vfs/base//usr/lib64//usr/lib64/pkgconfig/-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-SP5:GA/standard/87f022ac0f6d68cd280646c0898f2d13-openucxcpioxz5x86_64-suse-linuxdirectoryC source, ASCII textpkgconfig filePRY>(utf-81c630be355aa8ef4e18a14830bbeee6c71a711c0be1695690d70a1431eaf1111? 7zXZ !t/] crt:bLL ֭h,qTdG:,d1oa>Vv0z\7+gb+)zOPFTJS'>-`?k5&t-Lc\ P1dbB:FJ v$jw 1d9Mn f&-"@qmctfjz̐Se\ ROLr ItuG:DOz`"P[e˂p e@rnbRY|#%y:m BNzbw" .bX4ϵLT:ȈFNД$P/| CPT/b0幡U {/ZЦCT|ƒӋΖ H]5![ 6z ])8YRk$_~FUuZ@ZWH͓;l2naUy` 0|lG(G. EQ)HېU1x 39=Ǯ !g"cLx^ɶlٛ=n^ .ALW ]e$uF.i>PY5u,Trފq@4[ݒo~\B@,Y[1+NIhk8Tixog3PR+<?`+CIpǣV =nL5yQ2r `a,{?;QQ#f8p=8VM9.??YM*7 ;I2}kMnoyZЦ% 9r'粋nF&֯(l ^q=r>Pa^谣hNnk#WpGn$WŋH:1L$.&~uqmkF'jB ͻU* or^$+"VsFm1(nApϴ=؏􁀳bT01ř~z',Y/~`3* UszKwPI0j5x 獕?VACZlu c CW{Pvۙ[u35m> E'$\.3?ԠTwpi_|qSQɏ'fsE-o>"yMց𺽂3ל/N%Uaq-i fce1 ca]P<;P_65 POr?z Uc$9"ytjl*JHv Ik `-*I+}@ 8մm>0o`nVA^Ӹ@U@GfԂRJY'Т WGaNYRGMe/u>dswƣil+)F$7XgΓdIX2?i(UA,#];z|38Io%HJkvXQOL偮x|R7N ( yJB1vLV*k)G)x\K @ģB](l$/)FAݍɪl8꭭r$r- $q_>D;<_& lB3+^vYmpUߖ,L BB55q?]J={]z5HSMmT>nקK(/P'{eJO;@4l1R lR1,Q?eFBM\MI ?I΁Zx#fU/{I+,)r8~}疶p:u*aMȁ3=?D!l]c") H"?oKd^ ouYkoڛ[`n#, Z:y5zkXe_ |!=ŃG\rpZvL3 Y-ꎛo3_ ?@w*`һ쏹:~@nRGUf:|q2|m䲾6DJglhm\љY]>~#\a j-AALt=DM5xb"hG-Y;߲ 44/|l%cCD$G>rx2JĻlo]Fpn=/o09BJuFVeI2.=Ekƪc[%$c *iv t|m٣΂C? }O n™.D4صt3`E/-]DM=E6"|8\]c~pH6O+l92[Xr.w[ݘQ8fV,zq{{Tت.ygܴ'6}_CTq:f$5RlDl1*Sn<$}OPut 39 8QLRj0ND{u[z`LYFVK{ckJ6/ :` 1VG'AiT5 z=,\]tRNM# ;ϗ y]k:nM]o7r 3$ȫVA-*+;%x.$_v%J /y¥j }U, H: Ģc,x ຩ^v+ r=B Jl+mPHt`-+DG-WU>8]C߽%t|xe@ u%dPْRr{TJv"ÜAHjiW =1Li/*7ݛkM:n&^dd)b1Q04'6},t@UcFE|6vhthLR fgS=)!'y.F?0; 5 ÍD [7:7o1٦ shݶl-_N9G9gҼ;E˜[or=eT3zXàߏl4U U^#eFPԌ4D΃q )xyH@WDu3!?@;OmNΕ O¹-MQF7;/A|\qcfg{S3q'd8NsC4޾Plf)8 AKlqKt@[41ގtնE$ּ 4#}m+\B& 1Is܈ :Hh2[NuxNV鬅Ff֯hsHƔ(JXI x:}TP[@t`ejóe,OjiqNlፑֶƪM2Y, %E+΅>0ZC&Ӳ  jBq :nD6wP?״V9#ʒ0ёt-t@'diq\:<8/r|Va{P ((C+vlC}v+m𓹶FM NUCƒmC-_ĸ3D{EG hc{.ZsN暥i\錙%˯ Rx(/߭8VL0Yg8~{@&dd)Dkƕb9X2|25]dW)^P!L<:XQǂUmjqj3&N8lP10LS֣L/vߌffuqƒb>G/'*ۢ*}.0x`h町ijIl_oIOd*PO JdwsFu7hq)D9Ð%`TbDvm$eL5Tw7$ڶ*;FafFBjxߊ?rm5rjZQMߡ @<25% e#BA #% 2&h;rW=}\(٬0m0j P9~\QRЩ>^S) USp#PWL5(Aچi:70z9õ0^&]dE5`vOV7IF΍&}Mmr;[+$Fݖ.BS45?aO"(XxiN OkB~h #gA9I 3i87z/3D+Ϭ8`Kǡ_bSŤ|ɰ,nWp: >!WB]sbC 0ӓea?N0ap){At2Ը$"l'd#9k]7SA ߌ5"G~T>` |a,3x3ξ׊-f9)jZks3]o39A=P *D^Sq~<&;Z+m:1u3v&]eX*<~`v?u-']2T&9r Z /igԞw_z*j~<"2jlV5O =mI*/ =y|ldV̞z&8uKhyt0/m3ɩ|VEИx״^?g:0r5H '3:?(\_b;)I:FPj%^T/H@X:ٞl5mဴ0v >$yX$u }HJ}P  Nвֶ9%?ҷ܄m%Why&q6jY"kB,8/Sm@,!lI(209.ex+q+a8ŔCi1pdJ j5m$7rI/)FzmαBX-Nc8S@lڣduCYw }HKӱtL&LA{/^ nAirfE둕os0%1TȬ_UnDX3Gǧ51'/jG-͕L..Qd$D/]MxR6 b?ɓ]ݏ zD` beRKZ_q(X"[\Kŀ "Ab6YPН2erZOqi$+pVyIgZ( ,#O~T]ei)K2c)zkMY*f29Z8y%хpo;ke bm9 蒣WDGѻJndOi3\Z E!GV>SsM7cP}vXD_'XSRۼ`G&N:k;xFY@w&*d:Bz#`psIi$2a,=HsUEƒ6MVs#`ʑn^rd$ A̷j/L/r*RWd"gG/> V7P@{k[T,OIDBu|P+8T};6ϰ8UoU_P@Lf!S ĹĞ~ ݜ;le~K\*둄Pݳ,Ʊ6nMpD6gpBTsdB$.?;)xc HI:y/ٮȫ7l8:Ta /d eثkq'cl+5ŌD2~yeLoߒ17tӭؚ1uyMOeRn; D=P;'ALg7>u!ῡ}p@LGʐcې-&⥪d ;a04}&bO0F  B T jQ&3}Yދ+Bi4 HRMֳ w=Щ ycw=q枤qI|A)Ě8+ =A]bT1654 !ogAlwpS̻<\>.I؇*#\qSY4`Y곫q3f;\ksºav?|lM |7%tL@Hѡj1im1:i"d`~tߥueZ9 qs}YפM,D,z0>Xtql 'HA/+>FF`-}3TQpg^ < zL_"zVh[(R4XִV('ʺMtI{2B.څ)~Z} !1fĿc,o(0 э?i=J΍nid!6ܢMue%.]ⴓ>?F증G2 W/՝27F.3m&$ 0{M 7%LZ2*<(jOqW|Q‘i;#Մ)Ž>1~"6 {%\2=;浨J5R'[ a:+*tQiH{7*/w7ߊvשT@e{Ra~ꄀ*#&fq(p=gL /7ҟ #yJ](TJչ42Rt0FS6\q0]9S-<^G!^zo*1kN- L`ѓo7Ĝ!u7w oD؃Nntw%Aoc:HdHYLIB?fF@UZkD*}'{<ڇ&Ϸd`AHHޠxsqCau.!Ω2F^FrF^d)gL8O,>]v RnMo3?g gm\~,Vx&j,l@#I8\ 7R+ ~ֳtӗŔHPl}CKGP{?a5-bL˴41<{@ fg1ZϝM`HB:'I9KbV E>9{x͆:|4 qoȽnDh(ńKfF0.5 X3kӌVoN׀rʕCD3TF.ox%̨t<j1 aoծubٸ5`K/ UGՂP%.ZXPĒ6\VWpM}.6yI \5Hreб&B&KqfVڊ:>~%.91tܪ6+q-q }")GC#%]сOUTD>ĩh֙OkJBŬN_Z x/U~+NhT@-VTڐdV`\P  gu}ǐ&S*FUl{} kՉIfNo Nf^6A=wL_"+Vd.6noћM/4١o4]u;-7e%zmRH߿6/ȉqZ+q^A;Q,ʔ $t(,kO#Wj3}AO}rL!HG i-z*v]Yha]@Kd㜤Ho 50WJ zڄ*g|/l ŒM~)yXmZBu9` jȉMx/cvvtfcӂۣ!VetÒx}:͇6V|0CUIx5/"!==4%;7DL[W3ʘܠ`QLP)CŽj K^yIDB\B(MRw=uC|vABy#vMVG2Eg'VD)u%L+b*bxߴn~m[i$~FUR(-Yo`QAXpϼ>< Q's%Uh|2p*KCrAs@7|YaZY+i0,k8\ wn^K_4evњ~0<҇dnUc,u +XgsrbSjH ~t zE"W ]>`ÂSILU E}ci쪲@T,8@ 5s&㾗4dMr.C=t1AZح1Ѷlh+Z螥H 6M1sUA1#X0;pP8S~%J=8sw@ ʎ3z FaΟZ%:M2[ZZ={D^eF(Տ'Rl,ĉ2~:/DXD:xF\ȥZi$̎M)t˖X=K9fHa?!x} `lv V|Rh M]naA #ė Ю!*^>IzS>pFxh؛d63UuOI<_s rmA)}I󀴏4IGB:ꠈI^72&r3Af(' 7h-T "Tf3Ķ}w|+5.BÊ 6]D3< v.'tleW{ KM5he.$6x!iǎ!NڇaXZY{V^:T0"F 18Zt y>0v:I {1~s!vGXWþ5}VljbN }OgD3[\Hu3+ p%x{"Ih<ٯnzI9`ґYk78|Q&@ҁiWN Y;1*`näF֯ 늷i]4Y=t6ޢCZ|rwdD;&#qkQNU=lhNީ~3xgP<!R_}Z*?9Ma`:=ƞоdP0Q}_43>UG>fl(Da&gW:Cq ΄kHKoEaSoroK `flT3ȠA`7C JIm6Fé\- ^n!g^}Y'DaA"W|vQ}yZo+H.*qyW/ćUC/{m!p94zA?B{TKlhEn{iYDQ+rET+J<ܟ7l6POr9toq// |*. >4I\:j u&)4d0 ?G!(=}td |,H`>~5y%%ja[D_m.5;éwmb9W6jẋqnNwIy<''&>#@nG<^O7H;Ju8 &bH&D$amYx.O=RN*7*XeqW2̅ 2sT6hjƀЏWs|< \bDšrI"$JQ{ْ/8en'cv &0?_u%Wu:eS/ qː%A27}B+ܳI^1}n0H}BpAk jW ?~$ 6ɹRP2EiD{lGZ%BTY(ϯ _vKH2B*q`4|`dp{^ep-VaL^*UA>;<;Ϯ?zw-Uy(,rWlr]+T!izZ$aroL!aOQnbǿF(5ƣ"ድzEGԡ^:o8p0LjC[{j.Mvm:O hr3!@:ED=ď"2Îgʜ+*d ao1^%ݨUItxs"_߷OmtEod2k6$d *Iųx Sg ~_AidGӢ} E;`d8bHxL"*ʌ)3әg-\Ċ]&GomO@'3+vۉYa-m"LާOu|v6 a }hus19 bXHH*˓ ȯC' pl*hs `b(o{+/t@*E+*.Qȓެ[@}3ܚ|eu{%7؄#cHگ=,IgZ]˳-h![ NXo遯 zxl4b՟*YNރUVJ֖PGYk8㈼CV{Psҳ֡$w+:~)TE~])Zd@BL5㷗prf5w嵡K90c#Wɫlw0رl,j% t-B4H6a?oXOy zVK+T 3` .l ,8?ͣo\q}Q£͏Ҟ31R2 /fU1fPw2ӭ --E-`=./ɑbCv竸"|8Hg$et3GUtY~2vjLNꓕܭ @9*Sͳu3"R N`(w4 *㘊d6PQ};Y2rQ=]97%9 &#C|RW D>iekLG#]sr\ mwD,b9Tϱ{V,XhA7EXlT =0E)hjJשnЎ+܊E{a؀~~i\cWsHGEy'ж0)+# z*왻*ubtc9Re\%ruaXxKyYT]?[E3xFM+ȡ=7_a;;hvb6-UJ\J#yI]d#&hnWBdl"}^r]'$s)1|5?TݒVt 2(vɾe-rrbrT isF<3 8=T16:?8O~KfzCt<$۸lk_C1+Y7# @f(=Lc&ѾjY{F >`~M1_[n=ngG~x`:v:o {/VUv>}h .g^E`I9V ~rǗKg˥cͭ -ulA2I(ŖK3)Rہ3&&g3Fphy@equP*.BTMvom^E2,x4!L+ך1;v &˖[)*d-1+E2jpk+VDS0A1P9U@gQ텺%{ []~O-#oрBlDa5u=Ojݶ;c{Z?=Tɒ܇C{زu9Wj/h}5VUS"NMՐ9t|LiV (q )%6/CDQԟZԣ. dύ\GGzhj?ØiĄ75q ow2>XP?"8ڙ/n %bC-r~u=i}ֹ,*z|Y fCe99q#v(C%zw%$NA̓U{<\V*)dWJ~>ncn͂}]O im\3gk&}+rYg͜lA]5 !ZvÎjɈ/SzS˗)r혎MF ׅE˘0 ׿( ܫzͯX"k`f[>8ck?A=P}USL1q ~9'v%||yI6ukƓW /^YwԳ0t:hR徘7$Ԁ9(T% sRVko4vJ3vlKj7CtԽ]U .wП,n4=@ŘؠC@/mG+#f|1LgiB)d, ~_}t:VO뙽B9 2T; _UEgS4/֡gϪS G~w[gp.'h6`s˘aAl#o!-$[\A_&ԭ 4ju Sq[jcIsy*ZGtRi#drI?pd6/? =752%Nܐ[ʢi@sA.^OXMDW) NĦ|2 AK0O d!pNm_AQ}xM$d127VS5iðs1uV xG||"`n!*S58+ߕj[9mOt1Ws{Į߶y{-7&1H|アi0}L=Ccٮk޸yzOe'3&Hd%oTf6qUaU H4Tbu9sKwS.ۜ`BUw9{ R-pW}pjl6hGD5DrD[1UuAJš36y6TZiׅI.o "uඎs ު4]"D:.Oz\'/vÏaQvs'~@5cVlT1ɔX/bm>`V~yk].k9`EwAV/!ImW\s!@H3)"CSY.m:Uy g['aT :Ie܁N9jC8|]0M{rfxl '-הqhS'{7_X.Q;tL!"&ܸپ]Y~~QqXץd鹦+ @4%Cw$ $~i-dc[e_17mzmؖdiɌ& TL|{_`U'Kc6/""l*h/yg28%mv58ՁD`,h߂\ [l灕ꩤa{s}ӣxU_P3nL-}HyVR8o N^qn0)~ "8M=»;Bb{DˁZSA RJJ| r~8<+\@#JjjFiW/UNi7ȳ0P{>ܛ ܞB{k ;!c+g"fJLmU!MO f6r: [so@ֆX[cтq>},up߼'..L{B6,w,|1}'nZiҜIm.7F '@cz_A(`۝H歒4^ 'S95CnEkv݉BśKL;%<;Q9aZcF4wv/ M(T>Hio'@*3Iԥj KS`7Dh"xɕ=إVn،F6DqO"2>e& $-{>E-h~XP\H^4oCm 3<e@/..!f_N EI^ #i0%b{Q_<TϿ)``GI2W"F %ϱz*`]<NǞQ;T!x@RJˈa+]na&R"_!rE.&@q6n 2ZZ@\o382O_dd[O O74 TS†u1YJ A3vz|'M+*#XRk;O:֡8>l)b {/;lJz7D*҂8/ؚd㊹daA&hώ6`UUIsB}sAۺ/1Zx:HR76H)d2NudhN<AF/ZFxR( КpHBl}CNVn{OJ~7R teZ(xa9梬- Wd@(OaI=0r1 +iFf5X;(r'x j?*L fJFL̈́~ִM0czFNX$N̐"t~ZPFˮNAg*ǝ,G4誆aHƧ%0OE 3){Ә5~spU\ߕϧa_S(Z΍6JЕ\zWrI/֟>8 '4gƅ'8/ zԑđRȩL~vH`~%$~uWO/~leMC0Q!׋Gu+<_Id }G w2x~/W72@t.ؚUG A| ecoK5wC0qTbhys;IEZ|0:ߢ *szkSA,^Rߵ-@w!91@tAh?uvΎ'(BrB0yuq-pdսbqvemM84#~;+h~nM X0݋ϊ' ⽀BTGȶ#htTQqÆ\1W4T*mo&ҤW7T7Bt\]|Є߿{a 1a-"Oy۪W3T4i_iZ颖(5|  _R{4r_do=qi R3)c[#jx.BH4sΩOQk Mxj8( XQֈ\?1;MĻf*dY'ENr+ڑ+PlJys^5"6.[WӏS!?V(QpHك%suyAɲ DWケ=,Jn[ӬvŠ,\/c\ʧIz58\ uԐBImE*mn8D1)Ih-~_/L=\[mXv j8A4 ^ mQGJDɌLf8P72w[=655w.-y`A/4SN1xIduǞO )Y\<, X]AOU!⏁9k= <Es(I/5;j5>~J^,`$O/,ue'63$|!";a,x}zpRTdeQ8߱%jhx}(xmGHni%1@vp0 õfMFA24ﮫQ.[O\ܥ J oU$#y>!u I hLJXJ4:ү 0-GP-e7n(ν:dWgݽ0ygen6Z.rqff@}ZW~)A]x՗~6< Hnj e\_i6Yi܁:௺bSSQ+wt )+gtBZE ]<'Z'_nI@Uk0,GjlޤK|'_$HTӤi%[@De|stl+(:`ekŗ`,vk6nx]7|aqn3hI-n1i ZmgU\lU)b%%jlɾjՊ8Ɲip1Ҋ )Ɲ[+[lZ7^ͻ^(|izGunsPw&Is@_ $="1Sm1΋E$%6 ߿;lپyf@?`Op a}TrJ1V;۝q4XfTС.,`(Yf$Bk")S\WHcr^2~Iu* 1к\qa{i>\G$ϑ5h.R-V4nx"ъ ~$CbQ*J\!lm]A B w## ^O`-3cibsO%\,CBJFg^zaZ6|o%2OI pVrCq_ڶiŬjx̷Rh~Qcδ`&!g,F H,L(Px1|q*h} $kk#5nUJR¸=\fW!| "ZZe-XՎ7G:PrI$i"P p9 V2[u5wȫ4mܻ@tSdǮ#]F F-Lk#$֡ W"'`zusqVKsư@rIsC?ӣ |\*y8;i~G#W 2%wG{W|a19[XMp5-9YAb#lɫ WP)HWUo\H&4ے D @C(4&iM9rxK5^$I(mrf[_$tTjI-#0&9Qw@ܝ#.h/&0!Nm=hqA!s:/Cf=kSRt{yx~u%/Rf,{1/cK挒CxB񵇟R9pi̖pG |DMelEM6l*gdLvPV`M(Fb=HyWj3Y&F#nP(TnmWBbBzU9Vvݲ %" I$韨^^{IvĖ=~ov&3Ze}bȊ@0+o%ТDߖQ)I+s4t0xQ;DhUC.cnvLYrxCބR"o1\2 !n,`Uz[) ӴkԆW>$s|kocJ'muǎeiP#/H6af1 ծ~♘NRPgRK@/GfVnǿR~}[ږ EH~,A?rm=3̾ܖU%>߁z#ESx7L)nM:G`:>[sܛXIbPY=A%y5wc/G ^꩐̌HOc:{NqUD+SbIx{*cXIԧgó[qL +,2t(/!IRQ sot|c!x I |p$r(g&1.3,SĻ5`AzLJȑ&ߣ{"} QbZaK!"꯺jn0 lHޗo#*U ݜweQ mFPN*״٭gKz]G(a uƽr^}ʇx{HXI?\7jL{Y>;3+pzyAᢜ\ז¶J.mJ ;N+5[Xq.'i]mQ6ӻ'%)X88j-:OT W>B=*?e%aBo!j+},a}L|WbxC{C#}r h> P>wO^G@Jz'g=mp@g!3DGwj" gξѫЙqߨR2DȷSzqx_Aq&SY8~*j%W|W k4[quIi5tԂ*Nbin&MXACh=bE?b g1$*)s%ZgMHZ5=$ 8WnA),ELj -Q]{kwd,ž^3giXkGkhwnr',htX^wLNbض NWV6,OCm^6O jv3q^gr`p;We_p ez4J[9ܖX԰pDiZ(gxel:AѴOgY*+.X/h5C*%VBS%{>x`?AK`Zk%pvnE p2AE¯6-yݡHOYTiWL$ϑNg1m< O@voE oF )H afMfg (a{uFY/?d@}Ąut0=="p#u v Ԟ%8 Wm+IUocgo] &W9-VPҕ$ε)'ck{G;鳋m!LxmjSQH?hTT OrSguZ6]}ry{ka"6wrz{|NGB#.fNӨ@;I1?A ='x;YA&;V!G@/ BtPZ{%C)3Jɷ}d^QWhMqC`LV"Z`, laJPQg@.v֡<#AȄv3$m\Z#i4rEsmN1?xe&kc)j%}z0ZHte@AD+e_.|nKߊb kn+A;ؤ5Fdt$Q^}\ph3R{E]mrvVF#O؃]fh|wEYsK= L렦.mpl]=o;%fEIwNyK}ýO}$5t]favdt3YA#=ilsT#_aCx%uxs|V?CDG9I5HJE.BGn9|K`Vۀ{zم(^yo%zGߚ7ҶVtR ׻Cix-vqQBqzY~I%™j`0 pf|wzkHC&Tvٓ9W6NGof*kr&W774jqf aSU1PaMy埂q 8HciZ@\ѨNFr*hE a.a+4W`[ -]uuzE3ArS?,' bq"A!z.;s~m(q:%,S0y#=HAavĉ,WTA;|FoA&/!{@O#p37T=;uGi7"clko{_s ٶ KݗLjȎnI _Ƌ{kmZE>5ۏ=ʾ+uHNl V~#Tq0/ed,/ZDUV+y IQ.t= D?  66-[ RuvY DG_t4֌KYo'I7Ěw E/@rIX* 7c%!c!e'ҏ}#pBpct4J*M`$w瑌XI $/_@j$(.ɊIpe%*]+~)s5l.zzQWjPPSymG V9c${ɏGU2]uTy SV%籄8-f{yނJ/  \@6DAKڢPuq`UZ*/[vRߦxltI[JET^vPk _ )fK0X;^g旲t>Z)z׍k mYf _W Z'$}h鄳[b1bnX?#g;jۗˊ!nPxF@*6ʮ[X*x`RdU$rַX^3"/$HIoI;$ j+hYx;֪` CVI 5sYVB#Tm=o"P*GY Q;W:rYR$sP,Uͬv cS/^5'³dPέHPP٦)pz$[_4FUVLYE) @blDca|4:؍_k'I.gUq`FSW:I2`ƭ&7׆NY_8d#5VK/beQQ KEJ3iH0t%T@< }R׾ahBpK r1PC\z.cojhXl9t$ݮPoaSzGIA| R}TےX4dMiPׁ, T=[H!|[|]kvk/Q;h/apT1 <'=lJ'DN3K';}`dR^F~}i[,_F* D=Ub”ctvNĊ"t`F2m 52$ T:(σq;޻EnY3 /jzq e}!Cg\,<I ]# ! w槽S42OP2Jr={xdc{vԊ벴/VE/HXԺBA+DCRf#Zr 0/]n.M"36^''Tc9O=$*qjn_ CgB*W=h7y@F(3e٠k;/Y=|Вci<);@X'6܀'jMIf:/="t^_%ފy4# kGiϏx~%6vSkS(4=W~z$Ъ*r+zT>#?'V`jE]N<[4QEvgKSTCA`>t(_c6 |ǿlqfVmnT}&Y+NIOIBӄg,4d^$3.5]F8N:nB3Z1/lz ]iD B,˄,$3x#!4,wvp[;7\ "r: ; A(ODւgd _dL"ot=NI7*$> $"",z<ڜ\|^i/U12p^*o#*wkUe ϯ1weTL9rJŸ8vG 0nU}xƊ<+ˮ a:V b] !? n ˹]_vXѻpX?!K@ngamՏ0lbI&Aƿ5\ǃdٗ{۔ZAC7[VskYk C}0wIaV O1j.Ly+DSХ0Ds?EF惴(tgCPFlTl(,tI;2v{( [fa^i5V968լJ bTj K-Rր%ѩ G0՟e9w3BO2Dcc:Oh1bJ+4ٚsՌQ4=Y?!vnulȞryj؏D! h M*Hߞ,@"wU ޫh0'qXWE{ٻ.YHkiͪCrj%IX+#gNK+- k1B x~FOIfj{cn\{HGvvwY$(860 Y 9aGPM MtD|]><^la|e7iPTc,[|ܲ.R}P녹U/qJaِsXǤT}D {`1#b8؞37].s`tыq0(fۼ$q3r<2bDjZIZmt^#a %LҘҕ a=Bʽ7adܵG:zIdW6L-!Yf%%1gȾQ?Թ"8 p_/ ?dkkmanV2g߸~1Liق+b[o+cfMVb$ܪaE.;52,|=204?N D'Ga9ȇbҖ?E]sHRC佤@R % $(~tqXl)1 pV쐮6jG 79.8NM V -cgm} Gb= ]8vV.fs, [TF3]DR2=`%Y`QįN!Ǘ\Cb9-[‹C]gMq[!푔1nb,8ɸg ʒJ{1o{m Jg9rFCoB 0:hT9-.ѭ/!HʉP!`i `9; N}Ӧvs%-UQ7O\v_mW6*Um7Se[O[,jT)ϒ9l6<`3%$8bmK5hMDqLl^s5ME\M=b:\jzIq;@֬Vโd;@t eTBM0|Ӯ [yõ셰Yřm{{2rhy5l>!N%2 {X5n.qm3r`z1xJeQ;֙UAeSGsn[,X91#;uc^S+iWsqN4+5o)9?\~2"bz3!gBqlf%]=pw3F-N1{(&o^f˅/fs.Y rlQ7^^7C\ݞo?V*[| }KW87Q:z4Ii%%FJp(-f=>e;|[i'dewjBQHm ,k`qRt# (!߀p]7[=뻃ű"r$`T(D2Z.Gت Tull  _HYt7gCؤ|ZNrYlK-2ٵ\C|_5vTU3edB2onn!/uNb8_&ѡwֈlp?Sl_Ɠ̎HRu2Q^AYdx7"$d8 } ") NxHyՆ8g}3y{,fN [\w!)фf"O~/ʵvQ}J8GcXPta"ȞO^V*Z]TMtg$u+Y\1{2X|:G1fu2Eϸ  ޡYzK@˔eWnwcn BkFY+"i9M+=$,3)n&q^(Wh"e{Ν 0G]T.DSϑ9 Fm i,KOMnP* y܊rVajxYz3}Ȁ !+}^l}q),a{{?<rC s`Kuu'}=i_7T@;X(p?gV46uCo\UrYJ0?$d<@5r/n7ZZ-}Ӹw :y~^BAEQ*٬ݗ~:V6^#~|ks4ר§#kA Y<|)xx J{(#ϱ%2wN+Ez~GkwKG=وBuA8݂OjQ96a@ HZ$˚]7b_Jk0z8g,V{.(a$S7ôTsg!wcЁ}}o.6Q\Yo}"1>g֯"L)9jZzkRR{ OʾӔ)t8 gBa8,G3KwX8hak]klnuѵwUh"t_g>\  -)]'H!%ѾVao bMżC܌_GfPHI*j[;1E n;m5dt1X`\?N(;Hcocz=M[ִO}[oIAj! ) (5) *cPoל֙DEOef8=z M47ȅgqoL,*ˢ©.ae/S|̈ [@=,pBaYzwS5aseySREo{GpC =S}gVok-oIKe0^Z+AgpF1b'N:ֺþX28~\2ßy=xEgE473 #!Ƌky&v؉5D؃@8+wH]Վt9ef>}x`CS&MkH' o!]*锋$vzNPjHTsCpTEgNtE ZzH9X|D}.GMloTtIS5Sf-%(AֵM)3xcv~[zU}"Y(A \rn?7x|?F)mfUd3c`qhChp^U=GϬBAޙN˥/$< JCl6ZRK+ vm 񆤼o}P*oY]R\{M2W@+]Wgs,u|DYkC{ 7 .Fɨ D,(#8Ž(h((FpQNd|]Kv :"y5m}ߔ}Y#fਜ਼E8xKECces+6ӳpТfgSi/0=t/)ل)kGvh^ag 4>)\]FUYI @GvL'ux@ Nx{-mCFDHE>u4:ݪ{ك@}AI7:M i8zb@X}5/biUˆGw'cf҈.J'Pi:W\#V^Ne#YdNھ|[2cfz*۱c4R=Hw)!Olޒ vѴgP2'7t¾:IS?e.d7L,ɰ) 78ҮŹ/ޜ7JA*F>h3Ii7nM[[7k7#RW"WmQrj 1DD ]5Y2̋7|m$CAh޿k{`#Y?5H rjqQK]ѷ1T5XEq/aOJuHy#Fo`%~GKDHrYnC_`pf XeوQb1Z [E' %3j|k\bQ]&4kcw(!(~hpABR$4%_os9ށ5F ))m,A|] suym?W%(xc?f`f]hsvڂaPlݣ3R8(o#Kϕ+L˓Z(2#^+# 5{YgӞ;\ىs?XF:/vv~|).QZ/-&H^ P,绰L 73l?\;0.=S&O-4T9ڷ/6Xr*/0OV5O#z4fvC9ɡBQX)KMБG+E:r{I+Kb_D NpZD9F{2h$.f2$%Rޖ7/Rtfd Tpka>726dw>4pWR}@Bg‚=\e )OM~8_$)% p_L~W}NN[`o2qa/l) T$ݑ|Gm+a04^6@)1^6r(2rudAȌ8DJ'ΐֳF>߬'F]vkKI5JS;T  |mف+h8J3=$&|a&3by& kѨYl}bDP>)ZL#_ZKu+Vw>D&-sWNqn7T=^~15zj59-l לEF,6FA:P;'=5Smea{QfwEd يih9t8[9cP1$,{хN:J哶P^Coї" nO[w0i͉2E(:^do8D7p̑bg$epSte**5퓌ŻF5klovVV-(o#~NeY>TdkI z" 9vUG0 $B=/$dBDj*ADJkCLS .0KV 5T,>0_x¿ȘMx8W j㋞ULF-ar>+U:g68ML# -]&;pR,Ye s־9-Ђlj >[*Uwi1}F09q@Ü/)ѓjcil~CD W5".הGflߑ'Y⻘JqjuVZAjWNI|^M7n(ςZIu4%ȈOoEN@8Cشhʳ κDu'3KIRԉtKĴ-.Icv"ϑ}]pg$?GX0#yz pVkcR@A,K8M]ۥ=\7!mBG_@HlwS4NZ0#pbz`lTV~GOv#1?=\9?EY,!^nї~ك֤&,7{pݪذZ9+!zlH:wgۣA}Ooj I!ُ[^,Q\lg<uS{O\C_KV$ l"HbsFHݹO8kͼ94aJ[ﯳ)˵S4sjrH2Tz= ۙұwa `Φj-\ NƋo~!$,2_N_Ү 2-&7N(^g7:@`sG CN ڧ0zk?YH="+ߑnXNd%Al䵮~UM\-Z )'wzr#h6Bces_M P \EcO-Ȣ,E ~R]d %n.Ħt֕F>iczaTōjNe1퍷 n*x~E 7ݴ+y?wţWo4 Ԩ|u[ kW6 v} '`~gYsNw7}ւ%P(|vVneωg%WG̋u OMTƛVhKdTvnHghuR^wŵ[Ɗ0Rr}ψxy<}-Be@_f++0Oطy0P wr{ wCz}[`/5{P[B^a+hMxgVxqI_WLt:ū2#1\?pZ=/ 锦Ԗ+f32T*+չYP3v"fCPtp☂%]q,S$_C6I)L:SUtB j}km,Xg3iS7/x_SP .sg/1!_G$8z;]7?Q;t!u+][)X%?wgv/q UcmIgt:~^ӓ'Y͘T `}}= ې]b)/hMHL#~ ѭuY\3ܐBA-A:ώ ކޖj-/-I0I &"2 `ZC=) =d\{"<G"gMㄍq|:ZzbuWD.q@^6jQ| *G1u`+{V~tH;.C>-%89l,}t!ƚl B'%4HzeTjzP=P`x["ܭ Z3|X[NyZV:!A$JX;ySUyx?"BEhӖ5M(s6^X:C7i[;s^v A/ m(.X1kNc2КtX r rq;r;Aw68wpz_΀]p486-%~6wXvַY^Sg ]sF]\icb/Oi #P9 j-b}|G̷+5-hbŻKĥ\eFKP=M)i)U6X"׭ѥ Ghҷ+U2ȔM͟6p|S%Otrv>}#%!uΆxvZwUlo1,ڜ0xi-V![x7<9UϝSG+LoVl7ΩJE88~g\J3 |]']69W#PR׆Tu)! K CApyV1%m+q[4E@%DO-'PMO,>Kkt]l3ҏ5F@5ᗃ7i9NfZ󪸬ʛŖ*nY7Hf$m XFP.-ɭ1 ңF_"y gTzNN#t"rKY!FI"(uMqrƈoyzI'r1HDASm]QSϞ`a4*,s7Av ְhci0H-;̖؛] :Pmqw=Rpj<ͱ~h٢.NVFc[[, ];d?G}xg{5:$1J[v`Όf *\a-w<sAcj}5zT4+D5EԔQlI<:DGpo} %&( AR6o2uR6P׿x&'ى!pڒ{E Rg{U8ݑ.ؼ."`fe206k~U,v9Uy68aM0bӌv'}/7/ts2, pȐḔwن܀㰏6! ?n2,{,>zO0D1`{璺*zZ8:ۧaXq+ƥǒL^jV,x יQ4=^vq*d7qfnM.V5o!{v{[dJ\t},[YZ@,Yʼn C%fg sLJLqG=|bq?U T[e_}a cxn -9+ *)~ rF oAEiP.+)c^T*kQ0 GOѿ<-=%,Y[Wb^\[-E/HRqek*ݑT[]~{Yi\Bim>V͡Q_2qC[34يwv w#*}s^d8pn<rb&gAiVf80^y' ᄋFÑ֧fpRj[fHSLa >y94R"/=ĸR2;6o;ޯ Los޾Aǧ:$#oRoEJ.7gkƳ-wJHDK=+=eu6Nyy5z|~] I؇~c!W|Evtoܾz$TK8daFsFL@' ~n|)ة ӕr_~!u~!RxصVHkA\ӋrϵLӘ j!պ6LՈM*,, {ޥ>ÈE\NyS<\ 3w& >>VvJYª/AA7ndtEsxRp %'5(DNh8}}82TZlϪ8aFk=0>:AF(^MJ߱e qyjYнS_>K6ϻkbq7,d~e؈+ :bWcth}DjH^0NV)D.2M~Hg*ۯ)9G^PKEי`g3]O<(k& \8XjwV،&7Qlǹ\2 "6q3Ù3B{>MOnyKp@k*$d,~md2Ζ0H&r"p,7s*%T|(O{j[n f~X:H"VM7xb =xXr;R2"YA91n)j [{r=9bzM(3Eˢ >mzȵǑbNa./slO;51. zSbw{l'c ljMc7V@VR29$6xCH8wO0%Yed$68V lCm踠GP4BrD׻WWoQrNabIJ-Ob2ƣWrUHo /FY#Ckffا2HIc?+=+` fB<DyV~f/ ӼT5lNzK‘ShF?RL\|#g~IƋh drQZݮenNzP!>Ξ#m)]$t; S ,a( # zE+r2/T[/?P?|(_R:]}S9WC[I `h<>pΑ1{4 a ,4,}؅98-qgo 3~݄bp~]DNSvQ @z9اf5!'%x<%oH1I6:CXOR҃Q}HA[0d)O6]pA@}!wˑwe8G%#Ccc2N<8CcǠ?Y#<[nx&u_D [fW.*[X75dz5o흥؄e< q= QXȠyԬBNo ;.&x_tԎ8|+ {l&;Xx T|[*WX,d߃ıHߣ>gQ'ج<+zGQ޳ Y2+ ѤYDv<[EhWYJXƫ`%yhI|d"ߕ q8*ԽqR{ y~Fk^tGEea*Z'~*%QKPQچre9{+Li52e,% sfl$A,ZH\EΆCgnT:-r 'cY|)MSW3pϰZXdTUrIc|V5H)wHq"`'mfֳfk/g|;]'b>!K@B+c ]"KESvDH~G:iB}$,ɲWRn8"ev8(B5ɥI`TB!3aU!8DU}!uw}w ῰DBc"b\a/tY{14ϲ'O%RGTvH༧;lĭO* K4@nAo8 >*2xbN/N.rXkAI<ky$"_x:b}}` ǡf6qp!5J2M*TBT<{ Onc=%EV׆IA f|XDС]2DW;< ͪkG4yb~X,&4T`Ż ]^v@*ni!aטH xB'fQԶ]d wqnf bN:r%m wj5b-pXel}AP]u\ĕY*OyR x=7XC swGB#ԗG< A? -(P~;B{ 7||s ( w;&#`d~b.އٯ9FAG-" e kuy]=ދc.Rs!FŻ XA;g9_h`%Ch٘j]m}w`]}x@+Ӈrut+dzmg+_AeFOԗqPH =9 :;p /ػk(xўR!Vc1؇kj0ice 6][Ɖ1 ܘ*\''}!| yljOsK60۱0N7sΧ11MqkfbGO@k s 5iDڥmZS,T 8Vi?E? t<π:t5\C® ބ4ݡ#X `շ%e@ϩ -N]^Cm] Hw79UL<*ElfpmkG->_ķ5%1qss9u֡g]2?av\k `$;X0M?# vwB[;N}Q&7^ uʶUO^fb=)xL$.8> i#P)~ƥgSiC1Uu 'UoYC>Z4i %&̥. Ҁa7'žIF` 4w;Av p'eß~&# |XdW7ܛDYX"hHr6ӠLJC)d*0 ? 騗 #A4},Wd=R=ϵӒ6[Q9CNj08(i[CIw5gzxvn"utR- ΟP' Qa;fH[ < tsME_w[ +Y!4 /'ʹU97B_} FA>|*7le9||6/dJqDgDr  l>7tF [y5o3E]lڐ">@E!].Hq|Ũa62=}tѯe5Oj/+y3Qnlq\A4vɶHr*2_`VUP ܔ;jr{Ƿ^;Jue/ ظ*P}n6w[I|s~ɗөZ/"ALF3 Il@b4meHQɣ)vI ٪E=ls<\."e(HyL%c6dsRo, _;lxI(D?]zDVG}wFdYʕp>:K}G+c3rwGՁ5_ J6ܨg4 kuQ C@Uxnx>RuYJ!UaW=GH&j}P3BW6Nam $4e2 (rP1\تkݔbcϽ-|'wUOK,_!HFY&eGI"FQ C~D!iLx'OA. %2RړdrZ(rprB nBӰ! fk#3xnߦ05;ԣ;[`'K e X:\ l0=wE@9!CdiR}Fg㞚fh/kcqu:ơU OinCtEj: :vAfrwme1$m@mim!ҩzw{C=x]}`  p< cil3af̟])G\?S3{!AhSzƹ^KΈ]r'hcJ< 6/ R z(ܯ@OYi[yr`\ l;DUͳUfiZpdȳ[/v]IpQ]&>\s-X]T$b.{X"TMP)KӢ{{7$n YktV(ˆօu{Voy}VFE6_ Ө\YFw P!wmT~lq#z)|Vch$vy^ɪ7=nMxJV?ܣ8%g>W%KDFsJnZO~= GDZM$.v{űܰD/U_6X%sVb6řPxU9O}R6Nd'ãKkڃ&=卢?6h» {`"frϕ83ti;t1bB"iEIk [OrB͔Y1]502ǷDn1YMK,s؄ >B2q(՜Ny9]Ayft~..f'Ī~[*5Y Pue[Q6l fo0 ~}%2P>AYHܖ9)f`G2nVj[ʙc4t֮T 8gNCvb{l]&U_a M)ea+qPB$~&:5l:xWldߥQm m*FzG# qGaI3~N0DUD;v lIL2gd-~4YBiBmXF\ @ xݟDgTp>S 7z1j3;Gڀ:DQUX9HI1=.*.GD-RH๢(wZze6L'p",Ohc1kqFycR\S4kmM1CF fLSAx-{4𖷋#[v3Zʥ́dCz?hs`Us T]t&YK4:Y4 1v'@[Qr",>8p '9s%kNŸ&#zҧ 49 |>dJƭNqF 0Aw:$N:]atnz}![$t̎D7)RCb#[AQ{zF^^w]kje lx e/ׇ'H9IFDS@V!p(sXrdLvkyC.5BU=בfAy~EylnQxCNkUC/}Uf ѕ}b!Z'쳤s.q VtR:0fPZi?ZB'=උ~m!͕uˇ@J_ER%˭qy`E02,mOMB'?5=?yXa]trǨS7eR]ϤKi*TaJ]f _ -;ϫA yVbm>&1BovIp0@X<3BL~EFV. X vsL.ȦV _$Sϖ2BN8&~?5wϪ[ g؁Z 1!A[15{WfVwO%ѤwnG O)qÒZf*Rp4H9ˋg-b8җAgOJ-T(E[3ֳ˔M^s8NQWg6p㥁Jj_Azb-Mun$03,Kz?\+~C~pP:Ք캧c- vJqxo:mNk->%2bh.!C!}.k듆oea(ͣ:c_1:U ,,mp?zqOX s^~ 4plP #NtZ*V(ȱCsMS2>;BhUV4X868Q[B!jl<]M -l=63mUb2 =sQ jA{5`3"-03:DR6:Xj0gft *sG-(̗l0SoIEbТA2oI%̜SIT`')Y;2{[⑂|p6sNtBLVô:&&6Y#+fn8D'}":yθ~E"-T m0C`ͭ$HW`LC2uA (9&pmCF=W|kd8tk~RV=1GQpE|JӶ9}ps/^L^,M4UC8(;5JG<4|}OʮuP:2qۇ̅ t~1%/ґkx݋&c亭73%m3€MsBO|tpkOO-xx _wzXEaʈT~-境־嘚('?s+nUnqCw jտHp|NZBPe+X?( vm`be :nOڽ/4{ߩs((ֺEuLE`S7/kCr Er3[<L-w,&/X1&e\f~8FW4*"٧כ3Ҽ Yo\a&g"X0 H!aOs,L5b٬ 9=SX0z`ʆI @% ˿p=R8~+*6~D#l'HT3-f4ԭ\AnjR;y϶g?2DEZck80D)߱ݧ"\7,<5m7a|ܶ@bBP,PnwX#!FNrlpgLbgɇm)͵sH0=1@|h& +#k!!id_gnN`Y ~xY+Jjl!@ǾIFU0ӱ1~$^4eL%zE_%k48V'㯉5qW]ޖ_SRc*s5+WdWk˯B&ԔGW۲,@.} >&ƨc 8"'Ƀ dɘ̍X'n`GBK1?AHPui //?CcO5R#ka)IM?mEp眂ƒe`2gAgV#6AUM}YeUف!N&FawJaM`ִ$|tB1 XJ?0UMF|٨MK%G;D3 1yZۻV- "3͆Pҍ9ÔN 2Lj>{ fR~o{k0W~E7dțx)'B;3U^uǕ9UedYH K>sCh(R5 fn~VYJb&oktK;>-' AQ+Xw4=,F#jX_iV$>UdwB`- Zh)D}f%;i/Rz|#}@ LBCa>c׾p?kKi=;mS(XH1q۹-|7@TH]0&SUlxP_[1e0U jQ.U0CҬY@8Fa}PSZX~ sUÂ刱TBfb g9:Dmpš&l^,,7}e-RokbwzD1VtsŅj*;a{<w{bǯV8.'etwbPxgr<Dz 2\vkœ"~Z׶)')epk'N>O*X62 ,5O ؟R*";%0HBcz}-E lS7ocdnk7$5~Z V]*Xw &si#r1J\כ-l|D*߫Vsa.:J^ j Qc8-2L~p{#b:xjB.MϣD, 5u%:z%4^n Q 8ʻ^CI3Yyv*ig3jIxBw7sIxqpgs "Ơع7̎Q=7!荑!%¬FW_ZTS7-24x8J'Ì;p~a#cxtH]sXwИݘ!zD f* S X+Lݍі#"l̝hg8ԡ&B*b\gK`Ì{fagȐ iZo2K)<7ϸvdp "p Q]Rˁ6d;HO&qjv9[shT[Z-Ns ƍ,s$OVYLj7B^ S_MXWX"vg{P%UԔ5F"*{*V[)*i'6ȫnϷv ,_e7FtkMA4d ~̈́y~H2sE'PQ}3p%@ljF27S*L+C5ke# גaɖb&tK]7gAlNjZS/0\0 {|2;ة~J`Nw'k ;zGːP}VC,Iv)+w0H=d{ُL5,`aB*+" hbRϬ!>>Ino\|Mc~P&kI_oMO&wKOyԤ-g2cwgl`n* p-y9w]%;Lms@n\\lj*}P):gt~PIaE|8vV_mVl_0g򏋴+vYyU^\庱D7HfcFz8N TT\iQN5C1f- `8F "ȒՄv!Ugq ;He~{tdFY(J^{شIːf2aS5Y҅6=ҩdEZUYY^'?i@کVp5ux!S1zGe#؏c GztLd4:pwqT.IPJ/Q+4>L&G,ǣ=D[xZf=JN oܢk8m/z\O*.GB{\Bg~^\^ V:y3) k*9,#P.U' 4>|WI~V9\1L "d>"$ KV©[7gzlߚCq6Pqjx m @Q70K vM)PiNop²䥧ڽ|%@9iC YZ