From d6ef5f9215a9c82d4a7c23631d048ad60e9036d5 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 16:06:19 +0100 Subject: [PATCH] Urgent safety fix for #1371 (runtime version) --- substrate/core/test-runtime/wasm/Cargo.lock | 140 +++++++++--------- substrate/node/runtime/src/lib.rs | 4 +- substrate/node/runtime/wasm/Cargo.lock | 140 +++++++++--------- .../release/node_runtime.compact.wasm | Bin 791471 -> 791790 bytes 4 files changed, 134 insertions(+), 150 deletions(-) diff --git a/substrate/core/test-runtime/wasm/Cargo.lock b/substrate/core/test-runtime/wasm/Cargo.lock index 29dfcf7e99..6bd62383c2 100644 --- a/substrate/core/test-runtime/wasm/Cargo.lock +++ b/substrate/core/test-runtime/wasm/Cargo.lock @@ -98,15 +98,6 @@ name = "crossbeam" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "crossbeam-deque" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-deque" version = "0.6.2" @@ -116,20 +107,6 @@ dependencies = [ "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-epoch" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-epoch" version = "0.6.1" @@ -143,14 +120,6 @@ dependencies = [ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-utils" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-utils" version = "0.6.2" @@ -208,6 +177,19 @@ name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -227,11 +209,6 @@ name = "futures" version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "hash-db" version = "0.9.0" @@ -517,6 +494,30 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "openssl" +version = "0.10.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "openssl-sys" +version = "0.9.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "owning_ref" version = "0.4.0" @@ -604,6 +605,11 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "pkg-config" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "primitive-types" version = "0.1.4" @@ -740,25 +746,6 @@ dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rayon" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon-core" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "redox_syscall" version = "0.1.43" @@ -766,14 +753,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ring" -version = "0.12.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1125,13 +1111,13 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1170,7 +1156,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", + "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1476,7 +1462,7 @@ dependencies = [ [[package]] name = "untrusted" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1489,6 +1475,11 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "vcpkg" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" @@ -1536,7 +1527,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1544,6 +1535,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1574,11 +1566,8 @@ dependencies = [ "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" -"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" -"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" -"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e07fc155212827475223f0bcfae57e945e694fc90950ddf3f6695bbfd5555c72" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" @@ -1587,10 +1576,11 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" -"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum hash-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" @@ -1628,6 +1618,8 @@ dependencies = [ "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -1638,6 +1630,7 @@ dependencies = [ "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" @@ -1653,10 +1646,8 @@ dependencies = [ "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" -"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" -"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" -"checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" @@ -1701,8 +1692,9 @@ dependencies = [ "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -1710,5 +1702,5 @@ dependencies = [ "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" +"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs index 6295a38b6f..3567edbbf6 100644 --- a/substrate/node/runtime/src/lib.rs +++ b/substrate/node/runtime/src/lib.rs @@ -96,8 +96,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 14, - impl_version: 14, + spec_version: 15, + impl_version: 15, apis: RUNTIME_API_VERSIONS, }; diff --git a/substrate/node/runtime/wasm/Cargo.lock b/substrate/node/runtime/wasm/Cargo.lock index 673e92deef..f1987f32d2 100644 --- a/substrate/node/runtime/wasm/Cargo.lock +++ b/substrate/node/runtime/wasm/Cargo.lock @@ -98,15 +98,6 @@ name = "crossbeam" version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "crossbeam-deque" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-deque" version = "0.6.2" @@ -116,20 +107,6 @@ dependencies = [ "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-epoch" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-epoch" version = "0.6.1" @@ -143,14 +120,6 @@ dependencies = [ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "crossbeam-utils" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "crossbeam-utils" version = "0.6.2" @@ -208,6 +177,19 @@ name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -227,11 +209,6 @@ name = "futures" version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "hash-db" version = "0.9.0" @@ -574,6 +551,30 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "openssl" +version = "0.10.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "openssl-sys" +version = "0.9.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "owning_ref" version = "0.4.0" @@ -661,6 +662,11 @@ name = "percent-encoding" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "pkg-config" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "primitive-types" version = "0.1.4" @@ -807,25 +813,6 @@ dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "rayon" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon-core" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "redox_syscall" version = "0.1.43" @@ -833,14 +820,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ring" -version = "0.12.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1497,13 +1483,13 @@ dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1542,7 +1528,7 @@ dependencies = [ "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", + "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1820,7 +1806,7 @@ dependencies = [ [[package]] name = "untrusted" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1833,6 +1819,11 @@ dependencies = [ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "vcpkg" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" @@ -1880,7 +1871,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1888,6 +1879,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1918,11 +1910,8 @@ dependencies = [ "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" "checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" -"checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" "checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" -"checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" "checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" -"checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" "checksum crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e07fc155212827475223f0bcfae57e945e694fc90950ddf3f6695bbfd5555c72" "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" "checksum crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c240f247c278fa08a6d4820a6a222bfc6e0d999e51ba67be94f44c905b2161f2" @@ -1931,10 +1920,11 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" -"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum hash-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" @@ -1972,6 +1962,8 @@ dependencies = [ "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" "checksum parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -1982,6 +1974,7 @@ dependencies = [ "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro-hack 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c725b36c99df7af7bf9324e9c999b9e37d92c8f8caf106d82e1d7953218d2d8" "checksum proc-macro-hack-impl 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b753ad9ed99dd8efeaa7d2fb8453c8f6bc3e54b97966d35f1bc77ca6865254a" @@ -1998,10 +1991,8 @@ dependencies = [ "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" -"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" -"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" -"checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" +"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" @@ -2048,8 +2039,9 @@ dependencies = [ "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -"checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" +"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" @@ -2057,5 +2049,5 @@ dependencies = [ "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" +"checksum ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index e8aee63b4fb8eb497626e412acfd2cb83eb928d1..4319fbc77cfdf1650ac987dbf7b073a9b58dce47 100644 GIT binary patch delta 46566 zcmeFad3Y4X7B@Uy-P7GOlY{{RBtXI>tO;RXWQPf$>;wTtMK*sRXy zs;=&=db{S2OKWDYDW#4YmFeok=s$PnC|s^SYG&rB)gS%JQglt%^^*AMx=UA>rj>H* z3KgmX!t`iG(G?{we#Qm$0j1Q8*4iU#TwL6YRa%1g$ljeUU#2T~WbfL~H8<05C}))Y zY{n_QOv*&1+j!+IHvG9~pLu%36lJn9NqI?mQCY35Q#P}$Y!kECXDs6YABzPQ~LO!gZtm(S}89^bsS*|xDp@tN5>T=iK-fCZKMtOJrQ zn`TTtHDPVf-K*RM0#AI?d&Ua~_7nu;r^+am)@FUYNGk{mwiDNGJv>k?5D2zw=Nu_f zIA!~<58NL29?0-Ud`c~Ap1m3dl zNw;GA-%%FI@}C1LL3Oum+bw~&6#urYZ%h5ZArz_%66~HC&95gF)H5*qvb;|j#Vc%T z!S(tDAxWbvR5>X#w*Q&-Ur~~9{}a_ z|G%q}hb*!x~+y5P(R8=XhZ~G3@a5SGPP5bXh86<6*TRtc5Gy4m_K zcvX{iRhCN%aMn&E4)wVys0#52*JMmGxk7KEs!MbEyQSGHd0a=9VHNam_6vipT!tlj zz*Y(RgSIGjn^9dsm#C>s67vBT7*GLX7x4wJ%>k&6zd4#&*e!2f7R^H2zbeZX2-6ys z$QqCiHYBnHO20^CL)jmDdE0WVPRM-Y0xq)eSR^@H__T5?g)QG=Z7Rq5y2)%4Dzfgx za(G3yf>>JRE3?uX@oHX`b)mTtai&SDhy{a${q#cgWo5oE`rNI8q@ z>cx5c3|59ue3be5lbzUr{Ke6o*}t460luU&o9Zk{XDcr9X&G#hv#<>B(}k@qUzoxi z8s(#3WN|7~%e&moo+BR9hq6TeV|P}Z|8+NO=?(MXwVq(9)>B>CO2vs6!_TRD4Da2Y z4Uxqb$fqmP_}n4md--1WM$Cb=!b(Khhik27J=h*4A!JGJ{FWqeF3q(n-p{&6)L7<8 zR+ArjfCb{h;^j9F(JnriX&%1tcf;fjd$N&fYYzyEbqfQ=06ZWDnXGo{fv{+c4p^sp zvPLrOkAu-;Srdz7+g@J17c0kh@8z9)u_m7PK87}hB_FbkSWOAO_c34Ii?wCr4)9-l zVSH0Jk5Y^CU~l#myEez#(3|yPbW^$?)>=Tbj`jyXfk);L{Rq1sV7mdMA7RIwkT^1w zHhJLhAH`x#+7Sq=^Yf3f#ssc7fL$R-+(4TF((1hYAa*i3pT@XM3}v#nXA}Q|w*Q?B`frD{%xHX3O_9G&6gSb?j-j%U0)eY*0jV$=VHnf^a5Q z!{^yMf^re~@CWbl_;`gE*alMH*DtVFsfHmV%zpffQOu7*>%u73%T1-JE1WDK2$ZoG*O|;@dhFnKFFr1eTkh#P04M6WM9v*>n=SOVHz{CSO094U}Cj zhAQdOXzzmS+Vll4mt&S?xpR1Myk3Ike#c*#!oJU|?etW1`?i-^Bcc~w5Ifa28FX23 z4)833JU(!U)cO3*SNN7=J#_}jg9@1Pvk5Za>)Vs zeYoVZNZ^vc;#k@e3Nwa3sYsw$ zQcR#&&@OcOe1YiTjT`E)q$0s{FY%5!tN~A$%RKCjNjy7;RV$_Yf>*cN6KEhNs5}W` zR}jEKb6HJ7nm-o-(6^JQy7bgtjUSXZGcSco4o?Zq@RzZ>BBuIr^X1JPUh`G6f>mb)JF2h^?^rRb z*uLm?8zhf|=pBDq82W$9-m0*bJ*4OxexnNcsdIX)wdh?|N@Wv{TAQ}BT#cQ1+Zyx% z>&@7fDc1ho%w44Ye^=KQ*~)QqLj9oz6@KNMUXpho=PqKUA7NWGwq)P>uh=Pt9o%P~ z{u+K2H@x&Ic7#HhtEX6vJe$ul)iS*6H>@j_Ecu2tBa-vqu!ZCltV!Rp5j3k-bJV|GCKCG3xGnJJbjHT&bK?14d90 ziq8k-hpw^*oJ0QVM&9seR=GqNi{_XRq4m_y?7^5K+33tbQlPkh5c)CuOY4-XeyWmi z>kYMOo^YbQl?LCMa-ZW9I!B@6X z2l8$As>dPuydLUN5^6{*wHg2O0UO}w9ickj^nP`lGQs-me)UJjkKCcATh)81s}xXu z-CO+`$>BcgfvCKJg&R?=b*8U6n)&ja#D*`eq5ah!?z|hY|{ zA@6Sk)F&u2c%V8xWE|Cb^+D=nGRMt>)H_0$HF){KYHV8As-0okb*ZX+VE)ixH8VtB zkHp%#2^9EubbmkI1@JaRAJf>xat9RQ$#wfKqpEp9yph0nIgc^_3 z@;C4qhMblkLWyQj1n=-%-DWUord`+g> zit4?VsZy|Kt; zk|&7iCAb^oie{uQ52)36pW~{=f8L}1Ni)yYz3OkGzo$Qqh%4rVn!w8)P#>Tck369E zBoq*p6evG^tahh@wg=Ti)WufW&(tRQiLFVWt8Xf7!e>^kBWh9M(p!D08Um@~F_<0r z9zCY^AdEW4)e-{G?kn|0D){6pwQ@do3#pRa6Y4CTZrYqx?S;s@eyu)Va9(|exKX5N zrCm^4*_0GFB3F(t{!S%we&_eZ=4)k@Cm?luPpo;icOp9+2#&YlosKH!iK)@u6jA|Y23i$l-`8GPn zZMUkc+P7l7i;x|vufRK)+S~axThXIE5jl}B_Gu|>%M$BjpZ31+MtL290P9R#UMit|E+my^V@)rq-9ZtBwWpMJ z#ZB^UP0&nXTUc#X;y)y69SPi|oYvgUe=e$5N|?A$>|&{*{ef{Zi(RMddwGLm`V^`{ ztktR%*ZoDqsur$d_D8&Jaazx8=Z_TE_tTs@^m((K)jd{!MP&zf@C&8%itPMs?vK+G zVv18=sKJ^8f>H1&ym6c!sAsQYdIZ#TJHSSDC%X&MGgt^4MS79HoS>Jgzgr28JG#vkB)!>&T_7QKk0ho& z;oEnP8o)lZuxqm;jMYOuWMbvzY9DR-?8;zZP`+(tqC=>8k)32Wxu8x;hU`j`8fE5l z$6?PxGe+|yy$WnH$rBpH^Qf(5^4gkj5U;MF6*uJ&78}2rmtlTn$~T#zpUf~>r2)>+ zn?-~%(tt(BC3)?hPx8SoQ8)d(zJMN7h6l`n7~49MWEK6IM9*$Eh(1k<238Dfp<`P1z?@{q8H80w!TN)kO&frF;u?;eg0VZqsU-zx!kl8T-e1*juEpnxtAQ*R_u z&Q_9R0-lk{9`xplk>I8V1JsdPun!z=H0^GQS%WycF*}4zeFK?#G4R9)a?V$oM;L~p z8Zn~(yD1Cv5H;GKsBAsZ>_z?YxSBS_{?yT&>{6yKMzpnt)#cJx5T8HebhitEPF7WG|}rP&V;50B=H@Gi+LK3s2(;X#VMlqoduvKru1gq&Msv9CK`&D_8<-!`{#ir6B4} z?gnVm)sRBr_gT=@$OVU^=8JEGVTdt-jf~^@KD@^EFv6o!4N&D^MWJ9WsgRbRe=Ct|N@r1S~icS)CSA zEchECl49&pVxx~H^xzTU;p~!$qU5BbWQHjDk`1Wlf_hwm>MV%5gxHWNQaqaxXtBIW zHN8z*$nW9sgVXOR&<(l4kl%wv3cr_IO@A{Xw9b+!p>>u(`RNFMqPo7AwqWCG=+#JS zaiZXO4ZSoUUPBM)oD8!RPphUU@y#{#@Sy{s+*imR9h!&D{dgYepcg5H@XipTg-()) zdU29uN=?bNJNU^udX2)xtXvnUHc1MfP**P%qFclM zn!vl)vo&&0TfH`4Ur%rM&vc(wU%yAm=40#Ylay&z%pH1v#x|bi!yAhBSW6n}jl`Y> z6keN`Y^*=S{&R_EH`c3?3|kxPt0@0?6MZ22Yyv;lM6VudXe=++6t*+w7@w1&C-R|9 zbzyB!H`S9wVN<;|+k2LuYO1F>DdKqJW_rAS_AL6dB%hxFY+G@HUmRcBOfN!~wyBw( zKn6-Z_-Huna0Df!ehkUt{`BBN`5dG`#M^-S(bzdG|5H=(wdeimhq!fr%-oO$`to(&Nyq&J!|4;X`YP8hfP{vxH zw$ytox*cBf&gptNpP0l#+z~sb@u{u#D(qFoR?Cue)U--MI07c$slVjdGIaJ#kgy6ANa_ZEk{=rwd`66+Q|t-D^C*SwofOkCl2-3?!c9Y?LJUP-BU z?S0zGJ4mzgL9EMG;M5x3sssESN=i}~CY~znAVaW*^ax9i4Q*M(@+Z6Ljg{GaRX06L zd5zcXuHQ$ld2)Ab17cSdHa(TGnR|Jc9{OXX)-64Bv2Bf~Mse1q9(whn%BwtafS!t^ z?Et-O{JLLv(9%E=Ti&~n5k~-AN#*&a`^-w#;sN>?R#qS-hL9EmDTsf9;`pyt`d~dx zBX2l#nEpk|+h~hDDP#7r8-_;N4e}==EW#O%WVhUb;l@+20se%3kc55gN&Q{+_I{o+ zTz~z)VAP>n!IeX!rWC*(@F7S~_T~vN<0<`4s`J=Wddm_8((^ha^mNBF^k5(q;G#Px zjnG?SqxpUQ@zY}XS-(E5e=MG5?|xQqOda8V&UV*$6xEYYeNLZ24K4q?UM*ql_xUzA z|M)HxHeg=<&v$(A^ZHCOoINv)_Poay#=Upml_Z1FbsLZqaRMN(KlzIGY4eeoNKJQRdJESb&iM6zr z$n~qGtwgS9Z7scUE;ae=+FE&FZ>g;{qa%&iYip?`7b+OoQGSsac2dN@kTM3vWF)g%zDT}NNEuaGBZFmAK!{6Y;(zV9{JejUFQI zxIvGNdO=I$H6GEr6-H|7#`@q9t(Ke3%;uNpf&~bN#QXHuidf#KG@nu+hyzs8${eA!m#0&2GN@Ws%rmzD zr|^R_wP^nOvs!k6EhLk)V3MT@u0R;{%ICF>N?{tbpurWQq1DD{<*A`)ST&wGM*9yn z$x(>bKBPriAB@#zs5iG3ApXuvT1J6VN*gt}cMe8Q`ULHF;^0tiMLuyN9&b9j!qzXb zMU6%H-IKHr90FMYbNO!IO-il6qq7UKCMc|eH6>enwqS(;T+3?viq>Afj&T$36bn7_ zh|rj{rJ-}Ra>5j-zoYo8uW5JOUJbLIjRl7QKRZYJS43exi<3x=_@Er^o(Rl* z+fr_u$s(DxnY<>mU@~3Yr_ayI$~vhgS?d+|^KPH*xoNww1aD%vOS7Dfyocd_u*{T= zJLxqNw}^j#_!_bPK9`uqk8iXN8t!p1nEJbybc;w}LP>WMWZy68PKw&Ljw0g>ocuzd z{!>Z!0F^qcS7~>xCn)*pUmo zSp#=GrS~;(4`x4n&389&*CccJy@9(jTfWIE-_X4%2jRo}pSh2EkS;jk-kZ#(t>uFl z;!y-6OPSt>@;+5xM)?h@emde**Ah*yrLSI#hLz;CbSz?Yx4nlV4u@2C>+Og^HC<1^ z^J+RpX)k&uv^+mU_!qzDzqzrIu~4AW>V&U0^?H1^u1{w#UgT8`U7W}hg{KU?C%t6S z+|lt_3t!x>Lb4YF%J%$ALB#E>8oiQNgQIodQ5C1#ov4y zOB~}k6grkZ?koQCcs+b9{rWd~yH8Os>USipzML<1UwSzlyDz%T`@E=&^MxP2sAoqW z6!~#CfAl4+yDpxkciCM5dZduEKu_XSa5-J9hUr^axEosOj~{7x|Oi88lc zHv4-^o1hy7P7_w*M7>x|wtBBsd!wGxk!_r0J*XRXSj&x*(A!s4Va9*wUM_)-ZwQ^g zJ-&f|Y8u`;4Cn;ngT(dQ?egHDPvElX#<&ndt=n zKXor8D}q^ zYhq<5SN;lisr{TEs$rBQR64k6U9SPg#GqVlqj!by{+@G>%4K(s7?IOMBXZXzzOA-V zqQJwJI1WVv35PA0{~R8tb&L&c>Q&ybu7MDxj?pEQnNaQl#lnr1#b{S`~L7(>sF-Iq#MAjNjaZv9z&KhSCoj8}AYOn5ISr zzO0GSH55v;FovXBtd;R8m*5AHXrr`z&F(PV!tf+Prj&`QT*QA z(L0C-gvR5cbOor*hpl*VY`W`iJj}Sf2XmMbJZXqYENidG?XkCXvh7?J6R?G$oF;O) zd%3TwS&eZ#mD_jQy(GV zxGN#-+RB#)jb`l3R(>&PoM2bC^8M+?_Tn>tk%;hSggE70zNjS-*S*V6wKP5?y(YDW zk`J`9I~1AeH+QIRcd6{qL#>Txs0Z5LX;h;0$vZ_)So7~RMtfq#=9b&u+zP08;2&K4 zt5qk%P~7#e)8-g9Aw}CmnHZ6|NRZMYNGM}N*8OS?=x&^K7omN!yqz_a_I|)vY})&6 zW{A+S-&WGzZ%glQJfhh9ZQc-4X0^qLN%~SLJ@NemasJMOu1&yJD(eh$&1A5@g=N1FbJ$r{f&d0=@utO{Ehjx zi+H2wy}?GTq7>nWA2((qd2EO=mF?SO{Wio%!Rm7_uQ1GLTi13TCj7E=9`w$yy&Wn} zddLkt)FF2etwqD&i)df$^pi$I@=}SzjZ2Ju`Mp)-X`>Nqd|rrolD1hx>u^1^45#$6 zfNsDoGAC6!)=0%0;0LZ<f;7 z8Q;J?eqe1I2@@j;&W|!4RXUtp7JAzVLT_;=V@q415soug!K@I-;rN2NvTU}zIVfLn zIsXpN$ubg^;(T+KQM0jqTJ$oSmX711XQ+w0K~tZJ*2dLmSE*I@z&uGOTre_^Q;IXA zl|~y)eFv$A9&{>snf3T+y85^W^X=Ymgs<8sG zbGEf=w(*w25RBhD$7o~7S3wQ&G&JvpTqE=}H1t9)PW7d@79HSw7a4O&d=bk&|GLrV zpOG7H7~+-A`EM9={}HA2@M7a$)nRXRjM_axr8j-QdK)T4T6~Gox)2p%2n=0f3}$04 z@e@l7@lO1cOO3lJ|KU=j9Zk2z@lqMJ4D)p?fAAgSE-HNM9iv$pd+1%mm=B(W?TbBo zC3wwEQ}>N`j5wka?_5M*GUBb)%M85Rwqh#Zx*Tp9pdqV_n!MTyqqJ^6dgbq}!h}0` zg(04m3Ftd3j3R9LCBAuuQBk)~9Pq$3qaydMG{n;p2wRiiz0yc#V<+$hJB<{+V5Lz$ zy};-oxKO@+STHzWDc4pR)zll8w(-Ckqgsp(FM^3w4Xs!pTs!vuRK6KVc}*#uYm}$w zsm*hZ26=@`bAgFMU?%hZzZxDMSPc(g(}qiY1|1g&9-YdwRzo`%Ch%>mjR$EQlv@Lb zB(*hp4O$8nu3BR>Wi#-pdrz%3x+jd8CSE3&UqkqP zs#uAOq4?8Oer~P7QH7PY&giF5>~`kgICYDHvg?iUN=>_)XHz%hL6hv}+0@PScn0s* z9#rYfEj=EIp~oZW^B%;e>IP$@zBUIVwj^J;(GZW?p*g&1eF*<`+GuoOALZ~GJB+G4 zm{(h_16~)LXc~QgW}~;@p^>=&FZz;Xs?oB%ic8x zq+QMleMf@!0&2K^%*m(7vpHc!ex1XE?-~6_Z*RV5%v1D_=(`c3)O}tHUg+H_1 z_&2*ES}jJ^!#j*O*^Bdd)K0iTTX)6zgF7)jy*7^wT3C`8L?}$KJiCm?v_j1Lwwk$& zC8Pb;?Qhn)-NtX?{hU>Mjq)nIpmq3wF^cI|sJlw=>qm^lXkqiY4x5j&&~shYBzzJf zxdfeh!82j8V}j3XB>U*7Oc8R2_`pVy&y2C8iJ6}n{ZwjS(PKtEUhSxn70NW?7mgZ( z61L9^DbVJ#NoK)i%{>0Zm&Uvhe#fMOn|JZG&^q$sYgXnlqpNr^>F^0-jCeDo$2Z1* z&^F%jG{zkHy3>Yu8z^jM51ujTai_KWjIn`^Oju*i8p-0tptmjsY5zc-r3i^$l8r=xgx0%t67v{krO z|7%v6i^g_LRPXbze=yFKu^#~!>~&B6nBVJmza{nymke{|8r>@Rv>))a-%Xoam9!xVGfK#SQPf8$SZ@_#glgv7HtJkig4Eq{b5vOZ+*hY|6zNAoqre~>UJo_NB?D1x8A*Oq$+IJe*VH=MiqN-;?S(Ug(eKT z_FqQZ5WIta36Ik;kU?1iXFkPH&cg=l&b-SF;~585bq@Z%f174mwXCCE;amA(iWaK* z2AvABzBSE6C2<10XnmHYAVRc5Wjf!BXrIpaU%tkZym(CrQE@}BS&?o1koWPLC0NcJ z>uIm)SJ?8oe4@`xP0d=0l_};AZ1awjw-nI(8>3_bm4F+vV;S$ef)&@?!F5Zmt3INrCR zvKI~~af^(JbpyR*5yY`VS~qMfW%hIkfh9_;fmMSLqeYxqjv~3fab_K|nOSjW2kDyz z$D4^G0cSdYb<&Bee1EB`w3e5vkpS+*`)gt?@=ZmvE}QZ)kE>*g&#fG( zWVUBFF7b+$O%Yv+Lt4*P#> z9IJB;Q&rfYMGvNVs~3NwYtHwt;yyYQkss`2{67;WPehL-Sv9eM4vD#pw+DOGmVyO-317SYaj< z3oBnEQ!K1Vo7Uz==26ymiO?GP8GDS0QG_nK7#?FZ>;U&;j9sHrI*fdC<9M(d-X6Z( z)LbJzT(LN4wv-CAt_RHv_?*aR*16UuQ%i>jf$)RNH;2NGBiUSSYrerwerhdgYl_#Q zt+VaSKedEhAtgPRw54=>rs?vvSs8GH81$tw%n5bu8J!MtG(PblFWzc#k9ogehPY~|J3=9@ z^bw&DSNI5oxF7t>e1LR>FKs08R*%3@!1JAa#7w7nwZfxj7Xm*0s5y@PGLQfHD8?kp z+dXCuOFK0$6gpF{r?`&FP|xo5Loy4{NAs+6kC}T!YdSUe#9R9YnoXEwV9S}uK*||n zAmsdL9`v3?z9 z{+ohizVa!vQPrR4i8X;#*njMXNfzJREfFkE^Y{N{c6XlIeuB819%0suIp_E!-HEw8 z>1k7ZhiU)QW>3PY`ixmiHdz?P?R3T`JYznQ7Lv`TsNo99CKrAo*%)=e>3O`;v*y_d zIjqvpnQnzG_=qPxk54yU`;9k$-t10K!G3?tTUH%6ekbp;NsXmxcP}9vpU5vfkKV`A znQ9}=y>b832ZK8OBU`lIdDZ+xoKF^;F4O0lFF2l=$%kU}@J`Kn*%rI7r*~UE;sfbR zRd^mcF~_`%nk(pL&d6)7Wy~`-Y9%kuq`k7xre^5D+4Wc7{(KQ^>f{c7DUJDBujxu9%l^TWKbed5X~c&Ycntt|^XkqwsL&u*-7H+yDKowQRNN*61@5 zYyNFMK_7yswB9_dq@CF5SRtplzSx;>Mfb7H!s0&M$t!Izm(z!g4sS3=Bz&G;GhUU`eTj=lIk z|7r`Syji=rxz(P8#a9KoZ#7$l3RC#Dt)^IvNJs*|vDK_c;QH^H9od>)eEhqZv!V9J z`^>u5kMEjqAnJaN&)8)bZ;bH%WAolLu^=)6URn_4eYxc#EsXFQm{=v%%L@*zoR487A=27>@gZ~iKWdrP z_Y<^8>Pv>;AyW|{_?}%>x5H+2gKZwif4po*A{&mGhnRk36^2wC?~?ARCiY(5``YZ6 zco~IBdN3NVYIde2ws<=(o!yO7-@)Ja@#ZJYJM}TNb}i0x@AFjTxhKq+-jeAcw0wjF+pG>i^3wUqyJQ*u7k_RYxqZh zn6>4CU(QpZV-aGW!m$Yd4YLLBS?(lr0|ClRnts?(e@rVtLlZvM=dvUeZl6l4{>~Jps zNcEH_2l}JxDTz6)h!gYj+DJY^kAz^^q=8Cvzhv`X<}ZqGWR+3of$ zW=meFQ$Auj_>w)s)Vd1g_nu) zkVCXmqdeUdwsV}7744ZO-V7^R#3MFsTNm-<>h`x1_=;ptU8{!QbATyx_+Q05Tp7z} z758*x3%=*y7WXt@OU_y4Vm(DAgB1Qi3BjKaDB06^(^j8)4uhaHachDzPo5Ig zv_U0336xGQ>8b2g`~LjqhPT)Zm>B=GBwB;?uaZzRwsrcJ@^oOke&nl4p>fzyIa&(R zz>SNMS1ArhWw2k@JI-#>j5tqI_SRSYlQ_>583an}i`a#HKHh_mMSo`1E$z9Wus>H> z<;r?G(?^c@&;(EUe-@*?m*Dw1BI4pZ5utH2h=*nEh)CUscOfQZIoa4?X-=!P8LjjQ@Tcxq>$oUMt;GnqFjrwWRQ@N_J;Y ztK@l1=QJqd$pKd^8pQOCg-qDV*S z@{dzIVpS`q>$p^O@f)kHf2DdhD9Srlxirr*hIDUr3?$wDOb!346x?=ZEzg~0Xz7VI zklaf2(5N9ey@M}P;Da&mueMIs@_1OSx%Ssi@agDw_VNpR{Grz?q&0+IuMoZnuUC|= z>$y(W6<5y__Un(-gLUy^d|^FLRg!*xJx{B=PYesnANE@1?(pDK!Bf7oMl|sBRQ^$q zTYoi#jw21HQWMY59m8|`?L)i8^3c_;A40p8i{;lXuZj}hr_??<@6Dui@sE62Q+)Gh9VUFSS8!Z1J4m|+^vUm&M?*Ik=Y?*v^nl0epY2xf#ip`;?Z+YQ>E4U2C+1gVfZzw+2+EbK_ab#;x4)$pP zy~~pTZ{6T7&v9x^$u^#a4d;T1{ZD-M2LmCr4{_UpaH)-FhZI`u%)`XrYwN-Hx9$1) zQJRI1w)fmgo+_z>=W&{yr+4s(&ef6>9SH0s0gVvLrCpD8C?iGB(tcy30+n7oET zt)#a?Lx)A_Lv^4`;O{-n+`LpLPl}U*2EK<6@8lVB>zHDFXU_{t;Sa@yC9KTwY?SZi z$|ZQ{TM*JYgx-l3orZ5g%;@5ojPF~PyW2CF;T7xUcY9Q^3S8aIGmcbFUwG!7yL&z( zouIHSA99c98OmI^$1{dHYw*3E(qgSJv4`hz=hkc80!Kl3>y;SuAcKQ0Jmv99TK~qcy&m_Ye8@0BwT;i5|D$RhAj0yvsxH)aBAc z2tbxo3hHigUPD;cgYn*fE6c6orM;UJWd%P_#v5c~4)UU9z5VIw(bHwUZO9V0m-Qlk zfcRY!y}9(<$x;K}Kieb~^wCPOtuM||BF+#SM1}3NZ2N+D!bTFCy@C&V%zH1}aa0_) zjz7Ov^ljkgQ_W)EY1g{&Mof(XUasJ5{D%X*qzf^!fR=1znl@f5%SQ^ z)iYw#Q6Ad4ct-3vh(kMP&hVyBdz;4m%TZ~U+))r%r%-Uk?kXeYa z>03T>q_+a^{j7IH%wG<`wQu>M7rd!F`Z;f_0s#{X1Gt|rgkp4IfIk6f{N~w^itQ%M zmsz_Bvt-t8!c>_>6J9(^O?bROA(LP5wo14xn`P5pkXg{4`j&4UjaIIB!CSHb276-G zIx1Rm)>g@doK3veJnyG5 zU)V4abR0a#i_Q18ZM<8S*~4k4%-X|gv&`Bq{Hx)*#_co`$lwhs*-a+Z*_1~MHT)y|Rt?cdIA1hkLFL?Lr)~L(gI)>tUd&RF_#z&p=K51P(hpEn5 z@f&7jEBJ@ER_9{dvUj+Avo|XxTz*#tm&^6;2tKZzuactkW$k=-u_YP2MSEY#V!6-w zU9Ok$3ti_Y^Rn%I$%Vo%Pv(!_3Vv-eU*~`qjpXm*H`@EkOZGQ`P2RqPudyihPYFvE z;JkycM#9uCepk_upv1U}1Em2!-N9Er<&%MaS5ydPNrvC$b)Y-j*@D;T=qsQ4chP50 z;UhcVLM_*(@ZAphP3`jY;+=d$Sne}?Tqhs)FP`CBI{7L!654@;-)Vl=14vuD{jQ!! z7a?tjRKmYU{z2s1=ze^afXaE<&c0s7ve9!4d3kMnnNR8LORTsX<*F=1>YwU&DWSYf z@8BPI_LYih{Gi|E4uR(OSxaF>30P}Wl#G2E;A2qmnWgDVyG+^_fp9@sK#0C zI!CpHz6rR|A-W0w4vR!ZTf(^219Rpeh}_$mi0_V&9x0LgSR z@&@uU{SbAhA%FUDzpFgb*^1v)8|g&+NF_RN-o;l{aq(3>e5LA<;zv#o8=&k6Am%CZ zbC{PjH7d7B#fX}ckCdP6;!6&3u1K769N^`+mt7*$7QFf0zRJA_b)5sXAR)S=`$+wg zG-i<9Y?5bmwBO~U8(c)YD<3bu>uz6isuMqQc;&B~`@8z8CoV&;$et*GXV0!^X$;To z>MJD_aX5dKeR6!Ix%WYzpMTQTm(ghim{A|m)oo>150rN{mhyDH;HdoYEBQ?yLtOV#0PFgXO%hRO#Uc}|vxxAQ4I^4ECS!THP_ zegt4Cuuc{?ZZ6+&k1vtezt2}ih&X6&SV32DKKMRgBjMb~Im%=C=KG+yPX_Xn_xVZ+ za9Ia9jT`qz%uGsb*aE294i5AtylW)-_~N#2LqCdf;Y9Dr7XY12?ZW*JgtYFIx&K^# z@qRS2F!;#1yukxuC5SdV+eS0i1HMM0e5OOn#dG;VS-#v+zGW^i+cSi}%Ta!KF3%Y0 zD{YPG>07K6n=&ulsnn<~^LT?^zQm&YQ0^QJY5b91zH-I7&Cfrk2hHcRfnIEQMER8Y zd^eRZM!9nyx;UR-Blg;Y{Cvvt%DsK%iq?%N?!fOwak2gp#UrtD=nd|X{$4ZVG- zY+^5drnj$l{04XhIWO?CVM#ji8hw1F*oI!bO&?$VWa;3}mGiq=kP>iB1gV^ifw!;^ zs*~*QPxQMIfrB17h;pS9zXWzM&bb;A#P;nIROzoeB>7!U zQNHJ1zbnR({si9lBY*mFzOA3HWJ%n*idM35=$@{Sm#HsC&yw&Mt?+iZP10SI18oVL z%t4bP?x||Fm!!)O0#~sY1Am_lW zFb&;`*VQ~;W%DF){Sjg&B@L}3g@s%PfxLR=5r=7uRQ9`yO9Z4LT45nh+TjJzCWE$^ zgVqtJJCzv)#maU|?79)v+N2F5jVsncDp}kGQm0*ZAt`uLBVX~miM*_%8`BCPAJxT< zZzVftFS-z@lhdQi7KJbG?@LU5C{$%ZG}3X}H2i9RUvja*z;}9?=PL7z$9yH-!p!)z zhkd1*5qjM;zbh4KGG%ZP`4p^U9{~6)loPMPNQrN2q*agxQg{o%8=a`)$2qC|_0f`Y zGs-I<9gDO<1e{{oyQ=VP;_n5V<_@R4w5*#|nQsF;b0pLvhyEAU!m}!=#d%G6Cp56s0Dc=fti6=uRPxZ_&LI2J9ThJ2(QgRt7a`CT5J=5PHFg1hDdL7JvVt5(g&rHl^(gS=oVOV8OxZ$$Z*dTi+9%iY z3)`2r&<%OKn<%cVn&B8oMqU+efu9JN)Jmsjepe-%O{S|D0CEPGj9vxvRzNt4w4sgY zDyTvNWdlcckDSNO)bP9R0Zauv z4~FuR!K-)pT~)zo8&XpDNc?C_OM&Y&u$?XmO#;jEz9^@?EV3=T{4TqNk`e7462RZk zZb=4G5=6EHx31YJla7S)VzLr*oml*xSrK-eSc3S6`jRt~`-hine`o)uO}nsT9kepP z=}4QVs!3G3ock{O?+FjgkZF^@56LO+T&}rjgB)~J^mfB=$X$1JxB+K!!=@-JTM1g} z(}>m?os@OZUIneBk?D5O%AGc%b*vJu16^KGU?WLnx(}q($MPynn{}8AyzG-@9&@=?x3f-M>n=(lFyKm|E|GnJn1XtjYgJ4_^1)jc#=Yq zM)qiuVi75s&frEo3-HWNfR{tw2~R=Zk8%+^;XbNKxQT<-gpCIvR}S*dUZApg;LEvh z9pF+`1l#Axquh3t0T4(%90r2ZBm>3f-8inDEyDO8w7{H4qsR{?q+03EDP3S+dUnbmAPX}qY0!SN2kVbelC;6ZP$TL7*)KPQT zEeXMAI%*$|dpWB}ioPHZYXzm@jXo#oI7iKrbQnlU*HV4X&6MW>ld2?#;^Z}@0A3UF zw*pcMIqat#jwUSLL{BXel@vZ?Bq9qh;#cx<7u)jek%%02wY6%5MamChm8hwVm}3s!Q-1it@H7pAKmg$l=O@w{cH?Oy*bOp1OdpDjo7v=4!Ad zJP--i0(sf;rNE;Ip*B*QvR*=(j8wX=NY9Yz>S(v{TOgJJ;yR?{IyAI`)E^BvS$hIf z3f9t)(h{S2DBlSw?d$YIN?MUF$koY?SV`r?C%bdV1tE2~pj20jP{Et%6uHcf%Lqq? zpmkM7-VwH(*&ZH$gK$s$>5^$ppvy3c${QnJRm2@)ZP02*n0$Bv!H0GT zJ!*1x`0)a0U0uRsn&?Bc_A?LQ%j;?Zv>wnBhSd5MhaB;M$;gs=`?`Zy6jUK;B>y{s zPwpaAj=?=B+=X2MtQx{3X0Z-kR&X$rO#jKwyR%Q5 zR{TVkuiV`WKtkJslEs_IOVi(ldkR$OA`+)v3_|^Ib>br0Q{C-t?(N-q?pSQYFGM~G z<&Sjd2a#`A8u^aMf7{LPs)uw4(h*3>ZP7(MXlF2p^6E(c)79_lgwzQq|GT{_uQ?8D z<(Ys}r#ay?gZ1yq`w+Y);Is`N2{*dhYw6u++f#ryz1#140_iHG_r_i7)AJIw&(wu~#E1sIV(sA+!0rDxd;s-*o|(iYM?$Eve^)TESIiDxTkdwUCx74(i|@VPNviZ^t3ReD~~bmof~kgdWHFZVvRNP(dW_hI>YUEDQ}WoaygC`{nWnee~F zRIcLW$qMPQWM9d=Ol5c`Bb~?qLD2YzV$p$?IbjWG5B%nY<3mId`tkb(Soq~!Y7BBjtg29?lO*TYE3)zc++ zbnTqW)fSqHas+)Jg$GbK+)IVZ^j3#ZdxI6lwsetb{T;k|I(XR_F4t4Qcg&ofUCslS z&jUzNK3$Q_h8Msra+BM6HgTjwkSQP04q9Sz2K*XLmkCJgAWf!?0kZv{^KZ+5)zYh5J39W$a7{_9k_B|Nv6_MRfmhCZ9!Qs(;vZ?_V($@ z+nuBKAK4oogao{Xyi=e#U?@F{YoFsDxK)sMcGCife{BGmlTV9?{M*3Il&gbC$n+epdZO8mOW(+c$l zT0!xmESG#Xp*)E4NdN7JN=Tcw-^OfSDpVk6jL+}mho|~dGi6@R2y#Nm?Po7tW&@AlUrzv-)`KSNNLyhAnwWTsF7bhgaD8-^wj2S z0B8bej^DWuQVZPwh8b=6 z@uKU>}6WxR*23(~f%r?-&$@Wrbj*1-d38Pr}h9 zH6e|8dM1E!7)sU1@O8EW22}|>IgKp{RYFXq=H%#E;-Hh7q^_WA6<{*LCCz4%I-~$w z0F>&Hs+N-PaWIvtm)bZ4n8cG^A$M7iI$*ME{=_1zmSl|bMJ zZSZ#lF3o+j0G4J+;665Z&MaS`#5Jfub`HVZ4u>4@oq*8_nDcO zVSRFT>whf2I~*C2m*YKhyta769^ZYCR!7}0pBN4zS~^Igert z6QDnSWVydTW)B$vMERgl`8t%R;a--%g?kErMxwldqkJ*$Q}OGD@+ywM)-};0%~Coq&1P&N3*DWD#F@iqEDJ^7H^gs`6pn(|Ss(vO12lke9my70My>0hp8JOQ+!s zcfSVA1dJ{Uq81)?+Clj7eID^y5Xf;%M4>3kJ}dBLeqw?m zavsx;^9mf#^W_9Q4Ua(OoGQ)yDU_AANnN!Z@CLZ2Sm-49bqT?b;y#l8U6jcM!+PAy zx;EpU+VJ#XD1p2RUCyI~Qh{@S3cjB@B=6# zrRYO4ZT~3U+e;`UPZH_&vP0#4hGKDv`($)oDWo-!uZT2zm@Vk*NGaHR2q_Kx!AQxC zjt-S?LrUx73HVX0mYVs5JtdVwO6J=eVvzuMB2SK9mfr(?QF)6e?IX~;abFZa|M2{N zJo+hHka9@LH}^m)yL>e6r6VQpMOR)dne$cHkq}@ykmYW_M5c1O7CUhN4Ls7oLZr08 zb{Q!>cJz<1CycvsPczdnZRv-Y6djg;z@5BI7;dxZZT%EeZ}bG8Xdc%2aZ z>*sBSee;ry7Y#fbr@K*3bX76ns3W!kPGj`|QZl7akV2)Iu1JC!AfSq~fIzmm3@It< zA#kNsR(JswR6@SUNPAG1LQ38vl3$Y$KdG4dz#|6|Kw6Ue`T>YT3Jq8b7Ws-R#rgoy z4*A?skPn!-S=O%CeP^}%TL2IMpca1AWin5ZO2Cn?i+d-W)^xPVEAi{&K7gN;XxU4a zw#28D=lu@(nkwUX-$T9xzV(nVNg2;i9P*7&UsMM2Q-|;dG#pNBvAsV`lb$QOR7{`aNR@7xFfNCE%O&((1$5^Ip!lR_n7l> zQSP($14roXSIXr*We;`{2Ia!c<(u(jI5WrWCmiFSuP{gL$imdsm=m`a>}b}WiawB8 z=7)yHS?nSy5BEFI^LS6CR_XNcPW1g`4{4(!XPEzvQHJU`6<8BmHH3Jjj!W{0!@DZK zQ-^7+%X!)@gn6K$yA~eP{D#y>+{$W1BiHQ3M9#4mp9m|i5^ps0YQYA#8|v*-c_mzP z6@I#jf;{7gCT8S0&wj=s9(EBjUPz7yf8!`KzhLvWtB6&ux@y2n{&aCVpaSxy4|S5) yxAatOVOaEcw-%;#!K>ebHBghPu=E9EocyRWoM_|Lz^1(ZKi6ra@ZQfexKj#`Qv$p*U_P>tE;Q4tEbvyHe ze;$v^qcBa2cY73%Hur+sO^Kh|RC`=4UcC6+4O+7A+QD~R{w!DM+QBWKX>R5@#BM6* zl(}a;iD`?Kj$B#AMm|02KTkcmR9T{AD=#Vwl}*Z4We0nkZD%I?l(qX=d1Y={Jw;uq zESTFuufS$r-7-Sou`O`<$GxslYCw0n{61Ic#?CGE_dKr`**a&Rt0rp~WFe&{YmMO4 zj=9s$PTtb}zy^1|z^}jQId}Bo5A%cZvx!Q%En|$Ux3BtPv^?`@+&5wb7TJU%TdpQ@1O9Ti|W$ zo_ag7|Fe<>lKl68auD5Z+jd*vZP~vg={uJG-yswz3}USF+y*yN^6MF>eG>1LsQ83V zExS=OKP0Ji1qvr^?%u!B|3@W>x&Mpp{@;=Qzuct-_SmClvRnB%wjhBPSnmG^+Dp% z{WoQO%Zj# z$eSzj;(3)n6`e2rL+Ky0Vp_QNCDZuYKNSHT8nej(cwGR@n7xj?x2Ex7H%U=DDmqeuc5(F~?7c_5iPf>*xuyn97Q} z*=HwsC4)Vn%r&zNHbwC-U;mCPP{HL7W#^bheC(QsZAOthZpeeEb&_V)L4>Um23ySgvNoXqMaXN`D z6Y4gmB&$tw*;bMzQ}}sFHk2(s#9NeN)oqQA3%W?GCW=BU%kAu{IRWti*x@*jR~`ElQEk8?YFKO*_QDZ+M4Vx`f!t zC=yfeW?B*6svS$@Q~I$0A8|j+%$ptEmObXo3G&r#*-U3nBewn^pVf}N8w)w7h)>_B7F$GnAF&KXqb7_}?8^V_%pCuQr@jG@p2Ytyi3QF}&6Y zPYmzbi4Bq2CW_Bdq(ZuFg`DvqTM_fqR-rE<@B6K0{Vwc7CE3;~cV3+mIJ1_RWxKLY z5j7@`U>W>GHx`TwvzJ#rM7#JPrg{09WKHL_yR*^hpBxdo>lUhvL3uFx%YLll5X0Nq7Y7FQA!U^Z`M_6Z#PSIO__q)q-)4 zvy)Cp9BE4PT=2zySim_7R^jLSv$_N>o5`*aByNC30AUqgdLTO!okwImFo;bfJal_C zet1yc9#0v99&b9BEtT?5w>rDjP>d&7eiZ617)K*r-gvuz~4uST=^RKxxMF&^Qck6{61nis~f9&XC5I05*h z$FtW-2uQS4@>XM_nj%tWMfjRYVBeClNF?&-C$o)ti&)*=WeWS2Xx=-OH526#$>48J zV*_NDi?K?w)LXe=yS_ZZH!U@i*wMwj-FCGYJ9?47Fr8h@t?k>H==MD`SRE=ax}fMx zOJ&eyML56<2=dG<2zJ{N^Tk4c_P1S5o^j$Oyp-5v&wwcB37*8iHZAM&7zek zOc{Zc*kIw5m|)?MmFe>PgVCXzH`QS&v7t#*c$;iinw z8`#0`}#Y;t#5e@44V9YQD6Kl~CEyFU{?H*+z|xUt{u`NbV;Hafv}YV5$FH&3&(3d=cU ze)|ni?yP)~Ruk7KN*yH>5xq>OdB7uSE$K(6Vv#R=u zO3b~ftM}$IC)!)uP@6k*Iy>uv+4|N{P0@a|HeDx7(d^#~t36p>RQ_l&^&BD4gk^Rw zuEr{49R`(9&r|M$acVZD(VjRnI$kZ~_UHEc-r)I@3QZNShxH8jJvMvX#h!R+& zENH2g;*HCzj&DI<p@u+JRJ^W%T4h0H zb(HyhHMNt6UwT+=#1m?(C)gr|E4`2iGyrhJJ!&(XTYj?$||yWKffr>8$=1B^5n{2*0Zy!SP<|;i%lvg@|CmJl9(t$NagL;>1aFXdktUJ9n9vcLKr zb-P$W%owVs@@tvu2+A2WK%HZ&NflmYpgN5dbH_lnmJ>aRmmZ`RO%E%%(?iRa0?Y&E zj}B6^oHSB-{9v_jo*ZAQ*2vW%S_$o6!*>r>Cp-Dj`IsT9a6`!%tq<+E@`5_WXPK??!C2dD@z=A}Gr9Fc2)em%iF#iwWyzL*UVzVdY7LKCul69+ zf$P;vB(<&^)W!y7Z0cYX;h&poG~aEieHu8JD{eDa(+X<{JMtmCE; z7%XZptuY_jrXE&;U!I6S3ucDA7Ftqf=*G5O4{OsDPcg4%QQW!5oUmP85gmWv5LV9a zP=yq4)GWmxQc_r`Vv09}`6qM$V~(b*FAuAgd9PEd#((`#{fnlis~@S?MOV*x3f@@E z*J?5^by)32O?>vS+MQ5PsJKA+`H0$yGFlu}k5QkRNuR3q@)kCyex|;nu+^WL)lR5| zgw1dArK$_0HYcHRp!>y1wF_ZXKcyBEfR?A#iInm2X|;SFa?7cbjbEz^JQQjEooX#o zb_KMWeA#*RKSYhZNHhI{+QceJJ|$A6_{twtD$eh_s2-y*{u0I+!flt-8wkxee^gJ9 zvh&=An|rRP%VRACN)IMU1sbAg)$2O?H~;8Xn3E9xiBfq`_-RF>5hp@xEf`)EQmjk` z+gZv}Opfh9MN9-J-HB-_Rr1Af*oM4OQDZP%CRixHiuh@!#n%pFIcNmc&_*RQXpjm< zHH~%!{ek#AyC5s~nN?KnzhZz3cOIfI!&@8Lt9d0`)~gMVoatBkwKR5Wjd{ecy(-S*uU`LakrcDi)ulU=0%$5P@z5v4Kf^`peoQ%4B}|Wv#a|g|}a! z6}!vcCBz0A?Gn<4L`cP+TXfTC4eJ*s_T21^(`b9+bm0o^P}Jc)u22oJEq3rQAGT8a zRGDfvdqvx)D$`8g8trif;qceA=TvrSJO6E+HeQ*|pINUZDbvk`>orxO)^5=5R%Y;z zH)xM3lg)cJLIlc8zHF10qD(@`7^;xfA)u3tC~`?wsc1yFbx9 ze9cjGB%~fx0EkOK_-?Vo5aw&CG=Uu&SAAjL@?GK{h5N%oh#WlnMaQyZ1PzyPjhzNolc$#bq-Xs4Ozk;jF^q%Q68 zxl0LEp#F~H|25pT?kt9d&c=d5kk|CNAB)J$qj3_c4&Ui_caFdenw_KEljOaaTe#lr zM6X=LU6P+G>@FLT**GFyl5Z|@3sN$VE9xHRz%A}-KId9m@r?f z3+&8#Tu*k-bW})Vw-k>qC?XWb4f7ocEJ5!}jT0g~IEehUF zd+sT2{x;t|N@dqBn8RLl?=_T}X7!idlNo%Loh#i(8N2oapZTggp29V+x(BftXL#Id zcLu3J%hm4k?BEV_#A^3T+3*{RHT8VqMR@ss&qt|j!&bg?n5QmzA=ig_dQrODa1ZUv zb7O?(+lY1UwGp0bo?~0lu;P5&6Q1(C^GHvTTn}{2NKZ>5F!~8knjg}^K9se{7QQv0 zrFo4ffdAu1yu}lqyVxFqT7$|f|MA?-&p+Xr!zLZ%&phc7n;0Uq+EbqH;)w1kk2o?x zX0q}xy=AlYD9?4BKT}34m%P+E01hY!x4~~VGJ`6%5d~flw<}jGwbX4m*|z@KNOW)qZJ?DS3uR>q z|Fuz|7F!D{7D`RFnkXK?Ld>GyGKk}d14^paG#Y>k?4Xk34vLcwC9?unYOcU?B}K(9 z4a|ZosA0(#RGLPsIHL$DIODd!LEOEdoN(_1)#%#P!YfKQ!q4{9iew#tyrZzeg3T5T(m=cb zWkOD=MJ(1yF@$`;dC{QYJvR%i7YhpJDa&fNdO!&khKYqN+~7Nq8O)Vn&=OtHAv0dL zsul$%a>Z4Inj{1aaTU!?KvKo*1f!*CW=(dG1uZe1ub^|oj!z> zAq#qFnXx=$Cf}ZPbeTgN&~_n$tjy3@rEPSSA7~3rbef@k%$c@rl@MeW+;~9!sHidWW}tG3&uW6 zbcd$K24kL0jS0qfT=y)BsBneF*zT2?>W&7-fQ)YkjuQEhnp)Z9q+p3a4o!s>F#n~g zwGpdrt3oh_Z>p)4FBTm_*=Ur7;!#i1w3o<#tf?iZZ~dwv`P*bvY5H0FmAIiM=cbi1 z2~hS|yk;#eB`ZAnq-R>TTa+)8X<2O~ETO2OdV!afU=dOw7%O2AAdNu0P|r9RD>WF? zNNJzg7Tm-)YA_jMO=zS{bVzl+VrigIKnOP)q_g5k-Xu6I2`q(=A?k4{u@F5;T}T{N zMw6_8M{b5F0Owm2fOx5dK{9@pq)mdRj>;=&e-NS_53b?`SD;S9%M#LyCZ{1bnA8=$ zQ9}IJK9Q_g-r2)3i2vb$xbs-evZQN`G3n`Gu)@C)gESd@<|?3V351T);3r*7iKB_x z(nMrHA}&i!q1%W-;V38pgRDZthSEZuain{3(XJ@fZ+iq--33-CscN*xA50diNWzSeocT3|XfcqFG$mP3b?GVs zEPM~!Ma0z0LasV4*pmoqE2coOcbJ4FF@%s8&Zc1BMD>t@!)?g|L*#)-uSL7XS;3^w zQq(B7Ka^yhaE0pGVc1+jBfDZK=R^Na_~hWi?Hrxf=Gy}<m>K?U@%N4{` zP$3~i;ip!0ZDZtb`h&&km_n!VAe=nHq?TAr2+KxZl1}ZFjM@H?2ix4pBVku$nU!4- zG7WRoCTut46=)cYf(w-z6;xVSh9-2Bzf)Jckv{oM9t$(}Odbn!?Q1&;3zPFTzgW+) zIy!l;MwhzykN0Zgie;zz+B8akQ(vp*vF1nqbR+B}2Ag0Hw0;AvC@riyHqgcdzJ>b4 zl6*68OEvWE*XB13v^5I*@idBt(e< zr=4UaP$r$?pEuH0(gFME##&|KLEI7?+R4y((ji%po->m-84T_mrmWwH+9xhz2WAfF=M4& zls3q=i_*Z@c2SIT*u}?tXs@Nv)x33bru!Jf>A8%aQq*){tsg z`xvYr&YJr_u9Z{nUid!kUL7ST;3y`lLx=a$9CcL946K0|QxwP_F49p3j}PGqmReM< zwfX1$w0g>Gyl8)Itnxaa-(P!(ta(m8ZDIcSR2j6kYz_~KICb|cF38xyso#Mt3U+Aj9~ zVLo%R_VT}_F?NbpyK?^ZLWG8_+a2`N8i#h1N!N<;Kc;9+sLqB{wZ_HrEzcKD#UXvz z`h-HkTSYd6rf= zdCO%nG0PRp>zBj+#EQ%O<5}7~>cTbi^;Ue#Y;CpZxrW|2{=^)u%o%{S+0#hBT2 zoaYCPjr)jKo9Mv}>{Gn$M9(Igb8)LXSvf7H-1uAXTZ_HiEA}<*m0$6JlRV*T+S%uF zXX=ZSJhhTPx{{|6?_3EtV#gKUV6sPCuv<0RGyA@<1Vs%q^SL;MdEXVJZNbp=^Yj)t zC2$SgOV_~VmGoW%ylBi1xoqIVR8sLh7X`Y%2$gVK-ov&_=C@NkdcG%q=3i4ig)`W( zgJz)}p0qaXi)m&(L$A&ne=!Y~{;DcYCjLoW>cWk;>`SRP-r}2m`d&Juc*3va6#!h@ zNQu_#QrII}7q1MBj@ExAgpo1&oT%c?YQp5q#6-QEk>v#bKNXj}(yIy>qSobLnVEad zSY()cO6ynM|F3gVy`sKCNhqlOH{LRHD(P#Las?qc^XF|h_f^&tlorm+g5vXVXhmyanU?kO~-q3An~&>U zb-8Hf)Mu~V8z z9ko)mC~?%Qc(R~IIsC7NdbTbOh&KLeE)VGylp@w4R&9tHomB(D&RzUuBfSPYzKa)X ztUq34~t5&{-Jgm7*bpVnBf&&KcOA2rs$X7hIQwN3QBMYjGf5n&4naqVtCwkZ&g z@8)}&>hD9q3z|XL8+ZCr`H}nds#eCFJY6Mv+++2*?5d5;^#4$ARBW!7qp(AB(JSWY z=K45qQQ;v#l+@Conxgqb`>&aWJLrnLX7=@c&>`D-uoE#tJktr1U_2vZJx zqCnlyNs3}qFi@BG-hmfmmJZR2DoPCBGE|?3p!qO;CcE^Jd19EJhO0*hxjI5`QNyw+ zbdV=)3hf+Pt|L};)=pXlc8lLt#GE@quS{k0ibV}D#SfBKJJht-{o zcXVp9Gvt@rH?ipSkS=0TI9ousA&SHq6^Bp^s!@@uKqtEDHI$mHThdF(l2m3$t z5+hnk$8Lmr%Z~XrPl}7)bDZ!jG=Iw>bH}s#H?XP)%w=PsbHv>HWA%Ot8@rBIdrpt9 zwtTHU^E&M0QJJ?*Msnm!Ba_$iXP(nbDnD`sr9-mZP5`W z`*l~H;(L$q*H-9@sWIZNL)VphuYXtkyOp|lUvl&-`r?08(rmIye^7O3A>BiEPgY62 zcCLXe5&pbJZ(8uWt?g_2AeNoOcfF>Ich8lLdIo>)bv>0bSG}&cq*?ms*G0F`G+&h0 zTdOyt%sD^n)ytt9;3nLl*~J>A*C=`hYH!c|*W5Juf3;SRBl(E87B1!J@n)HII^HHb zG>d1iN7q|=P=p6|=x#oAvmVEzHs}eSDO1t$#rV=qn7sG=qWkl~o3cTVWe0Qkq78ak zwqgq3yTKxdc66Zhn0NIwzVW1P@QEAs#72%GQjvF|J>j z&EI=N=cvr=`KJDeLhH9+ zRZIEB{jjN)?Be**cQJe(dKW77)>2ac+7e;{GEOUC2;5OTIk~UJ{%OwrP`@r-UJzWI z`9+U5*B{bVmF(%3qxu-;nX?paD8^5Ish5nVZVqik=Zj-yIZ%?#7e3MJswwz>ZbNVl6B~Sk^ z7BC3g{#O@o=m^!j`#XIoiQv`m^lh}iZT3E|r;7J_db97 zvi^OdwL6!;<=&l>*K&8NaT{#f%cH$ijOsI64qEINzN~1w6LJ9J+sJB zD~3{KaNsY7y+j4&_rqYk(fPOTH@{bmBsD1y>nJa*vHZwHDYvo0O+#tF&nT&sTrE8E zu?pN%%U>ra8}2%NdujF`3!;qT44!#hlu?$QKENA98O7Mn#kfIk1Qd2KoA--0DwbOQ z8kW>hOx$ueu+DXsk4jzh-_CZQP6AzsL*68f7b9Tb5huhK%Nx8oxXj zIC(km9cwIQ)0dk{!1&5T3U{`+k>&8wXr1q5)8LTkNp22msoELUvK1&wFv z>rFhlyphVL&*Y)<*y%0GdzLpU=iZ_fD;@f@-7sGy#xDBV3JY6^*pI z+e9awAmLlRbb>kry>y&HtCx-+4|9G+<9RXVBvdsjDQw-(yjg}( zoA?<=A*3z3;BW>y3aqHr4B9j@t5h>og5D>tLK0B0tm7Xh}Md-pNvUp?bIz(Sp339Td_~#M>hA zW~nYl*MRhTReRBFd%e;e*j}$N2k?4d>1T8!(cr@vDZF%l*aTR)-TjS54btg{9_u1B?$vYbuAl@#gD; zjCxEGu=va+Ao;Wj2tF??RTc3IvJgmyy6a@;xQ-iDC!_ zFDVQsGW-5xWW-Ezd`RwQ_JUD{_+k>)z(x4(QKGxJ?`fl&Y&Yrf9R8MI1N zb=eHcwV=%)BVu6C{fzNl1TW_GXAHN(c7M2FG(NPn@K0WHw9$!<=)M@>OHx-(e22H+ zt`?_^uawf9!i|rGe8pDI&?Uxb z$4emcgpNKMrS6<*@m|mYqjP_9r_mg`Wr0q8!U$)UGNyuUu zy>Wxl(6ffXMS0!LMny@5qg)(sv(ccJYODpd$oXNT@o3(hr#BgOJa6Yi;pxpr2_D!C zN9)*rUTd=_Z5e{gG70Vcem{3_H`daJineSwo=pDz-8`s2%Op^Lc$eR|L(C86w>yk0N{JWV z!`x_uisHtJ7Gn2B2cz)n$g+3&#kY-kcJp2C*=1~HtKQ=~cVS|D^IiV^E^DSv*=;;v zr_=bd-G*43ATxu1wcEIxAjS3=ZP>@}@;-Yoouexf4jVPhLwk%BaJU!o;rong|76K$ zzPHc#jIkSw_|kWcgY3=s@O3HUQ=ugwn9heBFkZexgR6XCT={p>Z1tffqVpdbp9%B2 z=OCm39!?%K5;Ma6kGU#Z7@ONmyxbwXyUCbwriH2F&-&7dlU4=6N*mJqT15hTikGN z#5zPTP(q6i^O9$c`#jk>SUncu$9^^{R|t5bm&(HfkOoEkqgSi$i{^OICbt8T?=}7-Tc%ymYZ1UTZ8V_nf1RlDrg?-$}QDd z)|~Ub@v;)Y8(V5+7l`9Nec#ZFKbeg$7&~<31@mT(aZtIn(aJAI1`S8E`tNWRlovSg z%JR^4W0vRoEbtvK8pM}(_v)ta4;aDQZz7tFZy1G@2Xg2mFrKKJct5FPiiVHBh-Aw= zsYJh>PbfiO)9A5G6tIv*W^B{wzm%vOpmKQ&U;USHmt5w{S<7DLi&<;OmHC&w4SC%Z zZ#sYUZ*Yob{kXsJ)ewxvxBfO(v5)Z$i<`#7?9GXM&rPE>wj<`pcssG|U*`Aq-oq|$ znZMk7=L*QGnjIByx{@NkbmPI7ZnUW1z@n03&`sdsp_|IErqOAk1Bdua%=?XJ=4Po- zW%+v5D>g26tKQyh)n+qQ^Nv^8)lGc0+gm!p7Sl-_>V^rG^An~2y1i4_&ae1TkGC9y z#x3-ClN@Wnw>{oOTJ=GlO7JTl?^b*&j=!pVSF!_(cpJmpFWNdh+JpC|LYR#A8Q#Xs zh9&bdes8M?glGL;eAHyZME+{Dw}P!TVlUVmm=gEy<64W0a2VMsHNk z#tXkurTn4yzT%q_ywj!6C^a);yRvJd7oUdy%q)`Ry`Zoqo6NtHy>00WMZ9e(Z|Q&M z%`GkE{WZcj<1YohU;aA}@6{A9E#bL8)q9ZfN&Jgc@69~sL5z7`xQursJNUIZxr}$F zLYHyl%6V&-v&2Gg;RUriur@(P?{4AM2MT5@A}_>=4rmZl2mHYHamGiLeiBDxVXy`4Sb?_qH?3k^g!>olk&W^-)_2yBy zADA=?LWM+!)?~{mdp35`j}s9(r@kTS=inxS`0V#;dA>JYe*bf${f>5MwLCUoD|m3# zF8IwgsFc{7#Io`!AAQ#F@ueYeN<5G!k}T7-o!gZzV9G4 zY)uny1BFJ?4^6!jV^%1(=Tq7r`t~v(bDy_=;k9()m+NP^LMMOX*YER|k>i-RYUYih zA=s^%H(O!jpzh7R$*}$IMBuW9Q8=+hr9`5J<+eLcd&EAwnlzK!8t0FZr**8ta+lF*V>9%`7mcFYgSxt$nhWFzdWXZ*Pz4ljZLKI8@&eJ+RK+fIA~2(D{|Uy{{|EGPB*I z-l+`X$-dsVa9?DdxuCyyhZ1`*+giKJtpU2ct6qEU_FDr}>>JD3ubCeX@E+(PKkP1+ z8u+mL@(;Z+@>4q*m>RGRY5gFDxmWSsEx$>V2g1FY?=AaFG`9fCnty0M@!dK8mdE!6 z4dr>due>Vj6{F$%t^5O@ZzgrtLw?`;G~gN};ZwDBqI{=4_Ggw>i=!8?vroVXF8R^hnI%O`_|f@fZIqX7bw1#LX@ta;IqE3STE7{27a#L z=S1IjMVZIfCHq3`3fD&oMuMQw~1UEx$DiyRbbLIrEjLj#uZ9Q)_!1o~g=1XyZJbv;UqAP>9-pCevRp;Ia@7u%- z^l=3ra9K6TSDL<$GsrjCgYce_K2u9y@SWI{kT-|seJ3_6<;|h#--(R}adT+=cRXp7 z@7|cDjy(Pyf1L8xIr3JCymbE6C|{wvA4`Ds-JL@+X>IAfE0fk1$lEfBeT_H1;}xIw z-TS{Kkj@W3?JHF0x}AdMPz9BJ7zYj}f z;rG1I^S+Aw(lfp$`2zYqTL9o(L4aPP3n+04fV%I>%B^PXl1Zx>Z_1?AjP){!W~}<2 zcN^myoG+6~maj?jY>8}@og$McJMMd)O|6`sd>j&e%A9Q`rAfSQ_5C;+gaAiy~QZqJ7$&(OpID9 zeQO(OT9M#${q+#+-_F~;;Cm=$)wh^APg@_2I`<7XU-0#?KP^qjxR*)D$G4jm=K3mz zPhJMi_q}N(&$u84k=(nQB$Lp#o9B7MrM|{>H(U^Q$$GJ@s%zZ^VVC5KWv|E*mbxyH zNf4NSf$v)CYsYr(;DKenPhx&QZ||J~mUEt8S>|g|_q@!r#?iMjX^o?kGHDV2L?%Jt zqx1ZU<-Rm_Zil&ix$l$Mvg7x>L)RV(i|sx63jm?3_^|=J_ip80-OU$n^p$46{>0zj z=qva~X$l|2FDZ~$Eq`I*%Q7lN`Xz(~+kCYs zJhIJKib4==LBEUudTG4RTfSn>pGOE24gWksE>ZkE0*Kbp>FXXL{6+#OSK_hT!5$LH z+kHFyx#F6)+x&Jr>MP(L{N3ipw|$%4(bEs9%oQ3tc8|;d^&E4^JHDUF^6uAtBg~`M zeW{B1@CDyTo~#iAdynWBe00bYgGUAj4+#z&GWhYn!-M??KRUecpuU4g_U#kw{n$w4 z40*Ee@W%!Yd8%%3=blwMci#=g{P_>xOvUY@$IQCnyQ^*CGx)tt|H2(gF;~D<2H8EH z;_tNbms3{pA6ogFvF7c0R%?Ip!tF){T+3$!L`nK@@^s#{kIXz!Wmp|8;0M~u8q7yTmKN&ZWMo~ ztsmdL8^!-@>n~S_8bQwwTENu}VN-X&)g9qW2wNhQ@QX-4jC6BP0Kcb2`Mg^@e~-c$ zGXpM$w0wHa4`KruBxDjc^PRsCf9@E}mBIe}70hgsXcp>OvUcJ4)W>#I~ z1#R>Z{(#G{<1#-5d1dXqjfhJj*PE5M+Kx!e>Ii*1aHH*V72eDX>mJ6fB2cn=hAZv^ zpk^1OV0;+a^)4^o!CyY~F3`OI$*@wdfJ;YOhVP^9bfljj5^$A9xKIhW?m{>Pf5hV| zKBj}elCqrt^pL;A-6Z&=7s3iCI|7KgEqW5_B~^{`t)gN?rROP%x9R<~+{!_E*85bRJ`K_qXq&|6QakZmAwW1S0 za(Lyfo44)guTruV#4LM)_=%vo7&Mjjd{;+*2_cA)d8=Hu#Gk-h^za9Gp-%pG_ZJ5- z$?VnjVL1@b&c@npa3wn`A2~O#>SIW3=;SY1cqQ_sFf2O!Ys%kwYkq8Jf63mr=7)P- zHZ%qG$}!*+SQ7{TPQlEI3G4ZKKC`pGM8(OiEHg|jWdkfLNuL*%C&60J<3~FC6KY20 zcL$yv>5HM-#M(UcHI4Fc$V)xwFBdOWd`(oqRRi!;{EK=;txoG=(wwkB!@1SwwSl=5;krE9TyHV2{*b?p7;{Y=`5h6LO_n`+n=$7kIdUKW=%Ktdj&x8SznGWk8p&{WxIxnw z^GCb->sSqS7b4Lo6tRpOI#CP^C;AQk70_9g4!mu5Tli59-n499sXN+Q5IiZHKSl67o#!Y| zQ&x9d7Bw9CO|p6H!*+gaM}GHg-c9EBapaH8=Celo6U@C2`&TN3)0c+(mKxQ4DSxV` zzht3-$d{vz@(=P=J^iH$Uq!Z50m_bA#y?dN1TRLB4bTo4$?8h? z%1^w?BbdPDq-+)E4?NDOuv(`CT=##GU35)&j9+>+ z+__SL1z?YA<`qr`^MAU0}1ESj2K$lNcK1DxAQRx;D-nsHTwy(dq z#j>MpnS9D#L|NGlk!8~zW$Wcr_IH$(?lhIPn=2-UqHFlY{unVvg@7xTfc9fGiyYYM znf}zmB>;9-Z(A85v9*rs`yd`^%S)rI>@}ipko z0xZGimS{cepfx=oTHS!}U_*7;Z4it&+b}Pm!hP++`7z>TiWo_EXkWI2md&ec2xyTS z*tD`-P6Cm>nUk@V4q}p#XF;qW3Ehs?&RkkaxtzFW+r%WN_To_}=zbKCPksuz5@m}> z1cY{3p&`z)^>Ql?*K49|VMkd@Lqt)hFpoQmO6(6Jsn|cy;v9;|=W0I1OLnlFT1n2?i_77$k)fj}l9ec^hb$w*Yc?x(x#&-k$P$j@e zM!>1ULdcg!B`PC4M^h&{pN_AGr+b-S2>3d`e~>>hOZp_Tf8zi$Y`km~mHCwAB+YD` zAn>JXZjHb{h_u9$^;85tSpj-Zy&lNQMWBqRwP9YR&sE=1K--y@p)$ai3`!rR!)@@> z9rzxq(3J&^KmlnEYB&%G+}e?r%feB>mvdv82!=WWU$$6EaU$?ZgXoE*-zUpa0bB<0 zEI|P|2@Z6?2{_)7Cb93S9&lwKlwC6gX}q&3o;U6a`%cnhdnf`w%UR$704=e&TtC$h zxM*C^(+v4?N|l5@1o0+-#Q=7Xz;e0rtB^qN0#|mAoD1WT*O}xmIUjoshp0VN(ZO z?j32!Z-x9-*gGO?k#cvyRSjWZ{D~1!%kob**39dl4n>-}OXg=Kpc&-225m&?xXKlK zB;l&H1FlNI?~0Jb_$>Zts7gi-A)o9hF++^V{6CRTc9?X=k>4nn5N#$BVB^#I}85#CQS-JH_Wi9tZI851&qHFUhIuJ#vkL6Pk%Ukm)I}~N5?Wghuv3xL} zvYmQ_EiIKj&1a7Amk=(GQ&Q*hDS8H*kYrC~>reL%lNte*Qi&cO>e5RnFP|F@S~71w z@TF}=p2xKm8J7E1jmm4A!{v)2F6*Q)rJm(>Jb{qx@)16Gq`!o3U0sWX{&o4Rk#GWP zB2A-7vPDHnb)xI?-GFEPgc?glz|)Z4i2V8p=~;^^+}k&jst&mI(zau^8&r%D`m6p&i`0r2HQ?UVyfw5~eRlCcxOmy*njkNR(* zfFvv{&U;W0J|OrObC* zjkP7^ad^yIQ+pK>hUotQ0Y(*XxHsV=>xMaKv_Fal2Hxqf48z6EX;&~8Z z17uVZ=q^{$26_AS`{w8(VGzZ-B4?|VC-C10cd_j15-2X~BZ?8l4HS`2Tt3B9QCunn z;fW3BusIGoif6pRH%#{@WYJtT1;xrBbSisQq`M%WrVVF4DS0L2%dS|5xYU<^4wiuC z8jG}ax+qQ0qoFYVVSHY2#HqO^Y@UZ$u_Z}b>{UXLYj^~K}d{AJlywl^+uYW z35ZLdCNAROC>W8R3S7$#fg(rlVr4jx<&OPP6o^A5xn2R%v__!ku3q6*7L9OOk|NUQ zQBF!kxHqUj_eqaH&H=Ji>>7YcF;juo5xBntSGGRVZ|WF5`ObVma9| ze*jg2zZ;D$=j%y0VPttFe4q{A2skk!^M{ckrGmXcurb0O(2BB-bRVSCk(N%=PT-NZ zMmvwxk1{`_sWno_@1?PvfniU0LlHJd==7PkAy4|iqR*TgV*9s;NBD8XrD2faJ`|>w z$;YwXamrEjQa(kGplFmVhtRp*;V61FpQ0xtibj~F8;;^pJ8oq<2gT+3i5Li*C9zLa z14ZOh6mdDL$ULP*cp9QSi*ey~IE$8X)GUh@LQ#^n6ra=YO9V`ck_?KIR(d|PDgfWn z3TE>m99?JGCiq3o(b#+cfUh47&*C-suVmw4CAYmZ$=0om5bC3QUqzU-># z)?xD`<+`?2z|{rJYJkZ}sp#OWFru7@D+7^kHqaA9Ty}~yzCPs9>@XIDXfW+SZ<1M& z>791^A;4+kZuzujtbbJDuOS^kehY+iz-=-aT$%AI;$+8UdOhOQ1@s(1AvsD-iB3j4+XNwWn4pTTGi|MmSI{YP`MeECRGEC< zN7~`GjNca?p;3qveR^bg6zER3?NoT%NZ!4(S_4Ig@F zlqNZ7r8{U@7%o>8;5)3G9HnAe)yGk`hNG;kw+_lmi4Z;K(x{%JZ0mf=c0gID2rMJz zCYBHKG2?Mm_;3XE0quF)=lsQm3B2K;-aQ}c`JZXu(x{R76nzfWI=gmGd%mHKeRAaN z*Jtx7yBuZZ&?SM`Wksht%g)QE>>89Mt&zf=B;g0D(Rpr_i=xQbjkgqrzsi@U9sdp{=K|?Nh8+zv;wkR zjb#JZ*)5T{9W274_*&pfWuuHp+%8?<5=kR_C*&&Tac ziB5hM_D1U;08A?3R-{vCMJzKuMMgWM%XYU+{{slgH(!sC_PX4tj7&W}a!c1rxm*_j zi*k5on6j5tX_Qg&CHO&62xrkym`j_YSxo0&@~k!ljv(GoTFJz;6WnW(di;O8nzs zo))Cb5R!S8`8J)puC4%t0Ejf#0mzm_D9v;UJ1ysjC%f_@v;7sbWLnyPY5v1xW0jsxxS+8E4g1F6o^-u>#xd(*7a-LI~SiO znb4P4n(OZz?Ua8Dn&m3-w+J5W%TE$q%9+H|#)9{s2l&uFeA+y~r8o)R-h#)^2YgH) zUUxp=Qfvh8WWhfm_{={1BEh9}2>y@-AGH7<&w8CNTHt>$S_*-{4_n|g4)Au~k^?N8 zO5k1=_zQrGErhIO=Md}_r0*hl5wWk?@6+(SivxV|ZbqAhe#1Q*+E zkwfy#JvK+!gkWW+QKKzmL?#i?rraJwt{65Gd-CTrx8Wb{rpq<|_ z6T>;(0a%4N`7=o;*qOT%BcGtGv~*O~+V>MXb9p2R79{U7{38EqMcF%5 z`z^{kd&6c~95Uaj?3Drs@LZY&tF~XGOnw;Z#%fsZPMp_#x_%ce7YSUBZR9Lu_uIETgVXp_iWIgEl5cqOdTIqljY^NhF zr`W0(-@0@jq=pwmW&)MKb8K*UUO$02xjSPKwii&BYm@^n%lAN@ToZIgTvpZ%ak4@s z5Ry@$M_iz?+8-Wb3flY2_o@RSPjT>V?PqPi9iN*Je`177GXn#v|~0KA-UBX5mMiF zz+Wo<3O!{l?du~X##$mI9cY7)8qxz{2?G3zF+%;khYxO@ zCNzQv5e^;2cfW)K&_|xOMq)pNRIfa)s|@K8{#4|XwjQ8~JQ2ZuE zVkVvlMVC%)Zgbyt zuuBW1z)N(Jo&eR4Vk*vMxK`!m`Z~qduWi}ht+G>3xuU>80>O7Jvy92GB_yx3>MMA{tVX20EaVZl&j2U&?eWoD~n0F&M#T`{)dci0vWOU8{p}xXn}XmrDB{#}3=5obs`03Dw-Wghrl7V7)wJZvqW6#t#X2