redis-6.0.14-150200.6.14.1<>,cWp9|.S n|b޿Y5@q4F%s2lg:z5I?d  ;2? Uarx  h     s dDt'''(98@E9 TE:%{E=S>[?c@kFsG͈HI΀XΠYΰ\]l^b cҴd4e9f<l>uPvwxxypHzؐؠؤخذشغCredis6.0.14150200.6.14.1Persistent key-value databaseredis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth. Redis supports different kind of sorting abilities.cWsheep56BSUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Unspecifiedhttps://redis.iolinuxx86_64 if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in redis.target redis@.service redis-sentinel.target redis-sentinel@.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi #!/bin/bash tail -n 1 $0 | /usr/sbin/sysusers2shadow RET=$? test -f /.buildenv && exit 0 exit $RET ######## data below ######## u redis - "User for redis key-value store" /var/lib/redis [ -z "${TRANSACTIONAL_UPDATE}" -a -x /usr/bin/systemd-tmpfiles ] && /usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/redis.conf || : if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in redis.target redis@.service redis-sentinel.target redis-sentinel@.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi echo "See /usr/share/doc/packages/redis/README.SUSE to continue" test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable redis.target redis@.service redis-sentinel.target redis-sentinel@.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop redis.target redis@.service redis-sentinel.target redis-sentinel@.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in redis.target redis@.service redis-sentinel.target redis-sentinel@.service ; do sysv_service="${service%.*}" rm "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart redis.target redis@.service redis-sentinel.target redis-sentinel@.service ) || : fi fiNz*bO .o]]7Vu [3 DRkA聠큤A큤A큤AAAcWScWScWScWScWScWTcWScWScWTcWScWScWScWScWScWScWUcWUcWUcWUcWTcW`>@`>@`>@cWS`>@cW`>@cWScWScWS79b7e3332d59780365089cccbe9837528635ff45e3d4b1c93cb19b13681573e8c21530474173b8c1e1ce5dba447bacaa9576fc0c13552fa7f953ae21a970e1c2b551e0775de26e7daaf471edbfc442c760e23b83ec8675bca4a7b0956b9f30237f99bbd464b4edf44ee341ccb9a714e613038fc2af8989be1f3ff6f7aff127cc21c1529fe1e55ca60ec59f90d638aac23768bae05f6594e87a0d9e7e46c5d2947727d2cf7574f0f05d693457276ed03ca15d0d48405f00ad3e2d84d081a715470c3b9f9e75d23bc600e9c8fd2da71029642d41a4b98f4a44638d98d15ba58817e98be98c8603436f708edaaf7426cc78ae7e13428e6652fea6cf2b4825db491fcd973cbd79a5155d58f7ea2ee4a72dabc91098089014c3120b41a66781f80a27cd290a076031f744d94c473405de9b31ed5fcc0a2836f72c716ee4eeb450d6dd3c1707d70f6f18ada82c9519054d1d8251e01a8b217f96c786b027cc5500ef9f5d741c298200a79c5c81731a576a81a8b12abc07284f93b81959e9f59bad869e38b2351e4ea2f90e0c4a5e1cfa004adc87ee0cfc76813b01f376d1cf6dfaa4add15d74127a0e429f016c3a28f557d6a988f3e6ff160139c86486817915dc17a049d6babd4e68dac09df348aaac507fff3495caab4a15a2bc75742540ad0c646d85aa68db15f3e2e499c069e0d48570aa379bc7b679f9cd8896b7baeca475c88e41bd53037c22325ec3ace9d2587828ae21a13825e8ff9526310405eb5c46f60375ab7ea98bc73a882503bc5e884e7da3cacf9eba382ea95e3688c739375fbc7997f0a15b7bbae580d2609dad2e11f1956ae167be296ab60f4691ab9c30ee9828../sbin/redis-server../sbin/redis-serverserviceredis-serverredis-serverredis-serverrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootredisredisredisrootredisredisredisrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootredisredisredisredis-6.0.14-150200.6.14.1.src.rpmconfig(redis)redisredis(x86-64)user(redis) @@@@@@@@@@@@@@@@@@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shconfig(redis)libc.so.6()(64bit)libc.so.6(GLIBC_2.11)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.2)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.6)(64bit)libc.so.6(GLIBC_2.7)(64bit)libcrypto.so.1.1()(64bit)libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.2.5)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)libssl.so.1.1()(64bit)libssl.so.1.1(OPENSSL_1_1_0)(64bit)libssl.so.1.1(OPENSSL_1_1_1)(64bit)libsystemd.so.0()(64bit)libsystemd.so.0(LIBSYSTEMD_209)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)shadowsysuser-shadow6.0.14-150200.6.14.13.0.4-14.6.0-14.0-15.2-14.14.1cV~@bq@a]`r`@`>(`6?`6?`&m_@_ _[f_^@^ϧ^'@^@^^^@^@^^y@^r @^>^)^ ]@\@[@[h@[[[[v[E@[#@ZZJ@Z|;Zm@ZN@Y@Y@YJ_YXXX WWWWWs@Wo@V`VQ@VU|@U~@Ut2@UW1@U/@UUU:TܕTT_W@danilo.spinella@suse.comdanilo.spinella@suse.comdanilo.spinella@suse.comandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.dejzerebecki@suse.comjzerebecki@suse.commichael@stroeder.comandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deandreas.stieger@gmx.deschwab@suse.demrueckert@suse.demrueckert@suse.deschwab@suse.deandreas.stieger@gmx.deandreas.stieger@gmx.dekukuk@suse.comilya@ilya.pp.uamrueckert@suse.dekukuk@suse.comkukuk@suse.comilya@ilya.pp.uamrueckert@suse.deegdfree@opensuse.orgmrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.deilya@ilya.pp.uabwiedemann@suse.commrueckert@suse.deguillaume.gardet@opensuse.orgilya@ilya.pp.uailya@ilya.pp.uailya@ilya.pp.uailya@ilya.pp.uampluskal@suse.comilya@ilya.pp.uachris@computersalat.devsistek@suse.commpluskal@suse.comrmaliska@suse.comastieger@suse.comastieger@suse.comjengelh@inai.deastieger@suse.comastieger@suse.comrmaliska@suse.commamorales@suse.comeshmarnev@suse.commpluskal@suse.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.deledest@gmail.commrueckert@suse.demrueckert@suse.demrueckert@suse.demrueckert@suse.delang@b1-systems.demrueckert@suse.deledest@gmail.com- Fix CVE-2022-3647, crash in sigsegvHandler debug function (CVE-2022-3647, bsc#1204633) * cve-2022-3647.patch- Fix CVE-2022-24735 Lua code injection (CVE-2022-24735, bsc#1198952) * bsc1198952-1.patch * bsc1198952-2.patch * bsc1198952-3.patch * bsc1198952-4.patch - Fix CVE-2022-24736 Lua NULL pointer dereference (CVE-2022-24736, bsc#1198953)- Fix CVE-2021-32627, CVE-2021-32628 Integer to heap buffer overflows (CVE-2021-32627, CVE-2021-32628, bsc#1191305) * cve-2021-32627.patch - Fix CVE-2021-32687 Integer to heap buffer overflow with intsets (CVE-2021-32687, bsc#1191302) * cve-2021-32687.patch - Fix CVE-2021-32762, Integer to heap buffer overflow issue in redis-cli and redis-sentinel (CVE-2021-32762, bsc#1191300) * cve-2021-32762.patch - Fix CVE-2021-32626, Specially crafted Lua scripts may result with Heap buffer overflow (CVE-2021-32626, bsc#1191306) * cve-2021-32626.patch - Fix CVE-2021-32672, Random heap reading issue with Lua Debugger (CVE-2021-32672, bsc#1191304) * cve-2021-32672.patch - Fix CVE-2021-32675, Denial Of Service when processing RESP request payloads with a large number of elements on many connections (CVE-2021-32675, bsc#1191303) * cve-2021-32675.patch - Fix CVE-2021-41099, Integer to heap buffer overflow handling certain string commands and network payloads (CVE-2021-41099, bsc#1191299) * cve-2021-41099.patch- redis 6.0.14: * CVE-2021-32625: An integer overflow bug could be exploited by using the STRALGO LCS command to cause remote remote code execution (boo#1186722) * Fix crash in UNLINK on a stream key with deleted consumer groups * SINTERSTORE: Add missing keyspace del event when none of the sources exist- redis 6.0.13 * CVE-2021-29477: Integer overflow in STRALGO LCS command (boo#1185729) * CVE-2021-29478: Integer overflow in COPY command for large intsets (boo#1185730) * Cluster: Skip unnecessary check which may prevent failure detection * Fix performance regression in BRPOP on Redis 6.0 * Fix edge-case when a module client is unblocked- redis 6.0.12: * Fix compilation error on non-glibc systems if jemalloc is not used- redis 6.0.11: * CVE-2021-21309: Avoid 32-bit overflows when proto-max-bulk-len is set high (boo#1182657) * Fix handling of threaded IO and CLIENT PAUSE (failover), could lead to data loss or a crash * Fix the selection of a random element from large hash tables * Fix broken protocol in client tracking tracking-redir-broken message * XINFO able to access expired keys on a replica * Fix broken protocol in redis-benchmark when used with -a or - -dbnum * Avoid assertions (on older kernels) when testing arm64 CoW bug * CONFIG REWRITE should honor umask settings * Fix firstkey,lastkey,step in COMMAND command for some commands * RM_ZsetRem: Delete key if empty, the bug could leave empty zset keys- Switch systemd type of the sentinel service from notify to simple. This can be reverted when updating to 6.2 which fixes https://github.com/redis/redis/issues/7284 .- Enable TLS support and add BuildRequires libopenssl-devel (bsc#1181830) - Make tests run by adding BuildRequires tcl and procps- HTTPS download link for source - redis 6.0.10: Command behavior changes: * SWAPDB invalidates WATCHed keys (#8239) * SORT command behaves differently when used on a writable replica (#8283) * EXISTS should not alter LRU (#8016) In Redis 5.0 and 6.0 it would have touched the LRU/LFU of the key. * OBJECT should not reveal logically expired keys (#8016) Will now behave the same TYPE or any other non-DEBUG command. * GEORADIUS[BYMEMBER] can fail with -OOM if Redis is over the memory limit (#8107) Other behavior changes: * Sentinel: Fix missing updates to the config file after SENTINEL SET command (#8229) * CONFIG REWRITE is atomic and safer, but requires write access to the config file's folder (#7824, #8051) This change was already present in 6.0.9, but was missing from the release notes. Bug fixes with compatibility implications (bugs introduced in Redis 6.0): * Fix RDB CRC64 checksum on big-endian systems (#8270) If you're using big-endian please consider the compatibility implications with RESTORE, replication and persistence. * Fix wrong order of key/value in Lua's map response (#8266) If your scripts use redis.setresp() or return a map (new in Redis 6.0), please consider the implications. Bug fixes: * Fix an issue where a forked process deletes the parent's pidfile (#8231) * Fix crashes when enabling io-threads-do-reads (#8230) * Fix a crash in redis-cli after executing cluster backup (#8267) * Handle output buffer limits for module blocked clients (#8141) Could result in a module sending reply to a blocked client to go beyond the limit. * Fix setproctitle related crashes. (#8150, #8088) Caused various crashes on startup, mainly on Apple M1 chips or under instrumentation. * Backup/restore cluster mode keys to slots map for repl-diskless-load=swapdb (#8108) In cluster mode with repl-diskless-load, when loading failed, slot map wouldn't have been restored. * Fix oom-score-adj-values range, and bug when used in config file (#8046) Enabling setting this in the config file in a line after enabling it, would have been buggy. * Reset average ttl when empty databases (#8106) Just causing misleading metric in INFO * Disable rehash when Redis has child process (#8007) This could have caused excessive CoW during BGSAVE, replication or AOFRW. * Further improved ACL algorithm for picking categories (#7966) Output of ACL GETUSER is now more similar to the one provided by ACL SETUSER. * Fix bug with module GIL being released prematurely (#8061) Could in theory (and rarely) cause multi-threaded modules to corrupt memory. * Reduce effect of client tracking causing feedback loop in key eviction (#8100) * Fix cluster access to unaligned memory (SIGBUS on old ARM) (#7958) * Fix saving of strings larger than 2GB into RDB files (#8306) Additional improvements: * Avoid wasteful transient memory allocation in certain cases (#8286, #5954) Platform / toolchain support related improvements: * Fix crash log registers output on ARM. (#8020) * Add a check for an ARM64 Linux kernel bug (#8224) Due to the potential severity of this issue, Redis will print log warning on startup. * Raspberry build fix. (#8095) New configuration options: * oom-score-adj-values config can now take absolute values (besides relative ones) (#8046) Module related fixes: * Moved RMAPI_FUNC_SUPPORTED so that it's usable (#8037) * Improve timer accuracy (#7987) * Allow '\0' inside of result of RM_CreateStringPrintf (#6260)- redis 6.0.9: * potential heap overflow when using a heap allocator other than jemalloc or glibc's malloc. Does not affect the openSUSE package - boo#1178205 * Memory reporting of clients argv * Add redis-cli control on raw format line delimiter * Add redis-cli support for rediss:// -u prefix * WATCH no longer ignores keys which have expired for MULTI/EXEC * Correct OBJECT ENCODING response for stream type * Allow blocked XREAD on a cluster replica * TLS: Do not require CA config if not used * multiple bug fixes * Additions to modules API- redis 6.0.8 (jsc#PM-1615, jsc#PM-1622, jsc#PM-1681, jsc#ECO-2417, jsc#ECO-2867, jsc#PM-1547, jsc#CAPS-56, jsc#SLE-11578, jsc#SLE-12821): * bug fixes when using with Sentinel * bug fixes when using CONFIG REWRITE * Remove THP warning when set to madvise * Allow EXEC with read commands on readonly replica in cluster * Add masters/replicas options to redis-cli --cluster call command - includes changes from 6.0.7: * CONFIG SET could hung the client when arrives during RDB/ROF loading * LPOS command when RANK is greater than matches responded with broken protocol * Add oom-score-adj configuration option to control Linux OOM killer * Show IO threads statistics and status in INFO output * Add optional tls verification mode (see tls-auth-clients)- redis 6.0.6: * Fix crash when enabling CLIENT TRACKING with prefix * EXEC always fails with EXECABORT and multi-state is cleared * RESTORE ABSTTL won't store expired keys into the db * redis-cli better handling of non-pritable key names * TLS: Ignore client cert when tls-auth-clients off * Tracking: fix invalidation message on flush * Notify systemd on Sentinel startup * Fix crash on a misuse of STRALGO * Few fixes in module API * Fix a few rare leaks (STRALGO error misuse, Sentinel) * Fix a possible invalid access in defrag of scripts * Add LPOS command to search in a list * Use user+pass for MIGRATE in redis-cli and redis-benchmark in cluster mode * redis-cli support TLS for --pipe, --rdb and --replica options * TLS: Session caching configuration support- redis 6.0.5: * Fix handling of speical chars in ACL LOAD * Make Redis Cluster more robust about operation errors that may lead to two clusters to mix together * Revert the sendfile() implementation of RDB transfer * Fix TLS certificate loading for chained certificates * Fix AOF rewirting of KEEPTTL SET option * Fix MULTI/EXEC behavior during -BUSY script errors- redis 6.0.4: * fix a severe replication bug introduced in Redis 6 by the "meaningful offset" feature- redis 6.0.3: * fix a crash introduced in 6.0.2 - includes changes from 6.0.2: * bug fixes * fix to client side caching when keys are evicted from the tracking table but no notifications are sent- redis-disable_integration_logging.patch: remove - redis-enable-bactrace-on-x86-ia64-and_arm32_only.patch: remove - getMcontextEip-return-value.patch: Add missing return value- add BR pkgconfig(libsystemd) for the rewritten systemd support and force building with it- Update to 6.0.1 * https://raw.githubusercontent.com/antirez/redis/6.0.1/00-RELEASENOTES * XCLAIM AOF/replicas propagation fixed. * Client side caching: new NOLOOP option to avoid getting notified about changes performed by ourselves. * ACL GENPASS now uses HMAC-SHA256 and have an optional "bits" argument. It means you can use it as a general purpose "secure random strings" primitive! * Cluster "SLOTS" subcommand memory optimization. * The LCS command is now a subcommand of STRALGO. * Meaningful offset for replicas as well. More successful partial resynchronizations. * Optimize memory usage of deferred replies. * Faster CRC64 algorithm for faster RDB loading. * XINFO STREAM FULL, a new subcommand to get the whole stream state. * CLIENT KILL USER . * MIGRATE AUTH2 option, for ACL style authentication support. * Other random bugfixes.- ppc-atomic.patch: use libatomic also on ppc- add hash file from redis-hashes and verify it during build- redis 5.0.9: * Critical fix when Streams with AOF ore replicas are used: Prevent reprocesing some entries upon restart * Speed improvement: Clients blocked on the same key are now unblocked on O(1) time- Use the tmpfiles macros instead of calling systemd-tempfiles direct and build wrong macro paths.- Refresh spec-file with spec-cleaner and manual optimizations * Remove Group tag. * Replace make by %make_build macros. - Update to 5.0.8 * https://raw.githubusercontent.com/antirez/redis/5.0.8/00-RELEASENOTES * Fix Pi building needing -latomic, backport. * Fix impl of aof-child whitelist SIGUSR1 feature. * Fix ThreadSafeContext lock/unlock function names. * XREADGROUP should propagate XCALIM/SETID in MULTI/EXEC. * Fix client flags to be int64 in module.c. * Fix small bugs related to replica and monitor ambiguity. * Fix lua related memory leak. * Simplify #6379 changes. * Free allocated sds in pfdebugCommand() to avoid memory leak. * Jump to right label on AOF parsing error. * Free fakeclient argv on AOF error. * Fix potential memory leak of rioWriteBulkStreamID(). * Fix potential memory leak of clusterLoadConfig(). * Fix bug on KEYS command where pattern starts with * followed by \x00. * Blocking XREAD[GROUP] should always reply with valid data. * XCLAIM: Create the consumer only on successful claims. * Stream: Handle streamID-related edge cases. * Fix ip and missing mode in RM_GetClusterNodeInfo(). * Inline protocol: handle empty strings well. * Mark extern definition of SDS_NOINIT in sds.h. * Fix revisit CVE-2015-8080 vulnerability. * Avoid sentinel changes promoted_slave to be its own replica.- print instance name in the from the service files- Don't install redis-trib.rb, it's only a dummy telling the user to use redis-cli instead and pulls in ruby for that.- Make redis useable in a container (drop size from 100MB to 20MB): - Change user generation from shadow to sysusers - Drop redis-initscript.patch and sudo requires, we use systemd - Drop BuildRequires for procps and tcl, they are not needed - Make logrotate recommend, it's not required for redis to work- Update to 5.0.7 * https://raw.githubusercontent.com/antirez/redis/5.0.7/00-RELEASENOTES * Test: fix implementation-dependent test after code change. * RED-31295 - redis: avoid race between dlopen and thread creation. * Cluster: fix memory leak of cached master. * Fix usage of server.stream_node_max_*. * Update mkreleasehdr.sh. * Remove additional space from comment. * Fix stream test after addition of 0-0 ID test. * AOF: fix assignment for aof_fsync_offset. * Rename var to fixed_time_expire now that is more general. * Expires & blocking: handle ready keys as call(). * XADD with ID 0-0 stores an empty key. * Fix unreported overflow in autogerenared stream IDs. * Expires: refactoring judgment about whether a key is expired. - Refresh reproducible.patch - Update to 5.0.6 * https://raw.githubusercontent.com/antirez/redis/5.0.6/00-RELEASENOTES * RDB: fix MODULE_AUX loading by continuing to next opcode. * Missing per-skiplist overheads in MEMORY USAGE. * RM_Log: add support for logging without a context or context without module. * Cluster: abort loading nodes data if vars arguments are unbalanced. * More strict checks and better comments in flushSlaveOutputBuffers(). * Improve comment in flushSlavesOutputBuffers(). * Replication: clarify why repl_put_online_on_ack exists at all. * Networking: flushSlavesOutputBuffers bugfix. * RM_ReplyWithCString was missing registration. * Fix to module aux data rdb format for backwards compatibility with old check-rdb. * Implement module api for aux data in rdb. * Redis-cli: always report server errors on read errors. * Reduce the calling stack. * Make EMBSTR case of #6261 more obvious. * Make memory usage consistent of robj with OBJ_ENCODING_INT. * HyperLogLog: fix the fix of a corruption bug. * Fix HLL corruption bug. * Extend REDISMODULE_CTX_FLAGS to indicate if redis is currently loading from either RDB or AOF. * Uses addReplyBulkCString. * Adds RedisModule_ReplyWithCString.- update to 5.0.5 Major changes from the Redis 5 series: 1. The new Stream data type. https://redis.io/topics/streams-intro 2. New Redis modules APIs: Timers, Cluster and Dictionary APIs. 3. RDB now store LFU and LRU information. 4. The cluster manager was ported from Ruby (redis-trib.rb) to C code inside redis-cli. Check `redis-cli --cluster help` for more info. 5. New sorted set commands: ZPOPMIN/MAX and blocking variants. 6. Active defragmentation version 2. 7. Improvemenets in HyperLogLog implementations. 8. Better memory reporting capabilities. 9. Many commands with sub-commands now have an HELP subcommand. 10. Better performances when clients connect and disconnect often. 11. Many bug fixes and other random improvements. 12. Jemalloc was upgraded to version 5.1 13. CLIENT UNBLOCK and CLIENT ID. 14. The LOLWUT command was added. http://antirez.com/news/123 15. We no longer use the "slave" word if not for API backward compatibility. 16. Differnet optimizations in the networking layer. 17. Lua improvements: - Better propagation of Lua scripts to replicas / AOF. - Lua scripts can now timeout and get in -BUSY state in the replica as well. 18. Dynamic HZ to balance idle CPU usage with responsiveness. 19. The Redis core was refactored and improved in many ways. However the list above really does not do justice to the changes of Redis 5 since the core was improved in many ways during the development of the new version. However certain changes were back ported into Redis 4 once they were sensed as safe, because many improvements were hard to distinguish from fixes. The most important user facing improvement is without doubts the introduction of the new general purpose data type after years: the streams. Note that we worked to improve and fix streams till a few hours ago, so while we are not aware of critical bugs in this release, surely there is to handle it with some care for the first weeks. Bug reporting will be highly appreciated and we are ready to work immediately to release 5.0.1 once there is enough important stuff to justify a new release (probably soon). People not using the streams can have probably a better production-ready experience with Redis 5, also because many internals are shared with Redis 4 so the jump is not as big as it was between 3.2 and 4 in terms of how things internally work. Well, many thanks to the Redis community and the developers that made this release possible, contributing bug reports, patches, new features, working on the clients, sometimes debugging problems for days. Also thank to everybody that adopted Redis for their use cases making things work for users worldwide. see installed /usr/share/doc/packages/redis/00-RELEASENOTES - refreshed patches to apply cleanly again: redis-conf.patch redis-enable-bactrace-on-x86-ia64-and_arm32_only.patch reproducible.patch- update systemd unit file to fix redis shutdown immedaiate after start- make sure that disabling/restarting servers works https://nordisch.org/posts/hooking-up-instantiated-services-with-rpm/- make check && true -> make check || true This was probably meant to catch an error in the test suite, but with && it would only return true if it would return true already.- added systemd unit file file redis-sentinel - the unit file uses the same multiple instance mechanism as the normal redis unit file systemctl start redis-sentinel@default will look for /etc/redis/sentinel-default.conf and expects a pid file /var/run/redis/sentinel-default.pid Please make sure your sentinel config sets the pid file. - adapted the default sentinel.conf.example to set the pid file and the log file similar to the normal redis.conf: /var/log/redis/sentinel-.log /var/run/redis/sentinel-.pid The unit file checks for the pid file so please adapt your local sentinel configs. Changed: redis-conf.patch - adapt and restructure README.SUSE - move the LimitNoFile to the service file itself so the user do not have to manually do that step for every instance - move the apache integration into its own section - add section for redis-sentinel - install sentinel example config with group write permissions to indicate that the actually config needs to be writable.- replace some duplicate binaries with symlinks similar to what the fedora package does- Refresh spec-file. - Update to 4.0.11 * https://raw.githubusercontent.com/antirez/redis/4.0.11/00-RELEASENOTES * The disconnection time between the master and slave was reset in an incorrect place, sometimes a good slave will not be able to failover because it claims it was disconnected for too much time from the master. * A replication bug, rare to trigger but non impossible, is in Redis for years. It was lately discovered at Redis Labs and fixed by Oran Agra. It may cause disconnections, desynchronizations and other issues. * RANDOMKEY may go in infinite loop on rare situations. Now fixed. * EXISTS now works in a more consistent way on slaves. * Sentinel: backport of an option to deny a potential security problem when the SENTINEL command is used to configure an arbitrary script to execute.- Add reproducible.patch to have fixed hostname and date (boo#1047218)- update to 4.0.10 (boo#1097430) CVE-2018-11218 CVE-2018-11219 https://raw.githubusercontent.com/antirez/redis/4.0.10/00-RELEASENOTES - Important security issues related to the Lua scripting engine. Please check https://github.com/antirez/redis/issues/5017 for more information. - A bug with SCAN, SSCAN, HSCAN and ZSCAN, that may not return all the elements. We also add a regression test that can trigger the issue often when present, and may in theory be able to find unrelated regressions. - A PSYNC2 bug is fixed: Redis should not expire keys when saving RDB files because otherwise it is no longer possible to use such RDB file as a base for partial resynchronization. It no longer represents the right state. - Compatibility of AOF with RDB preamble when the RDB checksum is disabled. - Sentinel bug that in some cases prevented Sentinel to detect that the master was down immediately. A delay was added to the detection. - refreshed patches to apply cleanly again redis-conf.patch redis-initscript.patch- Update redis-enable-bactrace-on-x86-and-ia64-only.patch to handle arm and rename it to redis-enable-bactrace-on-x86-ia64-and_arm32_only.patch - Add redis-disable_integration_logging.patch to disable logging test when backtrace is not enabled- Update to 4.0.9 * https://raw.githubusercontent.com/antirez/redis/4.0.9/00-RELEASENOTES * Critical upgrade for users using AOF with the fsync policy set to "always". * Latency monitor could report wrong latencies under certain conditions. * AOF rewriting could fail when a backgronud rewrite is triggered and at the same time the AOF is switched on/off. * Redis Cluster crash-recovery safety improved. * Redis Cluster has now the ability to configure certain slaves so that they'll never attempt a failover. * Keyspace notifications API in modules. * RM_Call() is now faster by reusing the same client. * Tracking of the percentage of keys already logically expired but yet not evicted.- Update to 4.0.8 * Release notes: https://raw.githubusercontent.com/antirez/redis/4.0.8/00-RELEASENOTES * Fix crash Redis Cluster instances during deletions.- Update to 4.0.7 * Release notes: https://raw.githubusercontent.com/antirez/redis/4.0.7/00-RELEASENOTES * Many 32 bit overflows were addressed in order to allow to use Redis with a very significant amount of data, memory size permitting. * MEMORY USAGE fixed for the list type. * Allow read-only scripts in Redis Cluster. * Fix AOF pipes setup in edge case. * AUTH option for MIGRATE. * HyperLogLogs are no longer converted from sparse to dense in order to be merged. * Fix AOF rewrite dead loop under edge cases. * Fix processing of large bulk strings (>= 2GB). * Added RM_UnlinkKey in modules API. * Fix Redis Cluster crashes when certain commands with a variable number of arguments are called in an improper way. * Fix memory leak in lazyfree engine. * Fix many potentially successful partial synchronizations that end doing a full SYNC, because of a bug destroying the replication backlog on the slave. So after a failover the slave was often not able to PSYNC with masters, and a full SYNC was triggered. The bug only happened after 1 hour of uptime so escaped the unit tests. * Improve anti-affinity in master/slave allocation for Redis Cluster when the cluster is created. * Improve output buffer handling for slaves, by not limiting the amount of writes a slave could receive.- Update to 4.0.6 * Release notes: https://raw.githubusercontent.com/antirez/redis/4.0.6/00-RELEASENOTES * PSYNC2: More errors in the fixes for PSYNC2 (CRITICAL). * Quicklist: change the len of quicklist to unsigned long. * Quicklist: fix the return value of quicklistCount. * Refactoring: improve luaCreateFunction() API. * Remove useless variable check from luaCreateFunction(). * Fix issue #4505, Lua RDB AUX field loading of existing scripts. * Regression test for #4505 (Lua AUX field loading). * DEBUG change-repl-id implemented. * Buffer overflows occurring reading redis.conf CVE-2017-15047 (bsc#1061967)- Update changelog with CVE reference- Drop SLE 11 support. - Refresh spec-file. - Update to 4.0.2 * Release notes: https://raw.githubusercontent.com/antirez/redis/4.0.2/00-RELEASENOTES * Different replication fixes to PSYNC2, the new 4.0 replication engine. * Modules thread safe contexts were introduced. They are an experimental API right now, but the API is considered to be stable and usable when needed. * SLOWLOG now logs the offending client name and address. Note that this is a backward compatibility breakage in case old code assumes that the slowlog entry is composed of exactly three entries. * The modules native data types RDB format changed. * The AOF check utility is now able to deal with RDB preambles. * GEORADIUS_RO and GEORADIUSBYMEMBER_RO variants, not supporting the STORE option, were added in order to allow read-only scaling of such queries. * HSET is now variadic, and HMSET is considered deprecated (but will be supported for years to come). Please use HSET in new code. * GEORADIUS huge radius (>= ~6000 km) corner cases fixed, certain elements near the edges were not returned. * DEBUG DIGEST modules API added. * HyperLogLog commands no longer crash on certain input (non HLL) strings. * Fixed SLAVEOF inside MULTI/EXEC blocks. * Many other minor bug fixes and improvements.- cleanup service file - add redis.sysctl file - update README.SUSE * add info for socket usage per service * add info for limits per service (LimitNOFILE=10240)- Update to version 3.2.9 * A few rarely harmful bugs were fixed. - Changes accumulated from 3.2.8 Two important bug fixes, the first of one is critical: * Apparently Jemalloc 4.4.0 may contain a deadlock under particular conditions. See https://github.com/antirez/redis/issues/3799. We reverted back to the previously used Jemalloc versions and plan to upgrade Jemalloc again after having more info about the cause of the bug. * MIGRATE could crash the server after a socket error. See for reference: https://github.com/antirez/redis/issues/3796.- Update to version 3.2.7 * This release fixes important security and correctness issues (boo#1064980 CVE-2016-10517)- update to redis 3.2.6 * fixes for GEORADIUS, BITFIELD and Redis Cluster minor fixes. - update 3.2.5 * This release only fixes a compilation issue due to the missing -ldl at linking time.- update to redis 3.2.4, including fixes for security issues: * CVE-2016-8339: CONFIG SET client-output-buffer-limit Code Execution Vulnerability [boo#1002351] - bug fixes: * TCP binding bug fixed when only certain addresses were available for a given port * improved crash report * Fix for Redis Cluster redis-trib displaying of info after creating a new cluster.- redis 3.2.3: * fix replication delay issue * drop CVE-2013-7458.patch, upstream- Test for user/group existence before creating them. Request shadow to be present for the scriptlet.- Fix CVE-2013-7458: unsafe permissions of command line history boo#991250, adding CVE-2013-7458.patch- redis 3.2.2 - Highlight bug fixes: * Fix Redis server and Sentinel crashes * Fix GEORADIUS errors in reported entries - New features: * slaves support the slave-announce-ip and slave-announce-port options. * RDB check utlity is now part of Redis and uses the same RDB code * redis-check-dump utility is now able to show certain information about the RDB file including creating version and date.- Update to 3.2.1 * [FIX] Cleaned up spec file. * [FIX] Critical bug in Sentinel was hopefully fixed. * [FIX] BITFIELD bugs fixed. * [FIX] GEO commands fixes on syntax errors and edge cases. * [NEW] RESOTRE now accepts dumps generated by older Redis versions. * [NEW] Jemalloc now is configured to save you memory, for a problem a change in the jemalloc configuration did not really survived when the 3.2.0 release was finalized. * [NEW] TTL and TYPE command no longer alter the last access time of a key, for LRU evictions purposes. A new TOUCH command was introduced *just* to update the access time of a key. * [FIX] A bug was fixed in redis-cli, that connected to the instance running on the port 6379 if there was one, regardless of what was specified. * [NEW] TCP keep alive is now enabled by default. This should fix most ghost connections problems without resulting in any practical change in otherwise sane deployments. * [FIX] A Sentinel crash that could happen during failovers was fixed. * [NEW] avg_ttl reporting in INFO improved. * [NEW] Sentinel: improve handling of known Sentinel instances. * [NEW] Redis Cluster address update (via gossip section) processing improved to avoid initiating inwanted handshakes. * [FIX] Critical bug fixed: There was a problem in the way a cluster instance loaded the AOF that could cause data written via scripts to be lost during reshardings. * [NEW] There is a new very powerful BITFIELD command. Check the documentation here: http://redis.io/commands/BITFIELD * [NEW] CONFIG GET is allowed during the loading of the dataset. * [NEW] The DEBUG command have new features and can show an help with DEBUG HELP. * [NEW] redis-cli show hits about the commands arguments to the right. * [NEW] GEORADIUS got a STORE / STOREDIST option to store the result into a target key (as as orted set) instead of reporting it to the user. * [NEW] Redis Cluster replicas migration now works in a slightly different way. In the past a slave could migrate only to a master that used to have slaves in the past (and if there was still trace of this information). Now instead if a new slave gets at least a slot, and at least one other master in the cluster has a slave, then the new master is considered a valid target for replica migration. So if it will be orphaned and there is a spare slave it will get one. * [NEW] CLUSTER SLOTS output now includes the node ID (in a backward compatible manner).- Fix installation example in README.SUSE- Update to 3.0.7: * [FIX] Many fixes to MIGRATE multiple keys implementation. * [FIX] A Redis Cluster node crash was fixed because of wrong handling of node->slaveof pointers. * [FIX] Fix redis-trib rebalance when nodes need to be left empty because the specified weight is zero. * [FIX] MIGRATE: Never send -ASK redirections for MIGRATE when there are * [FIX] Lua debugger crash when printing too deeply nested objects. * [FIX] Redis-cli implementation of Lua debugging now allows to use the SCRIPT DEBUG command directly, switching to debugging mode as needed. * [FIX] Redis-trib is now able to fix more errors. A new CLUSTER subcommand called BUMPEPOCH was introduced in order to support new modes for the "fix" subcommand. * [NEW] Redis proctected mode: this feature improves Redis security and makes harder to run Redis in a configuration that is unsecure because no firewalling was used in order to protect Redis from external accesses. * [NEW] Cluster/Sentinel tests now use OSX leak to perform leak detection at the end of every unit. * [NEW] Detect and show server crashes during Cluster/Sentinel tests. * [NEW] More reliable Cluster/Sentinel test becuase of timing errors and - LOADING errors. * [FIX] lua_struct.c/getnum security issue fixed. * [FIX] Redis Cluster replica migration fixed. * [FIX] Fix a race condition in processCommand() because of interactions with freeMemoryIfNeeded(). * [NEW] Backported from the upcoming Redis 3.2: MIGRATE now supports an extended multiple-keys pipelined mode, which is an order of magnitude faster. Redis Cluster now uses this mode in order to perform reshardings and rebalancings. * [NEW] Backported from the upcoming Redis 3.2: Redis Cluster has now support for rebalancing via the redis-trib rebalance command. Demo here: * [NEW] Redis Cluster redis-trib.rb new "info" subcommand. * [NEW] Redis Cluster tests improved. * [NEW] Log offending memory access address on SIGSEGV/SIGBUS- Update to 3.0.5 * [FIX] MOVE now moves the TTL as well. A bug lasting forever... finally fixed thanks to Andy Grunwald that reported it. * [FIX] Fix a false positive in HSTRLEN test. * [FIX] Fix a bug in redis-cli --pipe mode that was not able to read back replies from the server incrementally. Now a mass import will use a lot less memory, and you can use --pipe to do incremental streaming. * [FIX] Slave detection of master timeout. * [NEW] Cluster: redis-trib fix can fix an additional case for opens lots. * [NEW] Cluster: redis-trib import support for --copy and - -replace options- update to 3.0.4 Upgrade urgency: HIGH for Redis and Sentinel. However note that in order to fix certain replication bugs, the replication internals were modified in a very heavy way. So while this release is conceptually saner, it may contain regressions. For this reason, before the release, QA activities were performed by me (antirez) and Redis Labs and no evident bug was found. - [FIX] A number of bugs related to replication PSYNC and the (yet experimental) diskless replication feature were fixed. The bugs could lead to inconsistency between masters and slaves. (Salvatore Sanfilippo, Oran Agra fixed the issue found by Yuval Inbar) - [FIX] A replication bug in the context of PSYNC partial resynchonization was found and fixed. This bug happens even when diskless replication is off in the case different slaves connect at different times while the master is creating an RDB file, and later a partial resynchronization is attempted by a slave that connected not as the first one. (Salvatore Sanfilippo, Oran Agra) - [FIX] Chained replication and PSYNC interactions leading to potential stale chained slaves data set, see issue #2694. (Salvatore Sanfilippo fixed an issue reported by "GeorgeBJ" user at Github) - [FIX] redis-cli --scan iteration fixed when returned cursor overflows 32 bit signed integer. (Ofir Luzon, Yuval Inbar) - [FIX] Sentinel: fixed a bug during the master switch process, where for a failed conditional check, the new configuration is rewritten, during a small window of time, in a corrupted way where the master is also reported to be one of the slaves. This bug is rare to trigger but apparently it happens in the wild, and the effect is to see a replication loop where the master will try to replicate with itself. A detailed explanation of the bug and its effects can be found in the commit message here: https://github.com/antirez/redis/commit/c20218eb5770b2cafb12bc7092313b8358fedc0a. The bug was found by Jan-Erik Rediger using a static analyzer and fixed by Salvatore Sanfilippo. - [FIX] Sentinel lack of arity checks for certain commands. (Rogerio Goncalves, Salvatore Sanfilippo) - [NEW] Replication internals rewritten in order to be more resistant to bugs. The replication handshake in the slave side was rewritten as a non blocking state machine. (Salvatore Sanfilippo, Oran Agra) - [NEW] New "replication capabilities" feature introduced in order to signal from the master to the slave what are the features supported, so that the master can choose the kind of replication to start (diskless or not) when master and slave are of different versions. (Oran Agra, Salvatore Sanfilippo) - [NEW] Log clients details when SLAVEOF command is received. (Salvatore Sanfilippo with inputs from Nick Craver and Marc Gravell).- update to 3.0.3 * [FIX] Fix blocking operations timeout precision when HZ is at its default value (not increased) and there are thousands of clients connected at the same time. This bug affected Sidekiq users that experienced a very long delay for BLPOP and similar commands to return for timeout. Check commit b029ff1 for more info. (Salvatore Sanfilippo) * [FIX] MIGRATE "creating socket: Invalid argument" error fix. Check issues #2609 and #2612 for more info. (Salvatore Sanfilippo) * [FIX] Be able to connect to the master even when the slave is bound to just the loopback interface and has no valid public address in the network the master is reacahble. (Salvatore Sanfilippo) * [FIX] ZADD with options encoding promotion fixed. (linfangrong) * [FIX] Reset aof_delayed_fsync on CONFIG RESETSTATS. (Tom Kiemes) * [FIX] PFCOUNT key parsing in cluster fixed. (MOON_CLJ) * [FIX] Fix Solaris compilation of Redis 3.0. (Jan-Erik Rediger) * [NEW] Variadic EXISTS command. Now the command accepts multiple arguments and returns the total count of existing keys. - added missing sentinel link- also pass the bind address to the redis-cli for shutdown (boo#835815)- update to 3.0.2 * [FIX] Critical security issue fix by Ben Murphy: http://t.co/LpGTyZmfS7 * [FIX] SMOVE reply fixed when src and dst keys are the same. (Glenn Nethercutt) * [FIX] Lua cmsgpack lib updated to support str8 type. (Sebastian Waisbrot) * [NEW] ZADD support for options: NX, XX, CH. See new doc at redis.io. (Salvatore Sanfilippo) * [NEW] Senitnel: CKQUORUM and FLUSHCONFIG commands back ported. (Salvatore Sanfilippo)- update to 3.0.1 * Sentinel memory leak due to hiredis fixed. * Sentinel memory leak on duplicated instance. * Redis crash on Lua reaching output buffer limits. * Sentinel flushes config on +slave events.- update to 3.0.0 >> What's new in Redis 3.0 compared to Redis 2.8? * Redis Cluster: a distributed implementation of a subset of Redis. * New "embedded string" object encoding resulting in less cache misses. Big speed gain under certain work loads. * AOF child -> parent final data transmission to minimize latency due to "last write" during AOF rewrites. * Much improved LRU approximation algorithm for keys eviction. * WAIT command to block waiting for a write to be transmitted to the specified number of slaves. * MIGRATE connection caching. Much faster keys migraitons. * MIGARTE new options COPY and REPLACE. * CLIENT PAUSE command: stop processing client requests for a specified amount of time. * BITCOUNT performance improvements. * CONFIG SET accepts memory values in different units (for example you can use "CONFIG SET maxmemory 1gb"). * Redis log format slightly changed reporting in each line the role of the instance (master/slave) or if it's a saving child log. * INCR performance improvements. >> Refactoring changes (no new features nor bug fixes) * Blocking operations full refactoring (blocked.c) * Client output buffer memory tracking refactored. for all the details see /usr/share/doc/packages/redis/00-RELEASENOTES - refreshed redis-enable-bactrace-on-x86-and-ia64-only.patch to apply cleanly- make sure we do not daemonize- finished systemd support- update to 2.8.19 - Don't log admin commands in MONITOR. (antirez) - List of commands flagged as admin commands modified. (antirez) - Lua cmsgpack lib updated to latest version. (antirez) - Add symlink to redis-sentinel during make install (Rhommel Lamas) - SORT: Don't sort Set elements if not needed. (antirez) - Fix zero-ordering SORT when called against lists (Matt Stancliff) - Update redis_init_script.tpl (Ben Dowling) - FIXED redis-benchmark's idle mode.With idle mode shouldn't create write event (zhanghailei) - zipmap.c: update comments above (Sun He) - replaced // comments #2150 (Deepak Verma) - redis-benchmark AUTH command to be discarded after the first send #2150 (azure provisioned user) - sds.c: Correct two spelling mistakes in comments (Sun He) - sds.c/sdscatvprintf: set va_end to finish va_list cpy (Sun He) - sds.c: Correct some comments (Sun He) - Update whatisdoing.sh (Serghei Iakovlev) - Include stropts only if __sun is defined. (antirez) - Fix implicit declaration of ioctl on Solaris (Jan-Erik Rediger) - Silence _BSD_SOURCE warnings in glibc 2.20 and forward (Johan Bergström) - Mark whatisdoing.sh as deprecated in top-comment. (antirez) - getting pid fixes (Serghei Iakovlev) - sparkline.c: AddSample skip Empty label (Sun He) - sparkline.c: mov label-ini into the AddSample Function (Sun He) - Only ignore sigpipe in interactive mode (Jan-Erik Rediger) - Simplify lua_cmsgpack macro and fix build on old Linux distros. (antirez)- redis requires sudo for the systemv-init script. As of openSUSE 13.2 sudo is not implicitly included in the dependency tree.- update to 2.8.18 * [FIX] Linenoise updated to be more VT100 compatible. (Salvatore Sanfilippo) * [FIX] A number of typos fixed inside comments. (Various authors) * [FIX] redis-cli no longer quits after long timeouts. (Matt Stancliff) * [FIX] Test framework improved to detect never terminating scripts, cleanup instances on crashes. (Salvatore Sanfilippo) * [FIX] PFCOUNT can be used on slaves now. (Salvatore Sanfilippo) * [FIX] ZSCAN no longer report very small scores as 0. (Matt Stancliff, Michael Grunder, Salvatore Sanfilippo) * [FIX] Don't show the ASCII logo if syslog is enabled. Redis is now an Enterprise Grade product. (Salvatore Sanfilippo) * [NEW] EXPERIMENTAL: Diskless replication, for more info check the doc at http://redis.io/topics/replication. (Salvatore Sanfilippo). * [NEW] Transparent Huge Pages detection and reporting in logs and LATENCY DOCTOR output. (Salvatore Sanfilippo) * [NEW] Many Lua scripting enhancements: Bitops API, cjson upgrade and tests, cmsgpack upgrade. (Matt Stancliff) * [NEW] Total and instantaneous Network bandwidth tracking in INFO. * [NEW] DEBUG POPULATE two args form implemented (old form still works). The second argument is the key prefix. Default is "key:" (Salvatore Sanfilippo) * [NEW] Check that tcp-backlog is matched by /proc/sys/net/core/somaxconn, and warn about it if not. (Salvatore Sanfilippo) for the rest see /usr/share/doc/packages/redis/00-RELEASENOTES- fix bashisms in pre script/bin/sh/bin/sh/bin/sh/bin/shsheep56 1666683296 6.0.14-150200.6.14.16.0.14-150200.6.14.16.0.14-150200.6.14.1 redisredisdefault.conf.examplesentinel.conf.example00-redis.confredis-benchmarkredis-check-aofredis-check-rdbredis-cliredis-sentinel.targetredis-sentinel@.serviceredis.targetredis@.serviceredis-user.confredis.confrcredisredis-check-aofredis-check-rdbredis-sentinelredis-serverredis00-RELEASENOTESBUGSCONTRIBUTINGREADME.SUSEREADME.mdredisCOPYINGredisdefaultredis/etc/logrotate.d//etc//etc/redis//etc/sysctl.d//usr/bin//usr/lib/systemd/system//usr/lib/sysusers.d//usr/lib/tmpfiles.d//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/redis//usr/share/licenses//usr/share/licenses/redis//var/lib//var/lib/redis//var/log/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:26564/SUSE_SLE-15-SP2_Update/f71aa304223bec16203783967997ed71-redis.SUSE_SLE-15-SP2_Updatedrpmxz5x86_64-suse-linuxASCII textdirectoryELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=439d85c6984567cf27ec6f6c7bde0092bcfd96f8, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=275dd5b3ef33fac013982373813417f8b8260306, for GNU/Linux 3.2.0, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=ed3c9f5fe05026696c0c2d37c573dfe1a7616888, for GNU/Linux 3.2.0, strippedUTF-8 Unicode textASCII text, with very long lines+,RRRRRRRRR R RR R R RRRRRRRRRRRRRRRR RRR R R R RRRRRRRPRR RRRRRRRRRRR RRR RR R R RRRRRRRR<7ҡoYƻlogrotateutf-8b1607eab6a5f9c506a7286908acfe607d4a07b51cb74fe76356281ab1f7ef5fa?p7zXZ !t/U]"k%w'^ h]Pa\Uh-YvJ,x˒w8u&Ŵ3pk{͊w]ai0m9jNfv-޸5owvo]А )˪#'(~NgD[ޢRM%5SVȲ'@g>&U-vcm۷!0\"+2|DcxS>CL9 ˖lZ{@qi>yr ' 4@J/ lSlL -M vx4K8p,+3X@=g=EM 5>kYR?6+϶V̬XP~1) uX܀ [$sLnW_A:jyLh qnoZN1劆t`x}NX %/(S%[gt/U](4:(`y 瞤>/ziU =hGVEܼ q`[$[ _%AvwoƖPʣ,o.t(fs[D8q̀?F( %:8yr0q A_[l\/2*$\u@wkSHD7t"빚gޥX^^/Εn[k$B7G_B^% ;5cs͗)pE`rAgUTn vR=\Ҥ1S ,QkA}>N"}\ke0{.v8hyzgE^~Vٝ}hppEeڲ\|# ږHj":WLUɪ}5}} &tP]{גX33Ie}zkIͨ@'jHյw+EԤxo)qdDG)}Yĺvu/1^XM%p(-|P@q &+/6'GyjaȳBYYltl=-"0/\X37HbҎҾ>4·V3=.z$cH%{"J9@)EL~̮«^̔!iF)jPc ^>h#VFGlm{dm#Vye w'Y-z`Lv|`WX`5Ιa*k|>IXtKaS~_9Ʀ}~^2L j;E^ض_+$WgXd0f2Ϯ➏#"kqĕ966Ɣ-8jI?1Ǡvc Pa"FĪqNmݸSݎЕ,nbKVg4O"gD0"0]=9ET*}4yBuc6F`/&^$xzlOxn’kׯ`aT2(w?sWr6K'IԩtnX'x!WB, fMڬ.U QdJ$Evd':ɑ ?U4մt&z`S1W _~qa.}9_C]Ĭ H-Uat5r!+Als5-H+3f%cϙ̩Lo&yNex"8K[PpZ[!WVl }ČFrU)oȟ*'uCqR;Qp'VXxa~Jq7{DV+JP覈\{%zʒX01Eᛋ(JAעqU3ΝkhF筓g#`m!o4ݧ Dh6xqVmyՈ-_$̊\w<o4sj9 [~Q=sP $BC[߅|{@-gXr4(%W{}Zp'%`4`E$4)n f]7Ӛ.i$5U LB,etX* M((pivOnw:߷9ZD%f\I`kW&oFpD{S<FZ=O_0C=@`e." 2ph,@Tēp>DYDbF};n,#tuGG9\d *w*O)~6RUZ)xĸcR[X;<ÙZPΦDŻNf΁. ?ib`:1dDĔ"!uQ6uک ~Q5ZCX>"K_ e@?h:A j-}_" %S{8.ay밴m17kB:95Ya ]dE5>Z'*;JtxFjR[I/tiapkLG3 MHLk+}~Cs_|cÒ\h`6q7n'A9і[| ':qdZ7ؒDRc9N(nxTgK/:M6n5 UEk **r䗁9qf#|"E,F谗͙~^ jmES"p(nB)+Z*o|)*9O;fA bFD+q-O7Ɨvs,&;?[q)0#bezs F7EWӹV*>>~n,:://(Zgg$/v' h 4Šyz,9٧="ȭxH Sę ehın#! c:$646nD}^Pl_(y]Ig{F+ŤkLjYb3V5窑~Kεv.Nq:Hu*U5ֈڀ,$ЄV[TkG"@L/W}|с} SbOv{;P/IXiYC&0?|:<]*Ҙ e ۶?6^1,IumS22湫ܪuz60]OE=kϝ欓FW@waCpbNtK}xD0/o!ܭ iRc}R7PMn% 8Nyo4.ݙYb Csݎk.Px}цEE ? (F[9Ld%{|G;ƻ)ՓQtmޤ|7ѩLª4͚~$=uRLy6Z~FYJt~Vccs5Q'n=E*rl8d?"NzxeKb@k#9+˫lS߫_)řKPmz>__@rmw1g@"ΐ y|(O}ʓ#=qJ"A 0x5ၶxVonk,r!ӪYWaO>jc98fr.̌>U]o&SꝦW&+ -i % i:.q}*<$hz-xi9R&ҷpD. VL*J2lTX'F揥P5 $P*ѤԡoґVm Lng,oأhgذy`T;V}KI;7R32rEAhTi,cI`L]HvgPxUkAyt<{k/R=Sohl]q hԜؿMѨ*yaF\N^B-yh(Y(ni!M|C%9j& N}(EI 65j {oiX8&qf0A'稇ߺXr'W?r$-ix>UlՌv Ru.{xAjI2sgAr"0 OK; o-뜽nu9*F$z9:BAke{&dt:i 36㔛B ɽaYgϯ}XlFG0?PkY= H %c=2ou0Bmmb k/t3?i~uM@[Po6X i{=x6>|?G X+-o(>P6 y3+PC29L0po:]!9 NR= vmiv2~WMqiJG.q)=}tK0+KvjuvU E#%V|w!2I3|0Eb{n[=Ss0ܮv 1{9NHYÌ^`NQgY*6;Vb m*xػVI|R9mEv" e^In W6?rGBL>@4Ԩ.~C,UlXxx ;W I0[p+qzBQ&$B]*Uf4='>(>5NBDOR #M>{ cU- L9qCܺ\UGDik ;+Aߏ.z9)pns.rVTt]$֧Enl<!{N]qp~K%y6u!]I #1O3T|܆f`IT@ (<Ny̆nArvl![6e~ZFLpV0*Wc/}p0ucFCD @@Jڔ7ih,"J>AԿh .O-T ?jw*U--KJWf IJnSHWU{zrwZw2#86ڸ;7.^ ǭS ="=gxGf"Hfr2갼v߽=C,Lħ[pȇjؤG\-N"Mé,Ϳ_hqB41{WoQۖ}-$/%š"O2x5g`Qp&|_B.Av׋0YBbK G66*F_QӬIB1 ۗdW (v7ܻY1l-f9OGHxKAyjTlםU==j526)k)ͅG|.H*ڀKai%+նLޥr}rE~ÞMʨuY DإF聥R:{?X}q<ؗVf2K b5vhBYU1efPa #{ER`1`"$kMFyc:Y X& z\ī<.NClV@p;w.hbIRV؈d s/SOx4)`W]NSTOhEZML6i|Xrz9*CEu+ }6k{'r9lOfP̞AP<v Va#&^5 R\ڒ))".b7U4N1>(ͅŷ>7"Z6u4/WQFVc]b [lA} 7z/ 녝bb-jfԗ=%t &@H{/Xi9r$]97K b{{.fk U12M=BdlZ( =ٞ9ڪIa7h5:7Z:y:Pvt+OrxK1'Oo?!1cB>[݃oT*9[pCx1V࡝os~E4@Co8PsSLx C^rxJSV>&/5I- 2[!E' y:^( D.9Td)ƒ3z0zuVW1% N]aFW*y@TGrUГ[B#Ĕ 1}J/_>Lc+#A=j0IUЂeɒUM\N]Fnа/DN=,E?|M#ߕsyxOyd£Sې_cq00NK͑R8.wBkn[ޗdΌ՘ʃwQ,˽vjƧEJS ~nV{jk#c lmD̎S L7 ~}#/b[\ZecC2 Z?ye [:q,Z]coG-p|1$hrY&e_bY=髠4q*XRvQZ!$'L[ S}iȬtl_ XjrGI֔tqm<Àȵyx݃>,g֣"+r( Uؘ}Kiߝ?GR >1c҂[LF(&H) G?׃}#Гk B!I9SHeʱvYJ#[5g}Q}2)/͵9~8[5?]CcrOyB~#jJ[_w6{nǀ%˰ HAl hʽ:N_%J/&(}tKB㌢ld!gSk"Pa@~=N$`$˷mZg*XTovq}дԫ| n' ~&pDd K'l8Љ{ a8 u8)ɱ.fVMt^Կ^ہجpG%:ߨ7tgT3DF}HS"i#Ś&aޟ=J&K3Sc;h4͐Er|& x5’ً8bObzPP8Noz?#8q f4 $rst_d/( 2ҪPF/4va.0ޚdt5:^+V/N }kSqkmeFʂ:.Kg?`8N@;r\kXʦuIztV$]5[>fHWDTrSyҕ/`HSjLk*%ѮafhY$!tt8%bR^c k0Q4Ԁzu=OH9*oIC|VuGbqyicpX^Rn\)]bMS!KXC+dn#CH-.INT+@giKsNZh 4ӢBʀU_Mյ?:Y1!{L::}\iq|[THIOзߘX1%޴9Z}}juhj~ag3aWr 2ڀ=2 j0eg{ݞmrT !Ptw/d.6M$d;+уb/?t#xsL%Lq_f%\y\;[5hNRCʽr4q₂LH$Y@r:2y^j1?aW/ԑ|<,^w4|9S*V Y]’l]+ rxç #8Scތk Fz \`\dB\VGK5fxjxkrǶЃA^{)^KF25'VKHYe,[/f#`Iѿ{KWɠTP!eAQ.㬔 7kMp_;S&aަ8/1qk@@ 끩u2wcyP'P*JMG9] &:ܹVV7]2%fvn((/MGU*@C*]8y @vOP׊=UE ! UZN ]Jc9yk }ZQo50vdxiL G(ĩDWA[DP@;-Mm,4y(,jOv5flE/BELRM'.)+wWF+`Hp ~9\Б/YMUo$tÙ!Ѡd:Fdsl7k[Y PVZ ݺKhF#ҢT q@Kt}kѓMōO̒\Gþɳ qA70QA#.'kd9HV?m"ܽAG-ojỾ;}E0NwBR`NM|I`$#Tj% N_1¡0vpłMT)%w4xfL ȎhI GPHp1}|WV-1IsƄx6QyTcM}V^PYHϑaPkD0sc 5HjzbuUWkP0 Vv1T/7s\9uF5il)G* Dʹ̭J+xl\/"}4T:|O/sn| !@V[]#.GRZƒ-W?Z.؈NϨu@oi 6ڱ<(/bQy ~h<_]581:[&ڡT#3Nxr.X̡.@wþrnv{9p2F_58eJq8p1,-;XIM Nh9u|6mZSHn= zޟ|s8qZT1xN9tHm!"NOLpD0V\mAͰ -Vl>(\a׳h*( "B+͒RtjiX\Z#-OˣYdkRj- &x !*[ ;3fRPw6+/B#!KWH iP,RnZV L_@6x]I2TC/l~2cUo_^X("x!̓AMROJ_SE p2 p7.Wv4-Ulk'X|t ŠnBwDR#qUELVqG "ґ-'I$IUy _L:a- ~OPvD%~ egpDASmݸ@: r_@AۂpAI?; %.0& T5tI(}|#[rnt{Q0LYXP`B:3AφB 9E$1"^5v"Z8枉m 87=ʫރxGw"s'?٢/޶q7B_ ;a|Y\IѰ0YEPheu+eJf^7e]* |A?~]X ڀ<^ %9an1RX+lQ<m13?HVub}MeCƠFNV#G~ԟϦ観kRS\]vjD%رrU٤q6@u>ݸ)rۢEzށaVxӄ3%= N-A3N?cyFpZx}BurT nzo/l8M@l)=}혷e&:;>q_(m]Lz202E. b_S}b:mŦ@30{5t)tjB+ VAevI6rl(jj'F -KvЙ=f(ܦtvScaǩ(O^˸h'EM2?e6vz rblsێ_GPյmIuqdpgy Rp=yW$jPƯnm_lwZ,J$аl<oSCaO>sŻd6Lj4fFVf,eוT@VbT-1@3T0 ?Ȕ]})XAg]b^4|KKKj RDˌZ&q]bkcߘ$+|r'G+D ĮPۂ79 |y6a [`ExeX@sOeZ}ۅ'ET$w?V/;?UmP7)k-OB<33+!8FHrbڈKv?FHFv,+*?["z?$gG&eX"5MʋȊږ[DžΘk{֫r 3rB ĸ|ae] 3`BL yC/ײ~K:v%L%{~~sdRV C|+F4[ҢWEěR "R!$3Џtl0Apm%m{@IX[ʋU {)ULR?_ jJ"?pLMj7&V(pTCj3a毣fLX_|]2_:Mx)KQ,I a(/`-מ1RsEoۅ3!~%ͯ;O[Y _P>ò?'=ֶxi` gL^6ĢF-vُOke)GvTFߐ*ۓQ1<džp[0W9j7Mn8/1!&dQyS +1ҜRGM6བྷI xg( ԝCi>e Z>A㗓iQEo)+C)#nhc*z UPX{>iNv HFV&|^̵ҶWm“=f!kI:Ȏnj#ZFMpCgS-f8&vTIQ Y5hwDJzkީut@Ӟg- \iPO{1pN>-4R<<Y6{%/zTCO`TJ70_QK:5aF=,) ZiZFA#x 3aC;OgUG_?ӊ41"=4"FaCiCWvi+p^/2&/S& KBz;>uZM]¯Ήۙ:} 5KJA7f 3:c'U+@,!sFA\.&|racr}eL+r;"q2R jh0כhfF Q-N{fdMbw#S+*`q^ܐn:\ K0\*dpMjㄞBi"Oq2X˫xV 9P4- qYrI58 G: 76BZ=VYV" Y+pq'畉A?ɇ2~8֞7 _/"r%Ǜ83tpѶѯzόmgPOE-z,|(IgN]/ցl3L xJVSw;ƃQ^?C,n1ԆZ8q"~j٥m?|']J`C5Ž!ؗ SHb.On-zt_N;>NGX"rA|| XfPGR R'5b~>vyжkA2xh '{bx.S] |eiSEU*2eKW_ed.n%=8/LVgTk~2rYֺ cXE>߅A' qy-2A˳\&QrHםD}nuw]JS9AgnD cأs`nZ%:f{1O+,GФdT!K 1D3) "LgkblpT ¹`~HsUIYȸ2lJDB#]̒Kz SGv3!]c؇ns9-}E >='SZ$t&vZͱ(ݧ}w@al|ϳ % INĴ; XaBY2A@A6^TŸf)lVAx>&vh߃]Qoo'nac,LJaXz*:s'1SWs5aQwYCh\]n%??y;O*59ҡIAdt1K .$H?[O=(2_IsBȁjwK^ )Bry#n)KVGX8Ӓ_X]%]]'2* ^Gmc9%a'Ma?eYM"XH:*omYu-FEe#!, =_SlBj,C*OQIّlRY5F{y* #_gB!ĪZ k>I(mibf+QiztZCEz~?6i9~YFv6Ʈ̘m~&ʼnPppM; fkgX;m8k1 p⿀[COt ￲/%2eY+p僽 Mtůb;~WMҎtA- QS~XWdJpVd(E=A[~T%)Ca֕> m&!3q5#`9~f=ݿqۨӺ\##pTy pPwej˟W&׭{Q3V 솫PF:h%Et( y!l2VP֝&]Skg_bd vi6eOHƪ_  <\s׏Tzy8Rf̞e4 tSLϜӭP 8ٳn\$nܽ-2@HH? ZX8gwmp7w0aH"'3e6KFCzN :-/}rL`8^Zcrƾ" coLU1#'9 X'mG*Z( myȑٍξ!2ѧucV:(6跛ڈƿ75cjNtcL+_"u}zңҷw`YLQT Z]-/G~!!'KdSIO"NqwQ&Z`\VkP) fM )oПo&Pv`*!FrZ`zFLN8p.O:3)*nAMմ -ܮg'q^x ={l Eq^4P*}H=Ne-+FK,i\pӔ$gďYWZ[+lc#X& \0;F̧zKIcw7Ym-UIi582>8j\G=OD'i#κO~JNQG{:N,Q4_~&C./ z8=iAq9fT*뱑秊 Gظ'$F:6dcC™9$!0bMm׶[]m8翌{ ;k 󭱪K+nLX%i7$2 DyH6;զ*n&m }+>W2a=}A Gtg[%|:h㐟IYZkۉ~hs>}Vo= #T9s5q:Cs hg87~+N抆 z̠}|f(&А-{'16aDq 2M\n"kcX! l6"!G ;*V+5*T/qk)rhaa[/C PfwEClo`j0<89:#;:ncc촫@)Jڒ d\@-@9O8xTtx1+uW) rq(#pXɈ-GتprDJ]`Ú\]AYl-Ƀ$fjrx`̯/&{ůoAACUbѸSZ|u=Z^(U١nW"vM")ǁ LT0n Z?zW{d,w*zSA]5Ӯ)U @1ϻ$ɢ,ZQPjpݙ^2`96^lEkNb\Hn4n-44/y7·tnᭃð׀g*,ƝxP@ ގi#vARȭo m?FXy !J"P_ֺqX;T FD ҋs?I/W#Y߬8][Ng,TMc ȔXhd%ʗ q{T>gxG%w9 k] Yi[<_%0<1$yZV:j0m8 ۛu{iºɉ B~v]DԣVv38{yW/, GgeUpoZ)ǼZnc"#&8T|<kB/tA/W,es~[hL{^:7)}&UEҿU2qFޮ߬tR&eg F"Et6A 8Ov7KWw@[\2!ȓ>Sk4u[Tnkroybzrz PKb\;WK=fZJW\ef vhaDlgnOYT[8,Y^q.rfRAF!fk2Xp􂁡zWeg[DZF~V܂z|-5;K&a50순(3tWw^aa*"5Cfچ3&EN4@*OtlMD`q GAj>В}ӈ$ݱBof&%=u!n⽅UI s~ ߐ-EDi)d@?Gy =ӤMfODz{׋M7C>9ٝM$g]U vfKNCa1F5?nF;/@ g l>& mYHHf9~QziΟi 1JIKVYLb@b16:)en[rjLM15nN8YO2*&ւpp1WynGѬw}o1;s:Ap_PhCKYĖ Ih7x>Ol$& T}Gz*2U1y~-J:KWd7.'G`Mt'jɔ I!I15)(de6Y$:9ǟybrт9e?9PӋ;Oè |z8v^_?F;Tֈ j rY?ʮM"OcM|y*ɵRUS־vn=ߓ/X~40Y%[WeJ;'Cij'ɴzF 4R%󝧁e_KQwVVܰ-?? q>2٘<wr9N }'e*H@ϛlf 4ؠNCY0~۬yqG*#Hv*}@Xyokr{ 3ᚘRG1_e@TnQuʳEǘSPŏ89w*wU!Ya.t b8>c0i t1~;#Hq,XDCxOYج;j5lnj5k*Ddvb qW:<!!ꆧPP5+H: # 2"K_-Fi@`LSAOSl+-̮jR=m a| egurf5HFz<c nQ#C\H(ͱ iibx559(@?z_j5k=ss/p 6_ >n ɐց`&>,Kw&+`/dQr~V6Ig%p?I')&}îG)5oSk*b9LH^jܐ1W$%C DR76i(QLl kHZXK A}ǸކJG:!K1Js2_-ۚ5'wC]oxR ][e1f6Q)hk\WG]k dw&G&{K_WK"tP5Jnn6{fيe4\Կ|S΁4.sސ榽`Aotu%("b)Ϻg,Ge4JtHU XF/;=yK 5x1Y{u;;“)ᝦ;|TnhBAUՃZW8wΤQTUF3цt\O1Μ.WFTN3ƥaAib(tv*k,lFjZ{+.B>4tK> jx_)G2A+UY|,xzk7M͈۸J'yJ^$oFEd]/#GGՋ}:<>5:-AJeA(pBbzTGYQ>?bN*WtP.N.n1ڷB+B=La󭈓kWU[Ro(Wy^#|,.OfRj"?/c(7Y؁e!R&M_4i8#s/Q#Q4-Ipjzl' x [ײ=Frt-;WTL'ߒk$2\Z3 RH_( Gm{gRuf1G3ݦ@2_-0VfԠg#) ={vIRNWiX: ȤVjBi, Z!).IA8 GߠJ#\4O&?`dr`E +F ƾj|T#Drty-BL#.[w4PτIiG;zgdqT9X+FbcFs{)>Lw8L]i0(6†z%% `r(@%mdҎ섲Qo/NҕHU:%;+'f d3jqz^b^lH/ɔvɲ"}WS5 /:a3Ҕ!!Ah kT m Ưp fMi3*/`5`\#aॺ"i:@ 1A0A%OӲp2,b*!M4=|[EQF +Л5N^ 3 t_>7NDm6ObHRS)|l='@@R(csOge5sﳱԧ>s LQ/@čy>*,+aV3V)IWKPWM7$-0=?=VUsĨ偹~{pKP3=!S AVh2F(4/& GV =8f=pvm Dq6S/~!YG[k!>E @["0s~ˈ!Oĸ#6+Jѷκ3| 0mO;GpM;cR" 6FNz&Aio(sώZu׽vo!K"B>rͿzC{ |.CͰ il{U<~ ג`36C-(φD6^~+;Ej57X+ɍFt&sSЭY^kIʌg6]# l(u/׵R!?ۤ".Ilc_aVR.d:?H{90G200XjR Vl,/[IglQ>.$x],) L|>!`W{]m_Ѹ= ץjkG&PÝYi UsΥB*M*'ٵKHȶ`n^ټ>0qjeJ.h l*'l"<5xHi Is4*`g(q;;:H|{#ɸg"YkWy!?^ԣYŁ1y0]TrLm 5 !'bْ+ C}'!':<Zj;TW3@4LkR.LRQiOS>b J}:i6~O /\],9Rx@7Ћ@~!8 MEQpb\L# }Z+BOkM&!l'Uޘzis{o۩Oz`W{zԴ7P[':Q|խ[ SD^fAE?J<=m;8G2twQEֿ^1on[qD!OdސW FjDxѫ|S˕d mGD?TJgE/?uM-azHs3rI9OA4!}'wL}dKV/Cڽx$lTT؅8KpN*"Ck㪹3!+pg6Ml=ݤ"݋dr& ($4 e&Nۤ-9)v+عމy+y+6@[?uǵ-5.}Sg˟(j="\CF) s眼6ktTkJO@_``~x{>OöW'G 3涥g="?{ghXpΔ#ѫNh.H77-$B\+m… kpCZ*U9Hl^/ N1TAUAޠy~g!#S8AΪWthb LH\ZU Q\x͑0IGۢSc<^l0v?7O(y?EJF.a éZ^WQg*3N\^. 7 aڷ 7^ys6;(^?1Kli*%Kt::e,^ʘchv(n,\1S-U)]g gjD /,H.o*%+2p0dZYu ˢ9:Xr-o"t.\ p!^=Ofut?'N4tW B93R(M<\[왨oHS9˫UkATPu7=ߓkenS1iso_O#tXVHJ5eiYa]gW8vz7:OEz$"c4BP3077w2ByE+ B7rO-' #9$SNLY2$=W3mvԀm%Q^ؕ1< ad]P)h/v/ X ݠ U*hMxvP )=5f3g!g,k;VαC.~/ݬu4 BhК{,ڥgL6 dX%~Z|^Y̋(q XlPDvLwK:l1s5< v4X&NM{S;'08 !IIqB0y7֓RISu9a@7}6t^%7w~U!Ń7"3'9ػ%w L($d ;A@-S!YQ>oҹZeCEkAġwS8&wzYLZ^Ϲj~8W" gnE*{/ԑ+[5mEDߥ8+wé֙5f4]r=F(>-֟gCB[_Js3@Ǿ(bS8so뇒7; i.8TJ1ڲ gg1lEOz^98%~hvMȱ:8d^LkZIPa)&S*P?j1cOKPܛkH r鲩wn =P֐lPXo<{[rn0"N*̸yQ#.\N?[@dFH;5P'sv6rpomcQH+&,(%D!ᎄ^O$tb~D|}9(oQz'1v +&+ʗ謲E{T n%HФ/!5]$-ht+oLd|ˈw0tBMFHG6u .xny(]9'FS2"2jVNcV ݀ާޜ2AQa̶MD_=׎ˌ@hbaE;MFkSi~r6;+wwT;y0~n'.+b\ ,Lhu:ɔ#Y[x#W(a}=?\~򸌨75L m <2V*zj\St#q%9v-Xzy t3moبs W>^hqK53JV84nSe1U塞ZGuZyEZWu,3kg銶*;jAz>S:Wg4=S9MF3_i& =ӏ?MWp޸[;|QUj3VpWTwh{GA=j\0-}]ScM&mQȋ25 \[k/u5 !UaE7G!_V9\S$zd4e*ݠYETZO{/&S, tc=ά 9$&eEN }a Qx KNu $Y8 yQiyDP__w@bǷQ$[$ݭ$F:ϼ|-q<)%X W fZN.쪔e 4}M1E߀̽4/yS\Ƨ-(b G'i|ITrV`=E]]LY{4 Xů=h>K?=fp; r3 &.+>p⹗t祄{mF8#f>$L(͏M>h_8mo"dۼaunwFA#`5;b 5`_`|gxg9۷1ɠ]d<*#9,ysUK8>"o, #ڴh&ࣀZ~ʘ{+;{8zY̆53"~wtĕ1׬rj-)^-|eIˡ4UTkQUiƴp+r2*q&SDk$\#]Ίݡ3WQ(f$jSQ4EG_ex]{ct 24[J'PU7pIQ#IBFyX20z`o}?i!bgkQT# <7qv10EX9P%:I)wǩ3tZmM}hѬ{-STW#Q`ӫ:{{Y‰?Q=3SeQxҁ˔ZXCHH-Ps՟ߙUݢQi6p3%ƥಃ*nPNEY]gʜxg&?vMzu6Ԃ4b `GY2#MxmOT_UY+caߎ0"Kaf8MZN D\zpKF@…fp룱lgk!lQz\edE3B Qݽ.ۢ ߊa {Ts1ƫ HBkRM!i'/yONAW#6-LIϼ-muom 4*b᷐v|r"aD5\JO0ݡ]0x`Pfd#9)"?aꃢdvw` 2?$|Nq5s2~Uon<\ :dN)7\5Bs@vAk7ym ;jtu[Қ')=f/YS-Ԇ8sEHfL$_V8ܲ,^Z65tf.e ypQ#Nr%&u]GٛOe%R666gan=`Jj#ΛzP 5 !#㾝Q0߫y7+̹T򴉐dg'OwIiWh[XSZDB4CA,wq&<Ցpl.g 52HZ'Mgٻˤ4g|5N m+*8Ga6C=|uMl2(҄i FQȐ=h$A <-;X+]4+pSJR^s)XE2n(sևcZs{ 5e\fmTNC8:΍$/'.m&%/ H?n}0L:z{ !/c9p)PSCt`ѫccH\h<{Q0m6hm)0b?Mdgj8Yp8I ROo|9_kl?hC5VH# \WZn*ڗ#_7^E]V/Vٳ`]$ܘoT4Hvvy`QGW(V*W`]V/$fv0kZ.,[W^ 3]伃Ք k@o!)(^ yȨ\}l{6TV4ҷ|Fۥe#dap79ydZE^͖H`8F^G>DiA:FezL+[ah:qIF89l}/MLùk>\S^s/}p}Z%}mPQԡ-%PR BaGv4 q4QZs-IP;!RK5+[]'Oj7dijE" 2AYkGm/b8 $o>;Y28k*ŭ<+$Sa  B];PqD_CL=IGyY/W n7`f*3|\#@/8"*3=_CY zT@b ø!^k ]/A +ikC XQnrQBV{L|yfY"8I.lXhN\Tc+SvNfc g3&|pu^7@}.ʸ!l!8ӥ ?9Vww/?]0Eq JT6duDSpw\u(.wȃ[ >}dž%/òY\?<4 >ơAv){fg08$ /mSz 1PpE ę9^P$'ևm bղk$<]lƭ-|(HsJ$~edƌp'4;늭C׶0I!MZ+=TJߡнE  3"iqT5|&jim('3`Pt>;Ł+B6֌<Ƹļ Ԑ@ݢh(qL8ss&F>zGe])ES d`sϭ̢V&kj!quj#0W|uȉ7XAB'8ݘ%1`nBPN7>EA[sp)r+hs}um'&H4 l+ohn4 1[DKϊ٢#V_+VeN&zfܳ< K9Yɭg]S7VY2M:k0Mr9r)iM[lSvtioїheb쥚hoO[v[%#U ٫a vѕyR_zȜl, #|V3H6JՆ]Km\DXrul`&C=O(E2Al1*AM!r7-3 3?UɄJo<2IP9]2y.a/B-X՗?IhZͲj*ׇO!Eq5y,Y'h#QDׂnx N8?.@#u|>ÕgH ƐaχgTKf$2Q M!p]o,3ݤël xȖ ʝF'5NQ@7)Tz7o:L4/QtZ<]g$[>Lf;Q f 0"?Bdr9:C\=K9)ղHuj%y8&L?Kp|sacJ #bl\+I?YKaQ+ -9A2R R0X!O4)U\Kd\R_ X =R`K61`Zf/pz%ۧnD Z2xLDA@F? Eph\xw(EXE?:Zr.CkL%(]|dɃ1Br秿˔rq2O1d1W0 =g6>q0W46t_ /Ho{B]B;E1 Y/t:U="@Y] Yby$}8$`#M-5&2D'< ^ʄ7hݙ,u\Ol}ݳy&:\SVSA(ێ It^Ӷr.2AKu I 5/w5Y-M0{& w/∫/! EPZ$\au+_Ws85c_gl쵄vmB(:,Ch?~/X,No.w`vZjj ?7\)akNwT[ 7r9;_=$Mpmbb'ZatЋ+P?Uj:Y,N?+VI:N:5RɪCӀBij%]B`x'1Dz-Sz)eo6%(߾uee`d,`tC},fAR`35Mܜb$a^q(uUU"'rGFHk %ONVԠxA//GZb8CWoW0Wib9gDv\gUsC1hHɥ&`h@/ǚdYl}q\rdaǭ5 uΨ!3:RxDZzI{N"'+ 6a2B4CC-rx|)^+0aq @QW+,rz SD>S\ț>2[7PyGw& u$de}=s0 -gйl ^ >A8I_VFϫ |z# ێ >&!Ҭ(iUP-$IJe{uTZ\j7E4qQt׵} I}*:HNDAgI,+1Ts>Ë?WB.\NZ:kPΌ ׶٩zS/_#hc|#πG9H5Zz8s+V,`Pqi@Cg^Kn 7y:$qRa!,1F`BqK^ ^p^F-&.rt?[2D1(['ÃM>]?Dϊ~\IvV억 pK;4Ijc[^ÿ1Ҍ*#) ۢ|a=[z:ÙHc:tc~}^ @+uJl }Ôklu{y TQv(FI|ῙElc-r/~_Ӄ Cu yN-NQU+,˅v Ć{zd y}4"yhjrc$x`: oq6a.]7&WoYtX=^xTe3cXA:+u]rOP {%BՆKml T-`mCo;aZNl]C DAx3fe|fD?מiԕPp{Fy2Ǚ`:?`m_IF?hH@G"aGUSNFUL'([CrB+3R19 ELvQ:[8ҡK4g) /|9x%&ls/*ºgE_i`BG\C%Jˢ!)!k G Mn6Zt{ wu|^\8(M]nQOe+QK6A8A7ڒ5Sr'mi_ݔ*֜ JKQ^sJV3զ#*.!$EL3:x*q1LD~QDyuU87[A'A6e?V? V ݻ^t׭I\3]D]R) j3MMKQijh_/}uRL#w!lt23֖ g:XGZ&Q孧E'4yNax,8aP$'gJXex5Bh_lR$Xvk$륏[c~5278d{#r=U3!UC$6xFG"jIV8 xqq֤cfI$X?0*ڿRA+ۛڲы`Q mzT˂P|bVN{S<MHH  ql]k:2)+yzoƙ#"Dbj0"vq ͳ(w(&US_f BgLOegcXvrC9l=n.CIbGzv&[cŐT㐭绖$ 2I j5DgVik C!,9TZ m@dl.+PKYʿbg}]rOFf p:q"oGZsC<'ntqgtq4Cr0w#+D|~mfǏ(V SgP {ʎ?q`6әs'H ]Ѭܸ _KJЉ1WqȰ*5nCrahE=h0Giݺ|+n܏鹥Nʢ9aywCU)w ]x9h=*jMڐ|0 .q i퀣X;n1 r^v?𘨰YT?qɘ-JyԸlzRdK&Өe fX(끋!,-4_"y r~T#D `RУJ&nN̖q2"ϕ}3X4j*qVXc&SHKLh ; T!ѮO޻Lxhg=Kq *~w渝dIR@4ņطKuԳB QcSL<+lvk14m\&:JtX;kW0@ynbk fqާ^ Ge$gcMcK'VԞȘ}ID؊*:c1e-e" 7e/.,ߺ<"|Hx4tf aɤ 4X]vi1ޢw'Ew 0l?ooI.%-U\  ʣ(2PYnF/wd. }]f251b 'eWAuZCrlOS`HK,\DO5" A~F=OӜ!~̨=: ,GOFܮfܜQe+?Q]4%˱?/?uF\M͡I#0I%U2=eE]` -'76 TedSϿ =Ѡ[0Aj9PNsRSer}Qh!xTeq( n_1ДbյxAaדlth U G]7 kQD:K[Ej 8]b4 w?aFXtṱ)HMo٤eDK `"q#N2L) &Wd= _RJP#K{N#b$ zŪ9)s GQ6e7\-"="cZ̢n7/0z re۵(7]( pKt3fP8xga+aRXkƹ~_mg7jwP&'CZ4G^8r=5C(H?_+Of/d}PG"ӦĹBe$E@ZA\10;{ȌMI <6z:`֊; 1^5Z=]s+8e&I$gmVG$+2䊁#='Y>p"f 1LfZ#oyInp)@O@}$ȭ;M*"*ɿSAKuhf{%Nno IG퇣+yO< 3xsG[ :@ 6È^MA(A>t`7WzIڗG 㙘$ACq_n" ʫ^P:%޴wa>ͣ1>C0D yR)_[y T:p͊F:ҖYC`8|e(ܶ\4 p@/*xBn U=GmS\A]řJ-iIOs/f8S9/\f|_;`P$9DδPɦ>->yBtY;vIEYth-P iS/U> Mni΃;M&q=(86+q220b<=ðUI;=ĭ:М([ys4A9zv`QRtZ2q:e}|s=#>mt* :%8yH^V)!l;sv.|uj`e]O$K?$ےjafLGA,U[BddAZ#"'l!Y\ y0&@mB&'.e*l0~jַz䝥&׾$*bZl9̓^L&oMhM/7]9^經+7qfpNrXY:-DC6-i?k,~r)&zH╫odz1'mvk&~YT3QD32D)9gpDqC@cˠB&͞i};h}z1M*5oXPRil<@՗\^.3W ob,p]eNGH '\fO 0ziJ"p~Q\ډ8Vb $~ Fas$>Z=I#+=F ԙ_?6ZYg8Y-?^F[z,& e8ޢֻ?q]G˸yx:6yxj!sP|wU<6,m6z/2gpf`9~+q$i"n—Go \toR;gD%rc rgXmFТƖ/R2QDRb_ƖQu }ֈg뮒0p.6+͉d44u۬KULoFF;)ZEv#{5Ķ 2rn!3qWlBA)3X͜t^ݜDz=SĎE,zPHA>wDj8c+0j5fsz ٞ}E3:2?ظ3'#П!`3 _B4}+Z4V̐=gzPfO$t_'`fk<Ӧ *9UDp.:j%TI$n"nAQ(bN}iXpDk%+l!IE?1@΋"91#L.UԕĊ '[ʠ2c9X?wcpmJ&IOaH5Wd=.8v xׄ7s:$NaWħ[44PT}fU$r`cI+c^K_`XoVM!ߦ2|yumv SB5\{O\Z|s?%nQk)rĢ!3 ġKK50R YTzVt6:<*U\8'6b _G@qmR$ av[-\Y_1mc !a iq]}."_7@|x$TW:U:1:O`9^_ΈL:2u~V΅B@ߢ&5RE (rO}j"cd,ɣ罧/U?.-K `3g|<&iQ|;{M!2K{ðCJM-tH[Ze^y n4lkпq \xssdj Zy.r[#@p4iI>af{Z—˽Tp=s/Qs+S:?R?8V瘪ygksw(#m+ <8i!i/u$=v_ |3=cϓ%J RˊE]XeTg16o5i[~Ћpnѫ]UW D#mf=d:Z>/Qi|W.2''q K95GJ{r=F-I1mf#C,$3.x1HH :pXq4:}[k23:6%4r/R1:}Kfd,zdΎL J{*ٰwwGNiS}gݰA5MBnA4熲.+iV'dG.;L Fp\{aGBӵkX0"D{N?2xP`~04 Pͣa~nFoiǁʎ뻀Z@v22τ@.fT={ YewLg J/}<lLC&2.3{ N# 6Rz[뜪kw+sL f:L{vI DHSNa'QPsQځP_uYNeTmV.΀Ƞ2ߺ42UB}epFV-7 -@ݑڇEWt^U+y2YixNQq qa&Syh'4UL=VMATQ;g+B/ TJDvLe>_8{73,r ||fU- *" h6a r\Y2p^w嗛fhڧg(oVHcG]01{=5AqIs "ВYHRzPH/녱9ςx~FS__QdjfI6=da2]=cW >o<` ǖ=^:O!M X-쏼{l-¯#/X*MzroMץgNwYD'CmhXT%9aY(OFi,784۫U,?uO$ ]VW\`FQu~jƻLsjuv.7n *+nR޵LDf ώ6y~v tQ}{&5Y/N7-:\0q|0PuPx4 i#ZCz $J㌆#jOu鼹;}D]j0$@3zhV|2 &EU2I[yLĞzSh]OUށʪBF4 |u >6c7wW]\Ia5fW9^um!e?vȳ`oƺ*,;?aƣڪ>w|w*!m 0(_Sn')x|Lh^ڍ c*2,~ >4rCʯҏ%@KXRwOK HCLo)d qaCM/S+.rzxv_,]riEkv3U859Zye%wРlqu6|Px5O'y.9|bNI Ǖ"1sV&2Zfl~<=Y rtQ 4S/wGѺ17]U;q@I?/m{)7HNaVFb5Pa\})n6'4Lb{{ b *ž0>?~4J,t*lt%zSg(o, 3ަoS2ufO)\afv,@;BOH( Ug-33'^ Ҵ-G3WÞ[_^uzX03 }Ȼޡ2K֨efa'TQΆ!L8f. $䂎vP! LA i>}$6_Cu-j7϶?&dnn 2 RZ [N+$jzٰ/c t -j,q8οGO˼io;$p00c*lNG3"VbG5JfbO7ȍ-8zN紷#PMј,@Q~g%T,K^K 똘|W-hƒ H=mKβ-lLU#5 $>jlvl [mF, WΧBFR!LjdL@X箓/. ].'\}G~* thq :}0׺wɪz6' ; ߹"ښסeсÜnk($ٮHbmAkyD{4{YXD;NK7T,ҳџ#֯K<>UAiq 7e[`uZ7^Ƌ>SDOapkuF=@C Q?Vi,0'ich:b?E4^o1Bâ~']ftiMe`($4 ?/MY[Q`5rH(* v$šK]#J-: ͽZSuLKV7}s8}ea ByZ~(4CE1~EkN);jԢY]ת< )Z #l>!#DXO-c8Oװm}ujʳvR}!hQO$쪕l2>iZ_&9_E@EgZ gc`,3lc;©[rD̍ĸ?ۅǔdʢI ~3\,f]S)ib!3!e,EYƀu%B{Aֶ(;`MyȈ5بQ߷<LGZ7n)D\쬏T\įm<Џb2[A30dQve ZJ'=9>A ,̞L{;C5Pvf2.x- fDmM(U7u%cW bl/Ofdb/@(T}\1/,&|߈gE;]2~I >Ʀ"6+H\Ӈ]Ovcp+j) fS2fAc =ĺCVZ|+I},IˉT5]cqlu?5@azy,*)%0)N?5X~Vy3"JH^/7OmJ],5 0("š<4H ]B "y@))2"OT]+Lu~ddI's;k%m_r)wTkzA!$/g[+xӟQ, srJUL C'l"B&}_GIMNᆝǮhYfohӟ EUq~,|7FTggc 7ҩ;"F;)O{F|ʺafѤES Sl+( Lތ( `կQSg\| -Oka(Bmi7.X6~@/v̦ Ϊ /M6&Ǯ[YruM.m.}B5R. ԟ~27(\RnW%( ӍϾ:u( ۏīIm)+у2jtV7†g4Ymۗ?CntA<z[ۢXrMtPmd$Th!fg]ni,R=_|oBH }yEs <0i2<!zTQ+ ɾ=  `F)߬{Jиvq1cdS q i^+¨<3JׇiXjjS=Pk v6bcHhN 4Kr@ ̆n`&Wߋ*Qrפ?g}%ԊZ ,҂\7"Ng_P;3s$%$<ꛭPcw;9ptQ!q3=\>_;e^u$+4_IRIax)d?TB)А^hj;8@,WGD#^sr5f5mQT.=&9ԫ}b3K_P~݅LjFͬO;¨[d8&ǒx)0$6 EJ{CzK ^NSDzg7$+xK.HuK+xD5c$6`㔭 ZnR+Pz7_ JQ?}QӆF N!18´ȒjMh.y=n&sTߝp=`o1gQBۿ DmVfð0`?WF%IՏ)Tۘ.4Dm4EF<DjEӔQK!5}KP2\]BjOt'zlTRcL|%;6 Rېiu0i۷4;Ԃ{ߑkuT4J HD1Fo!hξT..e]SKxV D3z}'LdS6@L&{Mkj:!r&3#gJ8{;,ur gʺ'HD6|;9 F^\ݪeĽI;pSv׶9|?w5J2m՜|#́"ԠEE]dR4} L|1/\Z%y C 7?xi %Cq9ުh~`j/F݆fY|؁6dd”Oy`r$yr_ǯkq941sPt[H:"J?Zx|km˧XtAI2_ၥLdՋjF?L'jh46`˝V+Y>ލ?CnI>ϛAQv/gÿ_UK km:JUƷwУR%CŇVqe,$ieHkx0}xE'f9rzcb}[GV)V9!2y˿&Ao>^\E [Oն_Q?9 'cGY;ntk:";OGLU~SF(vA$b[y8wDR15O6°MvMFTȾ)1 }#So;5wa?1ц\?3MOfQaMtI4/NkKU .IfOɍPgYzeC[ľ N̤!i&WrLV& [+^fd"nh :/!WЅ`vLbw龢p.[Şd5ЙvZ)\D# 0xITVR'@rn(%Ouo$LQZm[iV͊-РX7ӳVl*q"{r >xpy t\`ʎ2&#t@jh:c8K3iQao҅Rcs3Sn9ᖺ]}r4* r1#u՘2R$hTUzb+h%v~ZZ ~~{=*&ΝVʣVJelu$jHK kcfqU = JK}G$.%eaTGݙ #o^"B>W>7*9@69فL,}+"GõV)w̼f_ cۦQDud:-H-{I@ PYDuj <89m>v&SNnec=_*Laʙ6U8Bj{v@]ތ5* $`J9X=^݊B;d)R~Pd!$yX7<Q~s{tEwkSܔV"E#ܐ?9n~3D6fR_+KM[TR%ثL`SD8p/P/y!J&t(0h9D>|頹(Lb{^+|xھ} x]i%& ]Z闡sծY_ko1bjC= `2d$AI r!AIyf]~{2*m%ޡ3g ˴tlil1$dBBx׹5hק*tR3/d`3bnNGmjšذҚ0>j yвlKͺNbiڜ?>_఑B{ L'T#u@ng/ٮA,E MV*ft 1 X_Ҧ{I#K 1m.؃wLVucOl oFrHo]V~rAʄxNYg4?8O<95eUٚy 281xKh6IN 1Pz˷9!% uYCS|pGgGdj,*U*II^))Jm'4dFNݍu 0N0Xl2E``K_c=~O{? ?b_V.v:޳S.3[ΤКܬ{Ѵ>RIcB}, +׮+ykiA3kPX觸s%s)$hT8'8igtx}Mv&3izsR퉂=_ K&Lũ@_/zMwTU!~j]\f k|Yݝ?XGs,S %J!gӦߝ5aP.^ dw$+ |Ҍ҅raAMޮ $|4$o/ Bg7/ֵFƠatx'@Ŷ/1-eM'ZJ{? Lx@L?93(sDYw U5+ K1V nc|~]~m*'|DC/Vb aJ"u0@gN+mM]\hxbߝC:|Crc kBBңJ߳g3D ԲɎI'ة{ew @* 'xKu͉k?@{i  )ku?#ٯR;aZwn 禒Mld0,6"PQ(MUzXje!̈́C(p%]vkYuz%Gۥl,E!l4XsJC}_j0ڂU1E?_IюZ jȑ d\))rNFgk\3`+'3U'nF"RCX"ɋYb4 t蕑S W G/Oh*|W2͖ q?On}jxDxPA>כ9wkكDb g7{"  +A56~ lGf$ 7K3p5@:Uހ\n1arr;=- w9kX$aϩHTy+CۈɒuyIHBvm>21_ 3Q:uFC1q`5PF=427 'pDڔ 5;5(kj{o_Yvd9nksq (؁#Dݨ|VIm\!t§wAYVRr+/s[V-q)ajw: ywJ¬5ıڹ ~hhd 汼u&©lNp$qlCz P(墬BFUٴQ '%CG}QA@tH=m[" dE^䮷!VyO͘ⓗwQa !OB~i q~9rۥE)*\y{5“ vFcM} ȸٙvLN6}'֮>tB7C2}t.(%}QghV@̨:;du>yc9UQLhYI> b|QB(dV%J{ $r~q掙{7"Q+TP? Bfso |hm8봦tI;"o&BǯhZꂳ0=q çmlR;/׌= Ym͡$5o|6%3l(rȷ3 y|$|@|zΩ콹M[.}Ez5^Fy~;>0vf3oz:ʳ<Âvu Ԧ S!+ YyK#צpDVcp!B1kE4q3 ?;Ӏ`;5D%wӵ$Omi{m< g(п9s jEtyﯱ$ZJI*a|5_$OŲC(0}#dA`WL6L_ m4p{&] *rjgusI82(ov^ՅnS|@^@uj^ur| V\lcr}-iI:=[vo<іK'wUڦhC֌K"커m=œTFIʠ{8{@I~w-dz~Yrn` O_R*1깱}]BeYjԌFuC#0bK@oފ&E;ng@'15+Y2$M,)gXiŁv] XT'~? z|{%W@ ] PBlvR//}O\qdbMɚ\2!8< +Cר=BT^3k˄r@ nLxǰyEO@b,1n-)&(@K+A@R]+QHUJT ѥ=jrff*<K #"8\Fqɏ\8ϸlrQ暶gt.ۣoClxզE2ބ^'aSh">ThCčRv.T[šȵӭj8%-w^o&k} qBGJn$EYAHY(s&cx$Q)/|'Be1!A:,~xx\4HV] ܍6a™ ]e2MǵZ9;l痁콝o٘6HMĮt(7rO}Py^_OMr+:TB8*Ӏ| : .ycOzT h̩T8Li!8Yôdٮ ?$vHSd?`]} io< ewٰQ:(@RGK18(Ղ7cʄuĥf~@2Rvtsu?rQ |=9LDtOȐ7 kNH(ȳ 7L|I&7a&qV+L#1@mW29gs zb0 kJz HbmgxnNI%յ5pǗ':1McSz n|y7/zPw}ѨDT(5[(e3w =nפ3e}я>>:3kR0|͏iIϏ)yZ Ss@Sx!YCFD.#6йMfi E)(E]7 OՊ'0`i0Kfކ, "JiV$~\Z@c%a9邬&w,8`)B/04BrU"Q \'MS B %xey'K( RG]) B)3HwcZ0dp4aWH W a9t] үj֢ K!Bvl"˳?NK>{=8 wԐQ3Ku& _P 7Q=[p1&v ۨvX`BT)NS>$qC|Wni?1bI^WK=Ո _n26(dQ|eY"6yF/t"KF_zg2[UDӋ2r+44P4K:I[MI8._4CJۿ&I9t~k#)6Œ2OG\0@8V+x?Vy;>}_B_xM0!ĵyK/OKdTz{Kb3İ*{w.F|{"r}< ybspEf{;ف}D <=YJC";cF; Mպ@0dZdЊ$ҽE꺫[ 'ΙaEjzaT\n 5yk6ASKPsY{lEƞr!zĩ"!x\-"qywyE7崰+{ ]aenXസ+5fZ*&O 'ԓX_|l`>'Q yXJr+'/pJ)Tؔ{< f\b--I"07'Vl6XV]);%vnqP"s@glO48µvsH#\uga8NZ; (;Cz7$}?0)]F#43Z¶@Ԁ_o. ͣ5Gy(]"S+~c*\x`3@W#o̺2ck̫pu5'D3' /Lj9wmVRhgwzEb)!=}&ַ= uEN+&=N\AZjﶿ 7]HᶆᬅL.;.(k;h٬9Z nϤĻxK>Y=Pn8nF6 ҋ{ARh7<-;:锱e;׾Ԯ&DkSAn7. LTt8XAp˥+1pMlЮ # :"q$s[bzBS] _oë4j>ntkߏgY*= ytI尵 eIuOL.G% MbX&pfP\<ڀf՜ڞj RcwZΩW\[~{imڽ"O rUTs?K 7_'b̶cٸA,?[SqE f ?q@`lgX/);h(W k"dP/ ґZax$'L294Y1J$U&!e̲t»f꥾zlԹB!y@Ȍ3>ހ@lnťGcSwQtWל;ĉ·VO @7ĤbD@/ =>"vq<mLGJ:(sJBuUD+D{k`º7Sp/ƈB!뚤>c O#nҞRؐW 41*N|72]w\u:6Xs6I{}vm wT|,`xVex?ZԼD{5s4D#MöR4|Wept5*1]_(t]18^ ߐOB@sTd/Ƿ (4}y f<M\rgV<}ި \;aDX`Lyr.nM:xDEC)[OhYi K\0޼d#; J̯ED G}Ǜħі[Bb2p|CU'}LR>8ؼ]\Uc(GTSMj/cEtKl;l5@4BzrcglB bt >! |ϾGce෉; 8$lu:o@&bǫ!`q?tU]_HCL1Yng\{ wy.jMI"$)^?_W(1 zNI'Rs-;\4?TڄE‹> H)m9b%(f}I ; 4S*U/TNV5B'%ikjuIU?9-YwN9.D _]RI z) JkK3'zVG=(un%!eQs[F˩$Ǔq.;R?!Ppѭ~$ !N(ю W]J; SI k^x QǚӃ|RLq"Ah^2R=eKxeZCk= jt,,Q+]7Ѡ1 I /"e'J+!J LKX6z辄eo Gr Wh9v tyG9ΓvZT\I­ Xq!wЏh}b T7BZԩj&:7<9RAY#hp]"XflO\+9u$<滾7L{YTu̧M5 i?χ 6#Xm]a>$V &uL>T/2U Ϧܴ3, #bAэI썱m>ZҸfQZ!(R4^Ճtvh㟟&8D#MY:KeXPIt+BHB0 D@.Ӓ<41ZnkH I3MX%X3g@8lIFד}DR>El]peQgV{u>rfeT1وP4_};k#a斨CqׄqO+cj/ޗ#xPF &}_uZ~ecۦK#}_UiS@haOlICh&`cyc&HP-:T3>nGMWrVGrӃ7---]<2kYL=FT "Q1%giZڳ%4rtl~JTnaEF<[=&!L!A q'ݸꀘcdR,JeOx'z@.sŃP#pQzB{*4$b0V|DYyʬB'RLK b>D“ $g_2KcFFj-a¨/\Sˬ5XF4cgg[{ۜ@ULܠ0{W%ӘrgLm75c^UXoKanx5)~\ivIhOPnԋ^)MMo".79 9dNm>/f Ї#8qGFL Ӧo2Ka3>JS̓2ikX>y Q|uQG>}ZaQ S5יcmf vX^R$hru<@q4BS,:߅t#!¥f-@)i#Q~}W1B. ጋ4ѱQݬ#ړf禠Hn$;Ԣ~U!PLX+қ[ WV |Ysۨ=Zq9 ߈j 6 IM^z a3{ӭ8x.XqK|#(A3nB? >"2O5k 9>g~у"|]TcH1g: 3Ł6:!i?| c}&[|]|H]MԹׄN^eM+ֵUP&`-JdijˑW2&$ˡ 7Niq)/->ðI,%}\2{Ajlimu}r{!^""IC;7=<ͻMoߗ#gcFmm8vDtm6)9#uFVx}+<"[a\ȅz(oj-pTI8ӕ眗laJL5'ra2%|+!>5ny& ]ѐ(KJ%x# ΛYNjTKVMoZ3vU"{HRǽ}#*5ȁ@}Xi ~ҰNPZc'=DJnSd/p2CuGqƬ MUM@3ɍ=QLDTZ0Q;Ik?ƞ1N 7"dp regӹ{܅[h`Y| 3=I_0B('x42Aݥ@q^Ar":YM]wCNfaLޏD- wUMIALDnuUtkɊ6>'b BޑR5H'&Ր fL \QL"cf )h&tcmsDh!ɠ >}/ŭQd16Ubhǫ_vP0L6JvlSyj&Zdǁ`aAQp.{δ_ualMz2<4Xd0? ̚0 ;#27BzgW-VEd%G.e3Y\$BSVؿWO=DqjKitt5N%Va`w1"+&C'r8Ϝ=+ Mq7VыTѱyVlj.-Y*3ύǢb(k(m[Ojc sQq=u)4x476ii1b)\ˎ攊\:n'+JM}]w1袚=xâ=z%w )e> ~y(sfO-?ڡ#KpIٶ.Lo8 [+9QSDS3VOnԂ('tn^ՉV {kAs?FQȣ.& OHRR!s=.nycYz@dnz\u Sum]J!XxF_UuWdG:Ce)P`c?V#QTq\' =ŃU!cEK(}mSFjJkd:D{ c5`u͝*9y)Lճ42 v!٭A K{8]<؟XlX;?"= 1hu1BUom7]ET2y˲26 $|\hg5>G)%6w n">9 ?T ck#p__@"ת=y{+߸\7JO"魨ڤx+\$!nwi-p*+3w~n^="B`^>])cWP&T#o};t! 1" 7BXgx JJ'- rd OwWX1=7𬹍DY:n,$2ZEα]$kN[o y2] N 9d܁鷙DH&L@!\9{'Z` )me&Tui6,r?1.+<.DD9G}ZljC^b׍KH;ߎX|FsRL.@o<&ihX=w{n߮ +@9)Fo*vRyuXIESNO&fPo,g*'m7׈eFTOht(%yߞSTD6Iu-NzK(]rն۬ʭ_YlYzW_ρX }V1M);k,};Yաs>xuLjbSkȪ=9KC'U] ÀK%(=jܰbLǕQ(  6~W xs=] qUzM_ qfTdBrmOL]0ގVl)^&Jox/<cLC~ڲgGusQ4 l-)`J E_,.BYR`U-Eq[`^LydP #u ,Q4J[ XF\t-k$ö +/y 1Ql>="l;>uƜX.~isb4- ,|"j/YaOHv3Ū`ZL]V OfO]Bed|QbbK4s`f¿' 7LDA!Tu60b3}v(4lRt7 tZŠOH-a m*[q̳"nvpoNeR}RpTcV>ԟYG2,zOupD-W`52X<<L5.JmXi>"Pcs'2Y؆BWecUQY/sͭ|0V ܂M7H/5xbKu΃\$ $MGo,}|.@/zp'#ӧR1aA2/,{@xc~MxH4 fV5 גt9BCmlG@Rd=o8<#MnF B֑}yubăYz}2`Ox `e1ޤ;em9_U\S ͽ#%ރPQF9vPk,1n?TX C}Հz]*r#%]^!zV}|=G)̂@{J,C(>. N~ 76 1Zs9_se|s&)+/&*;[%!c8$9κY9/{A,5\|2;a`98UK.&ރ!֏XM4h*jRhswL^)9Ez P밌 #\/eҡwBZMEp Z]Pgkg71pވ:A\{5D;5գ;\Ϋ[C&IY[Ӽnc:7x(WZ>E0d(>)nJnߍfrٯ咄nq^i, d﯋TZ`lQצ Ƴ_#47qh1 %iYv:z^ X$fVzdߞ $ MqsBhxMTI|?,K4HAbR #==fΪ'JKP__e(`| a[dU9pnXM`/lɲ#Bgc+.:2`I.v:2:`̤2D9Rat {z3T*0_ hi77[HȈP>A9zB}\qPzoi#d`W7y   siRp>_{ccp[ ͜_Fw稲Ƶ&xzf48P9hǀ?-z6]C *XKc7E"{X]8 </Bdx0 :L{8"PLOъ\-•öjW'b '|IT LX*tdiΐYm0pOn݆QWq#|aF.vwNCz- Q* !lf} wsOf %: o"2IuErHncxbIXQh,LSEN (7ij{wV]_uuCgbw@%~Qp#Y5y*F`7lﬖ̧CcF<®ܚ).ꆐK?ٔReiijmGt|,\;h),XrRLN,_z(3_bz(r*)Ζ+CȾ1%`r9^}[4DA"Jy[CfXe<%+&aXp,է(M> &lKHOlZ nQ>lF [łI'$[24HrpA Յ΢&r|}%ڄɛ#XkySpщM`<>,m=?Ѝ qⶇxDD[-GY{d0]_\q/DEŸ yAY70tVn c$1+oCGMlbC bIfo  F9k199_9/R;\}EtĘGgٯǦY,Ą,1rGsZ3-]N[`6쪬!lWx;AyQ퉓O,2k]ιǑzlbNa1N VIg*1s4|Bnjvi?l5e_~ӜflӰXFX<&xȹUC4|8_Lz!@LV?ΕGi.ZA2~'hq65` kl֑kܴkzEXt8V`S7ޒ; YGR0Jo6( Wνy9`~;v1 v{C]94w8\2݇= 0YI}+IA(սF3/$w%"t\$i0}<|QIˈ]6xu ,eQsnv<6U.N{V[<uAT z$#9VP[#Kpr5笖0jfΞ#Y! xƢ:(AvF'T{cR:rE3 W{zW22asT2B%88͕r p3>D-pU7pc׀<\usfۣ1rocIn!)tPhhƜ'A:(!&SYK7:v$ Nih}sB~Lj46KC<hrx?EEm\jumk?#:ڝ~eGhR yo[mhi0ksA6g܄cKp- pă &Py"Mv')ƒ?՗Khy3%Ŧ4k=RV=@ lḀcI8ۍ ֘+ihg&oГgQMP`X`Fקgr*HW9;)p=>^?=2V-Q>|LyET Bh:pAmiT,J@34>\E):;>%Üpy%%Ӑ` jP=1_?ػ 1џI}ryH h7:E`rx(u?/;aR(iχR28iBC*N}0GxɬO@^ 65pB ><QΎ@@`2wĠܜ8EysKKuen?-q8\PWf_Pݣ=*@2_ނZR4aX8Hqz> 5-2DCƟ:>A7qr?)R^%6!RPmcXDKc |" /v3 =bM͛slk~DUjstSI:"0k2 9 怒|3G0h ۚAlYYzbYs0w-$Ze^=j5ɭ[m+Shvt0}s13Ҵbv< ,'+ubW`^ϫA Iݦp'S%4knЀ:.dB:nГn!@^Muϩӑaĩ-~|S3G\ T<~`-L_C&Cx,-=rdKK- EzշndzQ慊!i]v)DR˲RzhB/iSgC1ܒ4I31Wg}Լtr:=41` 9*G{x? 8B~B6)hS>ߦ0)?i)u:Efۇ']zVl5Y(q 9 Cf~_)7Zwɘy:pc%3eK/YHb 4ލ8ú)gK* k#ԌcxPk:UB˻( n}qL)NOq)<5{~aiM `׈Iu-謮Wy՝PX٭8R+Pc7U9ܳ=צddiO]݅9*oGz'&1C|.[xpY_9߆xoy}b?6EC4 0 }gA”Ӆrog<~ Ĝ&HLnT4]7b *F[ynv윻9BR@F̃M}풓 @y4D.etx{k`fݧșz2r—$zó66 eWpQh\%̫*MQevrxBQJ-*3']^2 *;R"$~ -t7AѢۃ=^wv;% ,I=c"M|~ J0ΞVxmWqEN2,4E?",&{ F`_Ӻ22: ~edGWxзك\* "G ޵';mL-\S^EԳ]6Mg*$K+l^rO% M W]nЊL\tɡ.hǢBMbHl|hctb8 t /cGa@[De/m0|Y)-t!t䷠dZєϊPO._7jR ${s<§&\s.;Liȗo$҅Q:6_F]Y` 7%i\4]_HQv2Bm?s0\0?)?$F(=[GY^[-zQ 2y0 jA8U1[Ś5J!pS- sr }hLs u/%$]"D3~: j|~ e'c5*P{nOSZ;Vy g4C,fBˢE%k}dgĬ.9MjCMvTs(Zj 2ު0>{N0 $ɃHDJ20|y^Ap;jw=0D%aS[ט$mV ڠ60;g9aw*/%?NY*e^xyo<\͛{c<{YPBm6j |C'qHy +2a">ynAoCa"¸`Ɔñ `=&T_[p|#,Nf۩[Dҍjպ \vQQ!t0b-jpbTl>s$mSJ|~2 ZPrbDӾpY@fOj}q&DxdZE N6?Zfg%1;b^_2:^cahQnc\4-.}ϋM YWL RQ:sc4Yٲo6+ G/>l=GWqK]oVc #RpIz?1W;1ɒ!=W%s%`ĿwR3m(s޿Cx@Csخd6ٔ٫$BV.pNT (==$ͩjy걼K}ɮxS*V~MD'pH'L@1hK`c.y CX%vuܑ~y3? =dUL|3O-U}x3֛ ηK=/2yQ$ңg/_60aRn8 >W( #ߊx큠r" U{qV†"g]`W4"ڳUh}Y*ҀħZNU7-(qJ> '[[^xM#=a)/8&onEY xdK}z g?ۓw}5/ 5S Ϳ{)F+G2xu@奕r^i@eu@ IMawް#>|+%0u"4"͙Dj7:\a5rc⼤1(Uy+2׮?e)tGOezfCc7T]j1͈,&Տ7=?ױk PqzV/v54TָZ_ebu&;ZRغkG^ ٽoӓti7*2CLhf*g7ێ)L<0U\JA~tf*a)Ix#w^ I8R̰?Ez*lNtL|rKsWSh Uww&XS'盟P;N{4bLKM\X0iu%hk! 1}a42 G1ky-)Y{cn z4j1Qrx_F"4+}.To ۏnmgHJ.)ћ%RRN Vz^X?~d/pG=,";흆jr)^H2NU)? Ы4G!I=]jTq/ l%M/Bk-Wf0sN&kLop$ Xp佷8w_EA\Q*6OzO;# sv]^ZJ-<]MB05ۅ77,/ޜ3W> ?s!>V2]3ƪddhϩNC_j[ˆ֐Iؽp8~a?rO;x]ۂ&ڝvomgX#&c -Y&/I_aJD)P#'Xý*Tl?M1;{7čZ}_܈=QFO&[nQo6n+TFe&p^[h[oe!|n*]s12PE\ PJS @yܹ eWx0kn ?'l͉o7aBS V3I^$; !2<[ЬF3n9a.7 .:-jGuWl?@5:_kx;y?Y^{\aƕsS㼆ۻ@|˄;,02gsR *Sz_Ppx殥&X{܃>_Dn7vg~WWQ|cgi x}n/5˼%h܈T6@XþsL#QU%,8M.}>R5+$OLVƻ 1; TZR_1:nG*rc UA^-K\ާ@!HT5/9o=^RwD.倄k'CGRynڍL _>h.]Gc!TN7Ѹ_lxt(ErL5 Cv>n ؤ,;6{osՇH6&`O-Rw…$W_@u`eF2۱pmRnfV%47ųxn۞5z־ s:2ctt,J_:\5gMMvx R}f]-D[/{JLJ7/]8OjGtaU1q݄N1ܼ"JH@^$b[j6{V]ƍs3AP (Л.orWf$N4eU45BrjvזwiP3\ (u ز yc> Ϸ3ڮ*`wP}9 3Ak/x/ŏv*wR'qXr3;;|".WW$A& J0n*#ܶVÌ VYK=k9al8!H,.K[LpA0"jC ?S5nIn fr&db|egcvAx4]vFp2-".DkRJ2h2kjDDDGMH|[OUFO;pJ<Q<cUv,:POG.8&U BR|ǥG +az*Wن.@UNHZM6u,v/S{gM(ϛ[0i$[ccvz>.'&d.gݑsiEKO4NeCXuFAdW#jK$ R c!YJ$ T` HJؑ<N8:Iomw4y#/_̢4Gf6.g;cM ?cEIS9:ݛe KAD-rr)eE^+V'عcsǸwCs'd92fxe{PNu9D- !(~@kS$zķ.\-C@ޗg8!4$ݠrgTV,D^e٣O(бj-ߝEfNYRo3r_-dق3pF-U(r\JLqϋOa& A\.m+ګgF?)L@́%q( 2Yb7>Vbѱ[քU}жF6 H ʉH` \ܠvdܲKq<[NF} ϫTG?GǪPy Q1YLhj8/3*CVgSi|VqLg ehퟘ]Gt\? ~^8%]ZӯJR[&,z~{'O{@>J+`Y`U:\]ԯ!=g7@I*y IX KNG9ԏD+hb=~*PB2o ܾJku:i8gI jj| I 9^^2MU!$uKK۬Kz=Cy \ TR$ƚ,B[T\ fit4z˨kskN:Z_bWtLCZ h%i-IzexM` >2Kԛ8OOkPɈ[NSBX`/}S!ynjzN9)͕PW[MoENwیz0o _f- #AFlM ʉ ,Im7!4 ]$8 L اcܼkksl/]9ǦJV#53@3ՙ 1 :ǸHNk fE-Q[9FW.N_ :[r:umDsY.iҖG*] ģ N2pE+xl:۪=܋]qmᷞ>LיÛ<1I wֿIZw>_" YaB   !odYe|dC:<:i?O, w8v,7/f5}EOP!e%*KN=f L +[(@AZ88ݫgRvu%]x28CͿ%TG0:C}9Ub&~) ۰=γ п!DYͮv] c03F$iV)M}9x*}ϱow_mE=/Z+9_ `D7v'U0Zl2|!XhXd'MPܼ!$; Pa6n 4SGnr'-,o,viWk-Nt-Y6Mv4Ԏ&xq.|$i<,/}H xOS|iH8èHgf%VP )ϘI9Ѵ"fa =YS߻l Z>eRI]4dFIA[YMn)AP:#qa蘊`\fevZ>}ZӢKP|%np\(х2K:LR"aܪ}]00_7").NJ]v2a sAǀ>"vey⫏!4O nλݼUnGcYWhm9Qˁ*"ӞoЉIҟ@pg>C@1kCTڑQ@KfJMP_%DI!x=;B8";` '˻4\G5ų2h)ӫKUWG-P75'hɅ1fϿ{djQI¦(9TyjJ)0}_'^KL/d^Suq|oCa"=c@9s#o;(\O==֒nWNc]i2%Bӄp`XZ$ϣFf#"c d+Mm7լk]^>;۽Up_jm}]f|J6)IWwƘ΍:sT_ ˲7f/LLG~^ \0hf')5 B%\7lay˫- p/TL4}/tjD:湅cB3sw.Fd\ |VS^+>hHg lttqrutHg0A7Ctx I{һTyK fa,8b~Im#0 BE($yA">b' !PɢP;dP;ӝ\Ypg@Ğ!u_4(AYhr"B5`|] S:* }\?c`~NEi-%iC vV xzy4E ZGTdn79'T<odN~8YJQpx,7o ibK>3,q` \A͸'n.`f dDTqdB?Sjvy>2a_zA2g8o;*;e/6B,\c!xVcZ^sfCgK$5^'T[oMunnMcK$"3謹 g2m{ s=9MO-%+-4%y7ץG[?,Nx2 qM&_Y|'l9? !#Wjm)p,+nɩ0b97mYi&7 L)bt=iF֧5%pT)LB.70@ c?e;ܒ_ȷUhS9#)(UQ&E(S˰mBԱ <^"K4< A"UkS!:/o܅+b?ĔUU2xcɁ^ޚޞJ݀QQν6U=;ư /vmGmsnLV W=E햮Š!ӘCŏ/^2[V: gyV f] E9ro6 F+f62r)XߥgCqtƷC«zfX3d:mɃ&.[Au5Drc(eJ[ OsVɻ蕦#֡s N 7LD/'/ϕ@O,!bTJV|ǜRJ5(W4NYTT%fó}RB%@.<gijFy3 82\HUwM!b$%7{z$iŒz1=[CVRW0NGS@fw/ VOWf,_vyk Ey__`檝507/)A."q)k).6I }#|p4NbA!#6|cbVmiS r`0~ Ԗ8G)sgU˟lJ+1 f#e%,H;jAgo+IXRPcibynhUMj-D똖[Azǂ@^9┠{3]9HM" o1Ne6A+PJ]/T[8b-6=.q`RDWXʃc!hl61mLc_utv̹ ;(o8WNεNtAXLbh!=`,ZEIM!ETR9Gm4N}_G/AgD93T[hpn:/" ɋll)-9%Xz?H_ec`5z-t+ ..C+5<UԲ:Rfo HS蔰''#:\/;V.{-{69@s!v9yz=ȵ dRyjFAήZWT=@H/N7d4!#Uc- U 0g{f ˽-/A#X[A7B :4DDZg,j\&eb=J7af-K2טm>қ^WNB-J=oNEJa}#n3MDvC(-.(gﵡD`5~/gO8-ZU0(2OF,=W.LW{0EU5Jp~s׾L0qL6S=uiSh>fTsb"FCYUJ8 HJRz7b(-pµ7V:Cﶫ-VR]jQ9Hl[ ڰsK$VkBgޟx tS/kJw\/BROgW>5H 鷚""Β3b햒**ypT9K. ocm-#Do}2f @z*4^dJ/V$gtR+3\% zZLxj>/=T)"C@%aXgmb ! k%|Hyj 2J"6qi9|]!Cŵ⁗Izb&C(ͮD9=vCCWBɟcOo#oOӭ˂I;F8?z͍ ~-&j%Cf'U%J,KD%KC/Tf5רV0/(LUJ ToxHͅXQR@U;_ŦZh*.mܭ7^Ugυů@4Cl#A, z x1_k-݀RU(?nϥ,6@!Pܩ' h2v3etG 5-e/9Jl2S^MD=?^W]Ÿ!&cgx?ȯ9d&w~mN)\+3 b4gG]=tZ@C%Sn8tA'A=,;?VVܢsvexb{jçĵFwyq#88G=ЉY+ }TpkwӔ?.rM L|äDJ÷m@N&+8Bwe:"$$")@WngLw.7C.0~}&ٖF#Hipm /-\}ԎU\F6۾!ay{՜~֦k.TA4(Dt< t2\ #A Lېd)}j> i3> $Z>F3$`*K8m=~XDyOݡ)eJms.M#ܡ.@w7ƣ~(̢' <&xA\$xeyAI~/dA#a;Cߟdet%F~SRf¥IbMyNG$B:>_PB?J 0.Q?sz+t[+[f0c݁l2dcEc5_:67W4|*;!Z EL˱9ٗ[>/۝8yї3.b BwT7lyC⯀.P%% ¨ EPatJ`QDD@orqf3=l4 #NRMO !`Cg"RQ#7<2RYn\</>ij!NtH]ESlǶ3$rM64 ٛ~zE&>]FG1IoARsD~mb4b.6Fss9LyZTI 6#/;G U6*0Y.iB֬okhtFv(7\ IA MtgB._Z)S5nYޤFh:<7m#6&k-))0(>E'S=B*[N-}/M4HLhECӒcGgJ5-|+flU% e~]y/p)ǣlL;T68տp`2alYuk]O f0LcB~I^o3q-k/w2LNAs+ۿKJf/CWg?GgC)SsCfZ4 t F١uAB^J^)Vy,o _~@bj S y(I 9d]K`_Ԥ^4;S=W9lnCAMv1c{67^>кJ58.rofv`K^u;fIծTBZ@]/IZ+\&!Mvp[*zXWNclW.jqaiڜ!ʼT9z!Io >t0a|ȠIlɡݔ<aw#G[iwTru/I 'ΉZ|E uIFu4pd瞢m7iF8̽ou^`_6PƮ!{J&V Dv6W!QPEȸ>(8HK1Iȴ J!Q] 0'VeF,M;e]h5,~\$J ɢw&J+#Q!6f*N'X]̖1F*Fm\( 2XG\s],x<7QMv&gE&`'j9CH24%G/%+%f0jbmYٱhU (+ }d8XEp] q`k3UvؿBIꭍVV֣kPv{0AJzSb^I0[Td|RFݖ.LYDD.%S $0kt҄ v`W8z"}q\kƴ!Evy?ˬ6%yw6*]9FDvG2oJCLf`WȻ9!\pҝg_gUwW{LuF LzE0Ԃ3CQ2]*1@X ? VOjl)\ xxЍ}Z^":0δ_~+ )h0r>vzI/Xvm(*éu*'gA/GkQ<4-Gδ6tr=wii8#ۇD-E#83S%-37TK EnOJFd9!~ZG=uQA,ϝ? E_l5iw ^f4z4ϧDl*Ċ;:b jWSI 7y J%a(vIbδ"v>WEAal${㩨\b^'Aᷘ5KmK4*6\,9A%?Rv?AjS/3ݰ1xGK4A !cL |u`Su =רV&)[X\%ˈ.cE*l]$8&ò|Bw:>1P_z5.Ջ F ɑ С!DL*‰=XS| pgDNGC̫‘b"#"eK/{R3gGSY=䂕.L9][Y;YGU)&>FO3;_4gĠ|8v9S$?U]^qyJŋ`.<[.;achp:IeG۴!8Esu:OߥOiDeyeQz܌aLzD&[#%GM:E)z#eGhMn>_TRS0j̆7hs߇[ VCOW#<.vF xX镇T9^%ZOruufO1싔 0bc.D2uc/m;d/!$itvTBx)~/5h2 W BRٵb"豨*i י| Jm*nkRvSN?xQ1 LE&ciL4udqrG(v쾪b?ktHДlj`%#?Y4Uʄ\Y\&N ۤ(@v0 Z]o%nl8;VSJX[dUkڸ&rS!eЃ$T6cY:cD'1ǤeLT mnzLp)ÓŨI1 aYGz&٣f8JLN0㽕|HP90MV_q Ppz-͹XW}#AČ ^چtTMK}?7YeF㢿\x8%!>fhq2x4%\Sh/CjҾ?&FihfB`c QEJAޒRZ5Zq.ЩkUI=Bb#kdا.J~'--T3OROǾ\H`N?GX,WO%6p%|0[`@plڙI谵Gb ]/jr.؀G\oř]O\I[] JLve>THh5.r{e?7Cd0!ngg;A+s!lО?w` NrшgTnV箁Drg/l=,|\YK"պIASng`AybʍߴWQUƠIU'L1t?Z )<.7d73 7j ~ӲZ bk#CI.`hq62)IjZ@@!_.ܰ7Y2~MSo 7%Vӄ!|"IG?T"Iǟkv«ƐsP!?ftD R@o-P2ԥҿ*@dda3 "2Fi`clg1)8'>‘XRs(ϯWKɂV*B&&a"J 8b*q_ *}{٪UEY{% `x]-%ފ dS]Xɸ!Cg!)Mv޼0I{C%@mV!q,PbPzW?T!3[2ai?$֣pQ']xx=@pvj`;m3[r! UVfjNSvnv]:㨜z6ljB`_֤Vy;ke>8t EqzØ:E!]$O)*, ݻ#¯ W7Lr ܬcp aWhKjNʩr΃4?ږPΰ 39X'z,9U -4,v1n6Cc>9ŐM g?Jf(ik]Pܕ&Ix*g4RE7 ,53R;!;ׯ=U$#7er|ƗNmG( 0Jï v΢n;v=S] _?@׌'`#{,xa3`Xm^X;=B_CFu.-Dћ%iZ.qvzS?,AJՕqC{N!8WDo~[%SDfS5׏eXkwof w8`Ƕ rJϪ|g} vnp t>H{wU"~rU\K3;E1lL\52R|ZYɚ u\q,!ù#Pmt"%Ys+6L1<[>nT5w|H|I9ucDb; ˼O'0V~pԌsA$X܌[a,\˭z];#p(I55F%`]N ]y7Vw 6 wg˩_e^KQ򸛿P?~JﵗjS ٧Y7LC\C8=ZYbo.*B&U'^+Ȉyf:J˙{|7 S"" 6{i&σ h43/fʩzq (8hh[SNsUFv-B?R]wq{X%c@|?e$!].]O)nUpXF7c{1 qʳt8e+F:bk!PY7ͦ "&~ˇ<.RN*:4d 2hXR&*߫8UaʪBEXF-`ʆVo_d!d_4t8$ŒC7XƘk|q߃Y^Ku`)i=BQ^P@ /|c%[UP ^ܵ.@e#n=:xW&Pʾlb)byKD ;)>h%?p" k`,4x!/P)ŦNȞ7 ]&ꊤ,=I85 ¿~ԕ#~}Ŋ qKvQO"P5iز} ;!\̽Z%Ubqݣ*Pf=S::f{046n]%4/px6.7%?߱:=դ AD,;M>!;2hQyrN@H?)H+m8]K 6{q#Z)8in0 m{.<T!釗=H .ɐfpm,OaaF R!'G:^,G@Qŕ՘Hn¥+ʛ_| XïBy8eY`}P% ֜B9i=/[4W+$P]ؔjyr~REj7$.W!V`bX;v^r$49.zuP r@Q6~ :vS&Km7|qs:Vᡭ#İ\7ֵpnJѱc=PB#s9N~@Ժ֙K ɉ=ڸENSN\9nOehb{X]+SJϨԗ0i3.g\F}[ Oµҁ/r*xXko20Få:"޽ПIbq|\PTCWJC}1dmPGEqV2H2)R i[|a o)BO['9!*X7J,%yhFRo#/eaV,|T:Pe#McuÙ!j3oEu$l>\{,ĎIv+!j& 4Vll p)p2NARL\b[^n+Ӝs.,k8ZC{4?[`=\ܞ m>Hp94d#Mՠ[GV_&!*Μs6SnKbǵdbҁ\b @kT±ڶj*醵nAM^ݗ-&^cuIn_no:>Ǽ 7GӲ|s.&YmRÇeV.;j \%r)%6%~)cV=͟$^$qzTX|QzI&R7RNjTtJ(ۀ\|'}"4vĆ~QNvN$> "XA)??4ƤEVh@4ơqTL+n8zO>Nj!hˑ"AIREƈ? [,vf]FUJ8sdXt{+vSc(F(W.Uk"'>A~Vy^V>BM4k}eGaǍ^ɰ~}2~QF>(ē8~@g;7ki/G ٩̥?L:q#$fż݂Uh{}0I ;Y bl9Č6w^G qAȮ aA`QD$tPH{VAUz__;Pw)=V}H*ߑR(L0+ORa LUЗג3u ӈD =)|yxY1pY=_S%7$[}w?qB.¦_f-4MLɹ=u!3ߦXͪmI\1_wgB0'%#r\cÌҺ %廘{V q"Qt&wWA`ß);fwG\Âo"aMq6;EpQtS4Ė* u]^-ΕNXʘ /eSdO܋ju(&Q ŖZ&AĈm姰3U(poejQNh[٭u,NL\VznSPT*B*րh90#fѬY4qj~p;;QU~r:rҩ?,kBr1(ˮ%tKXF٥kz.>u{F3d׆+];gu^lz1{ǔSPbp<3}6io(g{FYRnz1T(L_jGJ[>*^R'8oqC*mK:Vl5)\u,`O"HRU 1aރ #[6=ʩx hٿ C1qQ͛LΟI7RIػ;d TFfTM1:]2]]&-e$gфgS8V"/xr' ~ųLGCoYl&Ŏ؏MHIT+_~ksQtcҹiYI  M0 cjJ,ݿ?QYo$i91.8~%G$l'$,JG(7BLy!0D \ç P>n8O) k"`aS?yPKAˏ00kյ4/AIQ\ A\o&ۻtJNd8Yp-u-ZBz'HifabeI2qoWꍭ0㓈hQhTW@/Ah1AvZ4Ҟ^RuTS$4'>^ɉfbPGQt<ǶIU67ȧVohseCl4D9\pڷ x9MW>61LsJ HZdE~) *u nP,&87;խ tָuE-JR=6ݼTL ˼թ(JIoG\y,*%a(k#QIF0UMO$,,[Wl6A@f`Zl&f2[ d81Ry*3C.Zȿ(JT:XjD@^X?:Cj-ߓ ܂"&U2T΀T|T~Q )-Se+Mh;-$nb튯haGrpQ *ZkB'h>O THIј~Cw %ñ!6%09^4Sh =ä~rl ΅4cS\=aPqkC4"񣾃ǫbF בh&G?,bQ<*Jå 0. A)MOn&fOfK-i.k}Hh[@M)[-8R^GyA7\R>BQq٬N E0jl;T@}@,6-jMEtwba Sc>Wxq^gq|fT Wء# ZQu*lMWFu7:*>`C bi W>sU-+7(P0|,Mp $a OлUrݟ @jsO0X|j|(PLM%|lE"Rc[R&7\s+s_xM>xGțe _قOuXHUUsX9P9Wmˌ@qpQ|բ26 /3,[IQ:^> 7.yv hM.r>kRhmO>V׃87(ɅjINeWLi7C 13ֲ#讜r :cMCYeifvo{KO%ZNm5;Un'9\%m\#!zlm.RmM8N6uqA,2X@,xc'01흳f9&`*tWVi K$ +7z޷JT)11?K5z:LZ\.ΨBGx 0q4ϋPWB&L-7kqsb8-#oi;rXLP\* #zk8{4ϣxSͩVUpry$4߼9TJ0D4ڣ#!/sSŒPUrǗ!s|܍h5[t5}#(5td@i}/.xk6⥈})ǐU6|<X +U I6οa&0"} *]vg,L40jn1 3“dX& 2?7G ثt{Yi$IWa(L NmC=Jqηvue4}c[b~M#לI՛2ysyHڹ3]:˂9vU|I2|Ū륜.+[lre^ K wlR1L O<7ܐKt<2t3-!1}fY(QIG灼 iS2WpwGo3XԦ8p#M/# sՉ/xlb'3 O d@_c)k(:4DbL15`FjvviZ!u:+ŝ?E$`nOFo_4 rM?5d9hrʔESC=UqupP+=s:!!'&a)^w DǙeg>ZJz,\Z"l1H 4t$=+-gݚVN.W6i)r*I;[`Y. E9пk>V_4p^*S8^K(5ַܙʓ'9sˤ֞v5=uQXW{I0zK_1uvsf fi)dP)%At \f{W&Las|s D$80q6ҜZ1]%?#fkЩr4#to_;X'؈&,؞>78*33 :K2?' C0O +Sw- bURf^/60ͳQyPŗ=Kv< Qs[!Q: ^5+Է_'(5;uY[$!ë1kki{) N`'n Ipu# 3{+3wz炪iVzE WhE:7Y [軫q#bB\2 =XԃOvG .Get<:%ݹ1[llz,R7V;չ'5vUuWf1EZ|W59ǙxڣLUtd緻|QpތO ًz2j-]UT#xeIc Sg |ٍhx1z>3?/(47 h!pw;%+'ܣV3E\; (B (ftIK<"(mzУsyņZ^3\-ߌAVK5l UsaIz^+`W&>p ainn4rkφ:nمw92\욺O{=*9?fLl_WBNKSn" c\QPbnZō}6/xY'~2(xE+j]@=h,MWM14>0 -ìmz٘)pԑRQW"WySBXf w&ft~ *GO,^'>?M13] ߏ$KߙXNT4/i002S$l9!2,pW88_NinP9Yp5QyY^QNp@ JǗ.; gah5{Gcޕof3AunEh2bm:Fw wB"e?~2G‰U.oxYOf1fg[~ NY34ၰ^X0IjF4X%ť \p =}T)ܳ0!XW|nFu eB>q)4 L8Sd$)q4/֫ϒD#¬4JXY |z<@fp()0=a?LɤK\sj {2ð"ⲽ}|k Xp'*OBN9 OlIn܎íN O" Ǘ 4$5Oӂ‰jgoo Q#X|EW:yھFjD7o.~3Nψ8U\Ib ,̱;*w\$$cB<Ǯ|dKsXڠ)H(i|\#NUJ erZUMN La)"*6+|k"`P '}Õ[1+˿mKX`O8%eCZѮHhqydIu'u }Xfs'[M4xyhu77/! Ob~ФTj̓b+jx^tJ *-&"D":: Y1֠N4PlmH1+ՌEՒDfGi&JZ":b"7K,M|M_B}̋ЂmٵD,oh#5;S{](-Rl\<(s w)IK)@.@-QjLņ/t08GgC' ZͷbkQTd41װjNdrf g7 jZ`;rj$_U5}5 c|tg5#i5/P>L Zi:k@Q8:{ޢ3sj,9`(V{Bs0 6;DB;".nv (YQy ܱA8WDu}Ȗt iKKg5BؔTQ^|LhXfm,Ch`_e'PF7=IssUIrDu cy"czdr(ZC@'|Z&]@#2f'Jɏ7Y 3(.E 6Zb8L=BNo#Ak꜄ؐvTKpzqmUpTc\e'Ы.HِOL@s3-x^T=Dс.39"(i ;9]a[8P3.q>z_.`tU7(x>AB /;HL9s/ x~_z uMQ/x 5 //_$nm6wkTr])3D_b0PG!Y>rVև=%t^Bq8C'$]sdB# z}dng0F;ȟF\pʳU-nL1>ۭc pa1Ie6?;yؘ"˷ߔO:ҜUs?$83t3W d2`Mݱk%f*`ՉyT#!M.rb>\lZ3+{>l;)7L>U觡Rs?t2u1/84iΰYyW|o\V$^TBMfJb /.2&̓$f=Agey nM o$k~F'4?0monZY܎ W|d0.F'ץD+Y.ۘ@K %H:jJBfEw"d \bږ" EZ2@CgI\6/+ȉsVwfF^q=@~d ̢v1`ݿ":n{~HLEPs97[uʼoS1sJlTlyِZ8[tdTZTbµ[X .ze'6u-Nۉg 'rT bFOq䁰F'fUfɲ?t*ϘVF]  d{}kY"Rˡ6_WKZD+F.3JګMICǩ}ur4@|"%CըÄ uU:Ro7Pά>?hcOE_h3|  K,v:(`+QIcdp!X@!Ezg?6 i*8fYrJ- ԋALI W.}wM-N=X('uI)X5 Pq"fcbFduu7=#cS"`=5&f\{ԮCB=FIVyH!vԗ!Eq$3k0 VLXKQ#:@*c&VTƃL3yĈ0d ,"A3UT 0̿~ASuYH{K;49}Oվ>p*͚*IZ\7W}SK p6F,[zs}iF l{),fE(ly.8 =je{Y~dLRe^seqdY-62w23vLY9[=l}ɰϼ<؂ [s*#oGPp˰hYsk*q*] 5>=ahNqt<rV5řYȵj` CxaFMs'ߒ?VY7'hyvÁվ~-6Kr^{)n9H阽DJ2$E^DuZԐֱO4IϨ6ҍRdp%)F!'rfh\5w&:Yy-+X%qzeQO(|~, "Byo=6DWPl{xW⡆6,Fne8`^O HKaߝ Z= KkZZ:UlN]wOT@U{gj7x3u3l-g=7G(DZ*4'70ڵ|A3pV35-5b:v={ 4hH8u@`<(jzިO< K)8jk/؉gLY1t>ĝ'S F#(S^[@a-h| Dݘnj +qdʱPM܊J4ĉ3K|no3qvVΰp*S!7 >]Ck1Z9){9k0]8&bgPml? ,a¿quFH \vg[fjxn6,ÌAe*4VIVIV;5_PmgA2{~.WVc̜;x)vjDSb6S O-A-4j!7>-zwNE?A7ϝ  txԲ*J `>_Dm5&9Bv,3{fxc!q.Y: #:v}&iFZ*WSJJ ţS7[}q߇CiJǀur_rj&04mM̘scP )Am{MR g3U(Ǻ@vQ92f :QXl|&䜦!C F7Z1-`t"1Q-{|Yˎy~qӲ. xNMA!뙺m6=ɻ(َL %ܐ]?4бxjonz7_g}B~X8|t*--'"k.H!HN4gΰ_Q.~^=Ew\I "LW8CT\nȔC'% wWp9Zwr:+$Q>El=8J𲕊&tK1"j:tt3=R[S|d<&bc} >C˩h}i7M} 09/ݽI>9Xj'),dYa$.~Fz0t?:oehPVeRP޼[=RqP|I7%* ꦦB|"UK7$%haie/\ mJEԬo-O"B[3s?XRN1*ȷ>rE:AuyUBGb@!*!tII&N',8#s(!7Ja~@ȿ7i^ 0:h}DbNg}m8[K- Bj}H)qQ.ScqUo:kBXrY'%mN'lbVL/ x2ߵGxuJ(Y͹R@~ayI^ҭx\5ĬMi!_pi𽅈[Qg)sw:1 YNi$|R;;b)u$bG!@e$^1 "@ ק+-FDbƖNC h ӻɗ9J:[鎯IҲ򊪈g kcv"Pk}˩~W~l{61p3Mg)P&!Ti;<܇N/շ #۳r 1G]/GhoEd3$CDmV ܍^\V Pq " 4b/zXe4ne CVڏ' ֓8FW3eB)=6ԠFd̷7UѨs Fۜ~ ㈎7.bf] M4X{ĩ\DAZNd%(uȵPBCCTBafR@ f ,TvB8g>zNweUį sٞcL(fhadu~5lQ vQwd;9VHRA Q ۚʼPy9ۃZTh׎2V2v0ݺ,J6~@Ҍ kc f!/r@cWn0(3x8߹8nGCi U W~_ ?]avwgC zk720h9;FYw I;Olq* qP+mKXPޞe',ՠ^FvAU %EP]uypT韺Wx`EuU+/U賿`IZB{iC.jj:9 f܅{ozܫsdOd9]{YHƝ+@%CS]KK,?n>:&Ih{[dKk(qz8ss|_ /\n'-7t!zs0d]4(j~ND#/s:/B"?CT:7tz)fM T=Pt <`Y{.e<)nSLUq U&.L߁ӓ;U6&}wB:L1urc k vSFj&!U bE1| EX[mÜ)WQVO4tV8lVyX `VM]M4vHhDDt\|bF3O=aDg(cf np6wRab@pH),@jT`9mR[(yuo+*nw'}\]Wx~DXsmzeOQP]?E,&G S QvHCq{2g&n8g0ZopgTGܫh%^%4eM]j@i]F+ :ŷjhMpDş9Aϙ η缨SNTueqa8C iaOuO}8lj8[Wj sڵLcxN=;og3򘄣=hBŇav0oN](mj.rKU) ַ=C8m)147KSto-ؼm@#Ms~N;ߨPC ",r 6%PZ!z9 ?= \45sŌ]@1ec^ՀGH-iF~|d\֙=q~%Y%%ɈU-Fm gīry\ן<.Q ?-}mkq` ?wdvqc;k}C̺jcm}D{[5Un:1YcmuxXE7HGb2S`0Jz˱@vn3Щ wGtk#&)JҎ+7;uG#֑@Prؾx?z98'II9Sts^1Q03X~W7MYl۲JzSlkqLڠdR: /C[En?]WpT%e}xd[u@=ョNHW/vݢ6i[hQ$6}_nwu JCfR`ztle2 U45"!jyp$@y5a_Pe.2$Hԥ 2,~ۂQ:y Glmeܬw+C+:VL^"{ +EfKxOЁ.b*A:06%nS5I"[CNCIH4 ]\;%hBQEy\s#3Rʒؤ9fqX #[|$W- j)B$ Lmb]fswЊ*!՛Ym %Ep2Ƅ2χNXKR0h@UzWhf&ks.$XL㙀W8{{{Β[{b 9"NEe[8o>|1SF40O<@lc4^h۾vI}K7h5Åꩇz'q*ozȶKy?ۯ(<[34ToV uӏzMQ|yՌhaBr;,ۿ(D|Z@;YUJ{X6S]~k,w rtΝct=t|ǧ`y= *m[d`h6?䢘 aiho>=Oٷm/)=Y܈lrp7$'@e5vD|~,ɂYQV [{T)5e{.-YHGr-׆qN=+<,9p2m*} sj?xNj0 :m3#iZf1 D76< NZC{twߏD=Bcֲ)֖"$Ϻ_ɑ0n6#ĺ^[:=xQ6/B6C j<e>@wi*+w-$dp*fz^}Q𡮶s$_ˠ#~n,{pb>0F_f' }]7zeN*YNRI)w߃(J  "߸&!J-%OBHQ3^1/6YsF=gڟN"ծl96%6ĕeB'ba۸ginN( ) 9 E% />t_TmCWt;b:"g9{ SְF{oCM(*@3jL2{0lF`bC}"kBnzSm^3’X3mv-ҷHZE+`+P"7;{Aʾ/}/kN+__TS/X0NZ>bU:flVo/XnqWJ-U~40AWj3p̠qpRy|'o9(DܵɚCz3WF.j pATGj!4fkx>t`xJMUM2V /Jo2,+7,)XDP9naro5`W5;t*a(xqKsPs *7_SP$9,C-$4z\x60 6t'Jm*ȧaE #@LU".qQ8u`)q9;նzW#TVY.ԑL Q}Y['.`Iç饖 G%1I?[Z=RʶI~}m7gۀ>%i|kBS34dR е  6tfH iVJX7=黛K2кX4Yв: cV*Q6f|3pbϩ&Q5=ʝu 5[fd-Bص BΎ,nyP᧍l"(ʎ}O[RqMT!mVݛ8`:v%0;{izQ[D.HyZ ,0ODnj$Ì{$' eUp5 >{6.}ïݪ .%hbN7||zMBhL#مۜ]G<.)>Z_ s]!c1߈bUu];B^8%;9;ܤVfP+A)`bRa&EL"ծlhPBՒÓ7"οalw=s rq(;L¹@ .yF|UA;^NBoy$`CGא Q2SU^Q7$8Bt81 ;z-%qM-bֶ$RyȵE ݍdcThvuU-Rm}2JHhn2k-wqӖ}OpigJhVDuF)*-+#5UVtUpm<?De?:ncbb5b- m1 @~FhK.{zI`>q 'J.THx&Eho!gBNJЂJfzT 2kVzܵT Gݙ*KفO eR0xPXju%տ,+®,0̜mtL4ݴ۲M׹@hxC]u f+ZX4@#Rq1A:uV}աJ2; վ[ 6m(#a)" $LcfΛLa:b0ƍwJ.