libucm0-1.11.1-150400.2.18 >  A bwIp9|2]&s:|zش[` A)۩-5߱Ni)4݃ԴIoN쉫CyqRg5P^[ّ]j!}~XA+>xlPDaR3+uqEb}h mkOT^{$əUn˞WPD^)t`,ÝfK먪_+4C i}x4s~= onJ'k>p@L,?Ld   R# 9J^dlt x |    PA(j8t9:>I@I%FI4GIHHIPIIXXI\YIh\I]I^IbIcJidJeJfJlJuJvJwK|xKyK zKKKKLClibucm01.11.1150400.2.18Memory (un)happing hooks for Unified Communication Xlibucm is a standalone non-unloadable library which installs hooks for virtual memory changes in the current process.bwIs390zl38@SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/System/Librarieshttp://openucx.org/linuxs390x@bwIbwI723ca53347d2665e79c37f2e93bd140fe22716a8ed3001826f269888be62bfd8libucm.so.0.0.0rootrootrootrootopenucx-1.11.1-150400.2.18.src.rpmlibucm.so.0()(64bit)libucm0libucm0(s390-64)@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfiglibc.so.6()(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.2.4)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2)(64bit)libdl.so.2(GLIBC_2.3.3)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3a@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.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- 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)/sbin/ldconfig/sbin/ldconfigs390zl38 16519848091.11.1-150400.2.181.11.1-150400.2.18libucm.so.0libucm.so.0.0.0/usr/lib64/-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-SP4:GA/standard/41a5ccdc0954f1b671fe20fdc28a26aa-openucxcpioxz5s390x-suse-linuxELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=224dbfcd9d5284451b29fb9069549e4546e9df69, stripped PR R RRRRRR R RR 9 &,-]6utf-85baad49eb7c3ea11b2bcf8a4a3f592fadcc36cdc368b259f556bfda5a367fe7f?7zXZ !t/ߎ]] cr$x#F2 b2uˆӠ%\`u{Hnk6Cڨު^q]joJeIf& )гݥz䜫uLj&te73/ ـ?ٍG{1>5XkKYBGY⣉x`!X7(cQX7^ Mj[/9Ljo(T>܄pz "Pt 5ݡTC:# bu_U7Eֹ7f A ҒWsٹ 3'u7 $ݐJ+ Iɫgh܄qLzcT=?Nr/ź-fńoVcѳȭrp+f}Ѿesj؋XeU8! |=fцV׬I*=W]TTsCQmւ(5Ӳ4Kfڛ P_\'׼&D|Al$Y#Oߣ4'=@Hi X~aL1ñy0!'=m깛Cp<z>]G[~xo;m̌5T ҁXgL(Cob)'ahe rBõ*NեM=`7@RU(eZ <)zQM;dYv->:ރRnl|c1{%_:U4~LH79J,@+]J?G׳ϖ%Mu޲R*>dz iSK%&R.=4 C)5t 1U)UyTqpj 6r {BYEE(z{$t_0NB\0JxaƒHaQ0zC &;MˈțXf8d6\.,˲bH{=tR<2[p۷;GStb'K\i1 weZkd$|r>e%2&(zp}IJb f#޲A#ª5SZ`w%_ h& O4P^m:(n3E W12ucaP-HrM{r{,`e,OoƟN gϴ7+yϰ{d`|dM0Ϟ]#঻v' / ')3x;\/=7%#GJW ?d[ܵk*׻!1υ hHe[xMt.,.p@lfU g88(N Z'g'ѦS ]tQntI#SZAQ:CQ26W 2H l$F\mo7 &8(3‚\eM`$#rS wtT39[j3ث}W>Cl/LJ\bT6^Z,K([{rJjbyh0-Phr>q./!=9Vuk yFseV./QKRk.:&eE;Ƹ\s L# c7r _$saG Ovʧmʯ#x?r@sB,E7#L"~H̐?y_{:/zs{g9שN(̾#{\ϿU2kf  REnI~qS sm% {x҂fyfU{m"_K+3ʀzI@? CEl59Mi~ v++~S5+-Ei$2-U[wK.R: _{/Ql2HU<5x**t|_Q\C50 ~t(8Eŧ:٨ٺ1 0U1 h'kuM^t[Ϻ鿳??Rp@ 8AW2.5cb x.dj//;EbOk02l.,{`C~/yL%FG76c♵ U4B1 ltiG lKL'6?kx > 6EU6bdnqivʫNoU҇g; QG謢xcjw/ ; d-Ig x{ހwytH˥8;DW@j{\8YndWݹ0k"P`~݂I뇔6c8F yD*ܙ-I`}Vtq&ilHtOZ9L:/O]_R-) D>W82kvv0ӻ2d2RcƧB38wW+$hN1P`AXZ5eY|# ( @T~pᾌҗx\E/dc6Ln}/(j( q .|~ۃXlq uZK/u+nL|cy JpyAbVmLπGkc'jI&1~?q3٣P[5WG / >`~,qO2(k2#,mɉj@Bbw sq:ERO,Jp9MJ5z~ '6kq2[xC,JP^Q‹[l(Mj-xO46h,LH?hKmJ>Hs|Bxd]"ɄoX e%=ۋFn϶^^m5l׌opW ;L7#G{tWMdHxDGCC=U=P5[Al_E%]Ӱu O=+އ B4A_&di*J"4; +EUϚ4 Q}0*j6aj{[  %'oC=w`u !VP)a}ovOs_wA’۶zBF' }"`6c‡2&O.Fsf@cAd5'L!wv)aA^`q.j-=)KRk#⪦^BZxŏh/\[>T8Y+=)vn?yn6]]9Bһ9Tb6f 'm+u , OńBLl2&A}{̿0V?6d#9\@k9B 9żW{E_G(qN:x~ά XP 1/)/D ^O)ꭚioU|)\*A[v+e0~}AZX 9"~nvLY>! `/q]UhzXЯ{b_&L?3Llݨ.7 >}Nj:&uk6a-D J G)[G#i0rb~EY޽ʏZ o|6o )dmtѻ--֙kCq xݴ(v?1_%ǓFoeAD$@9Hw5sۊm8%tz)?#rqƷI>EpE@.bWw>Q9>nC2pK M4^RVLMH̲B^Ύ$%Ç~fv"U@?9[4px\VWo( >Z9*T͞<퐮FG LހsC2!ΘԐK2J.PlL|P\UШ5˅Z9%mznE;:k ^ܡ1p/`AcKAxq9P*u- ܓ->Jl "(i;=v@Cnu2GyKqKaoB⽆,~0m<^N(qԚ~D U0o_pz_\: é% +k^rǡ6Y!ْ=ğ!%&dL. \hρ WSKso9O2bVLƅ;KZ_f_Il!pbws۝$)?9:`잹cD$h\=ꮙ'[v#4(cc/#GjA?_:Yr|yu*ia6BUH'MXkFn7ϊJ? a"#EI.@_GOVim?:<Ĉ\L(xdž))@L\3J8戶]['"Do0e#h$|pIC@p#Ő]݆4:| j b4;{$2u$j~yqɵ KkM|I{1;']I1" -q#^ZAdo_ {(RKF%RyhLmK3F>:1%UFԋ\VBg&c nx3xZl\Uo j G)  ז̋W4$>5]hlr˄}V DFx:yZZZ-/7RڔĹM0;&ZJL̏ղc #쭮HgKn2l- ?|leO8⮰HMF9CԷl`Rʠ&` j.(PU}3&!%ԟ ߁;\&ҡ+W:z.;E,6Syt5b~dFCkb NJd3 s=6iqf䢹#K8Ms6hAJℿͬט$+ C;nP<~#3 S&uӑ|:MAth|՟׵_Y% ˉ{I`܂^/*g pHzc<ϙ vU Gr>. XgU pIC=f|L\քE/0~y c)&7;/xxя!Hь/P2IK{$={BVˑ "ѿmX3+"dV}_a_LF1!U H".MpšfM%( O .zpd6bcX SGv+n#- G&$06.A]]9M-}UX!Ӝ @8UB̌\~h܈ Ek-߈y '?JУVƠ1":qbqQzW{=;UDq$Ħ뺳ƌ( cR}gO&T!e}P^)Dq1v;x[ߔHs{L&b qT1C7vP -! ͤ fN>c}`C!h)ҥ,(6ZP Cú p aXH*۽E:y)dKd1bM`A A[QMDuLIjLDwɼ(ӾQ Mפ t,'$PAvH/Õa#nz좖k[k/Ե"LM&AFUb޹gqA}~MG#}'N;\\/JlfUߞv9iVlR<$0 jϽӵ33u`!xk&VvƛVgثq}.7Ǖf) C/O&UaU:9#dkvU(ԉUKMH~i}z( ~hݲ h̞ºYMM̳Ff)ja{g/NbwG .H:7a :/q86\9O|He6VD_3.էC$6 -\D^ؼ1+Y L6` _jJ>M@UbɖKX xg,͜Q @  6 QcXo7|]\d>k^e``2FZAw ZH# N̦#6UNI_D/n7!1(xc)+`].`9H!n5yen^5| $2$gDaVr@He1ЩJ,oT2 2+ q[/Vgٕ>VNHVJFO+QGx7JY^&"t"&MϩۉasDcHCeZb3MGuxDuO/8Ֆ)l80*/փ%MwrmN X;:&圦k;}+-1ngow}Fi [뺀8CX@}MdR4D&ǽ^X nufrw@`j⟡’?LьqXePѷjA^R dZW=/p )V^f /%!,f .2ƭ.lu> 2WiLj poy0YKdhF'ciJ ꃿ`@\,)׃~#)XФ髎g>q~ޅΉ ՌN`Vo'H {sDx'o >ͥ F'tY"Ze/@ibb92N5W1HwEJӒ*Q}S+"LT_L'nZhL!}3| UQ?̾ H{j.X `9Wp=Ӿ-#-lˌ.>XPٔe<IXTJ& P >~Sޑs_k՜e6@#먭y7!47&5'AKR a?sȯ=iÚ(R{,?~qgַ LDLzln^p+b?z8x[s7zCVZw,{hP"MJ!a^ B:ʙrr p18ρclC䀑=!`yu}66ڌT'#Us=[-Uvsq93).멯kaRռFfPK;O*+#^OUA1yRg7 b 4rmJg Q3( xֲ5R<2d]V檔_'ܗ)FЈ+WD9ltT%7s _Y?쎫u9f|4(]=K  V?65;[A8} ʵCLQW+41T7\7ՐijqW>F ^[xH̷*GUP'Eތr%-^ a|dšOpbO]ōl/ߋ1 fJהܥŎW}.k!e ?)1Zb`MXgVq.n(;'@JKtrBEHV/PͳL$[/nA qٙ霅]ڋ9,,K|qߚFs~̹lEqřlSbɊ<`tdDxjls6/m=\MHFRO`ēd<uNF"5d0_Iwwmp |0i. MG-٪MerYQiPb!D^U4Ot:*ITBq}; +u4j͖M6"m _,fPbF/Y66(˰BNK*hV[޷pmnLTȳIgWiX%1^ KqbX AE7jeM&#!T_>lj=ngH!+}`uKVf*)HvR~+NȟZB4ŋNrj&FI7@4ӰbJJN|C&5!d+q嵜N+@AA/COspM?t c/JVoǺBATYJxxB@,  5i9эt?'@/wױ@ֆ8ѹ S#2 ՛2r2o mc0 Ȇ-npҪ5n/v#\!|mWqvk_VXU3iA,b3w(x<m: )v8@S[k2iG(W~}TDRn'C!;Pm`7 cfhԇqK0?t$4pp'+[EI $HД=1ppW+/dC܀/sC){Xfk]Z#Jrp"sCLħ|ņ Vc{~[uR|X.uUZ S] ~J&UY5̉RE"=L[sQtboMάI&^vyvg<_QJ{>ֽW5arE&JEX~9̣좃Q:Pb!tRIAt1,R:5&A| >ssĺYT ,qrۼMS8'E.0CxC;-ƘMp;L\{pԓjmzpv$YjƊ"45gZ|l,_d!CwGGaPLFdb3.i9܌-:N^jchle` f 1_ +-y"=)+`X #rdg^;wW!?+ 4So}èZgg<$x^/w FG}*?[c(у^!:&L(TEQyl0Z6cb.fakx ) pSe1(qE,\So5}VYHFtɺ}fR?s_6>Tmu\Dh8c_x"4X`d+n!ly0!4 \J>cIXHGSYR_-~O݇Pֳۏ8|@h Z V/bL>R/9U2e cMW}Nq='eCc6~:č霑̯uu ɏ޼(nS.{iuvx G.4&)qT)=UVBZN2Oȕz'[UEc=|$RLR\,kO ԡXo9%~OEZSw+//mTV!a!A6'Tl[BnYd8{U?|X}IyhBn-?5n),YRA|moyP[YӎYqL(|MGYCIyEEnE*6׍_H/0Y$i=}SS4#r>Jdz^] TB` 9E;~8V#  H N5YWLݜKj9e';,И8QPxZ% H`*oHaFvLؗ,oΧf ?"'z25r@VRq´(͋M\=K[mYoEGTz㛐)ޭvFPUi60˾9t3uB'~M %5T-Rm T:۩ޅ==RiS)5਌@ >@:G$6+ w盱ؿ juJÀV(Ykk7gڡ\iF[Qde.A j k1I/HcvqҦR84vVLssK84Ma_ P|J/=%Xq;s8 O?@XX|dS9l1V;ê"t)Q'FlN&LW`kVjP:rKq~ [HS wa6sݞgЌh}`q›+v3ϟw:5.Cnj ,-PmneNj=a=,HΙ \yE:IGQvc6dO^'!!Ue-O[|rwML 5 _HjuM{.uNYky|%)`+hA†]?˼75{$v/>j &Տf}(?lNlƵKi[t!g1v!uZ;M'c}kT9K6V c!>2CsQFefJCh1a%shڳI#sn.Z͜{Sӑ )- u|z'^(޵m'(MtIhc"tX,ZwPPZhѱV&%Ey{-ZԦAN¬^~ ,UTޤMxv5"b''Էç2bwF +SC.ى:tAvC(WjйE^DvPF<)p͛V|5|>Fy}I!2SN06)"'f.=S$?P0_fʳԢOTNSd߬[Brd0 S" `?~#LP1Y;+E!T{gnHb-ҙ5hW/YP)06QE 翖hO ƅd:1)Hu:'綜/-JE -c#p:nuU34I!H{ U*Y)G0+ȏ0Ma4Rvث2iDxZr7q`YMSY×7t q)j.#j?FoZE,ۮİRb[̾zUz:W(Qj`MXc~k j/yBRtV 難AO6KDͩnAp:nd,xKʃзYJaLijxܩ K{:>5tuĘne V3g9:j;ݢ/ʦko s̼od\.D0$EVv>Al٫.'W=WAm OS}5.?\g)r3*ssx wnZ@{2*eeΦ)sFt&&)PR7tqOQԙZr~Ħh4g:vWwpx!,+lꏘ#]P-]iy; f(C GIfa(}w֎.ͺݽ Jh?SÊe0OώtG#Hc-qgEK$+?n>tZ|(7TЈaQօk+%'ݓ$IBx'&EzwZ'Vk/W{fkgVejVg|pL\&AjEA .ϜƝI*.ֵT>輵#ݐO=LHMnEؑZ^*Vh6]S?u+4%|J6;kYa[%p.u~ލ_T`;c4Dgn" %XRI WV5idL!޾.ٮ ӳy~hq(KHC75cSl `kٱNh+ JZxQ,k<7ݓW"x;-U t@t5},cP'ҴExbABx`R&"J>-JPY{)1Ϧ%P9}L}1֤9`6 vۏVԱ5^ k#Bj/K{l6)ڀ&h 쩹!aagNBњ\.2Vvcuԙ ;8sN;m0T[Q6E}XvsA2>I#j?Պc[a/7r[U d ҐyQ$A "wBTbsIj[1!؜d m|q> UnxF0Ěa', ϊACвH*"wFNt9fq1. ,#;`Q^.dlzX%%h 'H3.?<1#7+g' i}<́ :&~0z&4&79o#,è([2GDT%F<>+.ryq03Wb:|rY:N'Y0d6^;Mh>Y4SXP[# r$KN_m"lU+ga@mȒ'tBjԒW LowtPOe)J\AH> M@o}v,f|rV3V\qzv6UQnhٶ1oC%k?hAH\+Yh}ߓ VDtX”F.HjDqb""ɋG܇! PA+q ~ںl'CnX揋\{e4f )o/j"SunVpBl#;\"wV@GKrZ"FĂ HѮE&IV\53#9\qէASpDIg%8cg,kue-QG- `(Jf}jcS06?/O'vzSQ= ^(K_};%߀ JZOy|涤osnYnI麫bQ+&TKoNVHdB'soVR6ͮW&[ 8|B_:x-Q){ 5S2r95# _]<mԚb77vXz\ּ#50ZzǞpo42=&-\+؆BTԃg:4돼W;sZ+ą!],*NALL;wayQAsU"9<+~|\$2K-˜إQIDe03p}n>@ ʧOTKOcxC?oxPt p>Βot>Db G=y+G̡^FwgZ3ƌ|t zGC稱|CқԫlxzeK{v1jXz W*hfoʫoB=6"p@lhVmɟb+^L[Dru].hM_WR%я^<^w5Q/e.'@@WRpESbl.4C |a T36/uŠc4 ܢ`7StwBˆ?.zD*\F [oqYZ&X(oS+BŎ^[4mYqv oڌ N{tyIS|oB>lq`0iYlWg=*ˣH>Q_J4쳛l:[;ɫm<vf~[shg}g?:8n085 >O҇[|9)Yo妷``ܚAv^oi%sGթ!Z?춇Rj ј(ykԳR';+#TjtfM|uj`9x@AUKU"tjv8&WQTd孄nt]1ړ>cx^`>n\\u]tt.JbfW,؁hN?-(]L_`Q!뷙Q34"Ir2|a`Z&1?Nw&7d(3ϙ̨38x)n5ZH●\oO<#=8y@%ik ixY{̈́n5d47Y:rԺrxfe a^ [ 9ՑRN9kphjQ-腢 MDˑTǏnXN "Xrx ָHr(I!kWX=%R"WÙ(v6KHmʭ"Hm~ELid82A=$=klݿyMɀ-58$P`uA+SJ|"D;hf /wˆ n6$h․.ݕyV񊷡ƙME}vDpzeFKP9Ó-ByWTA H]+6fh1Lc/YHvs̀xC% aw3$m+r}ҹkxe48̘*+jajY-K ,[  czEk/P'0F cAGQ[w 7KOǝ--WGpxqh}7xmE=GE(R/J[%X ;1rwF'4x i@R壼W4n3l2MbMy*E(iJ9‹@_z^ 2ursCUhʵI ҿpp5&"EZ@ ^[7ټГK!1wNqaO&Kb:) ߚaR>ˮ~nZzBENxvBp;uu]Uth{M _ڤA֬h"" q0]/rPkxKXKu&(dZ$צ>NT0 }xF4)x7Nc>b0112PR)]-a#95{aII^8֘lb:' iqzwJ$tiRiJ1TЩ+GL?"kj+E"ϴGA[9 Nvŝp|(ݕdTuJ A+fPndaO}LԦ 7=/;6a8mgFJJK~d2(2uAU#g -u #ܟ9Z4r]g"f6\y Pٴffm/Hb{Պcnj +CL8D Vk]\0lSol;O>dU<\!]|0e-# WhQjj!e=of#ս!4A L+dF=*aVWru +e#+ċȝoT!sYa=hNz^[ l- * <ڱI[fL+Ef?ʴ6aοdtTT֚`84ԔE&c1 d#L!ɫ]w SkQ_*ZaNzSMH~rqbKy -'Z!y ];W#̱(+`j/CW.GHٹ| Be®pUR%/%(1W巪Qg\Abb~ #Fـ묂&S͢띕'_\y&lxbfn2wLtAzh72`h$ fH[ BxB7w<W&vun;[XJpy?<g)^׿ʆ ش}? ܌Hֱ(1a6ͅ}̸T*+RuP߼YOt' " jK#Ү|]6Fa` lٸ0@ x8Qs@{gL 4k IU\I獗9RqʤMNFpȔ@wYetcҝ }MvAKj0}u+ջ\fؼW=F*Źi-w!AIo ,T0FD[锭:+2>$e) p|Br%Qs2Eih*EG[-BkilYu,o(H+yaKnX}"$y*#*QU~ 6;U@p=L]IZ׭Pyo^PɁ4S ~pǜL9 >a%*s1C3y~Hݾ(K,N7cU$niۅj`*,SGsSO7F{k/,]j nAp؟'M.rbU.b5*^`I{PY{UnR/=xFpR6 ?MpB1/igblFx̘ Q՚[FJ|9ӗ1Ҕ)N?=Pڑn̙2`kXDE& 0ns7[g̫ $:rTrALYM} %t2hk8`t Li z| .R@0v H73% NDMl22>O1£g2J\f4Z LXܔMEL%=]xK0$Fy~Tf`ގp7Zv w{9μfD_T;X$eoW[u5t`\o.xct/,=8-?DzeSz{i`򾙆i&_ ,<_и.Ga#K_@ۨ"fyB;+tv [q_LZ Z!TO0t:g{M ç4þʛjY#`9U(646:ZqcTl)SXq*_#bL6eZvxD&I[vwS.Mp3U\L>e!uw= ۟an})1-)6zHxl\|Yfe t}[҇ e]=K^né|%-3(DQ칶;%^ϖ6V'r߻99Vy*.zBubtX%`Ey[/3)U(4!C ]{qC"IÖX/H Ҍ4m?PAO -1+m&WD $8Nq,N9Mfx,_ IC2|v_p(JuX}u9jOˬWχ&-*rz1Y@jg v';G(XpADN)o5Z[u$&r c+@Cĥ֑M/E&N]K6 y(с0#GTCŁbAK3 rU>Æ }B7Y1HH:rǠ1YjeY1'y]Hz)~ ݥVbBchsZdH+HRET^#+Zg Pr#!P>`/"7ȃ=ꀒVKv:;&woWceCp;8 .uY Ca9^/tަ sZF>00jީ5Wm)ԋ3/L#OBa nض %h8~ .yh{БESE bcq?3N"G\z]Rtf(qayZFVMc`:<_ȾɞƉD ٵK6'(J2X]h֎vQ'#W0 MuF/''-ΆsbpKy DTė|*TCe>)d5JEh:K}e`Ȕ6$c?po67: i0q/&i:p*:] 9߫[f)3<3޿eI+,-;1ɻUr2NB^)6 nʞs;!" m5o LnrlKX.1 c`]Oޒ K;X{U7G:{߃Ir;!ѕR_2QSW>ec`֜W3Zd3;p =kd'8\ ipS%`o%Z&BK,8{M{r/LDY@G`<H)F$~KFef9۠Y4?@H WV);DwS ۇ8%"dLrryjCsΉ Ĩ:uH6e.EH}d9PsbA_B|mh9K{[5KEE"#%ő Xcs-1u+:nl ' ͜S>Vgëx8`R uPKg+79P \#X9 p }g YEC"xH*ϜuVn|KDhu08 A=CA>s-gѸcf֏m8{|ݞ8)qA r4>{G_Z-_/YV%Ⱦg''Vϙ;%Z$0ݜmer1݁ z(h6nBS,zie+/ɄΜ5e^W%eUm@j}3MI5'Ӣ1=ȃd%i$~}@%/V& @6ra ;HŨ.|ko9DF<L$öSQ P1hGVV~Ӭ]* Za{W;/#!9fhF 9ё=)93X`g^Y7(񼃇F .ZBqOnZRdC,J,.QQ z֫CA>U{C'н:0䆐9c[,Ra-~'kz&+t>?褀e&BP mJZt6eaTgu=kYFIx\_4$Լ=DPḨFVj맄@]1/2oRI'B{AYXJ/î@FgL ~!~haq1' Q%/Sv*ɞ0,{ċ#I %F iE"Zꑧ%cv4? &AͶC-Y;;:QYl3qxN:7iWִʉ}hOf] )VZ|wZ5' "KplZ7V؊ +K!P(t%мm_,7@fZ =kAhV<oi_8BϠC6JƤk'.&-geNt7ew5x>8ʘ<W:HcIrZ{j:.=(:FDn ݍi[mǏ)b89ΰXIRNyX:|`3\!nqh+)z%w-x?[wG}=:̃&a$h9`+f gA~>dQ_]QB>zo?іLj#)Ζ=ѿ% XiQ9]ޟ bNe$(9Œ({SJ;& tpt}O4o*Oq̓TDY'-Z4:GQyot}B,Ar$K8=T0o,?El܀*$ CV~Hʡ I@de'A7z/ЍФyTU+cb&!tw&1X-hQبeEԏ$Wi`扈m]GAJs]NY_gQjQY>E/!a.ٺ^R#`7MB-_Fڥv̒%A mP21P]J=EM鑐 QnRiS~ev+=8MZ>c4Wޥ~'fJIJ_ODh4\, V,ts4}JjhbGZ<7̑ac,^{ؔ 9jpb/4l9*hXcPO PGՒ0TYNH.{֍Ahݭmm7+Ձ |,bqEɦ~y1`&#+SrۧQ"al47aɱ/:T}P[iK&8Ie\ߑYktGٱ2iK/a Ooi  ChOo ; 8 >z U})l;Q*7J.gJW)~bAn74D9l :uoPa9'gDd.Qgehm{d@G\Yճ46%p捯y׶apղy`T>g(N"5T>'qBKPF"PwJbgV='9Q XSm:;sw#T}ydS vRUy%N 8L0(2H[=o2[|4<.gt;d3gؒ3D ОM+0>pO4  fI]"orƎ+(?rmY=.`ȘcdB2 {X(dYrnbV\֛A#P´JVLp.Af_YEZtg`}i&$w\2DY}5`oH&qT&@^ߞ.N}s3X}Pp[IWX+c E(,m= qQZg.:)'tӏɜ9zT$`Ua<="ĮV?oPƮ\\^m bQX&:PL Y |8x Rvn#"DdUTZ#g  By" ? \:ot7Zy7_M:nٌSZtRx+ =7I&R5iTba\4\nyR+@BמDd6:6^i Ź5:v*֪.fA%C>UP֗Bs݄:li s;T}>VV~]-0;TR~ki_h0 b{[-3;&9Edog8۷|2|@t=X!s W5@l9<2VpX<@e!jXu}_=ۃn7|SHѵEb /]rTVS S#[vg %hCoS* %ٰ {‹ ;h\fiDe OA\-^ɲW_&iOa}?%LY0 51jOֆ]$ |^؈4eͷDJ;3ve]Z^Og}A P ~(6ݘ̸ٓB8&lT%2CN0Ic[ȋ%6Jô?qp#aulZl_Y&K"h!s}BPy`y7CfQ/c / 'qz1\i-Ǚb1wDG2RE>:8=I[߀I) +MKu4Q]? )vka џJ %)Vx_RQK?;$qi1KnMeɥ]g  $t'#3/:Od'o^\{'q|]h!R?jCm>xIθ%*A{qބ"t #=dx[2n/+҈֥2SOM!^ϏCUboH0c#0@rG)nGIwL[PG S8~?&N1(!.2$s?Oca|ca|(?Fyڌrvd߼wV^Txm>KEsHx~ eM%Dgl+1Gq~x0<,\xRE4Lp-5b0aꖷ0 ㏿5C\^j.OΎCrD~$] `;q"J2Q_5\{!/IGrH  >D>:b*7g= ,UAn7U^U+BhDw[Z^@wtsUx60%j_ƺx=Y,rW· ʒѱ:V'B@ D 'EfcYD9U;y^01T}{*E9e"PH=# |C~tAJpL+MHl,w\7^>s K"|8JVG9B\Ո;67Ê"7a"HR"FPeqN]z^yKb6~CcY"e\޸ 9OF$c$4QD ]u~UƄzJQ^j 4/,METbms!hK'VUDϱtkźN䦤X_FpÕ`VvٺZVp% vl|®U@M܎UE8sm8+\L>O|7]=+M2f8Cu6CPN1iau)e>W|Z?O۟aMΰԆD6.2՜K¹'frRvP!#sEP̈́SoZobiNO#GRHj^0|*[pR)e*6g?[ ((5=JJ߿"zLxɢY4 Qn;v3Oڿ6L~z  Լ*@]ƒFCEg<3c L%VNMoy9gKЭ!gyTĶK슎3l1NdRJ 6xL˃xP_? Pyρ>%_ˀ݀D4p /f`z#vCF''mv^?*ltUf].vw\0`pa֓WJ#?f',S١S_ b_O ڐV@ vEQQȍ|c%V58vF 4x8U #K \3“2 >nX–F("Bn_VnЭ,B],?9[2Tm#2 86G}aۦt4Y we@.d2e&s84 rDB96 -P .Ba%x#?F U:~YhpYlJ5ۈKsOȓ*[(C| ' - Y7 u/ ")?w7 h? g;[jKnHU9 4S:^i+y) ;gH_T\mHzfJ?z9`9yTꑻvG}upfPڑ sJfR eеpg}<&jV>($r8 HۅL*P20PCȖo)C&B[wR|`ӈ])zG ^dϷ5VO~ J* 9?23 [(VUZey94ˊ^xG