libucs-devel-1.13.1-150500.2.17 >  A dZgp9|bJM:4uho2PދB +T ЇjОnsƬi_]J$DP::Z0D3)H -߻E@6j,ˆV"! Ȭ-UYӠw hObg;!߽YXx$fCgREA1 Լ^q]K2XC38턊J oas)WI<.+vA_rBp4je+o^ԴI3Fv3f6aacf307648e9590fd98c410cfaafd39a5faabcde479baad760e307d2341cddbd93ded97172f3e328074d65d65c6c162c92b078y\dZgp9|Ѕ~+JM~cAnیjg*~ܵW?vՔ,ZWS&(Ҭ^@j1TIԵecP8u48C˘ab .78Qz'Ŷ񯗻x4Lg9nU8}\TKälMҠ'$S{- ABy?fTvd.\BgRjI". gPYxVTXcS\jTA>p>?d " ^+ Aau{YY Y LY Y IY Y,YYY0h(#8,9:!FwhGw|YHxYIzDYXzYz\zY]|@Y^bcd eflu(YvwYx YyzClibucs-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.dZghs390zl31jSUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Development/Libraries/C and C++http://openucx.org/linuxs390xC J4wt[ i:|^(#G ,?!`k#9"4 V=&2(S(Sj' $ { ?x )AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤AA큤dZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZgadZga6e22c0bde2472752547ed0bb23b146fddc2041c38d1aac159504ba570593c997b1f5a51464a27bd226e978cdfbbfa29ce1c236523b3d11c7373c82f716da7a136223a9e50ee221db7e3ad298ee5f6c7e0b4f13ba8ac7ee8f485e2ac2a8b7f78d9bb9768878071721961bc90f8474803496dd0428e615aee8c424a1d7af80c9439d7fcf5e3c28160573b44a1725f28211af97564dc5f99dbeff6e6d95c626a30a3057c36e059c378ffcf98a821dad155976de0bf04696b366f6762e871a10542072f593d3be421c18a19f215cede686dcff8d4df3ba1fd3e81760b58244a7cdb77cc0dd7bc025532da89ad7825e15067c5fdc050908e6a03aee9bc3927f0de341f2eb2d5daf248cef39634289aab343cc83413bcede30fe0d80f05ee4ab8e57827205b0eb62a3d11299fc12162b5a31ca67e5fbcf5860ad7ae52d017c9107c3fceb6a07e4a325d91139c4de158ff7dd9452d98c52f767eff93a58f26d02e8723b7205b0eb62a3d11299fc12162b5a31ca67e5fbcf5860ad7ae52d017c9107c3fcfecaebb381dcf04e37648a7183dc78420717d89ff230ab12325eed20ea34e3a8daeefd2f720abb3d5351e7c7445c26f79b1a93b59af87173f66abdda8bd19c596bd5d9f147e2782f72c709cf7e372d896722f2f0e2f150b5c88674f7b8e934165bde1f8813f417629f11682a7610ee510fef875a7eab17574daa7a39c9384ffdb2932c6d3ae9ea7f430df29a660113c6bc908e99665790a9b6e1cc8adcb70a9d4875f6c212e3c7b4e947754476104467e677f8542a0566fe339d68214919d7e54b8712efbafc055eea724140db81b3ae2ff9e85a52adeb08fa2c454cf28835d66a387c83ce3bf3ea04ca18d09825364fdd1dd393deb4bcdc1d5f96867fe4ef57dcbc4cbdabb4218df03e88f134ca869dc4c99f46d47c927cd8a36a1badfc3a694c7996d4c040a70c810396e859ba731af138963d90509e3eac3d6b5874b3eeea398e663e1af3afb67911fde76be99428a5a0c421ad5302ecd793cd9e53c4867067725647182f8b8c18b059a28a425ef0fcf42f5f76497fef057aec46a038e4c18b1a53b12e2f5e2b506faaf7f3a5dc793a7eea22328a7e1f23162c2cf78a4768e0b3b7e24c8f4a36de6b2fc2778e77cd01dbe45e3a65fd9a7c5289bd79522fbce968b56d44c51e70aad4a18d4f381f5348f9a7be644c6aaa6c8153a755036ccd75d00cdf046882578b7bc60c5fa9351df10c190f49b2330aa4c4e54f87b8e6f4dc436d72e0e18c151666d9b9524420a8ad273e01a5f8d4c74ec7f5061995e1a910e49f231c3bee284539cda6b12923eec434383b7a9e1e7c32400b8bc22bc606f7faf943e3af16c43013093d88e331ab1b0ac07e90942dac57ffdceeedff7ba66238d777d8fc15fc576236415a19f9a4cfed71a1b42059b92b096a3cf64d1a302504cdfe3b948cfa11549195c756367bec2d4456855417e62d04f39f0bd2c9ac357286ba0f0f2dcf319da0c08ac3e076c9e14fc4071c6ddf72e20245e2849e749f764cf6edb43ba87881dbf46728a0ad95de97bec7b64f1d4d80727c513957087c080c5d499144fe41117af5e85bc8ddb28074a6227ed5b5d3e42903100d9f5942781a204a45a20c7f03ec35e174a167f73fddf22564af1b51dbe57b112352c89015b7783e046803baecdc55afe2fa3d24b89f385d37aaf4f37eeaecddbd37eeb2841b4711fccb243cfd40b6d0b0ee9471979a6d63059971330d78f2ca8313543f689e40fa4c4c295067c2fb4eae7c2276518e93d7dc308c4f02779075f2fb07ad80bc578e2363c3e41390033ebc72a364b57d2e1b8c16b5af04c86a033d6b49413ea2d46a325910eea169e92ea8cca46be08afc9af2545fc93376751bfecb71e6d59057c9d6efb1959743a6edf6205b11181eb49efe3594a5a8d8e5c8338a9923991435b700e55ebe242ab06fb58af26a868ef8bf4b3f843b1bdea2628c6556a687c449af78fc0e94a572157bd90679f51417024a2b7216ddb1d16a4d075ec1cfec479505821a4a3b5e309c7008d54f2ada73bf0b8248f796d898dbb00cbd55a71c7267c7a86c439dc51b719bd9e927ff2ee70a29b7f4bf3d5e5b105672cc93fad71d1a425e0fcf7f9e535d3905fe2aa5a79c71d28a86b57f32441e69d8c537e8d18c0af59e37c58759355c5b979f95e870ecf21356feeeb0d98d866e49bd73511de5162d368ea01760e07fee7302ff2759fb41b685a79e18ec205e7fb2868244c1d4bc437c0e75eb1dc9291beb3944998df3b28ac1205ee2e2162870eadc20eb86f4906f8bc47012a66705c745229a92be2fdf10de88ea038781770bd6075ef63d174dc60c59db78a7f68aa862a81ee9b57ca5ab1baddcf795d03098da0ccc71efac7fb56daffbcda33683cb794a7d5f99bc439c839f04c826d3b55127934422fccb1d1fb8f4a879e9d95c62a72944921b55f96c1dfc5e24a0da1ecc0c01e604b25011adb48a3879774669277db21a92afcf67be2e241054bf99265833fd5a2a2938ad46b1038c70cc07fdf1da6e1c7de45b8da0803ddc36a345e8238fb1fe431b3cef8b9b2fbcabf504ab97d497cb76388c9beb9dcf101ad84ea5394651ffd08d05011dca1212bee25d1c7808798cefc9c67cd6a593e0ce2873739df35572b35cf2aa6ce522c57fb0da91e2c5b77b734e4d8071029dc5dc6a4f1c7caff8eb82da40a5b67bb1799281e8d39842e3af310b5a60be846f194cb2703b59d5f8e6444ff20cb11e09c3d792d47b0c40b7e2b773a77352b0957fdc2c1df3175df0a67775cc2b9463d680179072dce54dc945e7eb58a1050bbd41dc3c75c82200e655e591e9d697a5ed0ed3cdf263a156ff23977ff3a8e062af0bcec1d3316af5bad7166c8181f24e1d115a8b0e61feb498e0f32857f37c06bfaf4446ab10160f0851libucs.so.0.0.0libucs_signal.so.0.0.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenucx-1.13.1-150500.2.17.src.rpmlibucs-devellibucs-devel(s390-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)s390zl31 1683646312  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY1.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.hs390xbitops.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/s390x//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-openucxcpioxz5s390x-suse-linuxdirectoryC source, ASCII textpkgconfig filePR焣"d_~`utf-808469865800b5de8ca361ef2709ba43e8dbba24de0310e519aac253d5edafbd4? 7zXZ !t/] crt:bLL ֭N Qx&`4V]0Җ ǐsG 21ȴD# 4UOO$51tgBhKђvQgWw<5'Ҕ!;C1 _ZG,+sm:Hp Z#iئOTdALRbkM:K(dT]$ZsLJnq/hVgYyaқ%MPwCzyۊx1[%xgo*R2k$ʞQv`O<$6V uFOh$?/qw1տX•It|G;ŁI Ė9ّG[W>0N^2YddU]e0Q^sW0@v4=$>9ֺYWw~ E{LzMUBs8Nހl;;$MX~^0$rpI21&%! eVX +c5s| ,wm; WU #]t0-M^KfX_#9r՜cAx[GFX16=݇Ju2m $&YFChפA jh[<EI$x9̿f5m0?xmOrsԈki}byEA·>G^B"] u(1İG,L 'pXLy훵<_1 fog,a/v']$Q<W/Yr!.B]3Py.y4N'l /"x$꾟GIQM TrL.a5Hr5.㐨? x9~5opégx7%}O*0ΕH*!>\Dn{)"hy)S.9g4bsn>lz/w\ШK,O+89mgbKuARR#6R mN=1rd*&j6*I\Nt;dAkRjoI̭? VfBI&.#&x"*_v2Z{Ĉ rȡWg>r vlPZQpJ&: bM»<ǷD\|XS` ABcj)'4iqДJk@. WTx&_yz-ƭapxL7,RmRt.J"'Bwh紻qQj>?.Z57:18 p!@v HUλ#P/hmVe-J @}XW~ڟgZzw=S<cj/g : mAw͚aDzq,} 6 HzƑ96G^o(0C*òWq"h)ȰEP9Үvţ; :xIl,2槎w~01u[IȶÐ-V>+br93ctӫfH':C@H:hz EoSFjK'T.jT@n]<@ҽ%I0s!TRӰ0hIlH(g*s҃{ܺ Y*=ftn"7j?Rs,my CQXܰRnuK}WqdT]T;+>%k ;лíM1lKU|QA\,]Z7)ovO췦ip!:(@DbIw,XI?K0f~:,v=ROUHrAFSElqn"Ti3;'ӝe7i{Vh@1P?<+c Z6^̕hCurs$rAMǜk/S$a`^GNv~u33Pk1}I7S_O|ox`.īsUʌr\젎%$9Y"g[켮hkB,@М>yއND@B˽;gx4nX䀦8zryrG*t(]ɜ@yar0nah;AlQrCSJU]4Rս84NqkiuhY*j\0q]R8cM7NN, eȝH/3EX>u:Bv1TݑðD|ىfT#[R2TQ)o5n+z yRrHQ9,"k½_{W-^(G>D~^5=壀/~TE>]z Ę o׎^斨]23^d=xUSGDtg%TC+5 dˣG޼_I?(bscxž&\q T1XXDOωHddad\+a'*R*,Qׇ]>KHs3IG޳uPֶ wK4"EjOk.-_g\e& ɗabO#/8Lss>ns$ |j~b m0̕OlZH,C?qpۃ+ Mr?V.NZ *),йLNeG>>З˫U|?"4{U6U!얓Hk Vҡ>R>ƩYKЮT e$g{zjx{k$ڋt"pq1 \G-vD<,Y#HVx$3ꜘ I\?Q {աBIyaxx/4(que=hr'2y&k0LSro3#Kgt_!q61="FSpfsJ|FDB*AҀ4|RL:rС*`zd{ $X 7ȳ*xJT+Tv8h"gYaT,MَiGi7p "Oi=~D{" b"Ĉ pLn(]0KSZGSY?}.->z#/s7 No|=C~MF,^/yf3nr\;i#_NbOk6yYO#e'4_W8Ԡ:--LbpQ >rW3}խ=df 6Ō&PC!ZS M+O/{KKCF|4x2/ڬ*E$ȴeO(S`JAgo]>cSnsR HӍH9oE7qڅ\#?YJG9~s Z4 =L/5zI $*U%)A?>g2Tj oZѢAJ"lЉ 5`ü <]Z6Fֽ֮D"`& =ܸyX NJ ½b  Qh(۰`hjfpNR=x[LuXhlQgmB8jO K)Jx_͵dH|3ƿ53pJ>=t񭢧mb4ć!5GFH0GmqR|i\LNk7c d@ rTz3.|N[ft8ES [pyEX"kjrݞxʻlq\q1 yXV|@P(n&vmfp̤zJ)RCQ2k z ~SŢnj;p[+2-#D ~i"fFs/:8fgg`L4}HCK[`N^N8JN\7/fQ906`EY5-o?C6*k)4 &tx2>C45ۜ@B,HX_-wWM1RN!S pRIhʯGgBXoh#ZnzI4'.Gjb?J},h5)G>3կbn: $=]h*v] ~wPk ݄V 2]C%R>&:J|e%" ޷t=E m>08 Vȑ,y!aٴzSsJ>1VR }D#Sl,dm?TkB /\]xM7M)x|u ҂Rn9BʭĴ&bySd,9n0vJ MWtxc[L8fQw \u@z>܋FZ6.綐iձ{QA'_gh֎8@iLN,q Y;e:`}wZDE)8ƿI/&YoG6UCg&+r7ig5אLoپ5^J3: E7lB2$٤񻗱 ⱉ+8:6,H;E-/+_ ΖԡR/ ^( 'Ԡbw71H=()h{NdkҘK%9%-QGAgJ_αZDk9` oō[j|(GpNHލ9up~ږכ:[Z~L?C38i\&Y ' gO&+c[kizc)iRMn{qҊ?8Rh]` H15@Iuxӳύ˸w39/yuEq,%ؿ _: Og9iʞ揊ANMkԿ:uĨ&=zo/ڢ %*c|-w@T K#3Wdj4i!GH1)UEhkɺyK5I)؂'uT-_Thy$F,ŗD]aMEQQ@֝jrw\@l>@"pSKy<+Bu 3":$F 7/%z8}ʖ@M7 =L>p8 -L4zFhRv=?-wa5l=s1TW+wH.-lsSPz_-D.e5Mu *ᾥr vm_A}Áe%$7)n7dyOͩգ\xnҋa `}4g8C?U٨*ƿk< ^S^#n*9uD@by~W%,*BFy"pr){Qvhr*H="(~G!Taዤ5_ˈVBKIȱ0h)"P˩*y&Ĺzߡ\|twF*J+m|8F5dvc0SxP޺5C! [)G$˹W?\oF` ,Ǫl-6,@jlwOYDaɲM^ )j~7AW3]Ra}JA͘yp2*ߖo=Wō^>zw6DE {H'HO f̈́YlOm樽 9G-^G]-gӞStKlߴ(7+~H”N)ZB) r\}>z19ϞlQVǡu=QǮ Au=*r?U@6 c.DnXu* lLbd3:A{=s(ddPW {ML_1jMYM|3L:!P$a@om9[\,rd]9I@d w@ܙt>v "l,3S+ >w! :VTlKg6z)(ڥOc9:R~CEi'v|Gb)?}"WINrVOB*ܼgUw[lMߎGv #TIoNU!`((@HL]:*  O|_ ]՞G3A가@`J{>M)-X>+`UXʱsqws3htc c:B܃K+|/q}a߸,_ŊfeKͅExN%0Ωj\?Vq/(0cf= 3JFjAAAxwSܭ4\_p4IӤ[.m9Jnġj?h< QNuM0ų}Kd `PÚd K~ !] rO>dZt|F0(wNazQ>-Ƶ)wzػ?Y \؞`*96T>ʩkgR'gzW2F\} DOJICx`_ 2i Nv~9nI0<9`P`,LA7Z}^<<(Q;?: qיW &OōG#{ӹpPsb=">/O+Jj ܘ^o(p/cdZhvÄ(S|QV-،rMfn tㆦa_:ssO=q%BLnJv; jR%->^8Z R)1^ԸuXar/[4Snu,x|Z": U^koraAyub22]>(d2X2U2C qE&\h,*jۃ٢5e~ʥ5g} ^6^+xy] vpu QQ7HNӾ\#R}ܳҸ .Pִ2K[ߝ&CH<11ӎՆGyN`e0F{ ATt҈s =k fWP'/ &M#,uReԚm*%E0xא;b&E1J0'ҎS$p:JX[-!}W Bt{Hu/&>Нq b+A^e'ge8Fuɂ(Zg;D_ {3xt|xR{+iԍcfC?9]dZB\~NZ ]\/U;Z͠%# c|f_$[̟TVi%*VFʡ! uVO|5?`M]Lv?rOyQLpG&9ccQ!)"oRdd:L O^] kӧ'Ȣc5-@:nNUsXTi[~3{@٬X("L'rZ&(0hhi䍩ڰ;\3ٳRۖZpw宑EѭSd+;3/Y菗%0)ӹ_zpi?2 w3։b6Nm4ۀ 9R\5ONA7H^K&,0 H\QL}l~Π}zއ>PBrl1)f*`b)!wc9L&7_/>C*]BGP*cΩݜPi8V ت1V 'i~B/S&h--k} hjƐt.Fv`0~H>C GMR{c|L8 |LCR=ܻ:/b€tҀyUzBmsd]K'VtQ}R`ٻ5??$ܕV`Aw%1]9 DžVV܀ʬY/R|10*cі\ kN4qLvd" ypY+ J>M]d`Xޟ[}Bna2:UH3T+((_ia-?dҤNBkH7 |'ΎʸLu<׿,^ʾWGCǨ6٤TNR[w L@ڙbC ͗e97Inpf8i)~^`y{o\9~Dp%/~j:W 8^j{&Y,Ol3=BC<11'Ժd'B,wzJ3ӱ3A38 z*&QX &si cDUIY;_4WU1Ǽb ˒nICwiF$6J@ܧ FO,/Uh Ϭ{[8lUϵ/lYrO()-AK R:f4@jTa"̈́f堎ˎȀ=zQ# ]8s-T4"U\CO J@K<*򥉀g;VYo6VF= l5|g~{ɢfi;RPmgk>eTL퉣Bˉ v-߲gs)?OᄍBg k@d8F$=w\ kƷ9 4nl}z)'CV n0Wq-#Ca/ڔR- +(ªXr byBWL'v)t-ς?зUy^B.,Sf/)ˁ\2JbdEl+&NG+C@B9ƑTY7J҈dV@rKAٖLeA\n@9,+iN0-{'3I(0dw/69-׌xYԺN ( Ox2̢:'Ws hЏ^WѦlvמpb[> ZuYMeDmnr09:/1 2,b=龡SuOE|'dx#5y#73bDU êK/rknzl3J_&Qh?@I),5;5.$)ac=r X H!Rp Q=hJGTPG&7bW }E~ʭ*1Ψk{XalU&ZZ1 n}_ P<0/%ϿV:IC`@]6Nb ҇.кK @'uߤZ37jmvQ{܏H1lJ:]رbqfFfe~LP]X{׳^´~Y}_H43灋͖Cb-~kkҷ>u 6<ԋ'AM*6ULkúm8&0M@|ҽ$S(Yj!gb ~ ԋc]zRzvvs/Yo_RDAu{6)^<d~*2J\utF| rG/8~UgFV1ޏ7FCn[G'EIwb !d_Fɑs׷,*þI}¼S" 0TҪ[9ᮼۛ̓6N~ijaEeV`$&;T=Eƣ3: zS_h>A{H;3[z섿K&'uz =C;E眔LCµ8s> Ԛޓ7X;ۨ@Xzjkݚ@ .LґA lTIugX0Q,ڙЫlƻa-/3F$<词G&֫3ʹwR_[Zmid\t%<796Rn0FIz%79 i!eoʐ⤱PH_]\zqzh;5ѥ3X9M< sכQ\f_ԕ [ <͍E[DݮP5`*.%Ë|1XJ] }S%ۜd򬭺cȴV1Ppy1;ǥrƑD`EYgHn?rS&|#Ihy~/~GXZ ~̅=}F7|@B7ྀ"(#DΒiX=gRRr!Y$˫IN:xJ?sp 0~V>O,eg\>+ mm%T1A rLT>oK }sITL_p6T 6VNYV|Xrf|zLj'j#SP=02saM Ҙa)^eX nJC$fl%B4ML!,XșMpReb^lsxA* `c[Fqv 9p-2;_yԧz2pѺ#\.'prDlF]. X0XM<8Sg]Bc޿'^_K"=*t4+ :mf)~MpW33g7x`ImE@(% ^ʹK~Q~P izEI\p2'9XyAK9Nt:.܈w1V"ג HAmJ nKiC׼CUu OC\:(ve'88.=ڪ5:٬~jƃ?(md!۳XFhw`HI <2nrK]i*d)pPëƕK3}2u+KotS/ߒ^r"[y%צ adA{-^iqTm$,, T4@}WI@@dLtnl׽518`d0#ejbl5 8WwәBF>sFWՄ{xKcph戺-mǦO4&!jh?"4ԐVRЫ ʔ+ m[_ Kn~2FuY+g)Q )X# 髵üH3- {=bKg x-5>{(]bjDJE:LiS@WM]x6pVMY@bu6% N& ͭwko#B):h b+fspK32b:SAEώ(Q=z5C(s=_ֻOh5=*gώ9SIm3'1Ml/'.Z?ct|[]Ł҆ݯ7 JQB̙Þ5VdGT>9|~ -49n<t`aWoVH7Cfwy9` }ٯ/?vl%a6P (OԅP3^=]D﨣UY]>wN9Β+#t&j?)뱏oݶ(!01Ftd (ih -$o6e1?1+٦Dz*M0/]J/(#myQQnz}\L*4eh ¥[64|.Y_n]B۔l`&گw=M,V\ż+B˚sMvgu"g^w0 ϟn˟k?Sʿ.![v=&y3IH(Ė?D~6%f"=ס}l^v iGlC`Uȸ@D{H WIG{_Y.xSt.])lk˄II1+{>a|i8G0'ڳsVv' πPzHSDгAk& ?KM鋥i`=9jJ#dd~vN Ʃ#7?zOŃEa\,O1vO4GYLͿ1Z/zӋ5uvV,jٗuN@ G:@Hd2nD6Q;p>\ "EMzwCX_CV=]| 2Ql`2#Q%U8KY0"~J~X=VyS֥tqԗJ*[2~bv\m 5ϵ[zE"9n]EkU햱HRY2e LG`U<8e!̜ I:HP!RQY!+ifłbFŨͶ]Wf:NӨY(;|[M#NBWB[.Q٧tAG6ݔ):`Ibʱ1#A9p)l}m:Kָe /\۞>md Q }!&5nS?Xpk0E5UT^@7"7lp/l7T$z{*!xWݒoQaIXbZMLX\ά&5`~D(Rَ㮎'@aR\|@>RCv5{I| J+/-mlRov;)0sq0b;vN%)_?v] EWFȀX=}0H xJCK=?xFb>Okf-3ÖgbR'H;9RV!a'g*pD}mo3]EccWM#50AhJ 8Zշ޵j׊m"c/gRIvjON` :5z")mW|g7e gNhPϹ{ފrWIx{p%Ɋh}MF%f~X $r ( 2YJYlRuf Е,k:?IY kfGR23EcDgSWew>;os\$y:ҩ^ۮ|WvpzZVEowwh|7DG  h涣E=!3#]c FUuA'8ky5\׶󊍆<;X&ܔ2-MhV08ȣ b@z@WK.g :XC=c@*ia1oݫ{ rH: BaFj0puz׆uq*S_l)tAJm?ɍi`&U1+AuBzTѲ( gu:RPPLE~#kYJB >&2E K0 Ӑ&U95uj)X+7x}Q9ή٫JLtzyR,r th|Q"xr?4"VB<ڗ&cv}&1 #IrD-b>q8Sĵme8+zN? #]EAC]`="zz nɒ-۹ %H]ϧc$XOaʺ3LM1ZeIWŖ=RM'xRW1ޙ}̾W>61rIJx9oKfJGʝRP^k=o0]Xq*KU5jd2| njϿY%o&@` ^ է|*c"^EN2j.4O]:HN|^R߯\KK*qB鹀tv .3n{MRLp&H]JpFK3H -iU1PV ikóV_X]foɸ9k4qŒL&  UU>!@Rx/aWL4:y Fl0Ddë!?3;I\f6֣y 4x> sc384_E/hB}SiW, rD]Úm e e8RDBAЗ>]UAjaI}rypWcfvJ'͡7e@@unW4p%*pHife uz+ ˀZN,?FrVH V;)IYQ@N05A!c{&=P߸> \wȞls mREz';UHby|BB/o?{5G:VwQ=_Xue{ww̱:X"0*/r&ABY_Yf8)iއLaG\ZUh(1ܿT"aׯSf7kr;2Wϗr'5'BnZLF~>^yF~bLIDK$02q yO$Bơm'DmCxZ~@2-]Qwi8~Xid+9J#8Rn*lN}J L|]C{ZeROyAr-CqiSb呙TMEKh**o9-~rGB_8mb mmZ7/-E*s^,{ V}ruQF+c0 D+S0{jZ/XM(Yz]Bӵ#׊A4C.91>5pQ`6oDzp4~WۂD(N1Rn4Ma?d4yT$S9$$ 3 I5(2+je8IZpE%b n)6XnSFVᾕ*mZL:*H'G],癘a8 C#koG3kExR9],#9KA9q3[dȎa*]:uoxQW(-9@|ݦxqD DfPVtz֨&e:H"غys*Z_Bcq.k,.9v PڏIx'#;b|):H; >jΉ\u}2b}jw2 6s%%)sJ0RsM Nk_'&!ANw^̝V`4qe3#w(b?opnžy@yԍ坔B$x(qU<@/ ǫì!ö/4F+}099+mR`\}?|PZ7кÅztc? 7NguZ{ox'bꑛP' 717?$z5N2m%U-xp`d*uÇR07y,FCfWn'c}Q2__H0';}8?U:csa!A?q\UxEw O>̣pJI\]41gL n5{?L z]Og =_CA4]+͛>`>2\*}h;n^zXԤ%#sqg+L'Z̎)@Vu12p+ݬhWHSzi*dgKk|!]-Սcbe\Hriێ4983jO*9 txg-FRlQ{vJS > #y5Z+DZ/u<)Lˡ|a!iy'kҢ!.5-ydMa'`ab#J^A0H1+THz%jPazC"%)"g@L$?ՓnE~\g'܏\b}\CmX)c=) |Rau>TB5$K02fTTλ@?sT|Z}T&[.6auFYC3X uU!?f̜Q^i.ittd-Ɇ^L "QsQ5 癬=H" "6;UXcQ Fsh oiHw@y)2OaNҙhRR1V9+*~Oxh cUC$&;ڗ4v/::\L"mjDvem@^Ix7:%AEb[Dw?ߕ.Qaz3 )d̳ꈿE'wB.M3>Z@Ɲ#L*?rIp6iRɴ"\J` ~j fOl@d9G~j(n"ˉpo!۬Mڥ泘l ,a0V+RˬU9=[S(F۫tT>$@ĠӌzJ`7e ae鬘ђYDmGi2U^nZ3&Bӗ@^ebdͺ3{O_aJYJ<6]l@GrC*F.ͥ8ތlHdV;c?n3|ڔeg,M -m-Yk- g7 h~]mQdṴ2ݲЪ@K&>=cҰ>pεҲ|V?F6 0!g$e)'PdRe>*js8į]_R!h]O/rio,':Rk?Cx@έh7CsI֯ʨ{; Eu@̃}*1ud=πpPQO'G BfCdzGBDPO-Ŝkno|@,ӆ3^M;ƽi&)1Næ7ҿGpD欧alԾRJW6"8h8bk4GZ.R僾ɊjgMc~YY*,rurlMVJ:8Acdy' 9- uDlI2gq D1JwXY88;LW8TLKKeꗾ^Q9(a7 d1aErc5Kmă\KS5 ˡB#zsa⣼#S7e;8 u"DQ&=+-HZ}Q`FͶybU( Y}@aWzQL -"cj7a[ʥ2ҌVax8(ؗ*k ,$`0:g=h=]hc:6&q4z;:ήӐ\CZAXnބ<<&aE!A7eKy<4S"zUwHfzvoŗ_=ƸSGF;ȫvGꬨWѽڰPJW`EX_ebӺr[.͐7lX31uwFqm<;5\4Vz<5unT` a=Lblꡂ+L띰o( 2IR',ax)?1W3ZvӱV jкN5N_aj/w%si ?2]ȯFM%f(6r8"[\Golu gSDA r`DgFv(/Jw@!ṷ@@;ݶ='X@CXAǦyI_,>@V0"u(3ɧm@#3,s Tx,58fZg=(Ac>b7ـ׉ |TR89a`˪y1g0GZGx* ?'\zv%)SqÔnl^L Bb,`+Rc$2i+e*H JO=G9 &4)/$AVV16ΥWF +{=(ThBZIkR*:Y .@?o_:bK^[J~>w?narU&.t=C.1z97Vc3pBşcdZm*+¿ `n/09!@֡zNZ#z:+\ߪ;n:"Yx21sFs9_|1Q!Ğ C]@6lδ"֓M[lny^>v9v"%1Ƹ h,B9lQe~Ǩe#eB^ȽџoP1;M`, N7"~N $M&X<?`W]q]<*JC=("y`Vѭx.jA$ +DnHnM,zѱ3QzAL'.ҩQ'v|yF*/W\Ur61)"M>Msr5O&"x"quADqӓig\TIM'|_7L4$٫)FV)u+A F%lܓL-!FD+_Ôg۵;/f`2ߺ,hthSD T&>C磌N>[ BP3v : H4_C=VJcuBv:̚I܏gkvqp' gZʖ!z V9gV;aJ\C#vb Bwu1($ 2{q7חھ$6ńW TR7۩ f:>Ko/[[rBeSzH~U$tr=)pa.g\\yL8V2$30Vt ZkA.ұ }}2eyVgBDwGnx"MU~-mXy΅-0J $zhp XQ%fc!|]˻tMC"fOuh;1nʩ.f ΈOϢ>p)t47ߦWo|D1`^5DNbͅi!mN^rԤ8.y<",7iwaA்),f98ĤQZqd#( V$GyRD ]g($HѪQaBHcKjO u#aP.8|Gu/<> G/,wj͙9ZgLg *a?'GfFh(N2Nfi/%"ng;SC̖J }!r|'EXkL㳵h:jIN_. rͿ80XYI0#) ^be0JOZvK"i i}gݣGO8'wQ#Vm>. oDI`9I">45*!/ ߲p҃y>IJDF isVAŘuZ>>lz趗аdiP|_>Uy噎'܅)Pּ*8"NE| \8iw)#Y H+2ȋa}RlYUGBRf}ާ 1k<5QDjIt"L 49Pѣ;ΚDuE&\!y*Y#%7T.O[&2:ȻG .ޜT=>Yd\vRF^uY!'O^a ʚ5Hxr|td=|C'; %PCɚ#D 9E8$8tH/,nJY,aG|lz; WjR&t2G&D]Okzp0 YR3PX;z|%=!Fk!Ch]L*Wn]ҚD$#ȸVۍ3%T,׵(QBǖ#L /~[5Ý.}1?Szlp.j}%9]OUVLPvaTɰCUg(=i_QVm|goמX-.<]+/{R+=bд9QoQJf_G&ǹdm().W$C`2.bI o]9zX V5jmd Qh3XKdm*F[նS(@?*Bw\^^Ѱ<-hxcY ?/G/0f oFu-a/>љ WnH?*i4x| z8erx;.tnZ9[;*yx1t߀HU;$y}S?L 6M _OoPixy7Nδ> p`r)U(%M(>.iEG+I}T^ BI6cctwlUqAtI #\Gt*#;l NvCU-fAGNo9A+> G4/{,^R0Jw+OByҙuLp핝}e{@d>lAsfuϬG{AjǬbyd1CF/rn$%^ӁMkos:5;3McVq/g0$SI8s @VINq<BۼY U4xcjqpӮm")ۢZ1z30[$, |NdZ~ץ\ a誏@^s)p")–|M`$H :ci#ndZϪغ6~s 0Yxz"T(p=Acª}6ֽZ aMF^?`Jeײl'oFԕErv2"*ͦ"Ջen>U?tpxBQbnVg+ݍάK29Fo#$85`6XU4Mb~W> qưAwWJi6!MZQ\GC-A 俿q<梌 mg?{Jar7!v܁QeIs$= Q3`{npuk$r-nv*!KHG26m]}cYQۏ}D@ANfh荱h+ Y#(JeI}b!r*48KdC;3m73YO$2/dAOFRް h[:gJ2NS`ȮNWƉ@/yO |_wVJ~jD$|f7l%PTWxNbYdVPǠz򪎌6- )e Гƛ־{L~>-Vm v9a׏XhF Lkx5\(1!)_0Y1wBQb\TQQV{0f04h}ňĶ062z(Tw' \UH;C*%C`94*':5:(d{nDDiǮ mPurt23˸rTBb6l'*;c9c[us|Ѷ 8_Yv~, @ `(ഫJH]7@{c,ك6x寳:"nxXBt*:oO[7;FhKY,˧ 60{64u%;rFQ#4"]G+xK_%~bbZ2}^v#J؀e͍ ̯Cǚ蠼\a`?t'AQr_5'8L)emI3M(xU֣u3^͒~z)rW1u =*F sM1drZX?d+/-2$"W#|Jg?@oM @'@M;Ut*Y0۟')I[;0i 4 / ekw1lb.' rJLwu1>3%Np{Y?h贁RXdd15"~Ud8f(OdG@?VS0ܶ:h^x(ZYi?快<ʇײe^EjVܗ1Wti1<{+ Ur&Xcbi0CfECSsII2LPW8'!.waDZr0M"[<ԣ"X*|Q&b; %TAڸ]zyceR!re hȺX&O 젹XڳmtfWT=gz|C9G"><)`UĠQJϿx PPYHf h'ੌ:bk-Ĉwꍍ<^ HRϞ*2MaaFL=tmVx2]|!j;u>`'Q.!k~H}y jޞN|U!H\>5n b>2W8aMfU_"O򓹯š]S=fQzC$7;}qh!d5u@Wy<.zX?=AF7?ymk| %Z ϼs؂;/;adR[ fY?E=&ȷ + JLC|1Tv $lOUV|'sc7yzsun.+D(,s6W⫭^)5X2Ru<FNjp!>v^jl{3ݴB1Mi- >ue=SpmێmtQ8;:n<ұgi!n_7^oɛ%{툷Vk̟PC ϣ'@e?p?5b21'# ((+F :ἦt*&MЎ#8^(bVYxdj(zYr'zMEK=FT2)? Ed͋DšbG aߏ1vƵ,*m$iŵHM__ponc87'`q t~\1ʉhS(!Ն5br1qK&F/H HIjni vP)HqO)| V@qۙtSь%9<ķy>+]٨UIg.<\`( -ZzU+"u6/:8ı>^k@V<0)Y%G> YN$*f:VeUyjLޙ6CZ@̰.: +ApotyIٷ-)o\t]-V"P<|+୤Q/uʍ<6*ЏER,Ա !#ܫ>S ʇ:SO%M  SxYC/B2J)i+" "7.] xWxCBoS& RmO׷wW mE2C$Hfӕ;BzVWcݹ{o3ɇ5- Dbf,` L$x6˓^m`}SN+'(!UԮ竇iuzȭY4P9O5C}9gIpwH{S%Rp̠Oo2` Ygg>|ME:ypMX$kҘ4&c$3Wj(N;(:^##۱&@(֢WfٌVA,pe*?"u7C>d,QSlv oaa:z,r?Mt=GL EIT 8w>yHP5BN6G1!”RvDdd DYY*V􊶶7("bŅ6k.y+wu}y%7N/1俋V)Y!az%b@o6}R6kžP%daqk"sO;4Z<]7 r.V\NٜbY1Vc3]|BUqd7 BLJjvdC~*O%Q;:PvtJy>f0t8֣^*F-1juzc}eeQxSj/ޑp2b&21nVsr/E+>TqrԩnŃ4Zva'hkXsy&db[5ъ\?xKDZƟЯٯ5zT$6z 1(zj]L)߻2(R52|lXO\`Q12BȵK' .*{oyh)d`.ZĈ+vrԹNey?8䋒ZO%J=4]=~K5(N,2xkN%EG~4-Nm>4Fk@1TW2{C;Fvɢ$pAW3y_؎A)Wmxf qK J]Z L,)uojǾcu**(pɦ)$̹8ceeSK>;#N܊3 ?E=ڨE _V1Hm$<襻J<-QUH\vy5j)iStQJYμ.:&FQ y!dK$ն3s|>lvu+\h)" D*E ص=wmP8ݏp7:mpkmI[@]Iy0列B3<\EIxn*I x~lxe[7@*>) ɍ\6 8@xϪlJ\lmW}Z `S`1r(yV1?9ICϯG#A֠ק}sÓ TIFe'7;?gE[N]!"=ܬRwق)EpN#?yڱ>`/7 xVx p:'boHx9]9^d.7)bK޳C{=_ |"'xѣUrPhgz(:Z#sJ6[Wg4dR)u!do[}Wxk`sw0]*UT*zHHb5Aɨ'UNk-oCHxb;f ^X5#o >j)GUu :D}QJvER+¨jXJѠIɂ Y .ެ s_Ӡ?ݵy_svnj# t^1ɴcԖh^WdFfDnW9q9c@ !+{xOPMo?NFW[/6UVX 7Op=;UuPuj㮇 $kHaI b-`%!s'}a߅ ĵ2e(p9C+yӛGrި%4)5*pOdEMF_CQJ [#~%L dG<^OtSkEl5 AHTq'K5T*EkuGB}h xx%ZD kjdxEqqO@c^N.4;o)ӂA+<*Ρ(8K*&5O 1{}@"͝SVN>w٭S(;]x&X,)X)=hxn9}>5P-aelWPc+n>F/aTdG451;B/Wk(2w2RdE ׶ 6cj5ΎF%]wd᪴/ZŌ!#iCMS$-]!;nDGY4MXA+exOn@_u)U+V⪻6% eݔyMǙ䫣WI.]J[=Πw (Pu"z*c| _Ղ2gD0`JSe={$o=J ;H)-A|[Pu@dB:<'%1c&rh\BX:bN0 ,+k_h5^)p?%H&@R#'8R* :-Y~< jo)ƁF6>ճX`G W3mDJ=Og]`<ڿZB߱H1"Hm 2m5 1iTo@;8⍳G8(b`seWh=.fZ " ɢH$&V2<  t6tȩ^܏Agςi|/̰׼1 F1Y'U=̚2W,Fy6}-_ Uё7j! ի fuV0uF.x~Xx|oCl3_~U:" >k`BOuqR_Kt-N' ZEaʧA>ERtLulQicH^dV*dYr*'U$MfI.'ր(#)H`v<щKjJWgټ4M`2"u\6_V7no4F3 _ZlN鳉-eâ˸-y.^6^2Z2"%O ϸ \GXj؞rL ;Eӎi^ȐJ|h4Hzz30v[].>2 <\kFiYO*SUy12_ˆ(:dv a}CcREJ9>6ɅUe9ʠZ*td t~"|) ;#Aj#).^ѿq44Mp$pOW0 xqE=.0Љfx%aڃB՞/Kc4roK}0حjt:(KuN᧗a t0R"6:\_@>g#f1qiJGvK¼r=.oEfC3@LnD6) 1J і r ֧I}Nj&5L4Ո(8ćoeaP:9Ѯm( bk_d^ XhBFx$A,_^~tV^]ʿ0/J=}8S/EFa6gLշQ_F2]Jcmdk EGld³.ԺX{RjIWOڎFSS""5fiqyU/;紐Ԩ56jEyrӹ[z js^%8u[!+J:ZeL5T&_h;k7wDGVfوb^5Qw=i"-w?1E]sC$Ҁ2(R{фsE %1ܨ'`t t}c@>.AUIZd@l|jFT/.ib I woլ|םI Ըx_ t)_*A HX;}8CۛTOGp#xUw{gqfPj%-ŭM %1hqvydhxO*:ǣnGc9ٍ# g)FϛNev'-#N3(%0?ͦ8JL>hoҊ!NPUr9^)f4xI\ [6g : 1dUƭ;z?9b{b9.߳3l%nt>3"r׊b_) ೙th"nJLl2DOyQ#YGnTI a?*FطmTIhiUFYs,"2FoWZEχ;Y'dFp Z|XU}p6[S|#1qn@IW-lx3I;3I[odÖ'# |7xl?E :魣lo;Z%af5#UN u/KRAػHtV7U2+f0m"z Ku \V"%Mݬ ubT[34*oz8Z?4]QI=j=:b/O@4`fiU3_9WFA=s'Qʊ2sX-I$n:X?+s;JA&!d)'r)0;+ڙUE"\}?G"L/+收%tCODQ3L5{hμ8*>g. E"p"Ɔ$AQig 3g2::fz䄀JY1{B\=$eH@[71Sh8^Mf\ 2>Pt˗/ݸSX|̨..`O~>㵚pO^^xl;H[LZ IRHX{~nQ!?/.+ݏ03a{:x2]gdd%LfF-:*XC$7P[q~L}>0d@“#J3[F_ yCrÃ-숶1΃ ڀWP bIhyէ|f:6[=3x@:aͻ$uO؆>z*ȨvIL hT/KzS,<,To$SĄ2m1d'1/ Or:֞C4FVgԨ@oB$~_ɕovJj@p֕vrLdEi llW 55 NMBP(݇/H<ɕٜJMT {U@vT/'dtr_ ֒ #]+o=wYS=+HRJ纺L4`bEkd1 猾Ma ;LóZEG!Y;BN-=̲Eaխ }|yIE"VrzxHlxxk$s/XMqĨW>=Wr-/Ў2"lp.l ;G'c)nڤu7F*ZP%Upv]~_9Z)"«ϲ{4U8Zcv{lFҿD11]c^xaWf^YqX(PdaPJząȟXyO9pDacxAN&˹35R?xDO;H|6iItqe9XpK~AfD>")_McU]VOʧͅUNG]:HeKY͇IwnfKlt%RtAac*F7Š$2ҕʔXFN 7&i皖DB˽=R/ 2HKSm[lp x؇ЍZ-tk+ Y[Uf\6.cg HNT 80]P)ګ$%.Z{Pkk!R?f~]! DñvQN* 7ZL5p5Hɨ#9)*_M²dNM& &*)[a<[vȗrQ 4%aZ ."#&1Iw-dJj/=z}汳ثh|T(|AdRkzŠK?`0LG׬7:^dL>wož¸k_Qy4c;BXM~n-&H+5ȯ4c[wT}*!Iu"H dXT܈HYlFo_C>]0]e/vIOzEcw0\ 4/aݧ&dBdv (mM}Xbjg}?xkh2 N[0%ܷ$͑TiGQ>;D3٧Z joQvxeHL1]8״85޹=85O{<0v\J/JlFiP>K<[8HϞ+J=z#B`lY.yWjs央@jѾcBNtu`%XnHՓOS慛 ePg,jfW+9'O9_16xZTD:dTӂ ;nvWB[YT!{utϜj81gHJ6v5*EHES5:8J(=18gjGւ`h0cy-8$L>ENsNpmO[.L/%B}n,&$A4zho/v <"$m;{&U'RW_-ԚӼ!' ¢uQ:!6[nj^# Z~A?/KTg'#JȤ%_ϣaOϻBXXtU[.9d̾dM *@d Rkc0_Ho&d4]71wt1;HU'es= UC-4ڻFQLw&:[?]iVVMpzEdqYB Q sw;4uGf:r$\q"fq*sM7.31h@8tCdzg^6Acvڴwrn5zA43Og_׿xnD,&eNm0P3W_ JYUW2WMoZ^iGwp~=BT_.mu L3F5 KڢjFgh۱{Ž 4n 6@>eY]:C ;^Z3Zͼr䱯3N^A c;}pn:|0S1+GJm?l'0d}x: ,c,fxx1x{b󙡵I|&;:w26b`aS%W?g]Ȭ/p2U >Y\0{J/x0264Bicu274V)䘍f?E7R)&f 9&6JolPث!tגƃ{糀dƲA(oƜvz(D7]o~"=vMڢEN?7=H/2A[gbհE#"ki̳=ēuS]|*eNJO16 %]#fbLW iV9E ,^5owOjM.nD6@p|Jd .#[Ac(a$H܇ [oK vPyj)n%9A_԰FuIdLH OPA 4iG#AxI%߆,z5[[vw. Fl=_ӻ=w6=e3]BPN}O?XEp,v 9̤*1Wg%d=0ݽmv&;KH6η΂@\ۀY O4 +D B`+w"uezɐd/~[xL\d&u'tF!*6Fd@)ɎoEhQ:q(69>{llU$HuɁs6xI)~/x@5g#ž*3vj[ A~|Iu'W:V]P~OqV/w4M6p>8=ۊ` h,p b-&ɶ$sXюshTd{;Ey`I%23Vސ;gY'K?H!@;}'RVr"C$IVq7Kg$7X10`UO7bj<̳e=}L9[H)BGSXKX4Bf۩h`%!&fg^Ӊk=)K&="y%zE;BS#5i*_^D~[AG2>2nٮ?(~:H}L#'tFWg\Y%e7NyгH)_jc(%#>aM9xvk%Bw n쥣 skB-V[f-e`ϬZs@p2H>"wSqM,Sz`21o.^8˴:y>Ԃ ]Iܺ&LdepǪ;+y CՃRiƍn /so3}aւC+|&zh3 /ZJ$ay \P]ٮcAv\+uۖZ3>?p;)'zبT!P!OYOcA8TwB0QF/_\&2wr N#U|raiEs,ӡ,Q%=mbFXKQfm zt D6 Z~3֊GIIwc/PЀB.܆.fK_Ӫ{I2O"7Q7_ μqgq ;,vᥠ2&ΨB̷tZA++EE>Zb{BUr͖ Z!oZ)ie>T(ξCa22x?.S2@hkOV?PU&fhd06$RTFþ,};V$yΝ!zL PNpb8fمKk87.MDwl>oꬻճl! W(DLN^wrkv UW7~^ J߻mɛG7G wҭ[`^Kuk]/xIUX@p"#~354~CZU_Nh^xוB3P}+ ~_!16OVln?&wk[I.5Bb" #~N@F$_zhdhB!@@4D](C?A`() EeTxDiu(%5*5Eg9T^0h6[?f/zJvıֱy>IE;Fy a3҃hT۽Z cg>q5 .ǺF{ݾ7]39~oSYz?/zY9OC ;:>D>c[R&#f=x'^Tc Ȫ؄qC[]>_wN̝[ĵT ߷(]Ggqck'!5g&% -gZ":tG Xi3'S>RG*n;0&ݬϤg\!ר 5+MV(K9  gC9+Hv\mAǭxX;5]z4cT3ke(t#SdC#`f1cA =f`w3ѕy\V#ox.<#Ư:.+fA ~AlˠuNdžhw!)5vk2q.GpcL 1cG̓%Ն~E^{ +Xu6qZ(s_]c++ȚI9]:4d6>~jϙ-3 PQEGJ _/7NˆDWѝ/K:Tv'=ZÏMwG?ipPXEZ R |>K;, 4eqWYp |<*E{X[>Df\['7/l?}*#v`31"] jY1 P]֗tX<ѿ3;L4XIT U*@d<2w iU=45kV{Ci'0L@/Mn#k9ҿN|1u?VNA"A6y.Qy-: sNM炝Z)d93HUddy<a $WLlH;J!beݣ1QrV p~be0`$o0n }2sV+nJ~F ]sZk8s$·V~?bx ^){B\l& md%L<3/Ĩ2<ʴ5pv`c08ߨR毞tRֻu LA>Lli0˸ XDFߋY2\>(kt j{"ZlarW.Z;EK"Y?Bi'Q;ˀ@@L*J^\kR,c+D2LA5. [)MƵ(|(ipS//XK{OD:hOC,R[ }q^ fArv$ܝ14?~ƨ&`bOS-t2` )To^k8.߬ $9TQl9LIvC1Άj\{nf:6 3||5utW |hIQ vh+Wn6nI׿O̓R?pSүAWaYQˋ\Xߖ_[x;|ѻhV-e} #lUv+WJ M p28 [7Dwh}9nU7fj#^A;ټVQ1iI_|eo JQs*0d~UG~'LV$zo Z=٬Gof/".0y˂+MMK"2}P3X]HЄfLF,*Ɋo;i"p4mOvO|v,XP@ tMwgAW\D z#^Y"k=`tXȍ)xłQyC\ɤPm`Al,)f/=xrre>25U[df=Ow.W:1$ F y)|Ll68! : OuɸSEZsӐM۱D|H R1qrIvo4'}n~g" β(lʢYi[y//:PBM3:tE&%渝}iiiXr#CuQF 6 Q;4~$~ KӟPA#sdхxø) W)|u~5ɧ5f0`ޏAbB ={ʰXJNx1~ib=ЂzEʔbJ%œlcmҔSӢc/+p(+U͉~wnX9%TvJV[OҞȺ]1M c#Lh8? Ѷ@e[94"$иsQm:, We{\FK5n-F 5grE&t/:,?_ŭlZ)BE=uE=| +([ĀaLJNsX*f/<^*P;*3VXRx:pUVKwqWz0f-+1<5^ $AYZ 4e7œpŦZ @zi=DW9kZm"z;0=b8\IƥŤ{=~c'-R~H7=(5\^\݁וz?KLA24`Ύ}hfbmO)s|%Rl[S-Ҿqv>%#+3]04wݔj;*ɜ؛G l>!ooqK uvUVY&ߤhd໎fWDƙ 䆛&Zf؅OE)jd cWnhW \PDҏ!T6 qKJp -s~tZm `bK©&}Т*F%b`<47z,^Zgj1xد;Z8 zAc\ nOsM/;@n 7" _#[y5}MvV ۊj43ˣ'-_9΍2ZG]ieMpV&ʹ8a$ MKNtyo:|^E\iNF"q<(C8f@,)ȵ @>iϏ0_ ]| 5Z|][xʛAƺkfZV̓O:AΘ=᎕, dN5фmAwX ﷶPO8C,hߘ*LRq{P3ceSN_`56>q5`))5yt/)K^&S&e࠭/5op cNsU|p$q"j+0@nE\fgَ$6m8,c,6$v*q agYp&S:as&`T}& &(]R0ni֥V\/2pZHO+cZ\ #4UG`fLYHa_vgV-϶9=19T-, o7*iЂk$硌vJmQ;k+[?e G]P+*3މ,x#iCGcL) # T4)Sݘ$RzhG-*l\YbG{\ 'dOkπrH('4? xԲ/ ??,6:ǬQ-՞"jܶuB`.QX]'3_e+?; Gzu0Rd8DZ=/6/P]%Ej_oʳ]8sYD2Zog,7Fp F1ӡ eAA͆^ق8[Z|' (d'|TSe[_t,m43 33:j)Mz7,WF"JgYщ2v ,\v[tr"5{dL'L|J:%@h58#zdR [sЈ$Bُ:~5Quԋ''^g}]F1ѧ&s?pq=]ZSuOu IG(d*QaT-JRTE#X1gYdamUaDfyoUd/xŽtG BjL*oDY]7$31A}t)gAMm29ԣG.V~bJ3k|S~+ziyT doBJII_gq5!<P:Lê+\ UmO|OfĴX1;#.^W>g@Q O8Ψ &6eYeӯ 42`.!oWCU0 .1g Ԍ4S:m%y[>U/"ҚwuY," NEP'<@(zYAQFnK Acأ?6Mj IKfU?҆i# hX`RMn R /uoF4WhRU*MF{vV]:S\')#YWW19K Ƅ3$qMC^WȯMWDT"oCH%Ȁ\fk8:?)~ݗxAb)>5$G9i* |pMږS Dw,4[T^6y_]/ ZyqR? o㠘Ax GwVu_lyKLX 3CBD7/, @*ݮW qp+eVm$dV04<~O}ZSԓ)U{*ԵWbbE#Brަ#嚳WnS8(4z{,Y'$|Iw_[hOJ y2췿6٘̿C0Z؄|C{+9.<>$\_'X9%l pOsatrx3l!f O j ,%ѧQOY6$eе\,LɎ{, |g0e%%È=Q? ЙUT4Pq25EcUٗlKBKRBySha'`E^d Ě=4W<a $r IY 4Lr~? 7Ɏ?4rc,?sS{HފmYa7w/cgڙvvLN1L`QM`bC< gG: &LJ"{V{Mą۰`XKO  $WP€7 #ؖ{N`nPe龴2=x*9$pe$!L5C*FFY8^mև[R5 5XI3uڦwI:2UOm,JorT !}u!$o'R[EJVɞ2< ״Jr .W ?hb:TN7suD i)4^r}5FL)ANqhՇ#`7S~wJ&w/+7.w|}ǝ>ɪemQiv5R SZ7:M==\-LT8!˜4 ʦW`peM vR/LmV̮$cX"77_kԙϒ==|3E{Sś1M<ҹO}ɍkТOh$Ycȁdb+jsķ`߇=ȗQ01+<diIaCOXޯ,0830u\8e9*2=!@0YUIR;,ژ< ;[^x<a,в~S`Je$&TC,#ã -[c,iƀ$ it.rءm͐=ZXdTf҆GdrC~'^>ovR /@g`W!0 " '24ң+Z J\nf&LNRL7'ͭbXn& QDˍ+#T@m?iari:v_& lb҅ғR*8[8DaY͒{\lHʘ\^0m,k'🩗CnUHf*kğG-el8e0,pW? B5ͥXf=A:d°VPuf.gB [B.9֏t$xV˭Rv~7{^sB8de(aiu czZB&(]'zIޞ:!#iI #EI2{_pV ,>d{_LԠ'IeQLs /ʉ+ (k W\,aFDQ2xZpͽ)d]ʢkY!ǟ)#91S:6?(ev"aТ#$3"x{>^T9C՞FvH ^2H"V*]b( 0jX7\B(ۛgΚԽw"eellŽ3bI\XH?ZS(ac|o**L\8-G%/Mdq#ϔˣ!qC좵5p}Om-c.l!1$~C(N1BLd~ZU*6Oɬ|ms.uq'q*GXWPdBxT?tU+QeW fNrCH]L0z]5X$nQSz+*,&*0Om={яŽ.N:d9(ևItƲv-+&7$Y]S($cJ4H *щM띳_އ [bVBg$4/~Pt" Qe$ -0TpYΥ/ AAUB]_,Cx `?D}I4Et-<*w9j=eϪhݦhe[(,8R{szjWȋn?~+gf'My"n;/94eag2 w1CG;'^[(}1x c2C xsb8Sco&G{+ތd-ޥl =L[eMk4}AJ..GkI9hcxMv0^៕|ç;=߆]iL9 F*G:c]!1@Kօn?lb(0X簓لZ<9fQ"nXЬ4p5s?,SKC.9#E #ϟ!IT:T ȷK, j;T;!O&RӖ9$NPu&K=|)'9:'ܜ5> "W'd1\s'_&7 04e"*4!`@mOjG7=QX] ~CD㑂EGx U@•u 8v}wbCgG*m<#*_{T( Bs~+@zhw{>{_lsCtXgeX-SDpzbdӣ\q lDy :>@~ń ;n@`.YAQIB]9No YZ