python3-rgw-12.2.12+git.1555518691.67074fa839-27.1>t  DH`p\./=„2H~EX}2D~ۧ\Nb<;a (޺ވjX-w?385X:<$ϫrbrwrPoO)G]cP25W7j&68KrOuD^Sz~Uz}LwiXө{7lܰV~npt_)}w.wdJŽipXR 3mkH  5 3143eddb36a5eb2db10df3b68b69d9b156a19135P(\./=„ ;Dfi-O?sX{zhV1D1۰ac[?gg3{j7y#[SLVm;zoyf7gCijK>v:e @2վ1& 3(EX0&E9)qc0 }/}Xҳ~2oNP[VeF*#kf0Nv^lER7A;Udrbi5`[-%?qҨ>:?td0 5 ^+ Darx    n tP(?8Hh9h: hF~GHIXY\$]<^bcd1e6f;l=uPvhw x$y< zdCpython3-rgw12.2.12+git.1555518691.67074fa83927.1Python 3 libraries for the RADOS gatewayThis package contains Python 3 libraries for interacting with Cephs RADOS gateway.\&7lamb66openSUSE Leap 42.3openSUSELGPL-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/Languages/Pythonhttp://ceph.com/linuxx86_648A큤\%n\%n\%n\%n\%n\&438464bda7ce30c96d2610dbe9bae5139531be691842852d3348e5dbcc69b4a568b329da9893e34099c7d8ad5cb9c9408804be4d1b827ca413a1e6190228fe64024c6a36a29bbe265f922123b7fe6a80rootrootrootrootrootrootrootrootrootrootrootrootceph-12.2.12+git.1555518691.67074fa839-27.1.src.rpmpython3-rgwpython3-rgw(x86-64)rgw.cpython-34m.so()(64bit)@@@@@@@@@   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)libpthread.so.0()(64bit)libpython3.4m.so.1.0()(64bit)librgw.so.2()(64bit)librgw2python(abi)python3-radosrpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsLzma)12.2.12+git.1555518691.67074fa839-27.13.412.2.12+git.1555518691.67074fa839-27.13.0.4-14.0-14.4.6-14.11.2\@\\]o@\\\2\[ @[r@[O+[3|@[,Z@ZmZZ@Z_@Z3@Z1@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.comncutler@suse.comtserong@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.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- Update to version 12.2.12-570-ga5818db927: + Upstream v12.2.12 release * see https://ceph.com/releases/v12-2-12-luminous-released/ * rgw: SSE-C fixes (bsc#1129973) + spec: enable opensuse lttng build for certain architectures- Update to version 12.2.11-566-g896835fd74: + Upstream v12.2.11 release * see https://ceph.com/releases/v12-2-11-luminous-released/ * crushtool: add --reclassify operation to convert legacy crush maps to use device classes (bsc#1112833) * ceph-volume-client: allow setting mode of CephFS volumes (jsc#SCRD-8258) + rgw_file: only first subuser can be exported to nfs (bsc#1126423)- Update to version 12.2.10-551-gbb089269ea: + os/bluestore: show compress and buffered from WriteContext + os/bluestore: fix rename race with trim on replacement onode at old name- Update to version 12.2.10-549-gf129842039: + CVE-2018-14662: mon: limit caps allowed to access the config store (bsc#1111177) + CVE-2018-16846: rgw: enforce bounds on max-keys/max-uploads/max-parts (bsc#1114710) + CVE-2018-16889: rgw: sanitize customer encryption keys from log output in v4 auth (bsc#1121567)- Update to version 12.2.10-544-gb10c702661: + os/bluestore: avoid frequent allocator dump on bluefs rebalance failure (bsc#1113246)- Update to version 12.2.10-542-g793ccbe1d0: + upstream v12.2.10 release see https://ceph.com/releases/v12-2-10-luminous-released/ + additional fixes from PTFs: * rgw: resharding produces invalid values of bucket stats (bsc#1110419) * rgw: Fix log level of gc_iterate_entries (bsc#1114414) * rgw: dynamic reshard fixe (bsc#1109009) * bsc#1110415, bsc#1110416 [#] rgw: es module: set compression type correctly [#] rgw: ES sync: be more restrictive on object system attrs [#] rgw: ES sync: wrap all the decode bls in try block [#] rgw: librgw: initialize curl and http client for multisite * bsc#1116205, bsc#1112872 [#] rgw: allow init complete to proceed in case of erroneus zone deletes [#] rgw: period update: check for dangling master zone references [#] tests: tests for master zone deletion [#] tests: rgw: test_multi: python 2-3 compatibility- Update to version 12.2.8-467-g080f2248ff: + upstream Luminous 12.2.8 point release - for details, see https://ceph.com/releases/v12-2-8-released/ * bsc#1100101 - Syntax errors in the man page for "ceph-bluestore-tool" * bsc#1105251 - Configuring PCF is failing when configuring with AWS signature 4 * bsc#1107857 - ceph-osd segfaults in safe_timer thread- Update to version 12.2.7-425-g38edbb7c2f: + luminous: mgr/MgrClient: Protect daemon_health_metrics (boo#1104331) + ceph-ver-hack.sh: do not touch src/ceph_ver.h.in.cmake- Update to version 12.2.7-420-gc0ef85b854: + upstream v12.2.7 release, see: * https://ceph.com/releases/12-2-7-luminous-released/ + bsc#1094932 - luminous: osd: eternal stuck PG in 'unfound_recovery'- Update to version ceph-12.2.5-419-g8cbf63d997: + bsc#1099162, CVE-2018-10861: * qa/workunits/rados: test pool op permissions * qa/workunits/rbd: test self-managed snapshot create/remove permissions * pybind/rados: new methods for manipulating self-managed snapshots * mon/OSDMonitor: enforce caps for all remaining pool ops * mon/OSDMonitor: enforce caps when creating/deleting unmanaged snapshots- Update to version ceph-12.2.5-414-g8450ca79c0: + bsc#1096748, CVE-2018-1128, CVE-2018-1129: * auth/cephx/CephxProtocol: better random * cephx: update docs * auth/cephx: add authorizer challenge * mon,msg: implement cephx_*_require_version options * auth/cephx/CephxSessionHandler: implement CEPHX_V2 calculation mode * include/ceph_features: define CEPHX2 feature * msg/async,simple: include MGR as service when applying cephx settings- Update to version 12.2.5-407-g5e7ea8cf03: + osd: do not crash on empty snapset (bsc#1074301) + mon: add 'ceph osd pool get erasure allow_ec_overwrites' command (bsc#1087269)- Update to version 12.2.5-405-gb4dd2afd81 + upstream v12.2.5 point release * journal: limit number of appends sent in one librados op (bsc#1086340) * RGW user stats fixes (bsc#1087493)- Update to version 12.2.4+git.1520347944.ea5f50680a: + rgw openssl fixes (bsc#1079076, bsc#1081379)- Update to version 12.2.4+git.1520094840.20594f896d: + merge upstream point releases v12.2.3 and v12.2.4 * rocksdb: fixes early metadata spill over to slow device in bluefs (bsc#1071386) * mon: reenable timer to send digest when paxos is temporarily inactive (bsc#1070357) * fsid mismatch when creating additional OSDs (bsc#1080788) * rgw: malformed http headers can crash rgw (bsc#1081379, CVE-2018-7262) * crash in civetweb/RGW (bsc#1081600) * bluestore: db.slow used when db is not full (bsc#1092874) - migrate tarball generation from tar_scm source service to upstream make-dist script + drop _service, _servicedata + add checkin.sh, README-checkin.sh- Update to version 12.2.2+git.1519207306.ac2f91f62a: + qa * install deepsea from packages instead of source * add suse/smoke and deepsea/adhoc suites + rgw: make init env methods return an error (bsc#1081379, CVE-2018-7262)- Update to version 12.2.2+git.1513357992.5030136da9: + tools/crushtool: skip device id if no name exists (bsc#1067119) + pybind/mgr/prometheus: don't crash when encountering an unknown PG state + mgr/prometheus: add missing 'deep' state to PG_STATES in ceph-mgr prometheus plugin- Update to version 12.2.2+git.1513167344.b87ca3c12e: + upstream v12.2.2 release for details, see https://ceph.com/releases/v12-2-2-luminous-released/- Drop _link to reflect that filesystems:ceph:luminous/ceph is no longer the source for filesystems:ceph/luminous (the Factory/TW devel project). Development of ceph in Factory/TW will continue in filesystems:ceph:mimic/ceph.- 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 SES5lamb66 155681746312.2.12+git.1555518691.67074fa839-27.112.2.12+git.1555518691.67074fa839-27.1rgw-2.0.0-py3.4.egg-infoPKG-INFOSOURCES.txtdependency_links.txttop_level.txtrgw.cpython-34m.so/usr/lib64/python3.4/site-packages//usr/lib64/python3.4/site-packages/rgw-2.0.0-py3.4.egg-info/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:10152/openSUSE_Leap_42.3_Update/1cdf31ff1f933a4b1b1a54c24a6e9603-ceph.openSUSE_Leap_42.3_Updatecpiolzma5x86_64-suse-linuxdirectoryASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=c005dd4a898636424f8e0b0e05b990b59787e7a8, stripped PRRRRRRRRR Ĉ=N,t;?`] crt:bLL'Kmuܼ@s%E8_'tY6XY9Mv,?(%)tnE<9,0sMK{М\- Ж0hYC.@g‘,¥%#=FCc2KoY[ !yȍnWU1y6GΘO <8{i( ʨpCF 1?OL?^]"T#L: FM=m '8>c8BKR:p {ѕ6D4a4#@AoS!Dv\ ܰ1! T<uvNAdvUG ~VͩLmH>]xaPOXHPmZc& ~`}Lx?tJ=*ACM[卉fC߂h5'EoZ[Eĵ/YΡ녒F V_L?'))Q7ۗ̚m7eG--.vp0uARϥl= PoŴ{#za{$ U2ϚiôAuv σ@\ NFWpu ^B\Ƈ `ǘ#CD+-tuH|Oy2V%ppeML"ĺz{]#gU{AIaέx-c'~3'/U#A6WΏ}3e&/u EzGsK(8vrLQ(QN^fM`Qs9?Tq>Czʹ@݇e/<$' ^jTN_G Mi|%c¾k/^?X`a]zrd4LB0!sq!"]0بR q(i Z]a6z_NڮGOp(qHqMl-Y*ԪcDNւ=Z \RXOjۏc5o 뢽֦Z Ѱk$[IeL֚ZE QK[Q4]2I㞗x6 ~{'"/o;0R2Yiv)5R@י_,Yka ptbƻcKR)>C^O-WβU`GiZa?1wM̧~8YToٻ%G5:gCؓꅐx/o*QkZJ*,ؾ3iɪDF4P;kV?ɨ4YC@Hr,+.HRBχGn<s],pe~ZUx5f\eH'^}i~ABf]:硿_KZc:Jbn+By`ɘW 95tup 0N.RQ":4K ۞c}d7BLKKz=H@6㙎umr׉& .]b1B :{.ʸY_eg̴]^K浲2fPӂ~Tw˓LmIt3b/ض.N NB3|2N@?W=L*a2ȿH?~w`,`oI@g,.xghd|jچo)"ly妔vyu9CH+svf Ltse[$hIO i1=.6LalwNQ^ֽ _0EǣËSЭ͜2g"'qSveӖ0kd6aѡHC30x&k2™R/E=!_/#=emq{ϳDZ1%gHV3?nxl %C}h 9>$DFjþt}Q~k]9-Pg|ش#QE+^\gI%{<ꯣ^sÎxΤ}!cKYgQ=}J=ڻcۇjׇB;x, k'|P9L?qJ$.dH:m[$_R'Yt\AoD8Df_BPӸ[:FJW\[14*ŸB};JKdンmP'=Ř' laCց ݟ8{k%N q4 JD<0 HVn-^mX;3\TEGD W\—0v)_"lrٿJ ᜓ/e1Kqx6AX(>0J]3Sǝ֙ Ԟ:cJC+]8bx;T6SƴW\B焻7z/W :˃,+$u4x[ߘ5YZrpwT3 v.@wi1AO,J}ϔ|y!Fߨr,ʸmuPSc޲UcfAcdξn4*ap7 Ep^,8(;f,Q讀 *uĐMJI \B[7\ܶHd\$aD3p rah#I3O+VSXHGc_4%nݕ֎c!H2gEjZys0fq ?]Xܿ!_پ% fU.sm pCb~GzN}cPtGBP2'M@amB $/YXEb@( N_C7&gތRaUX㇒mW`{^ fYz~9pٱͷBԆ{2B)MFHq \L1=:?h\6}3?) |'O3-h&-"9U[FzMD#rryK'~c/nt@{CSYŚc/U'0 5cn'c=C۠9PM[0d7Qu?> F;$sP%QŠpVLj8=cDzgBZ&p^P v+^'嚂9"9[2!I#Xcsrk_gNF/:*e*[ǏEմ5JрA[5)#)3f!mQXk6gsp-D<~&dzm6^Yv>l V\Û/ݳ~8̾<ϧKS,ZDr!0 d9땼9Rt,YCode9npֵWh|% 'D/E<40Whpfo(i?8;J36ތkQA l  u),Un͓< -&SC~ cƼyhi mTy=[hktS+#y:j MbYY?^ ͈떁DQ66]^̷Cr`>z-u!L=]BclUo ~7潧#_vBa0WG rf&!Lh(3*vk(I=aqMtH}H*^ >DL`pd( ]ԗlѲ|$XN8n};j›<@7묵5QJڅp$TjNŴMs,-Ȱ<);0xiQg CW-? ĆueS;Ys/"ZW2je[ <×5O/RUT1{wsbVXAsxǀӿ!z Ghbt;[Qߚq)4jD1[>%%6eg.c3|q x/xɿt>.V1;*D>s®Kksw`8.3ؤ_cVE-ۻ⭂?UN9i|J(4L6*P?k!o 3֞. ]a`OS"cI@"cjT&ķܾr$\s8OD٧XJRXޣA7Yeud8;z!vyq DIX;=StXNC#*вNoE`[ H<+rN\F ^b) d󨃿꽣ЀaH؛{ ; ~Х)?Ї*Sݰ=a=rYLW:8FllE]LGMY!pt/sT>G1!Sr,,v*_K8z !L=adוn-_z#v17↹ PoA|22Һ2LssL\l^% ]%9s`dNRmQ vjQE% P^n \M|"Z{ܿjPL,kgW58ak{f?VhZ{BFpQ#<(pd;ٱQ6JvۻaDR?$l'Voz FEU}myy?r=;̹0&Se ײ M0KB ~C SsTھnX<= "LY`?Æ1PK" nќXA\O m䐪/7 (@s>(!Χ枿 33횴ywi 1/'s4A3OGA$L]<2^Fp7"Fۍ[.C&ZEB^3c DIIjN4}H7]-WfnJZ* 9&M #xZ9SCvVv;P"j{F6} v3"[tLQ5Le*I>:  !.s*ލ6 &#:)?ƙEnT27Є AS|T>]j&QV,aOxr)\,w1IONrY/vz?hA(*E6)lg}l ՊɌ^čfE)=ng1saB.һ8 (LIJϒ! G֣e~U\(Td_8`e\x"3d{fРiAT B , xqXh -\&]W[%F 8j97i&-Jd #$٫![\@Хgӯ_r>se&dc;iϯZz"Lb&/z [yom?!CL'.ţ#cg~?x|dԿ=C+fYM5V$m}q̼vGbvKx7xEJ2 {d){0) 0AA&7n_ὬP:R-OE#p3+s'T3nՏbHѹc$OZb $r-\U"Y(VZ^M N c\KWZo\TPǗëQ8) P!ab*9y1(@q鯫$+4FDP m-B&>b;2W/ǘGR&J* KyF֫5241RcjY rN4C Iw8ˣ;>y dqҕ[ߩ@s)gChO !Jq݀Y; !7< "2t" pǧ*./;qbzd)xt"L@հZԜ@L%trx KFRC$`*]t[zdEHJ5iYńG4>06]+.#s R`%PT%g&OdYkѓ߉%h ;Rvˀä=". wWblvhf^ջrWX ąqڽ@G{kk|; 'frpnac5ph¤߱ ڠ˪';JZ;g 0~&m.v+c[d[ׄ2z\͇9xi$jn2r:Ph\gjgǢY*/L>6v{;IIGXE$ aʆ4G?["[roxsSo#KH'GJ&l)~)&2Re ϱg 2̆Vܭ/,/, KZힶgO^^%* r┆ر0eE&Ġ. \OYBZҤT㍾ϼ8)Hc]DIo0*:aj9-QYgxr6H,0d,X/v3^?צ0$[V5hEB8"'II~g^OW#\>وC*wnӦ11F,kFvmCe>`,$qlm&T7>58َwK,&ca2soq< ,~=}j@XMq}aua&Wt<\_(@E63wo[ߧ݁{HQ(h9QU5o;Pbh~9Xh|W kыDnAwec J8In{ԆeXHE/HK"ˉo"O-OԙP'BX7~"y%˕Ou" g43=7nұ<54^-sN.<&`ÐR(PJֹX'!Bq /ISd{Ug%_*$/{O#6bH"Cr+L4Dd: ǽ}Hku-N6W'clݎ H8+wPŖ'|vz~?y |5 ,k!h&QZK&?P~3b+OvvCԶ1r^!&Z8r7# PϳV=M \V)7WE#Y:*Ht2R@!7Q̖d6ZEU;}&B?Ù֛wHť@ùJ9 {0,,YO 5D^lbNPۣh!JoՈ4ڇz}]+VewU`ۇTl\VĠ9|=#Y Pc6M_,N=WŰ'Ih gMu2[Q[Mλ*`ecR<4|=[ սD-޼<o. B]L\0]Z=-t$V#?vWĩG"l l{[*˘~q}+l1*CkƏ5+ *k"!!8 c e v73Ni@ךœ"DZ:&޵&Qq< ~ClBM|Aj-)5T|}v =5A󋈛 YX-KطlqG>v_C ?@.G7a)! _P&UKCiC+HqTH8kNC h<ڀS-Ї<~o^f d|ʏTSydy#l&#*22N~8^#e5u'^eP?2 -D^hΆzN+\ڮt*'@MLҼ"YB4' Ŷi37C;+[Žb,d=]DU) CXƉN;H\f*5.iyW|48Ba ҈mj&5w1sgkm)~ )?ulFD(wH#A`ELq@+tZ79`]Ƭk^WV4ѝYqVaBg شoxʹW9:@>tJ8lfp-jrgҍ Gr}"gL3{ǥsQ{Fk,&%`ԌJk@O#q\V! 󊽭WV3+bԞF*;Z>Ԟ[% @'Y+ = jcw3Zh`ev;iKOIĹ%`QA2q n;sWg;]1WTOB`5= vJ=TmovZܣv.4ݖ5Q|EDJw!hGءk΋<_%9I k1AE7S3vy9WJEC'b~x[?믈!l;ʺ2(GF;kDoRBݎJ<39v Խ h"w+ozMM H;6}evǤioQcʱ`m;Ѓ{ůť,I܊*3y+הFMPdRl@1ŸCchr.k(lń˜H:a6KDO`n/ҝ/oR֖֏DahvdF|>$15 a͈mHR|Z;|tl9'T@V|i 1R>nκ=-xGsČ 1B6ꆐDjC2ڬ/{lhvyOդoZRܒ]㶎yCL[)|D|p.3DSC'D\t74G^enZ~$iEL2Pc0VUr2(xU$m Hɠ&o Mj%qq9K?!~NAV,"#B1)fHx*" su.O֢sɖ#}e4jIrMOMR[h]tΎT|=z:X!3?jQ_aލs6/?qup { թu\͆ŋRɜiag{* `$Fg~[L~0VNV5Y9dO1\V;1&[VbNz-!Lᕉ9bЈ}Km-s91}*O ?86oT`H5eѥDu@8`fdLN:е$g;&YRSߦBd~[ҟu fE`1hѪiNTD=HomUK[1Y逽$+Fca&y9>JaQl̥CUqp2ة,:- p:SQ JT)ܵsFbIJ;ٰ1ڷVM1^̜{"8}e7i;hA0҉c ~):dI@S=uWtUvgDva+J]=g`)~E(j@UMᎾD$ճ2h^7kV )yZMᅲIc9J}Z$XbDnbxCܐk3@Z< 7..CJ~9Vj8"!{~#jjXC$x܊ud[rQ;@a}v{=mj0rU, 2kO0S>7t+ꀯW``lDŽ0ɧ5T-Dg#m9i/b%dUX cc]jG~{I,Ȼ4G}W' X[&Ekue?ݛ:Ms.+_?L $~U+؍4Ds>Ŏ][FCpShK ը!4'(lJL 3NX6Mľ c镯v=0w, Jf *)!^1G'VqzךS0AՍ4hdMլ- G7£cxWN"7v' Uj4*+ڑ.I-6%tШE2x=Ia<Eߓ\{Ui%^_Z 4C=_|2]iȆvdl];>R=}cgE:'Oǁr"CY#+u a"a#(2NxĹ&gjLʵ_ e23!eq6 .MLO5ZCAp2K8Ty !2OYP=Tgr]:LҮNjO̓Y3 7SD,~Dq "! _IU0q瀠ܘq3O{lBm6\> o4TK o՘c`w㗿uG()v)+IYoADZFqJg^tCΎ17C\ e6cxTvy69lSb)h8i``Khwd@J4+y7 8cC-t#r/pU!F`4–3hLѩOFkH[)HҫJ^ߋ,;=vB̝(ok +r~ P!FtHDLhor:X)1lnV[(( i\v9BlXwB8 )l{yP{/=<.>!v?5@|{sjXEX译qB1Ŋ$"SQF`BfG%aO^(n#L ')rhrȡ IrIhxiĮg\#2x~N %uuT8O}0:&c] w*[T ',E ._H1LIf_Q\ m@V_S:oxj"Ctm"fP6X:h qը_`Ae"̀R9(* N˖=fHLT[nx $eC'z&\-c11UMEi _~ &u탳1Y8$UڧweOݨ.F}_=jv{ Y74'|+sPE <G@1>d_YJ:mKzLШLuFoMv-3֐%DK N0te1k{NsK5 s_@u@%xedU;DK@x/uUHΔ٤ S[7I8F~»??CFl*Re\F6؇+})}h>X; 2k%81ΣmB0y*71 ]K(;pC!2V.zYTbcIJZҧ5Dstn5cWs\(7 =md]wE{P˗"K"El5\>%^WS) *؎.Wkͧ`Zہ:"5"`BTAeDk[md3<`_7~,g흙W[6Щ۩wt)Ugܮ솄'*-v!g+"/#%c `AY,+rYb~yJmRΉ'3:|:>1s<ߝD}N=[꓁Ǖ^;HƠe-px #IlJ4Rxڔ?`VW@̱w;N5;_ UyI:޾Zz2s}p`6ī]6-m,;(G?"BRttMpΑڷٓf)Ռ3ǒN*qB -l۟= s(e77ct.]T#ȅT bo{Ɩִ^wIZq\ʵ&"S]BGP2ȍ1Jk1E#I5|%$#+qS=>"(_Qls?lkipnlLck qw|ܷA:O0qO6p GcA@󞛇wՂ#-:X5t2|d@L*ǟoy&V> |z=~v_Of ӡʣXJK=rݒ-(X!Ԃ婬=CwE#7)̭,x:DelN&!\j¡g0'G!U dVYH4zއ &LK2!^ 怉Z z1 {O [ogMqptXꈒ?/mP߉{mCӹ*^uu FV&Fϒ(f}#.Š6JIf4CGl?\U ,,]d9]dLl Ft&5r+/))qy^j}-?=落fKZAJwd.4OU+ 6DiԆ\9eyVw՘ Iۅ  _K+EyIL\%՝awD>$F r6b^VX,;ҊY.0Ur.65k#po\IF@h̒86'RZ?H,fl[hϴq7[yk#д{H፸] ),@](Js/]e(arx;zI-|FP[F{EE$5fqW}ұ5Z9`_>c2Xb}̩^XP!ғVvib3QZƇֵOaz} ޱJB'_±#F%MV Yo#?$)Q5t-qrR]M!.4()mӗP`A)1^p7uSI\jd3KLj=$9h % Ύ;K㷇輘;he3%KXDmj7(u$aw38"GMJ Ykӹ-~~Kuw,!/(}v@QO<ͨC<^\9,G" uTⵢ7YRdZ%C)^x۩pU16~?Ko- c2(҇Lc$UvK_{R:՟ǠX,[ mQR=9"LͰǢMY&+ `'k qO)"' [agpM-u@ԖZ`~NjԝApsv12`"HBKL,8I?TODchpj߅˴i<229P]*PeJ)jm%Ȳ9¶[Ulu)KĦ;#³@Gڊ\uݤMTj1u_0$|H@=ח !}Ӻ__f K,rc O< ~Cm6_;`AtϏNG&6 sT)Z! Jny}eGWl])N#LP)k?0WE 9FEMxrv29s^iG-=Lm1'YA5孆VCݍ] !Pa݉D͞:HK ߲-+0s %@NaZ`|$1N!+$n%IJe¬GTjq=Da#P%[xRNsZ LX" QKqK#\90̫ &@71ݫ`]yq21fCT/]7Qc.&9MkcW6/ߊb\z|051T?ZL*ǻkϊtjO6<A_2 "Ek;Q|{Ή F^mJnn!BjҪz5~LB$$[,Ժ.Zd- v.GcRdGCXf>:j@7ץbgBOԗ?T"ɟͤtU$a,Mievo>=1#LrI$΢; v7Ո_dZ -ذ X'?U+MO_9jmm.Mɕ*ɠ‹^~s.c :yC>C1M[E8XW~THB}1l-apӴRXI•n{jNc(v-,DA=mKs>$ZyJAdlн_o"O-_/`ܳ"sbfY%nrw'<i`#اťq}bf*UZN*J H?C\ߟ7Tm@ea_x \$M%Aw]8o@U>?]yn,Dc/I 1iRL)H|vb(΍YO/ h"%E(^{d0To/$M!-"抔i2Hã.]$G{iUBye)6b%g 'PD& g'/Kz#?a³*iYi >g ,[8uyKD~*R`A|?ZZLø Ӂ4xv>t٬]z w"] '.`Y[s3 %yL"WZ.Wۃԏw&z"Q%V`k36~E8N65d,'3Xrd u{͜@$l⮞_Iq(Dx!H*/3y=GX^bhYM÷ErX۝7SB+x@jW#eՑ6w8y'pPEnIYch99]cnum}ty+4` ByP͂;.T}NH7*ϾY5t,yj)S{|S,2z6qlϾC]>YSypsGFη9C@jq5ݷŧ#S[.;ۭ-MT־%ig. U{S;3If9_(,_FF۸UW97#ekN-Z0nuä ) _t=q:q-&XEԄI*[OO67ΛS}Y}l s=E%9MBsf0eegڻ%i:|`IRxz)!j8@c;ףM$~ڿðCYlvd_3LGg*۾h+9F%(!4 JbOho1ǭ,_-0~ Il31:Y r-:}K͓ռ^[L$uͥ>TGX5Q4P=Kxk߾eWmf1QzZލ*/وp:ԁv3oN䖛lRQeIsxf>fn~FK۶7UHÎMպ1.X,oq(<H}[˝ -iy(péAuЌFӑky͓/Ӽ:]c=0&Ӻy(gԡR&qiE@aul!rtJH+$&!)3Asزh@݇64li9¹e9D9j/Ы2Kʘ΃L32^&&U #1HN* 6f pZ! OxtIkHMrE~Xa> MlkRcD"ơrѽm2<x|Q^aG&#o 8Yw9p+3}nN,/PcUeGUog 1Ut;윊Odrp[ sٱΒ!S}eۣWHNޑA2IF:h@ & Fut+`],{q(OfaXL9V<`Γ<-Zi:asJ|S knC 5Dr3q|C@m;f"'-2Er`LcEk_xyo [RC/5>74`4w@g[#u0zXhrg@5ҷ]sUcs\^N+xd2w-J-|[rEp<jH`Ovyy6!1C"?o3e1|Fkz O޲^(-vJ:Q; 0+-Q=Y4[sTDpB:] )u 1B2. j/|{ >Nٰ.ȿgucik,<jS5r|Y: vpbK-W@&E"Y٠;XJ@!f?U<_ߞw>Vq%ÙMM:2;| (!m,Hƌ3M#{'EnC̙tWΌeM]~Z_yJ2C .t vB_$o 2޵rDI-䠌HZ&H˚[Ny@䱼 ӍHi×%E%3r ˚)wj2L2Tj@<(ߙJ /v(8WS ZJX6ʚՓ% vßQ#3k]wTfJJ5jSsHYLҜK56eӃx>6R>.d' I(ǖ51۽}A"<! +~|*w["k9miٺgDzJ !Yiޓ |RQTnimkb\8XCv[Nj &x"dϼJWo3ve㗛Fy]9ap]JD5zná>QE[>ǂ< 1fq++ cW,2~٤ε[]$Fc4zHHTdgcx @ {aBCkF2:!ht]Oݹ1#H\*kG;LGq -@ڰ{^KI#Y9Vi~s*Ñ?>1m'_7/&H7B|hԩP@Z$mldT4r1w,T]n?v+b8/.1(bY$ 頰a $ G! ʓXr{:9+y"Q٨Ǻ~WgNG&b1{ΐCFJ\Tt{MœJH\`MStՈp70nSԈja_%0J(8qcLMw^M5ʼ)*VRw1ma룟X;W,_{qB"y\üYm_Rb/徻K(h%l*Ϡ0|-2e_*vFX0оNLSwBt1ƿ6r7B8^_F\s\v%rMS991m)/J2ثG{ <)m?Iq$5s2:A)Ҳ:K%F?D)/>y$L< 珨j-UݐآЅ3O # 8;z'gVBm<:-T \6[#vyoFp D+-R0)r2nJcPസJ7Qھ)J7eUD2&2@cGC 0_!`t'"UjSp RK a1P@a5Pv/UiwG5%II发i|>-!7 db.BtBvW0&h>bOm4h|I? Tg,B)LrddTJ :EԡJw6塗LQ{[~y6ueY@,:<ҁiI>oL>Vo]8n^3O;Rj웠zp=1Xp{Q>H"e@ϣPwqGI (fO50!-x N5FGl#yB/W5Xmې7Ĵ=$/&]|?[Hl9-%)njhҎf! o79E>֌qcl+h`Ċv $fV!!uT}$+SzW 9տ F3(xu X@Q4oU| ݳn"8ZtM{Ճ1/dĉ9<V*Kv:KIOT/f{T?p磄am0CL- e~0VIgJX/  x4[?U]}Ll^S0A,;XeB&)1U&w^/렂t|gԇ2nr}y]'p(Pfeo& ZQr +s*wl,-P 0eŮ4ç_LYa;+YU70[6nQ淉4x@IX&_]<,8vO>dLDTjHfqqc}ʟDr#}mxǯXoܪlhQ}b6|z@ПGOV Qt.Ri@3)pSò,=jC@N,$F$b{d8if[Be~^x؇!91o!nMwÆ0٭`;iThoƔXO /&ZAQC-Ita?45o)TBv1YZ[Lю6~(Z|zL;´NI\"ʜy1B-tٶYW䛠8BT,$E5R! 20;LJ6ZۗhCc E\! q4񌔜tƺzb4<7l 98عU,vx;fTKAJ`$~uepexhfR)3m-3=7tX zZG4BN)+vE=!+h@5Au۳*}mB&> c Ԓ7#Eڗ١#; ۆ(*:j-.F)-]+s|tZAe10"܈G3pҹFjS ͔Ýc^u`nWBT}-`~dYTdG~~ * c6,?hZYHROGRITzqE*Uj;QteMt$+mks3:.359?a_8FM-6+Pe]S<)c ˬZ8a& pwj!j鹥NjP<@:c^醟bg!'aT,,N?Lf$w}Rq pB#+UDc {л.P"5;)JmaLJ(nVT7paL$j>fayMUYZW }@S?u޻]§="d߾'5u,jA#w$6!Z ޠ1E r5qB[|j{UI|?ԬQq)vvKOJzW1"2 $ RBTK(Me{W5ҨGg=m$)<.; jς|9 B=*=>9 ,eH xG:EnctR\troGgrG{-oqy80:1 2*kˀ7XW㳗jWžROm U6w6\%2: .en n\M)2[j }@&)1{u{&je]cGf-eӟ#A53^W3VLp羇GaH!jF< 8ƺd3'7UD(zf5>[x8-juՕuCiD3S^םAW2+ kR:{,7xғI C@] C>Q\ڥѥi$ Us6:Dz/yv:lV&VHjbaȰ}Ȇ:Z%{*?Ի2Xg+>`j WahZ\d!7+f01fxݟFȨݕ_fޜW &U<,7Xo&[k(o늓AJ˅b%e}xD9םUvʚ:F_ xٲ/3ѻ.M]̱b3 %ŠviZ̧UT5eZeFa(XlkSSay} 73w#KA WF W;l5q^7ko8r}0^ ceMHVWO hNT۝XE<8F! %::;yskA,5;R4z.E@^ =7_i66U2 az a!ݐ?˱X|' A4&R)†XN.K #ؘX%F_'w ~ѕ*b*a񩑍П>ߐ547<17UiX#:0O+1TY=s(q" #;#V<xu磌U2L7ATEJϩV ѣ@p"$qr  ljym-Vo!8oVGDK!L JsE8soI$KF/7QzXmvEz*q$ jÌ:ږG ]2Ŕn@4Pa_FHzK>n9g:j09ىFŻy7c:4" &s)Wvj=@*" vFG% עn~ 0{،$0LzeJ={hS.'_yܩ1՗8?(;wهT'B3Z#8p V[0Q:n??0Q3NsUQK|t6y$V] ܵ@O`qk2#gi+XY#w:3P*)@;ɇ"9Q9a틹|^*[OבD i@eR "&negAq 5EEgC::bLqÜU#[4I2m}a m6=)1i˱k}J_0燥gr67 <3ʲ 0u8+4#pϒh֯ӹ6~-صy똬[JZ$v 2KX(,?,b!d6b2>51?'V}[jl!pR2]uʊ 1D"8+7UK3` ƙ|Lxt {jqMr0{ O` &}*_ =t%րh)J Pi&w=JrjV1P(R^d-O郠GJ ӝAJwvF*wjCYDJ<N^+Oy<$uWNyWta9 z7+`j2jHb\QOE5zQ 04d uS }QǠɧXjI[^LB1~$P4+]4` ܓ1ҁhyF ʯ.0&P}]ˁɅЃ%LBY1xU[ qF(UM7L>YOusĐ][} Omd|/XE&lh;Q܀45ph^X4w^Y1/՝UzZvJA1z&LZ ?>jn5#Kmd,_:vWԘdcH6-Xg&dW<}hD/m9L/U 6+!nUfJt#A 2 7P7gF A6A &ށ(TP-R7;Dvۃ=fꗳ΁$yz"{,**J@"+L'` WvҩDp8ɜig*F)V,\r`Y xEpvt5 l4n@IbJL_bX?8R$+3)aRSp7>/dU nFgd U xر ۓvCoiaDzRu?@yLP\ NGtmJKq>U5gu$H'PEԖh&% ˉTψWrP˄B)s| IY?5E9rH ]INR8tq@NdVXbIJ8Fz Ft{>l,.v-UC i&1(AcLђ'<PUI6AtB-< և8˥9^1w~oei {vPaJ쯸yX^<2 G8z>0Xvf=#_&}{B7 /ȮᒬO(R_b  XKSDSz_s.DJh䰕-0q8uٲI1w2{ lZ.[8^ CUNioJﳰX yp"kTcҁNFT@#-_I(lV0T0czUbIDl+vgPtG8GXvQ[9Ąm +^;HgS5㉶lrG'~YO-4/21YQL顱T믤&*Q  mT3@6e4G,v$|!'d)ؠbP͚/eg %YK9;Pƙѹ7J%ѭ+P 5A'g6~aGbRϥ56W{,%&\7Q`@^?s+)]U1?YIV *@rŽsl>'SU t/HMF*qJ24/>+&G9V-l>D"ii1Y3LFTk$sBIcW([N_TȴXf9&̧ZKA&)1;@C%srAxpaZS.2m /1{IQW "(ϒfʺ8e_Fr-{}>WlL Ul8)9>g/ X(#u|%"P /6Ɣgu&g<'x8BTF%qnI>${Sqg*yQOFgWebyٕG3yijjfVO.!14ͦҩq"p͉OZTqv6y5tts\\>Zo|jmY/KҖXIiٹ9Zh ,{/ m+uÓ1 *!~%uODhqC_G'n'ɧ9r jUyh6uJI'R'4y㑯fI@^P;GmКaD-:F(5RNIFߤm+20|%y0z[D`g c ՃR,G۞MpqقcȿuDĽ1XՕYu3m,sX⳯9aM 7]fMb<{NC-_Ztz[LYOŋ)psR ?}  Fx+FjFNBh P_׍|8.g} A&?{ҫQJm >< [f;m $Z ⁹"B؍4rS2Z&s (Qc5W+hen^c@ǒ@i+bŸ5V?̾yJRQPz\R[w_ڈ̸7*QIR\eɣ`g5FNN\J!JQx!khB ':Y$fXg TSɿY-ⴌށRlkvoY{< ݿ.=ZPK{rcj:h&(p-j.kGBl4)Dd~ZG>;Rё>h$"`%J_DkwSI6.qeqȏ * \] 1o;mыJ#Olgj_%j=pnSlj <FZan_BC,l%g(ˬP}mo9d##Q_]Ͻoh=6Ju!N{ڋHVm}hdL:[IJKW{ͰT@KA5tZ] $| G.w0 D?FSw9F9ʊjZ99eHu"Y 5L+\  ,Ffkxr ^v=efĬ ~! :Ia~xg9 P|%^Z}\ݚ4xVƛU+֋HH6evy 5;⹉ Eۃ㉳Ҝ+`$3]`DV! K x8{w:[ !G10ח 3l𣻔,UiJLOCWo†X͆la/f,:!"5B<%(L 1+A_0p/GPsl{GvRԹ[@75HkX}v4'[y unQ.:|E, ,ǀdf⼐9@?ÖrP '"2F3P4xJEkfuC2;g H}y \kEGS:~]Pk1J/GpaBaqހyWΰu38#Z:v|'}P-1k+,$Ufo4 p(W̏JoTMP̝;$:);,iX2_!i=m97}  )0V,dF_\8txi,C&tu/lW"W4&a~'zsuɵدKg;*!oKy@n$sȂPE}I2Z[;$pk}g:76;o +.#ov|9f@++dѭ};OP"ZM9wsi\^=`ƏY)`REn<--z;w.V>9L/w5%oaǥx;z24/ iT\p>r.dM+}fl^:~d!oۣ`YAh4aXL6 5 ZgG_Zpp}W nRE`D}Ckz?%7xrҚ;r~dZŢ9@l]Enpʼnb\$^:id`|[ ' 3;$_"zWzߤdJ8z18`LАJՇu͜q֧'e aeň:МJ,ZFiF1Rz^$;o~vnOLI\*Rx782ƍM) {w`6t6q7-xao!o1P|{Y؀Æ2x>&j/ߩ6ЀiJvQfXYB BgI Z.OtxsXiwqVl0+?}']F-I:#pxѵ!dUcZc9jdQuMUPE:TDzb]A=h^A[F}A7P7}|E^^OucR])B$-Ֆ!.¨>b랯8? ]Yq/"c'o#"$v=ǂ.0HXi]5KL}~ͲNL}I+#ɯskΟ,X>Mbd?]&L+IUPi|4_#iNW㙏ر 塥Yڠ{m"ktTјo$Mfu~#}#Q"ʙ8ى/ī#j@cS` S9vOq1t.*IpR~Z'inYiTG3_|OC:f“% ]"a)Lr#m_`8jr}S~T"%_K ?%yb|u!ʸPj| $_^l][%֒tcNnfM/T\I38Iy$ Q;70*OF 1{YzN43׫t*61!K}..>`~+zEzq!Mnbb5z_R%obsp/UBhӹ{iw ﰴy9 Cٷ3c Q-q(r5t\=y̗?kf㧡6 Q8\\t^Eu|8_1opq|&vi4p.} =UASO[LXȾs5_r/01 aE.6ƈ C.oj~#H|XxDƩ be"htLr4TMRieo;~eFpz|vnKqN}92æu!4="8'yv 2.?Җ:0 lA!kBKD"3\ emx L-&U}t#`?4z(`T7s뇍UFl=P+CzM{0O7{H9.CN6hF 0 S) D7fݮ:SEa>b!zo+lU*&>#5zJ_kY]`Ftu@Al{`J["%@. UAJcPɞV.}+:{ BP.-Ր8۲\ݛ͵c{+Y`=]NpqqޓXkzƢxZ|/,ڏbsRUZMP `OsKlٵgHt8P 7UڏcV{?Nnf+%fd%,MWQiy9dSw%I_VD`p)Ն~TYCIF*"]8Mll|}HgU#xrVѧ'YM jV+DL;66& Lx,V#tz5 GC,a:(崢%ոFiH+/(өqm=v5b;a\t$qC<{\"Jz< D1%5"QޢKIXPz1%k5JmVHadފSXSwWuAAR0ھ>᭽DgaW(iWm1f0uYzsǤ[6 e  9T.ԫyTA(ӷtKAgwB0~(XbΡ~[@AU7f~^G-NWUKE9k-7n*LiR="GvH R2@&$/`h A8K)b[TefΈT/)sث^rKK*je`#iYS> ʻ™e'R7(@0ȣmvG͹}d)u8&+O4;B$L(ASnra:gqWXXR֡0g1=6 2Ϝֈ d>&H{.Ax[i8Uw:w]@|(|]F-&=`dzYB$4vR`7%Ԣ%A[K[ ;YSLC^[L 5=O'wIo^X gom qd< ғDjlD'̎6ѢPkW#$oͤ=@JM`Vن!EgGPt%+]^Z1$60!9=#k>!a!mV3үq"4;||UX< +Iж]pdYx{JL m  er:\NײOsb(y`ɽ -o4 OG68unϟNc W0 4%D<7 #~:nkQf_rd[$ %Wސf`g.jp}jE -16 rIO[\a8G34ȶK,j7Fax}Ek]13`{HQ@b/ іVYʧm::Bǃ $F m%B'LU[Whc.cź #=q_(P8Ú(@4岕33xd.942‰u԰9r9pV4Kz?mip!e JU.xjj-(4VTBUvH9Eq PKx}喂%i*I"UfxDž_iaBOY^mt%)0/_qne"pWbx!ԯv@A*``9/cmut.הMm`ME[_!v)st$#dDhky{}1>XCW;0UR6M2n0$ݍ6 ,N%UlKLI_}Q&qބ?,Z_kBmiyj ` L*Aߧ<ȹ{ cua-!2J(wCWlK϶s b6\d ZW>58/Ɖ}-Mܥ\XJ (!fTHE"BS@V%䨶M+ >=ZS<󢍺HVMxD񩧾滲'eH;{Wn2ID0f鵌*i!9)7ů7R0~Dk-@) _) m;)9l"_rwE'^w?7G舌NwB)9u Vui0u'$TŃ+Q?ިi ]F@"󋊲a_W|9 Ġ;&ö́JӮZ,4/ WPc85u N]:*.Iiu-Cw{~_|[v#r>wqD^U@sKQ?,1.a{#AvfXXu b8MZgU&(Tͽ;?dU O ("d\oYr&RX>VZ-P=Ev\ɪDR(B){ )o {Upc|حׂ[4!$$l?n>(I]g-"`ã {!k lfQ[1=WygIS?P&AZ9  y?U1y잩;2'0xřmqn,y>}/ VEe?B-v.PC)S@7, X6*ܓՄEy|Pk֧7(%{,LSe#Z}g#7̟HE1 7Y!> acGA7qF>!dwitq4:$ˋˀ/Y$4\i)DcTϔn}O6΅sҬqP=h/K`6]IQ@iVgAP S^IR:Bc$Ō扞_Sl2NPD})5𫆔{x96*JY6l^X]@ThS1=dB0.I>P{N27)_+$:]J6&JQAB[RW7|L g}-^!h׮#D8~K6vwhw[=_ }N[tz~nt=Yڔ{&G^#R8yw;J:f1'LNzLF4q!1x╖2av ѫE'I#.y:Cforѡ$+fىL^> @b]> b9/0 sѵ3[n߸2iZ)vfM[PpP7P"hC5^D,ߍZv]to1wIA jQ2i eH,DrDiЩбOJXMW}u6 ϕ泆_ bɰl9Y yjp4,nUu\R-`%/'DR{QG@HkC Я) -b'cx7+II\G`1PTQ\ cYvO'z؝r0#):dIO|؉|)6;"G _g@E o:,DŜܦ5vѮ6i NWEj2Tu t?%!6bF޳i@2WuIFl 'do 61. R謧S*ޜb榣 ?lݍ6\m%M ^6cNUsh=݂LPe'0c*X[g+t.%B<8J 7}r VTý{$xތ L&#),E H o \=)0*̃RRhG5,dfS3qWyio:QG>:+m>PAع2Wu{ˁKb|d2ڼTyQ;i6b Mpd%aWfYnI$M0ڸQ# u?~_GJVn *(ꭿ5a!M=SmQ㽩FX8%{3YgGeT:A2-,t?uW#ZH7q%gJ*|QvTh|꾃OQ%?n鯢BH…ܰc^4K3Q/9ў0+J[,KB/7ϳT`<XRrTNcM"kc$7WSrҍհcLA  {`8 BdZE|v}F4[}%a&oghQOăa5rGZZ6eO(L`Ķ`D, ~\:/M{LNB8;Bqnq`j7-&ϳ!FzãpH$ ]j$򙑂P'BÅ:L#ƻ)$cY;$ϼ=L$8 `p(hKq\ff [`7k[ &gط1mq ŏ" 67k ¸z4Qpo^-` +'jVLq̧;Y:K\`_w9SzIO@T1>;LG4X G@-zHet*Y7:UC/7q3\}i1I]Ll<R_Bnެ !++:&cL\rWUn ?{W\S"?xR}-|4)n2J洆?īYM%>a{Z~fC'k4(ۏO)ĕwn`0q0B%Bd ItDkQ6 =j,|)Nm  MXri8 +YqkC*E g&+>`֋O'شX t HznQ Ih:P-F6l2fQ g>[X¡%{BSD .MVToX ƙ V$j/μkTIm,a^RƈAY5!ܚ(HAI3)[ 3RIE.!Wni̲uXs^`krޯzv?hU*4\uqDAlZۋs+dУ i pf?S _0bÝSUH:81i`@i|\!X*SaⒼ^QoF&_LIYv0f')uT=1e)8PUyV{,1PO0>fߖ:m ƫE >e8oބܩX6ll,( 4xӣ"D_ ޅxj S`ƙEpG h2TrƏqp0_%Y$3VvQȬO kSK"%4=MVGmI@}q q*1ۯ0]Y ;v&^4ߓ&Wb1c>nvjS^o0 X4H~}4˺EqtV|O6R70Cp\KЖ/i'W봫69PFȎjdNE 1_^*X[$$#.6ijx4rmA] P~3OS2S`Vf⯆rʑFF]a2AxJHZ7}- dZ6\5Ƴ&r PnzӠ#]=u5jG/}C} C=VCBKMnȨ>^X'ܔ3:W'Hò` ~6rx-w&psڭ&vVd&f/( X:"7ryw.bn4֮k hǬKsF%];](:?vPW[s6 lB%A Ιl Ibv$YKH$ -z>DfeNI8&/ | ?\9j)ZQJ^1C幛7_G^{ŠVe.'J3.x]DGNh ]7cB̜v/qtNmkS|Wt)4;|ˎ{YZ٩dgWN6,jf3}y^Kן؇lVlVE䀉U8F53Sq$oqC^,E"1?nhA9YFEouK`-0|d ꀥ TϚ[M_} ek;w#ƞ|÷I[-Ky+]+C.6G7+h!p?nOsG>V1v i KM<ʧ>@Q7T6 O&Mf9Dthy9Clg}Qp&K2)q`efܧ~l&M[漖MSv,4(s"3OʶJ̫q)βϜ=g(d6 9d7mmԦr.pt)Z,o;nVjTO bP Jt/&eeUmZLf$0Ul@ux+ O<$XY5ڇ9[a#h6HAvwΑN~ʽ'0NM,ΏR˶DŽdvS+g5!f ~RMa[)J\*5Dajy*_0}a\5N`H.yf[*eGspt%*EGl k_HZvYl @yٝ ó|%m"`w_-m =U~$.g$t09( d7aVm W?Ri l=F Aؼn ;g7YWROS:YǦj{KNY9}GHm2h1FjCJHTIolcՃ.O;l]8'dRm=A'i~LnA9[ޭ7pAàh,4v,>LbMGRY En Wٮ|:VcȄFNNV A$>LVk G.5yK ٞ^dz $8t_BcHꂉ~onebnϸK> LF4Pb{Ao$쾘M[X8&Tf7=*CИ1{j< (Hg4?6>KNI 6G $T R ;q&$ц/l '=ݵM*gmKXKwnck}󫢩惥`"8C{v)-vcB2/㵞3dĴRsK:e͑LpQ\!741qꪼ<_.e;㌷KVxuNFQ q;m+s)T_[h1cI fC-^r>AVE:P n>Yp_j"cQ_ دZh 1ix <^+sB^6cfα*@81a=!-jBaKΆ!ӉI7ʚ2R7!70Zz:R?/@1Xoc)otsVpZs,$%#:e&h3Bsa"g1Z >f2V&@m}aĐQda6-eJf`J:5[ 076 G6HAQ뿢7ƵgJ8?[r?z$#N\ED[عh-)NM^bk#ǘ\U(X؜2]=\$Tx~.t[NB6~[@s=qM"j&{ݗʳUCyTYԯguE1Sas$//auf5T™kWz~x-^u\ uuPH9,W5%H?y *]i4675Mޤa5.6n*^oj/dQ!s?ËnwK8. MNhȸ ]ZbG0eS'T)Ve#(]~dQVgF/ɾ(~>`iԛ0$3?X WXmT7?3Y8Pƃʁ oT(ix_NXc[IFyRƧj*Fo mc`{~RJ?st7~rE,hRU9;s)$I={%WAY1nrفܒ~Sa͹w2dQvjy-lM)/Qkl#a5؋NX61):N/ن\UUyFZˁ26i?GI?Fy^vA=8qZhqyʘ XbjkAlV~ߦP'zH@&~E=کsךe);z ۩T6C,NM-e I(,`MCfb?% su[1MF !~]UVU|t'ˉw4$%HRƝ7]D#Hs諙@,P?HfZagO梊HMN-VM0cIZvVS|CRE) 'qJNyaE@@HVh}l_eC٤rKuXN *C6G#- A+e\Շcù#XlU!Y oH_2L ƫEWc{@ނ81ӔgA5<+#) -l;$on!̳hJw9r 12*n?ɖbd+:,3%=52j*5fsg 7į!m3+Er3Wbn*@IgIq6Bi1=2 DW:1 Od)6_hwN}uau00,ΦQBpJ®7Զ$tS9qVIg+jL^&Y$ =XDz2́arK{dy.x/b"Oceyy2K[ӝ6dެ饆%OJ[xDe5z_dzxmcAʴBr!_:K]49dʓ?^V`79"4K/8'\ LΏY)E_OVx9lJwNY>r$ ^l\d8Ŧ&}V '})Se{?4ނ?]UuTn嫶/VZHze6H^G_,uɻqI{ R.FW{ K V٦2:뺙F)9zvMgK#3Z! }[?h~uwRG VPv.$P$K=X7#*CXOnfBt4+ Hι6l&HfaAv3B4_9-#P-@ "] d(+')@{/a{Ih2ɷ%.\ qV|%xcXK݅!\0Y]&QM 핤p@DEӵR k#gP >`y 7us^up1h4$d?XPGȪH?omZuBg&ZXXq[){ćfj^ihMOО|}7h },,HavWMfx9Za 6JcUT욧pkZ x.C~,,w{dqLċ"m4iqRӀ|x.jJ8'2 {` ^T:)гe!6_gy#X\c4lfKA%S-ˮ:7twku#0#^~?2dTTD7%nmغ &cch۸w LWV xa`T[`rab'C&4ݻ-mYkO֍"zUt*dΪJ2h`þPhKӧu."{2]$ P}8c( YƼ}F-b~YVޚW,f\lZR\d)gsU`2hC0;0 x"( WR=008ULq"o }RRKP@22.=/Y󿴵DK=I&.;/ TlYGGWDᳶ*!h!' up3""?Xn?-kW}u( ˕Kڛy{vgOA4H# /U;d\[૿w1n#?e$ (wt1eC⥖cz_UrlRl@__UQ2\tM$ٜ0}_feY{4&\_tAvM0' NOݽְV)h;KJZno#}B{7E+V_m=J' tv(>Ă."C%ShB;,'b-}vwVn8k$|?"%' # '1yrj͓aԌߒ-n2VsO_kmjqdӘ@9] l5pxYGH3+'}'$DmDƴefpw {! 6#*cyU %]=@@D3$sB܆iR\^&v̊-2x<>\@C"9V'$2 sK(tLdNoFFJ5x|ب"aqݪQDtoGuز/|YR+!宅ILlX}v))a4=ptO aܪ{>j8Xpsı¯X 3n/(r -Ty/Shݗ&\V}x &;:߸T,HRH/Eַ1Mux@K现C ) UmHP.u~DsW*+I)DǍUc TT'F:+4詥'. 5 tSJZ_@w uǞzk`qBU`c\^{oΎrY V(\syzb*M- {j-=ӛえU,9iq2Tu;|H:S yz fH4 s΋!XkuT?}܉I6>%6V"mjqnuH/ɛ]W ؏vlc[KTmݎ8W¸HXG83f2Ym%azHGuչO.lՠ+YH`*~WVghb:2>mL;%K2t$kb+c @b}HP]7VRṇ[na"\ȟ(i*"F_Խ S筓9‡iTc|7sp Ȥ(u AH4ph >*&ngK LwEp8V7Ƀ ߖbTYEdWP@iQVUNZĎΘ v>6%ds?96Z[ }{@,͓ Y d.U{n:RzQ|ѹӧK75E.&P\& ` 6myypcK#}eR@pX}:͒Glgm.~ڣ:BJ"=s !u1ϡ;1[jڤFBpo;-VlP꧄㩧z&8{1 fT}cUFmMm#/L&!mu/`Lw3 ɑ*]v-gPؠ(pr 񙄏3?VkoIbi:ǧwD$BZgyQ  `nMApڬSiu|z`33+ݧ!?Ar F/vbP4l1߾+in߂I=Dž) Y#rA,ǃXwUk\޹ҮH:1瑠/} rw0EZov̻|#_Shq4@8| nJ[eQ%4.<٫dx' 䍪mbU񎚜rCKYsWVU% [v1Y܋ osab׏[0\r6eEh1վ /*`y44[yɌϠ̠XvpW`z@RhE9pиNjtҏ.+hP y܍0+$Zyn󠄫P a:,w|vS^ֲOi6nXOF%;{͔)٤'GtMx[U ;~h>9Է\<ьFqbfmZ6:G͸p+]Qx&oQf"լӂQ&y#󶊭t3pAY26{ݼ1[Ec'+LAtx PrY Ѕժ hOr^OMH1+Y|E Jm{K#aw6B4mϥ3 S/N+v5H~>Ŏ9'? H#x'3L\䃻"1F/!dv󼧕(8z̕ ][?rDžKKx8ECC|7w#᥹ |:y]yiWK`]QDmDA 6Ѕ#p4 wEFgg('TĚζRVw.  eMа箷! |] {y}Z[0пHWijƻ*7%U2BH䪨J aSS\ D8a!J{~&Y 1m@*ܑ[-sJ~C(LF'>D*S6}_p#m[ a#*P{`¥08ImM\ Jg!oSd[Cka Q3zQ$M7U2w^ڎ_]+hh?A1^Ϭ}`8" K+ _9Ča#K*pu/qWJbXYaWٱ2K~ .#@j5v%K\bd~DGĹ1Kc)4>$Q;ZZgš<ݗnBɖ}o[ QϦW8XۓxQNؓ.`FhpT*ؘV+ĩ;!<.0޹|!ŐhNLďᰶUd-H2ezs=zёnВv^?[`ۼ8N^!ava^A1Ccp^ g"B &zmna/BmzfNPs6WR\N /nO~C:b'.;fa{F01kVohfj=f F`փՍ*?ۥ$8;W Lae[0# uAW1Z3W! V4 [Q 1PDi: a~ ٶ9R̛4ѱPaEqVWX^MSkP2{sdY}Ϸ oAXĻJ`19\(yP+)X;2ڠE59t6>HP#"Ħ,:;emZzq*侂~%k$fWI?Q[յӳ}kj>׫rgRm:h pmKm @{vol2}B}̚?r!%ɣ跉Ӗ'Xqov70]HɍHs_+r҉gDY.9r%fI#¤bhJmCIW? ѭۢ4S{ e- &☜(MuOcM|Yu-|A#u)*~>lZ~.֩ yvZTLF 3\jpr3*WBW@][q%Gj~8AbGe@`؛Vh؊'8bh PxOG\@[R~u\ɽgӇ-JP`O! 4Ubػ(ҵ_U#F;F2֑U'Vb 0b[״k %xGAں@AzJqhn p rӉðeS^SV[kl)/Gtl%&/^Uc~Fd h$n .nx`ؓU5ؗ 68: 5[qo mVWp=8F tGOv-< |kfY+ɇx:!zѷ'B87 ת3sGQ;l/k!5Dz)ŹAn"ܪ[Y&Mc]F-1l("7Y }#vHVC,m6<xp2#;X>&D56e{FjNc[*M[(u3ڝ¸'6%VߖIb\9[aaP?-H}3 ;tYWB d9*>M"qmA$u?? ڪ>8~|ӰHSyu@V??=OvNYcRHKv5٨OKzM93yjvfd$ )_&ҕA`&\8qԾ'70A*J `+^mgq@ԅynUg˝^@}w =6]eJSԕ=mb}gi\F GLj_H4}I,Hagb%~/S?Cg,Q RDg!/u%6ijD'YnUw.Rp=I>:h}!JTP=\~dn($MC.YZqVm2&::Ft@ gpp6/F-Cr= :Q@5\j0uM> xgﲦLj(QfXlCѹ*kt> kN%H[a\06?0QXzQCGVg;{V/WBM\>]#'?3\ 3x O)͞Ǻ09\M\չp[O0<RH^ C+20Qy^RҐN̝PQC耷F=Oۚ4'=ŦѴ=p[ŏGyel Lof z:BwVB)Тn#3YC5^$0/(1ݷg)%2۶mK ~E^ HSaQv1DPbGBG$㑴ދ<:1WmX1i<?*zY4p41~$/aܙ\*\Yޏҳ B$(86#ao8ILpy[Ғ-9L躕c܅x=OZe.*t^ãrQ N@̯y%xVޭEtE/doTg}yGy\ѹΟQm JG?[|qdśO*Q9QZ醫0[_[OcQ1@D&mZD@اۆde5眧kHRbJ}~fHIxgje~aE0.T!C(=Fٛei2ٮq4dN/殀Eqd1Wͦk^.Bu|%{\IGX[: 煦 1Ȟ"ϚK 4q0qlEx (?D~ySq_xCbV?Ux>ֈ ej`xcv#2l}fjWahיwe|ΘfKD?+9e|gLW?V.‡=F Vj,M^VB"E(n'}z"y}N)!R+xTզئGnw+,}}3oJiee\bN3sW,E\Cv.xiy^=JD](p$%)P߹s@u-cL,t%-5~*>9njۯ7c$2ݏPz°{Dԩ1Rlܴb7O9^4 :+5K:[iŔ& i,P 7Q~i QZLHvEB~̢afu8W}#ەaIkOQb*$ïVTɩ\kn”3`@OT*`̉{aGL9v+lAsydK+ݯ;)i<4WBfѤLy)t0_ٍ֞F̽e?VO !V\n.OX+тKB" Z}w7G%u}t4E)&l,N?l$M U@pN@Si&k)i1_r^-}9/mTϋ0փFQwU<{2.|cf; =XQ׍aS j0t<٪4M=/C'X;JT-lS[Kc'9xWz#ҌPCau Vv)PwL:Z6]JRhhX}_`qgtYO^mWѡ/pY)g1vr$,,ln[_,}X-zC/Bw8eM9*3AyǕJo$wҡ>|8?YFRe x"LUG)`dUcŧC[RSٖԥTv{]v^a%K X K_h6jy e<t}Ӌ"8p(B'[uj9Vca$2V ȢT "5OV{=}ʩJPAlU n cGVm~Ң:gon#D!v ؿ|!g#r[sU]&h\3pFy FM4JQb 8 lO:eE*1 !5"|ɪX! n&umT#*4zݧO* -r7K h +]Րޖ.&kcrf'?AN`qz4F"fGS'A :uzR-EAN J7k#ͅ0+Ұ@=2j-C:FB!<ʵa~mA*֒ec6 IQhѱML,ٯ/h׮ 2 {^joLz<0XxqH5ybWSįXje8 ߗ~)_+RscȽU-$^dnΎ/QA=ŏx!w7nQSNP-dOG1=jvak1*MWr UNfLJWAEБKoY_lT" cfgi4;9P2~ F(X,aWClóyI){SCk{қ4175pk,ןD';eZ ([I "!-'SdxsGꎀGs>Ćwv!0BT{c`KCfB\JU譂ukzөj%ʺ1O[P 0Z{z/y`U̴/jy S^3zŘsw]q!ᗠr,g-~ j|b7`=oݖwM޽|Mz3wmAcDqd$R0aD{zZEWiV27Vܛw?^*d\(5HBJf:i tle8<6Zv1`2]9YVūBY&ɽ@ksߨ0ʝX/b+7ˀN⁍By|!Ξs 8(!ƚM;!h_h5 h]ZhD?ًzw~Iӷҥa֜<@~8Iw8@zڑQ*ϴivA(TOPʠ_T=3֊B?sM|l<#_%6kK2?9@n30ǘEe.O *A>Z=c.FUd ۘqZ$.JЅVXƢa` 䔕(0Tf,Ց6ۏn&;^bej ^ºߨ8ȹ-g&qC:,Coe@-n9yµ`.;H$G3)t8\j#59G"U]@*A= .$%3e`u\-gXX1v7׼[5Ņ1c闬4{KR&^:Fܹ<}7ΫTKN1=Kz勵P7o (ȱ2!$feGy*6YC񃢾;"pgOGK^TMGHPwHh|ot?v*K`3`6dô/SǙ5Ŀ3&TQRmq q;.ںCst6sQA k|cѯL$^Bre)Đl~0 #S33?pkr=b,[eDܨEP k# p89QNQWF4n}}lfQt;`YɯF;Tܼk!8ВOARHN~+Sf^ˊxG:ry?"Ikru:F⿄@@EwvizʸHɁô՗%-E*T 9-$EP'Gt*7=ָb71&!FyPރ=l :=%z+9]GZI-2-$1k% {p,8ng4POv_?/\r7#b)]i&l@sLЍŋddusH56OMKU'cYB[oCOH bHNJm+O xq.3d;$L'B߰ٙK{:_j(O*Iq[G, mSEGǐ6>dyW[!b_.t[ϙ$^! t& 5 wLHxV_Ө7];a*E3B<8wcٍu˄ei/Uą^ q'ˋc׶tU26Ywc?>G: ]^bGӀ63;kvBȍѫmӝ=eV>0yLCJ7o_ Trd2(ew+4x&8dcXC]4_w-7 hm]1uYQP3=D܁R&4JJ\}14c 'HĿt:bbdPEvh UnЋnŷ-=ct!0vvP;lי^튠rЩz3 $"J=CPսHJTMCrҸMjxt1dTǏȚvRgQU_A/3쉋.DL̮TlT_`NvcӘ,xD/(˄LJCЀtr$;oIqQs]FX"b\˶w$)˖HY1O`}]jGSJssgȮ#T뀄-xE{%zPtǀѐa_GCgpn*72"ьa}8?"zBC`T)~|_#@P+~N9ԖCVUK0;ܼPЊjΌ 9 3 3HtDt4T4Y-C>%Kfo`)l Η)ޭ#'5;TdOb⯑ZE%NknΡ@* xe琈Ol:b~RTŦCj\P 7i*ĆO i[!=hYR-;wL V`> nsF902T;-J]E0/s[oы>sꢫ\) Sk y J&k\꫌t=f5nG PA\f}0Og`FDA֜u.xp#mW*r^c|V H YͣLBm .=*ܝd tn$G0ihF{C&KRތdLL̟ z,PԍK(cMN ۭ4)oϘ#i.ш2_ܴka `N\d\3T,+.V iwKZ;)zO"4SAE0>W5ŀpY;"vyQ-xnRX 5gAVJnQ7uXTB_ld0oZ}f&=3\<4BR!앑hA]R$w)2=Jzm[|H>҄O>eDNXI 3:͗s=d5ti/JF|9UV -O_hP|S:vˏN J_j#hAmN2cY9!iVHNh RKvSQd"OHkAˀOPsyGYh\Z Cz֠ĦyE7~Z@TJ0%܅1?An{Fb{UH ?%*7X18]4mע+VÞ"KH9ȸ+*,JfB:E$X\ ɉv?,L-%Wd0{78?Axd*I/9}T@sH#E`Y&Ɖ#1DU՚!rdKN5ݞ&(Xwr;:wKwAݰ4]],٭ݎK/«ޤNA#zSbpd؝-XDY2NpUR^N Nדb [VP胧p쭺 EjOxe3kS9X_??L L^@5N˵2^;wj$9)_S<(ُ$ wGG"% vq%6{w0jB5-/y"157I$$Nə\6nvt1w7XqKd+ZS/X9Dn)w]Ix 0ߓ;'Sm鍓Op2ÇKO?lH6&~p_0j'NӬ/ߏn݋S < 8{yG %sIH)Zxhgqi4B|%89|}R!O4 Z. E32*s,\Z_ d!*WI~bmy3_8N0]'lY$eމ&js="3ީML2Wk6֕ kq .T q0y7#Cw [)D0%&JFĥNoCDc\uF#u]d]@c.ۂfW%>Nrv91Lu3 7ʵ%)_谳V;{vD!%J,%%`Fȟ2- $OA!}S*,&1e]${>.- Ga)|Ϝ%2)\ĺ8_?,:@y@yL-vl! 5DUХC9_ hє֔h:(t@6nUgÙJF{-}:0Ch["7S=nl`&R+ƙSmǴcnE5O |@U` ߅=NNf̥Vt. 790J#_e-f%)4ĽMzO,ᄋBʻyU9}NN&_u{k H&%͛Qf،y3;XO%V(k$3FAakxs &=@ __~z1,)ɚɾLZVC/vIǿS Pi?dMYӦfsq GY5]߈]rv7BzF!G ~t19Z(^L+ Un'BށSKDG}䯆 {]X-v-,RTV}[ZL-/,[2.NX';u*:&Tv솪+☡jݤ{ʇpOwm- ] ~M8n->-u?5tݙ:+}GMqM#] xx_כf|<W^iWݖZAdӧs䱘4bxJ̶%FW4mdthf ] ȶGkFG]ijb'k3iqę6Scrb\B]Zh9gC_44Y:Tv{Jrhd^F?*v1)v)CL@wfp0@]}_/fd|P{Ԥ96/R|2Ggyj9Okc9rh"} ^*FyM>0qQj2칃UR)X]MH]-"?0zK#uoxs=ؔlgm= |шMQC b6$`/[h٥FÉ@}gX,OS!*+lqv)cjfv3g[)RIV3QouPu)xGzhrx%'=rVOuFlv)%=`Gc9n+*!&UCWSI@% ^~1digV{,o'OcdvSU*NcDLa&19}u2xDp'Ge`sk) z0ygܾ6M/i?0غ-\oDjxڪm+6^&+._nLbH08wY|!`y~U>?/M^"5N/\uSA͌191kIp)CҖ91ӎSktv&tN{m"={O&-r1_Q_s$؆ ^I'G+vK+Cm쵏_vNx{-]{5oC*'3/)ݮg\ҐOj hngԉ^~kHܐDž,W2#ʛB=m\%ȌJSeq~B34NMBD~BϨ#5dZ)}JWYW{^=Cԡe.`cGUҮ.?pfqyuuZNK+M_H1~U0ٹz_.7`uBz^c;sIZ?y,*T `T 1m1o/?cw hL-:E㤨yMF +<@Mc zs*v0YV"^)u^8>Zj`Kr?-׳t~t։AV?2^˹N)֛pE+GLygt"ь4xrl/$bN{+p5\l6@F@WT3#SG%xMنVTR>5.kIj89IE{ؑ&1 -]Rm㉡}:=ДUe<`!&UrrQ#{+$ID16p{Vh9ZKs(3_ z6m!yOʫ<$b7eG"$,)Z ,rxL=X~CI~Ȉ K2"WS3J0[k{fs뇏VV_qOsBy{TW%Alqп-Pw/|[ }oZ| x{n$kEc&d3םI)_$R\E ^fDrD0ȡ?luAy].X,˔}"( ! L2mQ86K}*/m̩J+}ɡUk ֠"]Bb ~Td)}=@Sr&8߯C~ٱIx)1ek`рșzI$vl캅 3%,T/Y.~ *M7ehtWKҥvՑ% {}za5fpI'QWJu>rխ946p5$6KÊlV3?}mFG]Fj ]p\U-$G_r%X>tc`[b>FsZ0>Th8vM<աu&@m'ĂO2q~FBoͶHy C/99e ;}' F)Gl>@*ki}u½35:xb䀛p{nIn&/'%ir88\o-hル6pXVZS,z b& 5@=Ҍ:@kڑTG#>!\w%VT"bi();'5I2qdoŵ|Pr!d^-\" [ -*UhgG ,{07LU[:Im).>+%N@bwP(CeۜRՒj)Rڲ<_G*i\4@ILEb^/4C*r0zһO?$\{d@,eE_ s9b>QHKMr&1qiCyfߑUt!P劣,G NZ5EH.u%|QCUrطzF.fGKǎ`i=){Q>G~l_kZǚH l@~N>.C<ԎU@CS 7A\q1 y buD,vqo:s. <IiBd$e_'2'Ыa:s( ^g|v{J֑\{6)[̊ wBmY% E?nḫmIhA&o25If1Yl"3{tQKwQ%,[P$ .d+,-61sz]e.2)x,.9)A' z[?e-v)ĝڃZr|JRG(aj.dEڬ$HNtLJD8v_ْ?uonWPBW\na|SөVƖ,2b#[jq B c"3Qxei\GF9CGWtN/Iv{bv{kHEIq e ~{ 8C+E3B!? _G7W~UETfPG3S&DBRfnZnr&`ԶGt\9T<5(]4Y`V"V(^ta t{ɔf9m?4%@u2,4KTַ: UbW8yI0x͟U fFFπȬ!4B1ǘ 8%ri9?׏] ugLnm^Kwip85"?&NA88SݜE_ uZfgT.3Wccɂ.F:B0r6Q]ʠqpIJ0O$|ٯR0@lu\?Tb4|I1wGEXi7<*/zm[WJؖS)Ƚa9mǯ2l`*RWGg`O!TM\nav-se!W,Bv݅l/u),0sȕc_'aߖP#<5B(ck۞,If< ɱ$%==]S9^^4lv]蹓L{s/N\i(n 6g؛@j'1Z9AJqǩ +573úsN*heijǽhq2HMӈcV-hIdLj@1kϔݭ&3vb^iQvoh'+pS1> lPLkTĈfZk)Žt=Hv][& },Qt09A-"5JR&xn!jj#Awz_*+tP;uXGt"73i]Z;TܦCf}JY\VFW9Hݰl_PA5^IM|*{09l䲷ҙ(J9gvc1=[M/\VqM2nS{" YO+->oa c6mɢr^"hjnw ?WL[ T`;'ްnHuIܳw<HF]zw-sj..un|WҨt6?4$yf1㦠#=8p].gŠ4\^U+?_@= rF *ߨG֒:WX@);1(CNpݝnx/%\ -^+* ieQMS/9軙n1A&_経+j ("7ؼ L%q $3GdaO+.HmZye/GB^{E𧨱}/Jd_ʌ(A"ȁ'Es*/&C!gc\LczdS“sd-5VėӐVi6SL6a:!*Lé ]|I"Jlq($d_5wC*[RTC4ʵ6R+1eV R[| 65 Ov``:BOC=g\dg+њGa!q3IKut."Rs%R#t` _xn/}A}=O̹`~"'jܰM!b.=b&fV+n+ۓ* '8Vi6wCaSWS]}omȱ0rIb6_aAn]З+,Lq ۰R~33kFT :.s5Wk.4oa(8'tqq G&i"Ƭ-E@ؽ h'u;h7=J!aK8_MsC6:I0E?ی2 )6):WNj%*27+FlFgz,~ ]2\'=WBE//IVf\_G~EFMYEQpjFF1N|m`6ݯ`[”}|N3aKZm| +mx<ʋNC/ztN]UL%b 䋘%]@=[lE/&lL՝ޢ '! $Zfwz\lnmn$&xəݸ*RV-UM״ABꐖi ><{ ?0b"-!FߜR8oP