python3-rgw-13.2.4.125+gad802694f5-lp150.2.3.1 4>$  Ap\~/=„U[r Y$JIqyd$AJnX rSa~pR&{3%`%|"0@fGH٫`MҵQa”Ͷr1aC>{DT*N;#B0Bꆙ\~M;d&_9gӳ2`~g&6*b0[ 6Dy1d #(m]+4UsaZ8`?Ǹdfa99eb03fbbdbb7efbb070ffeaf6271dad3f1bf782d629496722877e126f43e61920bbd85df37137d0ce02d8f9c412c32d18c590\~/=„! 0~\V mt`!=NY 7]90ܫ'il)' XW,DIǦ̷T^r dϩhp٧`Pg##"_O *T#D".3uҜa6l{<7vg]GG $f8쳵GҤͣC^p>?d% 1 Z' @]nt|      (FdD(8t9t:7tFnGHIXY\] ^bcd,e1f4l6uHv`wxy4zTdhnCpython3-rgw13.2.4.125+gad802694f5lp150.2.3.1Python 3 libraries for the RADOS gatewayThis package contains Python 3 libraries for interacting with Cephs RADOS gateway.\lamb71sopenSUSE Leap 15.0openSUSELGPL-2.1 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-3-Clause and MIThttp://bugs.opensuse.orgDevelopment/Libraries/Pythonhttp://ceph.com/linuxx86_64n(A큤\ʊ\ʊ\ʊ\ʊ\ʊ\ʲ7ff80a1a332dc189c6d3c34b545b5b6a0e74dd6d31edaf6d42245875e739a0c205ec69aca53e5816b35c067fd5f64e55f8f71d4115ba01d4c40241ce53dd130d01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546babf49116a7dd337b54326fe46b9eb5f8a208d1bd7786d3586270fb6c72a351b61dc841026ac61f4cc956d0ba735af1f1dcefc2ea85c728707705172634957461rootrootrootrootrootrootrootrootrootrootrootrootceph-13.2.4.125+gad802694f5-lp150.2.3.1.src.rpmpython3-rgwpython3-rgw(x86-64)@@@@@@@@    libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libpython3.6m.so.1.0()(64bit)librgw.so.2()(64bit)librgw2python(abi)python3-radosrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)13.2.4.125+gad802694f5-lp150.2.3.13.613.2.4.125+gad802694f5-lp150.2.3.13.0.4-14.6.0-14.0-15.2-14.14.1\J@\G\E@[[@[\[v[D[{@[Z@Z@ZԐ@ZJ@ZJ@ZJ@Z2@ZI@Z@Z@ZZ@Z ZZtRZo Zk@Z@Z[@Z[@Z Z@ZC@YYMYY@YY@Yχ@YéYzYYW@Y@Y3Y3YY@YaY@YYYY{'@YoIYlYlYZ1YS@YP@YP@YNT@YMYA%@Y9<@Y9<@Y9<@Y7Y2Y0Y-^Y)j@Y(Y(Y(YY@Y.Y@Y@YYYX:@X@X@XX@X•@XZX@XXXX~@Xn5@XOX=mX8'W֘WҤ@WҤ@WҤ@W#W#W@W@W/@W/@W:W:W:WWW@Wncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comjan.fajerski@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comschwab@suse.dencutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comtserong@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comddiss@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comjfajerski@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comncutler@suse.comrdias@suse.comncutler@suse.comrdias@suse.comrdias@suse.comtserong@suse.comtserong@suse.comtserong@suse.comncutler@suse.com- spec: build libradosstriper1 library unconditionally (for SLE-15 mimic submission)- _constraints: Increase aarch64 disk space and memory constraints for ceph-test- Update to 13.2.4-124-g31c2dce74f: + rebase on upstream 13.2.4 release + ceph-volume Python 3 fixes (boo#1114567) + Security fixes (CVE-2018-16846, CVE-2018-14662, bsc#1111177) + fix CephFS regression from 13.2.2- Update to 13.2.2-86-g62b49f06c4: + rebase on upstream 13.2.2 release https://ceph.com/releases/13-2-2-mimic-released/ + IMPORTANT NOTE: this release contains a regression in CephFS which was not yet fixed at the time of this build. Do not use this build on a production cluster! For details, see http://tracker.ceph.com/issues/36346- Update to 13.2.1-427-g6cd01d4dd2: + cmake: no libradosstriper headers if WITH_LIBRADOSSTRIPER=OFF- Update to 13.2.1-426-gd2d4852e84: + based on upstream mimic 510d48e10be716cf61b9ddd51e8bc847288ae15a + bsc#1101262 - ceph's SPDK builds with march=native + migrate DeepSea QA bash scripting from DeepSea repo- Update to 13.2.1-106-g9a1fcb1b6a: + based on upstream mimic 0323ca11569b183509129c180dcec427aecf2a0a * including upstream 13.2.1 release - for details, see https://ceph.com/releases/13-2-1-mimic-released/ + ceph-disk: let extract_parted_partition_numbers return a list (fixes a py3 issue)- Update to v13.2.0-210-g0e990e900d: + based on upstream mimic 4ed78ecf2f27aae1e9eb27f83611285ec7445ebd * bsc#1099162, CVE-2018-10861 * bsc#1096748, CVE-2018-1128, CVE-2018-1129 + increase memory constraint for build workers after builds started failing on workers with exactly 8G of RAM ("free -h" reports 7.8 GiB for these workers)- Update to v13.2.0-39-geb7f429568: + based on upstream mimic f38fff5d093da678f6736c7a008511873c8d0fda- Update to 13.1.1-173-g127c33d64e: + based on upstream mimic dda69eea663bcabc5ad99f5ca8370f43575f475d * fix GCC8 builds (bsc#1084645) * fix python3 module loading (bsc#1086613) * ceph-brag no longer packaged upstream- Update to 13.0.2-1874-ge31585919b: + based on upstream master 510762f51e346836492a0a8f83a056944ee6e046 * add liblz4 build- and runtime dependency * move ceph-disk runtime dependencies from ceph-osd to ceph-base- Update to 13.0.2-992-g418baeac64: + fix ceph-detect-init for recent SUSEs (bsc#1090072)- rewrite README-ceph-test.txt for clarity- Update to 13.0.2-984-g852d3f1411: + based on upstream master aaac83abb516f824f1caef470686b1bffeffa8b4 + fixes s390x build failure (bsc#1089291) + introduces liboath0 runtime dependency (bsc#1089302) + fixes RGW SSL deployment- Update to 13.0.2-819-gf64b021d4c: + based on upstream master 3ab655b55d2b363c0352dfbb90caed2ffcd42432- reduce ceph-test constraints for ppc64le and s390x- Reduce ceph-test constraints on aarch64- Update to 13.0.1-3204-g17e0216271: + osd: fix s390x build failure (bsc#1081526) + cmake: add chrono to BOOST_COMPONENTS (bsc#1086017)- Update to 13.0.1-3202-g7a60121a01: + latest master (dashboard_v2 MGR module renamed to dashboard)- checkin.sh: add interactive verification of Ceph version number sanity- Update to 13.0.1-3023-g71b0480e48: + mimic-dev2 (including notably dashboard_v2 MGR module)- forward port DeepSea integration suite from ses5- Update to version 13.0.1-2078-g85df538001: + spec file: * revert "enable --without-python2 bcond for all distros" (as of Code 15, Python 2 bindings will not be built by default: projects wishing to build them will need to provide --with-python2 explicitly) (bsc#1081836)- Update to version 13.0.1-1987-g4a523803f8: + py3 MGR fixes (bsc#1080758) + spec file: * test/bench: remove smallio bench tools- Update to version 13.0.1-1567-gae149ea5f9: + increment upstream version number to 13.0.1 (mimic dev release) + spec file: * enable --without-python2 bcond for all distros (the Build Service will control py2/3 build via this option)- Update to version 13.0.0-5171-g4d4101fe78: + spec file: * change version number format * define _defined_if_python2_absent if, and only if, building without python2 bcond- Update to version 13.0.0-5169-g26918cdcc9: + rebase to latest upstream master, including spec file changes: * eliminate Python 2 dependencies (bsc#1076403) N.B.: this has the consequence that we no longer build or ship Python 2 versions of the Python bindings for librados, librbd, libcephfs and librgw * drop lowmem_builder bcond and rewrite associated code to be distro-agnostic * move distro-conditional BuildRequires to appropriate section * use more recent toolchain on RHEL 7 * ceph-base: put runtime dependencies in alphabetical order * correct Group for python bindings subpackages * move ceph-volume to ceph-osd and adjust systemd macros accordingly * ceph-osd subpackage now requires lvm2 for ceph-volume * ceph-test: peg version of ceph-common dependency * drop deprecated scripts rcceph and ceph-crush-location * fix permissions of rbd resource agent- ceph-rpmlintrc: add lines to quash RPMLINT warnings + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/crypto/libceph_crypto_isal.so + librados2.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/ceph/libceph-common.so + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libos_tp.so + ceph-base.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib64/libosd_tp.so- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Update to version 13.0.0-3531.g3692e00bab: + rebase to latest upstream master + Add "checkin.sh" script to automate the checkin process, along with a "README-checkin.txt" file containing basic information.- Update to version 13.0.0-3512.gb018e431a6: + rebase to upstream "Mimic" (13.0.0) development snapshot https://github.com/SUSE/ceph/tree/ses6 + drop OBS source services in favor of generating the spec file and tarball using the upstream "make-dist" script + new version number format, replacing timestamp with git tag offset + reduce tarball size from 114 MB to 47 MB by omitting unused parts of boost- Update to version 12.2.1+git.1511279898.8aa892202e: + bsc#1060904 * rgw: keystone: bump up logging when error is received + bsc#1067705 * rgw: set sync_from_all as true when no value is seen + bsc#1066182 * rgw: data sync: set num_shards when building full maps * dencoder/rgw: expose rgw sync status types * rgw: set num_shards on 'radosgw-admin data sync init'- Update to version 12.2.1+git.1510221942.af9ea5e715: + bsc#1066502 * mon/osd_metadata: sync osd_metadata table * mon/OSDMonitor: tidy prefix definitions * mon: implement MDSMonitor::get_store_prefixes * mon/mgr: sync mgr_command_descs table and mgr_metadata table * mon/MgrMonitor: populate on-disk cmd descs if empty on upgrade * mon/MgrMonitor: read cmd descs if empty on update_from_paxos() + bsc#1067088 * osd: make the PG's SORTBITWISE assert a more generous shutdown + bsc#1066182 * rgw: ListBucketIndexesCR spawns entries_index after listing metadata * rgw: fix error handling in ListBucketIndexesCR * rgw: RGWDataSyncControlCR retries on all errors + RGW fixes: * test/rgw: add test_multipart_object_sync * cls/rgw: increment header version to avoid overwriting bilog entries * rgw: disable dynamic resharding in multisite environment- Update to version 12.2.1+git.1509128342.9347aa6662: + common/common_init: disable ms subsystem log gathering for clients + spec file: add %{_sysctldir}/90-ceph-osd.conf to ceph-osd * ceph.spec.in,debian/rules: change aio-max-nr to 1048576 * sysctl.d: set kernel.pid_max=4194304 (bsc#1061461)- Update to version 12.2.1+git.1507910930.aea79b8b7a: + rgw: Remove assertions in IAM Policy (bsc#1063014, CVE-2017-16818)- Update to version 12.2.1+git.1507819941.856710ff58: + rgw: stop/join TokenCache revoke thread only if started (bsc#1059458) + systemd: reinstate TasksMax=infinity- Update to version 12.2.1+git.1507226092.b783a015b9: + Revert "SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL" + msgr: add a mechanism for Solaris to avoid dying on SIGPIPE- Update to version 12.2.1+git.1507108986.dc637a73e2: + rgw: defer constructing keystone engine unless url is configured (issue#21400, pr#17775)- Update to version 12.2.1+git.1506764331.9e2e945bd0: (upstream luminous 9d8acf6f3f85dd1410629cc680474e38f3be9838) + upstream Luminous v12.2.1 https://ceph.com/releases/v12-2-1-luminous-released/- Update to version 12.2.0+git.1506009682.0e5b4307f3 (upstream luminous a931cf68120d99661b785cc794e2b6965d621f06): + ceph-disk: fix mountpoint check for systemctl enable --runtime (bsc#1051598) + spec file: * ceph-fuse requires fuse; make that dependency explicit * drop obsolete qemu symlink hack in librbd1 %post- Update to version 12.2.0+git.1505141259.1264bae1a8: + rgw_file: fix LRU lane lock in evict_block() - bsc#1054061 + os/bluestore: fix deferred write deadlock, aio short return handling - bsc#1056125 + mon/OSDMonitor: don't create pgs if pool was deleted - bsc#1056967- Update to version 12.2.0+git.1504118058.706f78da1a: + fix ceph --version to say "stable" instead of "rc" + spec file: add python-numpy-devel build dependency for SUSE + bsc#1053836 * Revert "osd: adjust osd_min_pg_log_entries" * osd/PGLog: write only changed dup entries- Update to version 12.2.0+git.1504013812.01ea30bcc9: + upstream Luminous v12.2.0 (first stable) release * increment version number to 12.2.0 + spec file * edge mem_per_process upward after seeing some OOM-esque build failures * package ceph-volume man pages- Update to version 12.1.4+git.1502953626.155adb5253: + ceph.spec: provide libxio 1.7 and obsolete libxio <= 1.7- Update to version 12.1.4+git.1502878199.4183317204: + ceph.spec: obsolete libxio (Note to reviewer: libxio was only ever used by Ceph (for an experimental IB/RDMA feature), it was never submitted to Factory, and its functionality has been integrated into Ceph in a different form. For all practical purposes, libxio has been replaced by Ceph itself.)- Update to version 12.1.4+git.1502871088.edf82a59df: + latest upstream luminous (a5f84b37668fc8e03165aaf5cbb380c78e4deba4) * increment upstream version number to 12.1.4- Update to version 12.1.3+git.1502698163.45fc586a51: + latest upstream luminous (6808af486d3bdce966232810004648502c967b13) * increment upstream version number to 12.1.3- Update to version 12.1.2+git.1501914637.59afe41c49: + spec file * ceph-volume added to ceph-base RPM, where it co-exists with ceph-disk- Update to version 12.1.2+git.1501865907.88dc8cdc9d: + latest upstream master (7350fa65d79b5f0ace427e609565f07be35cfe62) * os/bluestore: allow multiple DeferredBatches in flight at once (pr#16769, issue#20295, bsc#1043399)- Update to version 12.1.2+git.1501790037.82d6a9c37a: + osd: move CMPEXT response munging into completion function (bsc#1047244)- Update to version 12.1.2+git.1501684697.aa6b0153ef: + upstream luminous v12.1.2 release candidate + latest upstream master (e27a78c9ed3984b54a312ced3ad67fcc8f464fc0) * mon: add mgr metdata commands, and overall 'versions' command for all daemon versions (bsc#1050063, pr#16460)- Update to version 12.1.1+git.1501669490.04d0738487: + mon: extensible output format for health checks- Update to version 12.1.1+git.1501501507.6dd9e8fd8c: + update to latest upstream master (fa70335db25f2b661b329d5d8f37039b77f2d1ae) + spec file: * build/ops: rpm: Drop legacy libxio support (pr#16449) + Other notable changes: * osd: moved OpFinisher logic from OSDOp to OpContext (pr#16617)- Update to version 12.1.1+git.1501231943.67577225bc + Notable changes: * rgw_file: properly & |'d flags (bsc#1047977)- Update to version 12.1.1+git.1500447879.e5aac115d7: + upstream 12.1.1 (release candidate) + Other notable changes: * build/ops: rpm: fix typo WTIH_BABELTRACE (pr#16366) * build/ops: rpm: put mgr python build dependencies in make_check bcond (pr#15940) * ceph-disk: support osd new (pr#15432) * ceph: allow '-' with -i and -o for stdin/stdout (pr#16359) * cls/rbd: trash_list should be iterable (pr#16372) * doc: update quick start to add a note for mgr create command for luminous+ builds (pr#16350) * libradosstriper: fix format injection vulnerability (pr#15674) * mgr/dashboard: add OSD list view (pr#16373) * mon, osd: misc fixes (pr#16283) * mon/MDSMonitor: fix segv when multiple MDSs raise same alert (pr#16302) * mon/MgrMonitor: fix standby addition to mgrmap (pr#16397) * mon/MgrMonitor: only induce mgr epoch shortly after mkfs (pr#16356) * mon: Fix output text and doc (pr#16367) * mon: add force-create-pg back (pr#16353) * mon: skip crush smoke test when running under valgrind (pr#16346) * os/bluestore: use reference to avoid string copy (pr#16364) * osd: combine conditional statements (pr#16391) * osd: restart boot process if waiting for luminous mons (pr#16341) * rgw: S3 lifecycle now supports expiration date (pr#15807) * rgw: acl grants num limit (pr#16291) * rgw: delete object in error path (pr#16324) * rgw: drop unused find_replacement() and some function docs (pr#16386) * rgw: fix err when copy object in bucket with specified placement rule (pr#15837) * rgw: fix potential null pointer dereference in rgw_admin (pr#15667) * rgw: raise debug level of RGWPostObj_ObjStore_S3::get_policy (pr#16203) * rgw: req xml params size limitation error msg (pr#16310) * rgw_file: add service map registration (pr#16251) * test,rgw: fix rgw placement rule pool config option (pr#16380) * test/fio: print all perfcounters rather than objectstore itself (pr#16339)- Update to version 12.1.0+git.1500295948.39d2e5f424: + spec file: * socat build dependency only for make check * fix typo WTIH_BABELTRACE- Update to version 12.1.0+git.1500284183.1ed97736ab: + Spec file changes: * bump epoch (not relevant for SUSE) * add socat buildrequires * libcephfs2 now obsoletes libcephfs1 (bsc#1047020) * HAVE_BABELTRACE option renamed to WITH_BABELTRACE * fix a regression in ceph-base %postun scriptlet + Selected other changes: * Revert "msg/async: increase worker reference with local listen table enabled backend" * build: build erasure-code isa lib without versions * ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() * ceph.in: filter out audit from ceph -w * common,config: OPT_FLOAT and OPT_DOUBLE output format in config show * common/Timer: do not add event if already shutdown * compressor/zlib: remove g_ceph_context/g_conf from compressor plugin * core: make the conversion from wire error to host OS work * core:" Stringify needs access to << before reference" src/include/stringify.h * crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy * doc/mgr/dashboard: update dashboard docs to reflect new defaults * doc/rados.8: add offset option for put command * doc: fix link for ceph-mgr cephx authorization * doc: update intro, quick start docs * isa-l: update isa-l to v2.18 * librbd: fail IO request when exclusive lock cannot be obtained * mgr,librados: service map * mgr,mon: debug init and mgrdigest subscriptions * mgr,mon: enable/disable mgr modules via 'ceph mgr module ...' commands * mgr/ClusterState: do not mangle PGMap outside of Incremental * mgr/restful: bind to :: and update docs * mgr: Zabbix monitoring module * mon,crush: create crush rules using device classes for replicated and ec pools via cli * mon/MgrStatMonitor: do not crash on luminous dev version upgrades * mon/MonClient: respect the priority in SRV RR * mon/Monitor: recreate mon session if features changed * mon/OSDMonitor: do not allow crush device classes until luminous * mon/OSDMonitor: guard 'osd crush set-device-class' * mon/mgr: add detail error infomation * mon: Fix status output warning for mon_warn_osd_usage_min_max_delta * mon: add support public_bind_addr option * mon: collect mon metdata as part of the election * mon: debug session feature tracking * mon: do crushtool test with fork and timeout, but w/o exec of crushtool * mon: fix hang on deprecated/removed 'pg set_\*full_ratio' commands * mon: include device class in tree view; hide shadow hierarchy * mon: maintain the "cluster" PerfCounters when using ceph-mgr * mon: revamp health check/warning system * msg/async: increase worker reference with local listen table enabled backend * msg/async: make recv_stamp more precise * msg: QueueStrategy::wait() joins all threads * msg: make listen backlog an option, increase from 128 to 512 * os/blueStore: Failure retry for opening file * os/bluestore/BlueFS: clean up log_writer aios from compaction * os/bluestore/BlueFS: clear current log entrys before dump all fnode * os/bluestore/KernelDevice: batch aio submit * os/bluestore: Make BitmapFreelistManager kv itereator short lived * os/bluestore: cap rocksdb cache size * os/bluestore: clear up redundant size assignment in KernelDevice * os/bluestore: differ default cache size for hdd/ssd backends * os/bluestore: fix deferred_aio deadlock * os/bluestore: move object exist in assign nid * os/bluestore: only submit deferred if there is any * os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() * os/bluestore: use bufferlist functions whenever possible * os/filestore/FileJournal: FileJournal::open() close journal file before return error * os/filestore/HashIndex: randomize split threshold by a configurable amount * os/filestore: call committed_thru when no journal entries are replayed * os/filestore: do not free event if not added * os/filestore: queue ondisk completion before apply work * os/filestore: require experimental flag for btrfs * osd/OSD: auto class on osd start up * osd/PrimaryLogPG solve cache tier osd high memory consumption * osd/ReplicatedBackend: reset thread heartbeat after every omap entry * osd/filestore: Revert "os/filestore: move ondisk in front * osd: Check for and automatically repair object info soid during scrub * osd: Preserve OSDOp information for historic ops * osd: check queue_transaction return value * osd: clear_queued_recovery() in on_shutdown() * osd: compact osd feature * pybind/mgr/dashboard: bind to :: by default * pybind/mgr/dashboard: fix get kernel_version error * rbd-mirror: ignore permission errors on rbd_mirroring object * rbd: do not attempt to load key if auth is disabled * rgw: fix compilation with cryptopp * rgw,test: fix rgw placement rule pool config option * rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() * rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() * rgw: /info claims we do support Swift's accounts ACLs * rgw: Correcting the condition in ceph_assert while parsing an AWS Principal * rgw: Do not fetch bucket stats by default upon bucket listing * rgw: Fix a bug that multipart upload may exceed the quota * rgw: Initialize pointer fields * rgw: fix leaks with incomplete multiparts * rgw: fix memory leak in copy_obj_to_remote_dest * rgw: fix not initialized vars which cause rgw crash with ec data pool * rgw: fix radosgw-admin data sync run crash * rgw: fix s3 object uploads with chunked transfers and v4 signatures * rgw: fix the subdir without slash of s3 website url * rgw: fix zone did't update realm_id when added to zonegroup * rgw: log_meta only for more than one zone * rgw: rgw_file skip policy read for virtual components * rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart * rgw: verify md5 in post obj * rgw_file: add compression interop to RGW NFS * rgw:fix s3 aws v2 signature priority between header['X-Amz-Date'] and header['Date'] * vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 * vstart: add --rgw_compression to set rgw compression plugin * vstart: allow to start multiple radosgw when RGW=x- Update to version 12.1.0+git.1499090920.2c11b88d14: + With this update, Ceph no longer autocreates a pool called "rbd" with id 0 Deployment tools must take this into account! + systemd: Add explicit Before=ceph.target (bsc#1042973)- Update to version 12.1.0+git.1498654198.20d6a47cc9: + build/ops: rpm: put mgr python build dependencies in make_check bcond N.B. this effectively eliminates the following build dependencies: python-Babel python-beautifulsoup4 python-CherryPy python-coverage python-flup python-Genshi python-html5lib python-logutils python-nose python-Paste python-PasteDeploy python-PasteDeploy python-pecan python-pyquery python-singledispatch python-waitress python-WebOb python-WebTest python-Werkzeug python-WSGIProxy2 pytyhon-python-openid- spec file: + removed BR libatomic_ops-devel as upstream replaced it with std:atomic + removed defattr as they are no longer needed on sle12 and newer- Update to version 12.1.0+git.1498478524.117b171715: + include 12.1.0 tag to make "ceph --version" happy + tests: drop hadoop-s3a tests- Update to version 12.1.0+git.1498309403.f4fc02fff4: + upstream 12.1.0 release; for details, see http://ceph.com/releases/v12-1-0-luminous-rc-released/ + revert several pre-release commits that are no longer needed because the issues have been fixed upstream in the meantime + build/ops: rpm: sane packaging of %{_docdir}/ceph directory- Update to version 12.0.3+git.1498202776.b806032985: + Integration testing changes: * add DeepSea integration suite test definitions for teuthology * re-enable several RGW tests that upstream only runs on Ubuntu + ceph_ver_hack.sh: use git describe --match + ReplicatedPG: add CHECKSUM->CMPEXT req translation- Update to version 12.0.3+git.1497426468.6984d41b5d: + qa: add initial deepsea suite (task and test yaml) + fix "ceph osd df" (regression in latest upstream master) (pr#15675, issue#20256) * mon: move creating_pgs and reweight_by_utilization into new MonPGStatService * mon: move most PGMapStatService into PGMap; rename PGMon's to PGMonStatService * mon: mgr: move 'osd df' handling to manager * mon: inherit PGMonStatService from the PGMapStatService * move the OSDUtilizationDumper code into OSDMap * mon: mgr: enable "osd df" on the manager * qa: add a check_commands.sh script which looks for commands with no tests * qa: test 'osd df' in cephtool/test.sh- Update to version 12.0.3+git.1496909744.9f667dc335: + build/ops: rpm: one License line to rule them all- up memory _constraint for ceph-test to address ppc64le OOM seen in IBS- Update to version 12.0.3+git.1496902753.b18dc53186: + build/ops: rpm, COPYING: drop GPL 2.0 with Autoconf Exception (autoconf no longer used)- Update to version 12.0.3+git.1496754880.35cb2861ce: + merge upstream master (b1d06a6b54)- Update to version 12.0.3+git.1496494491.ba3c561a92: + merge upstream master (97d6e150e5)- Update to version 12.0.3+git.1496306960.2db336d85e: + merge upstream master (b19352eec3), fixes bsc#1041492- Update to version 12.0.3+git.1496147556.f1d6115861: + cmake: build boost::context and coroutine only with rgw Beast frontend + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x + build/ops: deb: no rgw Beast frontend on s390x + cmake: delete excidentail reintroduced line. + cmake: link radosgw with boost libraries (bsc#1040119)- Update to version 12.0.3+git.1495849076.4457d36178: + rgw: remove fastcgi from default rgw frontends + RGW: Turn off fcgi as a frontend + build/ops: drop libfcgi build dependency + build/ops: rpm: apply epoch only if %epoch macro is defined- Update to version 12.0.3+git.1495798013.23dd2b67dc: + ceph.spec.in: re-drop %{epoch}: prefixes- Update to version 12.0.3+git.1495787939.3f6446f64f: + build/ops: rpm: adapt License line to Release 2.0 of SPDX spec (issue#20091)- Update to version 12.0.3+git.1495675338.07282a4057: + upstream 12.0.3 release + osd/PG: Add two new mClock implementations of the PG sharded operator queue (pr#14997, bsc#1040103) + build/ops: rpm: make librbd1 %post scriptlet depend on coreutils (boo#1040230) + build/ops: rpm: move RDMA build dependency to distro-conditional section + build/ops: rpm: move python-prettytable to distro-conditional section + cmake: added empty RPATH to libcls_sdk.so + rpm: drop %{epoch} from new rados-objclass-devel subpackage + cmake: fix boost components for WITH_SYSTEM_BOOST + cmake: build boost::context only if rgw Beast frontend is in use + build/ops: rpm: reverse s390 bcond conditional block + build/ops: rpm: no rgw Beast frontend on s390x (bsc#1040119) + ceph.spec.in, debian/control: build/runtime dependency for cherrypy- Update to version 12.0.2+git.1494343993.7527e4f0b8: + ReplicatedPG: drop CACHE_PIN->WRITESAME req translation (bsc#1038063)- _constraints: up ceph.spec disk constraint to 28G after seeing a build failure in OBS- Update to version 12.0.2+git.1493341348.9148e53: + ceph osd: add support for new op cmpext + ceph_test_rados_api_misc: add cmpext tests + librados: add cmpext API + ceph_test_rados_api_aio: add cmpext tests + test/librados/c_operations: add cmpext tests This patchset is a straight cherry-pick of the upstream OSD/librados cmpext changes (bsc#1035937).- Update to version 12.0.2+git.1493291471.adb6a43: + rocksdb: sync with upstream (bsc#1025891) + build/ops: cmake: explicitly disable MSSE 4.2 if not supported- _constraints: set higher disk and memory constraints so s390x builds don't fail- Update to version 12.0.2+git.1493238434.71681fd: + cmake: added empty RPATH to libceph_crypto_isal.so- Update to version 12.0.2+git.1493227670.3396ca1: + rgw: use a vector for options passed to civetweb- Update to version 12.0.2+git.1493192333.3305a0c + merge upstream master (0d368d2c8544247a4aed9c71c74e77b0c6bbfb22) including 12.0.2 development release- revert commit a9a50f690085091bb4446095418237f9fef712c8 in preparation for rebasing against the upstream implementation. (bsc#1035937)- Add ibs_constraints.sh script to address s390 constraints tweak needed in IBS- Update to version 12.0.1+git.1491557762.4e47e9f + merge upstream master (2950ad91d25d0d6e2e3fb6842d5bbc36353ba2a5) including fixes for: * bsc#1030068 (s390 build) * bsc#1031311 (ceph-mon.service not enabled via systemd preset)- Mention bugs fixed in jewel codestream that are also fixed in the current codestream: + msg/simple/Pipe: avoid returning 0 on poll timeout (bsc#1014338) + build/ops: fix undefined crypto references with --with-xio (bsc#977940) + ceph-create-keys: add missing argument comma (bsc#1008894) + common: Improve linux dcache hash algorithm (bsc#1005179)- Update to version 12.0.0+git.1489432599.165c23f: + merge upstream master (0c2f5f7214d2410a7519f88e65ed5273d6480227) including fix for upstream issue#18694 "ceph-disk activate for partition failing"- Update to version 12.0.0+git.1489159457.410e200: + build/ops: fix Group strings for library packages- Update to version 12.0.0+git.1488553020.e902441: + Recent upstream master (3c0af07629dc661aba84e2fef696339ac7171914) + Builds with GCC7 (boo#1025891)- Update to version 11.1.0+git.1486588482.ba197ae: + Update to latest upstream master (3d740bd) + cmake: added empty RPATH to several executables + rocksdb: sync with upstream- Update to version 11.1.0+git.1484919552.9216e9a: + Revert "rpm: put distro conditionals around Source0 in spec file" + Revert "ceph.spec.in: revert Source0 line to upstream version"- pre_checkin.sh: add logic to remove s390 architectures from ExclusiveArch line in ceph-test.spec (rationale: ceph-test is not shipped for s390x)- Update to version 11.1.0+git.1484745543.7b08de5: + Update to latest upstream master (36874c8) - significant changes: * cmake: Turn libcommon into a shared library (PR#12840) * cmake: fix rpath on shared libraries and executables (PR#12927) + Fix build failure in ppc64le and s390x, caused by missing "-momit-leaf-frame-pointer" gcc option in these architectures: + rocksdb: build with ppc64 (PR#12908)- Update to version 11.1.0+git.1484659687.3472421: + rpm: tell openSUSE to never clean the spec file + Enable ppc64le and s390x builds in SLE + rpm: lttng only on x86_64 and aarch64- Update to version 11.1.0+git.1483528076.d86680e (latest master) + Merge branch 'master' into ses5 (Merge: 185bcce798 a7b78620f0) with conflicts: conflicts in qa/ where resolved with theirs conflict in src/osd/PrimaryLogPG.cc was resolved with picking ours plus a method rename int ReplicatedPG::do_extent_cmp -> int PrimaryLogPG::do_extent_cmp- Update to version 11.1.0+git.1481663255.bf42706: + Update to upstream 11.1.0 release; for details see http://docs.ceph.com/docs/master/release-notes/#v11-1-0-release-candidate + move ceph_ver_hack.sh script from build service package to git repo (bsc#1015419)- Update to version 11.0.2+git.1480437645.66595d3 + Update to latest upstream master (boost library is now included in the tarball, so the tarball is much larger than before and the build takes longer to complete) + ceph_ver_hack_sh adaptation (upstream dropped src/make_version script) + rocksdb: do not build with --march=native (bsc#1012553)- Update to version 11.0.2+git.1480105120.6b8e9e5: + Revert commit 8aee8db140bcbd1ffd2a7b571dbbade10bec9de3 because it conflicted with upstream + update to latest upstream kraken (11.0.2) - for details, see http://ceph.com/releases/kraken-11-0-2-released/- Update to version 11.0.0+git.1473684054.73e4b4a: + safe_io: Improve portability by replacing loff_t type usage with off_t. + mon: remove the redundant list swap in paxos commit_proposal + msg/EventPoll.h: add override to virtual functions + msg/EventKqueue.h: add override to virtual func + msg/EventSelect.h: add override to virtual funct + ceph-disk: Compatibility fixes for Python 3 + ceph-disk: Use true integer division in get_dev_size + ceph-disk: Fix bug in FileLock + ceph-disk: Allow ConfigObj to write in binary mode + ceph-disk: Use context manager with FileLock + ceph-disk: Use os.path.isabs instead of .startswith('/') + ceph-disk: Set space_symlink to the path, not file object + ceph-disk: PEP8ify + rgw: rgw file fix bug of rgw_lookup can not exact match file name + rgw: fix the wrong return value + rgw/rgw_coroutine: move WaitContext to .cc file + client: pass a mask parameter to path_walk + mds/mdstypes: add btime to inode + mds/Server: set btime=ctime on creation + mds/MDCache: set btime on system inodes + include/ceph_features: add FS_BTIME features + mds: pass btime in InodeStat MClientReply, if feature is present + client: keep btime in Inode and InodeStat + ceph: break up ll_getattr into two functions + client: move the device bitshift handling macros to Client.h + libcephfs: add a ceph_ll_getattrx and ceph_statx + libcephfs: add a test for "lazy" statx + mds/client: add btime to CapSnap and MClientCaps + mds/mdstypes: add change attribute to inode + mds/Server: set change_attr to 0 on creation + mds/MDCache: set change_attr to 0 on system_inodes + include/ceph_features: add FS_CHANGE_ATTR feature + mds: pass change_attr in InodeStat MClientReply, if feature is present + mds/client: keep change_attr in Inode, CapSnap and MClientCaps + mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL + mds/client: bump the change_attr at the appropriate time for files + libcephfs: return the change_attr in the statx.stx_version field + tests: add a ChangeAttr test + mds: make frag_info_t add_dirty() function take a pointer to touched_mtime + mds: add change_attr to frag_info_t + test: add test for change attribute of directories + cephfs: rename ceph_mds_request_head and _args with a _legacy postfix + MDS: allow the MDS to accept requests to set the btime + client: add the ability to set the btime + client: add a ceph_fstatx + client: extend the Btime test to cover fstatx as well + journal/JournalTrimmer: move C_RemoveSet struct + rbd_mirror/ImageSynceThrottler: move struct to .cc + libcephfs: add unmount function in cephfs.pyx + rgw: fix typo of "minite" to "minute" in rgw_lc.cc + rgw/rgw_lc.cc: fix sleep time according to the error message + crush: don't normalize input of crush_ln iteratively + crush: remove clutter + mds: remove max_mds config option + vstart.sh: add option to turn on multimds + rgw: right parenthesis is missing in radosgw-admin help message on caps + SQUASH: client: request AUTH caps on the directory during create if we'll need to check perms locally + SQUASH: Revert "mds: ensure that change_attr reflects metadata changes on clients that hold CAP_FILE_EXCL" + SQUASH: client: always take a change_attr update from the server if it's newer + SQUASH: mds/client: don't get clever with ceph_mds_request_head_legacy encode/decode + rgw/rgw_rados.h: remove unneeded class C_Tick + SQUASH: client: querying for stx_version field requires getting all shared caps + SQUASH: mds/client: add routines to copy to/from ceph_mds_request_head_legacy + client: properly set inode number of created inode in replay request + test/librbd/fsx: enable exclusive-lock feature in krbd mode + os/bluestore/BlueFS: fix async compaction txn + scripts/bdev_grep: parse bluefs style extents too + SQUASH: client: request all shared caps if ctime was requested + os/bluestore/BlueFS: factor unflushed log into runway calculation + osd/ReplicatedBackend: move classes to cc file + os/bluestore: honour allow-eio flag during read + CmakeLists.txt: use LIB_RESOLV instead of resolv. + osd/ReplicatedPG: move classes to .cc file + librbd: potential double-unwatch of watch handle upon error + cls/journal: add async client_update_state method + journal: allow to trim journal for "laggy" clients + librbd: optionally flag "laggy" journal clients disconnected + rbd: new command to disconnect journal client + rbd-mirror: decode_client_meta should return false on error + rbd-mirror: resync was possible only when image replayer start had succeeded + rbd-mirror: stop replay when client is disconnected + rbd-mirror: option to automatically resync after journal client disconnect + qa/workunits/cephtool/test.sh: fix omision of ceph-command + os/bluestore: use global compressor if possible + build/ops: fix /etc/os-release parsing in install-deps.sh + osd/OSD.cc: remove repeated searching of map + test/cephfs: add mount&&unmount test + mds: s/used_ions/used_inos/ + Add dependencies from ceph_smalliobenchrbd on cls_rbd, cls_journal, and cls_lock. + ceph_test_objectstore: add SyntheticMatrixSharding + ceph_test_objectstore: occasional umount/fsck/mount + ceph_test_objectstore: test shards for longer + crush/CrushCompiler.cc:884 bug fix: index out of range + Makfile: Fix rocksdb error when make dist + src/CMakeLists.txt: exclude parts not buildable on FreeBSD + src/pybind/CMakeLists.txt: conditionaly build cython tools + src/tools/CMakeLists.txt: conditionaly build ceph-client-debug + src/test/objectstore/CMakeLists.txt: conditionaly build tests + mds: trim null dentries proactively + cmake: include(SIMDExt) in src/CMakeLists.txt + mds: log path with CDir damage messages + hint in extent_alloc code + remove wrap argument and handle in wrappers + Hint argument in alloc_blocks + test case changes + os/bluestore: shard extent map + os/bluestore: make nid and blobid allocation less racy + os/bluestore: optimize compress_extent_map + os/bluestore: fix fsck used_block bitmap + os/bluestore: use block_size for allocator unit + os/bluestore: make blob_t unused helpers use logical length + os/bluestore: instrument big/small writes + os/bluestore: instrument transaction count + os/bluestore: instrument onode reshard events + os/bluestore: dump some stats after fsck + os/bluestore: assert shared blob cache cleared on split + remove autotools + test/objectstore/CMakeLists.txt: fix libaio conditional + buffer: clear append_buffer on clear() + os/bluestore: tunable prealloc size for ExtentMap inline_bl + os/bluestore: don't dirty onode if its size is already at desired offset + os/bluestore: remove never reachable asserts + os/bluestore: drop unnecessary separator between fields + os/bluestore: fix key+name sort wonkiness + os/bluestore: encode shard id in single byte + os/bluestore: small put_ref cleanup + os/bluestore: remove faulted debug hackery + os/bluestore: bits for unit tests + unittest_bluestore_types: resurrect blob and extent_map unit tests + os/bluestore/BlueFS: do not start racing async compaction + os/bluestore/BlueFS: fix Dir memory leak + buffer: implement buffer::list::reserve(n) + os/bluestore: do not waste memory on cached encoded blobs + qa/workunits/objectstore: fix test_fuse.sh + os/FuseStore: only flush if dirty + build: drop dryrun of autogen.sh from run-cmake-check.sh script + os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. + os/bluestore: remove some copy-pastes + cmake: make py3 a nice-to-have + os/bluestore/BlueFS: only extend extent on same bdev + msg/AsyncConnection: add const to mem functions + msg/AsyncMessenger: add const to function + client/barrier: move C_Block_Sync class to .cc + osd/OSD.cc: remove unneeded searching of map + Set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: Renamed bcond tests flag to make_check + rbd-nbd: fix kernel deadlock during teuthology testing + rbd-nbd: mask out-of-bounds IO errors caused by image shrink + librbd: invalidate cache before trimming image + librbd: ignore cache busy errors when shrinking an image + librbd: potential seg fault when blacklisting an image client + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package + deb: Moved ceph-client-debug from ceph-base to ceph-test package + ceph-objectstore-tool: add a way to split filestore directories offline + install-deps: exit non-zero when we cannot match distro + librbd: possible deadlock if cluster connection closed after image + osd/ReplicatedPG: remove class redeclaration + librbd: ignore partial refresh error when acquiring exclusive lock + osd/OSD.cc: remove unneeded returns- Update to version 11.0.0+git.1473424516.3b8b524: + Revert "ceph_disk.main: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/" + Revert "ceph_disk tests/test_get_free_partition_size: New unit tests" + Revert "ceph_disk tox.ini: add tests/test_get_free_partition_size.py" + rpm: put distro conditionals around Source0 in spec file- Update to version 11.0.0+git.1473418476.095f67c: + ceph.spec.in: revert Source0 line to upstream version + ceph.spec.in: conditionalize %prep command- ceph.spec.in: enable cephfs_java build unconditionally - new (merged) commits from upstream master branch: + mailmap updates + rgw: fix the handling of rgw_swift_url_prefix. + rgw: ONLY improve code formatting around RGWRESTMgr. + rgw: add support for the crossdomain.xml resource of Swift API. + rgw: add support for the healthcheck feature of Swift API. + swift /info implementation. + rgw: settle /info implementation across other swift-at-root features. + compressor: isa-l extension for zlib plugin Signed-off-by: Alyona Kiseleva + mon: tear down standby replays on MDS rank stop + mon/MDSMonitor: move C_Updated class to .cc file + rgw_file: fix/update rgw_open flag arguments + rgw_file: fix/update rgw_create flag arguments + doc: remove btrfs contradiction + msg: make async backend default + msg/simple: wait dispatch_queue until all pipes closed + rgw_file: implement stateless write completion timer + rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3 + rgw_file: log on write completion events at level 10 + rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf + osdc/ObjectCacher: move C_ReadFinish, C_RetryRead + osdc/Journaler: move C_DelayFlush class to .cc + rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error + librgw: add API version defines for librgw and rgw_file + make-dist/ceph.spec.in: Fix srpm build breakage. + ceph_timer: prefer using directive to typedef + rgw_file: explain semantics of RGWFileHandle::commit + compressor: Better arch ifdefs for isal code + mds/MDSTable: add const to member functions + os/bluestore: fix some #includes + vstart.sh: -b for bluestore + os/bluestore/bluestore_types: make blob_t get_chunk_size const + os/bluestore: use Blob const and non-const accessors + os/bluestore: avoid reencoding unchanged blobs + os/bluestore: decode blobs on demand + mds/SnapRealm.h: add const to member functions + os/bluestore/bluefs: avoid check "locked" field for newly created file + os/bluestore/bluefs: check against locked field during unlink + os/bluestore/bluefs: assert refs of file don't underflow + os/kstore: kill dead code + rgw: remove duplicated calls to getattr + debian: should dh_python3 python3-* not python-* + pybind: silence -Wsign-compare warning + test/ceph_test_msgr: fix -Wsign-compare warnings + test/unittest_alloc: fix -Wsign-compare warnings + librbd: API methods to directly acquire and release the exclusive lock + doc: add graphic for cap bit field + mds/MDCache.h: remove unneeded access specifier + librbd: skeleton implementation of client-side image cache + librbd: blocking parent IO completion no longer required + librbd: remove use of owner_lock on IO path + Revert "osdc: ObjectCacher flusher might needs additional locks" + librbd: support bufferlist payload for AioImageWrite + librbd: add internal support for scatter/gather IO + librbd: initial integration of ImageWriteback to AioImageRequest + librbd: consolidate IO clipping to reusable method + librbd: differentiate between image and object cache + librbd: C_ImageCacheRead bridge from Context to AioCompletion + librbd: integrate image cache hooks into IO path + common/Throttle.h: remove unneeded class + cmake: fix the tracing header dependencies + src/test/bench/CMakeLists.txt: RBD exclude + src/CMakeLists.txt: RBD|KVS|FUSE exclude + src/librbd/CMakeLists.txt: krbd and secret.c are LINUX dependant + src/os/CMakeLists.txt: AIO|FUSE exclude + src/test/CMakeLists.txt: RADOSGW|RBD exclude + src/test/common/CMakeLists.txt: BLKID exclude + install-deps.sh: initial distro detection based on /etc/os-release + ceph_test_objectstore: fix ObjectStore/StoreTest.BluestoreStatFSTest/2 on ssd + ceph_test_objectstore: disable statfs checks on available space + messages/MOSDMap: mark as enlighten OSDMap encoder + cmake: remove unused librados_api target + cmake: replace Findlttng-ust.cmake with FindLTTngUST.cmake + cmake: let librados_api_obj depend on librados-tp + os/bluestore: yet another statfs test fix + Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat." + doc/release-notes: v0.94.9 + os/bluestore/bluefs: use map to track dirty files + os/bluestore/bluefs: update mtime of inode in unified path + os/bluestore/bluefs: drop redundant eof check for read_random() + os/CMakeLists.txt: undubble kv.cc usage. + test,pybind: silence -Wsign-compare warnings + test/perf_local: fix -Wmaybe-uninitialized warnings + os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor + Allow compressor build without YASM + script/bdev_grep: update to use hex + os/bluestore: improve failed csum debug output + librbd: improve image state machine debug log messages + librbd: deadlock when replaying journal during image open + os/bluestore: end scope of std::hex properly + os/bluestore: don't over-gift if bluefs free is smaller than bluestore_bluefs_min + os/bluestore: use _setattr for SETATTR + os/bluestore: make object existence check robust + ceph_test_objectstore: assert umount succeeds + ceph_test_objectstore: clean up Rename test a bit + ceph_test_objectstore: fix TryMoveRename test + os/bluestore: add onode/buffer cache statistics + os/bluestore: end scope of std::hex properly + cmake: pass -DINTEL* to gf-complete cflags + os/bluestore: conditional checking label of bluefs devices + src/CMakeLists.txt: -Woverloaded-virtual is already included in -Wall on Clang + os/bluestore: don't overwrite type if it does already exist and at desired type + os/bluestore: trivial cleanups + os/bluestore: replace store with logger in Cache + os/bluestore: check iterator before using during fsck- pre_checkin.sh: add Source line for ceph-rpmlintrc - move Source line for ceph-rpmlintrc from ceph.spec to ceph-test.spec (see https://github.com/SUSE/ceph/pull/60 for rationale)- Update to version 11.0.0+git.1472455009.a17726c: + ceph.spec.in: drop ceph-rpmlintrc source line + ceph.spec.in: drop epoch prefixes- Update to version 11.0.0+git.1472384770.c9f3af8: + test/rgw: add --gateways-per-zone to test_multi.py + rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR + rgw: RGWCoroutinesManager::run returns status of last cr + os/bluestore: fix whitespace in bitset apply helper + cmake: do not link secret.c if not necessary + cmake: do not link against keyutils if not necessary + os/bluestore: fsck on mkfs (on by default) + os/bluestore: ensure block device size is a multiple of the block size + Revert "ceph.spec.in: don't try to package __pycache__ for SUSE" + rpm: force creation of Python 3 __pycache__ on SUSE + doc: add v0.94.7 changelog + doc: add v0.94.8 changelog + doc/releases: add v0.94.8 to timeline + doc/release-notes: fix v10.2.2 changelog link + unittest_bluefs: fix block device sizes + doc: do not list all major versions in get-packages.rst + doc: add missing PR to hammer 0.94.8 release notes + doc: release-notes.rst: move misplaced line + doc: fix two broken links in releases.rst + doc: add 11.0.0 to releases table- pre_checkin.sh: forward-port insert_line_before() function from filesystems:ceph:jewel/ceph version - README-ceph-test.txt: new file - ceph-test.spec: add ceph_ver_hack.sh as a source file- Update to version 11.0.0+git.1472202104.8999301: + rgw: add deadlock detection to RGWCoroutinesManager::run() + src/common/lockdep.cc Reduce logging noise if lockdep is not tested + osd: fix updating same_interval_since logic of project_pg_history() + osd: drop duplicated sched_scrub during tick() + osd: move methods which don't need osd_lock from tick into tick_without_osd_lock() + mon/PGMonitor: mark dump_object_stat_sum() as static + mon/PGMonitor: calc the %USED of pool using used/(used+avail) + rpm: proper packaging of udev directories + LTTng-UST disabled for openSUSE + ceph-disk: do not activate device that is not ready + osd: update reture type of get_pg_or_queue_for_pg() to PGRef + common/WPQ: add sanity check to avoid potential access violation + osd/osd_types: kill undefined_shard() method of pg_shard_t + release-notes.rst: draft 0.94.8 release notes + PG: introduce and maintain upset + mon/MonClient: should update sub_sent with sub_new + osd: set objecter.osdmap when starts + rgw: fix for assertion in RGWMetaSyncCR + PG: use upset rather than up for _update_calc_stats + rgw: do not try to encode or decode time_t + cls_rgw: fix the compiler warning + msg/async: fix compiler warnings + os/filestore: silence compiling warnings + test/rbd: silence compiling warnings + rgw: silence a compiling warning + msg/async/kqueue: avoid remove nonexist kqueue event + librbd: cache was not switching to writeback after first flush + mon/OSDMonitor: fix potential division-by-zero error + mon/OSDMonitor: get rid of snprintf when formatting output string + mon/OSDMonitor: avoid duplicated calls when determining osdmap boundary + osd/OSDMonitor: avoid duplicated assignment of oldest_map/newest_map + osd/OSDMonitor: drop redundant check of exists() + mon/PGMonitor: skip scrub checking if we can + mon/PGMonitor: drop redundant loading of dumpcontents + mon/PGMonitor: fix potential underflow + debian: replace SysV rbdmap with systemd service + os/bluestore: break down onode vs bnode_map size in log + os/bluestore/BlueFS: do direct io by default (not buffered) + os/bluestore/BlueFS: rename buffered_io option + os/bluestore: add multiple finishers to bluestore + os/bluestore: fix decoding hash of bnode + cmake: fix unmatched endforeach + debian: enable dh_python3 for python3 packages + debian: exclude python3* packages in dh_shlibdeps + debian: drop python-argparse dependency + os/bluestore: fix race condition during get_fs_usage() + os/bluestore: use bluefs_max_prefetch for log file prefetch + os/bluestore: use hex if we are running out of space + os/bluestore: fix assert + osd: bail out if transaction size overflows + os/filestore/FileJournal: bail out if transaction is too large + os/FuseStore: remove unneeded header file + os/Memstore.h: add override to virtual functions + os/MemStore: move OmapIteratorImpl to cc file + os/bluestore: include bluefs space in statfs result + common/config_opts: fix comment(radio -> ratio) + msg: kill unused macros + mon/OSDMonitor: add output field name of average/overload_utilization + test/librados: rados_connect() should succeed + ceph-osd-prestart.sh: check existence of OSD data directory + osd/ReplicatedPG:wipe off param op from generate_subop() + ceph-post-file: migrate to RSA SSH keys + ceph-post-file: Ignore keys offered by ssh-agent + os/Memstore: move PageSetObject class to .cc file + yasm-wrapper: dont echo the yasm command line + arch/arm.c: remove unnecessary variable read for simplicity + rpm: drop obsolete libs-compat metapackage + ceph.spec.in: drop trouble-making divider comments + rpm: do not unnecessarily spawn shells for scriptlets + cls_lock: support updating the lock cookie without releasing the lock + librbd: helper state machine to update lock cookie + librbd: store exclusive lock cookie instead of recalculating + librbd: exclusive lock now supports reacquiring a lost lock + librbd: helper state machine for asynchronous watch recovery + librbd: integrate asynchronous image rewatch state machine + librbd: image state machine now has hooks for lock requests + librbd: interlock image refresh and lock operations + librbd: remove unused refresh request logic + test/common/test_util.cc: FreeBSD does not have distro information + README.md: replace package build instructions with tarball instructions + doc: fix singleton example in Developer Guide + rgw: delete region map after upgrade to zonegroup map + rgw: fix period update --commit return error + cmake: use PERF_LOCAL_FLAGS only if defined + tests: populate /dev/disk/by-partuuid for scsi_debug + ceph.spec.in: don't try to package __pycache__ for SUSE + doc: fix wrong osdkeepalive name in mount.ceph manpage + rados-striper.sh: Use expect_failure and conditional stringmatching + Revert "ceph.spec.in: ppc64 build in Tumbleweed only" + jerasure: include generic objects in neon jerasure lib (like sse3/4)- pre_checkin.sh: fix package files path rewriting- _constraints: tweak values to pick up maximum number of OBS build workers- Update to version 11.0.0+git.1471969747.79ca12e: + cmake: fix declaration position of WITH_TESTS option- Update to version 11.0.0+git.1471959548.f013b97: + rpm: Renamed bcond tests flag to make_check + cmake: Use WITH_TESTS flag to guard the build of ceph-test scripts/binaries + rpm: Added ceph_test_package bcond flag to control the build of ceph-test package- Update to version 11.0.0+git.1471605408.9203335: + ceph.spec.in: don't try to package __pycache__- Update to version 11.0.0+git.1471601504.f312e7e: + test/libcephfs: add the necessary judgment + test/librados: add ASSERT_EQ & ASSERT_NE judgment + rgw: optimize the usage of string.find and some indents + rgw: patch manifest to handle explicit objs copy issue + rgw: adjust objs when copying obj with explicit_objs set + rgw: adjust manifest head object + rgw: fix the error return variable in log message + rgw: fix trimming object expirer's hints. + rgw: fix skipping some objects to delete by RadosGW's object expirer. + rgw: ONLY improve code formatting in rgw_object_expirer_core.{cc,h}. + os/bluestore: allow csum verification disable on read. + os/bluestore: add csum on/off test case + os/bluestore: add store statfs parameters to bluestore perf counters + os/bluestore: add perf counters for compress/decompress performance measurement + tools: fix the core dump when get the crushmap do not exist + librbd: request exclusive lock if current owner cannot execute op + src/global/pidfile.cc: Assign elements in structures individually + rgw: fixes for period puller + rgw: for the create_bucket api, if the input creation_time is zero, we should set it to 'now" + pybind: Rework rbd/setup.py for PyPI + pybind: Add BUILD_DOC env var to rbd/setup.py + doc: fix rbd map format in rbd manpage + ceph-disk: change ownership of init file to ceph:ceph + cmake: Also build Python bindings for Python 3 + pybind: Make ceph_volume_client's syntax compatible with Python 3 (just so it passes the bytecompilation step) + debian: Add packages for Python 3 bindings + rpm: Add packages for Python 3 bindings + os/bluestore/bluefs_types: fix extent operator<< + os/bluestore/BlueFS: do not op_file_update deleted files + os/bluestore: print bluefs_extents in hex + os/bluestore: do not track bluefs_extents via freelist + os/bluestore/BitMapAllocator: align to min_alloc_size on init_rm_free + rgw/doc: fix typo and indent. + mon/MonDBStore: fix assert which never fires + osd/OSDMonitor: count pg primed more precisely + doc: replace cluster name with cluster-name to avoid confusing + doc: fix typo maximum -> minimal + doc: fix command format + batch is_allocated bit checks + cmake: Move Python detection back outside of pybind + doc: format 2 now is the default image format + rgw: Rework of s3 v2 local authentication code. + rbd: bench io-size should not be larger than image size + doc/install: Use https:// for download.ceph.com + librbd: fix possible inconsistent state when disabling mirroring + os/bluestore/ExtentFreelistManager: move default create out of parent + librbd: new journal policy to disable initializing the journal + librbd: permit disabling journaling if in corrupt state + qa/workunits: support filtering cls_rbd unit test cases + os/bluestore/BlueFS: _should_compact_log + os/bluestore/BlueFS: _replay(false) to dump log file + mon/PGMonitor: move C_Stats struct to cc file + client: don't use special faked-up inode for /.. + client: add a testcase for "/.." handling + os/bluestore/BlueFS: add OP_JUMP + os/bluestore/BlueFS: allow log position to when doing op_jump + os/bluestore/BlueFS: move metadata dump (compaction) into a helper + os/bluestore/BlueFS: interface to get bluefs space usage + os/bluestore/BlueFS: init in header at decl + os/bluestore/BlueFS: assert we never extend log at flush + os/bluestore/BlueFS: use hex + os/bluestore/BlueFS: Add sync and async compaction + os/bluestore/BlueFS: Helper functions for the unit test framework + os/bluestore/BlueFS: unit tests for log compaction + os/bluestore/BlueFS: Cleanup unused interfaces + unittest_bluefs: make flush_3 test device larger + bluestore: initialize csum_order properly + librbd: fix possible memory leak when image open fails + script: improve ceph-release-notes regex + rbdmap: specify bash shell interpreter + doc: added rbdmap man page to RBD restructured index + librbd: always respond to "release lock" request if lock owner + rgw: fix radosgw daemon core when reopen logs + qa/workunits/rbd: demote/promote image on same cluster + rbd-mirror: include tag tid in bootstrap debug log messages + librbd: separate journal::TagData predecessor data into new struct + librbd: block RPC requests when demoting the image + librbd: normalize journal promotion/demotion events + rbd-mirror: demote/promote in same cluster results in split-brain + rbd-mirror: prevent syncing to non-primary image after failover + test: fixed unused function warnings in unittest_rbd_mirror + doc: remove the description of deleted options + msg/async/Stack: add abstract Stack + msg/async: add PosixStack support + msg/async/net_handler: let set_socket_options return value + msg/async/AsyncConnection: support NetworkStack api instead of posix + msg/async/Event: debug event address when dispatching and executing + msg/async/Event: remove event wakeup flag + msg/async/PosixStack: increase log level + msg/async/Stack: disable smart thread spawn now + common/ceph_context: add prefork/postfork wathcher support + msg/async/Stack: register fork watcher + msg/async: allow EventCenter::set_owner reentry + msg/async: readd set_priority call + msg/async/AsyncConnection: fix _conn_prefix racing when stopped + test_async_networkstack: add networkstack tests + msg/async/Event: remove global_centers assert + test_msgr: ensure wait for ms_dispatch executed + mon/OSDMonitor: add sanity check before setting use_gmt_hitset attribute + osd/OSDMonitor: drop redundant null check of max_failed_since + osd/OSDMonitor: drop redundant check of assert + mon/LogMonitor: remove "host" and "fsid" from handle_conf_change() + test: gcc 6.1.1 complains about missing include: . 4.8.3 does not complain about it + rgw: fix flush_read_list() error msg + cmake: Fix mismatched librgw VERSION / SOVERSION + cmake: Add -pie to CMAKE_EXE_LINKER_FLAGS + rgw_file: restore local definition of RGWLibFS gc interval + kv: delete store after pg destructor is called in OSD shutdown. + kv: fix iterator invalidation in memdb. + kv: fill 'm_key_value' after 'seek_to_first' or 'seek_to_last' + kv: fix iterator bug in prev + test/store_test: fix incorrect prompt given by stash callback + test/store_test: drop redundant transaction of callbacks + test/store_test: avoid dynamic allocation of trans + cmake: recompile erasure src for different variants + rgw ldap: protect rgw::from_base64 from non-base64 input + qa/workunits/rados/test_python.sh: Allow specifying Python executable (through an environment variable) + ceph.spec.in: specify local sources + ceph.spec.in: ppc64 build in Tumbleweed only + ceph.spec.in: add lowmem_builder_override + ceph.spec.in: add Prereq: permissions to radosgw package + ceph.spec.in: remove vim hints line + ceph.spec.in: remove all mentions of epoch + ceph_disk.main: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_prepare: s/get_dev_size/get_free_partition_size/ + ceph_disk tests/test_get_free_partition_size: New unit tests + ceph_disk tox.ini: add tests/test_get_free_partition_size.py + ceph.spec.in: replace pwdutils dependency with shadow + Make systemd-tmpfiles create /var/run/ceph-radosgw at boot + rpm: fix ownership of logfiles in %pre + Revert "rbd: update default image features" + osd: munge cache-pin ops with data into writesame + ceph osd: add support for new op cmpext + rpm: make lowmem_builder code much smarter + rpm: add procps build dependency + rpm: modify optflags to make debuginfos less huge + Revert "ceph.spec.in: add lowmem_builder_override" + rpm: lean_debug_symbols bcond + rpm: use gcc manpage terminology for debug info bcond + Revert "Drop any systemd imposed process/thread limits" + Revert "systemd: Add systemd sandboxing to services." + rpm: be careful about build parallelism + rpm: divergent java, ocf conditional builds + rpm: fix _with_ocf + rpm: drop obsolete libs-compat metapackage + rpm: drop obsolete python-ceph-compat metapackage + ceph.spec.in: drop ceph-brag and ceph-post-file + ceph.spec.in: move cephfs-* fsck tools to ceph-base + ceph.spec.in: move ceph-dencoder to ceph-base + rpm: Moved ceph-client-debug from ceph-base to ceph-test package + rpm: add udev BuildRequires to provide /usr/lib/udev directory + rpm: Remove trailing whitespace in usermod command (SUSE)- Update to version 11.0.0+git.1470997027.9c9b8a5: + doc/radosgw: remove reference of purge-temp.rst + doc/radosgw: fix the table formatting + doc: silence sphinx warnings + global/signal_handler: use sig_str instead of sys_siglist + librados: use bufferlist instead of buffer::list + cmake: cleanup Findgperftools.cmake + cmake: cleanup Findleveldb.cmake + cmake: cleanup Findxio.cmake + rgw file: remove busy-wait in RGWLibFS::gc() + Lowered third example to keep PG count lower. + run-make-check.sh: pass args to do_cmake.sh + ceph.spec.in: specify local sources- Update to version 11.0.0+git.1470355272.6fed82a: + initial fork of SES5lamb71 155351730713.2.4.125+gad802694f5-lp150.2.3.113.2.4.125+gad802694f5-lp150.2.3.1rgw-2.0.0-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txttop_level.txtrgw.cpython-36m-x86_64-linux-gnu.so/usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/rgw-2.0.0-py3.6.egg-info/-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:9807/openSUSE_Leap_15.0_Update/f7a67b68b1985c4cee337b4808b028a0-ceph.openSUSE_Leap_15.0_Updatecpioxz5x86_64-suse-linuxdirectoryASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=888dba12d26fb8f0e1f7edbf29b4a4f5bf643124, strippedRRRRRRRR lhGlpz|0Wutf-846fc8185e1f9eaf467f98c0c439a5da40a7efc49e1c391afa82b34370b218ae6? 7zXZ !t/o] crt:bLL ڗ^V%o2>gmHQryC,) >4B=!uBw\K5`M>kEa 5an˟V V*Q =RZ߉+o6T(X4}A8{$I E:h z؏Jgj'*|1RItMZmzfnG˗?1|^I;g:ba4c3ÆYHS3XIQC_$P?v86" kR~X'/0YukUќ JHh~=zoORm~쯩~YM( uKNnۥma un&xM?ƃ6ux/?H-aPwCn"p>E+]?qpaxYc.ZgQ ;v㎤c O?Iۘ[b,e5F3:3 :ATXg+"3ZԮ.$fvr-ڱ `p3Pg5\E%!,E&p2T2BD`]a+ hwQt!QBk,Kםms}۔ <~G 0/:w`_c}dӳ铙ӫׄN'Սު<`O_/d<$F+ ?ҳ^ &O7lSINHdio`sa܉aA`ݚ mYɢoӍJ8A5#pC01x\4ZZCin$#]yb037 Ye#WVrlK s Aj=_٣[Gd#dɝG!ϣb k> Gkasjj,L!j_;oDCYT#=yhIf,wCr)'J˺*k;j,.GW=`_uF)Y76" U"eKר-ѽ, w{<ԟ=Հ*Uʲfshȼ$vq=joaLIxh{h9vm' #9r$2D2 J[ J%֍V턲X+$IFN7̶{im25,FWQ+D-3\4iY9MTBf7Z7g*2a( k)&sRl+yEf0Jxx"vmTd#11<$X "Q42YA@+ܛixzgJj%tn}ǭ_E_ 3 ¯Х;X u0"q>}|۶sݛdj/rW"X1}ENt[lAjT,x#*2P{)} v|q~\W(j孊JV d#2IwHA΄}Tsxl MG;qËeiC t0xYA1F,,3]?n- &qr9'ކMv . جlp)4׾/[)uwTBs$1\4;Vn@U4ܔ:GBok=e9*n]=5+=R㢪8d·@M v_OYb4zcy^O|xkV1tj-U]HW-.Oj84rd-Z|HGcbZMFq/@7Sаk6}|2AZMi.ȲՕ[YOwPG*E>yfK \j8Bƌሃ3A) ܇ z-oiˑBuSzre|LPi|"z$p%wZ!AM>}Q/dî6˽4ONAgXJb_O3(fw:l ʣ$V7nEHc.aQ?@!dCο~=իKg Qî&2 qt*';sv=M/c#>Tr(2BѱmӰ&o"*$8wTO&1vv=FEY{)[۩Ё%og 8^[[LYf><(E[t'm|yJU - z@Xc6Ih(Y,RDPy*Gs9V;B !{i^OwE{619M?6"[LB`ݙ( `/G qC dW,Z~]9gdz?XS!z "w%hZs@Tgr0u=W{FaO$NaSF}ܧ=Bi/>gҚRŰ]Мi@]~GzR2o)+WIxBJ=1 ktձ7{t|+Q3zKX|V-BIxU%i!a|}˧/'s8dDnhW p }h/%NWL:d|4JZ~OPyg2 R;c匨6ẕ/*~UxG*+Yh H<]ymoM܌%hO.0KXzcɷ>"V$%1GՑ[lԞ^8*K^rq~&6qߊPho[#x}BӲ/{ m8ۇ:l,vH0~՚Zܰօ2jD_B!*/Ӂ͗҈ $_dZAP]LxDpQh&iIka .e5:EUdV}Gr ) R{] ~%BB$ U9LIzwXZQ/{ IW#G5R57;qcbb9~.Y;Sn"wX ZkږTD_Ӱ12<(j\HPs>o捱M\Ϙ;}XIyYjERG֎}Vyk<MvL̛TZX/8R$UgoˈpnZU*":?դ 5mxжRSҐRqnow_M\˾_r3ژ|&G; LZ?$MWv5@19 ej9#OO`!3k%d&a+`$90 ?ZOogb-8 +*]#SeC¤L09QO SC<cY?V|fWZvJ̠):K8(0\XhN dp9W}:}&z$ߌ.cYg=;e ]> n2p=4l6u}3Gcj1=v6T6_ߪR_1}呯.F쬧1? Ա ̻3ERGgl mM#1gHQ@AT0>U[m ~ebf!QL܂FUs`eeCe{\@hɛ"~ĆU] ԯ3( >fѲNSArQu2[ *{2. þM-J@IFY v'q\^:PD(`G:wQ+y4~n=y>X uMxhiޟ/j}ۀ9ubolRlz\mRņ8plxqy/- SY(>qdBL1IseT՜V/yuX3=\OC%Țięy5xvy8%"ҔƈYC!N4HbXCBqR_iV5- E2UεAԬPȃv\V_~[cݵ{8L#bUo6<{Uȥc\$fe-=f@,H;ȂXQ\v3TF}/m*,&O3ާDۀxȶ1*BPл'}%(65fƃi<cnZՅ{ڮkr)UrVLgozv KPb*fod1蝧gUV39NGNR,h v>.myo>eu\$_D|[+_offqĜ-k/Z̝H2p#br2fz U8^v}z&--?鷾<r%10B%צײجښ&s[G@ '%Ԍ ,V 6N%aJjܿY" C?O]SӉ!" fkZS?qRfC-qDăN#[ Sy# 5;LbVNW6U<70w}13Bg ,h8_N 8#9끿|MLN^cwi_? Z fiV'zWr9bB(5b=nhA٧gpÌCO% |.D']r ,mR_&-zBY~dֆ:sDάlMDGhg,pW(TN7@{t@=T>[0GZiXo8vqx΍sf [V٭.YaBL4eoLgQk`2QB\O>`c~#ٯpW~\D3NQ}Xxhtt.`u!c'=XBOduz|NJTF\+|"adKV{V3`yFh@SOw=kv4@A,Ȁux*6V7wUyc02]7fBOJ"U>AeGYprT=Cw"pN)$?oAwD}2e h>ua?J]Q'hq?gi<ݥ~ Yk*FF-cl ձjPύ{;aݪU= 2!#!_9G%x.W":Y MFkkQx0f*KWfD^?M|[ߔ",% / \4jJgyo>$*.~@ $*:#-@T?)XcF%Pǟ~U&khL>xYFb$VXVFUVjEVߧY;qmfAYx44'?rI;vk٪еh0#ET5h~~q: r zl&9[S3_zZOQU4D-n/AEFB6 F1zbgI6\H0%xe #}AfMWT6_J>!-LF6Z=@K5!7[y\jY{QeIdEs}"'v$и\0-;mc)n@rN5XAd`4q( 纹.L 0: m,xU0ۤeNLbcg0qTFbf#eҵZ~;k`}LpE+|֖@_\V{>fx~Z}*F4`9a-C-(33޳Ǎ^ώWOCm4Fdꂤ~(%2|:I2+-3X{:,ZhskJp1066Ą!"ĝQŊB c9;>llD\c&uXkIaoMRI_8]^SRMurϳ9~lM.\ŝG PnMQv<ɴ 3CaKVxIˊ=Y#1H/@oJ.$7g-Q/p^ޮ|~t5Fen>tv֖oSC|j?)b mx=ʛdJzI1/7Z:&dC߾?ҳʚ`Dv:gdۨ@0!\HjG &dvWpQjIlubJ.!\ޜ]L2RQT᪼*8`|r^V L[,lFsW+ 05Z9?'ۗmke_s25#[m@n)}֊qG dH<\n_9Ob"k![6tUx"w) `05yaMwfׄglit35IG\N .fa )#<>e+\%g2HYs&>B&S&]<ì񣰓ndˌ^ǤbR1X p`C=ĥ:*.#mΙØOUy =(K/~֧(a>`Bt몯U^߳-4(DzoGҪ.ڊ)yΡcU [I3 X mN35?|+at:kd7d yF"쳵QZP.S.CVqv}zU<g4e7UqVfV_`}%biE #8'9Sv.j)iЛ.)90>DNGym&Fe.RǷga8J|rQZgdrj$&ob˞ #)N&Kq8J _ݰh;#@Abdx`p>l[YVT>1Q&jU( &1=@r;mLod:8JSmdٷ2+_iih(-} iyX(GsyRueo]Q(e5`hȚu0A,@Yʶ7\v0SBd1!IsM?u=`rbrcPܟA+y' YXl~JQG"̵W>YEElS#`n/&]?өDJr #JxPndɞRpMRK+աwL>V~Ń%"7PSf;FOPyTxpCDin)0]I1yR7<SʏxVd/gY܀B˄ c3f@7ŗ|Ls3}Tk&@^$hC0Ϋoo,RUݗu@aGuzk]j{f~}' &μ`qqXX k̥%p .)ף!k>7:a70i=(R'Iai٤.|=z"nZ=JIV/"U꺯!oA.CqhB2)q 6-km.,8mR<=f#(;8F%D ;ker9wGB& {] 2힀G˾XP1+> vùp%շ'f#IKO؆C4)2c;E)֣o^٥2_ Wj.oB~n)E΀B"6?8Ay9d.Ji@@TҸAu?ϴla` Iev0O9?VMȃyg;~ktqP3ڶttoH/ii.Orn"}?ȇwďKi^|EzYFU65e1$( q08\1~ 6q`ӲCGa<-R?V^ 9/nw*_S2ʕnd^i*>O=nhذN-ZaH%P8{Z9v R%QIA=cnzSw,,f~qVcU;]1{ko}*΄zfR|f\^DpXEC6/"k20T}n`0J^)x]b5J(5vy3le^߸n3Ar]CEjY' U塘KJ_q t%èv1V׉qOb͚j?o\ڢe\0\m@ QZ՗ u3>D(a a`'q2>`Qkœo$Uֿ˵Gk\*Ú{|(Ed X@ݺT\v잻u7]ۅFX=p#DCyC49 %:9}PHrS"/`[JnԀ1[篼 j*CiQn/@'7>_$l:o?u t oVF@Oq!> ~0EO3 6[J75.c]Z⨎9qqmC=UNѫی($2~g2Q zX]%2Sq٪4E71t`'h%F(u\(/1 ^gFGGGZS Vٔޏw(ւ6'Sd_dyN9+*`V7Lׄk*`L a5](TJ˧yTPkC%Yz\^Ay^aCu{>T~zOIX JQ(E K^6ܕeM"YHSTR4}TAm"_e{bk_Fʘ_V2@I~,%RD}ú*☯Ua)T3h\j$4m#AYٲ|@3aʲ7@3 jDEtDn_rC3R*Q%䣑 mJX Bǿܿ7nAn\ELRfb%4v\ۣ\[)hSD =B8-.%Inr}Q t\rh n13.mrGt-4K%;÷K؜vlA2RPYFpSˑ{ yu'ݏI1MMi!q-yp79ZSa1%,bπlOڣD@X[pN\65C o7*׃5fZg5nڎ N2 mh`ߙnߑ(@v_eCu`k!9U.Ag U jAja(y!a/&.!z-,ϡ{z:\LTwT $ȉ ;y H #+K$OǸegXPRt?h( #ams1+W݂G 'y(x`;Tk &[A}zd6# t(fd64}ߛu=d4˜hoRhig)(6Pl/6S/ CZ{4n^.oBf>ʙ-%nv^wT0ZQޛ!yu(_1Wt8>QeM @@Y{6sO8~ON~ةYLhǐ_/q)h:)U<}QE啿ɫ:aPzo*EN#O DTC;[D>Eo w1.Pq?7mUet@\֝5p[FfT\1a{ueDZw 2yƺ(K4ᇧ + E*wM:QSx\M\ȋ\ktU}u ^ic`eUBƕ,!:~L+}ogj?c'n`1U@9ؚf̪ӉKjMHdr~ai)[Qe2r_m6 @Mx~GYk;S70cAQB(vP $ EWn[έ[\DJ!+3SّhAӃ6Zs/n-b;3Zql<# XA 6DҸ|GEdާxU^Ʋ#Vp؜7, R[7yށ ֺ{WS~UF UbI"JB& iN@A>¸/'GDt+ <+ ?B5&MdM0BIxn . H iM  fp:& 8<~N+SX$z? 5F|9z.iG?kTUZ0Ͷ >qȕlr5qrcPä43g^ETjKQyc@`rߌU ɚNwmL¼y~!rZWC-!M~Ǫ(τW]O<&'<_` & ƥJ!.|a6(sa0]=A@#mh7[K2;rއ,DZty}(TgfN٭ObI1$5BO&Jd{\<<Jjlɟ,bA#A%hkhagN[2@Ng\: J3*rR>zv42i3lۆv9 W194 @}zւ5J 53&D8zE ͥSD*^9EZ+[S8ԍ/?%; Gp2Һ@i_K|3 q0y[)+{Z.aϽҽIb' 剰(Yŵa=J%ˋ}ɱt -_N?FhZ9]")L_Ր F:<_$L"q L6u_k/v ycsۋPG7n?.A*qT#v<M].Q  D/%$RfpIX@$oZ񨏤W`}.b3~J2*xd@0x_Jɴ"D3bnV1wu*~By: aH]MZ Xr^:k.LZqvw42L.QrL :ػOnCd-=,rf!d gu龅 H`bs/9+!119֑vvRm <]2IɅfqFa|T; i&$Sa@B€,&JJFL[hOBW8W&:w--ƻLD5JÒ2r2l+UӺi9\4$؆2+&rݘMgHY+R$?haB)%)#dz3\.\x =)U.jV`+ lՇa[YؼP;~jM;~ٯh )403l NX1_p&H*5>Z @Id/zQOBEۑ/ˡ5*ԏ,U/e.]ʗef[".=lyC/nqK sXGfe@՚@{P"d#"A~? 5 Yi{c\YXNlYD[z4Howj{"j}wgo b+ovTħ> [$nq<<)ĝ(L Iw.IBZJ#r\5xXA?tޛ>kr+U** X=xOw^[K"kQ"uG ym8PHSp΁+8A&"ܤYƬcdj&}3%KjxBA|| T\yı ř9E]p X?۹,i}V{UE/!b[xq*⷇j(MJJ>9uśH>SBTڒR/%?] 9TjOÅTA zDb/bU2L['GY\^6PbÖaXF"3 h;P#njv~~e,Ǥ5RoLZHE]ꬵ\Lqb1 ԕG3%╦qbsWSMػfZ!"\)eqvIWUUgg~Dl% wcD˧)doK8*k*m6݈(2 $V*LJqQRA:a ^SA.zIg,|ͅ6`> -E*zG}q$%墱0žȖwԯ4!vV;}te6w.urїס'8xep8g=z-IaQ*Ro] ð2 ɒM7K8 fSv J >92A=h3 mN[I=4zu mW$O.1܊K^cLƛt/OtMqN,%DA/,Bk1πFRwS=-W\3R`e?Pŏ>(]IA5y8LڑHAʌQ.I*t(3|UUa"8Qa>S(|A#uq׽p$d^V{fQ[y)ljQhĉ_u1< sAjN\uA'dh#lz@m\|+ܺ$AN]m᭧uk>}tcF"[̜m::u{M[K55sfq5 y8F`7WhxZP_wM7r'oOT_x̀H2PDYW,{{ P+_!=ob3aI}._>3a*/[ ;D-]\]-8{ԘHégWf[TBRAf8t%HPbG`'?ft@\b.iB!|J T: Yϕ|\`Ok-YJc0. wlbcjW)}71t6 t9Z| D3̳h+(2(^R+HFiYrUq)_Y^P9 @ۺ~`%aT '.ӣY.3h-l3+i,NȚ(8$%^V"ZmL* gõY> S~& Kbq}N\ G^{AznV^Ϩt2.q!7$x%[ 5Vj2%Ҭ[b$'^KAHAseʥ?gxだv!U ɝn^ .zV tte ꍻAh+3\iSK(X#@SE*(%&Ҍcҳ p/YUv`a@d]^U鷜eίQ;*sh[}ѼǓōn wSD:v H!Vl ҚV҄:= R^\<JBLYu}BxNT/5)#Q1 8kgo K4~;dQ-Η%]j#U,B5tAP\CCj4rwJkˌͯsJs=1E RJo@?#\p+n˱:9(稂v/ [{"R!n)oGR== qy0<Ф~<rb+v3h':61Χy"޶RD=VaT מOw4[[n/rdKRI57~.;2#[#3؏Xטs6q l9׬fjį tВ(r]ߒ-'w@:kBQ[ b3߬>FVz u[,@~nՒagA}~[! @1x8'N1GJڇS=nw;boE{gHND,u' pe"xv~OH ^:؇9R,=)&AOPHH3#iYXx$]Dq\hja\b4~`JE $}9 uWba(å"uQ= ;Iv0ZD0\Ȧv]?KٲA@- T#|p+㙔 (Sfk6$} )B u1ajnb}d#\ !C}]$Qۺ~ީT~I850o4%' NA"{ CG9@DmX[˥e+we)Ȳd4bD铻OrKA=Y!6~ ˟hҘOiɇ#_p3ΛucU<-pss|ݧ206o|w^HJx&p(d9}afimAE>?'A``j!A:V~Ԡg2Tś-{؊^-pTG]FƊ"!cU.E<}LwI9IM4fA^"5u`6/գ|a! 5 m/ ’`!Pm|/Id)‚m>_V|py2,̘+3_D `kW ZO쮔g\R!{"ҡ^Q\K %)v\zD{K`֙H 1/cƝ ß8¶25~ysNbZ:X¨OBIIIr+Rtdm+7D@kSU7sv^3έu]-c 6i%t>sNguR '^THm 棠эHExU^^Zq쇘-Gs|7)ҫz%GHA]No[Nٝn@A ԏKw8ԃ SYf9Ĵ'ȃ8 9II8$+ Ҳ;2(@`mҚKUJ2*r\b:p4Enf Twb%A V4`Na7knjW`Hb%;S (sU.3]ܕJA bDWĕ@yKpv_[ZZ3yCXh>ub]rQmO.A:.\A-0?4wJ'FƮM 3O%5I(_hW OB5t4l0:_7+qxt?('sp(^(lkz9z\lFH9-DFrjN!2^#N!bYDŽ@ <ͨ3;uڷraYs]cޅH ΐT9/Ђ慺O C h5FP8_OTm=7"b+KOarIS'[(Z_Wđp4Ճ]O85:NEL=jFbU$1&wvW+r+,<];n$ֶzHO/R TZ/zvhMA7n~H,sff2S >-i1h[L}?]=?nQ0LOr~/0JWcI¦!nLPFlF5q\gp pRt)8*#ल67~ h KEMœ7FvI֪+}bR>=;HA@ :۟/X~B*DQh|W]䰍Mxs6NK6 ,|Zv`ee/IkMeףTCL^)V"!$>vq qcְ#9B:;ojm5Q ~|tN9a'1_e^9PE}x%li*^Y1Hݼ#3-P$S}W%b8**8I'xK`%)eKoubBNHgfJDGoWFڮOWb~JS^XkmpKW֘ΙJm_ⷡJ@73C =oj:&NMToaչ;SAf=V֬Mԡ5RAЋtHE&f'y~x3|LՇTM (&LˬʙuF"pcQ}"èB.6.:2E^agI}7^8~gg{.3N9p[N)pIfGbI u< DF`EƐODsʼn}C_#*xKa Elpm&EI\|YlY2 uV#AH[6RxOT4eyoI:X,c۽ԩ8'!dbr`e oyPjUUX`̒oڦ5G\@C0@Zd+%c[ɩ+d@xNmzW \Nλ}o 47jw#mq\T/3;h 5;jjך>i?@_T}?\aW,f4FgN7Mt2*ѵL;Y 7jA.a/qw}kECh۶݃:{rAR7cOPQlf%s%΄:ywXIp">ISO)QU6$MB_#MkMۢT._x=mmf7KoM}t]34^*IԠyG@]3U#xSX1GN!?&.@q0yv xbPB`BB!KGPVhGv^T' xS)K =a.u. ,JX{Ie9sdk>v^YRGbξ7pUG ˫SVYA>BCb(OدbIh诜UszI8tB幯cbu4!I퐗\6ckMlSQ˳rbm/y%]`TU芩p E]J`]psrR{m"1Hf Z_g(ƺƉ%(qx gtqdv6(D cӧRz D]WU Oq Ӥlԇ#hZV^ SڬtaY 5;w94\luH[#4N1egF46rJl) hpe˂B rgM7_L~tV_ c~͙ܟ_M!_9"oB%#7nP7EzPrcX.מ!-s%5f 咆^8mt&,lE"5 ZL"wdVOI52 .=c]Sw՘PA2C }hsҙVSZIG3A덯̬ Zrɭ_]HtDi]= J>DVeo1W &O@4?8\=OLFf(lb|eU27U4?\gո*⏜;4Z'(XgȪXFU p({W2}_ޅ UX64bjWʉ:F z҅e<{=#-aBKbBF:, ='و/0j2ZG7S\*}ʮA[ 6P2{jgkYzp3:Na:ytFN@J8/ &(۹4=GUyuڑҙe;01'ݾY1B9S?PEWyD%8B{`i\g%D+V%P_Cd)~% נ Xfg)"L+施풞ByT>\"=wͺNnimɭN1!xs6C \IF!SizN Ǐy6~U$8*9\I^ 4CfS\-y;n+t*\p;.qN9w*AI 8de~ trHDOvi84] Q`UĪ8 n*vXK(o]'!|R=s&kmCreŷBd+'] u1%Q]11ht1R l9HPU/H˽p 0v)ak،k!EU{0! &p0  ,O#i%[<S3}|) :;Lԕgct]p.4euWf 3檹ڨ/N*@;(qMnZKh.E"`;8\>>'B^fc~6&lǪ8LEVU!А>_YKD \ge u B|&7qQA-oѵӕ:pK <?|R|K=o}V;m7#{Sj?q=8rv#_-ڣH0.}MV:,tߗF1*i%lM/]mͦv \`UTʹ zOs[)8l*F|[>V?mAۜK5iLǒ,$c/Eܣ\WU+u41_( 1n j|fDT/ gI&an5do"lHN$T#&5ad%7(ۜ♥i,]NH].]+ަ3fzSgv$"fNF,ߏM(?Km+4 F=OVc ZAGN뚔Dw3ň8D1Ź =Ym,nнx7CĖ.T'gC'iŸ:bc$^P{fPhlma N!70OBVmqZ-P1Ηأj1IV;v7^k༟{esc״Dg6>RБ@3x F&G_JNoʮ[ C$Z`zS_!ՇDuσӤ 2&JS}:.j/Уe48Iaht 8^7 E+2 0%gCwhz':PF& t&/dB ][=biZcHhVA?arٯuXǼvih+{؞߬Bcf+y^"x|!GU-xSxq?a%7hZR.Y.–7oFˀ~QW~K]fmGAUC|eP1Zr9!Q K6]Z"ԱS}wVUOKԙ\ :!69e q]3͡؝O$t5|qhOte.H%peQNl4]Funxœ9zt؜Јp&d`޻3:*7y svMBOKD]lmNW[?ahOP))\ 5G>c0:qDק7e.f@R y@nZMZ3QdrZ*UJEYf&#jd j:-ʲe"R˝cƭik;u1)\'+/7/]/S𹬟y7͆^?Ξ:7vG4e@V̈́!Y XtQOF6a0j0NR. p,n!lпSmE֐=bNham8߱V 7جBmY?8(s)ŷD}}UK"b#v#;fA_Nӂırvm r O<TxʁFPP.89 ?L\ȳK~ oΥaWѢ]1 @Fg& G8+#_s4z>mo+uVLQq!tG>"-ƠP A|G a;yӊ=g2 r͵vK@1Y=t&XryɓT +&"j] eS-05y,IN5u[a8ԙ5466+TPy[暾`Q)J J`gq cNS}Oi5,LeE{ߚlYh K?sa" y%hk`7wا? iigfc؁tpRhKx|;Wq@ 鑙6jƶSy4IggA[f@LX7h<2.!)k7DpևiT(9 1K >Qk_Ό?bR[ צo; beubQ_#+*eR p) \Q psC/39hR-lf$`&k܉m.Τ*cV?rxea[ۘDu^kCF`'m:'v4A m sO0bqkq)VF}4v;ts h._unEWݞ_ )#.]EA+k7K>@^1]' 6 &NxZg91!g"s򌵭G`FGG)2yY˺ WXq~AnI0'14b^L#K3ơV܁/J)>y-;)dt7 # b\VG4{rS{2Qg>)AN="b,WODj D3]OG?a$WTcJWvW4X76Xѱyzvz:cT"c5ckp G:KO&=lX$x2|pGʼng\-;!("l' ܙG#9"k#UP5a+?^d3mppߛhfOi,Ȓ`3~T5Sq<"J2l*Xf2z25nʅ5g /d(HS "̷-V3L"gX)Ul )Gk<@ Ʀ `. U䛽-q43;5cW~lA~dw "L/ο܁0'2MrTp=MlR5,;d(dMѹQjsK05btTqoT 4 = SLdBLٗcYл{l@R.Vf#xl `tgl[ACa|,ZRi {oRdlOX>.0ˮE}8%]2у* RىY%>~:ޓU *WBCHމb+ol}s~%r@Ngf̦:wNK>&j8U`n^xNِ'W8 .ڷ/ Uw(ˣs %BɂW_s HHr}e\`612߹+:X|^%C/ 'Z P!x'}'Ovwю⍌Y`w[9vV~RSl }?T8<Mk_e[uŎvJ@Qh! E\ 󩇶VQ3 ۭeJ]d.ǿ2P BPPj@r(dn"Lc0B; ~%|!, qI Rjplc B V`2-CYɸwNCH4}2-j9p6yumD!5P 25uQN@|OYlR$Mí<$̺:v(Ñx5ν>]~9n>Yi22O3bqU.xffxbUI߼;է =9^3)ovy;ջީHS-L M%t {7=l)hGЯ܀cx\p=}3{${R}Ieg]"UiDMۏIyzN/k\!>ËK5ibZZ bcu #:C( -гjИyKqTWc%U< 2~r:~~ʢ),-K2.r*2NB\*2AT.=e^;TD7}ꚓdӋK""M&c U TH{bXA,ydݞ,L dԘ&A?Y.w' QWm-/ѡ0TN K5 @AcO .IcMA rdD}r,qlJSCN܃m(yۆPhD|q` 3/X(;aD ;rr ^ɨ) &X cg$k TA4}UT6G\x"-0\Ԣf4z6TN߅]$]ca5 hnu%a"[0`Q ?=ȌqQr=O4"쫆%./v+#0ԃ3;ֵThPo[B}60+$6E">xGHW bږ̒T+ ]=K2:"+;zًϬo@i] ;~p6?C)xC&mѡFK5uЙ!>Xee nEQYyR_ F!:@8vKE (FNWf˃Ϣ F@3 'sWvjDh*v2RR'\UJ܉0Q7uG3u@ }ӱ p>*2Mt 4.H⢓m?A uYMZeXj Q2yr>ڑpf|`lhfyZ_;&^4)t\n# =vt8n3jiJ _dP"u Psjؐ ե'cǃ,s.<0T ?>o-cP ,Q's M'˹祊ݖR ɹ# C/qiZ8ؒ2Ύ1VI-U{J`#br(HrBgHHbw# s6vew~__uLIJX@IL=ch4,r )nǃ[DZLќ)8ު+SZue*[ۣXV*2shK#xҷwg9~`JLVpJknč_s g`gv<7(9*DZ($\;p> i2$>Xq?tS; ş.yO >\'73\OA=&enZG.l -ąmjHN y4]y J {k51W@JR[0`(2{6aqz[^+˻3\ Ҕج- ̚2!tsM O$bʒƧD2~tE@Cڡ;$?W߁|q d_+KOvBZݎWj9` Ŵ=&aoi̐OdH3I.Kg G C_aTcs$6Or)] UZ_lg@`ȸzp)B>M3˼ R͝R%r+Ltu!J#z{{޴Rn}%Q ,띘~i[࿰ x,mGX1Qk72&8Xݩ-;#IJ!ipqT+=xL0yۡP?k\ǕkB-{4H&@N֣ HP:&}Vfs?tb×#mRc"l>3B0I,c 8h)%_[:;s`={7$&זĢhҪ>9kuuOQ M(JŒҝB@V܉c;1\( %ґ7"OݜWnPJxXLAQ{.žt㍦mv .qԵ<j!NRNyoױ?YOJ$㰵D\9NzAdpev_g7E؇6JOl-t_a9C546imgPkQܱT2^-Z;FLk-tsu$'3k˾B_)3%)T f% 0m8~ZOG|?X%.# fHrݚ' DނNIaSo8\fmzlvFExBDy(aQ"sD̞x'iJn ˂Bdz|45B7FJ3~oZň[å{Y.Usqt{>; 8UA쨻\so8 fD:_=@dQJb A7$ulU OxIƜ}F1kuY8 ]rjWщ^yҠ>r|1nRtgkjBv"#NR;lz 秭*…&q(ÉBc_Rz Ԓpf k+mJ[8'khFe9Md3̿cΏ{YU[p۝&bA*Y3RFq_;ZnmYqm ֥쐸G2 H͓[?.XcG-A+ &,iTaPldJ•EaG:8y6XDd/{c(pW.ҩYɩ#umBF-]]eDGÓ F=,2DH9Zfhֵ9q+I]_DI D߇[(Ŕ(٠_!=a㏷l/ :⩹)68&7͗(O<*:M8ni ǛNHW=ἥ&XuJ`CVqC];+~83$\J"(˧t44SRn+>-VAj)W l^0dk>V_:cG?Zs#:79UX ,Vx&+ap @i:L;֠"O%f,Ių@^C$&J^rm3iU5%.9?tCƕO5ly/R.Ĝѭ{g!3OwA vz!2s&X ˜8ۦ/2yy2'W.L %%ƱRh\,Vۢȵieh V=>/O9~Og jsF&%5 >0p]g#&ʄwk UmknY CO LCyAH-j>b -`+7",h]ZDB*@[_=?q]'@`Q0\ HVбi?=$̥7lON'sGz@.ÃHk]oQu2l$cN3Qֲ?~7 ĀQ6UuädznI;.0.2 * nvܽ^'"dO7U% vJj >pz̝pjJ5'<2AwlWKj!u]S)51&h[ k.u\*F`3l#=`h&JSTdhsdgס0ڙwOuz.)~.r ˥LF;8hcl*VK~,gɥ`\P*(kѬuX֯LBaxIn 2FO,|,l^z Ȳ?=F$K~!P`ȿE)JTA|7EH=\캔 ~75dڃKۀ26zYB_rZ˲E`ra|3)uDEXb k-ħQf(Q^Sh& .KVov;E1|?Z "Ljv/7m,/\{:ۊcl2g,tQ.쪰6LUMMxje4O9{<XH}bRiͷ(ar\GJ좊K9b;]/2 Mݍ_U[,/(+#rh@?YDSGO#yl }ˇYLv |[6͝ ՆX(Yqb޹*ҡܾ`x,iӠ~"toX9Pi/N9aJA̟{5FC&=>fyELAtbO|qO-C)xJ>l(=oR[1\ebʕA ȸrߵCX/glCiWQ)s2~hgFDH g7lNnj'y6 K6pjS8_9<I6AMPZLPh;F8VzgJJ,zMĽ QA[)n #9 i9.0`I J1a`[r1s$վaa`\=JĎx'<(KTI\ e^As4zҎ˫iiPzHi\~ /NQCz؞Z^::S6v=|SLp6'1 Neww+5. o}~gx(Es-. H 8bU`zC=idVz꾂jPM_Ė಄KECX jGse~j"[s:g(}VѝeQOj>, i0RDB. ˛7V{LRD4Q0"  l&rOdAӖ>X )|㱩'a-F_ O'˸Y`{z)NJ@AK+j6,PazKwQhYԒ]yB?k[w]T`Z#{qT6} 2mmEB@,?i^V/1Ix[d%(5sn̖;M>,\y8x.!D=pXc™^wn#v;0D>_B4Ԟ2Ttc5!7ъ*T@XKE.pZS3x阌$ቴ6Ub{YɄwhڧ)fVqd1'+#yJP@1N-#L6TމrsXvd΅w #(-{Y‘āGPT|"+)7rEN'F`1lo8#z9Gtk lf]soPwBppYc{n {-;d-^uܯAJ!1c^r̎e)$'tQѶf=>`_I"ǯOf0`n9jȯVFΩqD]5}x2*!n5ٖMYb /k(XCͧdLӗyhS1hZlæMI|Y`5eDHe wR൛?J'EFlH_cO7fQW.:-3EN=bZ85O+Vk#} Ld'E֬ a0XMb2" )cHQU.e4EhaoR}'g VeM#F}9QSa &PbU$qύJIERAUeEBBW] KH"auPe}wWYמ/zUc⚯^fW{-}6n,:YP!wU4n]OqiOߙ639ӆPZݐTh;K_["aMp@rWU+wYНqSj.Q1ʢ̝ǚ:7Hu[\H{,"z`9n ,w~9ΜB-N} [:cčþ j u9CRb ij,A(&$~z?|@;:fu|aXfFy?PԻ)fkABIL5}I;WI?Tp#lھ&eImKq=ic94 !Ӫu$pFSݰ|Y)@s(1,r戓+¼9xwԉ&F)I_K: M+!b K=jիsbЇaU9Q$η5FU [Z3bn!&5<ֺ:V."7bk+<߀fՕLܐEI%)\p_ϟBQxr-bkWa:YRK%v UyzmCaY0]`wb$+dϋ$aXBl㐌h$=Mzu?qTv=5B9a;JVFK4@7Bm >kޞ uA}|(NnzFX ea~ߞ?ꔝۿ51ŀa bt= y6b/Eo;}F N$yj~ VAnX'>n!Mͪ+dz'.˯=$JMKLцg2Æ\D>*:XKmhtS`h%E)M-" w{PD"Ű]a`֭vY| ў2|_YGM\+Ԉ;ytv#lBl{î8PΞYO?]&טz*޸a'7 y"Y kX<0PxҦĪK磅sAՍvB G'ۮ.ܱP;`߷.E0@U+CfnoaCԉ1(s3f@.L3)B$TVu?_pF#^F( ltXR)h= Aq["oto،G|!+{=_+CfZU~3VЇW,m*F%u"d!Ȇ2gሴAUWa=OiR5? ~͠šɂ(V LKf }ac 'fio )IIVMkA vo0:8>@[s21U46L,!rO&.yyF Pv=̵} v/h&&bԨi3%Sjh> / 4oʒ= ӒUqӳQkb!}8h'jEpXF;'Kɲ~yp,59rԼKNwʏ_}]nϨ0"ti_Y5Lo>!4PJJ(D@#OzGi$%Gȃ}KkZZJ'4-NGˌ>a|+U i B.웸 C {rvILS$vB^+~l9j12TDžqv=Þ|M N4M.,ǎ)CaEf/sɜDk<׮(Q q:AxMfoaKfa|QIDvqq㝾0D[ٛݠ#Xr"guo}_+u-oKJ`_Di`Rq''}KSsLDb Bs\Ҧ%MW"2(JR"S\^MYw9>(ivw-3kFh*OaNɶ@0jhɡՅ$eXN _bRWsYS%bU;{B/Q6`U(1jLm +B$R4p=/;u;2GQ+ 3LlITC|ڍ&,%|&R$Lu|(FQH.!k#T^b{lhC$pt&DžJ0ajUj,c%,fio}Ĩ$c2cs`h")1ZXp;>}:'D0dǝC6hc|_1u˶H2w }ֿ[M<+WR@ ^ K{:TqM #& @^?.jcLӓp/}9ƺѪ 8آ cBRb_b}򞃘Ji>,_ӕ?pvT+*gsY.2KGUT/xO-GDa$nm/:\j$"GZ5bq"KNN;P .A5ڮhʭVʸpHc"6ݧ]xӛqBp]G|3'!,~ BVY%:@u]i]o `7m O.6>zH(?l TuH Iid( ׭K߰?iJdu=!-7XcZLď)~/i՜77nt2o\}5>;$z[ 5/@<㯣 %j8(]үU1A*>p~AҒ@FUļ.xsfwz)_m9 e>88%B'ٿ-`KM ܉s a ~ȡXT)gS:)=W^9DE }#n@ּiPuCcZ^laOJ%tM%3`G/$[l_Sg\ЇJ/7;3. AT;)dӫT+74Ԋo8bؽ,eP:t8q=t'an2; ϟNX,]jLB9u=mJ>#YEcDhX[Uƈ[ >Hހ(h54H]DVa8}EQ>۴j&4W!CkDUkyt4j2e rZzvͩ#H25y$)ˆF! zfwKA!E,b|&_2$6!vXkyMTYLTȉ$owR| [PHY/%F(l,t%n7G\ϑWN73_|dީӃWDu&@`@Xi%=t%qCPNF! dKTitp֙S 0upl~V`Z 3r|AQ@\Kl4UI#i2%L%yceu{*S%ZzsJK?l C>̈́ `.]..ww x r@_Cr+-Uc}Z WhK*{WԞdWA˨] ,{)<ٔrS1BAN Dx ΩDm&\*bEHQ)J6BϨ>{<cZt֖6vV}҂c+ѹ!'XM΍Zzz?osꛩt:0.ngA?,)=^ʶfk߲jfǮQƴxpA8>vRvɷM/T.ĈY) d י7s}फ़cs ,)&pGۧVRަoBP6z3y&-w t$th܁>;MFTlYޛ4%\ oa..{"׌I?m{8E (`Vө5HC]DD#`dheeD:&4V׬s1*G7J*yc084c1,g"6ڡlJ{BIJl Oلk{+FلOdm!gWŜTriP>-M\yS >ȇћ)h)C7=0PDΎ!( N^~GnB;&>|WBfEGxF?}t"$+2 ntX>kuYX3:l(a~*ORؑjjiN"yv'Wl%:es?5I3P aF- dhjxMd҃A!p6OK=r{iIGGRfVVoރ]rsDC'smK&U+X,[,_* lɵ$HW@*K74 #!Kl:AO0.H3y;TLwAY΀v=Q aJzO*0fVB6ۛû0o~bdAQāvhRixZNg4 |.WEC_;v$BgLhFVU$> 4 o~ypDsY#1@?e\1 .9bU.c#, +#HhSc7yԲzmhRJ&CM⏒o}/\; pgZ^`4^o oĒEؗqw}emy00w`1?*5ztF<յ knNJ}iV~k[!ܯD7߀ɪ|?>8~0&c"G|8ޝ #3-vjYTS (´DEZ02*KKcn:~ ;_Q=KH+Miced,O7WE׋oZTQW:E Ť|-A֞:rTΜ \mbfVv%lg4A 9&o6ȡ'Ӌ.HmikքhElsydTHVױ5[+ٱeż6.=m,142䳊p7VC>mz1i[/Os|'0|CܦH_Cf_-#b޿iI =7jcRLN@5l2 +>pWV }҈;Z8+SK:]hdl^FTdVg?*b+F Ssؔ1DFA㫔 5OSD@H.~Rc sM)RNa#bdX8T<{ qdC {4|ضY&7ChO֛YK۽6tfN«ߒS}Md$7Fz\P'n8'I^?l̊Hcw&>mV4&q*o#8E\>cʿl1 }<{~vf,m42Z%xً* \Tʤes)톬a[@9R0M?ã$Ȏ^f+ӤŕG//N1=Ao|!ysbߒ(m NIA=ql BcNsHWŜL %E/CB7)#Fy+e(b:&扮|_bqo=w}Ѿt˷B@MQd­<R#Y@:%'\/[H(#F4ӣr, jt丣Ȱ1`T([0nqf%%c` P}Sa&2WUg%?U(@=9*pPtt_Uo%Ӑyp#dh&^ЋSoէa.M5F{Ao8!4CH}P9~ɦ@b9859BuJx5vb܎r-+=hbѵ7FkSx`)H}{Y|E:ޟ+@Q޺NEa}&7fu]R! s+ga[٨U*]?%s-q$ˬcw<6⹗afep# 7l+lx^c QaMSiO1h0` 䋴 _f^׵pc7d^Z#D彬i2'Any=駿N?q2^Lt*1ZcK^e6p Փuț@P8[ "M4_"B0łJ,lV#yղcwvQ" ѱrHw]bpO~ g[4V6.4/$t=pto[ԮDŽZBIdrLzxn=7'ˀ2ebpaU@3කƕ{,OJsZ9[`I -GA CRRjw(\8>52~ھ=׍JrzzgR~~uk5B4@@ wYӺnrB=_]Qwd/>|kMjſ kk(j]'|h=书ײ(fflh8E`bʢE 7AEr_DVZ\hRp+;j-A\L Vul yS1DnA^w{P(}y-U*Ւ_7O5EZ9a0Ϥ85+*x7豞ADlխ B9ht' &޵vs  wEg#a]p"Xd$a!vo506KTI'~ѶTH2$9ͫJ 'h^>$IZm#z.W<`d?U쓩 ;6\|45,z< 9ٙinz8)lnU%7jtRre y!f~\0)"YP NrEYI#$iԞ"(ۋvLB5P[$u &ڼKH9>%#/"3@-V[eѽ”}i7}H4HuSOxN 9q䈤+yb)WU&ހj%ofjǿv9 +Z1&$b8@dvf|^7|\353b"c_" At6W$xLʖ l4L,K r"\`@}M-n`$:%S][d?v% * h DY`;@ܟt)gHL_ u|Qqhqɞ0xdJוn{qyb.;bJk4HRUMnO-ϋ<"FsX䖆5d\;fw7! Ѿs/Z>WHNS'!9ƣ(\ tk zF6;FՀL7C9Ӕ؈1$c9у۪ƓBAz"pLMٴ!~~?ps:9s]:ƢǖXLas99Z:IK!7_вKPj&]7h|dGi{^`pC M9µ (<_3O7ГB}2 )yu$pt_Ai [n~Ylhb06T~:3#:?<ʈAA_4Q#v#̜Eׁ6:t>jU .' mP\@JXZ0n5 lځ{Wڻ|IdfmI#Ng9N@8!jGqJn=`Y""4Ed|-v,)_Tm8޷R.K#V>QЂh&O0PU 8y3f>[4t59|yT? I_kRq-UxM0y!KE@= v˜ss7ZxSWz:\/}JMMbb#._ xlbe]^Euuur-J}YB/ p+b(B288%?gEEN@Ĭ3FY5˾!;42B6lLmoHoݿ 3+7yRK_ X6f{B|^SoQsoL#\m}@\e*;˰FD N8' DbLO%Z(_#1)W//hgl#CVڠL ;L.VZIT/by&ƀ&=I-[A f"i4R0:4G!Li*ݤ[Dj8TzqK]5H/QPABg4-iRkŲ\ؾk P囉hvI.!>P&X4DIuGػBL*gXrvu:A%g.idozH3nJ!Ja6mEn'e/Bg[tSb޸$Vsk߳(fv-B~y.;Af E8e\=p3z:NHPy~ZMKIVsa,rywFE=cx {~ w5:oGg@AMκZk8{7(j0#Z wT&&d8ۡKZHl<.z{#,ԋj S;;maHW.&`cn6*rt.E#e=v|`$ r&1Fe.]tiY/ImlJKo?&à >@mmIe(> If yAU=jo x˴:l,ܝQr/rwP0S ɏ͘fOԗ;{s Y +ok!"tu-AAPOȂ$5gwP uȂU{b}\fD\x9CL\1fK!3߫M& Zf1x \E\:^D [n߬ xʴ_4+&qˁrS0 ur ]v+a.bI!HFğ!CJR\z,Q#|{?3JyЋʒGGHu{m' -ʨmf6.Wpe+nx:I^`;agp'"lI;Q`?-3Q3y-xZ @jkZiBfH*e^qvJiQt(QATd θa=ԩ|RqupWŔ/P~,?I7xyzٲʗT^T]CRG3lte;Oq68  kͧTk'.9XA^ab:<{notYBoh"s)+O dDFz6kgiiw̬+yD:]-5ڽ/ď@vGHܫ&C_܊+LWs楲eiZWc^yGR)^p8+d_ ,? Pa ż5J v /k˪o_៣{~ XkE1nƻ O]=GbTj̶ gLtPh.ޘ^)z-w_3>n}.mMtᣏ WǴ |0\"!mӞ5^.r>{WG]$dKxnXwrQA SPfO&FkeK Wn͝fbAM[!ND!vYc"GGLK?3{k;Dв'MVŜz"8?{=RU適s?m3Qi™oY8<+]&-B3R}GpQlC?v]\!^dU q졷.9tMy T Az$vélwYR- .?stFًٍ ."vGW%UyFh/؟H䬔$þyU⢰/_;#^xVC7M5ˣ:&: "ey*ap>gPqB;l7ylǟRw8~H`our\xC\^ڤl&xؠwZ잿kKDG YZm: %DwXyݕ٭)9EnK"V[qXX0lD~u^5YǓli8!n)lHƻ)k[371mG% gFKb_ip?3F٢)e%\qݍ7uO9/eGsA57ͨCaD6gPJoѧ'HA Єs~6]"B{>AgpOB#\[c7ͳ(HZ D|ľdSו\Biw*[ٛ'O_(￱fQlW%KrQ#i|]~'J@E `b%4K~WND|hNFa@m/~c^~n }ҖLi/c phZWiXĥڸ$I//lS _ лE/~ږO}pzID/Љ (v6H)0~A, ?x2'`5ruKᘀeO?[@*~ Ջ捨쐤S*LsXfu `vg eMW;@ahސgy9zu z"\{h$V}y]ܧ׸3F2>rYE_~Xk|WkV-)ZSx rJ {%m %AyHA~.Q, [KuI-IǸI6P(jL+_Ȃ9~#AjD*ӐKTgInZ®k?l#̸^O4yjGiDsrz0ѐ9 7lo+k'; LH#F{J%^v5ڀ& To3[(~f^/cVP*Uդ4+3n*G0M/%]$,y3ASzIJЋ] lfLFVʄr1p)j2C륃 PV,_d>^%]c_i=ga7OO%^l[~, P ]7^p}*x\alnVO.~Ï؝?SMLCRLݘ L?J]vN$qEb!u碗d\dIzM4eDbnRcθ^) oDՉkqhfd6!(r*,[gҕR$?a$(eAb3C͐gx})4U< 3~6µN9gڛ-d枯}hՐ~ QY^Uؤa}.6~ H¼@`ԔYC߈ i[n#K‰6l>Dh_4},=%S|<38ujY/u6sDTlL,mQ+ moZi.rH+@[ּQ&#'u zr#bp)n-a硹K#eϢ䥐^H.PwcRE,`>Z|TNAޡ֎aOj B E合 UhF7%Z)RfݿWᎄP*A'E N?"tϝi It K9[$Q9l*7&>V) 枔Wv5!__G+=,*-)HEa+ϔb_>(Li딽\]s۹km3Ĥ/ӼM[gi7] l(g2xϭ5яU,rFLi\ eJWL[f4 M6&%EtX4bX$? E8PF f<ērBٞ)š{וe"a 9v,z`_ f$YcZ}بba)F obԗh!wYԫ:Ϟoslqi?|)lznF-ק&X[#z$v'fV*!~`Ytgv{+m3,ӟcou@O1nX'O>Λgm>M AĒ6`E"+=lN6+R{6cI[ld0vqP = ېT,ΙНNSNn]݁0%<d(eyÿP(1AegόVvew8C݃.zkJ$Zb0QH{S>5dFg;͒uWQ"<έ "t$}lBGX:j%U> 3)ƺxfRJ_DPm%2u;S^ADfT0PgP/vG l2<J)ķ좢ڥt{N 甖y1u~0ePàږNIgoZJs0O. -Oq#PA#~)8hhX <I cv?t~ JC#yJ#9^͟W@!=O?O޲?K3QƵMcxdIs,wjJjK@/Q cnBOS"u(ُ-\!f6M X_Wwq%H8W(Fی(Jzhc-UJ Љ͌bh Gݖ19&TQ%@;t2HzfmjMlI_\Em[рҚ`'w[ nC8Y"V oh ȹ[βy݄aNWoNbov,]MT-a:7Wntl0mEdrG:PX ah̨ǸE.M$ ~c,Tk~J,Da.7ySbLY颀,NG(GYo_.yG}AvltkV:-Ǽvok]މ H. \7(sz03\Al3*0j<>\q[|*rj5|!}t$!wWOm "Q%N[03" 0,,Y}BIPe/ mi9FQbFt'2\D>l#Ѹۋ:K~SEn#kubJGۄ܂'jZ oyO%ςK`r!QE %ukL5'-*ıF^$Vm [Aa:MLciM)UQpefUَ"-{;4b*DY@ɶKRON_ :N΀a![5@-Sz9~%,yVNzwZ+DrLr*uk9u/E`ޮ,k|X!V8Leo"bc*ZE|&^>HCAfaus[jc%W,Fs?߰f y(YYU[Цϴ&pg6oyP;F&ϮI!y"\>΀zZMo:5.v,U gICѰ.K$H1NEeN.VkHk嵪&jqnoUjt6p% qF`?n@$"k(ՀsQȭ!uT1se[E KX %UdqR5JO!`uD^R ю= 9#:MY|oQPYtGuփpXBZΚ=҉lpukXCOv] Z.st5`k vsA Ħ ͣxy9q1U<^4.EXSX Q$: 4{HJGXgB16t,GTc QX$+ :ZVP++U+ ]u"`sM;𠂞yދ|ZT_Dfx.yeK%ƱO.u1>t8PL',Ȝ#XNX!v Vr5>\j$Ođl]QDC5gu nTYzgEd4ܤ2#[S" l8J&$K(cVoY!6X{MA|kqʼn句莮l;G3 RxB?I&㓰!y44$N2o6Zd-,F/g 67"M_JNOaF wJobП*}Qh h%?u̵h91̀cIKO+sd)x o0 m[ h.!MC)вE )qOYvӁQdQ˄cJl*P2ŝl/b˙Kz+'65Y(2G(ϫ'E2 7tߓ_aҾPQ:N χE#ǎ85{)hk/rZWo!!^??a Tgz4:7oPBbįԌPWz-g[i~d s]rD RW>)ID#'s?g/32pڙoU`Cβ ¶і]}v3+R>ǖU+&Y2b/,>/)<}{+S밾bt=DVhCJ3ocqUB%*J$ɕ6Q}ޏ4=\GFp;oRrw8HY(!5C/R :.u'2&׍O@t劽{gm%b 2̚uYNhdu$)'?m+9 .iCG#S%ֆt }1ғ1#Ps17]6 nfA>EĢSŁeQ2;fu7]kM)5L8u/-vAaYlbFq-4rU-|fiAtBPim 2~=FMY93M\DW۴g_9Ô!#zίA;):\FH'ZeIjjݴhN$A4J/م:qЉ)CqI37?O\ã<8!)32NMԨ 3`޲c ,@D'&&,O7?Ўyȣ2Dl.h,hDvm),3H [g'F4ÝpՓa\s_b]-,s ¥0Z5*,(;)dy!^=y43,|+B`ua)}ҼFdc_i#v׍ '!RZtypP0%UkZY=%d=OG5u^8&b9rc槳amNIGLh K#k.C9n2A42jޘSXvSŜH.47){nkɣ[`\'ڻ魰T_\{F#dpl5"$Bκiޔ6|7x@-8'&mxm7jc`z0'y@ۑo`\AWBVׄzt0S,Q(Fj{Q>O?O@<elvw*g \!9},N,SuWp"t|))~yO3>^AD{7ҍ1]/#p *??I E_\3Ԁ~Lsm`FY "r /'N:~"AfZX7Je' T>݋—ct'W,ZY+Nye4'dV8nx7#Eۚ^@$4Ǎ&=UD3e5k,ݔz#zդ2^"c veiGSÇǦе&Ř"Pc?2lmGmjۺOҜ%v@3}/3X6<,x|жCjǾ^fR?|eQ1gO[ҟ46LsWŪ=J7yy=FifDye]ݢ{ޥ[QPSoVPx!S&ϘuWw6Dh=[,x{hFOvcwi+lT?]Xz_<094GX`b?)xʲ3xšy 7Df.Â(C)jJL-B-pHoMspjj}Lu0LmD7^mN 2?ހ|&ƍ?m*=A)~'>>n;S25~ٹr C h7(h˝*Agn3p!Pǔ$NoIk&󧊸'č@/Ț~)Dph %_-"ttdoĭ/ ̝;v ^)qq˂QF\2e[edf1_V}Oj"M,$e'h2ۢޞ@n{09h_}2DWG7bMm(%ԉ4)׈5QdNpi"Pd ):yC?vhku\x wwG .3@NJV׊C^k'V'as26%nD=dcdk KxVVGIĹǴZ|ْ3u<`*o2! 'F(ܢM|MXMbbo+P9 a3;xt$ Tnr6Wq`$6EiDPbe贊;@[q@.V/^tCvC`C,~fF`aW=X8eb {[ l[cU G$FQ[Nl{)C%21I5mě%B&iOqZ@''/^w R?O,>P^dohvWڙ|!U1҇p[>^y71%v۔b,7J9hڄX=3 &'90]t1[=+xN^yYF1KzK}vhFeo5y;W`ÅFeoPYGJP'0K3:~pp9ڱ.֢ƾaz~kQaEhח&L EB T)6qZ~|ec +DiՈƶWth/vC ])/15zU$}?fw9pLYzT7 k'o9R}Dj4되 %ȱsYOt40j]foOB=ߚiV,%7:p~Yx-)+^c-K9a]pVE` &*.b>BRW?Э,2F-Nz~HQw6b-:*e%=@4Tgh. h"M)b S}٠Np#XM#r^fTsT9|g-f VVX߅tA9O8B~]G(Ki"Za]u d ,UuNPsǼrAP3}a <v ` G^#&.Ui(FRǔGR0-CwgbZӕ' 0?dy}ӬnOM"w0L_`zy_7N|[2Cr_%3<W2(>?O2-ƨH5e+'0Vª>an`9NMIdLeX`U B^AcäypۈuAD ;rO"Ow8f@3;F6Us5hٞH5i2 B>'~C-\($ m)4K\- -ri0㔙 E]cuzo _%/щk~{>HsJʠq>]bY\+T.莿j UN1l|ren>5FWm<|ٲ4_C" /Lta@p.ΜK2 >'E e /CH {bBW}F09SM~e'84Ž~ i:X[Me%}O6`hf!)-߾ybf x?[TO\vPۂ}ƴz#MV\Ebif{5$[}Uv1 poN{zRx/` 3NPزO$#3N-V@4 ,%(ݔIYiJ" 0KBxʬ-iT7C'aO8"ZdWit8#ZU$dtIw%b45t`[)mO$84k<$GDʞ1\n{:KDCbbѼ22*ڵQaiyV1t7A`*{pG LvCV´~on/&_ ܌Uӏ[r"zJAz..RD=9of/ tz4 ]w8ٽ>.H&HWY0khztgZ'.h= C_֙HxX礟xuN1]feƮ]s`bF zkNCH2Hn4.e2 q7g#37mVkq+duBB]_+#̤oM^R0 ˺@uIhe#,A1*xx&mQF"r?udn/\#tXg^x~v GTŒeF#_쩕!νG L 7!CGjVPя9cAdJ*%_#e\k`uIC$_ OƉq+*^! 7|VQ7`l>CDae;?in_m1|$݄ e@p!/<*nBO3|\ Y+:ëfA&cVbn#h_4d= 7&d6+x8.; XQ`T[ioƽ4Ji A ?KKz08(L@o H! /pЁYp-=t%-WLD怘IWt*9 pkm'MuybUjř &Zw%}q࣮6ͅ;X :U|y{Nsu-A^)G7fBW! #D뉑giVUtK2wJ8Y?mHBa v2OVsyw?C W,b: J bw@ N55|T$h2^;="0^ i]*C2OFr+BX5Kq_0ǂ .G! h@wx[.3' cY5Nൄ;'\]ʓ v-rI֤"k3EYqf>1Vη=0!fAsM@a4 sfەfO9Ze?f%+DŽFG5&(mMEfsNa V: @)8DgC%3=[*݈tYk\v?]c:HJmB7:W7B>-4 yݍ&l^VhCRr+5IFu!8[̯l_Nrhcx ^o0A}n@ya8K>M&=8\^. I sų2O@|Y-^9/^M}PaTKwy0t۠QWZ̲ŸNT 2ܔޖW2.\SE5:e!5uCWp?!?``/Ʉϒ(mHE5*DyӇR] q6Rm<V*ㅳRE7$(yaoEOF/ 4K4~PxM"hT!7ޗsrOPďKq-1-]uaǭ,Jrٻ4 ' q\(;Y4Xy Mouˏ?q0z,aI2;uIWc ,w ա?o cG"|kPҳIsKqD[B7;~j=e p-/"lXwN$smAj5RWģ7C>T! :~d87} ovȏj]2<ۂX\iMBز--c";n&gCky bu@W ]( !՘٧'lG" $qLUXGlt=3$.!Saxb w~@0O_@Fc-]\hNצ"ZON;fum/)+ڙ|k-<\=/qqiuO!o,m? }=t>3zX76?]#wuE?ڧlK3W>6/x1&45N]{3mԓ `ֹ(FFP rG6n;!ӞU?h7綸,};Jl&*o^=MY6 .oD 3nh:Yܠtq요`W@`'턮'.ys/]Ūv#!닇ĩO OzEGjD`qRv󰦂n\ѪISĭ^$2.эVsdf kCgkn7y^+$4{OښR5v"r 25rF-[k/wPXKM#B@%X]ߟ&]Ι#0A3k O [7[b,jHv<#-?V^lT7cV|-6#st[@؋4;cNK+m9z>X4PHeaw919j 7w_INRKWEi8Tϩ)|m ~f 9wJ HZ&L(B ҡqS袬; ;͖;Me! ;"C{?ZSk:OMU(5pTl+s֨r,RX=Ƹ2gc[o}$ej~’M~ZAe;Za CL8i좍/`q嶉kDw J+7q9eT+-*yfdc,fEᴋWb$rుTd#[hPғ eRT"*gEŴ]{ʓ"X(Xedj+T_hs2:{+h^kWE.L;D6p.ޟriG0; B gFe!8=䉀|db:P|?I]OZ-۸ D %hB!a9y|aA+jcEF_*&W ?5ĺGI)'В66ϧb KCq;!אcb?י1zvfO%Qyu 'ȀLתe)mS=izE`%p̈ns w, lNʞX.BK =?Ène*=8!{IHe|Ҷa<ҚCCshhF׫pQAY_U_,KcI]tJ%)k%هh>]gQ~!^Õl:0!un8>x k2\WL9 KAs7!P|,u҃N2,qMREz4Y={0Е]i%k"ˌvK⡊jv(EMݎm% Aú/w2taj @1eOe% 9!> Li.,qR@}5*-{@A`g31~NLFy 5Bu@ؠ +`.jlB` A ,Tf| e9*CGO)ksp0ics0'_ #M;dhmk@0k"[_\_N=ď䥚9t!T[ERR"1x@W{\=y+,:ԞWO\ϚJ+etZl%KS--ՅC]o7GqO ?. d3 H@vu O})bF F@캨Ek6f'~D3frrƋ'f܂nj׽$׮<4Fm}̃sM8*c<7;kތ*3t@q ?Xj\ř(`A!mQ<#YZ>~-y@jP̖2NOd !?3o@FA[UH2}$i5)({Y7.wTBVb;ᏕHXcֽOj1fbeP=_'qZlB](c $X sM >SB]\4f'W테V7*-ptа-P3#z \H/F^XTe \,< 94S/5ÑgA$$˱q)("{BFPMzPޱ*X~+ߚaŹgp@[fP c!af,T/a0+PO#ġնo2 F$/G-w`5Pn-,353g>8>}WtFG#lE3ȧJS#MpN#\Ztx |vx\m5;QWiZ9;efZB&[-?*_|m%V é#*4\]A=ŻKH-T$- v^5-yN\Ch9c 2iq(:  SP7Gbԅ`CL%+Qw+C׺4U 23K)bUiy6:&g#Wk{X'%U&0f[FY[S<;6郡$¾MƏ|-! 6OB8_'JK(3Bf gu.E(R^uȈa+@MɥV#zͳe_5ASu^ExAݓ1CyQZ;ocVv5 ZMv@D/>u|aeۨڪ^cbJ(1Ƈ0쥮wLۜ˨E!mK` TB6eD]ۢx6G:šx};VRt I]rf5k?2ٜ 8;EqQ7ωO%/ݳyj*c.MK9͖EmU]9@o8*:T* !5'&9=D%867 R>{뙚1ش2`޹&>"w|Ɩk1N^pe]N`/8I'\rdNúVPhn)K[TwC )HMhuIBo&H Hϯ) )r7^×"z3 ?Y!zgF̵@RTYxrOO1a: pWR"Ԩ#m"ITyJQݟ]xDB#d+urq3?aO ⵐ¸8WhcC׻Z= hm@qYKS-! cHպKz,DgX:#"[uE4f"%^+$ٕOqQ;Պʩ:'[BQI@[^fvh$[B>PA<*A_% TߌAXZ< W h FD+0B}I:mǭ@QЀ/f:/86u91hx^D-ўGӛQt0h"&d U4V N?S HcQQX4HrL0hGZ.T*#Zh@i cX1=#/ƁZ<㔙JATotmj8ve{c,P`08Yd#I0,,݂ͶYp▦$7 k s$#V|mm`ڮLvޚhz"Z{(9zPf8Q'ĊՍ4=AgnWۦ*},s1V:Β4SܖB>2FR̨w/ ;j%?4( \(+h6PNy?8~_AL(߿W)\jpruRӹΡb(us/Ýs iEʝr\qkyjKԁ77 S Ew8[#M3v/\LZ48EHSc&7w.f}AF$_3ƫ#X9߸|z2M2LML4;92F{M6f)/@is5$e}(hP;q/mjzђ@ŊqMQiFsQ)D-+f ɔ%D1gv{ZoG1-}oiE+OJDŭ^,h@m V`B^Þ];#?^QzUpΟZ+'!2ť:PiU6p2>iUe"7彡k9 ЩHrҾ TEJ~v'j+=M^1#z(Gtws!Oc+;JrkV JYs-ɰƐGpܳᦍ^O8j*?8И<)r(M JSEc>Ғ4x^KH^Ks: CfdJg(..80]9\mL[e!Q A> Vٺ/gG Ŭ kRQKW^Lzkl9 1HP cmͤWղCsxKis gFO*@+m3a,üʄYjt<Ⰳ7`=f9 UW6XcjVXFiSo3ٳl(jU4pb* n<< e$gba Qw( Ii.t~͆$nt!(YB#[QG 5fߐ=!nM.c<#c-f[UT&`]Sp&8 %3B%'yjd=fDPLݸXXb@S ̕]{zy-n!L(czg|bVm'\P֞m%˓( |1mu"`P H1pY+lw,c*xxˉWNs8CRrmrr7eq{W`$`m߃7Xk0㇤"?p^G oXC}z( ẚSrRm@&*⑦ lRj&?Ӯ_RJlkֺk1Mb4d?N71HKA-* 5K[AͽQEdvԞlM*;1;YRkXr~q[xQƆW G"0*3sK&^nfMo`uM7CߦYgS /:ѣ7*peݑ4!E=hFOt3!-PM`Rk 2풓83>V4.:Ma^/*,ߚD <6w+Yݱz7>Dά&HQ*<VRWёV5Jl0H=EE!WcN!aFu;WgM57sA*${[K[lTޞ4!y=|ԿHۅ0T˳az Q㺫NdGN)mE:C-&';Jڴ5Cy]}Yw b('I j'<3 ST=-Ǽ;76>@檣%-עAJnH6òBO'V@DWUiE zD]Z FlT)wۇk"Vɠe?{ڑ9;(V["f~٭Т%۟ 8T)~e%&*Q\NVqx@9BV$~ п3jm= 8 h߰HIpL}%Ø) xۊ4t> qT^pDJ9C)).@w1rq1L=hΝpWgog[}}r < m:=Ieny&]vhY2y% t hcK MYbm[CJ5y,;ASTjXڑsS~_-&]h"+hPPggAr":${PCbZi>{E5oГ"5'ꮹ:|n둒HnQ6gW^׽Ff% ?fLd{ )\aJNT[PϚ˙umc~T| LlNRq".wc_ڪ 7;\9?^?t W cQ c BWOF]!Wm+toS~FdB͙(-r*0[U>_4$?2S.@ECRí4ӯ'-e;P[r=VȡcD~@>G.]ԀDQ 0g2Z7 Xa?ЄPl! $=\y̓P찙!88ϼ-b#032́r@ȩ5ܜ4ȵ;BLgVI[YᓰDK:Im5SpZCMCOe5ުI&#aNU=<ϲ6@fh;f׷ퟝjj^VaYÈƂR%%$:.0)/4h`%ŒYGb[2C;S glklӶSq;#YъxG;I"X#@OlѰsa ai~ן7cIO25͊cmmiDF@XUN#yFd/^(Gq܊..تDyG),v p"~@DŽ#<0Uy2td:D*,[Y<4@%F3? RĿ [Vs& xH4xxeOc1KvkbXlu?ƊJ̲0;1][|sGuIsjNBN"2ևPEDE1MkI'd{z]ZQlMI,N9¾DO=͂== .d'M6P;T>e14jmV[cl=yGͺN޳5_ ";6} ;뗻ڋtsFjm'6oat-giQR,~ _e/g6Ж< zIW>V;i G2`s42* $Yʩ_qwۄ_M]PB-WdaeՓ,DF+@ {9o}XƏX>QiI旰B|*#*YuU/孟 E'J9(cfR+. K1Beuk$PD $PZQ?%Z@3 T|*$k{ I|6E3:GQ--9*Z c`.ߖ~US} 1բޖzbxSC%rd=ÚƷ;Dp'$U;rrx*(WzJг7lMY]Td;@epvHVY$gX̓m\/L1ύolH[>F@U0:4; &K Cⷭꍤs|pR<JPч?r8@jH;?=1)IՔzUt?XJ>j羛iF 1~.ؠ&>?:N , EN[{I3Փ;!tR]ޑ 6ߗqښB;fa8ZOE`B^8݌oxz`aygcA.iRݘT>kTA c}걤s߮T鳬ik0z`́/.=)qjD6 qvkUKyTbSQG^:%sIdN(1Q&usQWG]gU0/K̯ubzoG@X-2s"pڹx֠ƯKfzǐ,U ?+Cٱ"#bbV]MsZv<8ҕGy>ضxq8i9Lb5[ &ڿ$/.oˉ睟K >} ϓRFo( K9Į豰_܍e&=Jlk;"w24мv&6I];OMVиxy(K[ ."&Oޡy--ׇE9o6iwT;kx= e eMoߴ1ᣈoinkz/;-e>9G,E äyh̉?W\y$JyHR&;QCIb=m&Pѩh?Rzs(7b)Hȩ-ӈX1A)d#Uܠ&0Wr4iid0$h>{G/Ty]_Yy-zK#9vOxTnk݇~bF*`UVx7N|ɽ%( M7o3W2A~s: Usn)mnϷSh%} 1'ȉ|#EI'9TTg,GEʼıPv* ú~0-OZ6$]&oOT&, -Zz/XO]Z#Q  &1LQcTMl=bG&,g^v_[Ks)|NzOA KB%<ۈ4J~/onǭX44GcXޮCqƒERÒC|182^G]85f=k(y1Q f[^K}B(?=3MȞ4[DDO,} &HY|<eZMF'ۄj꼃5FT˽Oa{ WĀ8j쏾k~bfTU#dF.n vjOӘ1قQπWm*}o5 +U:1fBf_op_ S-XmkiSC,0>-/"A[M4Z7HFs)D7@Z96=[ L& J_0T=(g/A_5G .-V\F-K!/w ^#wtyC4}֦MJ˞ 5։wCbޔ>6MXz5"I$9Q1Y$fV"9Gy>9P&T.ASЬ|,> ,u#|l"0~U DcUxJ">*S,MJ>~X\ Pws&ԅ<6 ^\yg.Zwt QtLPMn-X"_CF;9^fZUh; Z 14Ӓv鄂0r6P#OP1i@,=n?!ѧ`w&I9.Ы/ypR P6@7ڥԖ r*G(dQm4xbXuyd%1͞KڐL=\t)R_cɏ N궞W¢ !dKl?(t5>[(.`"?k ɂCԞXHZt->U*,53`d J1иaWIXE-Q [I[0I8P,dBPj%!ҧdP9!WG-|*!eY]4G 'r?`(sChn®_y_? 54E1z iiKzԟp6G d~̾JTuHDFmg+VM%Ai}Y$3dθ<>SaC]ie8olxMuWrM9㔲FXʤ y 40-y;9·нs)/~Xe uBwd,NVC u:)*sƶTyRuւn˺?*")C~twO_a4+ &T3Ͷ) 5)h#D/0%:1݄=?nr( 1hymh9StFN`5т/6Wޘ/dgʮK0#ǻa"> 3UIeov+ ;[^Z 0,iuBr@(A3!4V˝?ٴ͟nbHH$rt<SKhBxpQ$] 9vc \ZF_nN1QjIe\3| PS*CBP*D q>J ?~ KIVAu8?EsE s`-ƷVT!4hj͢+r4Lg'fXfCh<8a[ NVdϹ.`6#5>ԨTw߾e=9$G Knn+9~ [3=ۉZc$^"C^dt>Z_ Sz zڐ Ё{}WB3δ>o?.h3bfy,\!0U 4 /h2@un2+u9*tlvTCMAAKvZޠ8&.Q&Jw fD$H:|AVF~(s ?{ CiGaf8 wV:4FaƅNhɗD$SӬi8K2ONprE*R Lj@MR]gZ 4$\ QRO)f{>c< ~ Gb ͊b z l:4Q׉Q,]kAVN c|Zr Ip\F{ŦqpxIZrK_~>b9u響ZExZ-sFN k*PJʄ?c`P)|iHxPI~bh\tøבh& 0&ҨjeSuW|S)=;lhaWopk$y0ɠ`ˆIι~ uFY()+/ϷTA/Iqb5V #skQPK*EjJCxÖsx6 @T&D0Ƴ!`X%(3zԽhu }J5dO\U']\hjάou] 0UѕlyO QB$W{cg @Hi~p 'YuZy}"ػT`>l6'AÐCbEU&1Oɰ<<=0l4u˞1 Ujm+;8;򆩾.b/qa[S|$}0-H'edA3F] g7-rJ<}:yY#6,rv•UXZ"@(~#'iQd>&/ވ"ANj ߽ [PEguMQ CUтA] =o~n[ Faeo卩b7fPGLG6VzJ4ME?[LT;+fGEQ 96п"rex,w$u'E]؍#RI &`i[}]׵aA|ʳXӟ56!tAvhؑ-T33x3A H5IWuγT!bdDʴ%80%ڊب 6SҔ0 s3h;7{ HY/GO. lt{RU108uCi`}!# Uce #r|0qHedw7ҷ݁my޿rȻ4餼'ZPEE=IX8<'3>,Y[JbYH,]: 7A&nͶug 3hRa+٣%hI,cFRmzazmjb;ƇA`MW r:3`,d9*, H)X$ Ia(6,A뇕*^ڒ%<- yj?r8#[biii>ނlIC}ԟ^{zKtWЛ1B!tJQtǮ emxqpjZ}ʓ| }?0&88.`O;ٸ |ArZX!eVw89LjJFR:3iPw<Z</e(_9j$#IZ;nYLawĀn]ɶ,9Udh-a dt!2(ٺ_4$X)~@K^]q+ŰsL'?n~xwY v37#Qb"{xpA~ybuW0/>|NW7od%sL`45/ZV J+fR j^ Ҹ$Ih7J.z;u:1Ѽ+p1s x3g6$r,B#iyvч '_Zf"KYō)y9{T+8ykopTCV5O \wolo.qF}Ѣ=|Y| Ռ0MI] N] p=zp*(kaBwVn\6$vqUC#Ik?i"IU;V6^htw=b4nv2w' 1=3 w+X>sTQ_{qv^뽢02-}eV;!ъ@! 8ꚃXf4 X=_>L]F4K8#N;f_"=1Cw"vY:QA%]l>q-:K-"nQsi'D!*і&jmDR|(Җ{U>zY:hUFa1^; Րax5O ӡmP@jZ qs_b-ҜOej凅Px[6}ox&UUt".5HIN܎ĭ3#C8~}>YSz͈_o'lԟу0],(?lq4~~Wa Ae2p{`0Q%}nƵkon'bɹK: #b9F0#TS;4-{#:nX*h LrUgvUѐ"mOzY4dDW0/ԛG^#'HMYR%s<0dqc/EOu3 bnI30u|Ӯu C?,kp)`E%4a1".O-aGo_}uX_:7a(^s$m6;7Qɋw3t&opㇷv60[*>aN/S&{fz5PsD!ùaydW%l#7 qHI)MVpyp\}$ī)QF% 'о-X5wQlvsa7.2-.Gz=IŲR-1){˾E.W<{@| WbMԴ>WFzE#E _ԲL|k>1+J1C#`ƣ'JJWJg\Qw 癡2WQˠXWFə֓xfD r6vOMۙ|w/VCc#?.h>%3Iц%xfx/$@>U 8D@E]Lhl=M0e:fE ݦ>Ģr < @9$?:%~3ç#b^:&d* }3Ҥ<ӝl} h68$siK$GW0\@yCO fA҉;@̩ؑ5`v!>B;cz٘cU?_(n[& sQ`9ŖBsW=+S:\-'qϙw%XWyJpEjN]{YY)E- 9[ᒌm_UAY O49NjCK/PsxmCv MͫURuTu)N}ΆDQy>%TܘNCV!:pc\5=NFev?.WPtecs+ߺԉmQg4HZ8V͇ }~bBM ~>Ǣ*A'!nk`q/1e-0}VX4$mAD>M&F'܍kvBUO\I=J|w 75N}K$1r Qq6;N_  O}K ᔫJXb,)o{mSiC,U.&dprnŶua?Q]gaUlI 54V;g OzKUؐ@M_{oQ}jN2VsL}i(nġ3\˼ ޕ氊OS%Գ%Ouc;g) M n`@34lxeG4 1JoH{kR3NC ` a2GvJV"CmtI}X{tUa'Bt4ٓCjȍvN?Õt{ ܇@n:;bt_u#ĢoDO=~ ޗ({@Omm ]>) ^r.KhL?ށD|k#p6΂C-E(1k}mNNS ! !m{vcP26Psj.mr=/' nBmPtkn|^ob#HՌ;>{٥5-b-_ ^|iurvRS '7UiFȆn$Q]7>9B.b7 #Ӊb'2lVˉ(l]ik+ u3`$.r(&.%/ IW)1 ޽ dN}Ϥ2hrj[ 9]MaxUdCCLM`=p(fSR\Oe1a=R[i`גѬtʻns` _O-}bF% 樞D.gwlG$\i08SX_dМizNrI!릏QP (чFmIŃ`IV|J$|΂ѵ2ėA=zт@V7DŽk5=`,I~ JDHb% ځ̓kffc;%.m;ġ;za4Vub WQ* 6F1@cc!9ԕD25{UةiS67=Wu.sȗ./7['pAs'"i'fKB ^Q!9a\X)?su͙LBX296: kBzw}Sy8pWQepN[P|)p"[t1[j XbNi-<@n1/`q#~8qozt=cmA]IuUBN>űƤl=6PɬIk bt﬏ݗOWMպ^LlFȪpzNNSDd49ՊZͣ@(^Lo4\f d ]?Ն0eX̻ۥ8*ִh. HJ7|:"(CU> +SPձU/^" Y> -5 apldMf QMVJi9ڒQu>vJqX5g}Q~Zd/ޤMnh%S H:_"o/$d,ۅU ֚gݿfOcc$Bt! \2uR!mд`"Ozn%RIc*g'2(vUZ0yçw4?F0g5$E.뀉 B2yJ=p闢l}`Є%ޠoI-=[\CHpQ{.tj gʭoHf٭$1P7Q5쎞ֵ/!Z];MJTQQndU2s,bjqQSMyQ92Ic˧EyɖH%R}y1mt|DNLƓ{WlU+ܥrio4fLܣ*h#P9M.sW?עNaˌF?zdK/gI1B-nżͣbv8da\*{ 7h,[f)R;CNC4Ȳ&`W~tm'mxt@Lh 0k4XBN?b+#syznl| dN5I kq&@bKSSZ%v1/Pm]”zٻA>BCfsۂ轅 \椒ld-ɓV_b&֥"?ZnBzKur %ޒ'3>ꊡ݂IT"UWPWˏ/ijE߶DG*OZk1ITZ"BrM=2ӗQ2LUqV[r ku4O6"Fv,]ƠfG=?=Ks[Z7oHJtvWbݕ mBR~ .R-~A_pA0K.jE zNÝR&0E+k n?JgW WҋDU.L;<⻔BTU]C^c&Ж8;ī'@ГR-8j0oֶw*r;g3*BW6B<LF!I4~(C'JGJk8_xChs.>~ FBL*xUOU-i,l {]b=SxWSw J-|j/ίcZ)ՙMZFu{^9[5= 𦮗7T 竨pd|R7&x]MXlH3h෋ו dXoW{->&/_8DYmy;?)竈 [\}2<a"Ck~2${{*2g9@/} FJg^2Dij\:ՙWq$uQ?,<w2M7rfrEь@W1>}uО+QfIHFIuy\L>ɝmBs,͇ݲ1Fb5+#O){`3v>| T>*)2s{i)&mv{$ =S@B-r@N͂cӊzY%& /^a}VqrpNb(/e=A`UGvgВc[|AO!k1u7P6ė:ɹLX/y7&jVBOԔUCvSL}Y@I73VD\")ҙVѦ<#w8µP -v!hI]%0vœCz)tls"ř4hݨI-oqm,Fac R?NY YHZ7#A5bj5uԵU^͕05M2ãCkI7tmgiNl oE(s ρvCҀ@jsC é_>E|pxI8i{ؘ5 #8x!al 7)U\fa"؊[iS%Vd $ X&Y\D =jjl{м&u6&w(թrm=hAJ3 bG$/@Sa ιz`H$WU|=s(Y, YZ