libndctl6-64.1-lp151.2.22.1 4>$  Ap_ꝸ/=„.Uh_'yA|7jJym g *Ws)Q^% lFKs 2w-vBO€O-(< `?{KP Uqip'{X>նtoc$5aWlN,:vݦh،}~Wiu>G]<ݮazGoUfSLw3hCe4e8d3c0dd5311572eea6d2ed208b79ff67b74afb207acfa2aecc058b618de659ae8889d3413c5e75d8ea062060388b9273dc2855h4_ꝸ/=„ AB9$9tCm}N!p3JU9[ʛy/:#Ӳ#$(1imvLHQyxzGn66f2z,F_&==w0M lhr( bIw.C2A j=YNNբ/EEy'8 }o(6w{(>j^P8( NSZ7U+/^5羢1bCtH]yЅ$y^n̟NB<~T\>p@?d   iLP\`s|      4  \     < n  p ( 8 %9 %:"%>yg@yvFyGy Hy Iy XyYz@\zt ]z ^{b{c|6d|e|f|l|u| v} w~` x~ y~6zClibndctl664.1lp151.2.22.1Management library for "libnvdimm" subsystem devices (Non-volatile Memory)Utility library for managing the "libnvdimm" subsystem, which defines a kernel device model and control message interface for platform NVDIMM resources like those defined by the ACPI 6.0 NFIT (NVDIMM Firmware Interface Table)._old-atreju4openSUSE Leap 15.1openSUSELGPL-2.1-or-laterhttp://bugs.opensuse.orgSystem/Librarieshttps://github.com/pmem/ndctllinuxx86_64I$h@gA큤A큤_____\Z.\Z.\Z._\Z.64f322aa27d907548a0824567135d64f4a23b7380d2788d2c86e1cd6519f6e93590fdad25b539bde96b188090daf4b6c59cc6a45979460d2e9267ad1290705f789807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e5c37e41135091a39821cfb306ad8516625b0bb49510ce56ad85c347bbc46df29c3f2b59a99aeec31782a4b1d45cf5c0d6fe105a50dbf09e8e94ec4d84b53a30f9397d01be0ec93d29384447ba18e532ab7b01af8c8b582ece9f10ad45b9568dblibdaxctl.so.1.2.1libndctl.so.6.13.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootndctl-64.1-lp151.2.22.1.src.rpmlibdaxctl.so.1()(64bit)libdaxctl.so.1(LIBDAXCTL_1)(64bit)libdaxctl.so.1(LIBDAXCTL_2)(64bit)libdaxctl.so.1(LIBDAXCTL_3)(64bit)libdaxctl.so.1(LIBDAXCTL_4)(64bit)libdaxctl.so.1(LIBDAXCTL_5)(64bit)libndctl.so.6()(64bit)libndctl.so.6(LIBNDCTL_1)(64bit)libndctl.so.6(LIBNDCTL_13)(64bit)libndctl.so.6(LIBNDCTL_14)(64bit)libndctl.so.6(LIBNDCTL_15)(64bit)libndctl.so.6(LIBNDCTL_16)(64bit)libndctl.so.6(LIBNDCTL_17)(64bit)libndctl.so.6(LIBNDCTL_18)(64bit)libndctl.so.6(LIBNDCTL_19)(64bit)libndctl.so.6(LIBNDCTL_3)(64bit)libndctl6libndctl6(x86-64)@@@@@@@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfiglibc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)libdaxctl.so.1()(64bit)libdaxctl.so.1(LIBDAXCTL_1)(64bit)libdaxctl.so.1(LIBDAXCTL_2)(64bit)libkmod.so.2()(64bit)libkmod.so.2(LIBKMOD_5)(64bit)libudev.so.1()(64bit)libudev.so.1(LIBUDEV_183)(64bit)libuuid.so.1()(64bit)libuuid.so.1(UUID_1.0)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1_H_ @^%@^^F]X]@]]2@]Z@]Z@]V]R@\~d\X)@\4\I[%@[F[[~[,Z@ZYw2Y"XX @WWi,@WL+@W W@VVVUpUUMichal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek Michal Suchanek jthumshirn@suse.de jthumshirn@suse.dejthumshirn@suse.comjthumshirn@suse.comrw@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comrw@suse.comopensuse-packaging@opensuse.orgjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comrw@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjthumshirn@suse.comjengelh@inai.dejthumshirn@suse.comjthumshirn@suse.comkkaempf@suse.comdan.j.williams@intel.commeissner@suse.comdan.j.williams@intel.com- Suppress ENXIO when processing all namespaces (jsc#SLE-13321, bsc#1175851, ltc#187867). + ndctl-namespace-Suppress-ENXIO-when-processing-all-n.patch- Clarify documentation about filtering options (bsc#1173861) + ndctl-Documentation-clarify-bus-dimm-region-filtering.patch + ndctl-Documentation-refactor-bus-options-into-its-own-incl.patch + ndctl-Documentation-use-includes-in-more-ndctl-command-pag.patch- ndctl/namespace: Skip zero namespaces when processing all namespaces (bsc#1167861, bsc#1165509, ltc#182068). + ndctl-namespace-skip-zero-namespaces-when-processing.patch - Refresh patch to upstream version: ndctl-test-Relax-dax_pmem_compat-requirement.patch- ndctl/test: Relax dax_pmem_compat requirement (bsc#1159523) + ndctl-test-Relax-dax_pmem_compat-requirement.patch - Add -fcommon flag on Tumbleweed (boo#1160286). - Fix 'ndctl enable-namespace all' fails trying to enable idle namespaces (bsc#1165509 ltc#182068). + ndctl-namespace-Fix-enable-namespace-error-for-seed-.patch- ndctl/dimm: Fix init-labels success reporting (bsc#1156308 ltc#181441). + ndctl-dimm-Fix-init-labels-success-reporting.patch - Refresh patches with upstream status: ndctl-Use-the-same-align-value-as-original-namespace-on-reconfigure.patch ndctl-ndctl-lib-Fix-duplicate-bus-detection.patch- Refresh patches with upstream status: ndctl-Use-the-same-align-value-as-original-namespace-on-reconfigure.patch ndctl-ndctl-lib-Fix-duplicate-bus-detection.patch- Refresh patches with upstream status: ndctl_check_Ensure_mmap_of_BTT_sections_work_with_64K_page-sizes.patch ndctl-namespace-Handle-create-namespace-in-label-less-mode.patch ndctl-list-Introduce-region-capability-objects.patch- ndctl/namespace: Handle 'create-namespace' in label-less mode (bsc#1145471 ltc#179886). + ndctl-namespace-Handle-create-namespace-in-label-less-mode.patch- ndctl: Use the same align value as original namespace on reconfigure (bsc#1145577 ltc#178224). + ndctl-Use-the-same-align-value-as-original-namespace-on-reconfigure.patch - ndctl/lib: Fix duplicate bus detection (bsc#1145573 ltc#180249). + ndctl-ndctl-lib-Fix-duplicate-bus-detection.patch- ndctl/list: Introduce region capability objects (bsc#1145772 ltc#178159). + ndctl-list-Introduce-region-capability-objects.patch- ndctl, check: Ensure mmap of BTT sections work with 64K page-sizes (bsc#1145421 ltc#176079). + ndctl_check_Ensure_mmap_of_BTT_sections_work_with_64K_page-sizes.patch- Update to version 64.1 (bsc#1127799): * ndctl: release v64.1 * ndctl: fix ndctl linking with libkeyutils * ndctl: Fix building in the absence of keyutils- Update to version 64 (bsc#1123024): * ndctl: release v64 * ndctl, load-keys: fix a resource leak in load_dimm_keys() * libndctl: fix a couple of theoretical buffer overruns * ndctl, keys: fix a resource leak in verify_kek() * ndctl, keys: fix a memory leak in dimm_create_key() * ndctl, rpmbuild: Add a dummy readme file to ndctl_keysdir * ndctl, bash-completion: add helpers for security commands * ndctl: allow for a 'secure erase' using the master passphrase * ndctl: master phassphrase management support * ndctl: add a wait-overwrite command * ndctl: add an overwrite option to 'sanitize-dimm' * ndctl: add a load-keys command and a modprobe config * ndctl: add a unit test to exercise security operations * ndctl: add a sanitize-dimm command * ndctl: add a freeze-security command * ndctl: add passphrase management commands * ndctl: add a Theory of Operation document for security commands * ndctl: add support for displaying the security state * ndctl.spec.in: remove obsolete Group tag * ndctl.spec.in: remove obsolete ldconfig scriptlets * libndctl: fix bb iterator leak in namespaces * ndctl: Add supported_alignments to the JSON output * ndctl/namespace: Make the create-namespace JSON output non-verbose * ndctl: Add alignment to the namespace JSON output * ndctl/namespace: Validate alignment from the {pfn|dax} seed * ndctl/namespace: Use seed alignment as the default * ndctl/namespace: Check for seed namespaces earlier * libndctl: Use the supported_alignment attribute * libndctl: Fix the failure interpretation for status translations * daxctl: Add bash-completion * ndctl, Documentation: Allow for Makefile variables in Documentation * Documentation: Update copyright * daxctl: Opt-in to /sys/bus/dax ABI * daxctl: Support the /sys/bus/dax ABI * ndctl/build: Fix config.h dependency * ndctl, rpm: Mark monitor.conf as a configuration file * ndctl: Introduce ndctl/config.h * ndctl/init-labels: Fix label slot accounting per UEFI 2.7 * ndctl: clean up usage of ndctl_cmd_submit * ndctl, monitor: switch to ndctl_cmd_submit_xlat * ndctl, inject-smart: switch to ndctl_cmd_submit_xlat * libndctl, intel: Add infrastructure for firmware_status translation * libndctl: ignore ENXIO in ndctl_namespace_delete * ndctl, monitor: use type=simple instead of type=forking * ndctl/monitor: Kill usage of ndctl/lib/private.h * ndctl/monitor: Drop vasprintf usage * ndctl/monitor: Fix / cleanup log_file() * ndctl/monitor: Unify definition of default monitor configfile path * ndctl/monitor: Drop 'struct ndctl_ctx *' casts * ndctl, daxctl: Add type-safety to command harness * ndctl, daxctl: Split builtin.h per-command * ndctl: recover from failed namespace creation * ndctl, build: Define HAVE_UUID * ndctl: fix zero-labels to handle firmware error properly * test, dsm-fail: Cleanup leftover debug * test, device-dax: Fix intermittent poison handling failures * Drop upstreamed patch: - 0001-ndctl-monitor-use-type-simple-instead-of-type-forkin.patch- Use Type=simple instead of Type=forking for service (bsc#1120931) + 0001-ndctl-monitor-use-type-simple-instead-of-type-forkin.patch- Enable ppc64le build (FATE#326817)- Fix rpmbuild failure on SLE12 SP4- Update to version 63 (FATE#326198): * ndctl: release v63 * ndctl, monitor: in daemon mode, exit successfully if no DIMMs are found * ndctl, monitor: fix the severity of "daemon started" message * libndctl: set errno for routines that don't return an error status * ndctl, check-labels: correct check-labels message wording * ndctl: Revert "ndctl: Create ndctl udev rules for dirty shutdown" * ndctl: Revert "ndctl, intel: Fallback to smart cached shutdown_count" * ndctl, lib: Add dirty-shutdown-count retrieval helper * util/json: add a util_namespace_badblocks_to_json() helper * util/json: Add comments around re-checking the UTIL_JSON_MEDIA_ERRORS flag * util/json: fix an error check for region resource * ndctl, lib: add APIs for retrieving namespace badblocks * ndctl, lib: refactor badblocks retrieval routines * ndctl, test: add a new unit test pfn metadata error clearing * ndctl, spec: Use pkgconfig for systemd * ndctl, build: Introduce --with-{bash,systemd} * ndctl: Suppress command errors if fallback exists * ndctl, namespace: rework namespace action accounting * ndctl, destroy-namespace: check for an already-zeroed info block * ndctl, test: add UUID_LIBS for list_smart_dimm * ndctl, docs: Use asciidoctor by default * ndctl, list: fix the verbosity level formatting in the man page * ndctl, monitor: Fix formatting for --log in the man page * ndctl, autoconf: include sys/mman.h for MAP_SYNC- Revert to version 61.2 (bsc#1110425)- Update to version 62 (FATE#326529): * ndctl: release v62 * ndctl: Work around kernel memory corruption * ndctl, udev: fix a resource leak in save_unsafe_shutdown_count * ndctl: fix potential null dereference in the smart error handler * ndctl, prepare-release.sh: fix revision update checks * ndctl: Add 'list' verbose options * ndctl, test: fix a resource leak in check_smart_threshold * ndctl, test: fix a potential null pointer dereference in 'ndctl test' * libndctl: fix a resource leak in ndctl_dimm_get_{{event_}flags, health} * ndctl: fix a resource leak in submit_get_firmware_info * ndctl, inject: fix a resource leak in ndctl_namespace_get_clear_unit * ndctl, monitor: add [Install] Section to systemd unit file of ndctl-monitor * ndctl, monitor: add timestamp and pid to log messages in log_file() * ndctl, monitor: set default log destination to syslog if "--daemon" is specified * ndctl, monitor: fix the lack of detection of invalid path of log file * ndctl, intel: Fallback to smart cached shutdown_count * ndctl: Create ndctl udev rules for dirty shutdown * ndctl, list: add alarm_enable_ to list * ndctl, test: add a new unit test for max_available_extent namespace * ndctl, documentation: Clarify the dimm id for ndctl list d option * ndctl, tests: add a new unit test for inject-smart * ndctl, inject-smart: continue in spite of errors for uninject-all * ndctl, monitor: add [--verbose] option to emit extra debug messages * ndctl, monitor: Fix duplicate prefix in monitor.log * ndctl, inject-smart: add an interface to inject ctrl-temperature * ndctl: Use max_available_extent for namespace * ndctl, test/monitor: fix inject-smart field in test_filter_dimmevent * ndctl, test: remove the firmware image file before the test end * ndctl inject-smart: add an option to uninject smart fields * ndctl, inject-smart: Fix man page to match the current behavior * ndctl: deprecate undocumented short-options * ndctl, documentation: document the label-version option for init-labels * ndctl, monitor: fix a resource leak in parse_monitor_event * Documentation, create-namespace: clarify fsdax wording * ndctl, monitor: improve error reporting throughout monitor.c * ndctl, monitor: Fix memory leak in monitor_event * ndctl, monitor: fix memory leak in read_config_file * ndctl, monitor: Add a config-file section to the man page * ndctl, monitor: fix the lack of detection of invalid dimm-events * ndctl, bash-completion: add completion for ndctl-monitor * ndctl, test: add a new unit test for monitor * ndctl, documentation: add man page for monitor * ndctl, monitor: add the unit file of systemd for ndctl-monitor service * ndctl, monitor: add main ndctl monitor configuration file * ndctl, monitor: add a new command - monitor * ndctl, test: convert remaining tests to use test/common * ndctl, test: fix tests for the array vs object listing fix * ndctl list: always output array without --human * ndctl: simplify JSON print flag handling * ndctl: add an API to check support for smart injection * contrib/do_abidiff: make the build more robust * ndctl: Remove dependency on linker garbage collection * ndctl, test: fix timeouts in device-dax * ndctl, test: Fix dax.sh return code * libndctl: fix the uninject-error API actually injecting errors * ndctl, test: add start/wait scrub to injection tests * ndctl: Add CONTRIBUTING.md * Documentation: add a newline in namespace Theory of Operations * util/strbuf.h: include sys/types.h for ssize_t definition. * ndctl, test: check availability of MAP_SYNC for poison test * ndctl: release v61 * ndctl, list: add controller temperature threshold and alarm * ndctl, test: remove an unused variable assignment * ndctl, Documentation: Add namespace 'theory of operation' * ndctl: add a test file to .gitignore * ndctl, test: cleanup test scripts * ndctl, test: Add NFIT_TEST_BUS[01] variable and some helper funtions to common * ndctl, test: Update tests for capacity vs namespace-label locking * ndctl, test: Disable poison tests for now * ndctl, test: Update libndctl test for controller temperature valid * ndctl, contrib: Add helper scripts for new release * ndctl, list: Add controller temperature * ndctl: Update README.md for code blocks * ndctl, test: cleanup test scripts * ndctl, test: add common helper functions for test scripts * ndctl: autoconf detect BUS_MCEERR_AR * test: Add device-dax MADV_HWPOISON test * ndctl, util: add OPTION_FILENAME to parse_opt_type * ndctl: add an api for getting the ars_status overflow flag * ndctl, ars: don't invalidate the user-provided command * ndctl: refactor validation of the ars_status command * ndctl, list: display the 'map' location in listings * ndctl, test: fix sector-mode.sh to work with label support * test: add a MADV_HWPOISON test * ndctl: hide null uuids * ndctl: fix libtool versioning * ndctl: warn on variables declared after statement * ndctl: remove warnings when -O0 is used with -D_FORTIFY_SOURCE=2 * configure: add -Wunused-result and -D_FORTIFY_SOURCE=2 to cflags * libndctl, test: fix a couple of unchecked returns * libndctl: improve debug prints in wait_for_scrub_completion * libndctl: fix potential buffer overflow in write_cache APIs * ndctl, filter: fix "keyword 'all' is ignored" in util__filter() * ndctl, inject-error: add a --saturate option * libndctl, inject: add 'v2' APIs for inject and uninject * libndctl, inject: inject fewer bytes per block by default * libndctl, ars: add an API to retrieve clear_err_unit * Documentation: add asciidoctor-extensions.rb to .gitignore * Documentation: Add the support for asciidoctor * Documentation: fix title and section markers * ndctl: fix ABI breakage due to rename of fw_info_get_updated_version * ndctl, filter: refacor util__filter() to support multiple space-seperated arguments * ndctl, documentation: add inject-smart to the Makefile- Drop 'v' from pkgconfig-version (breaks 'ipmctl') (FATE#325527)- Update to version 60.1 (FATE#322885): * ndctl: release v60.1 * ndctl: fix ABI breakage due to rename of fw_info_get_updated_version * ndctl, documentation: add inject-smart to the Makefile * ndctl: release v60 * ndctl, bash-completion: add completion for {start,wait}-scrub commands * ndctl, util: add a raw_uuid field to namespace listings * ndctl: fix ordering of closing vs invalidating flush_fd * ndctl: fix libdaxctl memory leak * ndctl: add support in libndctl to provide deep flush * ndctl, test: fix pmem-errors.sh vs new ARS rework * ndctl, scrub: add {wait,start}-scrub helper utilities * ndctl: add new START and WAIT actions * ndctl, scrub: add ndctl_bus_start_scrub() * ndctl, scrub: report the bus scrub state in 'ndctl list' * ndctl, scrub: fix ndctl_bus_wait_for_scrub_completion() * ndctl: complete move to "fsdax" and "devdax" * ndctl, read-labels: fix json reference counting * ndctl: export ndctl.h * ndctl, test: add write_cache testing to libndctl * libndctl: Add APIs for query and control of write_cache * ndctl: fix ndctl_persistence_domain declaration * ndctl, rescan-partitions.sh: fix skipping for missing modules * ndctl: replace direct errno prints with strerror strings * ndctl, inject-smart: fix usage of strerror(errno) * ndctl, check: fix a few error returns * ndctl: Add support for get bus and region persistence domain * ndctl: fail NUMA filtering when unsupported * ndctl, documentation: update copyright * ndctl: complete removal of daxctl io * ndctl: fix input/output size for Intel firmware update DSM * ndctl, sysfs: null terminate buffer on error * ndctl, list: fix namespace json object parenting * ndctl. test: fix module-taint sanity-check * ndctl, documentation: remove '...' from label-options.txt * ndctl, docs: cleanup the man page for create-namespace * ndctl: removing daxctl io * libndctl.sym: move new interfaces since v59 to a new section * ndctl, list: fix sector_size listing * ndctl: merge firmware-update into dimm.c as another dimm operation * ndctl: add check for update firmware supported * ndctl, bash-completion: add completion for --numa-node * ndctl: add filtering based on numa node * ndctl: add numa_node support for regions * ndctl: don't print erroneous namespace numa_nodes * ndctl, tests: firmware-update.sh post-test cleanup * ndctl, test: add a unit test for partition rescanning * ndctl, create-namespace: fix minimum alignment detection * ndctl, list: refactor core topology walking into util_filter_walk() * ndctl, firmware-update: kill usage of flock() in verify_fw_file() * ndctl, test: kill usage of fallocate in firmware-update.sh * ndctl, test: skip btt-pad compat test on pre-4K capable kernels * ndctl, test: fix dpa-alloc for kernels with 4M min size * ndctl, log: add support for LOG_NOTICE messages * ndctl, test: explicitly request namespace size * ndctl, test: fix stale json in btt-pad-compat.sh * ndctl, test: fix tests that use error injection on older kernels * ndctl: add test files to .gitignore * ndctl: tests must use local ndctl * ndctl, update: remove the check for !cmd when dereferencing it * ndctl, update: fix uninitialized variable warnings * ndctl, inject-smart: cleanup uninitialized variable warnings * ndctl, configure: add -Wmaybe-uninitialized to cflags * ndctl: add option to list firmware information for a DIMM * ndctl: adding unit test for enable ack shutdown count * ndctl: add support for acknolwedge shutdown count enable * ndctl, smart: fix threshold temperature helper- Update to version v59.2 (FATE#322885): * ndctl: add ndctl_encode_smart_temperature() * ndctl: add a new command - inject-smart * ndctl, bash-completion: Add bash completion for inject-smart * ndctl: Add CONFIG_DEV_DAX_PMEM=m to README.md * ndctl: add info about CONFIG_X86_PMEM_LEGACY to README.md * ndctl: release v59 * ndctl: fallback to sysconf for PAGE_SIZE * ndctl: release v59.1 * ndctl, hugetlb: skip, don't fail * ndctl, firmware: fix kernel version check- Upstream version v57.1 (FATE#322885) - libndctl-add-support-for-the-msft-family-of-dsm-functions.patch This release incorporates the capabilities of the 4.12 kernel. Major highlights include the new 'ndctl check-namespace' utility to check and repair btt instances, new option to 'ndctl list' to enumerate device relative error offsets, and support for the "JEDEC Byte-Addressable Energy-Backed Interface NVDIMM" SMART health format. Commands: ndctl check-namespace: check and repair a btt instance ndctl list: new '--media-errors' option ndctl list: add acpi 6.1 dimm health state flags ndctl write-labels: new command to deploy data to dimm label areas Tests: blk-exhaust: validate aliased pmem vs blk capacity accounting daxdev-errors: error injection and clearing for device-dax device-dax-fio: i/o traffic sanity check for device-dax label-compat: regression test for interleave-set-cookie compatibility Apis: ndctl_dimm_has_notifications: acpi 6.1 health-state notification flag ndctl_dimm_failed_map: acpi 6.1 map failure flag ndctl_region_get_resource: region resource base address ndctl_region_get_{first,next}_badblock: media error enumeration ndctl_namespace_disable_safe: check for busy block device before disable ndctl_namespace_is_active: check if namespace is enabled or claimed- Add support for MSFT family DSM functions (bsc#1040158) + libndctl-add-support-for-the-msft-family-of-dsm-functions.patch- Upstream version v56 (fate#321506) This release incorporates the capabilities of the 4.10 kernel. Major highlights include the new 'daxctl' utility and its 'list' command, as well as several usability tweaks and cleanups to 'ndctl create-namespace' and 'ndctl list'. Commands: ndctl list: add support for filtering by namespace mode daxctl list: generically list device-dax instances in a platform ndctl create-namespace: reconcile namespace size against interleave-width Tests: test: sanity check the unit test kernel modules befor running tests device-dax: extend it to test 4K and 1G alignments in addition to 2M multi-pmem: check namespace deletion cleanup Apis: ndctl_{pfn,dax}_has_align: detect kernels that lack the align attribute ndctl_{set,get}_private_data: attach private data to a library context daxctl_region_get_size: retrieve the total dax region size daxctl_region_get_align: retrieve the physical alignment of the region daxctl_region_get_{first,next}: enable listing of device-dax regions- Upstream version v55 This release incorporates the capabilities of the 4.9 kernel. Major highlights include support for retrieving the health status of HPE NVDIMMs, and new label manipulation / validation commands. Commands: list: add HPE NVDIMM health reporting init-labels: initialize a namespace-label index-block check-labels: validate a namespace-label index-block create-namespace: fix crash when target region disabled bash-completion: add {en,dis}able-dimm and {check,init}-labels support Tests: dsm-fail: check that namespaces stay disabled when label DSMs fail multi-pmem: validate pmem-region sub-division support libndctl: add btt-size check libndctl: test health event notification support device-dax: validate "invalidate on shutdown" behavior of dax devices device-dax: validate direct-i/o to device-dax mappings device-dax: check kernel fix for file offset to phys offset translation device-dax: check kernel fix for crash when reading /proc//smaps clear: check kernel fix for making cleared badblocks stay cleared Apis: daxctl_region_get_available_size: new, in support of dax sub-division daxctl_region_get_devname: new, in support of dax sub-division daxctl_region_get_dev_seed: new, in support of dax sub-division ndctl_dimm_get_health_eventfd: new, fires upon firmware health event notification ndctl_cmd_cfg_read_get_size: new, simplifies label manipulation routines ndctl_dimm_get_available_labels: fix error return value to be ULONG_MAX ndctl_region_get_available_size: fix error return value to be ULLONG_MAX ndctl_dimm_cmd_new_cfg_{read,write}: fix to not overflow label area size- Update to v54 This release incorporates the capabilities of the 4.8 kernel. Updates to the unit tests make up the bulk of this release to account for kernel commit 1ee6667cd8d1 "libnvdimm, pfn, dax: fix initialization vs autodetect for mode + alignment". Commands: list: add device-dax information list: add btt size information create-namespace: fix handling of invalid sector sizes create-namespace: static analysis fixes bash-completion: namespace completion enhancements Tests: libndctl: updates for pfn and dax autodetect changes libndctl: new gates for running against older kernels device-dax: new pcommit: remove, the pcommit instruction has been deprecated Apis: ndctl_dimm_get_manufacturing_date: new ndctl_dimm_get_manufacturing_location: new ndctl_btt_get_size: new ndctl_cmd_unref: fix, accepts NULL input- Fix rpmbuild failure on factory- Update to v53.1 (FATE#319859) This release incorporates the capabilities of the 4.7-rc1 kernel (most prominently in that kernel 'Device DAX', DAX error handling, and third-party DSM support). The ndctl updates include: New commands / options: bash completion for ndctl commands DIMM SMART data retrieval (ndctl list --dimms --health) ndctl destroy-namespace ndctl read-labels New tests: DAX error handling unit test (dax-errors.sh) Command fixes: ndctl list ndctl create-namespace New apis: ndctl_cmd_smart_get_alarm_flags ndctl_cmd_smart_get_flags ndctl_cmd_smart_get_health ndctl_cmd_smart_get_life_used ndctl_cmd_smart_get_shutdown_state ndctl_cmd_smart_get_spares ndctl_cmd_smart_get_temperature ndctl_cmd_smart_get_vendor_data ndctl_cmd_smart_get_vendor_size ndctl_cmd_smart_threshold_get_alarm_control ndctl_cmd_smart_threshold_get_spares ndctl_cmd_smart_threshold_get_temperature ndctl_dax_delete ndctl_dax_enable ndctl_dax_get_align ndctl_dax_get_bus ndctl_dax_get_ctx ndctl_dax_get_daxctl_region ndctl_dax_get_devname ndctl_dax_get_first ndctl_dax_get_id ndctl_dax_get_location ndctl_dax_get_namespace ndctl_dax_get_next ndctl_dax_get_region ndctl_dax_get_resource ndctl_dax_get_size ndctl_dax_get_uuid ndctl_dax_is_configured ndctl_dax_is_enabled ndctl_dax_is_valid ndctl_dax_set_align ndctl_dax_set_location ndctl_dax_set_namespace ndctl_dax_set_uuid ndctl_dimm_cmd_new_smart ndctl_dimm_cmd_new_smart_threshold ndctl_dimm_get_formatN ndctl_dimm_get_formats ndctl_dimm_get_subsystem_device ndctl_dimm_get_subsystem_revision ndctl_dimm_get_subsystem_vendor ndctl_dimm_get_unique_id ndctl_get_daxctl_ctx ndctl_namespace_get_dax ndctl_namespace_get_dax ndctl_region_get_dax_seed daxctl_dev_get_devname daxctl_dev_get_first daxctl_dev_get_id daxctl_dev_get_major daxctl_dev_get_minor daxctl_dev_get_next daxctl_dev_get_region daxctl_dev_get_size daxctl_get_log_priority daxctl_get_userdata daxctl_new daxctl_new_region daxctl_ref daxctl_region_get_ctx daxctl_region_get_id daxctl_region_get_uuid daxctl_region_ref daxctl_region_unref daxctl_region_unref daxctl_set_log_fn daxctl_set_log_priority daxctl_set_userdata daxctl_unref- NVDIMM is not defined for any CPU architecture other than x86_64 at the moment.- RPM group and description update- Update to v52 This release incorporates the capabilities of the 4.6 kernel (most prominently 'clear poison' support), and adds the below features and fixes: New apis: ndctl_invalidate ndctl_cmd_ars_cap_get_range ndctl_bus_cmd_new_clear_error ndctl_cmd_clear_error_get_cleared ndctl_namespace_get_resource ndctl_pfn_get_size ndctl_pfn_get_resource Api fixes: ndctl_bus_cmd_new_ars_status - output buffer sizing fix ndctl_bus_cmd_new_ars_status - input validation ndctl_cmd_ars_in_progress - invalidate state after checking- Update to v51 This release reworks spec file generation to use automated tarballs generated by github for each annotated tag. It also includes a couple of minor fixes.- Update to v50 This release incorporates the capabilities of the 4.5 kernel, and adds the below features and fixes: New apis: ndctl_bus_get_ctx ndctl_namespace_get_pfn ndctl_namespace_get_mode ndctl_namespace_get_numa_node ndctl_region_get_pfn_seed ndctl_pfn_get_first ndctl_pfn_get_next ndctl_pfn_get_id ndctl_pfn_get_namespace ndctl_pfn_get_uuid ndctl_pfn_set_uuid ndctl_pfn_get_location ndctl_pfn_set_location ndctl_pfn_get_align ndctl_pfn_set_align ndctl_pfn_set_namespace ndctl_pfn_get_bus ndctl_pfn_get_ctx ndctl_pfn_get_devname ndctl_pfn_get_block_device ndctl_pfn_is_valid ndctl_pfn_is_enabled ndctl_pfn_get_region ndctl_pfn_enable ndctl_pfn_delete ndctl_pfn_is_configured New utility commands: list help (man pages) create-namespace Api fixes: ndctl_{namespace|btt}_foreach crash fix ndctl_namespace_delete no longer errors on "io" namespaces miscellaneous static analysis fixes Utility command fixes: {en|dis}able-{namespace|region} return code- updates for the new versioning scheme introduced with v47 - synchronized the spec file with the one produced by contrib/genspec- cleaned up spec file. added licenses. added make check- Management library for "libnvdimm" subsystem devices (Non-volatile Memory)/sbin/ldconfig/sbin/ldconfigold-atreju4 1602677396 64.1-lp151.2.22.164.1-lp151.2.22.1libdaxctl.so.1libdaxctl.so.1.2.1libndctl.so.6libndctl.so.6.13.0libndctl6BSD-MITCC0README.mdlibndctl6COPYING/usr/lib64//usr/share/doc/packages//usr/share/doc/packages/libndctl6//usr/share/licenses//usr/share/licenses/libndctl6/-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.opensuse.org/openSUSE:Maintenance:14541/openSUSE_Leap_15.1_Update/b02ec83dc6b6a564d3d1db91b22c2fc6-ndctl.openSUSE_Leap_15.1_Updatecpioxz5x86_64-suse-linuxELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=a7466b38b72f3e04400304a6064bf15a672638c6, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=64f18b0297441ba58acc75bbc7411e7725f118c7, strippeddirectoryASCII textASCII text, with very long lines#PPPPPPPPPPRRR RRRRRRPPPPPP P P P P P P P P P PPPR R RRRRRR RRRRR RRR Rs p8utf-8486b3dfbdb5c0631c7cd8624d14ac3aabca3a0d8d5201f219ce973370830dffd?7zXZ !t/[] cr$x#J;Nd$Bgo?p2T eA};K$5THJ͟kzl>i:{䉉f~q7e\PE>4Rok)nT5L{Xh3EGi`VTFXyq>*G'Jc(*(!LN"hWǿ$9M)״€+`+K{l~JEWҔiHnӲV01r_1^{p)B^ԏqj̎ҭ~,ČO}WKfB\ Nu$x+Un@ !v'QZX o4witZv؅q &,i1hjJl 9smOHv3H#Wq"%zx╈#G}\Ӓs5%14XzscaGDЕL57F[jLb.Qֆ 'ТaH@:ǧ, 30lø=hw'TkA ]BUTK,gLo"a3bÈ*4$oRrAyx㓚Zv|| *?,vS3,JS7ّ8!]0_ bt'I/sB!ij [{#Nj8ϖc zU_6 u*M!AfbinCBZ2@5wץԺ,Y;I@8zJVxB^a:8\ѻb«D3WgOp؊5Uwx+x083K4Q㦭S W@vԵu \lY'ޤmQ}!*ؤ\T=j"jp~.ɹ!>Qn mB#qxd eJZP\ƀrc{֡?wXh.#b`B!ġSet~+o {Dp媙}%5Ft=NZ"#3)ԑ[+P" fD27?AhW#'qŚ%w{\$ެ&l->aN1q|Y4r|zw@EN*s:_mE> w*aRf!z Uv:Ϋ?~><7[ 飈.q=XӨ7F}2|D)i0z.p]wE~Z~+y5/þPK G>PHs\q&<JSSX9 SH5eD1>9ZZTG@[ɨj[|[;ԳV-̼Li+^gK U oĈ 8/ޣwK< ~'Q~>OD&/R'PPo,#fCh5(M B2$_''Xnf`gGX3j ^vR?DIY/r}d(25'ɨr&ڽr4{)mꔏ9"B7۽0G]_<.1>f~OG ^cbޱD2D#@~͘;h;Ϝan拜!__ķs 8E#:Bk6Ȇm|x|nzg)*0gL_X|1KhfJ^f6DLR6 'EXŻO B9٨mFJc6,}$ *>4* '5SlE+8u-AwV#Z$%[~*lG5J*8[Y/z 1 ^,jNN.֮6F*/53 z/ڍp<LIl1ժ0ew|#U=PyyJO{~ zSC| HN?%C1F|J`ʐQ]ܜN)v?(I %x3?D p|;3tyOZ8FvSGBk^9k*ڜ:E`X b6A5 .ݎaaHiCY?QŊ !):[oJIZ>?2ǚ׍ wq,Ћ+q҇ [D2mg_<OޚXYed1񿴒Lmo M"ҋ~@b9s 8W6GI2Iҍf XwXf UP6P<& 'iˮ"dK ;|, +2ԡ=P0iQJ%+doZܡ۹qd|ZA$BɁ)1̈́?ex IUi4D9rD'8]@ã7C R}PX qVi5IV158'?Z"xXdszĕAck$soaƺx λlyK }vBs_l^?@!~TۏE&Bq6˦ hUbZ Zu7`]lfYRMϬ*vA+ _mأ+, @HVEˏ ggyW/\qdf[^_Qd:8 lVVtTrŘ Ba'9|g9fWW6/H,S(5_s1{΀:3fr#HF\Iik>W$8 1X%z-Ek\W򣝨ҳ6ys CA"1"(.< \&/J+kͅ}$=Muf"* ^u! ᙟ䙡2(8yߏ?gD Od:U?q!VlJi88(Ǭe#We{L? Ǿ9[t$iw?';?FƤYJUfEsߊnɤj+5= 92E䅮 zVz`EcN>_Qa9,ѹI AŽGnHu:I4Aʏ妓1dLŶ$9[vvN-Em=>ߋ=sk0"i6m%{RC ȇpY 唥$d^ϽʼA=ʁS}s `H?ߚMIO셱DN.-kX g钨x+ ρC*2^Iϊ2ɇ ,nbv߃fOK ^;F7'ooY(<~; >!IcxV]˾KŁEP S ϡ}6$~ RXpʙ[טN =e4NxҰ=&9z.PH$3Z/O_ tm%~EmzF ;aw;&5)sCȻ`<ƵSLޥ*/+)ȵ|U ܭU< >dExJBSy[RΑӰ7)`kiW GvtT;36gEM@]8V&vƚ}cH}4ˆBzii#,Qʹ-ܲWY߄eSm6a<"QS[K~u4 P4i2h6DKGeHu&&|>kS2@4'Axl3 ]*g{'"72m?HK1&q!G|Z7!Ы+4ف-rFns"(owX2oni:)`iz gsK|.Cכ醷 :6H4 UkԠ埚Ewha݆`CgD c Dr1zD1G 8$9J$;p .rVdB y8ELusqgQzY bߓ2}ӽPKԨ*rzx82Xa"1Ew`wD-Yjdm^@[9%4Y6PQaܰ.9]&~qD)'ғh|[&۱$8n*}ЊYsL\QY09sFS*38=*[0zӓ5@_*pRA̴Tm:AF$k Ve"h&Lvznf,'}N `]p5Ol%|*~JżS%%*v!P*.*,8MQU#X!ҝɞiF1\ E<tqKw;v«8 zqe%{- f\m:m wMpKIUNxn-^PY1r)I/T@ݢcwJ+>t/t&86 '#k{Xa?g|#sxHAϤp_d@~ihR]ŷ`> }Y5A֩+ѧx^ %2ffmRۆanJO_k!|<m ](h'.HzADC[Y616Z݄vWARah*v8 P[ЄP, 7jmmPn>!/E+/eǚj] /}%4=WVn,\fLDR65VU1',!ejS/E9FH"Qéʇ$wV$m.!yT:^RހV@_/gs"4BF`(P$p3jCl k٩ qFG_,p?E{0[{e}$b^+\H^$Y8-#;6]M_ ]M]w$B=G^ߣz+:`+qHSz==m:08?vmωV|3fjh7TB+#W/2;&lҮmo!rּJq\!;,֏G&f6||C֯U0SG_jmrSKU>Ĝ̆BQ<\悞K)e撸gWnA t$ 7qǩC 6W9C8U€i'T=Jgǐ=I_$> ݏOBaDh KYq9 7bo +CxQq#y8_ hXVcA2]dXؾؔrLK7qc̒% ӸmlE#ݗ]jr /!1OoEL;۱/=xn\3ْQB2BK.8Lk_cv!dh,f&ieӗ5yu2vCWz:rz-a y3v1o.uCF .&o0Q?LW~ţarK FϜi^0\_e^(j%O`+C*'w% XjYjjC\G?Wr'з|CIF z6:u/JXX5~^z̫wsvQKqK{)M={9DnPT}ȝ 1\KORW߄q8;W<Ǚ%7ݴnXzf\|]mr4 '>kC 1Y#'ʡȗEl/xN ltزq(Ƅ# Z9-!B놏$kiR ~m<70>_*b(M"_\^e:[b$7S/;%ҳC kކ z9yy%"Ilq{AFo*c[ۗ~5yab QH p'@ω -{^F?^aِYkI-S nXhBKdFi5iW|I* &XQ=J~QO.B}m̬Zs=ؙ Cs( sXzp9kB.XŲ$Lx@bq(7*!&EJegpp%Di#, v3{ ~d 1pwOb,aM5 D.a鑈}u[az^}(HktA5.Nt hϦ+V:a4 Y3A :']4SN8LtTxvkhôS{x$sNHT vm$a.Lim^B!zAQMWWDtܑhIgǡ[˳j2B~֔ǖH`,.ݒYbVjfY|@Mc<N$ƲxY\\O*e|0kFpOIxuID2stOI8)Qhw W%489V}ΈN73d;*[WEawQyJjr `efJU)4P{Cfiurvظ5#/ӠgKfQ]OGAw#sEA09 r: .K}2&@JDˮ#֎ [O ,ڻ5!A'`N:IRmΌ%VS IXX}$JHgy$wbcYF ʅJ1~tL|Iq0!(JwEҗa6kPcaQ;Ew~hzrd3P,>e\Y.5`b93yyh>[⥃ ~A(%qAwQ7l驌icz_A RRNڛ{KEw৚0o, W5[Sr>B|IZ[YJ6Y3P#/ht_82}Xl8(8#DZꗑ"es29ZEāNvB17(|P^1b'QhU+Ty׷y2XH*@QY m?!ٗ>BOHV"6C=6M_eh:G!j'Bq?lz96{uݾ߶N~-?c݇w8 IE΅g@6~E>@[4=n$9q'E !IDwsVj|`T3fg\DS6câKݗޥyn0': !)bjgAȾ<'N׾. JŎ66Њ+on]Zdq/'/VcE|P6Vx7Ap}#x70}3/k F,JOVߦ-`14%by5bfJ$e;k6ڂ@ 1i,L1WEOMZ#+;fpa-r^;9pv_pa2R}?U,ʽ7"}-mZr%0ai֡BZL6QqI;M~3\(6m߻uNTo* fՊG0!A["~BU3o>l=F"Kba*t<-hCcyî `0fKF1G:̑-URU +-p3xn{t{=8I?wnжh?ި%֓p]J(80 ,Y^+~i4Wtq\Nx`R qčyظtI ܚebJU9:2X7c1gV ~i`y qno+,ڌsJSoFլZ;r`!3uX@|Pvԉi&7=+JK҈32] -tz5ψz|7S#ũ`ߙx[Oqg#OqK^BSmZƦC`ݛ  f2+fTZD8mX))QK$'9;At3g6!O%yJP(OQڈ&JecKYۊŚAć :g Ѿ=Z jvX0P@]nXAO/m#l@o7npukTh.]q9T-:&nVUh4Sc:+WxKo͔}6/]G (ف @/iCm !Bv]}MnX&NmBUFk'][S~ԔgNG˯w~z*J~Wm-%z垴Q1}/cgf,d' q՞p?xi:0A3)Jk@V1G3U{|bT+w?~vz;׫̸;,MU>$,U|AYgU Ay@Uqv{9YbVr73~P(`4^DMs ={q3 m$X7R:i)wQ'!'t!Do)kȷ8w~'  )JnԎB uB-IZ*8IC;u}&z5-{%+reol 6y7oo˒ޕmW)i TiMz0\S @>Kz/|3 _@UÜU`NVBܳrO.~Ѩ$5@eK_6nFgCiK1ݞ`c n{^~%,ԌҨ\SQ"JɾRmL-OO?htvچ6a}8\ާq sl+g@,S董̟)j N^d>^_Xž ,2(l!\c1ƈ)Ц'(T@tSwe/YtKB a3:>* [E&ZE8N@`F#"zWP.C3XCӾ@ŷH1CW\=A@M^))ҸpHg&g`1~Gx:N̼d]B_knx$@.NN*sK/,ReoxjWn1WqLў 9UZ6m.Ũ2wHKa|2Qdt%˜4·6^8rk!МѮi*]Qe:n->I#nj" *h ǒ$3F;HKݺdrd2k./43{s?/6 Odhٯz[F'&+أ\#s] [N ?=M6c{6RqFd^o zߐ w?*I'~G41qId5 -]O^r-pRq+!­ 法(QG\NEZ/-ՙFU=oFӐuGM,Zt FCŠJ>|[n63[Lk*!,brZkXNՅka0jDnxcO -@gnH<41nJJz9UTn>/6"G܋ƿ {f8-l [dS)O+T\d_ݎDd[2ur!st<= b]*'^{dpN9:{Qdl7K&ƋOADRTcA{BjTjٴa/*<[P1-\FH@uٗ<Ka=J&c{Bo~`.??cHeԧB7tʐ4 lHJ@AdnH^hymh*AJ>i;hvZ ]{7 .@ T3 `gU2\`$*| zs$EYi5jʶB-o_.1'aIBr]!DOX -XVV>!\02/.T^VtXo*#( 9K6QD\-i7d|YݨK][ǁiHvQhbJ SbhXӽsSՐ`j8!)v̙m}Fk&ǢզR|+ͻ7Zitm|Pdž;ۖuZDu$MW@bJFb)j y6@# S#BZef̐yɭVFŮQ/7`߀|SrCN&rː2Ix.F\)V?uDZa_'j0*|ɝn53 ў$B"0V\t i=/08:3CUj(ܼc&S˱,l8&<ǕPp<,@@huP\D8IۯX%Tmy>\it Z\^vR7X,y͞>0P@ $<|'NmFe_l hR~ aK DXXT0x~Q1! O_x<[^ߖrT?e `Riqٚl0cwgݷ43eу)kksu &+kÍZy X[P ub̢ul2,z~h̉˜^7*d=ychwJm qNJZI-5K~ 9cvZey i6'3$;̯Uo~a T ;s\[97Z^b`0JWZDǨӥ|_,ji ;̾PFߘQ7:CnV4szj薶'58y>tx٭ektvvOؘ/n2`E%YuE, y4k;QSLAnYGC|2&w=Z>)k<,heAdj:Y]G@;x|q!~'a<bBC!FVƋ i uNsGSJQekBXS!"r:gW.@cp7}>I*y륩#^SSmRgmxq/TSb\H_/޵`bFHḦ́L;bK7Eͳcrm̸U'*J G(-b~Ś[p[9lE2'dcft/e.F&ކj F=  Z@CӴaT]@^plq]o5Ib`%R$#6ABSCW l4kMCTX)1hVucQhDL5m',MLUf!€'\,j+`d t'MF%QZfo|/΂2GAu.|K @zDduj2LulV3(խ 8BH =XxSQ1-rjMQxYED &^/3&1rcv-~푗BDŽՠ|6am\Nl2~ө7lXW`_5#*8V"`hI>l2n9&Gc(n!m٬$M>hX/x!S Ŭ;F!$@s ./d^|5x9ԶVOj% Q7  Zq=4F=QT[AGM1n2#fTh? *) wgVt բ"Nq1ևZ $8ނdܡFvZ;HCkW|eZ\Meѱ=76BO/z&%Sۯ$.yM'cA+hЛt8<$E)C* QgaтqHHa }oXY9fbku6DkR*+~)\B_אv6ӹt@Q|g\l\{ +VY[\⅑xue\`)OdžaE@[uW{a.IE$;6dw,H @ѣMP0U-pƸjut> 0.ߔ$ >^op ?{uqAbܸz ²% K~ɿz[*|+wQo!lu*8u&|Y2׵Vk&fH3_x4x5nAmPe6Ykr%ܾڨ"'LͬEwSp[x.aŖd0䏵.U"{=Ng#Z{"<?w <3dX2$C<^ VrEmRŋCpw6wj^~\3 @蕐޷38+CTcSI QOB f4]=N,74t'8AC~󑩿ZD }OͰ*VV0ؐ66]XAn&Fe`=DfH5 EEbl6Oj,O떴_O}̫ȱKf47 6ُ΋Q=tL6Xb+E.}^c7X|_N> .u bQ赵6(Tu\ڮvvxStsv)CAi BT͇uhpaAMr4 @pP:P-v ecɍB0wՄ{nK<9W8[i~uf?]Aܝ~(S+sѺyhxL'pkN]` .?Ye%)_j̙MДc DS0aۯnЪ& h䧌~ϋ6m \++6tș4zY56q9BJc껽!Ѕ>lBI."\۫zi5U#C`(==:c99Tp {:$nz[ӣAGSemuѩQݴ+)鰌y ݲjO3l#k俗}'^{#%e 4s]V& ?Su})^8VەcZ :ɹ{*I9 xL@jVCQ1X4,\TX3ң@3&"Wԡ_ؓ@.7ghKN7B?*"n!لX%"޵QA)Bᱠ-ĸAƜ?yֆۡ+#€[>< Zy7OƓ=bh! &V*G Nm*] zg Q҈8<.m* $/0%-~XDHgFwјcsyzԊl:񰜸yO2PezNDu @AvUEx@LY{!!卓n<޻|Vڴ` h֒KMI vP)ȏhxM\"|9Ty^A1elS&MѪc!Z(fZt{P '+C/?' Kʇ:{[7&}0К~4Y ]NJ8n[y(PosfLgW)d0>ͦ킃=]T0h@>UNjʲ|1/;ynC!rc)*ﻣG$O8me`RZOlz(QW0L~O&[yY$`whmIS4B1FL(Y~^T_Os*K&^Ҝ0ؾS`QЧ5^  Wwvx+.L˾럄' P"UCL9Uc\`DX'#hw!N@nmfU0pfSZ߮o|Ovۯj;A}A6--H^AbI1f1k/~vQ2gAj7:Jh2;2kG{Itj@66mϬQ"ty:xΝ"4bz r:3&sktDzw7o7c/8f4q9ԽNQTI@{=L2%8m릀yHU^l<%ܵA iس؏ӆ4Gvhc7-6gvVs+4 er4"ݚ}zM1hD8o!r> W&XieR9Ba(!^kՊo\vDN`79xKTtMjj qiغ3E1vЇp%֒D &Mf(8z=6+`e\ju-'x-@%F}]bQc"`Y-׼ {-?qՀjC O K&lx()=z&|̑?O3Qfy}bՅܚ> /zP!5Eه0/Ľ:R˥>P.hZkgѺBq^wX}g`\է(׻aU%~"{U,RUb*N`x߉WjSŸ]=c7`Wͬen񗦖_2lPk(H"݁qytd=ϼ/dhF VIG?@gkӗ{ `ӄYD WJ>a0]~qlZ``5:HŌGB{V1Ӈ#5:K}@uFJ\f\y/Y1]j͒`J\6ѲP:ޥgƧ)Ҧ A"9qϒaw[ޑS8E&m$g_ne,br?VC.no#^40W^%Xdhۡt3 z]$n@ ?` t43~sds\6F|UKQlH7>Q, D fxw];V58w;PA; e A4Yxe3vWG~pws I8tEXqL bl~NĮ007̧|b3^:W1–蝏-Le@N,Jpi קH6(Q *VZ)5)1 &8VhrZ kN:#2d/0-&KUxt򙹩GYΦ`Ef4Fz ۾$HAT7 "QVҍBɰSܢH, ,ZP3}=H]rX5Rp/pj ?ăhTl:kY|\e_aM!1lLCH ى@vL~y0'.c}}!o!cCѵ_y,}T7+`15^~9knr(4FL2N{%ii8ZSL*0QV&9I$r|a|wubKơ/u* KS(@ '>z[$^~"UWjпUvu/*"dE6䱱#{yNP ?Yd_ryjx'†yo 0\$ܐ/2:l(07:V;;~n5w4Y Ej+Dol( `O $iɎG?gNP'Z%C@π֏Kǥj=wqLʧqI|e@aά%V+p1/e9oH󨒗F+8}hDi(, m@q& ˕^v7;`$6R?Zz;$i_؉|u@UmLofZ Xr먹Pe"zo+<a)K /ʳ B heE|d{0LPϑB {~NVKd_T[x'd ;i% fLPkMFz{4?I*'/!mCqIR UGueLr xfH,32jxGlnhÇ' ܚ 4-ϿlpM,L] S[9򔒵/]UF"̍\n rPK62uzdy9xBήΐ%, Kq P@tIݼМO`?L@n%iJteU,9\E. *|U Έ-ߑf' $n(C 3+҅< Lue tesH75 xpw.ubΘ875zx&vd:ҲZIF8~CN`.gEշн 1c&Tz |cv!D:"4'2b%2᭘]ОFMǺˣ#l_b7#nnj{*ZѲ"9ߊN 01\?.kR P#E6R –i+[FEqm~&~Y7Ni| 866'߯dJcxZ?xS`]:Hzb=?_?E [/hP00aLKQP/CɼJ87BTTht;EYdRӳ-*`j5PLXժ;4Aɒ|9(KU[$mSg`vR|ۮ./敖.+(p!jEJ@G~ A=bZ!\9/PeאV3@̀-M cv+a'+WgDRyrq?՝?HHmlL^Y`XBkǽ?B]yɏ6INɖڂ&mn%8(C'@):et<"1x=tL8Of7 ?kbF!9 GɤG_"<.+f q37 11 kHIМ[UH+Z&*Z[;D2y ̫e.UNXC*s@hUrYB!&O[! N}ٓюS9cG׼0C]̒ &E3гJ^bK~}% )̤glTt]j-9MI WO85huU!%<C Hn 08Fy*%玈WyvH]Y 8j=Z~v ;b31j S .t)]T)({PֻsV95F?  \T:0#>zOvCFsC-m|~E/Dd'0mEkݢ-#CZth%KA"BhJ45&Lk;f~.qSP5Ty*S=P/C<ʢht x> ۹ƒ0cN[*YvP]K@fJY>7Y2 &-ovٻ'xE5|e<7=w{O73;@qF|धt(e7pٹt:xtKTe ԩָ7^/TV[x&fY/ב=d,v:`s@6?P'!l\rΝx18aܽ+5Q~R,]ru?xQ*UjJ8 RT& [Uv>9Ö8GLp9 g?h筨8YINW]{4%zA.#{ʙ>EMG{~UB|{ w:3*3%2|E=}pwhٌ 0q t[S=cS# mǤ.1"pᇾYWY//MxL\&07O;2]ǥ6˃L"],`yVL94=]{ {7`<4 A(evNԙHB nO=ƫ;F+)GO'oK T˳ѫ_b*|:z,vjh2 FoZj*{K.b);S}ۣjiĸo`֥vɦqvClt!iI 8տ{=}JeiU`VCD YX;n#0XnUXݡӾ覧k&~fvG1mp>\n"g;A,E&)Ʋ0PhQ QK9x7Oؘ]EGG ; z R>Qo? eHuLG=4X?HRɆ*K @v |ր3ixL#% m6QD3FH_?ǬávN} NneeVۜnjm}bCR~057 LӝX^ rM)k|"7ٽ  |!j:{aD]Q^&"9$\lR1O@B$FuM;%I:DRz73BY`~CG=G+:X=͚s[8\T2vKLh ]0FZͮ 5xc?WiӒ^@E{l64L}%-y3[GEUv$IjO˓{THԊȇ(0##IGbrTaNeTn ^b<Sh~` uD12ҡZo5rMZn+ 4Л N2N)LMp=5n]-OigU VvpЌ4H(pW cEfc{.]`xU+Ł!lcf*Gkm\?kA4 u%y}|x){j?B'Z-I^0 "1 d`\: FB#Af%R4h++s? "W@?V X8P Lߣy ~ |.t]e%x) Pay"$o-mL<{M]as 2-|zU Z좢Lg:#1. 5 LQMcLmPb pҽȀN{xq[pn  d:LYPFj7Bd+\}eY،v5S*9GA`s6ˆ_[#shIgvaMj“YҚc4:D%r`W(L;\"2CBۨn8VW1L@OWgS$]vk*Mtwͪ0?_*A }Zh9$ĦyJa_qO_"tsܟJO>f17Iը'EߘKw՘a⪕|é(o á.;@su+hRő3(7Hma䛦K)q5)F݅Mf"9hWDWf̅{FPx %kW`_CS |ץ7?K=(_ahN41~A4eK[~N69Jh$V|%2萠|yQ CqQ<$B=s*m'eu#D=Jpʕ̔i[q!6'Eewy~JeLeA$Z_'T4ė$5ct #䢫T\G6 cKw A 6kJok:0e;υ=`=$1F]ݦ$!>#Q#q"nfgV`OjPh ` )ZW` 䁪3=I쌉`wP3#fr`/njJG ڠgTCZpؿ<,bn=k?yh& oeOSض =J']oi'7Vzt_v`1#KiC(@OZRp0~K~LGm5 k`Ч?It\hv2j K8Ɍ LC$߂kߨ>ZCXebð&24\$5 ve`}~UKO_NR8ʁ5txJ>WKs \ȴxiX?Ndwu>4+CĔ/7PKHe*ߣ)0!m] ;wN?m# T)ƞk@{~ckʞ#ԶxMyp"VpP~:u 8D/Hl:cPEJyx2A}&gOBAW?U36N*4P.ya"KfT8h%QLXzh/4^jp{k]V;*E,L[ JV2bR2H rٰ;_E]p[2jh[ya׀ο=O :.Zj*~Q\Pbir#2 pLgՠiX5nN6z+jPq )~M(M &yA ?|Z=| Od\F] ?4ljrc& "7Nk0N`'[ML߸rH!yOhpq/e!6rCe@a,u|9)zXU0(\x;e2"~(L]pS+;cpdwYߎBab1a X(/PaD?}&iΟF u*ʁ&{yPIsQ*^g I*WB;>lީ4t0D^p:҂K|/xUe"eLmڅ0;<Y{N|gnUIil P(`u)Z-_+2;?־݄ o ``q40.G3*@^:RY@"-'#Z?S-s:EcӒt_Iόgq2iڳŜ%6,de/câ3)Z}ao`$BP+,&'O ZQ/Rn*i^m8bj Y=RBn?$;]Xs1;<=:Ӄ:*ى+{$5;}JU>zC8ry =b jT`#FF3TU\^@qOXb S>{=QaN=п{ dC7:ny3`kfU`fDBZ̦^,#ڰ^/U!Ukkz\,,RWS̪"MmWawJH+xؽ|]UH[,ا+ZzI⸨k'XP=Z2dsF&[o7"wݢhtvg a(܀t_6ANb52mcᆒ}yW/+  Wc/sJ4Q0 .p q qm'q)o4eY;^MkQm1~hKh+~dpmG WY E7l?ǭnk덉[{|]rXɞq$lzFxն^>!?{g9GPYƑZ9O/i30 ٪3̧JGS 2I KIZ 3"C%$I4KDAKǽ"l{'MC[YF6$z@XQ4U \<DEٶKj#БO-sJv%NVQٞc <ܷa26 ?u'QYtR ?x]QE,&{|ɸ;O ‘}:M?CK$%ߧENA!(LFnl\~t`4T㞤ZSz֭STv5}3uJj+.mp".B6F#oX"6h6uKg֣j:4|&# 8 FkEB 8ffNXkx 0{.bj{vڂQג{ŏ`2 :3gF}l樯:F_~00Q%Ě! a,t!T8'Bpz>Hc5EL2^ʽoQ*߯`Uܯ!C,_x Lc@qsQђE!ci*JHW3WBڶėz[y_0]y4vs6A]&BMbjEh-?Cwf|~ un5ΉK4%P&tfud.&]ĠƏ}@"17u/[qz7Φ觺JtZD栞^%KwzV90]]hLtefM^lrWٕHɩ\݉l7#.P1ېΟ!qϻ}b@&3VUT{͛1g5z} 0[T((']Q\|xA' /:?=M`Εg&»D- 99=4|fl$"WۂuHS +Ѯ&kI ;Ȗ&h bܻyCl COh]ԍaiKcA,k`(.3J-8d%.?܋NP7jdt+"r;jkIQĩp>l۔6C)П~^:Jv2Z ӺWt$F"Z *&k+~(wbS#Ug(1$G(;L9:ݭ1V'S\q`yIa=Q=tqSb2jgLR{V'n vހ1FOm'ƓID3j ZDrN wv`/~b_O oYH^$#ob/.UԮQZ_CI2r/eSִ06'寰޹ ʴi1n:'mF1D F,6j!A)>S샏d6gM-:qڻbI\}VΨfd-g#fvK e)!:8uw.&D/YEwAR"0dkk~rY`b*gޢ!Eatm~V@^\+|tFL,E蒶{AN` WD6)ڹC:=Cw,+Vƭ63BsFc Kb03L7aJ;h9IA+\Wekg@Xw Ҥnac ibOAoCM]:aj N7N'h>e3&O)eT( .nuME:!:gӃWT$ jw食a"HG='{ݖ,y݈Y(6p@XY90M31:QD#wQSMְĸ׷P2Tj2r2Wk3F2dH]Jͻ߀2<ݑ7>8 1@,`[w-'%t OiTVn|i%h yov#[`iߘC ߌiTTa 0ygv٣+o=fݞ \;xDG-H??>N#+8Gl; 5ĂRɐƮaRoiKqL$bbl;_*WϳmǚGz/YGk%+5 5<[hxLԚ1#Tr"{'t\|uA C%.OqNL'Q N+s~,PURC6O,< "P5d`|}dVŖدo=A|ɳmJ}nEM%Dya6҈+Rxu>C2$h?T6p [W)"8Ѷ`Q!*?6Gz]ksXRVqL}RTVp>!^n7ɘjZL*!Z=NM|o6=AejyCsbj`pɑ)vN eTՆøJUhGFS#.E€Kջls5X[z[)RANĪ?vQ_+i3lR(9pwbW̜͑cGk8t=TrDO{($u)F`9z}dFU=W#[/VnϬ ,-6pw{INV@nFΜfT!Ht;_{c?Z7]{8cV1 1*MqKo_Qo_t$s8kYp xvf0!qQ֏̘5)-AQMl?.?,K)/lVrR}{is޼GƸ IH/gQ(^C ;0g%ؘ ׁ) aa]Pj =vQeC i5N>HXn>3QP)HRn(Ԧ电7grBZ%$D2$0gm`C otgɒ9l8wϥ#3:\1蒸Ȏo{bGrk|뛛8ظX|ID=ֈǗ53IGRu^sB.[)9j,`Fv~'Wʹ\ӊ+b\<:/ڴC+YLB@.@-kx3uB[;6LVmZ!7,[:&,wH FmX ?cJf(AWy 3XHHdyGoP#{`*ɳg}xfH~o[&aȍl֋#m)Sc$7E jB`t3x)v;l֚ )"CqGV`d־hbYZ^MZ_qj|V."x䃢Ga$H%Mi ]đY%ZC=a.jw&02t=0Y ,ES?^g^6كM kV6L:x \ߓZhtS@χ>zZN"?Sb"FDWď+GܪdjyTLͯ/՝7CU 냼&Aq7 ;/n rHj2S}*1. # BƱz+dzrSk)Wٜ*GUaCv<8\ ?x6j+p0"r~֝o6}c<[\-; =EN0JCf L#=9^CW%#Ÿ3sc4[`/7 O3Aݎ26WXQ &I/' 8c }O*8 KDѝI2s\&ܒS|Vl;̂'o#)YpɅ8B-x^Iun% V/Zjs4tK΋5>xu'u~-hw(lR%=@[Nk A [ǘwlavD'ߦ}kҍ{Wҏ] כzЛlShw0Gŷ"l$+8f^? yPm2ÊŐк0U(f]& 'ТbluxBo#53!QxWbQͽp5ZF%O쫜uR^ (巿*{ohr#@2.5]j$i}R]T>%WSWEf#[(zlERt4`Hù{͑HYӑԕ;ղU-rF3E@>ʅǯFnk%s2>tsHvʻ3%~zY!Q5A#)pw%kc=uS3JAl_i%tn:LcIE H&w.EyxFPDy#t}[U Ef #Ǎ/y룂X4g`Ol2"cm'PhWi;-|U,8@T)YJowEoϢQ%J@G<1xp{[WK;XU"\a!G[6ȬZ^cѢWpؚ뵃u Jlc+"!w!FQtB<0YGq2!JSJ&p]+8#-67Tz_wc g*0n$`]g df_5z^;s#X0$8.[1{I-Rtda}|ˋF!pÚbⰃ9boSR6W6,:7z"XMN\D5 {3vm[M,nk}Fu|KYh͓kjQà#gx;̶\8њv8|sH VԕaoLW12G+[JWCBS+HnTI.i A=ۇeu"'#*gS[|q#_t1J`x^L7SFPS $װ Vm?}4Kkc vT|E`;efׇ=?Kŗ>Ry<R*^޴=YRĐ@qVEJ>K.=2閘mMש8锞7D}2Y)OZYrʻu'MiRzR}t[m M%٫$?IFmw ޺=M.}ڜCl>N+8Clp%ejtgJE>n^E&uPI\Vo%ʘ5-}]40WVY>(qg)Dk0UGHa+6Zp ]ʻf6ZgryC6`J#i"Gɂ۹$.S˒-uZ~TeUcH|Yh< g*Sс.86 дK.׌L iYunY௔XD_?89e/~0P_D1^4,ҳS\}hK9?&'oMb.Q*yH &5*6ov$O|thPhaiϭ+v`?;[!=^A0Kq.2w*2eFJ%)>IygY[,fy"XON*0AoYy @+F-ME$ˉ c?aJH3}t5uw{ W)ߞb(E9K|G4+7c:MyĽK lP4v<~tk~BLfJ > s=&nTUfmQEy 9烖» <(?䄄^i f8@ˊeYT5*rȊ-N!3`a!b&J0J)3:cjQQ#rNoGLt ?;&GR#e~mĠeVJp+$ZGHkqɨ^?pN'KZN6.ubEPB4Z^MeVbyxš~ TBng|q#km>G?\"E[,1="x ut79BMRafP/A5XAؤŀ[>ڈ¾.N?g nep=b6{44ss: h>H@,8YK #B 1Ҋ2nFS%̊yҡќ؅X(u*lB#y`A\XϚaIV}Ao׿oOã]EI$DW?.2.f]O7w-~#$N5)A1GRmgҡE4K!o8md/okcX#ïN759ZS-_H!Ħ%̏[yYKfU΍Yr`A=h[eF!n&)aEӹ򡍾sFER2}0*) eS_+.nwͰQbѣ @܄˘Ez.,w͵kB=zM;w}jfW:b;tBQœOEQ'׉ 3X3)t.q߁a@ \eY@m;/Q2::Z], jH qi0d-I9[-4€˷w<ɒ& y%/ju6k`.jV3J?ݍYv 902 '9OH@WW.*$0V8?\q' >tKZF□3 ]JM5iKN5Roj%!LҝAwvHZ>$^| fL5Jd>$uDOɶ)\ M̻:խMM7 !>P$Oh6=,ƻOUc1\JnW JօJg'-7y̹%"5 M& B&ʤ<_wW> FjRN(!'PW5H¶f +49c'S Bo!%;U}I{V"Kc AB%T.Qlud6!s#΁<9zQҥnȷF lAhk;D} V5l9@-Tt B1$t`C(nevM1Npvݿj58-<4 X|gV~jIrKaR'tamAt%AՐLQs N l+F1"lܗpJu1W uNGZ~{w.daؗ%qjKIKd5rYT셡9 Lpe~KoZfr4`?$M%s_w;,Q0H@ǒt+b O Gf؀Ē9 OR Eidx<寓I$+Ą JRd7kQ9[`."风70=%|?mz>D"p7熗yTrJ 2e1$rqexj?Ǟ@gtVx'-祃yE ٱk;ORYG2kVOggMj|w. *atnP%V%J&xCq0aA{ux3{D" )~JO3#*q"$Y1ԱFv`DHeŧ;G-LA;r`gј*0\-]!IxI2!u0~RbѸ*9hՓݞlZ.% >S<]r-e{#5Q<ഫPG0gl?HJw!,h}A; U0bu/vjC \s$ˋsuWN GMSpc kbI!eN:*ZSőD[Ϡd'Utu=CKMLSkuO6h5kn|ӛ?IUmn pݰ0~HD\)E =䟠R=h&)94*1YLN@xyh .W`'nS䛲>YxVTя뀝]Uo7,<;ImCe1.6fys'-$K~gGB<`\uGBE^0=nxC%aW%q(3zRG9B|$w ۝SE-"ɨ-DOP 9U}0Y0rߦĀnfd,uOKcUC> CfVtNPfzs/` K[tzC<}q-r4H3z,ռ^g!$}|j?-&&ScBUR]Ucgl1xPϸ3?cI3c 7FB>j{53o36Cc-Eb`cՀ7$]S0=ej{L5Y$ xG0$5;9ʫNG,3~#%ovg_0CE@C,(|DdCoYxdNmdvyj n:nuLzuA@F :/f hlb"9TNI#?eYMI( {M 6?o|XV4s%<9 *ύYE p \dr s={6e\s\%x:OݥkaԎDզ/h6iGR4j ղo t"++'?ĆSqޓ 6UfG0@B_W+>(nj‚E`1%dX-ylT5zVN Sg#h S51RjU61.Cc|˶Jѩܴ1JVg&1XU-OT(WdQ %IZ٣Lin},~ F@WLnEK &aAxl8!f]pN&PJ<[v9LP6Nlzmo,$M31ȴLî:mU3MKMK[Eg=Ą%u?Ծ򲇅 Ք<+k" %=(].]֗I]򋀇NHa7|{Fs(?-HIԭT 4,Xθ?-|mx%̯+؉&Qzz9- _6-+/蓬5zQ"g\Ŝa-<)l֟ IaL@ aFfviHd»Ƙ޼z'aA4g3m4(N1 *KT!3]F`)Vg@X2nGl-VDž:( eԨu ~$WOJHs0ޫϏ1}:bN6ï$P4Y.(?B#ds\|+= ߓ}܄%5ԣ%NRWbdwFpzͮ-SB.pW%XĖ.Gj֟; a\alY<#Hr(u!/IȠCðg4y-cYGcbT\,_tZA|LUG:mH)ui;V·Frܠ$<+Z՚k˱1u3cŕR53$H;.nهweFnů@Ն x%9#85XVn st*r&;e#m҈_LyäJȂQ !W*ڃbڏry|0u+m:cD SWķ4՚bR;cDxlNbi=OnOR`w*XbL5yAAEHN|[Gl񥱉0m5ص zod9(,.AǷVWq\4WwtsP~΄:jq*!UzSw:konոrM[ jR??7:*Ru+AE/A(*&tFT$+ ".!&;` s;*"`(EFU q&6yxHb`ͷ1:x6 dK!&E1FUDo{}E.'fVre)UM+ZFf0iB~| SeggH HBj7\ky>3$w!R -j)浂4ň9`vZ 1|t-|_/Soo)~6V"+**٭OwE$J\#iv\m ^8qxMXʶNOȮ-$hU3q>E5d[ *AP%*X\4sU(Jak.-64{ΜZ7چ%o i93OE/X'*8Zj!h{)Ja:\ vZ+G:t94,>iӥ&dj=eq璁mr:,{Ky>+ҴzC;'m,Y3zF@ x(Lr!^c#[O%H2A}BZHq ?NAU>)d⪔ xIv|O?x~%cˡލG^&@V>ެ(爤lTi[)J>ٍɏ >C,d,nVG36 hd}oUB5̳pZ/\R!؎o=2eQz}R+s'Nȏ"qVrBfJ>xGs)d,aճ1pڣ)+ο{q{k!.>Ms` E٣'O}/9mQ"F .v@P$@`u8e}_& *~}`LoG|lz&5_"Sui8{ S D$ߐEmzDd: 7\sb {>b o6Af b]C;_~> A_}VBܡ6W;&4A? A}Cm.dyI)f' d SjPIZfi(kՁTz-C"Ե3P*o !;AL}#o , 7,Z-fig$⁎Jt ۴_P7>^nI${ CmJ_dS7 ~{ԃͳa|s:aaV&pi^dv{qQw\A+4щߚ,Vo9YEo4ѼVG(`E_bWy% ( ⫁M_EuX"֯~qTs(M3<-jsv*3[nFdO  FGE"_kqD:d#WtRG60Ź"(M2 p= 80`/hdV06"4#\ʜ@Ӝӯ @p4S Y71eq(;ً^͖dXH]:KG&47 ʝ^?vQ52PFo_cGRlNCq*=.#Gz! DjS|yUu'ק w b JAPldyX&h{Hs]IQk ~P|GZ>LƏ & ank9Z>l~X߆yar8b^-2PHkbHXOoj-Hk@#k }975gCԡidaKc_被˄?oDA!= aMH@y&Zᴓ0,Y`@Ъ/+jQ9R)Qx%&?xNj-{8ݱRF޵(Z1njL(Q&$sv}+-PLXxIBze~&-frqtvIJdv,<IQ)~+9r M󦋭,UsjJȍ%Gq|YWֵhT/Lܪ|C^bؒ:=@,:h`R ǫ 2_LT'LPfy03{ MSk¤OcVY{W=IoBl0jv^h!ƃN˓+Q7%sdcؑuN: V!DkP0iZx UnbVu3mvJ [iӱDv1Μ$Tw,T0J%=u>o0|dhܪXFçJq`Ӂ֫`,>K"8~8^!NX.s(O |^qӮ?H'6 Z2) eٴ4F j\.&LƳݹۏCov#G㒗4 SOE_mOM@xIAȴK*\lᴷ 6TW" .yr &0[X;8^17T}Cѹ8[JGŚ@bS[w /Qyymhsɘ.7,O8"蕻fek4|fVْ!?k(A0O\UBlƃ)|@gq9l4P,Ɛpfn,pPBc}2pPB{ƨRIsxoÈ?2}&%^ /½fF<>yO_n߰Ɩ7RXCfq@F\> J1++/`uD=0Zly 3 `xp 1\ų_չexC.:Y"kñ_Hȸ)w]N0s\*h3jޔdH"uo$爑}W3 IhbL3o+㾩~׃/Y *SŠwgB^^gt4(o w wW0SjE?vsaAOyTz(X|R݄˒3>D:nzyLfEo^CqB*FB* +#AoCHϰ#x1ӍYTط:z-+x ~OskYԿ'c)=؞B_^=55 9'n],#TڝG_]+mSWwlczG }G"BgfY^~C10nqŴJh~6Js딎?"& x;O5}k?3ytuޅGIEwYB"k(ͨ|[tQ(??/jZ@Wuo}qQnGLdG~WdJTT?苼DcH?*7L KkZl(6$Vw (D߾?*#.c,?~ UfH^AH{qY`[*7ˊZµ:#Ymg(lH&u(ه㿚r'%UtC͞.mT|q4~+x ρπiOqe7˒>v X9Xw ZїՀ^q=ᥨ讵N}DL$Va63(,Cc.QVGGdC2ըIDO%/ہNt:8W}AF吜ۯwHz~|EOi%f?%FsGOޯD.eJÑviZg~> w^ߘ@rQ&x>F Mm8t.6z|)v7㠂}I5`=ilCN-pk$kj2`+cM%!UiaھKdDDW%g \2t1`65|VhŸ128XۧY\Z%^){aCy|Y ۏU%[¶(NEy{ PP}oS+g==y(V:=O߅A5d$UڛH1A <ﴏ g)9Yaal}{[`UJAôRqCm)k1:ace"DW6QvLMoB^kk1J76h=:Vo_w@˦%WmL oA>F_yhˏ ˰aӔ).1z /=Xhc}[&Bs&6]9yseh=tlp/vӂGїr%'U︲ß+m8 e7iom&pҮ}þx*/+0tWKK`ggq!xMn|FACe ۩`A!ވ~.QR8m[cσ9[;-Wݪ3e'WWLv݈;E{[YE ij`35^DϜ˖] }w& 6BwBPFXD*d_+`M%b8i ;Q=gs2ȕ*2s˧G}ɱA R)z!08NvٮOO?ZO_wkQM(fs7hE &¶zՆt"d8{uMzņϔsS}-7+ƶⶂ j/PS׀*|s';)e1 y,TR0emk=yLs/Ȫ M)vgɫ_'o͙!)Kc N>q3/C)uZY+D=̳&[?:}^CIBJ:&2@M_4d OdGZ"R8k$4x++=1z4ۯ!4).' aАFMe(PiW:5i66Vx 칁-> Eg$vM,a+ [*+jKp%ݭJWI'ColMX<=XFFA]l&xZ h aMjLb 'jgSo9llaf($xHR%Yꋺ53u7amb.ܢ+ŘNax|{w]; Z\'Q=U]i$'*ؕ\B3##Q]e46 Z )c^u!~:~Dj%[{N=͜:P=mJ IC$E1i)4jd|>m,",6Q㰼a,YI;M1nGCϛ&n[^_ 9>[:Luhw/RBPjX` =~zgKOɚskqp@|=4\ID}?f/G&םeЬD}3s"Z7V^O{_bs7ñXof@;F ̈)(iJ=KEMŔX_ ha;,*]9xMt,[Wx'q M9zݑ;5N~ڟ$=*/i*.Ԍ"sz橞@\Yhn}ta*qw&ӌ;|\zZtz۳sk,j𯀀$x=Zs8K06WgѠ#6P,/}:omK9.֣ؑ+Me}:XX"S}um1R@NV:jI(=dE9d,UAD&NyIAYjpr\g]鋡q&r#`ǟŴ'4ʉ}{PB SAq+.$v? Ž/rD<`[DזɲH$Ծܜ1B`z,yN\W?9&oC@edx`3}+pB})F% _P dyx)U[A@ vӽ Qmե 8+g[.(**>I_bָA4dO4]hX&$.7%zto2-\QC 85ë ?MM Loj'a o&}L#{Wc/ rgfk8Hbf2} \夯!/ھl9}j(mE}F+ sןI;z8(JrR\a @jM6\!ʟ9,pocb8dm FJJ,K tv^豄%"#27C?B<%qr𝍓ܼ{ՌIUg 拖b!IL۲D7d;ݝQvV(.ZOƙ~h;XViU_P 1c3?rU&sou+ NY,c.5Wh".69ڬX@yIwfWG3fx)^Qf2 |%.Yc,1freQU\ ֥C|"8l"V0hgQ7}_y `h:q$ܛϖBUef4Nh:/*5`!_@q4UONey4i]݂[^Dyz2 ꢼPģbw</Þٱy V({djT15F(Q.gd栁:~z@ZDܬK{$3?=Kq| VO?]5D-}%;V<'^T3r˘n%|Դ|z8nT]+ 3Q)q䤦0uBy2(_ *nJdPߒfSZJLQm㺏YEWN4) qReB΢Tk nvek"ţ%,1 -n. ׵B|ڏ(kʨOM-f{*ԩ[tkZixIB|}~wGcz;"qZ7LjY0ϱ#[5!;LIö޽/qz(:袠b0ThUXw| |]-SuSa`H?~ysroϭH$a: !`~ VFZDwj+y6*^b(7{L>G~^$!*VӳoaXp X˄Q)4pi1<ѐTc`okyۗ2'4j8_lGljC;Fy>AP X <5gT`I˻",KG2 UIZWy1+0.grol/ ؚƹMߏ~$X xuAy?/{#'5DavͼRVހOVf70C~џX+2̵ +) D? OV85Trhj r mج"ZkGg(_LLS&;p ÷+9[ɴ`~,l܎ # YZ