pdns-recursor-4.1.12-lp151.3.9.1<>,p_/=„ &nOn1YFh AzFS a/0)zVbmUQ15U:|zΗ# H&jE:(AxƆq@:Zdj8Zh\M:_0 e>Fw?vd # p ,0CL] v!  \         x     4` ===(8*9*:*=oj>or?oz@oFoGo Ho Ip Xp Yp\pT ]p ^q=bqcrjdses fslsus$ vsTwuL xu| yu;zvvvvvCpdns-recursor4.1.12lp151.3.9.1Modern, advanced and high performance recursing/non authoritative nameserverPowerDNS Recursor is a non authoritative/recursing DNS server. Use this package if you need a dns cache for your network. Authors: -------- http://www.powerdns.com_obs-arm-6[gopenSUSE Leap 15.1openSUSEGPL-2.0-or-laterhttp://bugs.opensuse.orgProductivity/Networking/DNS/Servershttp://www.powerdns.com/linuxarmv7hl test -n "$FIRST_ARG" || FIRST_ARG="$1" # disable migration if initial install under systemd [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$FIRST_ARG" -eq 1 ]; then for service in pdns-recursor.service ; do sysv_service="${service%.*}" touch "/var/lib/systemd/migrated/$sysv_service" || : done else for service in pdns-recursor.service ; do # The tag file might have been left by a preceding # update (see 1059627) rm -f "/run/rpm-pdns-recursor-update-$service-new-in-upgrade" if [ ! -e "/usr/lib/systemd/system/$service" ]; then touch "/run/rpm-pdns-recursor-update-$service-new-in-upgrade" fi done for service in pdns-recursor.service ; do sysv_service="${service%.*}" if [ -e /var/lib/systemd/migrated/$sysv_service ]; then continue fi if [ ! -x /usr/sbin/systemd-sysv-convert ]; then continue fi /usr/sbin/systemd-sysv-convert --save $sysv_service || : done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" -a -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -eq 1 ]; then if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl preset pdns-recursor.service || : fi elif [ "$FIRST_ARG" -gt 1 ]; then for service in pdns-recursor.service ; do if [ ! -e "/run/rpm-pdns-recursor-update-$service-new-in-upgrade" ]; then continue fi rm -f "/run/rpm-pdns-recursor-update-$service-new-in-upgrade" if [ ! -x /usr/bin/systemctl ]; then continue fi /usr/bin/systemctl preset "$service" || : done for service in pdns-recursor.service ; do sysv_service=${service%.*} if [ -e /var/lib/systemd/migrated/$sysv_service ]; then continue fi if [ ! -x /usr/sbin/systemd-sysv-convert ]; then continue fi /usr/sbin/systemd-sysv-convert --apply $sysv_service || : touch /var/lib/systemd/migrated/$sysv_service || : done fi 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 pdns-recursor.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 pdns-recursor.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : ( 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 pdns-recursor.service ) || : fi else # package uninstall for service in pdns-recursor.service ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi fi+;KW! 0F 䁠A큤_T_S_S_S_y_z_y_{\9\9_S_S8982fb8cb72ebf187fd67438f35019589c19544a34ba2eb57a0c76948df053e984d5499ee1d269602f645e5426934cbee9ab21caae27d76b9d598bc44006e21cf45aa768c839e79e953d6cbc90e14353dc131a5181bfe9a85e93eb3678025716053abc1aae505a1ed898d125c4ddd32d2eb77b91fdd98a0b7c58ceba965f4694717b11cbf686dcbeeef116b539cef295187927715f5e7e0d9850ffbdd1b4e8725d313b2e7d74a38aab322e05e1f820c77c9371a9bff1ce84477a97c7ed6f2be0f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d7825059cf9d2cc84f3e9da7a6776fad0b9ef9c0686b07ccac0b74d92ac8077876edfa397d43677806dce2f28f040b90f18b0e20f56bb92860b3ab0d36f05c795888ad845f84e3a3cac534781f014f97033ae90d4574b186d9455762948499fe512ae12servicerootrootrootrootrootrootrootrootrootrootrootrootpdnsrootrootrootrootrootrootrootrootrootrootrootpdns-recursor-4.1.12-lp151.3.9.1.src.rpmconfig(pdns-recursor)pdns-recursorpdns-recursor(armv7hl-32)  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     /bin/sh/bin/sh/bin/sh/bin/shconfig(pdns-recursor)coreutilsdiffutilsfillupgrepinsservld-linux-armhf.so.3ld-linux-armhf.so.3(GLIBC_2.4)libboost_context.so.1.66.0libc.so.6libc.so.6(GLIBC_2.15)libc.so.6(GLIBC_2.16)libc.so.6(GLIBC_2.17)libc.so.6(GLIBC_2.4)libcrypto.so.1.1libcrypto.so.1.1(OPENSSL_1_1_0)libgcc_s.so.1libgcc_s.so.1(GCC_3.5)liblua5.3.so.5libm.so.6libm.so.6(GLIBC_2.4)libnetsnmp.so.30libnetsnmpagent.so.30libprotobuf.so.15libpthread.so.0libpthread.so.0(GLIBC_2.4)libsodium.so.23libstdc++.so.6libstdc++.so.6(CXXABI_1.3)libstdc++.so.6(CXXABI_1.3.3)libstdc++.so.6(CXXABI_1.3.5)libstdc++.so.6(CXXABI_1.3.7)libstdc++.so.6(CXXABI_1.3.8)libstdc++.so.6(CXXABI_1.3.9)libstdc++.so.6(CXXABI_ARM_1.3.3)libstdc++.so.6(GLIBCXX_3.4)libstdc++.so.6(GLIBCXX_3.4.11)libstdc++.so.6(GLIBCXX_3.4.14)libstdc++.so.6(GLIBCXX_3.4.15)libstdc++.so.6(GLIBCXX_3.4.18)libstdc++.so.6(GLIBCXX_3.4.20)libstdc++.so.6(GLIBCXX_3.4.21)libstdc++.so.6(GLIBCXX_3.4.22)libstdc++.so.6(GLIBCXX_3.4.9)libsystemd.so.0libsystemd.so.0(LIBSYSTEMD_209)pdns-commonrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)sedshadowsystemdsystemdsystemdsystemd4.1.12-lp151.3.9.13.0.4-14.6.0-14.0-15.2-14.14.1_^z^@\\N\J@\E@[@[v[[[-[@ZЛZZe@ZF.@Z%8Z%8Z@YY5Y^&@Y[@Y?YR@X@Xx@XN@W@WίW WW@U4@Uv@U@U8TܕT_W@TR(@TO@Adam Majer Adam Majer Adam Majer mvetter@suse.comMichael Ströder Michael Ströder adam.majer@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.deMichael Ströder adam.majer@suse.demichael@stroeder.comadam.majer@suse.demrueckert@suse.deadam.majer@suse.deadam.majer@suse.demrueckert@suse.deadam.majer@suse.deadam.majer@suse.deadam.majer@suse.devcizek@suse.comadam.majer@suse.deadam.majer@suse.deadam.majer@suse.demrueckert@suse.deadam.majer@suse.deadam.majer@suse.dedimstar@opensuse.orgadam.majer@suse.demrueckert@suse.demichael@stroeder.commichael@stroeder.commrueckert@suse.demrueckert@suse.demichael@stroeder.commrueckert@suse.demichael@stroeder.commrueckert@suse.demichael@stroeder.commichael@stroeder.commrueckert@suse.de- any-cache-update-4.1.17.diff: fixes cache pollution related to DNSSEC validation. (CVE-2020-25829, bsc#1177383)- rec-acl-4.1.16.diff: fixes access restriction bypass. While API key and password authentication is performed, the ACL set by `webserver-allow-from` was not enforced. (CVE-2020-14196, bsc#1173302)- bogus-empty-nxd-4.1.15.diff: fixes an issue where records in the answer section of a NXDOMAIN response lacking an SOA were not properly validated (CVE-2020-12244, bsc#1171553) - hostname-4.1.15.diff: fixes an issue where invalid hostname on the server can result in disclosure of invalid memory (CVE-2020-10030, bsc#1171553) - ns-ampl-4.1.15.diff: fixes an issue in the DNS protocol has been found that allows malicious parties to use recursive DNS services to attack third party authoritative name servers (CVE-2020-10995, bsc#1171553)- bsc#1130588: Require shadow instead of old pwdutils- update to 4.1.12: * Improvements - Provide CPU usage statistics per thread (worker & distributor). - Use a bounded load-balancing algo to distribute queries. - Implement a configurable ECS cache limit so responses with an ECS scope more specific than a certain threshold and a TTL smaller than a specific threshold are not inserted into the records cache at all. * Bug Fixes - Correctly interpret an empty AXFR response to an IXFR query. - update to 4.1.11: * Improvements - Add an option to export only responses over protobuf to the Lua protobufServer() directive. - Reduce systemcall usage in protobuf logging. (See #7428.)- update to 4.1.10 - #7403: Fix compilation in handleRunningTCPQuestion without protobuf support- update to 4.1.9 https://blog.powerdns.com/2019/01/21/powerdns-recursor-4-1-9-released/ - Fixes case when Lua hooks are not called over TCP (CVE-2019-3806, bsc#1121887) - Fixes DNSSEC validation is not performed for AA=0 responses (CVE-2019-3807, bsc#1121889)- update to 4.1.8 https://blog.powerdns.com/2018/11/26/powerdns-recursor-4-1-8-released/ - Fixes case where a crafted query can cause a denial of service (CVE-2018-16855, bsc#1116592)- update to 4.1.7 https://blog.powerdns.com/2018/11/09/powerdns-recursor-4-1-7-released/ - Revert ‘Keep the EDNS status of a server on FormErr with EDNS’ - Refuse queries for all meta-types- update to 4.1.6 - Revert "rec: Authority records in AA=1 CNAME answer are authoritative" https://github.com/PowerDNS/pdns/issues/7158- update to 4.1.5 - Improvements * Add pdnslog to lua configuration scripts * Fix compilation with libressl 2.7.0+ * Export outgoing ECS value and server ID in protobuf (if any) * Switch to devtoolset 7 for el6 * Allow the signature inception to be off by number of seconds - Bug Fixes * Crafted answer can cause a denial of service (bsc#1114157, CVE-2018-10851) * Packet cache pollution via crafted query (bsc#1114169, CVE-2018-14626) * Crafted query for meta-types can cause a denial of service (bsc#1114170, CVE-2018-14644) * Delay creation of rpz threads until we dropped privileges * Cleanup the netmask trees used for the ecs index on removals * Make sure that the ecs scope from the auth is < to the source * Authority records in aa=1 cname answer are authoritative * Avoid a memory leak in catch-all exception handler * Don’t require authoritative answers for forward-recurse zones * Release memory in case of error in openssl ecdsa constructor * Convert a few uses to toLogString to print DNSName’s that may be empty in a safer manner * Avoid a crash on DEC Alpha systems * Clear all caches on (N)TA changes- update to 4.1.4 - Improvements * Split pdns_enable_unit_tests. * Add a new max-udp-queries-per-round setting. * Fix warnings reported by gcc 8.1.0. * Tests: replace awk command by perl. * Allow the snmp thread to retrieve statistics. - Bug Fixes * Don’t account chained queries more than once. * Make rec_control respect include-dir. * Load lua scripts only in worker threads. * Purge all auth/forward zone data including subtree.- update to 4.1.3 - Improvements * Add a subtree option to the API cache flush endpoint * Use a separate, non-blocking pipe to distribute queries * Move carbon/webserver/control/stats handling to a separate thread * Add _raw versions for QName / ComboAddresses to the FFI API * Fix a warning on botan >= 2.5.0 - Bug Fixes * Count a lookup into an internal auth zone as a cache miss * Don’t increase the DNSSEC validations counters when running with process-no-validate * Respect the AXFR timeout while connecting to the RPZ server * Increase MTasker stacksize to avoid crash in exception unwinding * Use the SyncRes time in our unit tests when checking cache validity * Add -rdynamic to C{,XX}FLAGS when we build with LuaJIT * Delay the loading of RPZ zones until the parsing is done, fixing a race condition * Reorder includes to avoid boost L conflict (bsc#1089814)- protobuf support is available in SLE-15 - Boost.Context library is not available on s390x- update to 4.1.2 - New Features - #6344: Add FFI version of gettag(). - Improvements - #6298, #6303, #6268, #6290: Add the option to set the AXFR timeout for RPZs. - #6172: IXFR: correct behavior of dealing with DNS Name with multiple records and speed up IXFR transaction (Leon Xu). - #6379: Add RPZ statistics endpoint to the API. - Bug Fixes - #6336, #6293, #6237: Retry loading RPZ zones from server when they fail initially. - #6300: Fix ECS-based cache entry refresh code. - #6320: Fix ECS-specific NS AAAA not being returned from the cache.- update to version 4.1.1: + Fixes security vulnerability where man-in-the-middle to send a NXDOMAIN answer for a DNSSEC name that does exist. (bsc#1077154, CVE-2018-1000003) + Don't validate signature for "glue" CNAME, since anything else than the initial CNAME can’t be considered authoritative.- _constraints: we seem to need at least 8GB RAM to build on S390x and ppc64- enable ed25519 support (new BR: libsodium-devel) - enable net-snmp support (new BR: net-snmp-devel) - simplify BR for lua: lua-devel everywhere now- update to version 4.1.0: + Improved DNSSEC support + Improved documentation + Improved RPZ support + Improved EDNS Client Subnet support + SNMP support + Lua engine has gained access to more parts of the recursor + CPU affinity can now be specified + TCP Fast Open support + New performance metrics + For complete changes see: https://blog.powerdns.com/2017/12/04/powerdns-recursor-4-1/- update to version 4.0.7: (bsc#1069242) + fixes CVE-2017-15090: Insufficient validation of DNSSEC signatures + fixes CVE-2017-15092: Cross-Site Scripting in the web interface + fixes CVE-2017-15093: Configuration file injection in the API + fixes CVE-2017-15094: Memory leak in DNSSEC parsing + Fix validation at the exact RRSIG inception or expiration time + Extract nested exception from Luawrapper + Throw an error when lua-conf-file can’t be loaded + Lowercase all outgoing qnames when lowercase-outgoing is set- Added pdns-recursor.keyring linked from https://dnsdist.org/install.html- Don't BuildRequire Botan 1.x * Botan will be dropped as the 1.x branch is EOL and won't get OpenSSL 1.1 support backported (bsc#1055322)- update to version 4.0.6 + fixes ed25519 signer + update root-servers.net entries + fixes handling of expired cache entries so they expire faster- Enable DNSSEC validation by default.- update to version 4.0.5 + adds ed25519 (algorithm 15) support for DNSSEC + adds the 2017 DNSSEC root key + complete changeset is available at, https://doc.powerdns.com/md/changelog/#powerdns-recursor-405- move autoreconf into the build section- use individual libboost-*-devel packages instead of boost-devel - add signature file for upstream release- update to version 4.0.4 The following security advisories were fixed - 2016-02: Crafted queries can cause abnormal CPU usage (CVE-2016-7068, boo#1018326) - 2016-04: Insufficient validation of TSIG signatures (CVE-2016-2120, boo#1018329) complete changeset is availalbe at, https://doc.powerdns.com/md/changelog/#powerdns-recursor-404 - remove 4462.patch: in upstream release.- BuildRequire pkgconfig(libsystemd) instead of pkgconfig(libsystemd-daemon): these libs were merged in systemd 209 times. The build system is capable of finding either one.- 4462.patch: Disable fcontext usage with Boost 1.61+ and revert back to slower SystemV ucontext. This fixes failure to build with newer Boost version. (boo#998408)- update to 4.0.3 A new release for the PowerDNS Recursor with version 4.0.3 is available. This release has many fixes and improvements in the Policy Engine (RPZ) and the Lua bindings to it. Therefore, we recommend users of RPZ to upgrade to this release. We would like to thank Wim (42wim on github) for testing and reporting on the RPZ module. Bug fixes - #4350: Call gettag() for TCP queries - #4376: Fix the use of an uninitialized filtering policy - #4381: Parse query-local-address before lua-config-file - #4383: Fix accessing an empty policyCustom, policyName from Lua - #4387: ComboAddress: don’t allow invalid ports - #4388: Fix RPZ default policy not being applied over IXFR - #4391: DNSSEC: Actually follow RFC 7646 §2.1 - #4396: Add boost context ldflags so freebsd builds can find the libs - #4402: Ignore NS records in a RPZ zone received over IXFR - #4403: Fix build with OpenSSL 1.1.0 final - #4404: Don’t validate when a Lua hook took the query - #4425: Fix a protobuf regression (requestor/responder mix-up) Additions and Enhancements - #4394: Support Boost 1.61+ fcontext - #4402: Add Lua binding for DNSRecord::d_place- update to 4.0.2 Bug fixes - #4264: Set dq.rcode before calling postresolve - #4294: Honor PIE flags. - #4310: Fix build with LibreSSL, for which OPENSSL_VERSION_NUMBER is irrelevant - #4340: Don't shuffle CNAME records. (thanks to Gert van Dijk for the extensive bug report!) - #4354: Fix delegation-only Additions and enhancements - #4288: Respect the timeout when connecting to a protobuf server - #4300: allow newDN to take a DNSName in; document missing methods - #4301: expose SMN toString to lua - #4318: Anonymize the protobuf ECS value as well (thanks to Kai Storbeck of XS4All for finding this) - #4324: Allow Lua access to the result of the Policy Engine decision, skip RPZ, finish RPZ implementation - #4349: Remove unused DNSPacket::d_qlen - #4351: RPZ: Use query-local-address(6) by default (thanks to Oli Schacher of switch.ch for the bug report) - #4357: Move the root DNSSEC data to a header file- update to 4.0.1 Bug fixes - #4119 Improve DNSSEC record skipping for non dnssec queries (Kees Monshouwer) - #4162 Don't validate zones from the local auth store, go one level down while validating when there is a CNAME - #4187: - Don't go bogus on islands of security - Check all possible chains for Insecures - Don't go Bogus on a CNAME at the apex - #4215 RPZ: default policy should also override local data RRs - #4243 Fix a crash when the next name in a chained query is empty and rec_control current-queries is invoked Improvements - #4056 OpenSSL 1.1.0 support (Christian Hofstaedtler) - #4140 Fix warnings with gcc on musl-libc (James Taylor) - #4160 Also validate on +DO - #4164 Fail to start when the lua-dns-script does not exist - #4168 Add more Netmask methods for Lua (Aki Tuomi) - #4210 Validate DNSSEC for security polling - #4217 Turn on root-nx-trust by default and log-common-errors=off - #4207 Allow for multiple trust anchors per zone - #4242 Fix compilation warning when building without Protobuf - #4133 Add limits to the size of received {A,I}XFR (CVE-2016-6172)- update to 4.0.0 https://blog.powerdns.com/2016/07/11/powerdns-recursor-4-0-0-released/ https://blog.powerdns.com/2016/07/11/welcome-to-powerdns-4-0-0/ - packaging changes: - enabled protobuf based stats - enabled botan based code - use upstream systemd files- do not use /run/pdns instead of /var/run/pdns in the init script for the rest we have the systemd unit file- update to 3.7.3 will prevent short bursts of high resource usage with malformed qnames.- call systemd-tmpfiles during installation- update to 3.7.2 with a fix for CVE-2015-1868 (boo# 927569) Bug fixes: - commit adb10be commit 3ec3e0f commit dc02ebf Fix handling of forward references in label compressed packets; fixes CVE-2015-1868 - commit a7be3f1: make sure we never call sendmsg with msg_control!=NULL && msg_controllen>0. Fixes ticket #2227 - commit 9d835ed: Improve robustness of root-nx-trust. Improvements: - commit 99c595b: Silence warnings that always occur on FreeBSD (Ruben Kerkhof)- update to 3.7.1 This version contains a mix of speedups and improvements, the combined effect of which is vastly improved resilience against traffic spikes and malicious query overloads. Minor changes: - Removal of dead code here and there 04dc6d618734fc630122de4c56dff641ebaf0988 - Per-qtype response counters are now 64 bit 297bb6acf7902068693a4aae1443c424d0e8dd52 on 64 bit systems - Add IPv6 addresses for b and c.root-servers.net hints efc2595423c9a1be6f2d8f4da25445198ceb8b57 - Add IP address to logging about terminated queries 37aa9904d1cc967ba4b5d5e17dbe41485f8cdece - Improve qtype name logging fab3ed3453e15ae88e29a0e4071b214eb19caad9 (Aki Tuomi) - Redefine 'BAD_NETS' for dont-query based on newer IANA guidance 12cd44ee0fcde5893f85dccc499bfc35152c5fff (lochiiconnectivity) - Add documentation links to systemd unit eb154adfdffa5c78624e2ea98e938d7b5787119e (Ruben Kerkhof) Improvements: - Upgrade embedded PolarSSL to 1.3.9: d330a2ea1a93d7675ef680311f8aa0306aeefcf1 - yahttp upgrade c290975778942ed1082ca66918695a5bd2d6bac4 c65a57e888ee48eaa948e590c90c51420bffa847 (Aki Tuomi) - Replace . in hostnames by - for Carbon so as not to confuse Metronome 46541751ed1c3bc051d78217543d5fc76733e212 - Manpages got a lot of love and are now built from Markdown (Pieter Lexis) - Move to PolarSSL base64 488360551009784ab35c43ee4580e773a2a8a227 (Kees Monshouwer) - The quiet=no query logging is now more informative 461df9d20c560d240285f772c09b3beb89d46daa - We can finally bind to 0.0.0.0 and :: and guarantee answers from the correct source b71b60ee73ef3c86f80a2179981eda2e61c4363f - We use per-packet timestamps to drop ancient traffic in case of overload b71b60ee73ef3c86f80a2179981eda2e61c4363f, non-Linux portability in d63f0d83631c41eff203d30b0b7c475a88f1db59 - Builtin webserver can be queried with the API key in the URL again c89f8cd022c4a9409b95d22ffa3b03e4e98dc400 - Ringbuffers are now available via API c89f8cd022c4a9409b95d22ffa3b03e4e98dc400 - Lua 5.3 compatibility 59c6fc3e3931ca87d484337daee512e716bc4cf4 (Kees Monshouwer) - No longer leave a stale UNIX domain socket around from rec_control if the recursor was down 524e4f4d81f4ed9eb218715cbc8a59f0b9868234, ticket #2061 - Running with 'quiet=no' would strangely actually prevent debug messages from being logged f48d7b657ec32517f8bfcada3bfe6353ca313314 - Webserver now implements CORS for the API ea89a97e864c43c1cb03f2959ad04c4ebe7580ad, fixing ticket #1984 - Houskeeping thread would sometimes run multiple times simultaneously, which worked, but was odd cc59bce675e62e2b9657b42614ce8be3312cae82 New features: - New `root-nx-trust` flag makes PowerDNS generalize NXDOMAIN responses from the root-servers 01402d56846a3a61811ebd4e6bc97e53f908e568 - `getregisteredname()` for Lua, which turns 'www.bbc.co.uk' into 'bbc.co.uk' 8cd4851beb78bc6ab320926fb5cb6a09282016b1 - Lua preoutquery filter 3457a2a0ec41d3b3aff7640f30008788e1228a6e - Lua IP-based filter (ipfilter) before parsing packets 4ea949413c495254acb0bd19335142761c1efc0c - `iputils` class for Lua, to quickly process IP addresses and netmasks in their native format - `getregisteredname` function for Lua, to find the registered domain for a given name - Various new ringbuffers: top-servfail-remotes, top-largeanswer-remotes, top-servfail-queries Speedups: - Remove unneeded malloc traffic 93d4a89096e64d53740790f58fadec56f6a0af14 8682c32bc45b6ffa7c0f6da778e1b223ae7f03ce a903b39cfe7364c56324038264d3db50b8cece87 - Our nameserver-loop detection carried around a lot of baggage for complex domain names, plus did not differentiate IPv4 and IPv6 well enough 891fbf888ccac074e3edc38864641ca774f2f03c - Prioritize new queries over nameserver responses, improving latency under query bursts bf3b0cec366c090af000b066267b6f6bbb3a512a - Remove escaping in case there was nothing to escape 83b746fd1d94c8742d8bd87a44beb44c154230c7 - Our logging infrastructure had a lot of locking d1449e4d073595e1e1581804f121fc90e37158bf - Reduce logging level of certain common messages, which locked up synchronously logging systems 854d44e31c76aa650520e6d462dd3a02b5936f7a - Add limit on total wall-clock time spent on a query 9de3e0340fa066d4c59449e1643a1de8c343f8f2 - Packet cache is now case-insensitive, which increases hitrate 90974597aadaf1096e3fd0dc450be7422ea591a5 Security relevant: - Check for PIE, RELRO and stack protector during configure 8d0354b189c12e1e14f5309d3b49935c17f9eeb0 (Aki Tuomi) - Testing for support of PIE etc was improved in b2053c28ccb9609e2ce7bcb6beda83f98a062aa3 and beyond, fixes [#2125] (Ruben Kerkhof) - Max query-per-query limit (max-qperq) is now configurable 173d790ead08f67733010ca4c6fc404a040fe699 Bugs fixed: - IPv6 outgoing queries had a disproportionate effect on our query load. Fixed in 76f190f2a0877cd79ede2994124c1a58dc69ae49 and beyond. - rec_control gave incorrect output on a timeout 12997e9d800734da51b808767e1e2477244c30eb - When using the webserver AND having an error in the Lua script, recursor could crash during startup 62f0ae62984adadab687c23fe1b287c1f219b2cb - Hugely long version strings would trip up security polling 18b7333828a1275ae5f5574a9c8330290d8557ff (Kees Monshouwer) - The 'remotes' ringbuffer was sized incorrectly f8f243b01215d6adcb59389f09ef494f1309041f - Cache sizes had an off-by-one scaling problem, with the wrong number of entries allocated per thread f8f243b01215d6adcb59389f09ef494f1309041f - Our automatic file descriptor limit raising was attempted * after* setuid, which made it a lot less effective. Found and fixed by Aki Tuomi a6414fdce9b0ec32c340d1f2eea2254f3fedc1c1 - Timestamps used for dropping packets were occasionaly wrong 183eb8774e4bc2569f06d5894fec65740f4b70b6 and 4c4765c104bacc146533217bcc843efb244a8086 (RC2) with thanks to Winfried for debugging. - In RC1, our new DoS protection measures would crash the Recursor if too many root servers were unreachable. 6a6fb05ad81c519b4002ed1db00f3ed9b7bce6b4. Debugging and testing by Fusl. - remove pdns-rec-lua52.patch: no longer needed- Fixed broken _localstatedir- update to upstream release 3.6.2 (boo# 906583) CVE-2014-8601 This is a bugfix update to 3.6.1. A list of changes since 3.6.1 follows. * gab14b4f: expedite servfail generation for ezdns-like failures (fully abort query resolving if we hit more than 50 outqueries) * g42025be: PowerDNS now polls the security status of a release at startup and periodically. More detail on this feature, and how to turn it off, can be found in Section 2, "Security polling". * g5027429: We did not transmit the right 'local' socket address to Lua for TCP/IP queries in the recursor. In addition, we would attempt to lookup a filedescriptor that wasn't there in an unlocked map which could conceivably lead to crashes. Closes t1828, thanks Winfried for reporting * g752756c: Sync embedded yahttp copy. API: Replace HTTP Basic auth with static key in custom header * g6fdd40d: add missing #include to rec-channel.hh (this fixes building on OS X).- sync permissions/ownership of home and config dir with the pdns package/bin/sh/bin/sh/bin/sh/bin/shobs-arm-6 1602680447 4.1.12-lp151.3.9.14.1.12-lp151.3.9.14.1.12-lp151.3.9.1recursor.confrecursor.conf-distpdns-recursor.servicepdns-recursor@.servicepdns_recursorrcpdns-recursorrec_controlpdns-recursorCOPYINGREADMEpdns_recursor.1.gzrec_control.1.gz/etc/pdns//usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/pdns-recursor//usr/share/man/man1/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:13513/openSUSE_Leap_15.1_Update_ports/3cc9ec284fb274608b1c42b49616e403-pdns-recursor.openSUSE_Leap_15.1_Updatedrpmxz5armv7hl-suse-linuxASCII textELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib, BuildID[sha1]=1ab6ebf53fa79a03be1aa3ace06153ef2165e746, for GNU/Linux 3.2.0, strippedELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib, BuildID[sha1]=ba8c35a9df5c9f5ec4e04eb08e1c14d61dda1a8f, for GNU/Linux 3.2.0, strippeddirectoryUTF-8 Unicode texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)((R R1RRRRR)R$R&R"R%R+R.R#R(R!R*R/R R,R'R-RRRRR RRRR0RRRRRRRR R RR RRRRR,R(R%R/R R&R-R'RRRR R N|ɱt)utf-8ad6481651f69bab6ff7a282e3b1aed849223606c3b17ac2021fbf32c968d185b?7zXZ !t/d]"k%Y60G`spk =+ߠML7ѣk>)22=%6K[c Y>Kg`Gy)`,h߮wB8*[vyZFT[kA]jƫm0 f ^{ pj{ C]h;]uKHh?Hmq &0(iڵʭ}.Ӹ/$u0~ܷ!< đeSX-l6;iqDkR8NFQQrC%nW(5%ωH 0R}Mkze lТ U%Q(oM_(ԙ^ v%=mL=+?/( ,$MOJ#!!h uEK@bޒbp/J3)Ԅp6ߡ 9 RݜO@vϳK,D4R'HNhSLᮩ!0JKOɭB0Ej菺)a) "esal^l0{l㟇Uh{"\%P}|L z\-!ѹi$h*hm1=]&*wv‰ xS0aI [@ȩ|]ZGteM.5-MƲ9puUlmѻzI]HjʙVBMF@ej/z#43ێv4bhw]%n$jR> Ј*d\^DP6G⽢nFlm "ҭAݥdgHo`h2ϏGk{Gy(5&=P뛎i^Y6H_k`Ts̞ȥxs(֌9>|ɏ F\zZщvrWx3 !RY} jJ6^1I%[kt;?c{uV\+ΎH[]e 9:I (CW_ yF*{7S#g&"}GF0J NqJ{;] 0)U1 ]ܿ@ekg:H9Jqs׈7:&rrNj>v-c{TcOON:'+;/p2\G/?[~\.+?wxx֫Q;EP O4{mdq$`OZKy){ ۭI[3ZqiT5BL k)E6 d\yzߚJ9u}o< pppmTOvP%JJB8,tS7ot9shQ+S}ظp%S]HeX = 8)|\-"v4.rNuT@!*+ڲof7=[#O^7CU-8Zp/Y |. NO!&;WhߑTPp& 4EH@ՍH(hBӰe .?Cݤ%EJ))C(nz ڥw6WR^os-9᜵iOduFj{b-_ZyծHi~D?bnQm$*4"mRO'o?vSSSLNY 55a Ly]^Ym8My:9D>O{^*"No*R~,jť"Z1cv0_HWr6P%/} G<yɱ!^VxɣV(4Ie`U)CPL]f'0WpJUF=tCڱ$_KhXo/l[8q= ,({TۋWYC3ᚖ-Y{>4]ĶE@-Uh5~u{LCFiuauM̗( Խo & ve:U\P^6.~*stC?o/l5|-# 6FnO[4&y-#GZиc!%D)_%pDo1/v$# W, HeĊj݊upQbGdʅf -TY%=5u`ٕb]Yz $KXVc͈֨cx觧/zff7.Y!"7|41r?X|!D.a%&GĮM I; X4So<ԖMR ŹOAxoQT9k*j?CՏ҈P4%cbU2bPbρz0CCwlܕUo9Մm°bC0,sneLjdT[ CfP!K Nبr8MX7ЎzԱmnqCЃ~$99y;bM|A!h dN͞@ ;<=}Ln }QdsiM,Q@?ÒyhLM|׆ύ6ƺpcT]~LL&L:3sJ-oA9~ LՄYWeO[+>Za:KCNF蕝S%&K:ZIügsf:=,!?Ng-쓋 { mSh gYIO#3|DMVyfL؝ ػpכ!t+Ù"`@xu*q5 2tdTQ+iv\R=.t&r{]Hce9oK.C 99[b>"0`X#UA5=1vOgR=,X ǥyr*G m\WFɷ(w|XpY[ vtVw<.P/ )kBR>-~J>s;_y^`a4 kWEbu$՗B,Lw%_.DY PQ/ [ |t-[
R DnSJv/99lZ1&6`rʛMq"tKr09M.컻~=|` 8bܙTDF[ GͭiF Քp6p' E!?VlV@ȏڰDh-Lݦ3/*^\Oep?XBįH ,u(%ccЋ6ְEy[j9w$'y}ɜuiWL,j񖫤[Dt83((EdA4&Eß'qIEa[Z̗}H P)ڇQݖqx&XI˵аٚΥ(f2.~ҵ$6HTplJmcQVh z/onĿ?8:D$O@4 krr(!1VV>AbImϱᏁiCelǠ 1I2+8y^+( Pt{'2+؀AfG'75dЎ} kǒ5"nTr 4+!G1XoLt1A3,!zcH;-okԪ\"18+N BضM(_z/F-ŚPGہ_%7c}IDiy,<1~4m5t\5Ig^R{X|TVGf:Jgt&{C Sy9@ uE6^usݓe/6 LNHX=@>_|SADºT3_|jpd+jGu֪)bkj X>BРkX wu#2Egzg5ɵcK= F/*\B5ӄ~ϴv ҝ^BeslJS >z趃#'u+Y$-k/ 敄݌;e b%A*f8M2i ?4t9 N,V0 n*nR!#itl:"?> j2ϡcDϱLc1&J3x@_U^Uz@P=K.Y'0xF , 32'DݚA 'ё+ NF.~|D6G EMˁVaxm]; )u]{BOIށ;IHۍgq-Jmwvly9kF 6, GQŁZDU'C7blju|=E Ee>N#ՐL ?Lg~-g+ģ*%^P5xїemL 4'Wb#wDwY'=0p_4+;:H%1"l$-2kTn(ڭ Tj 3Ng*a8C8[+@ ylǦVQxa#0`}y$y',ʸʼ)\A>c:IǟńPe@A$h-Eq,z\ב4~KA+5FPb o UҀ]<{MVJ,jS RxgQ:p3?[l:J_w'lx~=k=d!oJobݣ)h<jVso׼6D'3̊t yW:(L d9JJC|aķ>^G T5/iSGO+O2ic5@Gv.^w^bB/ePkb<ʕe#[{q?mkFO#;2B0fNvgjP=r AlSFc'+BcAomC w¹`v ;.vϵUw%zf= Z^B|ҡ;~lndPJ)Y,hZ0!\ Uv' NuXUD.qda14R>oGrD9lv;~7>$0 Nعmql :ߝ4~ ХQ h- M/k RyۖI )W+Er 1LM;GϜB#翮gY988+- Nq/7ZZAn-E&,mB0̀AXv#֠M(b%ms9AsǦeLQZ>qJa/֛ 1GPq?q#WA_ݡL'ED`5v(UyDMOR/4s0#lࡽ*+{cs *+OUy`c\l)/v|gs/nѝD6ic.Q4X}ͣD] E~/ mͶ*B W"?PжLs}0inyKo8% _ xn$+f U)}6J]#/L<8`$gi vٮ_Ql:ZPۅ#"eOXf˧3!b}ΩkaKw"ÁN1&J$`5!Q|jhbGB~_w}0iyP k }`h ,t}ty30l ܒ$5]l1I,=0!@gq\?,-c,Gnh$ˆr*xZp] UߏƨE.?֢[1I*e+S /f'!K5W#ވŊru&\z^{A ӒwN<GLcըK] ez=4$K"ճCu){GC]-BilA-M5>QӮoe6 uȎe}K|wwݔŎc @,܍e۸w;PhǖSQf&mk :^z{'.k\uN+T?h.+'6Th7ijԙs>`~`:+;QRgVi"( gyev{|Z+mU|P!qU!ϥ&›-XT_O# X4T|ɵ7J惪V"xg_`Mv3 _~SpQ68T GGM}mp=D<P5i{Jٻ_? 9^"zJOjd[%"a.,S\ :5aRvW lФƈZ4 ZRW8ũNY6`QJ0/~@ ؅܊57@/{5Vt$V+V! bi:bB`v_k`a1w>L#{̌J"h zv3 7ݴC\q? 0(  8uA HFc,JZxrDH~QU#ѐ,nlWC^ ,gz]_I5* im +&bL<jš y4"qah6d+QMGnjA6x Rtμa [/@S"_2ThTRP_+]T" 0 0)c6v.ʈP33YB.#P6#e-~ XrvaG:aG7p^-wlQF QOȔ3^_L<-jHDX4#Ck206.rf1ȹcѠVhў+^H%mV-xD3ҠsZ kM Jw3x&Qiޠz?~ȹ9d=Gł; YUDGǹx.A^12>?/9 8r,vn SK-Q~^ ɸ7q{zE!;O5HM㯫mi'P߰KRT YJ'R羳̑,XM+{izC4lG Uo0qx_?'- up<$h)bd_eyųYBXնew7G,H?@.tRMõ19(R\RŊ-=a9#Xun~iߛi|b4~-G7ukmEa\=8[ttp Uyofu-vNxg"]TF[صw*.~OQaOT bw\,Snp[Aaq 0IXrf6'[bqTQxVߙ%|Lh?׌LeQJU6>DRyӻ!M`,'HkLcnf xel%:$%9#sS 4P/8{_j,q5%4Ӿz5Fy~"$4rɀ߳5Ϫ!BhpsX'èVlUI0Tt'vts?Սv涶V3̡{kgatk,Sn8|yqPY y}-ÔP!J\8|^b~*tD`\5غōP9,žJr-(BǾxm,+uQ my4g[@Z#i6̝@ͱ5^xN$(h\駅]/צ(`\dKJ\1y SYWƠWM>XZD5owBav[hM6Vԣ0J>Fc6F9)a2VZ ~9R¦_ΙHyZXԮq/NO;r\,0Yͷ4Q˼.WZu.[rSu9 DlobԞ јt?nw15洠Z! CoM$ d|Z$~)ov\{aVr4S "Int{M;v3AEuq' -ORtOYFz+yڛWhb@>+|./sN+f`;~J46(f6:&'o#Z}> \ a׳V5ӸR|rqlČ@T̜M EfRUVAG?f` P8~(c%m3QX|kAwH4U5_[Mm0?F%s':U1 eQe iXD;/ݧ!#@}Of +VoU#UOxlCjX]\cH\0_feTެ ,}kACA푀Ajr[p»Mks'}6E[bf(ZQz\.N1GY,ͻh!aμ-X$H]KRLDi "ЎiB  $KwseErGV3PTOP"xoP="tj^]eQЬΦ{+m+%qi ݇O8g]r5=Q@Cp)Q@'6?DVXG&(0KfC8b=pP_ˋӳ>/V!u򫏏:8z5sLcpNdR O]8^WJ^&۹qC{"i6 :L_wݟcj\8\[^, SWTF+% Py"Ƴ VE7&.JhUС؀cHV37oy֖fZq"|2sTM3Ƚ*ݚAxCIݭ0k"i gI._X Y~6d8CA+MSW_*:5gVzҢ|Jd"PYl!S֫~9tF'y;+p4a!G 7Vz}L+\o8CwJvW_.mZN%84,ַY$~־$nc%^N[Ɠq 8ՓnV:|f]z}+v,h2KS /gIQ8Z`- bI( diKKbzl{o2da.aoR``PAXs}L)YiN/;RFUCkC17lƨd}uP6  Ym}[yX r"_LN4Sx:=)FI\[Vڵ LQ%.mWҞ')I/+3ˆwzf_/̶CvB=Du]תMG-UM鞐0Uz,,@v<ڛR{ޕ+֌ϞzۜB:-V꿶a#Zv~ɥ~ĪrG#i&3+HA!tH9 S}?EPMψ 1-yd֨3*-ǐH NM6VYxܳ*GR%kbsp!r! uEE3ٶ|<p2⩸OA}-1,RQB'%LRIuBƚ@3+̭:V>ɩ*x>?(9 c92v%lWh]";7*/~6fVM;; rLq0 neB~ ~ge W"S8xM7PYPzT_oagPT 1RyFR=ʾź:q ([+ Ƙjݫ(|~`i_J>ݝ|#]?٣,3N io ? Hܱ/0(>cVbᧅ|xREޖ7ˀXԪgPe/o`"+N5is- .C@ncoM'%,Lkb#P`7SC1YlWJ,2fPQdkwxlcǥ6m+dg:߰$"5N9s!YxHcF;+=&H҉14Yt˓&NI2Wҕ Fo·V[yDގLNJHj\ XE;Mu&pT::5hBN: \h㝓d$B- N3+6'cw(ÄԂ!t@QmRE9VA,[I5Gųuh'_ U)N%;/x:y'cʼnm=d?'pedo^+hӥWU.ҋxƽ[Rk1Bf뵷9+O6!  *?@?c[zJb֎{d >ؼ| {=Ax)vT6YGv8k|F?>4uZHm<<\{5%3efpxp 1ծ"u-td0:8;:5eiWkWj qf ڻ\,[ߜSwS2?3/v9SE5̡̝v/%)Zܳ _TLw~o.'h+S"I ~yɖ=&b5s2ȪpUG-Emu~[ݸƫ%-_2ө%c,`qƿjvcGh/IVO&-56 `3௱E6 0MLdns7_ )BZ!'o}GA_RfNTCedj|GCp/[|h̎(l[)e$ydebӱŖ)91%rb CKa-0m&H::gl'mZɍaC ߦk鏟iO 2<,pU- •Q{7P=wѣ ֢5_sGr坊~Bd1VfM&1Dz=0]V^DnЏCV@A8:ۚ:Jo}KgcR'P $!zhTzP(5C?ڇEG}Ehjg:_(j{A8$Xd |8\*j}, \ kܞk 0\vc%QkW'<9tV ƙqױX qf9A[@R!qF|ܩ&;y K[˜򾼡r]Μ2U!5~QAvwrG&Xbt|0ሇ4szy_pN񍆋jw& [Q 6x '$g^Y:YTzĆ<Ēşsp1`f칢gۀFr͇LW? |&[5 P+3R?U7rZklQGv.ɬr4k =huh,InzH:svXG RfS[oBCE y)a|evq6?hNܔ[^oX #msG>FXozܣ+GU14+v-p1($ĐfMXTzh=4ˏQ=NO~:L| j~hdiahyCsLCuz<"Ih8)xo#xYXp|73ΓM`Y񼜰h3eh{I[K6ԹS~7B6iᙁ^ܻ~rmG֓ M!dcSOޏ#h$ĥgv~C QG&_dH_|}t>kؿ~CKScPٶ[| rfXpP.$8>x ިI5d/"Kb Rr繃nG}sq !)>iLCR%iPͤyuf?KIX_%!}2UEC V@pō%meS:ԲʷڻԯYRT~#]VlenH""يX 59kx˥ͱn,axՠt9 %0J!ƨ e6.O,Lq[gV v̶}ov7 >qfM^YZ׾5jU">b2`e JʺiBq]"\םqֶDErA2ReLʱ]JOZ|l@͛ioZNo7ϠĜ0< qSu `/Q M ϯEaZN7rj_hFNj1[Iw`5Nbr:i ^a4J©+P4wYX(y$`+pDwTΦeHcŠ˽eefח2[;L˴U/Rc;|W@$1zY9 }t4U}4]_ 6>0s?0 ~FޯM, t43y(mYPJn{(wʮ:BgT6\Y/Bv5Z͘oO.7+0iAe5AgK̳%@a˜ ֱ ZCVРv(#:2ktH,_ŝrXui!0)axhǗ]+l[sTsYwuѨV{7ll@zG~76ޞ+ K$3G7+ YPk3] ps[~)% 6\| Ȏm[ "7)btTKzOJ޾~ @m\;l sƓfN`ăd=oE ["^>;NXr /Up2PB( WAl) XfonlSz%ɻ? Lҏ{*_|K/J&)0r&/|GrC(ե́|D(mWn T104n;<K?W\]_Q6Q]UɅBr%.B?m/\x\:f[=#8d7\\F2.A#YS6BVqhF8>ĭV:0bjP#qҪZ8q_,Hx=M;g5C_v4̻mo ?-8>d>_<vHf^d>5J["Qafg8ƑmŃȏR|ܨe84~'5 yO5\6"JnX5*RnyԈޏ{=ADx69>37t&4W2g';¸reF U~Țhj#%45[ZNW,tK:jEN6uD]}xg>ENQ< %InqzqP~!hD{Q`JAϜ7k"qMF,wcwɧ(~CBGّxق5Qǭ#+׽eKhuSRqEσ*装Lvvxg:4 w? KpgAs^u[Hp5v\{t nRGѡqoÎ#aM7^M8|*uJB4"FcTj=wtxRW27MٵQUW6$W.ː ʬ $aWE`Hf9"}HRʰ}DGǃL5fAM׋P;Dyds2.*!$0;^y(ߧb*wT>8uvmYˀwy6W.~:C%#|INbAcg&'Faw{FȮ|8)" ȐGʢc_W]5ΛdTo(A~`~vgRS\[N+XljlM!} KNysUB5 QCedq@}񃯐VoLze2+"$:vɺq H 0N, _Èn+,@~N$V\MK녑GKM bS޶nJQ)v*z]9r&t6{4Yaf;Ӌ^i(7KrS[r ?.;+!Օ~ p{xc![ǀ@UKQU@X~lѢб p>@L({^]kĈV49'6g;isP@DNRR9 zR*Gq}\H;dz+?ixuNWb!k,hJŕe/=]meXO~狿1M3Θ“`$<^ѲS|q`ѩ n6 uQnr4~!_IuE5T ::PYe?uv{e5N5~[| _Z[FJK(IBC̺rXŤV=S{~<"߫HVOS`ZLA?тJ[W`ps :~+- t h42OI.;#Xb=63,i2VPIV+5 ^5;Unjs]d9:t6kRݪܾ#n[?~ SBGdMϝ;Of= Ǝ{i;.[퓚 7+Y'#\-YYLr58.Bw1ZWkyDXkE*wYeٞf9,LYMv|ү^W,Gڊi`mR'Ř@3 bq Me0ð3LIB?A\w@Q8Dɋ\x ~Pkd|eɞy% <_C,s5T zQ}y;=s]!@7߬>OPG;lwɽ\3Xj'W R-g| % !/ljz:++y~3wPlb(uc@ H,&lR5v M7>~Υc opX}yyx_43F6sdNVQ|u\TWCUtĕ.uh@$Ʃ9]ҦQ9C}G߉ʽ%$͸suk}<wȂT8s=^bϢmT\eEgvKJN w!2%<`I"}HD-r]SeMU-''s Q$\~21LF Y2Dӄ$p$!8G!*kvhN_sؓvcqźmRpr=`@>&5xSUi;x`L@bb/,@*$9KAPV'8_󚱐ZS Ukvn2ƾ,5)XxZ@TxRoN#%cLrSvk]bG8ZU.G˙z\|ꈃDiwHȐ-b[; CX\ҍ*#/N]M@5M*f'(5`f _EoRH;`1\"JLoޱe -6Ua-h&$Z;x/s{lv&$L-kF*-lGH%ij׸c`8O~!t4fnWrމCOu/zg(-~Toe!a #M )_bQ,=xTpmODDTGY b$o4) V(!¥Q,춌qk.U?bp˪1uep(FRfՓgfg x6wöc9huN@Oqe|,S^{y/J>u-1ZI:%O6QX N |-埋aH.ׅ4??cF zw)/7 5*)ĠgDi!4f}@SO[B"W%gҺw+Nξ Z]`t1VR /$Ի h빸C&?lYdgVjCarvNqԻo9B{O/>ē`oc +/u-qُ:㬕(mpZ%e`%P66:-q;]u*|ďf{0%>BHzFW2T @og] LJf0`FT t%ݿDJ~730Upqfx?Jʸ3t@(M'+P nnb$4c%0NRnb [FҹĴmu>G//$Sf{PNu!ku*рD-^&+,P7Õ|)u+6R۞s/XS؋s8hh77>DKG xpϭ⾍G ]z#3:=ńߕG)kėRPRܗ`HA!{p%R(VkUU?a+Nŀ}ϲ^-2";p}JT?uEcSE i.F%Mw>yҋ:1WS"ڧDA L:1Fz/D EaiU8/)aq-H?წӶ9&uO[%?4bW.,`w (K1z'ҕn'o)Og(ڐ*f,Ng3m XixP\O-;bc^MKvmowCݑǜ)7Ine;עx*IO :uc!kB48L!Xs8dߵ6DeY&q2y81p+ҠjATcz\]0񜻉n~ r[Roξ.y,_@UYS׋Hjx%gfQwa}gG`R̿P`HZ-9^)c,8=ޔq9͕:j ,Kٴed^6x(Dl]4Ap=upڌG ́i%i?Ğ2^q!M wGCDO:XҗA#U"T}AI6Z*XZw>`aFIؗ^gpaO,NS ]|DYXN{f 82ʂ7dvaҨE&Pe<[U^jQ2퐠5R9dc}Q=Jj;y{Ŷ]r\>1K}`G##L(YvAdoh=>e sWUHVH)'$Ih n8g$fu΀P^Jm(y()y"vU[iSvg<2BrdC6SK)f,? e-r)C&r3>$y)5#SA_<;o3Q: 8My]k .<-\qǾ`)}#~ h`!o E v`iҟD 8;9'gcY0wT!ԣoDŽ";P1(͊cg 3] uі-lļbe5L|LqS8ўT"Ѩ" M @~g::0§YmցMڃ^5(]4,ڇКl. (([JYc4vijBKr2fMiN%+ĎE0>D Fz<'u,zeߵpy+B{Y*ƉN9K:z*p^cb5J+(!WZ g3}ү+I-U@%HuK[/s۞PYHJqFrB vd`T3X?48_R;V{p6_EE]szb{ uPT2uruQ1[u##T0O3h,|k>^TӘΝ+"LoBGB[1HGC w);F *M,k:|,Tj3t8]EIO8@`B.q5,#hF5[Vǧp5*G׷I@nJL r*`cˉ1,}*uvxUWD'qWJ\6gfeL 9ѺrTFv;(=w裌! _nd?]Ju>݊\'vz߰QRISɎmJֹH4qO3QQp H}#0껖)bbB+;hIBaO7'tA4Hx){(S !/eݢD*~;& N"v9-뵾@6͉>"wgoz#B.F)ާ~PSWY^͆g+xjc3fq:[D(1o&JB!g6́JaP1:Wuz"Mu59fquW`i c~( MsM,j6 U"yu2"@]d0z[>È0䁛1XWk]؟ȧ-sO`m+f0vPfTc~4DxK"+&_f}:h\\]U>[w_ `+\cQ٘j+y^U 83|:}‚_<R%nnȻ9Cc^ԫBG {8BhhZ2Bv>V΂O$7yM/tK@M-5(Urt9 s<7>l+ ;ݵF$巉_tyC t0 ZvkJT Z4ڧzlu SRwE-Pֱ:|\D;[ gGMEeVϰ~8v_xp5xVp٢kJYpGԇ3QoT@ (rz-G1j0 Ao\fŦHױנx1P )kbORh|ۈ'W\D8Z&}hki6Vn;f+Ĝ&LdjobALa2^YHT }N ɱjE<#&z,6Zgw`T9OI\C$+60/p,7gvw;>SHl\4`MNj˗Q[& ޠ/;#8iMmC(id"\rBM0+:X$YR0\Gmt6;WM~J ͙#-f~t!9Sl¦u$ -S#Rπ V =3@$\-77/Q]7fܶ? %`79 9ԧ]ף[PTq+f=G_H'aF֝ͺ 9h!z͑;<!i „8s&/.F>Dg 2^xhߚRs}L)m}b腌J=1HE }0F3Ku^:ݺ}(k~`&R?dOٺhi [P&+?gbzRrqIƲ[E䠳|̠ xBEvcͬ? lLy>iOOxqt, qv?fZ86掼V8y@J7odQr_9ePcߎo,FOH6oI4%߁ut}rI&.Ol[H*zXW`<N4&}X%K{j7.WW>f/[.`)YTͪ{RETO`+'Ṽi,t[CdꚈbzfr[bhwCcBKx!88a\);tFsз=,D[Gힸ(_p1! U"Sq_eQʁ&u)Um.𷢾~-U/'pQ(,i&C+\xy$-Ԛ|Ftr͞Ġ9<[4<_*#i$-ݸ;«wtժ"|{+Fl^a}q(A`%ܻi,% LCC`|Q#cLPe}ǡأ+QWa(\\iVF 1^2Ax2\yAdwkU@30rW"53*Tv|mn5 ؂ K$G6mKS%R`dWΔjrGI[NDC^>$&v*#p6P>Ͱ]&t#Zz?:sB0ce޿ces cbB9 [#ht[T|Rj΅5l7V󆷮* T:Dek:wdۅvg)ްꂮgPI]8:|Q* *R$,( S Hɘ+LHуlbS!<9d\'U_mRc~"WWՍi82]>6YҞTG&z.&j8aIm U'P.i 0gcNFBєmL)cm}(h˛u&9\ӎWjsCU} J|UҹVt @EeRy"̏:5*ll\\ ~;8 XIByY5ϙ'jt@=r>LsO3wHDyn<*8L)bJxh+/=w(}sjjk!3g/Nq8Nw]sMD0cd8LpTP)ղ׷!^Fn];!/{Ѽoʷf ̗aA|hS \Dٯ^/-ߠ8vv(6877ײYh#MlH?gfeVڬ|XRlwj!T/EWr?PӄĘ`ݎ\m _۲a$owgfNLPK6/%əA^li̕;~s3pTyCӢi-]O7:Zn@`x=^vWD:)XM]&?C'kt6N\箙O(b} +'?֍FQ'E)_n&ɴ®8?] % Q(I>  f0.ygON\v"rdh6q{X=ꙝxʽ5f3R ixa Y&RupUcN7+xtQ&"Z7eX|'@bȔRٿ+ :{lX9 !yTd}MN#1iܧ^!Y'^/UE]UMx:u/Ui.BlMqa]c{(:Fm+jw:%^T9 J & Ls)J*ьKJY>{9b9Nٖw:Mz' W`TH+#b76Ӗ/rMṲ^\{GZ^d/ a&fN:ldl[vӝ+T`wc߫"@g|XVO )VbN.Hnu֓zX+AhTQgڒ7\.{_:XΌ_i7S U ŐoJ <ƽi%+f`858R\IS#R|pÌ4FdE iH!NQ& n#wCEw10ۢxq21;^s 7>#w^6,?)74)~%*I `="j 99̩Y>a Q(X6 W,a ;˜w] T:pcKH?H.mて#~=uݎk—>wْVq6FJ޷:1VU/_!ШG_}˿KӨ8̷21t\NaeVpUk-(NDq)}轴=]*hJ{R,C?6`q!z"Sgb#  ܌u+ncT X{7-*J*lҕGF@YfB)@/9˯}C&ŤuY&;6y(z噉FE@?6Lm7pT?օ`%"klYxVp-TddL,2D߻t3x*(Wz{Fz?G> MX-^RZzCwh #1_!Ў;xΥF@h3D\5+vjg"ww-YoD8nߴL7OWZN~+W0q;Rd6tuρ۾و`lQ=Hҁ`bREB1ΰ XP]c ߶"mE H#$#W[wFb~,a;U٭5q_bW] bd ^Vedx{)F?`]hq5lzcA$ߪ'>Akcd!4G$Cg¹Jս73BliY:t#s]\GZiTZ];  vVtiBa@PVC9SϬ Rpr/#pfSmʿ+eמ#F_IRg#*stt#3Q*S')<2 ۹i{޿CzL7.٭c ߮3 }o}y /" 6'w-nn<|F * -s73E`] x"KCJdዕh@SsSVupa`5C;ɴ_mZݸ (͸'GmY6_ݡ( `⚳LÚfyWA-jvMItwcx*$vYO7Jl_N|+~[0t?1!BkZ+ձțXm[n fKЋnRҷCDD?10fF =o}Ejĺ}AĂ'y[s>&_Md6, ^Cx~&A/R9:SB"MBҝf7w AUl\Zr× &lj7`ǭldlr hI!  HA4-wM_׆/*04Vt@3}(K]؂cfkULKȕhp, [HIΖw=G*w8E ~0FǤizX= BOמ΀X AnvJ0}.L^?;͆fyiM?c q`Y\'mImaeiu:ne w kņ Am ]ͪwge;c4O;+AF&`dlh+#; Mp"l%ڌeʭ8jVʆ1Vh3 o- "-d-ubqEbl<0KE7 #1Rc({:#.@xG˳?𖴞Z6a(%OIIKvpVeB0|ѽ3Hn۟[G#މ?G4T2/D-/bY4N:!.OX>r RvǒYpֹ"qN4ІZ!h'u\c%*#Ĉd ܯt0/mrsd}W2M\R(KbE}e|օT0H?:8Lm3>8I/޻4!}78oG Ѳ{d.ijA`"XbvsK\vrrS$.=A0ܲ$luBxc k r)WAsxl>&?\e2֤Ψi׶]'v輥) Юy˘^~ԭ:WFSOWiUt@,&GFA61C@ Ab)ӕO_:wbiOKrǼ^ FDz-މ\hp,fi'|^L $jJSBȀg gqnrZ2WO}8 N} ry+j z˒ 1;7~2> Kٺ-bEDkm9ZJĉ -}̀%/ Kq'DVl[7$͜w])6ʴ4 9#wP(D!t{}uxu \À%撲oQ*GZ}z,C%DGâ":|ri=8 o-N:+މG4Di!^Zu7hrDK#p6SO RsO'8[Ū+tǷx x9ܫe{Ԁ\TP‡QI1Ԥ,cm/.b U9l>1 Kǎ,sziVg?IÞ4M44S5b96zy3D=#gz;ؿch2SĞl ^BO5F<2/ZZY15쓁ˏ륪E4ebBVRn}]c7A55SMˣK5M!i1WBciRI? iS'VW@'^t|7G IOfoIW翜-G]mz\9}Mh iC` I:E*e7a< &c} ||f zf2Rzc n)W6/|s #; !DO?0á+< Ph}~3SG/(E,rd*䏂bG5";|[WPMmQ$rp%ED"@&Ueۧv"l{q1e#w .ɤ]FJG-j]7VrrtSu?^U[KOzR~ؒu8<Il{GS,Ay{pdVW#yZ }`'maZ9j$F+*E?1 hIr<\%Fa'%9 0qt\N7eCR@8 +9C$p& n(:h#RUBep A¿_{I {M#|yvc> H Tm*6%+X٣1i8v"UpMBŗ-JKzt0;@@v{#DDrb*Q9QTĒ+JXq_cLOLhUP@3$]^~bAK9dg!:~?s_VD-;X /ԯЙ00'bAB2AN/e3%/UBBՁ*6!DCd;ԚgZ=ڒTf< қCA&l-#L zhfE}NPf'XϹ/YܠψU1CvN&sVcSv4K~ 4ub[iNo9ޏ JP0>ɯANBIRBTh.5kpYF)`Q|y gz3WlCDs\(=)MyC]H~a\-&o|ߖF>NFHqqr 9a9>khGŽ "QJcBj%"fxDG_%כtvR)fM f 3?_9w;LF!4U=Z!FE}*A4B(bM$,۪Ir@2DMYVg_Q9k3 M&u_͟PvY#C7}Avh{9AʻS-ot;r52ћ(Zhȱձ^J(h4}5$*_'Uᣴ}XAԊqc'C|-p3]O=Gr-P7qH{2LUU:!+Fph?M_VF |˒tO {bMmX8!o  oK\RDŽ6-[U{;}hvutwf`G s/f[832NS& a]ɸJI7{l覥_ _RSyDN"8TxzZK;|=2N^2@!bWF()+Oy}AϺv;pu怮+iX `88\npz㴌znFyd3m,^bu"3/"}5zo__E 0MmB '{{+'SKSll.Dh3:Ҽ3kڐ1j\ *ƅO)5d\[纶[+H f Z L4ª- 7{BL &$מRH[zB`2#O4U՗&> yƼYBԮ8 ~'0Z 컔#yAjsMǢ]*aPMzjvy5Ʋ 1 >`гBHi=Q,MB uxsɵcT܈칝%ލ+tѧ,3Ro6˨4/na9HnlG YyT[2[/.bkZH;zT3_BJO{)0g+ lҦyOf$d([2Î{M!< ֙I ɯCb1sקqwfh(1X/AD@ dٖ cM` ?mqqT*~k~[W~ `teb2E5ĆGWtVj>k3eV0<85|Z (pr|[.`qqPCacbI_wBiJ`#1Bf!*\"amMV`'4.`Y:ISArŞ WwFur mw6A7_ɞwY%ELQrF3ςa-,91R:ĭg=Y=#%7UB",oGgWQB\$`˛ a:gs)mͫX?XЁ[_4|G3U}R>'`Z);)p@;_\,7~+allP(Tn9‹CTUaMiVZIkWZ!q(_r)(&#"J=kV~69 zeӘ&O;y`dF4nKE4A@a!HğlA17RmJG ^W1 U=Y>nb'`=l Wn]nyR}\*7 F?Y۱$jjk|6Ӽiaq !oYն8rK(HT$(n+E58Ѡ8E6>sk#t=,@Ie_Fz5,+ɹ2g^ͮ=ģ*VC|&TuT^^ ׶5E717ab^0 `eðT6oW|!?&1ڶO6|J  %@ņcA4Geܯw? ?f1x5jەkQv8F/[X;Kp J:E'{k q!xB/rd'lEXZ6sW|CE{W;$[#7V\CHzkEB\=QfIWLF Z7H%q=,9u(aqAq/:TYU}Q*6NT{RF9TQm!x ށ՘҆oK,l_)\)[TᔽMjykc%༆cW&l;:x3ZHLy"o ̰(N`Q?IKy q!z GP.IwwkJ24%95+[ w%|@A8B Ͼ+EfŴLB2/ZM<ePQqiڕw!͹">u`\^E&0e/I G훑.A vs(ge.vT'm?|uKs~ ^tdc~1UdR#P?Zַ}`\=Y:VwX/HrMmZ(Vy E3Og ytYg+A;;0?R2J&^ d}BjS-ɣZ~OHf_*ʕh@#UZcEɭ`sWp`2FE<I!2.wa܀x[J2tgD3e^*&dicޞú{H lM\O'Ky|sRb- D=2g)畿|XL8Mx ޲R!r4csGB+dヺ}j2`zuEVqkcn}c[CԫgetlNz'2y}Dfhȭ8cz"NjGͧLBos/{*:G[rzSÑV X{Z=9(UBIA o۴MG6oA%km_Si rnq.^ρ>_~[d֢OVk@WGa2FBKZ>p"~s a RU;-S| F|9|P3kƮt=5.WSHd%&YZaeCI1R,R^7>Ťgc2u\?g$ T%\Ir Nѿ]g3yI+"_H˗ǐF]ͦhۃ)ć\n*Z!=hh 7kE6SrnMeu=bԇ@.p8@udmr>&$w X zf́*È4?g1xKVpK[T]jrLcJcW k$M jC(;;U&ٝ0⚘+˘?43Bvh 1&"I.&02GB`7hژC%^/IV_oއ5B1i4s8)sj'SP4u0_XzK5i |zWSeJ£bBﴅ VDL }_ Bc)0X vs_H胎s>Xji`kx`~8KfDl&Gv5󽘜%ҽE:߯9" YRskd/\%kȁFS"L`jcyXZ1V^3^ nΣУ_|@K`n>, 8eXy5pCd{Ǣ㦈Kq^Y1I2 ֌@(p:2R-Yk 7,O=u4{ϤxC2_/scqGf@<lB#E̻9f-e#u'2[)`Wru G=/i z@&+ Gl,_>{</$'L6C1kL''g|Xi I&?܋e(t) !ƞ.8PpEH3洛#Vxĥ\ȗG#Bk§ir @R@^A%t.(Y#Z(ZJNO\PLbDm!vʠfjR dϒ0Uj6tzfD& W7z ?/M9!ψP=IuMr %z1!uZ\1D6w sG*hZZͭxn%>{co# )K{ p}l5Y'Up(nȱpyeaL6&!vlq`\S3l,rUuk'ɛq] s[>@B:],`_d +r~D qĺlk)mΨo;kKuYIq$%:ϟg[7rqAWz3e1&Sӈ(a -N k8F*le߀ܖ($l~=˃Pa0`.Bds^DXKH7Wk~P3I|: :#RK ʎ"QB۰x+i`H tP$_]"@( ؼx->Ձ .zO~]ݕaIen>'^h|RBW5iZʹ0A2B"Hk]ksa :K+63E@Ukv3f<^MmqkgP_ [0 Ju5ZV(=' uϾtبgY! [<4WUQ.- dJˆ Ն/hRGΖSA}/G2&b$6ĦWH5Va˨$e=:$6jsM @C\72I8)bCtYi&]7}p:h,-ɦ1?34`"N+ajZ /Z:ii4%AU"_?Vx-0XlIH6VPp(1qv.) AM禫[7EYlN•VtVm&6j`HC.? ) 7)ȣyԡ3ΐ_')BuφCH:b|ӹ ,` Bv |¸9*]i{U8"c<cKm'V֯kG[QBu!+*Ke)t'l] VI&@ h! x˼ Y/;y¢#8ގWvY>.K&["']JH8VsuYˆOJ΂t_{o]!8\2ANrr4AR{V&Umm:an o N IWW=}?cjupN&Q~:Bi>D5$^H0;)MeRj]SV2;~+3gX-4Xu+U @phg JOHutk`_3&Mن./#MЇ= Dˠy%.20#0-?߉@X:HnAZ]q|mzq_9wSߝ\?NFX",gھh)e(~ ;x@)KOw SD2K.Oԉb4ǝ[h*.`s~d>vcfstA6\Hշ.@Gg:j;Vդxbf/3!y.,ݠܭ7](1{گ=VV`T5IcGҭQ -L,!IӡMN"[ew? =H "} K~ȹm|3^x[feÜqWi" Iu ?̅Xya|ko4ZA0A[gJkD w7iqZJdNv= :,&1>B~ JU{U:au rW{N%OrpӺCGB0@(g^SBG(RgD#53mtܶJ{D"̩4ld?֟Ǧ1M8nqϏtH Wg]`#dilsn[Q+ʠ AL:@p<~Ģ5x딊R3-Vh)*d0k. Z..ȫySp kUXcX5oWL0WbtXzQ{jĒ@'LZ4;ƒAdy,4Cϧh/>$߿2^|)S4(18]--:)o6 "b0+_ ybNjԵߥhTXdYܚmEƆg!=NdDc1{Cl.е׎\;SKܢkЪF&12A͊U3_?ZyWYܪ ?,f ض7ਗ਼Ӧן)iLi, v@~.*1}-s\9g&մl5N!͏ بoȡg.2f(HzYL3T0._uP]vyӸ7k:1A| sgC'X?dt{p70j%'Kͬ]Cv?Ȧ)ܩM&~d9a|)2$+q`.25#2]М3F[B4Y6lUxpIevt$N8o l r_HyaU%GlR-MJy*>W=r(bC\*, v+;&W,klMaZWT !)8w'%8ӑ#]bI(lHَٰPl_/P{l{Y$M Q{PCK,maΚ)ӣLJ|UAI 'mp}R̶_tH [%.aՀ7vx 1@!+J-/YYBinyv!LXza%y7I\3t}UY.k QBɖq5?p>&f=0"GM3+vSG9 =Z&&D FĄ)@+x#H;F|\4.Ko^T=oGx̨"xq-sx!-2v)"V]}+r렯 Y{g-I sZnsu-a:V)"q 0;S.լ'y[dWƋK(^l?ƽUGm%NsgmVbxʚak:<ЧvںcRHF߉yS'u2a"fu%.7 F[b /Q:юG!vϝp r&ó;/6,Q*cK j-ghLE[ _G 8o QlGj冐%ujM9ͨv"0yD-)b)7R]Z* L.uMޙgRnv&;+?k)rsv;""'js}+n*k*:I$0`J`֏M.e R)FZfBּM/!IHW6-@WiVdy{[K})k^~XҰ Z^eFu` 2 j"V8+oAu9@ZH\0yu$$>Amɡ'P"eյ3t&s<_?N:@3&%ea{m/U˸D &ZD` ݢP C1WB\&d$Vl JRsBFM[g4KQ.NԀ~ ~cnBЁ`%'Y1f yu_2@2?*^6pV5C)U>y r9%?AX XSvd | pƷndMeܺ7Թ%eUR;K[+4\"Mg9+5+"l$eVF[0Ώ\Ykj -[Ֆnh"MO|r1_@)Wng+j*~fW} [5Hň^jQ!shZ>pۅ4cFe_k<S(iD1&z 8@kh$*GLѧ48/!=_=ug6{#2|$vYwfЏkThk@6,% s㬵K#.)HYl6RdhM>6klbwHa צ.Xwrt\KgZh'k9| $iC}h0=b'S. x14FBELCFߗeV!8#*Βڠ^VVx't R ueelJ&1`#kQWc`ޖ`GJ*,PV ~#c4x ' LryK1K&eYjyЀDҏ!2mU $ ʹ$L8 3`N C|*Ds?NcA Lad^B;6ut ,&+!&g~vǵ`-v%/>XtWCXY^0[hzK0"y c}X-p)4պ'Óelz]z8A%3V,YUYY6G 0WG} w ZP;T^'I()M HDrwSEo's*2ہu/U K ;t˝S5+"z؛h8dm} ߠ.鞀?ͅڲ{F8 J;\!iH:qB}DŽ'u@lK=csJM,5M)ix%dBYX-6dߖgBrfYyúwIhّT>wJhަ_z e872==ګ cA.\ŭt?wݴ}1%&kɲ.iJ16NƄaP"+^or .if`O.Sk74>.S/!:\&X#D `"֣ҹ)^81!4&)oM2̝0:(O˰A&ZUW+ |3 U4@ nx Je\ G[)LdSI&XQtnRqO 1 t{yd6E>"/?l|t^8Tٹ0#1j 1rdZ㉣wM LMД(C|^%g#dK"ƥn]f)WHpt''OhR|+A"=R+yx2hǣ2﹚q_UNΆnS8E)藺]_&xC WWEtM د_ /-xl #v8ȳ뗢ؓzA}dg= Lۢ&52< bIB {tpczfPKl~2*x] )cY")g ã;7? Z"qֳ-!밫kP=k :g[v~papΪgؤbng^)2m-򐼦p&q39X@Buľ|%74:m>h>u-T&A"{IaOӇ΁JA3~hJUiiR_W _y -rCR2 5ʼnv #p1J+`NRkkGlVAt)ڡznl+NU(ֱ$;LTܼhyYϜE.q0!4G(yxTw!; ѐdc9 L.q乘52pypZOBH3$jjIvoԐA;iuư 9jl~l+Fο!l ٻs7)ՄwiY;I{x y)ݨ CW_&!?=pk{wux"ݎFD<9:죦"2i G Mh|#(kL?Ϊ "9$5qHamΠ\ a M$oUzyrXO5 4a L%A=2T" ^Lqvҡ4>ӛ~=u?vh8NcH0`!w;}/"#7f*:˓#%G+UJ{?^|1ā~+6lB|hd/-KFI>0A-ȏ T/9u{hY&#P+ SJdf 蟜#J1:rkĎ]E[U >l0|H<|H/` pllx.טCq8UijTT^ 4TW%v=4Q c4tf%4 D;jS\jHbRT2Xs:2З_FJ$ ,͎D;8aUq1! QJӶlϥL)cO:]f#bt$w ts~n(Yt29 ,j%Hp[յ+4:\E\V9.R u^7CVB$/ר1&tL:?ɛmMꚡ;9LۄzZn7 5 -JQ> 2G`iHq9e)`h`BHi͍4"hĶJ.G7Yc)ߺ?kpPN릢NM"F8r&- YI6']FmB Bn+D!ašz؄:GaD Xo z][q<gxL䋅ѡ;^)sU P sWqvFJE;s҆nȡƚG.J-9uýSTuH~̎oԟJm vK3gnpdr^w5-mgF*:>dNבKA-I 8㧘&@HJͼLX%wd|V:۽^\n$=d6Z+JG+b}5EuhսĄ1V8" # *c2(XdJm0L ȫɴeDUӊu |.PT(D0/Ѳ?j`^3u ,kt_Iwթk_$>Lio/o_u^6nC`Q8lPm( Uh91 H⃸lc %afK/{֩ՕrY<-j}a+O暝ML# fz%񹫧KZqS~99T W{, p__njGqKChswtAa-Hp:zKI|Xbc3XW;sXѭ' 0y\6^dDY+:pIs<?CH^GQMpkjCd]$4 eWZ]xv/=h/TN81uNACeBd:VDLZ o`HuyC}@6<(Ua74̉*W|l,'x.v[IG}o Pkwi=U|fI(r.{nt /LI:#-EX)$A2MXFXRB4&h)PO qg%®Ė#fMA@MLr/attf6E++6S2=g| ZȦFʂUfCn)'Չj hb77`ŅO dR Y,)x&B2bԉ42lu D-"^R(;;o϶Cf!CvG= @&< 3C W@pgF$]LKcoz1D5ч(&a\ؔ<vuxr:iV{Urh3eg̤CƮR'׉j:^ ad/y13tjL#pem}gٔBT(BRԚ BrNލ"7b ֯Iq+ ˽V|뫛 𧴙Ux/2KCyC\^Sn D+ɹA<# !+vh]\-("fXsgf±5U '2־۟Z;$ON7ELܲgg ,jFWICVe=05x6dhj 6_B] uȝkر?]+ V;WP 9|HiHj94 }Ŗt 'lq, =)X)#PLN 5f&W9j E8\p o:!p VEb~mRx{'WW}>>4"xFҜ9/eH@6\LSQ/`寛VvvCݶx$7j퐦f6^j}Wq뛠Z|/>:PFvS oye!4~?2  nրWq&4psT]@@I(BȥUŶEc+IfY1{RKWatUvI5tsƒ`, {Ph>xVęQ՝K!âfOxVnJ {x(g;hCu[ꛐ`ʚ߫ą7˺[yIkp g6ϪtH~AVs+Fw{T>t_'Ɂ?utH]t%KZsfWeb1&} ק~Ol5S.@{S"cpדd'À)4n\V/2bD7K`{ '^q )I>3]fi [eS #_OJ8nY'Y:}}VL9T|Y4 o9ZC22vi\i)Qߊ֪{o!C {il)ieςHS?-{Hcjg!R:e0XG *QfHOIgHo.c8nK?a\7K,E.٠VV.*u=b1I7WOHwsZE J sqh),B l0ڵ{qCyTt;.gN6mBe֔p\gN:{ܴ e"`|2 Tp!џt*{cMqL{MS$hy2QW*A7,4,~1)f~GMjv_lبiE3r<6Zn!Ф z-'X$~!QR!Oe_ Hxy~4}e/L9q꠽AC"Iu71ϻ}|}}f"nQ U 51m^I%3l%}ƙ_LcK!)_EW G!$P.$eq5N IXҗx=|1wZ[N9_$FTYrNVh3]W?P@X&.sm+W\['/8b-2d12hqQhnS^5SAuiz3Gl5ałYJ'"ށ:~3sA{U-|¹®y֒k|D;,3" O 8P%܃g>Őt琕ĹEL`8ojoiRmD:hT98@gorѰdbZrXr6(ٖRv=EfwB&w!uDŽpz() vUDEQ$ چ@+P t jaܕAF1Sa1R9Ak9&vU]=t\_@CUn]w~Yb4t啴B74/ fΨ*8lj*<= ѧ~-J["Nt`$gLd=׫S0j/o #-pfRa]p%XaŋFw4vHlyA2^sm+l''GQ=1SJ5wX0Kj%١!"'QMYmb2HMqfr0Xzly;y/ W6Fϝթ$҇$˨D,#ib# lT 3FuP5 jCŚ0ҿ}$MLD |"i u!HQQ`Emʄλdά